@repobit/dex-store-elements 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +33 -16
  3. package/dist/src/actions/action.button.d.ts +2 -1
  4. package/dist/src/actions/action.button.js +2 -1
  5. package/dist/src/actions/action.button.js.map +1 -1
  6. package/dist/src/actions/action.input.d.ts +2 -1
  7. package/dist/src/actions/action.input.js.map +1 -1
  8. package/dist/src/actions/action.select.d.ts +2 -1
  9. package/dist/src/actions/action.select.js.map +1 -1
  10. package/dist/src/actions/index.js +12 -1
  11. package/dist/src/actions/index.js.map +1 -1
  12. package/dist/src/actions/utilty.d.ts +7 -1
  13. package/dist/src/actions/utilty.js +36 -5
  14. package/dist/src/actions/utilty.js.map +1 -1
  15. package/dist/src/events/events.d.ts +15 -0
  16. package/dist/src/events/events.js +22 -0
  17. package/dist/src/events/events.js.map +1 -1
  18. package/dist/src/nodes/node.context.d.ts +1 -0
  19. package/dist/src/nodes/node.context.js +4 -0
  20. package/dist/src/nodes/node.context.js.map +1 -1
  21. package/dist/src/nodes/node.option.js +10 -2
  22. package/dist/src/nodes/node.option.js.map +1 -1
  23. package/dist/src/nodes/node.product.js +10 -2
  24. package/dist/src/nodes/node.product.js.map +1 -1
  25. package/dist/src/nodes/node.state.d.ts +17 -0
  26. package/dist/src/nodes/node.state.js +220 -33
  27. package/dist/src/nodes/node.state.js.map +1 -1
  28. package/dist/src/renders/index.js +11 -1
  29. package/dist/src/renders/index.js.map +1 -1
  30. package/dist/src/renders/utility.d.ts +4 -1
  31. package/dist/src/renders/utility.js +52 -2
  32. package/dist/src/renders/utility.js.map +1 -1
  33. package/dist/src/templating/eta.d.ts +1 -1
  34. package/dist/src/templating/eta.js +1 -1
  35. package/dist/src/templating/eta.js.map +1 -1
  36. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,29 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.2.3](https://github.com/bitdefender/dex-core/compare/@repobit/dex-store-elements@1.2.2...@repobit/dex-store-elements@1.2.3) (2025-10-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **DEX-21811:** actions now can wait for renderers ([5b6d7dc](https://github.com/bitdefender/dex-core/commit/5b6d7dc0e34d3f45fdf9960fcbc86a21ff59fe8c))
12
+ * **DEX-21811:** add catch for methods that change the dom ([593c874](https://github.com/bitdefender/dex-core/commit/593c874fc65d224bee28cacb56f56e640e304ea0))
13
+ * **DEX-21811:** await eta template ([656bbe6](https://github.com/bitdefender/dex-core/commit/656bbe6e9d477a02dea45a0f6e8fd853bca05189))
14
+ * **DEX-21811:** context node now is isolated island ([b5e66ce](https://github.com/bitdefender/dex-core/commit/b5e66cec465849c9c79dec5464d8dc2e20fc1961))
15
+ * **DEX-21811:** eta template now listen dom changes ([8fd62b2](https://github.com/bitdefender/dex-core/commit/8fd62b2948cb33ef776aff0f1b7483ed559b0437))
16
+ * **DEX-21811:** fix action combination ([f26a739](https://github.com/bitdefender/dex-core/commit/f26a7399d08dbc811214b9fd7ab6469e59cc878f))
17
+
18
+
19
+
20
+ ## [1.2.2](https://github.com/bitdefender/dex-core/compare/@repobit/dex-store-elements@1.2.1...@repobit/dex-store-elements@1.2.2) (2025-10-16)
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * **DEX-21811:** use eta browser export ([485d6e9](https://github.com/bitdefender/dex-core/commit/485d6e91b9fed4b58f57c725b3eab280ce07d57e))
26
+
27
+
28
+
6
29
  ## [1.2.1](https://github.com/bitdefender/dex-core/compare/@repobit/dex-store-elements@1.2.0...@repobit/dex-store-elements@1.2.1) (2025-10-14)
7
30
 
8
31
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Lightweight HTML custom elements + attribute renderers for building dynamic pricing UIs on top of `@repobit/dex-store`.
4
4
 
5
- - Custom elements: `<bd-root>`, `<bd-product>`, `<bd-option>`, `<bd-state>`
5
+ - Custom elements: `<bd-root>`, `<bd-product>`, `<bd-option>`, `<bd-state>`, `<bd-context>`
6
6
  - Unified attribute-based renderers (no framework required)
7
7
  - Eta templates for text/HTML and attributes
8
8
  - Single, merged data context across product, option and state
@@ -10,14 +10,15 @@ Lightweight HTML custom elements + attribute renderers for building dynamic pric
10
10
 
11
11
  ## Requirements
12
12
  - Node 18+
13
- - Peer dependency: `lit@^3`
14
13
 
15
14
  ## Install
16
15
 
17
16
  ```bash
18
- npm i @repobit/dex-store-elements @repobit/dex-store lit
17
+ npm i @repobit/dex-store-elements @repobit/dex-store
19
18
  ```
20
19
 
20
+ Peer dependencies are resolved automatically by npm; no extra install command is required.
21
+
21
22
  ## Quick start
22
23
 
23
24
  ```html
@@ -185,6 +186,7 @@ Notes
185
186
  - Add `data-store-action` to elements to emit store events.
186
187
  - Set absolute values: `data-store-set-devices`, `data-store-set-subscription`, `data-store-set-id`, `data-store-set-campaign`
187
188
  - Update by delta/sequence: `data-store-set-type="devices|subscription"`, `data-store-set-delta="next|prev|<number>"`
189
+ - Source identifier: add `data-store-id="someId"` to tag the event's `storeId`. Providers with `ignore-events` that include `someId` will drop these events.
188
190
  - Initialize once per mount with:
189
191
  - `import { registerActionNodes } from '@repobit/dex-store-elements'`
190
192
  - `registerActionNodes(root)`
@@ -197,6 +199,34 @@ Notes
197
199
 
198
200
  Note: The package is side-effect free; elements are registered only when `registerContextNodes()` is called.
199
201
 
202
+ ## State & event controls
203
+ These attributes are available on `<bd-state>` and any element that extends it (`<bd-root>`, `<bd-product>`, `<bd-option>`).
204
+ - `ignore-events="store-a, store-b"`
205
+ - Comma-separated list of action ids. Events whose source element has a matching `data-store-id` are ignored by this node (and its subtree). Works for both action and delta events.
206
+ - Coupling with `data-store-id` (on action elements):
207
+ - Example:
208
+ - `<button data-store-action data-store-id="devicesBtn" data-store-set-devices="25">` dispatches an event with `storeId: "devicesBtn"`.
209
+ - `<bd-option ignore-events="devicesBtn">` ignores that event while still accepting events from other buttons.
210
+ - You can list multiple ids: `ignore-events="devicesBtn, subscriptionBtn"`.
211
+ - `ignore-events-parent`
212
+ - Ignores events received from ancestor providers and only reacts to DOM-bubbled events that originate within the current subtree.
213
+ - `<bd-context>` is a convenience element that defaults this behavior to enabled. It’s equivalent to `<bd-state ignore-events-parent>`.
214
+ - Example:
215
+ ```html
216
+ <bd-state store-name="outer">
217
+ <!-- Global action updates state here -->
218
+ <button data-store-action data-store-set-devices="25"></button>
219
+
220
+ <!-- Isolated island: only inner actions are observed -->
221
+ <bd-context store-name="island">
222
+ <button data-store-action data-store-set-devices="5"></button>
223
+ </bd-context>
224
+ </bd-state>
225
+ ```
226
+ In this setup, the inner `<bd-context>` ignores the outer button’s events.
227
+ - `no-collect`
228
+ - Turns off automatic option collection for aggregated state. Set this when you want the node to work locally without contributing to shared min/max computations (e.g., for preview widgets).
229
+
200
230
  ## Caveats
201
231
  - Scoping: attribute Eta and hide can only see contexts provided by ancestors. For example, `it.option.*` is only available inside `<bd-option>`.
202
232
  - Nested providers: inner providers render their own subtrees; outer nodes can still render attributes safely even when they contain nested providers.
@@ -212,16 +242,3 @@ Note: The package is side-effect free; elements are registered only when `regist
212
242
 
213
243
  ## License
214
244
  ISC
215
-
216
- ## Migration guide (v1.1 → current)
217
- - Imports and initialization:
218
- - `initActionNodes` → `registerActionNodes`
219
- - `initRenderNodes` → `registerRenderNodes`
220
- - New explicit API: `registerContextNodes()` (call this before using the elements)
221
- - Attribute names (kebab-case):
222
- - `storeName` → `store-name`
223
- - `productId` → `product-id`
224
- - `ignoreEvents` → `ignore-events`
225
- - `noCollect` → `no-collect`
226
- - `autoForward` → `auto-forward`
227
- - `ignore-events-parent` remains unchanged.
@@ -1 +1,2 @@
1
- export declare const button: (el: HTMLElement) => void;
1
+ import { ActionNode } from "./utilty.js";
2
+ export declare const button: (el: ActionNode) => void;
@@ -1,5 +1,5 @@
1
1
  import { ActionEvent, UpdateByDeltaEvent } from "../events/events.js";
2
- import { addEventListener, readClickAttributes } from "./utilty.js";
2
+ import { addEventListener, connectedCallback, readClickAttributes } from "./utilty.js";
3
3
  export const button = (el) => {
4
4
  const action = () => {
5
5
  const attr = readClickAttributes(el);
@@ -9,6 +9,7 @@ export const button = (el) => {
9
9
  }
10
10
  el.dispatchEvent(new ActionEvent(attr));
11
11
  };
12
+ connectedCallback(el);
12
13
  addEventListener(el, "click", action);
13
14
  };
14
15
  //# sourceMappingURL=action.button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action.button.js","sourceRoot":"","sources":["../../../src/actions/action.button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAe,EAAE,EAAE;IAExC,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,EAAE,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9C,OAAO;QACT,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC;IAEF,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC,CAAA"}
1
+ {"version":3,"file":"action.button.js","sourceRoot":"","sources":["../../../src/actions/action.button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAc,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;IAEvC,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,EAAE,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9C,OAAO;QACT,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC;IAEF,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACtB,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC,CAAA"}
@@ -1 +1,2 @@
1
- export declare const input: (el: HTMLInputElement) => void;
1
+ import { ActionNode } from "./utilty.js";
2
+ export declare const input: (el: ActionNode<HTMLInputElement>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"action.input.js","sourceRoot":"","sources":["../../../src/actions/action.input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAoB,EAAE,EAAE;IAC5C,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,EAAE,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,EAAE,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC;gBACtC,IAAI,EAAQ,IAAI,CAAC,IAAI;gBACrB,KAAK,EAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC5B,GAAG,EAAS,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;gBAC1B,GAAG,EAAS,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;gBAC1B,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAK,IAAI,CAAC,OAAO;aACzB,CAAC,CAAC,CAAA;YAEH,OAAO;QACT,CAAC;IACH,CAAC,CAAA;IAED,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM;IACV,CAAC;AAEH,CAAC,CAAA"}
1
+ {"version":3,"file":"action.input.js","sourceRoot":"","sources":["../../../src/actions/action.input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAc,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE7E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAgC,EAAE,EAAE;IACxD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,EAAE,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,EAAE,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC;gBACtC,IAAI,EAAQ,IAAI,CAAC,IAAI;gBACrB,KAAK,EAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC5B,GAAG,EAAS,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;gBAC1B,GAAG,EAAS,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;gBAC1B,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAK,IAAI,CAAC,OAAO;aACzB,CAAC,CAAC,CAAA;YAEH,OAAO;QACT,CAAC;IACH,CAAC,CAAA;IAED,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM;IACV,CAAC;AAEH,CAAC,CAAA"}
@@ -1 +1,2 @@
1
- export declare const select: (el: HTMLSelectElement) => void;
1
+ import { ActionNode } from "./utilty.js";
2
+ export declare const select: (el: ActionNode<HTMLSelectElement>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"action.select.js","sourceRoot":"","sources":["../../../src/actions/action.select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAqB,EAAE,EAAE;IAE9C,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAA"}
1
+ {"version":3,"file":"action.select.js","sourceRoot":"","sources":["../../../src/actions/action.select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAc,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAiC,EAAE,EAAE;IAE1D,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { DATA_ACTION_NODE, handleActionNode } from "./utilty.js";
1
+ import { DATA_ACTION_NODE, handleActionNode, cleanupActionNode } from "./utilty.js";
2
2
  const registerActionNodes = (document) => {
3
3
  // On page load, “announce” the ones already in the DOM:
4
4
  document
@@ -18,6 +18,17 @@ const registerActionNodes = (document) => {
18
18
  .querySelectorAll(DATA_ACTION_NODE)
19
19
  .forEach(handleActionNode);
20
20
  }
21
+ for (const node of Array.from(m.removedNodes)) {
22
+ if (!(node instanceof HTMLElement))
23
+ continue;
24
+ // check the node itself
25
+ if (node.matches(DATA_ACTION_NODE)) {
26
+ cleanupActionNode(node);
27
+ }
28
+ node
29
+ .querySelectorAll(DATA_ACTION_NODE)
30
+ .forEach(n => cleanupActionNode(n));
31
+ }
21
32
  }
22
33
  });
23
34
  // make sure to observe subtree so deep inserts fire here:
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE1E,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACtD,wDAAwD;IACtD,QAAQ;SACL,gBAAgB,CAAa,gBAAgB,CAAC;SAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,kCAAkC;IAClC,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;oBAAE,SAAS;gBAE7C,wBAAwB;gBACxB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,gBAAgB,CAAC,IAAkB,CAAC,CAAC;gBACvC,CAAC;gBAED,IAAI;qBACD,gBAAgB,CAAa,gBAAgB,CAAC;qBAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAI,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACtD,wDAAwD;IACtD,QAAQ;SACL,gBAAgB,CAAa,gBAAgB,CAAC;SAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,kCAAkC;IAClC,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;oBAAE,SAAS;gBAE7C,wBAAwB;gBACxB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,gBAAgB,CAAC,IAAkB,CAAC,CAAC;gBACvC,CAAC;gBAED,IAAI;qBACD,gBAAgB,CAAa,gBAAgB,CAAC;qBAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;oBAAE,SAAS;gBAE7C,wBAAwB;gBACxB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,iBAAiB,CAAC,IAAkB,CAAC,CAAC;gBACxC,CAAC;gBAED,IAAI;qBACD,gBAAgB,CAAa,gBAAgB,CAAC;qBAC9C,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAe,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAI,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,9 +1,15 @@
1
1
  import { Action, UpdateByDelta } from "../events/events.js";
2
2
  export type ActionAttributes = UpdateByDelta | Action;
3
- export type ActionNode = HTMLElement & {
3
+ type WithStore = {
4
4
  storeName: symbol;
5
+ updateComplete: Promise<void>;
5
6
  };
7
+ export type ActionNode<T extends HTMLElement = HTMLElement> = T & WithStore;
6
8
  export declare const DATA_ACTION_NODE = "[data-store-action]";
7
9
  export declare const readClickAttributes: (el: HTMLElement) => ActionAttributes;
10
+ export declare const connectedCallback: (el: ActionNode) => void;
11
+ export declare const disconnectedCallback: (el: ActionNode) => void;
8
12
  export declare const handleActionNode: (node: ActionNode) => void;
13
+ export declare const cleanupActionNode: (node: ActionNode) => void;
9
14
  export declare const addEventListener: (el: HTMLElement, type: "click" | "change", listener: (event: Event) => void) => void;
15
+ export {};
@@ -3,6 +3,8 @@ import { button } from "./action.button.js";
3
3
  import { input } from "./action.input.js";
4
4
  import { select } from "./action.select.js";
5
5
  export const DATA_ACTION_NODE = "[data-store-action]";
6
+ // Track initialized action nodes to ensure we don't wire them up twice
7
+ const ACTION_BOUND = new WeakSet();
6
8
  export const readClickAttributes = (el) => {
7
9
  const ds = el.dataset;
8
10
  const storeId = ds.storeId || undefined;
@@ -27,17 +29,26 @@ export const readClickAttributes = (el) => {
27
29
  };
28
30
  }
29
31
  };
30
- const addLogic = (el) => {
32
+ const addLogic = async (el) => {
33
+ if (el.updateComplete) {
34
+ await el.updateComplete;
35
+ }
31
36
  if (el instanceof HTMLInputElement) {
37
+ connectedCallback(el);
32
38
  input(el);
39
+ return;
33
40
  }
34
41
  if (el instanceof HTMLSelectElement) {
42
+ [...el.options]
43
+ .forEach(option => connectedCallback(option));
35
44
  select(el);
45
+ return;
36
46
  }
37
47
  //treat everything else as a button
38
48
  button(el);
49
+ connectedCallback(el);
39
50
  };
40
- const connectedCallback = (el) => {
51
+ export const connectedCallback = (el) => {
41
52
  if (!el.storeName) {
42
53
  el.storeName = Symbol("action");
43
54
  }
@@ -53,7 +64,7 @@ const connectedCallback = (el) => {
53
64
  }
54
65
  }
55
66
  };
56
- const disconnectedCallback = (el) => {
67
+ export const disconnectedCallback = (el) => {
57
68
  const attr = readClickAttributes(el);
58
69
  const noCollect = (el.dataset.storeNoCollect === '' || el.dataset.storeNoCollect === 'true');
59
70
  const shouldCollect = !noCollect;
@@ -73,15 +84,35 @@ const disconnectedCallback = (el) => {
73
84
  }
74
85
  };
75
86
  export const handleActionNode = (node) => {
87
+ if (ACTION_BOUND.has(node))
88
+ return;
89
+ ACTION_BOUND.add(node);
76
90
  addLogic(node);
77
- connectedCallback(node);
91
+ };
92
+ export const cleanupActionNode = (node) => {
93
+ // Fire disconnect events to clear collected actions
94
+ if (node instanceof HTMLSelectElement) {
95
+ [...node.options].forEach(option => disconnectedCallback(option));
96
+ }
97
+ else {
98
+ disconnectedCallback(node);
99
+ }
100
+ ACTION_BOUND.delete(node);
78
101
  };
79
102
  export const addEventListener = (el, type, listener) => {
80
103
  el.addEventListener(type, listener);
81
104
  const originalRemove = el.remove;
82
105
  el.remove = () => {
83
- disconnectedCallback(el);
106
+ if (el instanceof HTMLSelectElement) {
107
+ [...el.options]
108
+ .forEach(option => disconnectedCallback(option));
109
+ }
110
+ else {
111
+ disconnectedCallback(el);
112
+ }
84
113
  el.removeEventListener(type, listener);
114
+ // Allow re-initialization if element is re-attached later
115
+ ACTION_BOUND.delete(el);
85
116
  originalRemove.call(el);
86
117
  };
87
118
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utilty.js","sourceRoot":"","sources":["../../../src/actions/utilty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utilty.js","sourceRoot":"","sources":["../../../src/actions/utilty.ts"],"names":[],"mappings":"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"}
@@ -57,4 +57,19 @@ export declare class CollectOptionEvent extends CustomEvent<CollectOption> {
57
57
  static readonly eventName = "store-collect-option";
58
58
  constructor(detail: CollectOption);
59
59
  }
60
+ /**
61
+ * Contextual child registration for updateComplete coordination.
62
+ * Children dispatch these to their nearest StateNode-like parent.
63
+ */
64
+ export type CollectChild = {
65
+ child: HTMLElement;
66
+ };
67
+ export declare class CollectChildEvent extends CustomEvent<CollectChild> {
68
+ static readonly eventName = "store-collect-child";
69
+ constructor(detail: CollectChild);
70
+ }
71
+ export declare class CollectChildRemovedEvent extends CustomEvent<CollectChild> {
72
+ static readonly eventName = "store-collect-child-removed";
73
+ constructor(detail: CollectChild);
74
+ }
60
75
  export type EventType = UpdateByDeltaEvent | ActionEvent;
@@ -53,4 +53,26 @@ export class CollectOptionEvent extends CustomEvent {
53
53
  });
54
54
  }
55
55
  }
56
+ export class CollectChildEvent extends CustomEvent {
57
+ static { this.eventName = "store-collect-child"; }
58
+ constructor(detail) {
59
+ super(CollectChildEvent.eventName, {
60
+ detail,
61
+ bubbles: true,
62
+ composed: true,
63
+ cancelable: true
64
+ });
65
+ }
66
+ }
67
+ export class CollectChildRemovedEvent extends CustomEvent {
68
+ static { this.eventName = "store-collect-child-removed"; }
69
+ constructor(detail) {
70
+ super(CollectChildRemovedEvent.eventName, {
71
+ detail,
72
+ bubbles: true,
73
+ composed: true,
74
+ cancelable: true
75
+ });
76
+ }
77
+ }
56
78
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/events/events.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,kBAAmB,SAAQ,WAA0B;aAChD,cAAS,GAAG,oBAAoB,CAAC;IAEjD,YAAY,MAAqB;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE;YAClC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,WAAY,SAAQ,WAAmB;aAClC,cAAS,GAAG,kBAAkB,CAAC;IAE/C,YAAY,MAAc;QACxB,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE;YAC3B,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,WAA0B;aAChD,cAAS,GAAG,sBAAsB,CAAC;IAEnD,YAAY,MAAqB;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE;YAClC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,yBAA0B,SAAQ,WAAiC;aAC9D,cAAS,GAAG,+BAA+B,CAAC;IAE5D,YAAY,MAA4B;QACtC,KAAK,CAAC,yBAAyB,CAAC,SAAS,EAAE;YACzC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,WAA0B;aAChD,cAAS,GAAG,sBAAsB,CAAC;IAEnD,YAAY,MAAqB;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE;YAClC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/events/events.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,kBAAmB,SAAQ,WAA0B;aAChD,cAAS,GAAG,oBAAoB,CAAC;IAEjD,YAAY,MAAqB;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE;YAClC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,WAAY,SAAQ,WAAmB;aAClC,cAAS,GAAG,kBAAkB,CAAC;IAE/C,YAAY,MAAc;QACxB,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE;YAC3B,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,WAA0B;aAChD,cAAS,GAAG,sBAAsB,CAAC;IAEnD,YAAY,MAAqB;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE;YAClC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,yBAA0B,SAAQ,WAAiC;aAC9D,cAAS,GAAG,+BAA+B,CAAC;IAE5D,YAAY,MAA4B;QACtC,KAAK,CAAC,yBAAyB,CAAC,SAAS,EAAE;YACzC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,WAA0B;aAChD,cAAS,GAAG,sBAAsB,CAAC;IAEnD,YAAY,MAAqB;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE;YAClC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAWH,MAAM,OAAO,iBAAkB,SAAQ,WAAyB;aAC9C,cAAS,GAAG,qBAAqB,CAAC;IAElD,YAAY,MAAoB;QAC9B,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE;YACjC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,OAAO,wBAAyB,SAAQ,WAAyB;aACrD,cAAS,GAAG,6BAA6B,CAAC;IAE1D,YAAY,MAAoB;QAC9B,KAAK,CAAC,wBAAwB,CAAC,SAAS,EAAE;YACxC,MAAM;YACN,OAAO,EAAK,IAAI;YAChB,QAAQ,EAAI,IAAI;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { StateNode } from "./node.state.js";
2
2
  export declare class ContextNode extends StateNode {
3
+ ignoreEventsParent: boolean;
3
4
  }
@@ -1,4 +1,8 @@
1
1
  import { StateNode } from "./node.state.js";
2
2
  export class ContextNode extends StateNode {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.ignoreEventsParent = true;
6
+ }
3
7
  }
4
8
  //# sourceMappingURL=node.context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.context.js","sourceRoot":"","sources":["../../../src/nodes/node.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,MAAM,OAAO,WAAY,SAAQ,SAAS;CAAG"}
1
+ {"version":3,"file":"node.context.js","sourceRoot":"","sources":["../../../src/nodes/node.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,MAAM,OAAO,WAAY,SAAQ,SAAS;IAA1C;;QACE,uBAAkB,GAAG,IAAI,CAAC;IAC5B,CAAC;CAAA"}
@@ -100,8 +100,16 @@ export class OptionNode extends StateNode {
100
100
  const option = opt ?? this._option;
101
101
  if (!option)
102
102
  return;
103
- const it = await toDSLContext({ option, product, state, derived });
104
- await this._renderEtaTemplates(it);
103
+ this._etaRenderInProgress = true;
104
+ try {
105
+ const it = await toDSLContext({ option, product, state, derived });
106
+ await this._renderEtaTemplates(it);
107
+ }
108
+ finally {
109
+ this._etaRenderInProgress = false;
110
+ // Resolve any waiters from super.getUpdateComplete()
111
+ this._notifyEtaIdle();
112
+ }
105
113
  },
106
114
  args: () => [this._option, this.state, this.product, this._derived]
107
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"node.option.js","sourceRoot":"","sources":["../../../src/nodes/node.option.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.option.js","sourceRoot":"","sources":["../../../src/nodes/node.option.ts"],"names":[],"mappings":"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"}
@@ -64,8 +64,16 @@ export class ProductNode extends StateNode {
64
64
  task: async ([product, state, derived]) => {
65
65
  if (!product)
66
66
  return;
67
- const it = await toDSLContext({ product, state, derived });
68
- await this._renderEtaTemplates(it);
67
+ this._etaRenderInProgress = true;
68
+ try {
69
+ const it = await toDSLContext({ product, state, derived });
70
+ await this._renderEtaTemplates(it);
71
+ }
72
+ finally {
73
+ this._etaRenderInProgress = false;
74
+ // Resolve any waiters from super.getUpdateComplete()
75
+ this._notifyEtaIdle();
76
+ }
69
77
  },
70
78
  args: () => [this.product, this.state, this._derived]
71
79
  });
@@ -1 +1 @@
1
- {"version":3,"file":"node.product.js","sourceRoot":"","sources":["../../../src/nodes/node.product.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.product.js","sourceRoot":"","sources":["../../../src/nodes/node.product.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,19 @@ export declare class StateNode extends LitElement {
71
71
  private _tplAttrTemplates;
72
72
  private _etaRenderTask;
73
73
  protected shouldRunEtaStateRender(): boolean;
74
+ protected _etaRenderInProgress: boolean;
75
+ private _etaRenderScheduled;
76
+ private _etaRenderNeedsRun;
77
+ private _etaRenderDebounce?;
78
+ private _etaRenderTriggeredByMutation;
79
+ private _etaRenderCurrentFromMutation;
80
+ private _slotMo?;
81
+ private _etaIdleWaiters;
82
+ private _contextualChildren;
83
+ private _isEtaIdle;
84
+ private _waitEtaSettled;
85
+ protected _notifyEtaIdle(): void;
86
+ private _scheduleEtaRenderFromMutation;
74
87
  private _isStateNodeElement;
75
88
  private _hasNestedStateNode;
76
89
  private _safeEtaRender;
@@ -81,6 +94,10 @@ export declare class StateNode extends LitElement {
81
94
  connectedCallback(): void;
82
95
  remove(): void;
83
96
  disconnectedCallback(): void;
97
+ private _onCollectChild;
98
+ private _onCollectChildRemoved;
99
+ private _announceAsContextualChild;
100
+ private _announceContextualChildRemoved;
84
101
  protected _eventChange(e: EventType): void;
85
102
  protected _forwardEvent(e?: eventContexType): void;
86
103
  private _collectOptionEvent;