Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@tko/binding.if

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tko/binding.if - npm Package Compare versions

Comparing version
4.0.0
to
4.0.1
+4
-1
dist/ConditionalBindingHandler.js

@@ -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);

+1
-1

@@ -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": []
}

@@ -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;

@@ -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": []
}

@@ -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": []
}

@@ -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,

@@ -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,

@@ -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);

@@ -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": []
}
{
"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