@vectoriox/iox-builder 1.0.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/README.md +63 -0
- package/fesm2022/vectoriox-iox-builder.mjs +4357 -0
- package/fesm2022/vectoriox-iox-builder.mjs.map +1 -0
- package/package.json +29 -0
- package/types/vectoriox-iox-builder.d.ts +1209 -0
|
@@ -0,0 +1,1209 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ComponentRef, Type, ChangeDetectorRef, OnInit, AfterViewInit, OnChanges, OnDestroy, EventEmitter, ElementRef, ApplicationRef, SimpleChanges, ViewContainerRef, Injector, InjectionToken, TemplateRef, AfterContentInit, QueryList } from '@angular/core';
|
|
3
|
+
import * as rxjs from 'rxjs';
|
|
4
|
+
import { Subject, Subscription, BehaviorSubject } from 'rxjs';
|
|
5
|
+
import * as i20 from 'primeng/popover';
|
|
6
|
+
import { Popover } from 'primeng/popover';
|
|
7
|
+
import { ActivatedRoute } from '@angular/router';
|
|
8
|
+
import * as i17 from '@angular/cdk/drag-drop';
|
|
9
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
10
|
+
import * as i15 from '@angular/common';
|
|
11
|
+
import * as i16 from '@angular/forms';
|
|
12
|
+
import * as i18 from 'primeng/accordion';
|
|
13
|
+
import * as i19 from 'primeng/button';
|
|
14
|
+
import * as i21 from 'primeng/inputtext';
|
|
15
|
+
import * as i22 from 'primeng/select';
|
|
16
|
+
import * as i23 from 'primeng/tooltip';
|
|
17
|
+
import * as i24 from 'primeng/dialog';
|
|
18
|
+
import * as i25 from '@vectoriox/iox-ui';
|
|
19
|
+
|
|
20
|
+
declare enum StyleCategory {
|
|
21
|
+
Layout = "Layout",
|
|
22
|
+
Size = "Size",
|
|
23
|
+
Typography = "Typography",
|
|
24
|
+
Spacing = "Spacing",
|
|
25
|
+
Border = "Border",
|
|
26
|
+
Position = "Position",
|
|
27
|
+
Background = "Background",
|
|
28
|
+
Effects = "Effects",
|
|
29
|
+
Dimensions = "Dimensions"
|
|
30
|
+
}
|
|
31
|
+
interface IoxBinding {
|
|
32
|
+
prop: string;
|
|
33
|
+
source: string;
|
|
34
|
+
path: string;
|
|
35
|
+
fallback?: any;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* When mode=single: looks up a single CMS item by matching a schema field
|
|
39
|
+
* against a URL path param (e.g. /project/:projectId → field _id).
|
|
40
|
+
* `defaultId` is used as a fallback value in the builder preview when no
|
|
41
|
+
* live route is active.
|
|
42
|
+
*/
|
|
43
|
+
interface DsFilterByRouteParam {
|
|
44
|
+
field: string;
|
|
45
|
+
routeParam: string;
|
|
46
|
+
defaultId?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* When mode=query: each entry maps a schema field to a URL query string
|
|
50
|
+
* key (e.g. ?status=active → field "status").
|
|
51
|
+
* `defaultValue` is used as a fallback in the builder preview.
|
|
52
|
+
*/
|
|
53
|
+
interface DsFilterByQueryParam {
|
|
54
|
+
field: string;
|
|
55
|
+
queryParam: string;
|
|
56
|
+
defaultValue?: string;
|
|
57
|
+
}
|
|
58
|
+
interface IoxDataSource {
|
|
59
|
+
id: string;
|
|
60
|
+
type: 'cms' | 'internal-api' | 'external-api' | 'static';
|
|
61
|
+
mode: 'single' | 'query';
|
|
62
|
+
alias: string;
|
|
63
|
+
request: {
|
|
64
|
+
method?: 'GET' | 'POST';
|
|
65
|
+
endpoint?: string;
|
|
66
|
+
cms?: {
|
|
67
|
+
contentType: string;
|
|
68
|
+
filter?: any;
|
|
69
|
+
limit?: number;
|
|
70
|
+
sort?: any;
|
|
71
|
+
/** Single-result lookup: match field against a route path param */
|
|
72
|
+
filterByRouteParam?: DsFilterByRouteParam;
|
|
73
|
+
/** Array-result filtering: match fields against URL query params */
|
|
74
|
+
filterByQueryParams?: DsFilterByQueryParam[];
|
|
75
|
+
};
|
|
76
|
+
params?: Record<string, any>;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
type InteractionTrigger = 'pageLoad' | 'click' | 'hover' | 'viewportEnter' | 'scrollProgress';
|
|
80
|
+
type InteractionActionType = 'fadeIn' | 'fadeOut' | 'moveUp' | 'moveDown' | 'moveLeft' | 'moveRight' | 'scaleIn' | 'scaleOut' | 'rotate' | 'show' | 'hide' | 'toggleVisibility';
|
|
81
|
+
interface InteractionAction {
|
|
82
|
+
type: InteractionActionType;
|
|
83
|
+
/** 'self' targets the node that owns the interaction; otherwise a node ID. */
|
|
84
|
+
target: 'self' | string;
|
|
85
|
+
/** Duration in milliseconds. */
|
|
86
|
+
duration: number;
|
|
87
|
+
/** Delay in milliseconds before the action starts. */
|
|
88
|
+
delay: number;
|
|
89
|
+
easing: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
|
|
90
|
+
/** Extra parameters (e.g. { distance: 20 } for move actions). */
|
|
91
|
+
params?: Record<string, any>;
|
|
92
|
+
/** If true, the action only plays once (relevant for viewport/scroll triggers). */
|
|
93
|
+
once?: boolean;
|
|
94
|
+
}
|
|
95
|
+
interface IoxInteraction {
|
|
96
|
+
id: string;
|
|
97
|
+
trigger: InteractionTrigger;
|
|
98
|
+
actions: InteractionAction[];
|
|
99
|
+
}
|
|
100
|
+
declare const TRIGGER_OPTIONS: {
|
|
101
|
+
value: InteractionTrigger;
|
|
102
|
+
label: string;
|
|
103
|
+
icon: string;
|
|
104
|
+
}[];
|
|
105
|
+
declare const ACTION_TYPE_OPTIONS: {
|
|
106
|
+
value: InteractionActionType;
|
|
107
|
+
label: string;
|
|
108
|
+
}[];
|
|
109
|
+
interface ComponentNode {
|
|
110
|
+
id?: string;
|
|
111
|
+
/**
|
|
112
|
+
* The CSS class key (`iox-node-{styleId}`) used by the style engine.
|
|
113
|
+
* Set on clone nodes to point back to the original template node's id,
|
|
114
|
+
* so all repeated rows share a single CSS rule.
|
|
115
|
+
* Absent on original (non-clone) nodes — they use `id` directly.
|
|
116
|
+
*/
|
|
117
|
+
styleId?: string;
|
|
118
|
+
type: string;
|
|
119
|
+
inputs?: Record<string, any>;
|
|
120
|
+
traits?: ComponentTrait[];
|
|
121
|
+
styleTraits?: StyleTraitGroup[];
|
|
122
|
+
bindings?: IoxBinding[];
|
|
123
|
+
interactions?: IoxInteraction[];
|
|
124
|
+
children?: ComponentNode[];
|
|
125
|
+
}
|
|
126
|
+
declare enum TraitInputType {
|
|
127
|
+
Text = "text",
|
|
128
|
+
Number = "number",
|
|
129
|
+
Select = "select",
|
|
130
|
+
Checkbox = "checkbox",
|
|
131
|
+
Color = "colorPicker",
|
|
132
|
+
DirectionalSize = "directionalSize",
|
|
133
|
+
SelectButton = "selectButton",
|
|
134
|
+
Scrub = "scrub",
|
|
135
|
+
Icon = "icon",
|
|
136
|
+
Media = "media",
|
|
137
|
+
FontFamily = "fontFamily"
|
|
138
|
+
}
|
|
139
|
+
interface TraitOptionMap {
|
|
140
|
+
[key: string]: any;
|
|
141
|
+
}
|
|
142
|
+
/** Named label/value pair for select options where the display label differs from the CSS value. */
|
|
143
|
+
interface TraitSelectOption {
|
|
144
|
+
label: string;
|
|
145
|
+
value: string;
|
|
146
|
+
}
|
|
147
|
+
interface QuadSizeSegment {
|
|
148
|
+
key: string;
|
|
149
|
+
icon: string;
|
|
150
|
+
ariaLabel?: string;
|
|
151
|
+
}
|
|
152
|
+
/** Conditional visibility: this trait only shows when the named sibling trait matches one of the given values. */
|
|
153
|
+
interface TraitShowCondition {
|
|
154
|
+
/** name of another trait in the same style group */
|
|
155
|
+
trait: string;
|
|
156
|
+
/** one value or an array of values that make this trait visible */
|
|
157
|
+
values: string | string[];
|
|
158
|
+
}
|
|
159
|
+
interface ComponentTrait {
|
|
160
|
+
name: string;
|
|
161
|
+
label: string;
|
|
162
|
+
type: TraitInputType;
|
|
163
|
+
options?: string[] | TraitSelectOption[] | TraitOptionMap;
|
|
164
|
+
default?: any;
|
|
165
|
+
inline?: boolean;
|
|
166
|
+
/** When set, this trait is hidden unless the named sibling trait has one of the specified values. */
|
|
167
|
+
showWhen?: TraitShowCondition;
|
|
168
|
+
}
|
|
169
|
+
type StyleTrait = ComponentTrait;
|
|
170
|
+
interface StyleTraitGroup {
|
|
171
|
+
category: string;
|
|
172
|
+
traits: ComponentTrait[];
|
|
173
|
+
}
|
|
174
|
+
declare function generateNodeId(): string;
|
|
175
|
+
declare class ComponentConfig {
|
|
176
|
+
id: string;
|
|
177
|
+
type: string;
|
|
178
|
+
selector: string;
|
|
179
|
+
icon: string;
|
|
180
|
+
category: string;
|
|
181
|
+
inputs: Record<string, any>;
|
|
182
|
+
traits: ComponentTrait[];
|
|
183
|
+
styleTraits: StyleTraitGroup[];
|
|
184
|
+
/** Layout components (e.g. Section) set this to []. Leaf components leave it undefined.
|
|
185
|
+
* RenderDirective uses `node.children !== undefined` to detect layout components. */
|
|
186
|
+
children?: ComponentNode[];
|
|
187
|
+
constructor(type: string, selector: string, icon?: string, category?: string);
|
|
188
|
+
/** Override specific trait defaults after styleTraits are set.
|
|
189
|
+
* Call this at the end of each subclass constructor. */
|
|
190
|
+
protected applyStyleDefaults(defaults: Record<string, any>): void;
|
|
191
|
+
}
|
|
192
|
+
declare class TraitConfig {
|
|
193
|
+
name: string;
|
|
194
|
+
label: string;
|
|
195
|
+
type: TraitInputType;
|
|
196
|
+
options?: string[] | TraitSelectOption[] | TraitOptionMap;
|
|
197
|
+
default?: any;
|
|
198
|
+
inline?: boolean;
|
|
199
|
+
showWhen?: TraitShowCondition;
|
|
200
|
+
constructor(name: string, label: string, type: TraitInputType, options?: string[] | TraitSelectOption[] | TraitOptionMap, defaultValue?: any, inline?: boolean, showWhen?: TraitShowCondition);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
declare class GroupStyleConfig {
|
|
204
|
+
category: string;
|
|
205
|
+
traits: TraitConfig[];
|
|
206
|
+
constructor(category: string, traits: TraitConfig[]);
|
|
207
|
+
}
|
|
208
|
+
declare const UNITS_ALL: string[];
|
|
209
|
+
declare const UNITS_NO_VW: string[];
|
|
210
|
+
declare const UNITS_FIXED: string[];
|
|
211
|
+
declare const UNITS_DEG: string[];
|
|
212
|
+
declare function resolveTraitControllerType(type: TraitInputType): string;
|
|
213
|
+
declare function resolveTraitOptions(trait: ComponentTrait): any;
|
|
214
|
+
|
|
215
|
+
declare enum PanelTypes {
|
|
216
|
+
BINDINGS = "Bindings",
|
|
217
|
+
STYLES = "Styles",
|
|
218
|
+
PAGE = "Page"
|
|
219
|
+
}
|
|
220
|
+
type RouteAnimationPreset = 'none' | 'fade' | 'slideUp' | 'slideDown' | 'zoomIn' | 'zoomOut' | 'blurIn' | 'flip';
|
|
221
|
+
declare const ROUTE_ANIMATION_OPTIONS: {
|
|
222
|
+
label: string;
|
|
223
|
+
value: RouteAnimationPreset;
|
|
224
|
+
description: string;
|
|
225
|
+
}[];
|
|
226
|
+
declare const EASING_OPTIONS: {
|
|
227
|
+
label: string;
|
|
228
|
+
value: string;
|
|
229
|
+
}[];
|
|
230
|
+
interface PageStyleSettings {
|
|
231
|
+
backgroundColor: string;
|
|
232
|
+
backgroundType: 'solid' | 'gradient' | 'image';
|
|
233
|
+
backgroundGradient: string;
|
|
234
|
+
backgroundImage: string;
|
|
235
|
+
fontFamily: string;
|
|
236
|
+
textColor: string;
|
|
237
|
+
maxWidth: string;
|
|
238
|
+
}
|
|
239
|
+
interface PageScrollSettings {
|
|
240
|
+
enabled: boolean;
|
|
241
|
+
lerp: number;
|
|
242
|
+
wheelMultiplier: number;
|
|
243
|
+
touchMultiplier: number;
|
|
244
|
+
direction: 'vertical' | 'horizontal';
|
|
245
|
+
infinite: boolean;
|
|
246
|
+
}
|
|
247
|
+
interface PageRouteAnimationSettings {
|
|
248
|
+
enter: RouteAnimationPreset;
|
|
249
|
+
leave: RouteAnimationPreset;
|
|
250
|
+
duration: number;
|
|
251
|
+
easing: string;
|
|
252
|
+
}
|
|
253
|
+
interface PageSettings {
|
|
254
|
+
style: PageStyleSettings;
|
|
255
|
+
scroll: PageScrollSettings;
|
|
256
|
+
routeAnimation: PageRouteAnimationSettings;
|
|
257
|
+
}
|
|
258
|
+
declare function defaultPageSettings(): PageSettings;
|
|
259
|
+
declare enum ToolbarAction {
|
|
260
|
+
SelectParent = "select-parent",
|
|
261
|
+
Duplicate = "duplicate",
|
|
262
|
+
Delete = "delete",
|
|
263
|
+
Play = "play",
|
|
264
|
+
SaveAsBlock = "save-as-block"
|
|
265
|
+
}
|
|
266
|
+
declare enum NodeAction {
|
|
267
|
+
Delete = "delete",
|
|
268
|
+
Duplicate = "duplicate"
|
|
269
|
+
}
|
|
270
|
+
declare enum BuilderMode {
|
|
271
|
+
Select = "select",
|
|
272
|
+
Style = "style",
|
|
273
|
+
Pan = "pan"
|
|
274
|
+
}
|
|
275
|
+
declare enum DeviceMode {
|
|
276
|
+
Desktop = "desktop",
|
|
277
|
+
Tablet = "tablet",
|
|
278
|
+
Mobile = "mobile"
|
|
279
|
+
}
|
|
280
|
+
interface DeviceOption {
|
|
281
|
+
mode: DeviceMode;
|
|
282
|
+
label: string;
|
|
283
|
+
icon: string;
|
|
284
|
+
width: number;
|
|
285
|
+
}
|
|
286
|
+
declare const DEVICE_OPTIONS: DeviceOption[];
|
|
287
|
+
interface ZoomOption {
|
|
288
|
+
label: string;
|
|
289
|
+
value: number | 'fit';
|
|
290
|
+
}
|
|
291
|
+
declare const ZOOM_OPTIONS: ZoomOption[];
|
|
292
|
+
|
|
293
|
+
interface OverlayBoxSpacing {
|
|
294
|
+
top: number;
|
|
295
|
+
right: number;
|
|
296
|
+
bottom: number;
|
|
297
|
+
left: number;
|
|
298
|
+
}
|
|
299
|
+
interface OverlayBoxModel {
|
|
300
|
+
margin: OverlayBoxSpacing;
|
|
301
|
+
padding: OverlayBoxSpacing;
|
|
302
|
+
border: OverlayBoxSpacing;
|
|
303
|
+
}
|
|
304
|
+
interface OverlayEntry {
|
|
305
|
+
element: HTMLElement;
|
|
306
|
+
componentName: string;
|
|
307
|
+
boxModel?: OverlayBoxModel;
|
|
308
|
+
mode: BuilderMode;
|
|
309
|
+
node?: ComponentNode;
|
|
310
|
+
componentRef?: ComponentRef<any>;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
interface NodeRef {
|
|
314
|
+
element: HTMLElement;
|
|
315
|
+
componentRef: ComponentRef<any>;
|
|
316
|
+
}
|
|
317
|
+
declare class OverlayService {
|
|
318
|
+
private hoverSubject;
|
|
319
|
+
private selectSubject;
|
|
320
|
+
private nodeMap;
|
|
321
|
+
hover$: rxjs.Observable<OverlayEntry | null>;
|
|
322
|
+
select$: rxjs.Observable<OverlayEntry | null>;
|
|
323
|
+
private containerElement;
|
|
324
|
+
private scrollContainerElement;
|
|
325
|
+
/** Emits the scroll container element whenever it is registered. */
|
|
326
|
+
scrollContainer$: Subject<HTMLElement>;
|
|
327
|
+
setContainer(container: HTMLElement | null): void;
|
|
328
|
+
getContainer(): HTMLElement | null;
|
|
329
|
+
setScrollContainer(el: HTMLElement | null): void;
|
|
330
|
+
getScrollContainer(): HTMLElement | null;
|
|
331
|
+
/**
|
|
332
|
+
* Resolve the inner styled element.
|
|
333
|
+
* Builder components apply [ngStyle] on their first child element,
|
|
334
|
+
* so computed styles (padding, margin) live there — not on the host.
|
|
335
|
+
*/
|
|
336
|
+
getStyledElement(host: HTMLElement): HTMLElement;
|
|
337
|
+
registerNode(node: ComponentNode, element: HTMLElement, componentRef: ComponentRef<any>): void;
|
|
338
|
+
unregisterNode(node: ComponentNode): void;
|
|
339
|
+
getNodeRef(node: ComponentNode): NodeRef | undefined;
|
|
340
|
+
/** Return all registered node → ref entries. */
|
|
341
|
+
getAllNodeEntries(): IterableIterator<[ComponentNode, NodeRef]>;
|
|
342
|
+
/** Find a registered node whose host element matches the given DOM element. */
|
|
343
|
+
findNodeByElement(element: HTMLElement): {
|
|
344
|
+
node: ComponentNode;
|
|
345
|
+
ref: NodeRef;
|
|
346
|
+
} | undefined;
|
|
347
|
+
setHover(element: HTMLElement, componentName: string, mode: BuilderMode): void;
|
|
348
|
+
clearHover(): void;
|
|
349
|
+
setSelect(element: HTMLElement, componentName: string, mode: BuilderMode, node?: ComponentNode, componentRef?: ComponentRef<any>): void;
|
|
350
|
+
clearSelect(): void;
|
|
351
|
+
refreshSelect(): void;
|
|
352
|
+
/** Lightweight swap for drag-preview tracking. */
|
|
353
|
+
updateSelectElement(element: HTMLElement): void;
|
|
354
|
+
private buildBoxModel;
|
|
355
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OverlayService, never>;
|
|
356
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<OverlayService>;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
declare enum PanelEventTypes {
|
|
360
|
+
ELEMENT_SELECT = "elementselect",
|
|
361
|
+
ELEMENT_DESELECT = "elementdeselect",
|
|
362
|
+
PANEL_SELECTED = "panelselect",
|
|
363
|
+
PANEL_OPEN = "panelopen",
|
|
364
|
+
PANEL_CLOSE = "panelclose",
|
|
365
|
+
BINDING_CHANGED = "bindingchanged",
|
|
366
|
+
NODE_RENDERED = "noderendered"
|
|
367
|
+
}
|
|
368
|
+
interface PanelEvent {
|
|
369
|
+
type: PanelEventTypes;
|
|
370
|
+
data: any;
|
|
371
|
+
}
|
|
372
|
+
declare class PanelEventService {
|
|
373
|
+
private panelEventSubject;
|
|
374
|
+
subscribe(next: (panelEvent: PanelEvent) => void): Subscription;
|
|
375
|
+
emit(type: PanelEventTypes, data?: any): void;
|
|
376
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PanelEventService, never>;
|
|
377
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PanelEventService>;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
declare class ComponentRegistryService {
|
|
381
|
+
private components;
|
|
382
|
+
getComponent(type: string): Type<any> | null;
|
|
383
|
+
hasComponent(type: string): boolean;
|
|
384
|
+
createConfig(type: string): any | null;
|
|
385
|
+
register(type: string, component: Type<any>, config: any): void;
|
|
386
|
+
getAll(): {
|
|
387
|
+
type: string;
|
|
388
|
+
component: Type<any>;
|
|
389
|
+
config: any;
|
|
390
|
+
}[];
|
|
391
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentRegistryService, never>;
|
|
392
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ComponentRegistryService>;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
interface DragPayload {
|
|
396
|
+
type: 'internal' | 'external';
|
|
397
|
+
data: ComponentNode | string;
|
|
398
|
+
sourceId: string | null;
|
|
399
|
+
sourceIndex: number;
|
|
400
|
+
}
|
|
401
|
+
interface IoxDropEvent {
|
|
402
|
+
payload: DragPayload;
|
|
403
|
+
targetId: string;
|
|
404
|
+
insertIndex: number;
|
|
405
|
+
}
|
|
406
|
+
declare class DragEngineService {
|
|
407
|
+
private registry;
|
|
408
|
+
constructor(registry: ComponentRegistryService);
|
|
409
|
+
handleDrop(children: ComponentNode[], event: IoxDropEvent, dropListId: string, cdr: ChangeDetectorRef, afterDrop?: () => void): void;
|
|
410
|
+
private ids;
|
|
411
|
+
private elMap;
|
|
412
|
+
private dataMap;
|
|
413
|
+
private cdrMap;
|
|
414
|
+
private dropCbMap;
|
|
415
|
+
private postDropMap;
|
|
416
|
+
readonly ids$: BehaviorSubject<string[]>;
|
|
417
|
+
readonly isDragging$: BehaviorSubject<boolean>;
|
|
418
|
+
readonly deepTarget$: BehaviorSubject<string | null>;
|
|
419
|
+
private _isDragging;
|
|
420
|
+
private _payload;
|
|
421
|
+
private _sourceEl;
|
|
422
|
+
/**
|
|
423
|
+
* For internal drags: a DOM clone of the dragged element appended to <body>.
|
|
424
|
+
* Lives outside any CSS transform, so position:fixed works in viewport coords.
|
|
425
|
+
* For external drags: the label chip overlay.
|
|
426
|
+
*/
|
|
427
|
+
private _overlay;
|
|
428
|
+
/** Where on the element the user grabbed it (for accurate ghost positioning). */
|
|
429
|
+
private _grabOffsetX;
|
|
430
|
+
private _grabOffsetY;
|
|
431
|
+
private _lastPointerX;
|
|
432
|
+
private _lastPointerY;
|
|
433
|
+
private _deepTargetId;
|
|
434
|
+
/** Injected overlay div marking the active drop target. */
|
|
435
|
+
private _targetOverlay;
|
|
436
|
+
private _indicator;
|
|
437
|
+
private _indicatorContainerId;
|
|
438
|
+
private _indicatorIndex;
|
|
439
|
+
private _indicatorRaf;
|
|
440
|
+
/** Elements that have temporary FLIP inline styles — cleared on drag end. */
|
|
441
|
+
private _flipEls;
|
|
442
|
+
private _scale;
|
|
443
|
+
/** Called by BuilderComponent whenever the viewport scale changes. */
|
|
444
|
+
setScale(scale: number): void;
|
|
445
|
+
private readonly ROOT_ESCAPE_PX;
|
|
446
|
+
private _rootEscapeActiveFor;
|
|
447
|
+
private _getEl;
|
|
448
|
+
registerDropzone(id: string, el: HTMLElement, data: any[], cdr: ChangeDetectorRef, dropCb: (e: IoxDropEvent) => void, postDrop?: () => void): void;
|
|
449
|
+
unregisterDropzone(id: string, el: HTMLElement): void;
|
|
450
|
+
registerDraggable(el: HTMLElement, getPayload: () => DragPayload): void;
|
|
451
|
+
unregisterDraggable(el: HTMLElement): void;
|
|
452
|
+
getData(id: string): any[] | undefined;
|
|
453
|
+
getCdr(id: string): ChangeDetectorRef | undefined;
|
|
454
|
+
invokePostDrop(id: string): void;
|
|
455
|
+
consumeDeepTarget(): string | null;
|
|
456
|
+
private _onDragStart;
|
|
457
|
+
private _onDragMove;
|
|
458
|
+
private _onDragEnd;
|
|
459
|
+
private _commitDrop;
|
|
460
|
+
private _createExternalChip;
|
|
461
|
+
private _removeOverlay;
|
|
462
|
+
private _updateDeepTarget;
|
|
463
|
+
/** Call on every canvas scroll tick to keep the fixed-position drop-target
|
|
464
|
+
* overlay aligned with the container element that moved in the viewport. */
|
|
465
|
+
refreshDragOverlays(): void;
|
|
466
|
+
private _moveTargetOverlay;
|
|
467
|
+
private _removeTargetOverlay;
|
|
468
|
+
private _isRootContainer;
|
|
469
|
+
/**
|
|
470
|
+
* Returns true if the dropzone with `childId` is a DOM descendant of the
|
|
471
|
+
* dropzone with `parentId`. Used to decide whether the cursor was already
|
|
472
|
+
* "inside" a root section before triggering root-escape.
|
|
473
|
+
*/
|
|
474
|
+
private _isDescendantDropzone;
|
|
475
|
+
private _updateIndicator;
|
|
476
|
+
private _positionIndicator;
|
|
477
|
+
private _removeIndicator;
|
|
478
|
+
calcInsertIndex(containerId: string): number;
|
|
479
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DragEngineService, never>;
|
|
480
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DragEngineService>;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Page-scoped registry that holds the current page's data sources.
|
|
485
|
+
* Scoped to PageUiComponent.providers[] so every builder service
|
|
486
|
+
* (BindingsComponent, BuilderRepeaterComponent) shares the same instance.
|
|
487
|
+
*
|
|
488
|
+
* Seeded by PageUiComponent.loadPage() from saved page data, then kept
|
|
489
|
+
* up to date by BindingsComponent whenever the user adds/removes a source.
|
|
490
|
+
*/
|
|
491
|
+
declare class DataSourceRegistryService {
|
|
492
|
+
private _ds$;
|
|
493
|
+
readonly dataSources$: rxjs.Observable<IoxDataSource[]>;
|
|
494
|
+
setDataSources(ds: IoxDataSource[]): void;
|
|
495
|
+
getDataSources(): IoxDataSource[];
|
|
496
|
+
findByAlias(alias: string): IoxDataSource | undefined;
|
|
497
|
+
getAliasOptions(): {
|
|
498
|
+
label: string;
|
|
499
|
+
value: string;
|
|
500
|
+
}[];
|
|
501
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceRegistryService, never>;
|
|
502
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DataSourceRegistryService>;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Wires ComponentNode interactions to live DOM elements via the
|
|
507
|
+
* OverlayService node-element registry.
|
|
508
|
+
*
|
|
509
|
+
* Call `attach(node)` after the node is rendered and registered.
|
|
510
|
+
* Call `detach(node)` on destroy to tear down listeners/observers.
|
|
511
|
+
*/
|
|
512
|
+
declare class InteractionEngineService {
|
|
513
|
+
private overlayService;
|
|
514
|
+
private attached;
|
|
515
|
+
constructor(overlayService: OverlayService);
|
|
516
|
+
/** Wire all interactions for a node to its rendered DOM element. */
|
|
517
|
+
attach(node: ComponentNode): void;
|
|
518
|
+
/** Tear down all interaction listeners for a node and reset its animated state. */
|
|
519
|
+
detach(node: ComponentNode): void;
|
|
520
|
+
/** Re-attach interactions after they have been edited in the panel. */
|
|
521
|
+
refresh(node: ComponentNode): void;
|
|
522
|
+
/**
|
|
523
|
+
* Replay all interactions on a node immediately, regardless of their trigger.
|
|
524
|
+
* Used by the builder overlay play button for in-editor animation preview.
|
|
525
|
+
* Uses fill:'none' so the element returns to its natural state after the preview.
|
|
526
|
+
*/
|
|
527
|
+
replay(node: ComponentNode): void;
|
|
528
|
+
private attachInteraction;
|
|
529
|
+
private attachPageLoad;
|
|
530
|
+
private attachViewportEnter;
|
|
531
|
+
private attachClick;
|
|
532
|
+
private attachHover;
|
|
533
|
+
private runActions;
|
|
534
|
+
private resolveTarget;
|
|
535
|
+
private executeAction;
|
|
536
|
+
private reverseAction;
|
|
537
|
+
private buildAnimation;
|
|
538
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InteractionEngineService, never>;
|
|
539
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<InteractionEngineService>;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
interface ViewportState {
|
|
543
|
+
device: DeviceMode;
|
|
544
|
+
/** Real canvas width in CSS pixels (e.g., 1440 for desktop). */
|
|
545
|
+
width: number;
|
|
546
|
+
/** Visual scale factor (0–1+). Canvas is rendered at `width` then scaled. */
|
|
547
|
+
scale: number;
|
|
548
|
+
}
|
|
549
|
+
declare class ViewportService {
|
|
550
|
+
private state;
|
|
551
|
+
private stateSubject;
|
|
552
|
+
state$: rxjs.Observable<ViewportState>;
|
|
553
|
+
getState(): ViewportState;
|
|
554
|
+
getScale(): number;
|
|
555
|
+
setDevice(device: DeviceMode): void;
|
|
556
|
+
setScale(scale: number): void;
|
|
557
|
+
/**
|
|
558
|
+
* Calculate the scale that makes the canvas fit inside the available editor width.
|
|
559
|
+
* @param availableWidth The pixel width of the editor area that holds the canvas.
|
|
560
|
+
* @param padding Optional horizontal padding to subtract (default 20px each side).
|
|
561
|
+
*/
|
|
562
|
+
fitToWidth(availableWidth: number, padding?: number): void;
|
|
563
|
+
/**
|
|
564
|
+
* Convert a screen-space coordinate to canvas-space (unscaled).
|
|
565
|
+
* Call this when translating pointer events into canvas-relative positions.
|
|
566
|
+
*/
|
|
567
|
+
screenToCanvas(screenX: number, screenY: number, canvasRect: DOMRect): {
|
|
568
|
+
x: number;
|
|
569
|
+
y: number;
|
|
570
|
+
};
|
|
571
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ViewportService, never>;
|
|
572
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ViewportService>;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {
|
|
576
|
+
private registry;
|
|
577
|
+
private overlayService;
|
|
578
|
+
private panelEventService;
|
|
579
|
+
private dragEngine;
|
|
580
|
+
private dsRegistry;
|
|
581
|
+
private viewportService;
|
|
582
|
+
private interactionEngine;
|
|
583
|
+
private cdr;
|
|
584
|
+
private appRef;
|
|
585
|
+
layout: ComponentNode[];
|
|
586
|
+
dataSources: IoxDataSource[];
|
|
587
|
+
orgId: string;
|
|
588
|
+
routeParams: any[];
|
|
589
|
+
pageName: string;
|
|
590
|
+
isSaving: boolean;
|
|
591
|
+
pageStatus: string;
|
|
592
|
+
pageSettings: PageSettings | null;
|
|
593
|
+
save: EventEmitter<void>;
|
|
594
|
+
back: EventEmitter<void>;
|
|
595
|
+
preview: EventEmitter<void>;
|
|
596
|
+
publishToggle: EventEmitter<void>;
|
|
597
|
+
pageSettingsChange: EventEmitter<PageSettings>;
|
|
598
|
+
applyAnimationToAll: EventEmitter<PageRouteAnimationSettings>;
|
|
599
|
+
saveBlock: EventEmitter<{
|
|
600
|
+
name: string;
|
|
601
|
+
node: ComponentNode;
|
|
602
|
+
}>;
|
|
603
|
+
previewCanvas?: ElementRef<HTMLElement>;
|
|
604
|
+
previewScrollRef?: ElementRef<HTMLElement>;
|
|
605
|
+
lenisContentRef?: ElementRef<HTMLElement>;
|
|
606
|
+
components: any[];
|
|
607
|
+
activePanel: string;
|
|
608
|
+
isPanelOpen: boolean;
|
|
609
|
+
panelTypes: typeof PanelTypes;
|
|
610
|
+
activeMode: BuilderMode;
|
|
611
|
+
builderModes: typeof BuilderMode;
|
|
612
|
+
activeDevice: DeviceMode;
|
|
613
|
+
activeZoom: number;
|
|
614
|
+
selectedItem: ComponentNode | null;
|
|
615
|
+
isDragging: boolean;
|
|
616
|
+
scrollThumbTop: number;
|
|
617
|
+
scrollThumbHeight: number;
|
|
618
|
+
isScrollbarVisible: boolean;
|
|
619
|
+
scrollbarTranslate: number;
|
|
620
|
+
activeSidebar: 'components' | 'tree';
|
|
621
|
+
showSaveBlockDialog: boolean;
|
|
622
|
+
saveBlockName: string;
|
|
623
|
+
private pendingBlockNode;
|
|
624
|
+
isPanning: boolean;
|
|
625
|
+
panX: number;
|
|
626
|
+
panY: number;
|
|
627
|
+
private panStartX;
|
|
628
|
+
private panStartY;
|
|
629
|
+
private panOriginX;
|
|
630
|
+
private panOriginY;
|
|
631
|
+
private hoverHideRaf;
|
|
632
|
+
private viewportSub?;
|
|
633
|
+
private lenis?;
|
|
634
|
+
private lenisRafId?;
|
|
635
|
+
private canvasRo?;
|
|
636
|
+
private canvasContentHeight;
|
|
637
|
+
handleToolbarModeChange(mode: BuilderMode): void;
|
|
638
|
+
handleToolbarDeviceChange(device: DeviceMode): void;
|
|
639
|
+
handleToolbarZoomChange(value: number | 'fit'): void;
|
|
640
|
+
/** Canvas width in CSS pixels (driven by ViewportService). */
|
|
641
|
+
get viewportWidth(): number;
|
|
642
|
+
/** Visual (scaled) canvas width — used to size the scroll container so the
|
|
643
|
+
* scrollbar aligns with the right edge of the canvas, not the CMS shell. */
|
|
644
|
+
get viewportScaledWidth(): number;
|
|
645
|
+
/** CSS transform for the visual canvas.
|
|
646
|
+
* Includes translateX(-50%) for centering because iox-page-component is
|
|
647
|
+
* position:absolute; left:50% inside .preview-lenis-content. */
|
|
648
|
+
get viewportTransform(): string;
|
|
649
|
+
/**
|
|
650
|
+
* Height of the Lenis content proxy div (realContentHeight × scale).
|
|
651
|
+
* Lenis scrolls against this value so scroll range is always in visual px,
|
|
652
|
+
* not unscaled CSS px — correct at any zoom level.
|
|
653
|
+
*/
|
|
654
|
+
get scaledContentHeight(): number;
|
|
655
|
+
/**
|
|
656
|
+
* The canvas min-height simulates a real browser viewport.
|
|
657
|
+
* We subtract the builder header (~49px) and some padding from window.innerHeight.
|
|
658
|
+
*/
|
|
659
|
+
get canvasMinHeight(): number;
|
|
660
|
+
private sub?;
|
|
661
|
+
private registrySub?;
|
|
662
|
+
constructor(registry: ComponentRegistryService, overlayService: OverlayService, panelEventService: PanelEventService, dragEngine: DragEngineService, dsRegistry: DataSourceRegistryService, viewportService: ViewportService, interactionEngine: InteractionEngineService, cdr: ChangeDetectorRef, appRef: ApplicationRef);
|
|
663
|
+
ngOnInit(): void;
|
|
664
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
665
|
+
ngAfterViewInit(): void;
|
|
666
|
+
ngOnDestroy(): void;
|
|
667
|
+
private initLenis;
|
|
668
|
+
private destroyLenis;
|
|
669
|
+
addComponent(name: string): void;
|
|
670
|
+
onDrop(event: IoxDropEvent): void;
|
|
671
|
+
/** Resolve the width style-trait value for a node so the cdkDrag wrapper
|
|
672
|
+
* matches the component's actual width (prevents full-canvas-width clones). */
|
|
673
|
+
getNodeWidth(node: ComponentNode): string | undefined;
|
|
674
|
+
onModeChange(mode: BuilderMode): void;
|
|
675
|
+
onDeviceChange(device: DeviceMode): void;
|
|
676
|
+
onZoomChange(value: number | 'fit'): void;
|
|
677
|
+
onBoardMouseDown(event: MouseEvent): void;
|
|
678
|
+
onBoardMouseMove(event: MouseEvent): void;
|
|
679
|
+
onBoardMouseUp(): void;
|
|
680
|
+
private autoFitViewport;
|
|
681
|
+
selectPanel(panel: string): void;
|
|
682
|
+
handleClick(event: any): void;
|
|
683
|
+
handleMouseEnter(event: any): void;
|
|
684
|
+
handleMouseLeave(): void;
|
|
685
|
+
handleCanvasClick(): void;
|
|
686
|
+
onTreeNodeSelect(node: ComponentNode): void;
|
|
687
|
+
onTreeNodeAction(event: {
|
|
688
|
+
action: NodeAction;
|
|
689
|
+
node: ComponentNode;
|
|
690
|
+
}): void;
|
|
691
|
+
onTreeNodeMove(): void;
|
|
692
|
+
onToolbarAction(event: {
|
|
693
|
+
action: ToolbarAction;
|
|
694
|
+
entry: OverlayEntry;
|
|
695
|
+
}): void;
|
|
696
|
+
confirmSaveBlock(): void;
|
|
697
|
+
cancelSaveBlock(): void;
|
|
698
|
+
private deepCloneWithNewIds;
|
|
699
|
+
private assignNewIds;
|
|
700
|
+
private _scrollbarTimer;
|
|
701
|
+
onPageScroll(event: {
|
|
702
|
+
scrollTop: number;
|
|
703
|
+
scrollHeight: number;
|
|
704
|
+
clientHeight: number;
|
|
705
|
+
scrollPercentage?: number;
|
|
706
|
+
}): void;
|
|
707
|
+
private findNodeInTree;
|
|
708
|
+
private findParentNode;
|
|
709
|
+
private handlePanelEvents;
|
|
710
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BuilderComponent, never>;
|
|
711
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BuilderComponent, "app-builder", never, { "layout": { "alias": "layout"; "required": false; }; "dataSources": { "alias": "dataSources"; "required": false; }; "orgId": { "alias": "orgId"; "required": false; }; "routeParams": { "alias": "routeParams"; "required": false; }; "pageName": { "alias": "pageName"; "required": false; }; "isSaving": { "alias": "isSaving"; "required": false; }; "pageStatus": { "alias": "pageStatus"; "required": false; }; "pageSettings": { "alias": "pageSettings"; "required": false; }; }, { "save": "save"; "back": "back"; "preview": "preview"; "publishToggle": "publishToggle"; "pageSettingsChange": "pageSettingsChange"; "applyAnimationToAll": "applyAnimationToAll"; "saveBlock": "saveBlock"; }, never, ["[builderComponents]", "[builderPanel]"], false, never>;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
/**
|
|
715
|
+
* StyleRegistryService — manages a single <style> tag for the builder canvas.
|
|
716
|
+
*
|
|
717
|
+
* Each builder component gets a unique CSS class `.iox-node-{id}` applied to its
|
|
718
|
+
* first inner element. onUpdate() in the style panel calls upsert() to compile
|
|
719
|
+
* the flat style-trait map into a CSS rule and flush it to the stylesheet.
|
|
720
|
+
*
|
|
721
|
+
* This replaces the old [ngStyle] binding, enabling future support for
|
|
722
|
+
* hover states, breakpoints, and pseudo-selectors without DOM modifications.
|
|
723
|
+
*
|
|
724
|
+
* Scoped to PageUiComponent.providers[] — one stylesheet per builder instance.
|
|
725
|
+
*/
|
|
726
|
+
declare class StyleRegistryService {
|
|
727
|
+
private rules;
|
|
728
|
+
private styleEl;
|
|
729
|
+
init(): void;
|
|
730
|
+
upsert(nodeId: string, styles: Record<string, any>): void;
|
|
731
|
+
remove(nodeId: string): void;
|
|
732
|
+
destroy(): void;
|
|
733
|
+
private compile;
|
|
734
|
+
private toKebabCase;
|
|
735
|
+
private flush;
|
|
736
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StyleRegistryService, never>;
|
|
737
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<StyleRegistryService>;
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
/**
|
|
741
|
+
* RenderDirective — applied to <ng-container> to dynamically instantiate a
|
|
742
|
+
* builder component with zero wrapper elements in the DOM.
|
|
743
|
+
*
|
|
744
|
+
* A directive's ViewContainerRef inserts the created component's host element as
|
|
745
|
+
* a sibling of the ng-container comment node — directly inside the parent element
|
|
746
|
+
* — so the resulting DOM has no extra <app-renderer> wrapper.
|
|
747
|
+
*
|
|
748
|
+
* Usage:
|
|
749
|
+
* <ng-container [ioxRender]="node"
|
|
750
|
+
* (onClick)="handleClick($event)"
|
|
751
|
+
* (onMouseEnter)="handleMouseEnter($event)"
|
|
752
|
+
* (onMouseLeave)="handleMouseLeave()">
|
|
753
|
+
* </ng-container>
|
|
754
|
+
*/
|
|
755
|
+
declare class RenderDirective implements OnInit, OnDestroy {
|
|
756
|
+
private vcr;
|
|
757
|
+
private injector;
|
|
758
|
+
private registryService;
|
|
759
|
+
private overlayService;
|
|
760
|
+
private styleRegistry;
|
|
761
|
+
private interactionEngine;
|
|
762
|
+
private cdr;
|
|
763
|
+
private panelEventService;
|
|
764
|
+
ioxRender: ComponentNode | null;
|
|
765
|
+
onClick: EventEmitter<any>;
|
|
766
|
+
onMouseEnter: EventEmitter<any>;
|
|
767
|
+
onMouseLeave: EventEmitter<any>;
|
|
768
|
+
private childSubs;
|
|
769
|
+
constructor(vcr: ViewContainerRef, injector: Injector, registryService: ComponentRegistryService, overlayService: OverlayService, styleRegistry: StyleRegistryService, interactionEngine: InteractionEngineService, cdr: ChangeDetectorRef, panelEventService: PanelEventService);
|
|
770
|
+
ngOnInit(): void;
|
|
771
|
+
ngOnDestroy(): void;
|
|
772
|
+
/**
|
|
773
|
+
* Walk up from `target` to find a registered parent component element.
|
|
774
|
+
* Returns { element, node } if found, or null if the target is outside
|
|
775
|
+
* all known builder components (e.g. the canvas background).
|
|
776
|
+
*/
|
|
777
|
+
private findParentNodeElement;
|
|
778
|
+
private render;
|
|
779
|
+
/** Try setInput(); fall back to direct assignment for non-@Input properties. */
|
|
780
|
+
private safeSetInput;
|
|
781
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RenderDirective, never>;
|
|
782
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RenderDirective, "[ioxRender]", never, { "ioxRender": { "alias": "ioxRender"; "required": false; }; }, { "onClick": "onClick"; "onMouseEnter": "onMouseEnter"; "onMouseLeave": "onMouseLeave"; }, never, never, false, never>;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
declare class IoxDraggableDirective implements OnInit, OnDestroy {
|
|
786
|
+
private el;
|
|
787
|
+
private dragEngine;
|
|
788
|
+
/** The node (for canvas items) or component type string (for sidebar items). */
|
|
789
|
+
ioxDragData: ComponentNode | string;
|
|
790
|
+
/** Drop-zone id the item lives in. Null for sidebar items. */
|
|
791
|
+
ioxDragSourceId: string | null;
|
|
792
|
+
constructor(el: ElementRef<HTMLElement>, dragEngine: DragEngineService);
|
|
793
|
+
ngOnInit(): void;
|
|
794
|
+
ngOnDestroy(): void;
|
|
795
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IoxDraggableDirective, never>;
|
|
796
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<IoxDraggableDirective, "[ioxDraggable]", never, { "ioxDragData": { "alias": "ioxDragData"; "required": false; }; "ioxDragSourceId": { "alias": "ioxDragSourceId"; "required": false; }; }, {}, never, never, false, never>;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
declare class IoxDropzoneDirective implements OnInit, OnDestroy {
|
|
800
|
+
private el;
|
|
801
|
+
private dragEngine;
|
|
802
|
+
private cdr;
|
|
803
|
+
ioxDropzoneId: string;
|
|
804
|
+
ioxDropzoneData: ComponentNode[];
|
|
805
|
+
/** Optional callback invoked after a drop lands in this zone (e.g. repeater preview refresh). */
|
|
806
|
+
ioxDropzonePostDrop?: () => void;
|
|
807
|
+
ioxDrop: EventEmitter<IoxDropEvent>;
|
|
808
|
+
constructor(el: ElementRef<HTMLElement>, dragEngine: DragEngineService, cdr: ChangeDetectorRef);
|
|
809
|
+
ngOnInit(): void;
|
|
810
|
+
ngOnDestroy(): void;
|
|
811
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IoxDropzoneDirective, never>;
|
|
812
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<IoxDropzoneDirective, "[ioxDropzone]", never, { "ioxDropzoneId": { "alias": "ioxDropzoneId"; "required": false; }; "ioxDropzoneData": { "alias": "ioxDropzoneData"; "required": false; }; "ioxDropzonePostDrop": { "alias": "ioxDropzonePostDrop"; "required": false; }; }, { "ioxDrop": "ioxDrop"; }, never, never, false, never>;
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
declare class OverlayComponent implements OnInit, OnDestroy {
|
|
816
|
+
private overlayService;
|
|
817
|
+
private viewportService;
|
|
818
|
+
private cdr;
|
|
819
|
+
toolbarAction: EventEmitter<{
|
|
820
|
+
action: ToolbarAction;
|
|
821
|
+
entry: OverlayEntry;
|
|
822
|
+
}>;
|
|
823
|
+
hoverEntry: OverlayEntry | null;
|
|
824
|
+
selectEntry: OverlayEntry | null;
|
|
825
|
+
hiOutlineStyle: Record<string, string>;
|
|
826
|
+
hiMarginStyle: Record<string, string>;
|
|
827
|
+
hiPaddingStyle: Record<string, string>;
|
|
828
|
+
selectOutlineStyle: Record<string, string>;
|
|
829
|
+
moreMenuVisible: boolean;
|
|
830
|
+
contextMenuVisible: boolean;
|
|
831
|
+
contextMenuStyle: Record<string, string>;
|
|
832
|
+
private subs;
|
|
833
|
+
private resizeObserver?;
|
|
834
|
+
private containerResizeObserver?;
|
|
835
|
+
private mutationObserver?;
|
|
836
|
+
private boundUpdate;
|
|
837
|
+
private activeScrollContainer;
|
|
838
|
+
constructor(overlayService: OverlayService, viewportService: ViewportService, cdr: ChangeDetectorRef);
|
|
839
|
+
ngOnInit(): void;
|
|
840
|
+
ngOnDestroy(): void;
|
|
841
|
+
onSelectParent(event: MouseEvent): void;
|
|
842
|
+
onDuplicate(event: MouseEvent): void;
|
|
843
|
+
onDelete(event: MouseEvent): void;
|
|
844
|
+
onPlay(event: MouseEvent): void;
|
|
845
|
+
onSaveAsBlock(event: MouseEvent): void;
|
|
846
|
+
onToggleMore(event: MouseEvent): void;
|
|
847
|
+
closeMoreMenu(): void;
|
|
848
|
+
onContextMenu(event: MouseEvent): void;
|
|
849
|
+
onContextSaveAsBlock(event: MouseEvent): void;
|
|
850
|
+
closeContextMenu(): void;
|
|
851
|
+
get hasInteractions(): boolean;
|
|
852
|
+
private observeSelectElement;
|
|
853
|
+
private updateAll;
|
|
854
|
+
private updateHover;
|
|
855
|
+
private updateSelect;
|
|
856
|
+
/** Build position/size styles for a position:fixed overlay box. */
|
|
857
|
+
private createBoxStyle;
|
|
858
|
+
private createRingClipPath;
|
|
859
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OverlayComponent, never>;
|
|
860
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OverlayComponent, "app-overlay", never, {}, { "toolbarAction": "toolbarAction"; }, never, never, false, never>;
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
declare class ToolbarComponent {
|
|
864
|
+
activeMode: BuilderMode;
|
|
865
|
+
activeDevice: DeviceMode;
|
|
866
|
+
activeZoom: number;
|
|
867
|
+
canUndo: boolean;
|
|
868
|
+
canRedo: boolean;
|
|
869
|
+
isSaving: boolean;
|
|
870
|
+
pageStatus: string;
|
|
871
|
+
modeChange: EventEmitter<BuilderMode>;
|
|
872
|
+
deviceChange: EventEmitter<DeviceMode>;
|
|
873
|
+
zoomChange: EventEmitter<number | "fit">;
|
|
874
|
+
undo: EventEmitter<void>;
|
|
875
|
+
redo: EventEmitter<void>;
|
|
876
|
+
save: EventEmitter<void>;
|
|
877
|
+
preview: EventEmitter<void>;
|
|
878
|
+
publishToggle: EventEmitter<void>;
|
|
879
|
+
get isPublished(): boolean;
|
|
880
|
+
modePopover: Popover;
|
|
881
|
+
devicePopover: Popover;
|
|
882
|
+
zoomPopover: Popover;
|
|
883
|
+
modes: typeof BuilderMode;
|
|
884
|
+
deviceOptions: DeviceOption[];
|
|
885
|
+
zoomOptions: ZoomOption[];
|
|
886
|
+
get activeModeIcon(): string;
|
|
887
|
+
get activeModeLabel(): string;
|
|
888
|
+
get activeDeviceOption(): DeviceOption;
|
|
889
|
+
get zoomLabel(): string;
|
|
890
|
+
toggleModePopover(event: Event): void;
|
|
891
|
+
selectMode(mode: BuilderMode): void;
|
|
892
|
+
toggleDevicePopover(event: Event): void;
|
|
893
|
+
selectDevice(mode: DeviceMode): void;
|
|
894
|
+
toggleZoomPopover(event: Event): void;
|
|
895
|
+
selectZoom(value: number | 'fit'): void;
|
|
896
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarComponent, never>;
|
|
897
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "app-toolbar", never, { "activeMode": { "alias": "activeMode"; "required": false; }; "activeDevice": { "alias": "activeDevice"; "required": false; }; "activeZoom": { "alias": "activeZoom"; "required": false; }; "canUndo": { "alias": "canUndo"; "required": false; }; "canRedo": { "alias": "canRedo"; "required": false; }; "isSaving": { "alias": "isSaving"; "required": false; }; "pageStatus": { "alias": "pageStatus"; "required": false; }; }, { "modeChange": "modeChange"; "deviceChange": "deviceChange"; "zoomChange": "zoomChange"; "undo": "undo"; "redo": "redo"; "save": "save"; "preview": "preview"; "publishToggle": "publishToggle"; }, never, never, false, never>;
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
declare class SectionComponent implements OnInit, OnDestroy {
|
|
901
|
+
private dragEngine;
|
|
902
|
+
private cdr;
|
|
903
|
+
children: ComponentNode[];
|
|
904
|
+
style: {
|
|
905
|
+
[key: string]: any;
|
|
906
|
+
};
|
|
907
|
+
nodeId: string;
|
|
908
|
+
dropListId: string;
|
|
909
|
+
childClick: EventEmitter<any>;
|
|
910
|
+
childMouseEnter: EventEmitter<any>;
|
|
911
|
+
childMouseLeave: EventEmitter<void>;
|
|
912
|
+
constructor(dragEngine: DragEngineService, cdr: ChangeDetectorRef);
|
|
913
|
+
ngOnInit(): void;
|
|
914
|
+
get listOrientation(): 'horizontal' | 'vertical';
|
|
915
|
+
getChildWidth(node: ComponentNode): string | undefined;
|
|
916
|
+
ngOnDestroy(): void;
|
|
917
|
+
onDrop(event: IoxDropEvent): void;
|
|
918
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SectionComponent, never>;
|
|
919
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SectionComponent, "app-section", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
declare class BuilderContainerComponent implements OnInit, OnDestroy {
|
|
923
|
+
private dragEngine;
|
|
924
|
+
private cdr;
|
|
925
|
+
children: ComponentNode[];
|
|
926
|
+
style: {
|
|
927
|
+
[key: string]: any;
|
|
928
|
+
};
|
|
929
|
+
nodeId: string;
|
|
930
|
+
dropListId: string;
|
|
931
|
+
childClick: EventEmitter<any>;
|
|
932
|
+
childMouseEnter: EventEmitter<any>;
|
|
933
|
+
childMouseLeave: EventEmitter<void>;
|
|
934
|
+
constructor(dragEngine: DragEngineService, cdr: ChangeDetectorRef);
|
|
935
|
+
ngOnInit(): void;
|
|
936
|
+
ngOnDestroy(): void;
|
|
937
|
+
get listOrientation(): 'horizontal' | 'vertical';
|
|
938
|
+
getChildWidth(node: ComponentNode): string | undefined;
|
|
939
|
+
onDrop(event: IoxDropEvent): void;
|
|
940
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BuilderContainerComponent, never>;
|
|
941
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BuilderContainerComponent, "app-builder-container", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
declare class BuilderLinkedContainerComponent implements OnInit, OnDestroy {
|
|
945
|
+
private dragEngine;
|
|
946
|
+
private cdr;
|
|
947
|
+
private elRef;
|
|
948
|
+
private isPreview;
|
|
949
|
+
children: ComponentNode[];
|
|
950
|
+
style: {
|
|
951
|
+
[key: string]: any;
|
|
952
|
+
};
|
|
953
|
+
nodeId: string;
|
|
954
|
+
dropListId: string;
|
|
955
|
+
linkType: 'external' | 'page';
|
|
956
|
+
url: string;
|
|
957
|
+
pageRoute: string;
|
|
958
|
+
target: '_self' | '_blank' | '_parent' | '_top';
|
|
959
|
+
childClick: EventEmitter<any>;
|
|
960
|
+
childMouseEnter: EventEmitter<any>;
|
|
961
|
+
childMouseLeave: EventEmitter<void>;
|
|
962
|
+
private capturePreventDefault;
|
|
963
|
+
constructor(dragEngine: DragEngineService, cdr: ChangeDetectorRef, elRef: ElementRef<HTMLElement>, isPreview: boolean);
|
|
964
|
+
ngOnInit(): void;
|
|
965
|
+
ngOnDestroy(): void;
|
|
966
|
+
get resolvedHref(): string;
|
|
967
|
+
get listOrientation(): 'horizontal' | 'vertical';
|
|
968
|
+
getChildWidth(node: ComponentNode): string | undefined;
|
|
969
|
+
onDrop(event: IoxDropEvent): void;
|
|
970
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BuilderLinkedContainerComponent, [null, null, null, { optional: true; }]>;
|
|
971
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BuilderLinkedContainerComponent, "app-builder-linked-container", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; "linkType": { "alias": "linkType"; "required": false; }; "url": { "alias": "url"; "required": false; }; "pageRoute": { "alias": "pageRoute"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
/** Optional CMS content fetcher. Provide from the host app to enable Repeater data preview. */
|
|
975
|
+
declare const IOX_CONTENT_SERVICE: InjectionToken<IoxContentService>;
|
|
976
|
+
/** Optional font manager. Provide from the host app to populate the fontFamily dropdown. */
|
|
977
|
+
declare const IOX_FONT_MANAGER: InjectionToken<IoxFontManager>;
|
|
978
|
+
interface IoxContentService {
|
|
979
|
+
getContent(contentType: string, orgId?: string): rxjs.Observable<any>;
|
|
980
|
+
}
|
|
981
|
+
interface IoxFontManager {
|
|
982
|
+
loadFonts(orgId: string): void;
|
|
983
|
+
uploadedFonts$: rxjs.Observable<any>;
|
|
984
|
+
getAllFontOptions(): {
|
|
985
|
+
label: string;
|
|
986
|
+
value: string;
|
|
987
|
+
}[];
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
declare class BuilderRepeaterComponent implements OnInit, OnDestroy {
|
|
991
|
+
private dragEngine;
|
|
992
|
+
private overlayService;
|
|
993
|
+
private contentService;
|
|
994
|
+
private dsRegistry;
|
|
995
|
+
private panelEventService;
|
|
996
|
+
private activatedRoute;
|
|
997
|
+
private cdr;
|
|
998
|
+
children: ComponentNode[];
|
|
999
|
+
style: {
|
|
1000
|
+
[key: string]: any;
|
|
1001
|
+
};
|
|
1002
|
+
nodeId: string;
|
|
1003
|
+
dropListId: string;
|
|
1004
|
+
childClick: EventEmitter<any>;
|
|
1005
|
+
childMouseEnter: EventEmitter<any>;
|
|
1006
|
+
childMouseLeave: EventEmitter<void>;
|
|
1007
|
+
items: any[];
|
|
1008
|
+
previewRows: ComponentNode[][];
|
|
1009
|
+
isLoading: boolean;
|
|
1010
|
+
/** Bound reference passed to [ioxDropzonePostDrop] so the directive can call it. */
|
|
1011
|
+
readonly refreshPreviewsBound: () => void;
|
|
1012
|
+
private _source;
|
|
1013
|
+
private _limit;
|
|
1014
|
+
private orgId;
|
|
1015
|
+
private bindingSub?;
|
|
1016
|
+
get source(): string;
|
|
1017
|
+
set source(value: string);
|
|
1018
|
+
get limit(): number;
|
|
1019
|
+
set limit(value: number);
|
|
1020
|
+
constructor(dragEngine: DragEngineService, overlayService: OverlayService, contentService: IoxContentService | null, dsRegistry: DataSourceRegistryService, panelEventService: PanelEventService, activatedRoute: ActivatedRoute, cdr: ChangeDetectorRef);
|
|
1021
|
+
ngOnInit(): void;
|
|
1022
|
+
ngOnDestroy(): void;
|
|
1023
|
+
onDrop(event: IoxDropEvent): void;
|
|
1024
|
+
private fetchData;
|
|
1025
|
+
private refreshPreviews;
|
|
1026
|
+
private applyFirstItemToTemplate;
|
|
1027
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BuilderRepeaterComponent, [null, null, { optional: true; }, null, null, null, null]>;
|
|
1028
|
+
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>;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
declare class PanelChildComponent {
|
|
1032
|
+
name: string;
|
|
1033
|
+
template: TemplateRef<any>;
|
|
1034
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PanelChildComponent, never>;
|
|
1035
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PanelChildComponent, "panel-child", never, { "name": { "alias": "name"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
declare class PanelComponent implements AfterContentInit, OnDestroy {
|
|
1039
|
+
private panelEventService;
|
|
1040
|
+
isPanelOpen: boolean;
|
|
1041
|
+
activePanel: string | null;
|
|
1042
|
+
panelChildren: QueryList<PanelChildComponent>;
|
|
1043
|
+
private sub?;
|
|
1044
|
+
constructor(panelEventService: PanelEventService);
|
|
1045
|
+
ngAfterContentInit(): void;
|
|
1046
|
+
ngOnDestroy(): void;
|
|
1047
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PanelComponent, never>;
|
|
1048
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PanelComponent, "app-panel", never, {}, {}, ["panelChildren"], never, false, never>;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
interface TreeNode {
|
|
1052
|
+
node: ComponentNode;
|
|
1053
|
+
icon: string;
|
|
1054
|
+
label: string;
|
|
1055
|
+
depth: number;
|
|
1056
|
+
expanded: boolean;
|
|
1057
|
+
hasChildren: boolean;
|
|
1058
|
+
/** Reference to the parent's children array that contains this node. */
|
|
1059
|
+
parentArray: ComponentNode[];
|
|
1060
|
+
/** Index of this node inside parentArray. */
|
|
1061
|
+
indexInParent: number;
|
|
1062
|
+
}
|
|
1063
|
+
declare class LayerTreeComponent implements OnInit, OnDestroy {
|
|
1064
|
+
private registry;
|
|
1065
|
+
private overlayService;
|
|
1066
|
+
layout: ComponentNode[];
|
|
1067
|
+
nodeSelect: EventEmitter<ComponentNode>;
|
|
1068
|
+
nodeAction: EventEmitter<{
|
|
1069
|
+
action: NodeAction;
|
|
1070
|
+
node: ComponentNode;
|
|
1071
|
+
}>;
|
|
1072
|
+
nodeMove: EventEmitter<void>;
|
|
1073
|
+
flatTree: TreeNode[];
|
|
1074
|
+
selectedNodeId: string | null;
|
|
1075
|
+
hoveredNodeId: string | null;
|
|
1076
|
+
/** Cache: component type → icon class */
|
|
1077
|
+
private iconMap;
|
|
1078
|
+
private selectSub?;
|
|
1079
|
+
/** Last-seen structural signature — used by ngDoCheck to skip no-op rebuilds. */
|
|
1080
|
+
private _layoutSig;
|
|
1081
|
+
constructor(registry: ComponentRegistryService, overlayService: OverlayService);
|
|
1082
|
+
ngOnInit(): void;
|
|
1083
|
+
ngOnDestroy(): void;
|
|
1084
|
+
ngDoCheck(): void;
|
|
1085
|
+
/** Cheap structural signature: node IDs + nesting depth only. */
|
|
1086
|
+
private sig;
|
|
1087
|
+
onNodeClick(treeNode: TreeNode): void;
|
|
1088
|
+
onNodeMouseEnter(treeNode: TreeNode): void;
|
|
1089
|
+
onNodeMouseLeave(): void;
|
|
1090
|
+
toggleExpand(treeNode: TreeNode, event: MouseEvent): void;
|
|
1091
|
+
onDeleteNode(treeNode: TreeNode, event: MouseEvent): void;
|
|
1092
|
+
onDuplicateNode(treeNode: TreeNode, event: MouseEvent): void;
|
|
1093
|
+
/**
|
|
1094
|
+
* CDK drop handler for tree reorder.
|
|
1095
|
+
* Works on the flat tree indices — maps back to parent arrays to do the move.
|
|
1096
|
+
*/
|
|
1097
|
+
onTreeDrop(event: CdkDragDrop<TreeNode[]>): void;
|
|
1098
|
+
/** Build a type→icon lookup from the registry so we don't instantiate configs per node. */
|
|
1099
|
+
private buildIconMap;
|
|
1100
|
+
private expandedState;
|
|
1101
|
+
private rebuild;
|
|
1102
|
+
private flattenTree;
|
|
1103
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LayerTreeComponent, never>;
|
|
1104
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LayerTreeComponent, "app-layer-tree", never, { "layout": { "alias": "layout"; "required": false; }; }, { "nodeSelect": "nodeSelect"; "nodeAction": "nodeAction"; "nodeMove": "nodeMove"; }, never, never, false, never>;
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
declare class InteractionsPanelComponent implements OnInit, OnDestroy {
|
|
1108
|
+
private overlayService;
|
|
1109
|
+
node: ComponentNode | null;
|
|
1110
|
+
triggerOptions: {
|
|
1111
|
+
value: InteractionTrigger;
|
|
1112
|
+
label: string;
|
|
1113
|
+
icon: string;
|
|
1114
|
+
}[];
|
|
1115
|
+
actionTypeOptions: {
|
|
1116
|
+
value: InteractionActionType;
|
|
1117
|
+
label: string;
|
|
1118
|
+
}[];
|
|
1119
|
+
easingOptions: string[];
|
|
1120
|
+
interactions: IoxInteraction[];
|
|
1121
|
+
/** State for the "add interaction" form */
|
|
1122
|
+
isAdding: boolean;
|
|
1123
|
+
newTrigger: InteractionTrigger;
|
|
1124
|
+
newActionType: InteractionActionType;
|
|
1125
|
+
newDuration: number;
|
|
1126
|
+
newDelay: number;
|
|
1127
|
+
newEasing: string;
|
|
1128
|
+
newOnce: boolean;
|
|
1129
|
+
/** Expanded interaction ID for editing */
|
|
1130
|
+
expandedId: string | null;
|
|
1131
|
+
private selectSub?;
|
|
1132
|
+
constructor(overlayService: OverlayService);
|
|
1133
|
+
ngOnInit(): void;
|
|
1134
|
+
ngOnDestroy(): void;
|
|
1135
|
+
getTriggerLabel(trigger: InteractionTrigger): string;
|
|
1136
|
+
getTriggerIcon(trigger: InteractionTrigger): string;
|
|
1137
|
+
getActionLabel(type: InteractionActionType): string;
|
|
1138
|
+
getActionsSummary(interaction: IoxInteraction): string;
|
|
1139
|
+
toggleExpand(id: string): void;
|
|
1140
|
+
startAdd(): void;
|
|
1141
|
+
cancelAdd(): void;
|
|
1142
|
+
confirmAdd(): void;
|
|
1143
|
+
removeInteraction(id: string): void;
|
|
1144
|
+
addAction(interaction: IoxInteraction): void;
|
|
1145
|
+
removeAction(interaction: IoxInteraction, index: number): void;
|
|
1146
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InteractionsPanelComponent, never>;
|
|
1147
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InteractionsPanelComponent, "app-interactions-panel", never, { "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
declare class IoxBuilderModule {
|
|
1151
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IoxBuilderModule, never>;
|
|
1152
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<IoxBuilderModule, [typeof BuilderComponent, typeof RenderDirective, typeof IoxDraggableDirective, typeof IoxDropzoneDirective, typeof OverlayComponent, typeof ToolbarComponent, typeof SectionComponent, typeof BuilderContainerComponent, typeof BuilderLinkedContainerComponent, typeof BuilderRepeaterComponent, typeof PanelComponent, typeof PanelChildComponent, typeof LayerTreeComponent, typeof InteractionsPanelComponent], [typeof i15.CommonModule, typeof i16.FormsModule, typeof i17.DragDropModule, typeof i18.AccordionModule, typeof i19.ButtonModule, typeof i20.PopoverModule, typeof i21.InputTextModule, typeof i22.SelectModule, typeof i23.TooltipModule, typeof i24.DialogModule, typeof i25.IoxPageModule], [typeof i15.CommonModule, typeof i16.FormsModule, typeof i17.DragDropModule, typeof i18.AccordionModule, typeof i19.ButtonModule, typeof i20.PopoverModule, typeof i21.InputTextModule, typeof i22.SelectModule, typeof i23.TooltipModule, typeof i24.DialogModule, typeof i25.IoxPageModule, typeof BuilderComponent, typeof RenderDirective, typeof IoxDraggableDirective, typeof IoxDropzoneDirective, typeof OverlayComponent, typeof ToolbarComponent, typeof SectionComponent, typeof BuilderContainerComponent, typeof BuilderLinkedContainerComponent, typeof BuilderRepeaterComponent, typeof PanelComponent, typeof PanelChildComponent, typeof LayerTreeComponent, typeof InteractionsPanelComponent]>;
|
|
1153
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<IoxBuilderModule>;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
declare class BuilderButtonComponentConfig extends ComponentConfig {
|
|
1157
|
+
constructor();
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
declare class CardComponentConfig extends ComponentConfig {
|
|
1161
|
+
constructor();
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
declare class BuilderContainerComponentConfig extends ComponentConfig {
|
|
1165
|
+
constructor();
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
declare class BuilderDividerComponentConfig extends ComponentConfig {
|
|
1169
|
+
constructor();
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
declare class BuilderHeadingComponentConfig extends ComponentConfig {
|
|
1173
|
+
constructor();
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
declare class BuilderIconComponentConfig extends ComponentConfig {
|
|
1177
|
+
constructor();
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
declare class BuilderImageComponentConfig extends ComponentConfig {
|
|
1181
|
+
constructor();
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
declare class BuilderLinkComponentConfig extends ComponentConfig {
|
|
1185
|
+
constructor();
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
declare class BuilderLinkedContainerConfig extends ComponentConfig {
|
|
1189
|
+
constructor();
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
declare class RepeaterComponentConfig extends ComponentConfig {
|
|
1193
|
+
constructor();
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
declare class SectionComponentConfig extends ComponentConfig {
|
|
1197
|
+
constructor();
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
declare class BuilderSpacerComponentConfig extends ComponentConfig {
|
|
1201
|
+
constructor();
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
declare class TextBlockComponentConfig extends ComponentConfig {
|
|
1205
|
+
constructor();
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
export { ACTION_TYPE_OPTIONS, BuilderButtonComponentConfig, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, CardComponentConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DataSourceRegistryService, DeviceMode, DragEngineService, EASING_OPTIONS, GroupStyleConfig, IOX_CONTENT_SERVICE, IOX_FONT_MANAGER, InteractionEngineService, InteractionsPanelComponent, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, NodeAction, OverlayComponent, OverlayService, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SectionComponent, SectionComponentConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, defaultPageSettings, generateNodeId, resolveTraitControllerType, resolveTraitOptions };
|
|
1209
|
+
export type { ComponentNode, ComponentTrait, DeviceOption, DragPayload, DsFilterByQueryParam, DsFilterByRouteParam, InteractionAction, InteractionActionType, InteractionTrigger, IoxBinding, IoxContentService, IoxDataSource, IoxDropEvent, IoxFontManager, IoxInteraction, NodeRef, OverlayBoxModel, OverlayBoxSpacing, OverlayEntry, PageRouteAnimationSettings, PageScrollSettings, PageSettings, PageStyleSettings, PanelEvent, QuadSizeSegment, RouteAnimationPreset, StyleTrait, StyleTraitGroup, TraitOptionMap, TraitSelectOption, TraitShowCondition, ViewportState, ZoomOption };
|