@tko/binding.if
Advanced tools
@@ -1,2 +0,2 @@ | ||
| // @tko/binding.if 🥊 4.0.0 ESM | ||
| // @tko/binding.if 🥊 4.0.1 ESM | ||
| "use strict"; | ||
@@ -10,2 +10,5 @@ import { cloneNodes, virtualElements, cleanNode, domData } from "@tko/utils"; | ||
| } | ||
| completesElseChain; | ||
| hasElse; | ||
| ifElseNodes; | ||
| constructor(params) { | ||
@@ -12,0 +15,0 @@ super(params); |
@@ -5,4 +5,4 @@ { | ||
| "sourcesContent": ["import { cloneNodes, virtualElements, cleanNode, domData } from '@tko/utils'\n\nimport { dependencyDetection, observable } from '@tko/observable'\n\nimport type { Observable } from '@tko/observable'\n\nimport { applyBindingsToDescendants, AsyncBindingHandler } from '@tko/bind'\n\nimport type { BindingContext } from '@tko/bind'\n\n//todo signature of renderStatus but be discussed\nexport type RenderStatusKeys = 'shouldDisplay'\n\n/**\n * Create a DOMbinding that controls DOM nodes presence\n *\n * Covers e.g.\n *\n * 1. DOM Nodes contents\n *\n * <div data-bind='if: x'>\n * <!-- else --> ... an optional 'if'\n * </div>\n *\n * 2. Virtual elements\n *\n * <!-- ko if: x -->\n * <!-- else -->\n * <!-- /ko -->\n *\n * 3. Else binding\n * <div data-bind='if: x'></div>\n * <div data-bind='else'></div>\n *\n * Requires `renderStatus` and `get bindingContext` to be overloaded,\n * and this.computed('render') must be called in the child constructor.\n */\nexport default class ConditionalBindingHandler extends AsyncBindingHandler {\n get bindingContext(): BindingContext {\n throw new Error('bindingContext() must be implemented in the child class')\n }\n completesElseChain: Observable\n hasElse: boolean\n ifElseNodes?: any\n constructor(params) {\n super(params)\n this.hasElse = this.detectElse(this.$element)\n const elseChainSatisfied = (this.completesElseChain = observable())\n domData.set(this.$element, 'conditional', { elseChainSatisfied })\n }\n\n getIfElseNodes() {\n if (this.ifElseNodes) {\n return this.ifElseNodes\n }\n if (dependencyDetection.getDependenciesCount() || this.hasElse) {\n return this.cloneIfElseNodes(this.$element, this.hasElse)\n }\n }\n\n renderStatus(): Record<RenderStatusKeys, any> {\n throw new Error('renderStatus() must be implemented in the child class')\n }\n\n render() {\n const isFirstRender = !this.ifElseNodes\n const { shouldDisplay } = this.renderStatus()\n\n // Save the nodes before we possibly remove them from the DOM.\n this.ifElseNodes = this.getIfElseNodes() || {}\n\n if (shouldDisplay) {\n const useOriginalNodes = isFirstRender && !this.hasElse\n this.renderAndApplyBindings(this.ifElseNodes.ifNodes, useOriginalNodes)\n } else if (this.hasElse) {\n this.renderAndApplyBindings(this.ifElseNodes.elseNodes)\n } else {\n virtualElements.emptyNode(this.$element)\n }\n }\n\n async renderAndApplyBindings(nodes: ArrayLike<Node>, useOriginalNodes?: boolean) {\n if (!useOriginalNodes) {\n virtualElements.setDomNodeChildren(this.$element, cloneNodes(nodes))\n }\n const bound = await applyBindingsToDescendants(this.bindingContext, this.$element)\n this.completeBinding(bound)\n }\n\n /**\n * This may be truthy for the `else` binding.\n */\n get elseChainIsAlreadySatisfied() {\n return false\n }\n\n /**\n * Test a node for whether it represents an 'else' condition.\n * @param {HTMLElement} node to be tested\n * @return {Boolean} true when\n *\n * Matches <!-- else -->\n */\n isElseNode(node) {\n return node.nodeType === Node.COMMENT_NODE && node.nodeValue.trim().toLowerCase() === 'else'\n }\n\n detectElse(element) {\n const children = virtualElements.childNodes(element)\n for (let i = 0, j = children.length; i < j; ++i) {\n if (this.isElseNode(children[i])) {\n return true\n }\n }\n return false\n }\n\n /**\n * Clone the nodes, returning `ifNodes`, `elseNodes`\n * @param {HTMLElement} element The nodes to be cloned\n * @param {boolean} hasElse short-circuit to speed up the inner-loop.\n * @return {object} Containing the cloned nodes.\n */\n cloneIfElseNodes(element, hasElse) {\n const children = virtualElements.childNodes(element)\n const ifNodes = new Array()\n const elseNodes = new Array()\n let target = ifNodes\n\n for (let i = 0, j = children.length; i < j; ++i) {\n if (hasElse && this.isElseNode(children[i])) {\n target = elseNodes\n hasElse = false\n } else {\n target.push(cleanNode(children[i].cloneNode(true)))\n }\n }\n\n return { ifNodes, elseNodes }\n }\n\n override get controlsDescendants() {\n return true\n }\n static override get allowVirtualElements() {\n return true\n }\n}\n"], | ||
| "mappings": ";;AAAA,SAAS,YAAY,iBAAiB,WAAW,eAAe;AAEhE,SAAS,qBAAqB,kBAAkB;AAIhD,SAAS,4BAA4B,2BAA2B;AA+BhE,qBAAqB,kCAAkC,oBAAoB;AAAA,EACzE,IAAI,iBAAiC;AACnC,UAAM,IAAI,MAAM,yDAAyD;AAAA,EAC3E;AAAA,EAIA,YAAY,QAAQ;AAClB,UAAM,MAAM;AACZ,SAAK,UAAU,KAAK,WAAW,KAAK,QAAQ;AAC5C,UAAM,qBAAsB,KAAK,qBAAqB,WAAW;AACjE,YAAQ,IAAI,KAAK,UAAU,eAAe,EAAE,mBAAmB,CAAC;AAAA,EAClE;AAAA,EAEA,iBAAiB;AACf,QAAI,KAAK,aAAa;AACpB,aAAO,KAAK;AAAA,IACd;AACA,QAAI,oBAAoB,qBAAqB,KAAK,KAAK,SAAS;AAC9D,aAAO,KAAK,iBAAiB,KAAK,UAAU,KAAK,OAAO;AAAA,IAC1D;AAAA,EACF;AAAA,EAEA,eAA8C;AAC5C,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AAAA,EAEA,SAAS;AACP,UAAM,gBAAgB,CAAC,KAAK;AAC5B,UAAM,EAAE,cAAc,IAAI,KAAK,aAAa;AAG5C,SAAK,cAAc,KAAK,eAAe,KAAK,CAAC;AAE7C,QAAI,eAAe;AACjB,YAAM,mBAAmB,iBAAiB,CAAC,KAAK;AAChD,WAAK,uBAAuB,KAAK,YAAY,SAAS,gBAAgB;AAAA,IACxE,WAAW,KAAK,SAAS;AACvB,WAAK,uBAAuB,KAAK,YAAY,SAAS;AAAA,IACxD,OAAO;AACL,sBAAgB,UAAU,KAAK,QAAQ;AAAA,IACzC;AAAA,EACF;AAAA,EAEA,MAAM,uBAAuB,OAAwB,kBAA4B;AAC/E,QAAI,CAAC,kBAAkB;AACrB,sBAAgB,mBAAmB,KAAK,UAAU,WAAW,KAAK,CAAC;AAAA,IACrE;AACA,UAAM,QAAQ,MAAM,2BAA2B,KAAK,gBAAgB,KAAK,QAAQ;AACjF,SAAK,gBAAgB,KAAK;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,8BAA8B;AAChC,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,WAAW,MAAM;AACf,WAAO,KAAK,aAAa,KAAK,gBAAgB,KAAK,UAAU,KAAK,EAAE,YAAY,MAAM;AAAA,EACxF;AAAA,EAEA,WAAW,SAAS;AAClB,UAAM,WAAW,gBAAgB,WAAW,OAAO;AACnD,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,IAAI,GAAG,EAAE,GAAG;AAC/C,UAAI,KAAK,WAAW,SAAS,CAAC,CAAC,GAAG;AAChC,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBAAiB,SAAS,SAAS;AACjC,UAAM,WAAW,gBAAgB,WAAW,OAAO;AACnD,UAAM,UAAU,IAAI,MAAM;AAC1B,UAAM,YAAY,IAAI,MAAM;AAC5B,QAAI,SAAS;AAEb,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,IAAI,GAAG,EAAE,GAAG;AAC/C,UAAI,WAAW,KAAK,WAAW,SAAS,CAAC,CAAC,GAAG;AAC3C,iBAAS;AACT,kBAAU;AAAA,MACZ,OAAO;AACL,eAAO,KAAK,UAAU,SAAS,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;AAAA,MACpD;AAAA,IACF;AAEA,WAAO,EAAE,SAAS,UAAU;AAAA,EAC9B;AAAA,EAEA,IAAa,sBAAsB;AACjC,WAAO;AAAA,EACT;AAAA,EACA,WAAoB,uBAAuB;AACzC,WAAO;AAAA,EACT;AACF;", | ||
| "mappings": "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", | ||
| "names": [] | ||
| } |
+3
-2
@@ -1,7 +0,8 @@ | ||
| // @tko/binding.if 🥊 4.0.0 ESM | ||
| // @tko/binding.if 🥊 4.0.1 ESM | ||
| "use strict"; | ||
| import { virtualElements, domData } from "@tko/utils"; | ||
| import { unwrap } from "@tko/observable"; | ||
| import { IfBindingHandler } from "./ifUnless"; | ||
| import { IfBindingHandler } from "./ifUnless.js"; | ||
| export class ElseBindingHandler extends IfBindingHandler { | ||
| _elseChain; | ||
| shouldDisplayIf() { | ||
@@ -8,0 +9,0 @@ return super.shouldDisplayIf() || this.value === void 0; |
+1
-1
@@ -5,4 +5,4 @@ { | ||
| "sourcesContent": ["import { virtualElements, domData } from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nimport { IfBindingHandler } from './ifUnless'\n\n/**\n * The `else` binding\n * (not to be mistaken for `<!-- else -->` inside if bindings.\n */\nexport class ElseBindingHandler extends IfBindingHandler {\n _elseChain: any\n\n override shouldDisplayIf() {\n return super.shouldDisplayIf() || this.value === undefined\n }\n\n /**\n * Return any conditional that precedes the given node.\n * @return {object} { elseChainSatisfied: observable }\n */\n override get elseChainIsAlreadySatisfied() {\n if (!this._elseChain) {\n this._elseChain = this.readElseChain()\n }\n return unwrap(this._elseChain.elseChainSatisfied)\n }\n\n readElseChain() {\n let node: ChildNode | null = this.$element\n do {\n node = node.previousSibling\n } while (node && node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.COMMENT_NODE)\n\n if (!node) {\n return false\n }\n\n if (node.nodeType === Node.COMMENT_NODE) {\n node = virtualElements.previousSibling(node)\n }\n\n return domData.get(node as Node, 'conditional') || {}\n }\n}\n"], | ||
| "mappings": ";;AAAA,SAAS,iBAAiB,eAAe;AAEzC,SAAS,cAAc;AAEvB,SAAS,wBAAwB;AAM1B,aAAM,2BAA2B,iBAAiB;AAAA,EAG9C,kBAAkB;AACzB,WAAO,MAAM,gBAAgB,KAAK,KAAK,UAAU;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAa,8BAA8B;AACzC,QAAI,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,cAAc;AAAA,IACvC;AACA,WAAO,OAAO,KAAK,WAAW,kBAAkB;AAAA,EAClD;AAAA,EAEA,gBAAgB;AACd,QAAI,OAAyB,KAAK;AAClC,OAAG;AACD,aAAO,KAAK;AAAA,IACd,SAAS,QAAQ,KAAK,aAAa,KAAK,gBAAgB,KAAK,aAAa,KAAK;AAE/E,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,aAAa,KAAK,cAAc;AACvC,aAAO,gBAAgB,gBAAgB,IAAI;AAAA,IAC7C;AAEA,WAAO,QAAQ,IAAI,MAAc,aAAa,KAAK,CAAC;AAAA,EACtD;AACF;", | ||
| "mappings": ";;AAAA,SAAS,iBAAiB,eAAe;AAEzC,SAAS,cAAc;AAEvB,SAAS,wBAAwB;AAM1B,aAAM,2BAA2B,iBAAiB;AAAA,EACvD;AAAA,EAES,kBAAkB;AACzB,WAAO,MAAM,gBAAgB,KAAK,KAAK,UAAU;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAa,8BAA8B;AACzC,QAAI,CAAC,KAAK,YAAY;AACpB,WAAK,aAAa,KAAK,cAAc;AAAA,IACvC;AACA,WAAO,OAAO,KAAK,WAAW,kBAAkB;AAAA,EAClD;AAAA,EAEA,gBAAgB;AACd,QAAI,OAAyB,KAAK;AAClC,OAAG;AACD,aAAO,KAAK;AAAA,IACd,SAAS,QAAQ,KAAK,aAAa,KAAK,gBAAgB,KAAK,aAAa,KAAK;AAE/E,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,aAAa,KAAK,cAAc;AACvC,aAAO,gBAAgB,gBAAgB,IAAI;AAAA,IAC7C;AAEA,WAAO,QAAQ,IAAI,MAAc,aAAa,KAAK,CAAC;AAAA,EACtD;AACF;", | ||
| "names": [] | ||
| } |
+3
-2
@@ -1,6 +0,7 @@ | ||
| // @tko/binding.if 🥊 4.0.0 ESM | ||
| // @tko/binding.if 🥊 4.0.1 ESM | ||
| "use strict"; | ||
| import { unwrap } from "@tko/observable"; | ||
| import ConditionalBindingHandler from "./ConditionalBindingHandler"; | ||
| import ConditionalBindingHandler from "./ConditionalBindingHandler.js"; | ||
| export class IfBindingHandler extends ConditionalBindingHandler { | ||
| ifCondition; | ||
| constructor(...args) { | ||
@@ -7,0 +8,0 @@ super(...args); |
@@ -5,4 +5,4 @@ { | ||
| "sourcesContent": ["import { unwrap } from '@tko/observable'\n\nimport ConditionalBindingHandler from './ConditionalBindingHandler'\n\n/**\n * For the `if:` binding.\n */\nexport class IfBindingHandler extends ConditionalBindingHandler {\n ifCondition: any\n constructor(...args: [any]) {\n super(...args)\n this.ifCondition = this.computed(() => !!unwrap(this.value))\n this.computed('render')\n }\n\n shouldDisplayIf() {\n return this.ifCondition()\n }\n\n override get bindingContext() {\n return this.ifCondition.isActive()\n ? this.$context.extend(() => {\n // Ensure that this context is dependant upon the conditional, so the\n // order of binding application is: conditional before its children.\n // See https://github.com/knockout/knockout/pull/2226\n this.ifCondition()\n return null\n })\n : this.$context\n }\n\n override renderStatus() {\n let shouldDisplay = this.shouldDisplayIf()\n\n if (this.elseChainIsAlreadySatisfied) {\n shouldDisplay = false\n // needsRefresh = isFirstRender || this.didDisplayOnLastUpdate FIXME\n this.completesElseChain(true)\n } else {\n this.completesElseChain(shouldDisplay)\n }\n return { shouldDisplay }\n }\n}\n\nexport class UnlessBindingHandler extends IfBindingHandler {\n override shouldDisplayIf() {\n return !super.shouldDisplayIf()\n }\n}\n"], | ||
| "mappings": ";;AAAA,SAAS,cAAc;AAEvB,OAAO,+BAA+B;AAK/B,aAAM,yBAAyB,0BAA0B;AAAA,EAE9D,eAAe,MAAa;AAC1B,UAAM,GAAG,IAAI;AACb,SAAK,cAAc,KAAK,SAAS,MAAM,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC;AAC3D,SAAK,SAAS,QAAQ;AAAA,EACxB;AAAA,EAEA,kBAAkB;AAChB,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAa,iBAAiB;AAC5B,WAAO,KAAK,YAAY,SAAS,IAC7B,KAAK,SAAS,OAAO,MAAM;AAIzB,WAAK,YAAY;AACjB,aAAO;AAAA,IACT,CAAC,IACD,KAAK;AAAA,EACX;AAAA,EAES,eAAe;AACtB,QAAI,gBAAgB,KAAK,gBAAgB;AAEzC,QAAI,KAAK,6BAA6B;AACpC,sBAAgB;AAEhB,WAAK,mBAAmB,IAAI;AAAA,IAC9B,OAAO;AACL,WAAK,mBAAmB,aAAa;AAAA,IACvC;AACA,WAAO,EAAE,cAAc;AAAA,EACzB;AACF;AAEO,aAAM,6BAA6B,iBAAiB;AAAA,EAChD,kBAAkB;AACzB,WAAO,CAAC,MAAM,gBAAgB;AAAA,EAChC;AACF;", | ||
| "mappings": ";;AAAA,SAAS,cAAc;AAEvB,OAAO,+BAA+B;AAK/B,aAAM,yBAAyB,0BAA0B;AAAA,EAC9D;AAAA,EACA,eAAe,MAAa;AAC1B,UAAM,GAAG,IAAI;AACb,SAAK,cAAc,KAAK,SAAS,MAAM,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC;AAC3D,SAAK,SAAS,QAAQ;AAAA,EACxB;AAAA,EAEA,kBAAkB;AAChB,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAa,iBAAiB;AAC5B,WAAO,KAAK,YAAY,SAAS,IAC7B,KAAK,SAAS,OAAO,MAAM;AAIzB,WAAK,YAAY;AACjB,aAAO;AAAA,IACT,CAAC,IACD,KAAK;AAAA,EACX;AAAA,EAES,eAAe;AACtB,QAAI,gBAAgB,KAAK,gBAAgB;AAEzC,QAAI,KAAK,6BAA6B;AACpC,sBAAgB;AAEhB,WAAK,mBAAmB,IAAI;AAAA,IAC9B,OAAO;AACL,WAAK,mBAAmB,aAAa;AAAA,IACvC;AACA,WAAO,EAAE,cAAc;AAAA,EACzB;AACF;AAEO,aAAM,6BAA6B,iBAAiB;AAAA,EAChD,kBAAkB;AACzB,WAAO,CAAC,MAAM,gBAAgB;AAAA,EAChC;AACF;", | ||
| "names": [] | ||
| } |
+4
-4
@@ -1,6 +0,6 @@ | ||
| // @tko/binding.if 🥊 4.0.0 ESM | ||
| // @tko/binding.if 🥊 4.0.1 ESM | ||
| "use strict"; | ||
| import { IfBindingHandler, UnlessBindingHandler } from "./ifUnless"; | ||
| import { WithBindingHandler } from "./with"; | ||
| import { ElseBindingHandler } from "./else"; | ||
| import { IfBindingHandler, UnlessBindingHandler } from "./ifUnless.js"; | ||
| import { WithBindingHandler } from "./with.js"; | ||
| import { ElseBindingHandler } from "./else.js"; | ||
| export const bindings = { | ||
@@ -7,0 +7,0 @@ if: IfBindingHandler, |
+4
-4
@@ -1,6 +0,6 @@ | ||
| // @tko/binding.if 🥊 4.0.0 MJS | ||
| // @tko/binding.if 🥊 4.0.1 MJS | ||
| "use strict"; | ||
| import { IfBindingHandler, UnlessBindingHandler } from "./ifUnless"; | ||
| import { WithBindingHandler } from "./with"; | ||
| import { ElseBindingHandler } from "./else"; | ||
| import { IfBindingHandler, UnlessBindingHandler } from "./ifUnless.js"; | ||
| import { WithBindingHandler } from "./with.js"; | ||
| import { ElseBindingHandler } from "./else.js"; | ||
| export const bindings = { | ||
@@ -7,0 +7,0 @@ if: IfBindingHandler, |
+4
-2
@@ -1,7 +0,9 @@ | ||
| // @tko/binding.if 🥊 4.0.0 ESM | ||
| // @tko/binding.if 🥊 4.0.1 ESM | ||
| "use strict"; | ||
| import { options } from "@tko/utils"; | ||
| import { unwrap } from "@tko/observable"; | ||
| import ConditionalBindingHandler from "./ConditionalBindingHandler"; | ||
| import ConditionalBindingHandler from "./ConditionalBindingHandler.js"; | ||
| export class WithBindingHandler extends ConditionalBindingHandler { | ||
| asOption; | ||
| conditional; | ||
| constructor(...args) { | ||
@@ -8,0 +10,0 @@ super(...args); |
+1
-1
@@ -5,4 +5,4 @@ { | ||
| "sourcesContent": ["import { options } from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nimport ConditionalBindingHandler from './ConditionalBindingHandler'\n\n/**\n * The following fails somewhere in the `limit` functions of Observables i.e.\n * it's an issue related to async/deferUpdates.\n */\nexport class WithBindingHandler extends ConditionalBindingHandler {\n asOption: any\n conditional: any\n constructor(...args: [any]) {\n super(...args)\n this.asOption = this.allBindings.get('as')\n\n // If given `as`, reduce the condition to a boolean, so it does not\n // change & refresh when the value is updated.\n const conditionalFn =\n this.asOption && !options.createChildContextWithAs ? () => Boolean(unwrap(this.value)) : () => unwrap(this.value)\n this.conditional = this.computed(conditionalFn)\n\n this.computed('render')\n }\n\n override get bindingContext() {\n if (!this.asOption) {\n return this.$context.createChildContext(this.valueAccessor)\n }\n return options.createChildContextWithAs\n ? this.$context.createChildContext(this.value, this.asOption)\n : this.$context.extend({ [this.asOption]: this.value })\n }\n\n override renderStatus() {\n const shouldDisplay = Boolean(this.conditional())\n return { shouldDisplay }\n }\n}\n"], | ||
| "mappings": ";;AAAA,SAAS,eAAe;AAExB,SAAS,cAAc;AAEvB,OAAO,+BAA+B;AAM/B,aAAM,2BAA2B,0BAA0B;AAAA,EAGhE,eAAe,MAAa;AAC1B,UAAM,GAAG,IAAI;AACb,SAAK,WAAW,KAAK,YAAY,IAAI,IAAI;AAIzC,UAAM,gBACJ,KAAK,YAAY,CAAC,QAAQ,2BAA2B,MAAM,QAAQ,OAAO,KAAK,KAAK,CAAC,IAAI,MAAM,OAAO,KAAK,KAAK;AAClH,SAAK,cAAc,KAAK,SAAS,aAAa;AAE9C,SAAK,SAAS,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAa,iBAAiB;AAC5B,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO,KAAK,SAAS,mBAAmB,KAAK,aAAa;AAAA,IAC5D;AACA,WAAO,QAAQ,2BACX,KAAK,SAAS,mBAAmB,KAAK,OAAO,KAAK,QAAQ,IAC1D,KAAK,SAAS,OAAO,EAAE,CAAC,KAAK,QAAQ,GAAG,KAAK,MAAM,CAAC;AAAA,EAC1D;AAAA,EAES,eAAe;AACtB,UAAM,gBAAgB,QAAQ,KAAK,YAAY,CAAC;AAChD,WAAO,EAAE,cAAc;AAAA,EACzB;AACF;", | ||
| "mappings": ";;AAAA,SAAS,eAAe;AAExB,SAAS,cAAc;AAEvB,OAAO,+BAA+B;AAM/B,aAAM,2BAA2B,0BAA0B;AAAA,EAChE;AAAA,EACA;AAAA,EACA,eAAe,MAAa;AAC1B,UAAM,GAAG,IAAI;AACb,SAAK,WAAW,KAAK,YAAY,IAAI,IAAI;AAIzC,UAAM,gBACJ,KAAK,YAAY,CAAC,QAAQ,2BAA2B,MAAM,QAAQ,OAAO,KAAK,KAAK,CAAC,IAAI,MAAM,OAAO,KAAK,KAAK;AAClH,SAAK,cAAc,KAAK,SAAS,aAAa;AAE9C,SAAK,SAAS,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAa,iBAAiB;AAC5B,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO,KAAK,SAAS,mBAAmB,KAAK,aAAa;AAAA,IAC5D;AACA,WAAO,QAAQ,2BACX,KAAK,SAAS,mBAAmB,KAAK,OAAO,KAAK,QAAQ,IAC1D,KAAK,SAAS,OAAO,EAAE,CAAC,KAAK,QAAQ,GAAG,KAAK,MAAM,CAAC;AAAA,EAC1D;AAAA,EAES,eAAe;AACtB,UAAM,gBAAgB,QAAQ,KAAK,YAAY,CAAC;AAChD,WAAO,EAAE,cAAc;AAAA,EACzB;AACF;", | ||
| "names": [] | ||
| } |
+11
-15
| { | ||
| "version": "4.0.0", | ||
| "version": "4.0.1", | ||
| "name": "@tko/binding.if", | ||
| "description": "TKO conditional (if/ifnot/unless/with/else) bindings", | ||
| "module": "dist/binding.if.js", | ||
| "module": "dist/index.js", | ||
| "files": [ | ||
| "dist/", | ||
| "helpers/" | ||
| "dist/" | ||
| ], | ||
@@ -26,13 +25,8 @@ "repository": { | ||
| "dependencies": { | ||
| "@tko/bind": "^4.0.0", | ||
| "@tko/computed": "^4.0.0", | ||
| "@tko/observable": "^4.0.0", | ||
| "@tko/utils": "^4.0.0", | ||
| "@tko/bind": "^4.0.1", | ||
| "@tko/computed": "^4.0.1", | ||
| "@tko/observable": "^4.0.1", | ||
| "@tko/utils": "^4.0.1", | ||
| "tslib": "^2.2.0" | ||
| }, | ||
| "karma": { | ||
| "frameworks": [ | ||
| "jasmine" | ||
| ] | ||
| }, | ||
| "licenses": [ | ||
@@ -48,5 +42,7 @@ { | ||
| "import": "./dist/index.js" | ||
| }, | ||
| "./helpers/*": "./helpers/*" | ||
| } | ||
| }, | ||
| "scripts": { | ||
| "build": "bun ../../tools/build.ts" | ||
| } | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
0
-100%43980
-86.08%477
-85.42%1
Infinity%Updated
Updated
Updated
Updated