@vectoriox/iox-builder 2.1.1 → 2.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": "2.1.1",
3
+ "version": "2.2.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -610,7 +610,11 @@ declare enum PanelEventTypes {
610
610
  /** Open the Interactions panel in preset-edit mode for the given preset ID. */
611
611
  INTERACTION_PRESET_EDIT = "interactionpresetedit",
612
612
  /** Fired after an interaction preset is created, updated, or deleted so panels refresh. */
613
- INTERACTION_PRESETS_CHANGED = "interactionpresetschanged"
613
+ INTERACTION_PRESETS_CHANGED = "interactionpresetschanged",
614
+ /** Open the Interactions panel and EXPAND a specific interaction for editing (data = interaction
615
+ * id). Emitted when the overlay interaction badge is clicked so that badge → "edit THIS
616
+ * interaction", without firing the element's (live) animation. */
617
+ INTERACTION_EDIT = "interactionedit"
614
618
  }
615
619
  interface PanelEvent {
616
620
  type: PanelEventTypes;
@@ -1316,6 +1320,7 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1316
1320
  action: ToolbarAction;
1317
1321
  entry: OverlayEntry;
1318
1322
  position?: 'before' | 'after';
1323
+ interaction?: IoxInteraction;
1319
1324
  }): void;
1320
1325
  confirmSaveBlock(): void;
1321
1326
  cancelSaveBlock(): void;
@@ -1482,6 +1487,7 @@ declare class OverlayComponent implements OnInit, OnDestroy {
1482
1487
  action: ToolbarAction;
1483
1488
  entry: OverlayEntry;
1484
1489
  position?: "before" | "after";
1490
+ interaction?: IoxInteraction;
1485
1491
  }>;
1486
1492
  hoverEntry: OverlayEntry | null;
1487
1493
  selectEntry: OverlayEntry | null;
@@ -1534,7 +1540,15 @@ declare class OverlayComponent implements OnInit, OnDestroy {
1534
1540
  get hasPresetInClipboard(): boolean;
1535
1541
  get hasInteractionPresetInClipboard(): boolean;
1536
1542
  onEditPreset(event: MouseEvent): void;
1537
- onEditInteractionPreset(event: MouseEvent): void;
1543
+ /**
1544
+ * Interaction badge clicked. It must ONLY open the Interactions panel with THIS interaction
1545
+ * active — it must NOT fire the element's (live) animation. `preventDefault` + `stopPropagation`
1546
+ * fully swallow the pointer event so it can never reach the node's live `click` interaction
1547
+ * listener. The specific `ix` is forwarded so the builder can expand it in the panel.
1548
+ */
1549
+ onEditInteractionPreset(event: MouseEvent, ix?: IoxInteraction): void;
1550
+ /** Swallow the follow-up click on the badge so it can't reach the canvas / a live interaction. */
1551
+ onBadgeClickSwallow(event: MouseEvent): void;
1538
1552
  onBadgeContextMenu(event: MouseEvent, type: 'style' | 'interaction', ix?: IoxInteraction): void;
1539
1553
  onBadgeCopy(): void;
1540
1554
  onBadgeEdit(): void;
@@ -1736,6 +1750,12 @@ declare class BuilderDataSourceService {
1736
1750
  fetch(ds: IoxDataSource | undefined): Observable<any>;
1737
1751
  /** Same fetch, always as an array — for the canvas components that repeat over the source. */
1738
1752
  fetchItems(ds: IoxDataSource | undefined): Observable<any[]>;
1753
+ /**
1754
+ * Items a Repeater/Slider iterates over. With `sourcePath` it repeats over an array PROPERTY of a
1755
+ * SINGLE-resource source (e.g. `product.gallery`); without it the source itself is the list.
1756
+ * Uses the SHARED `resolveRepeaterItems` so the canvas preview matches the SSR engine.
1757
+ */
1758
+ fetchRepeaterItems(ds: IoxDataSource | undefined, sourcePath?: string): Observable<any[]>;
1739
1759
  static ɵfac: i0.ɵɵFactoryDeclaration<BuilderDataSourceService, [null, { optional: true; }]>;
1740
1760
  static ɵprov: i0.ɵɵInjectableDeclaration<BuilderDataSourceService>;
1741
1761
  }
@@ -1762,10 +1782,14 @@ declare class BuilderRepeaterComponent implements OnInit, OnDestroy {
1762
1782
  /** Bound reference passed to [ioxDropzonePostDrop] so the directive can call it. */
1763
1783
  readonly refreshPreviewsBound: () => void;
1764
1784
  private _source;
1785
+ private _sourcePath;
1765
1786
  private _limit;
1766
1787
  private bindingSub?;
1767
1788
  get source(): string;
1768
1789
  set source(value: string);
1790
+ /** Optional array PROPERTY inside a single-resource source to repeat over (e.g. `gallery`). */
1791
+ get sourcePath(): string;
1792
+ set sourcePath(value: string);
1769
1793
  get limit(): number;
1770
1794
  set limit(value: number);
1771
1795
  constructor(dragEngine: DragEngineService, overlayService: OverlayService, dataSourceService: BuilderDataSourceService, dsRegistry: DataSourceRegistryService, panelEventService: PanelEventService, cdr: ChangeDetectorRef);
@@ -1779,7 +1803,7 @@ declare class BuilderRepeaterComponent implements OnInit, OnDestroy {
1779
1803
  private refreshPreviews;
1780
1804
  private applyFirstItemToTemplate;
1781
1805
  static ɵfac: i0.ɵɵFactoryDeclaration<BuilderRepeaterComponent, never>;
1782
- static ɵcmp: i0.ɵɵComponentDeclaration<BuilderRepeaterComponent, "app-builder-repeater", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; "source": { "alias": "source"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
1806
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderRepeaterComponent, "app-builder-repeater", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; "source": { "alias": "source"; "required": false; }; "sourcePath": { "alias": "sourcePath"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
1783
1807
  }
1784
1808
 
1785
1809
  /**