@vectoriox/iox-builder 2.5.0 → 2.6.1

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.5.0",
3
+ "version": "2.6.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -522,7 +522,8 @@ declare enum ToolbarAction {
522
522
  PasteInteractionPreset = "paste-interaction-preset",
523
523
  Copy = "copy",
524
524
  Paste = "paste",
525
- AddSlide = "add-slide"
525
+ AddSlide = "add-slide",
526
+ Wrap = "wrap"
526
527
  }
527
528
  declare enum NodeAction {
528
529
  Delete = "delete",
@@ -1376,6 +1377,7 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1376
1377
  entry: OverlayEntry;
1377
1378
  position?: 'before' | 'after';
1378
1379
  interaction?: IoxInteraction;
1380
+ wrapType?: string;
1379
1381
  }): void;
1380
1382
  confirmSaveBlock(): void;
1381
1383
  cancelSaveBlock(): void;
@@ -1397,6 +1399,10 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1397
1399
  * scope, so the bindings panel needs the repeater to sample its current item (e.g. bind an
1398
1400
  * Image to a `gallery` string item). Prefers the innermost repeater when nested. */
1399
1401
  private findRepeaterAncestorOf;
1402
+ /** If `node` lives inside a Repeater template, tell that repeater to rebuild its preview rows so
1403
+ * a structural change (e.g. wrapping a template child) propagates to every repeated row. No-op
1404
+ * when the node is not inside a repeater. */
1405
+ private _refreshRepeaterFor;
1400
1406
  /** Emit ELEMENT_SELECT with the ancestors the panels need (symbol + repeater item scope). */
1401
1407
  private _emitElementSelect;
1402
1408
  /** Read a node's current `display` value. The style panel mutates `styleTraits` in place at edit
@@ -1553,7 +1559,16 @@ declare class OverlayComponent implements OnInit, OnDestroy {
1553
1559
  entry: OverlayEntry;
1554
1560
  position?: "before" | "after";
1555
1561
  interaction?: IoxInteraction;
1562
+ wrapType?: string;
1556
1563
  }>;
1564
+ /** Element types the selected node can be wrapped in (Wrap-in submenu). Phase 1: layout containers. */
1565
+ readonly wrapTargets: {
1566
+ type: string;
1567
+ label: string;
1568
+ icon: string;
1569
+ }[];
1570
+ /** Whether the Wrap-in flyout submenu is open (hover-driven). */
1571
+ wrapSubmenuOpen: boolean;
1557
1572
  hoverEntry: OverlayEntry | null;
1558
1573
  selectEntry: OverlayEntry | null;
1559
1574
  hiOutlineStyle: Record<string, string>;
