@vectoriox/iox-builder 3.0.0 → 3.2.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-builder",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -83,11 +83,16 @@ declare enum DataSourceType {
83
83
  /** A ROUTE-CONTEXT value derived from the current route item — `$route`/`$current`/`$siblings`/
84
84
  * `$related`. Not fetched: computed by the shared `computeRelative` from other resolved sources.
85
85
  * See relative-data-sources-plan.md. */
86
- Relative = "relative"
86
+ Relative = "relative",
87
+ /** A page-local VARIABLE: a named resource whose value is WRITTEN at runtime by an interaction
88
+ * (`setContext`), never fetched. Starts empty; elements bind to it like any other alias.
89
+ * `request.variable.itemsFrom` names the source whose items it holds, for field suggestions.
90
+ * See element-context-state-plan.md. */
91
+ Variable = "variable"
87
92
  }
88
93
  interface IoxDataSource {
89
94
  id: string;
90
- type: 'cms' | 'shop' | 'internal-api' | 'external-api' | 'static' | 'derived' | 'relative';
95
+ type: 'cms' | 'shop' | 'internal-api' | 'external-api' | 'static' | 'derived' | 'relative' | 'variable';
91
96
  mode: 'single' | 'query';
92
97
  alias: string;
93
98
  request: {
@@ -101,6 +106,11 @@ interface IoxDataSource {
101
106
  /** `relative` alias: a route-context computation (kind + from/subjectFrom/sortBy/matchFields…),
102
107
  * resolved by the shared `computeRelative`. */
103
108
  relative?: RelativeSourceSpec;
109
+ /** `variable` alias: written at runtime by an interaction. `itemsFrom` names the source whose
110
+ * items it holds — optional, and used only to suggest fields in the bind picker. */
111
+ variable?: {
112
+ itemsFrom?: string;
113
+ };
104
114
  cms?: {
105
115
  contentType: string;
106
116
  filter?: any;
@@ -707,7 +717,12 @@ declare enum PanelEventTypes {
707
717
  /** Open the Interactions panel and EXPAND a specific interaction for editing (data = interaction
708
718
  * id). Emitted when the overlay interaction badge is clicked so that badge → "edit THIS
709
719
  * interaction", without firing the element's (live) animation. */
710
- INTERACTION_EDIT = "interactionedit"
720
+ INTERACTION_EDIT = "interactionedit",
721
+ /** A node's `interactions` were added/removed/edited. Carries `{ node }`.
722
+ * Repeater/Slider listen so their PREVIEW CLONES are re-cloned with the new interactions —
723
+ * clones are attached by ELEMENT at render time, so without this a new interaction only starts
724
+ * working after a save + reload. */
725
+ INTERACTION_CHANGED = "interactionchanged"
711
726
  }
712
727
  interface PanelEvent {
713
728
  type: PanelEventTypes;