@vectoriox/iox-builder 4.0.0 → 4.1.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/index.d.ts
CHANGED
|
@@ -585,7 +585,9 @@ declare enum ToolbarAction {
|
|
|
585
585
|
Copy = "copy",
|
|
586
586
|
Paste = "paste",
|
|
587
587
|
AddSlide = "add-slide",
|
|
588
|
-
Wrap = "wrap"
|
|
588
|
+
Wrap = "wrap",
|
|
589
|
+
/** Open the components panel to insert into / after the selection (B2 quick-add). */
|
|
590
|
+
AddElement = "add-element"
|
|
589
591
|
}
|
|
590
592
|
declare enum NodeAction {
|
|
591
593
|
Delete = "delete",
|
|
@@ -739,7 +741,11 @@ declare enum PanelEventTypes {
|
|
|
739
741
|
* Repeater/Slider listen so their PREVIEW CLONES are re-cloned with the new interactions —
|
|
740
742
|
* clones are attached by ELEMENT at render time, so without this a new interaction only starts
|
|
741
743
|
* working after a save + reload. */
|
|
742
|
-
INTERACTION_CHANGED = "interactionchanged"
|
|
744
|
+
INTERACTION_CHANGED = "interactionchanged",
|
|
745
|
+
/** CLICK-TO-INSERT (B2): a components-panel entry was clicked. Carries the same payload a drag
|
|
746
|
+
* would (`string` component type, or a block / symbol object). The builder resolves WHERE from
|
|
747
|
+
* the current selection — see `resolveInsertTarget`. */
|
|
748
|
+
INSERT_COMPONENT = "insertcomponent"
|
|
743
749
|
}
|
|
744
750
|
interface PanelEvent {
|
|
745
751
|
type: PanelEventTypes;
|
|
@@ -813,6 +819,27 @@ declare class DragEngineService {
|
|
|
813
819
|
private overlayService;
|
|
814
820
|
constructor(registry: ComponentRegistryService, symbolRegistry: SymbolRegistryService, overlayService: OverlayService);
|
|
815
821
|
handleDrop(children: ComponentNode[], event: IoxDropEvent, dropListId: string, cdr: ChangeDetectorRef, afterDrop?: () => void): void;
|
|
822
|
+
/**
|
|
823
|
+
* Turn a components-panel payload into a fresh ComponentNode: a built-in type string via the
|
|
824
|
+
* registry, or a block / symbol / bare node deep-cloned with fresh ids (so each copy owns its
|
|
825
|
+
* CSS rules and its intra-subtree references stay self-consistent). Prefers `symbol.node`
|
|
826
|
+
* (always current) over a block's original snapshot.
|
|
827
|
+
*
|
|
828
|
+
* The ONE place a panel payload becomes a node — drag-drop and click-to-insert both use it, so
|
|
829
|
+
* a clicked element is identical to a dragged one.
|
|
830
|
+
*/
|
|
831
|
+
materialize(data: unknown): ComponentNode | null;
|
|
832
|
+
/**
|
|
833
|
+
* CLICK-TO-INSERT (B2): place a panel payload at a resolved target without a drag. Emits
|
|
834
|
+
* `dropComplete$` exactly like a drop, so the builder selects the new node and records one undo
|
|
835
|
+
* step through the same path. Returns the inserted node, or null if the payload was unusable.
|
|
836
|
+
*/
|
|
837
|
+
insertPayload(children: ComponentNode[], index: number, data: unknown): ComponentNode | null;
|
|
838
|
+
/** True when `children` is a registered drop zone's array — i.e. a real container that can hold
|
|
839
|
+
* children. Click-to-insert uses the same test a drag does, so it can't insert where a drop
|
|
840
|
+
* couldn't. */
|
|
841
|
+
isDropContainer(children: unknown): boolean;
|
|
842
|
+
private cdrForData;
|
|
816
843
|
private ids;
|
|
817
844
|
private elMap;
|
|
818
845
|
private dataMap;
|
|
@@ -846,6 +873,7 @@ declare class DragEngineService {
|
|
|
846
873
|
private _deepTargetId;
|
|
847
874
|
/** Injected overlay div marking the active drop target. */
|
|
848
875
|
private _targetOverlay;
|
|
876
|
+
private _targetChip;
|
|
849
877
|
private _indicator;
|
|
850
878
|
private _indicatorContainerId;
|
|
851
879
|
private _indicatorIndex;
|
|
@@ -890,6 +918,8 @@ declare class DragEngineService {
|
|
|
890
918
|
refreshDragOverlays(): void;
|
|
891
919
|
private _moveTargetOverlay;
|
|
892
920
|
private _removeTargetOverlay;
|
|
921
|
+
/** Name the drop target and the slot: "into Card grid · position 2 of 4". */
|
|
922
|
+
private _updateTargetChip;
|
|
893
923
|
private _isRootContainer;
|
|
894
924
|
/**
|
|
895
925
|
* Returns true if the dropzone with `childId` is a DOM descendant of the
|
|
@@ -1590,8 +1620,19 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
|
|
|
1590
1620
|
* a structural change (e.g. wrapping a template child) propagates to every repeated row. No-op
|
|
1591
1621
|
* when the node is not inside a repeater. */
|
|
1592
1622
|
private _refreshRepeaterFor;
|
|
1593
|
-
/**
|
|
1623
|
+
/**
|
|
1624
|
+
* Emit ELEMENT_SELECT with the ancestors the panels need (symbol + repeater item scope).
|
|
1625
|
+
* THE place the builder's own selection is set too — every path that announces a selection goes
|
|
1626
|
+
* through here, so `selectedItem` (breadcrumb, click-to-insert target) can't drift from what the
|
|
1627
|
+
* panels show. "Select parent" used to announce the parent while leaving selectedItem behind.
|
|
1628
|
+
*/
|
|
1594
1629
|
private _emitElementSelect;
|
|
1630
|
+
/**
|
|
1631
|
+
* Insert a components-panel payload at the position the SELECTION implies (B2):
|
|
1632
|
+
* nothing selected → end of the page; a container → inside it; a leaf → right after it.
|
|
1633
|
+
* `dropComplete$` then selects the new node and records the undo step, exactly as a drop does.
|
|
1634
|
+
*/
|
|
1635
|
+
insertFromPanel(data: unknown): void;
|
|
1595
1636
|
private refreshBreakpointCounts;
|
|
1596
1637
|
/** Read a node's current `display` value. The style panel mutates `styleTraits` in place at edit
|
|
1597
1638
|
* time, so that is the live source of truth; fall back to a preset's `styleOverrides` map, then
|
|
@@ -1793,6 +1834,9 @@ declare class OverlayComponent implements OnInit, OnDestroy {
|
|
|
1793
1834
|
ngOnInit(): void;
|
|
1794
1835
|
ngOnDestroy(): void;
|
|
1795
1836
|
onSelectParent(event: MouseEvent): void;
|
|
1837
|
+
/** Quick-add (B2): open the components panel. The new element lands inside this node when it is
|
|
1838
|
+
* a container, otherwise right after it. */
|
|
1839
|
+
onAddElement(event: MouseEvent): void;
|
|
1796
1840
|
onDuplicate(event: MouseEvent): void;
|
|
1797
1841
|
onDelete(event: MouseEvent): void;
|
|
1798
1842
|
onWrap(event: MouseEvent, wrapType: string): void;
|