@@ -1585,6 +1600,9 @@ declare class OverlayComponent implements OnInit, OnDestroy {
1585
1600
  onSelectParent(event: MouseEvent): void;
1586
1601
  onDuplicate(event: MouseEvent): void;
1587
1602
  onDelete(event: MouseEvent): void;
1603
+ onWrap(event: MouseEvent, wrapType: string): void;
1604
+ /** Slider slides must stay direct children of the slider container — never wrap them. */
1605
+ get canWrap(): boolean;
1588
1606
  onPlay(event: MouseEvent): void;
1589
1607
  onSaveAsBlock(event: MouseEvent): void;
1590
1608
  onToggleMore(event: MouseEvent): void;
@@ -1887,6 +1905,13 @@ declare class BuilderRepeaterComponent implements OnInit, OnDestroy {
1887
1905
  private isInTemplate;
1888
1906
  private refreshPreviews;
1889
1907
  private applyFirstItemToTemplate;
1908
+ /** Apply item[0]'s bound values to the live template row, walking the WHOLE subtree — not just
1909
+ * direct children. A bound node can sit any level deep once a template child is wrapped in a
1910
+ * container (or otherwise nested), so recursion is required or the first row shows defaults. */
1911
+ private applyBindingsToNodes;
1912
+ /** Rebuild preview rows after the template STRUCTURE changed (e.g. a child was wrapped, deleted,
1913
+ * or moved). Deferred so the new DOM + overlay refs exist before bindings are re-applied. */
1914
+ refreshTemplate(): void;
1890
1915
  static ɵfac: i0.ɵɵFactoryDeclaration<BuilderRepeaterComponent, never>;
1891
1916
  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>;
1892
1917
  }
@@ -2204,6 +2229,38 @@ declare class IoxBuilderModule {
2204
2229
  static ɵinj: i0.ɵɵInjectorDeclaration<IoxBuilderModule>;
2205
2230
  }
2206
2231
 
2232
+ /**
2233
+ * Locate a node within a forest (array of root nodes + their descendants) by
2234
+ * reference identity. Returns the parent array holding the node and its index,
2235
+ * or `null` if the node is not present.
2236
+ *
2237
+ * Reference-based to match the rest of the builder tree operations, which pass
2238
+ * the live `ComponentNode` object around (see `findNodeInTree`).
2239
+ */
2240
+ declare function findNodeLocation(roots: ComponentNode[], target: ComponentNode): {
2241
+ parent: ComponentNode[];
2242
+ index: number;
2243
+ } | null;
2244
+ /**
2245
+ * Wrap `target` inside `wrapper`, in place, within the forest it already lives in.
2246
+ *
2247
+ * The wrapper replaces the target at its original position and takes the target
2248
+ * as its only child. **Context is preserved** — the operation never moves the
2249
+ * node between the page and global trees; the caller passes the forest the node
2250
+ * lives in (page layout OR global elements), and the surgery stays inside it.
2251
+ *
2252
+ * Global flags (`isGlobal`/`globalPosition`) are carried ONLY by the top-level
2253
+ * node of the global forest. When wrapping such a node, those flags transfer to
2254
+ * the wrapper — which becomes the new top-level global node — and are cleared on
2255
+ * the now-inner node, so the element keeps rendering in its global slot. Wrapping
2256
+ * anything else (a page node, or a child nested inside a global element) leaves
2257
+ * all global flags untouched.
2258
+ *
2259
+ * @returns the wrapper on success, or `null` if the target was not found (in
2260
+ * which case nothing is mutated).
2261
+ */
2262
+ declare function wrapNode(roots: ComponentNode[], target: ComponentNode, wrapper: ComponentNode): ComponentNode | null;
2263
+
2207
2264
  interface HistoryEntry {
2208
2265
  layout: ComponentNode[];
2209
2266
  timestamp: number;
@@ -2319,5 +2376,5 @@ declare class TextBlockComponentConfig extends ComponentConfig {
2319
2376
  constructor();
2320
2377
  }
2321
2378
 
2322
- export { ACTION_TYPE_OPTIONS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DataSourceRegistryService, DataSourceType, DeviceMode, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EffectsGroupStyleConfig, GroupStyleConfig, INTERACTION_STATES, INVERSE_ACTION, IOX_DATA_SOURCE_ENDPOINTS, IOX_FONT_MANAGER, InteractionEngineService, InteractionPresetRegistryService, InteractionsPanelComponent, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SymbolRegistryService, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, buildFullStyleTraits, buildPresetStyleTraits, defaultPageSettings, flattenSchemaFields, generateNodeId, resolveTraitControllerType, resolveTraitOptions };
2379
+ export { ACTION_TYPE_OPTIONS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DataSourceRegistryService, DataSourceType, DeviceMode, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EffectsGroupStyleConfig, GroupStyleConfig, INTERACTION_STATES, INVERSE_ACTION, IOX_DATA_SOURCE_ENDPOINTS, IOX_FONT_MANAGER, InteractionEngineService, InteractionPresetRegistryService, InteractionsPanelComponent, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SymbolRegistryService, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, buildFullStyleTraits, buildPresetStyleTraits, defaultPageSettings, findNodeLocation, flattenSchemaFields, generateNodeId, resolveTraitControllerType, resolveTraitOptions, wrapNode };
2323
2380
  export type { BuilderClipboard, ComponentEventDef, ComponentMethodDef, ComponentNode, ComponentTrait, DeviceOption, DragPayload, DsFilterByQueryParam, DsFilterByRouteParam, ElementState, HistoryEntry, InteractionAction, InteractionActionType, InteractionPreset, InteractionTrigger, IoxBinding, IoxDataSource, IoxDropEvent, IoxFontManager, IoxInteraction, IoxSymbol, NodeRef, OverlayBoxModel, OverlayBoxSpacing, OverlayEntry, PageRouteAnimationSettings, PageScrollSettings, PageSettings, PageStyleSettings, PanelEvent, QuadSizeSegment, RouteAnimationPreset, ScreenWidthOption, StylePreset, StyleTrait, StyleTraitGroup, TraitOptionMap, TraitSelectOption, TraitShowCondition, ViewportState, ZoomOption };