@vectoriox/iox-builder 9.8.0 → 9.9.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/fesm2022/vectoriox-iox-builder.mjs +140 -43
- package/fesm2022/vectoriox-iox-builder.mjs.map +1 -1
- package/index.d.ts +49 -16
- package/package.json +2 -2
|
@@ -18,13 +18,13 @@ import { DialogModule } from 'primeng/dialog';
|
|
|
18
18
|
import * as i1$1 from '@vectoriox/iox-ui';
|
|
19
19
|
import { resolveBoundValue, VALIDATION_STATES as VALIDATION_STATES$1, VALIDATION_STATE_CLASS as VALIDATION_STATE_CLASS$1, DEFAULT_WIDTH_BY_TYPE, TEXT_DIRECTION_KEY, TEXT_ALIGN_KEY, TextAlign, COLOR_SCHEME_TRAIT, COLOR_SCHEMES, ColorScheme, LinkType, MAX_LINES_KEY, A11yTrait, BREAKPOINTS, Breakpoint, withSchemeInk, stripSuppressedProps, DeclarationContext, buildPartSelector, planResponsiveRules, resolveStyleProps, targetedStateSelector, stateSelectorSuffix, compileTokenCssBlocks, catalogFontId, fontsForTokens, GOOGLE_FONTS_FILE_ORIGIN, googleFontHref, compileDeclarations, wrapInBreakpointQuery, BreakpointQueryKind, NEW_NODE_STYLE_DEFAULTS, defaultElementStyleFor, applyElementStyle, planDataSource, dataSourcePlanToRequest, normalizeCollectionResult, resolveRepeaterItems, getByPath, computeRelative, ContextStore, ENTRANCE_ACTION_TYPES, EXIT_ACTION_TYPES, ComponentInstanceRegistryService, isActionEnabled, isContextAction, contextActionEffect, resolveContextValue, effectiveActionType, INTERACTION_HIDDEN_ATTRIBUTE, motionAllowed, finalKeyframe, keyframeStyleEntries, buildInteractionKeyframes, declaredInputNames, emptyImagePlaceholder, syncNodeDesignClasses, nodeTraitValue, syncNodeA11yAttributes, nodeA11yAttributes, safeSetInput, colorSchemeOf, composeVirtualTraits, withDefaultHoverTransition, stateNamesIn, partClassName, switchElementStyle, countOverrides, setOverride, breakpointDef, breakpointForWidth, FormRenderState, needsAccessibleName, resolveInputs, setInputOverride, barReserveClass, collectContextSlotKeys, withContextSlots, compilePageStyle, nodeUsesContext, IS_PREVIEW, buttonBlockHref, IoxPageModule, PALETTE_PRESETS, elementStyleById, PART_CLASS_NAMES } from '@vectoriox/iox-ui';
|
|
20
20
|
export { ComponentInstanceRegistryService, VIRTUAL_TRAIT_KEYS, composeVirtualTraits } from '@vectoriox/iox-ui';
|
|
21
|
-
import {
|
|
21
|
+
import { StructureEdit, isAccordionPart, isDisclosurePart, structureRefusal, AccordionRole, CompositeBehaviourTrait, ACCORDION_DEFAULT_ONS, onAccordionItemState, isAccordionItemOn, runCompositeItemAction, shouldScrollToItem, DisclosureRole, AccordionRuntime, accordionBehaviour, compositeScopeId, compositeRowKeys, compositeKindOfRole, closestAccordionItem, isCompositeRoot, isAccordionRoot, buildCardRecipe, buildBadge, buildChip, buildAccordionRecipe, buildDisclosureRecipe, CompositeKind, accordionItemLabel, isLockedPart, accordionRootOf, isAccordionFromContent, accordionItemOf, addAccordionItem, isCompositeItem, accordionHeadingLevel, isCompositePanel, isCompositeTrigger } from '@vectoriox/iox-ui/composite-core';
|
|
22
22
|
import { Subject, BehaviorSubject, of, forkJoin } from 'rxjs';
|
|
23
23
|
import interact from 'interactjs';
|
|
24
24
|
import { formContentInHost, isInteractiveHost, findFormContentInHosts } from '@vectoriox/iox-ui/forms-core';
|
|
25
25
|
import { map, catchError } from 'rxjs/operators';
|
|
26
26
|
import * as i1 from '@angular/common/http';
|
|
27
|
-
import { BEHAVIOUR_ACTION_TYPES, SERVER_ELEMENT_ACTION_TYPES, CONSENT_ACTION_TYPES } from '@vectoriox/iox-ui/actions-core';
|
|
27
|
+
import { itemActionOf, BEHAVIOUR_ACTION_TYPES, SERVER_ELEMENT_ACTION_TYPES, CONSENT_ACTION_TYPES } from '@vectoriox/iox-ui/actions-core';
|
|
28
28
|
import Lenis from 'lenis';
|
|
29
29
|
import Moveable from 'moveable';
|
|
30
30
|
import Selecto from 'selecto';
|
|
@@ -176,6 +176,10 @@ const IOX_BUILDER_LABELS = new InjectionToken('IOX_BUILDER_LABELS', {
|
|
|
176
176
|
providedIn: 'root',
|
|
177
177
|
factory: () => defaultBuilderLabels,
|
|
178
178
|
});
|
|
179
|
+
const IOX_CONTENT_TYPE_LABELS = new InjectionToken('IOX_CONTENT_TYPE_LABELS', {
|
|
180
|
+
providedIn: 'root',
|
|
181
|
+
factory: () => () => null,
|
|
182
|
+
});
|
|
179
183
|
/** Standalone behaviour: the English text the library ships with. */
|
|
180
184
|
const defaultBuilderLabels = (_key, fallback) => fallback;
|
|
181
185
|
/**
|
|
@@ -207,11 +211,14 @@ const BUILDER_CHROME_EN = Object.freeze({
|
|
|
207
211
|
'builder.chrome.compositeRole': 'Composite role',
|
|
208
212
|
'builder.chrome.kindCard': 'Card',
|
|
209
213
|
'builder.chrome.kindAccordion': 'Accordion',
|
|
214
|
+
'builder.chrome.kindDisclosure': 'Disclosure',
|
|
215
|
+
'builder.chrome.refuseLockedDisclosurePart': 'A disclosure keeps its toggle and its panel. Delete the whole disclosure instead.',
|
|
216
|
+
'builder.chrome.refuseLockedDisclosurePartMove': 'This part belongs to its disclosure — it can’t be moved out.',
|
|
210
217
|
'builder.chrome.refuseLockedItemPart': 'An item keeps its header and its panel. Delete the whole item, or the accordion.',
|
|
211
218
|
'builder.chrome.refuseLockedItemPartMove': 'This part belongs to its item — it can’t be moved out.',
|
|
212
219
|
'builder.chrome.refuseLastItem': 'An accordion keeps at least one item. Delete the whole accordion instead.',
|
|
213
220
|
'builder.chrome.addItem': 'Add item',
|
|
214
|
-
'builder.chrome.fromContent': 'From {
|
|
221
|
+
'builder.chrome.fromContent': 'From {source} · {count} rows',
|
|
215
222
|
'builder.chrome.emptySource': 'No rows in “{alias}”.',
|
|
216
223
|
'builder.chrome.emptySourceHint': 'The {type} content type has no published items that match this source’s filters. Add items in Content ▸ {type}, or change the source.',
|
|
217
224
|
'builder.chrome.fromRow': 'row {row} — every row wears this part',
|
|
@@ -244,6 +251,20 @@ const CANVAS_EMPTY_IMAGE_LABEL_EN = BUILDER_CHROME_EN[CANVAS_EMPTY_IMAGE_LABEL_K
|
|
|
244
251
|
*/
|
|
245
252
|
const EDITOR_CHROME_ATTRIBUTE = 'data-iox-chrome';
|
|
246
253
|
|
|
254
|
+
/** The content type a data source reads (`faqs`), or '' for a source that reads none (external, static). */
|
|
255
|
+
function sourceContentType(ds) {
|
|
256
|
+
return ds?.request?.cms?.contentType || ds?.request?.shop?.contentType || '';
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* What the builder's chrome calls the list a source reads — the CONTENT TYPE's label ("From FAQ", board 3), as the
|
|
260
|
+
* host knows it (`IOX_CONTENT_TYPE_LABELS`), else the source's alias. ONE answer for the layer tree's
|
|
261
|
+
* "From FAQ · 3 rows", the Repeater's empty-source hint and the Items section's source options.
|
|
262
|
+
*/
|
|
263
|
+
function sourceTypeLabel(alias, ds, resolve) {
|
|
264
|
+
const type = sourceContentType(ds);
|
|
265
|
+
return (type && resolve(type)) || alias;
|
|
266
|
+
}
|
|
267
|
+
|
|
247
268
|
const freshId = () => Math.random().toString(36).substr(2, 9);
|
|
248
269
|
/**
|
|
249
270
|
* Assign fresh ids to a cloned ComponentNode subtree AND remap intra-subtree references to the
|
|
@@ -445,6 +466,10 @@ var InsertRefusal;
|
|
|
445
466
|
InsertRefusal["LockedItemPart"] = "lockedItemPart";
|
|
446
467
|
/** An accordion's LAST item (composite plan T11): it keeps at least one. */
|
|
447
468
|
InsertRefusal["LastItem"] = "lastItem";
|
|
469
|
+
/** A disclosure's toggle or panel (CC2.1) moved out of it. */
|
|
470
|
+
InsertRefusal["LockedDisclosurePartMove"] = "lockedDisclosurePartMove";
|
|
471
|
+
/** A disclosure's toggle or panel (CC2.1) deleted on its own. */
|
|
472
|
+
InsertRefusal["LockedDisclosurePart"] = "lockedDisclosurePart";
|
|
448
473
|
})(InsertRefusal || (InsertRefusal = {}));
|
|
449
474
|
const FORM_STATE_BLOCK_TYPES = new Set(['FormSuccess', 'FormError']);
|
|
450
475
|
/** The builder-chrome label that says each refusal on screen (English in `BUILDER_CHROME_EN`). */
|
|
@@ -457,7 +482,18 @@ const INSERT_REFUSAL_LABEL_KEYS = Object.freeze({
|
|
|
457
482
|
[InsertRefusal.LockedItemPartMove]: 'builder.chrome.refuseLockedItemPartMove',
|
|
458
483
|
[InsertRefusal.LockedItemPart]: 'builder.chrome.refuseLockedItemPart',
|
|
459
484
|
[InsertRefusal.LastItem]: 'builder.chrome.refuseLastItem',
|
|
485
|
+
[InsertRefusal.LockedDisclosurePartMove]: 'builder.chrome.refuseLockedDisclosurePartMove',
|
|
486
|
+
[InsertRefusal.LockedDisclosurePart]: 'builder.chrome.refuseLockedDisclosurePart',
|
|
460
487
|
});
|
|
488
|
+
/** Which refusal says a locked part's move / delete, by the composite it belongs to (a card's is the default). */
|
|
489
|
+
function lockedRefusal(node, edit) {
|
|
490
|
+
const move = edit === StructureEdit.Move;
|
|
491
|
+
if (isAccordionPart(node))
|
|
492
|
+
return move ? InsertRefusal.LockedItemPartMove : InsertRefusal.LockedItemPart;
|
|
493
|
+
if (isDisclosurePart(node))
|
|
494
|
+
return move ? InsertRefusal.LockedDisclosurePartMove : InsertRefusal.LockedDisclosurePart;
|
|
495
|
+
return move ? InsertRefusal.LockedPartMove : InsertRefusal.LockedPart;
|
|
496
|
+
}
|
|
461
497
|
/** The refusal in the host's language (the library's English when no host resolver is provided). */
|
|
462
498
|
function insertRefusalLabel(reason, labels = defaultBuilderLabels) {
|
|
463
499
|
const key = INSERT_REFUSAL_LABEL_KEYS[reason];
|
|
@@ -484,7 +520,7 @@ function insertRefusal(node, ancestors) {
|
|
|
484
520
|
if (formContentInHost(node, ancestors.some(isInteractiveHost)))
|
|
485
521
|
return InsertRefusal.FormInInteractive;
|
|
486
522
|
if (structureRefusal(node, StructureEdit.Move, ancestors))
|
|
487
|
-
return
|
|
523
|
+
return lockedRefusal(node, StructureEdit.Move);
|
|
488
524
|
return null;
|
|
489
525
|
}
|
|
490
526
|
/** Why `node` may not be REMOVED from where it is (deleted, cut, made global), or null when it may: a
|
|
@@ -492,7 +528,7 @@ function insertRefusal(node, ancestors) {
|
|
|
492
528
|
* accordion keeps its last item. `siblings` = the list `node` sits in (where the caller has it). */
|
|
493
529
|
function removalRefusal(node, siblings) {
|
|
494
530
|
if (structureRefusal(node, StructureEdit.Delete))
|
|
495
|
-
return
|
|
531
|
+
return lockedRefusal(node, StructureEdit.Delete);
|
|
496
532
|
if (node?.role === AccordionRole.Item && siblings && siblings.filter(s => s?.role === AccordionRole.Item).length <= 1)
|
|
497
533
|
return InsertRefusal.LastItem;
|
|
498
534
|
return null;
|
|
@@ -600,6 +636,8 @@ const INVERSE_ACTION = {
|
|
|
600
636
|
clearContext: 'setContext',
|
|
601
637
|
openDialog: 'closeDialog',
|
|
602
638
|
closeDialog: 'openDialog',
|
|
639
|
+
openItem: 'closeItem',
|
|
640
|
+
closeItem: 'openItem',
|
|
603
641
|
};
|
|
604
642
|
const TRIGGER_OPTIONS = [
|
|
605
643
|
{ value: 'pageLoad', label: 'Page load', icon: 'ph-thin ph-play' },
|
|
@@ -3679,8 +3717,11 @@ class InteractionEngineService {
|
|
|
3679
3717
|
this.runActions(node, ix.actions, element);
|
|
3680
3718
|
}
|
|
3681
3719
|
};
|
|
3682
|
-
|
|
3683
|
-
|
|
3720
|
+
// CAPTURE, like the composite runtime: on the canvas every part's own listener stops the click to select
|
|
3721
|
+
// that part, so a click on a button's LABEL never bubbled to the button's click interaction — the live
|
|
3722
|
+
// site runs it (CC2.1: "Open an item" on a ButtonBlock did nothing on the canvas).
|
|
3723
|
+
element.addEventListener('click', handler, true);
|
|
3724
|
+
return () => element.removeEventListener('click', handler, true);
|
|
3684
3725
|
}
|
|
3685
3726
|
attachHover(node, ix, element) {
|
|
3686
3727
|
const enterHandler = () => this.runActions(node, ix.actions, element);
|
|
@@ -3724,6 +3765,13 @@ class InteractionEngineService {
|
|
|
3724
3765
|
this.executeDialogAction(action);
|
|
3725
3766
|
continue;
|
|
3726
3767
|
}
|
|
3768
|
+
// Item actions (CC2.1 — composite T14): the canvas RUNS them on the target item's own runtime — the
|
|
3769
|
+
// one the live site runs — and brings an item that opened out of view into it.
|
|
3770
|
+
const itemAction = itemActionOf(action.type);
|
|
3771
|
+
if (itemAction) {
|
|
3772
|
+
this.executeItemAction(node, action, itemAction, selfEl);
|
|
3773
|
+
continue;
|
|
3774
|
+
}
|
|
3727
3775
|
// Tier-A behaviour (A1c). The canvas-is-live rules are catalog DATA
|
|
3728
3776
|
// (ELEMENT_ACTION_DESCRIPTORS): copy runs, scrollTo runs (scrollIntoView — the frame
|
|
3729
3777
|
// scrolls natively here; the Lenis rule is the LIVE side's), navigate and submitForm
|
|
@@ -3819,6 +3867,14 @@ class InteractionEngineService {
|
|
|
3819
3867
|
}
|
|
3820
3868
|
}
|
|
3821
3869
|
}
|
|
3870
|
+
executeItemAction(node, action, itemAction, selfEl) {
|
|
3871
|
+
const target = this.resolveTarget(node, action, selfEl);
|
|
3872
|
+
const open = runCompositeItemAction(target, itemAction);
|
|
3873
|
+
if (!open || !target)
|
|
3874
|
+
return;
|
|
3875
|
+
if (shouldScrollToItem(target.getBoundingClientRect().top, window.innerHeight))
|
|
3876
|
+
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
|
3877
|
+
}
|
|
3822
3878
|
executeConsentAction(action) {
|
|
3823
3879
|
if (action.type === 'openConsentPreferences') {
|
|
3824
3880
|
const dialog = action.target && action.target !== 'self' ? this.instanceRegistry.get(action.target) : null;
|
|
@@ -4006,10 +4062,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
4006
4062
|
* screen until something opens them, so on the canvas they show only while selected into or switched
|
|
4007
4063
|
* open ("Showing on canvas"). The layer tree marks them with the eye-slash glyph. A Dialog (the mobile
|
|
4008
4064
|
* menu's drawer, a consent banner) by its type; an Accordion's PANEL by its role (CC2 — closed until its
|
|
4009
|
-
* item opens).
|
|
4065
|
+
* item opens); a Disclosure's panel and its "Read less" word (CC2.1 — shown only while it is open). An inactive
|
|
4066
|
+
* tab joins in CC4.
|
|
4010
4067
|
*/
|
|
4011
4068
|
const HIDDEN_AT_REST_TYPES = ['Dialog'];
|
|
4012
|
-
const HIDDEN_AT_REST_ROLES = [AccordionRole.Panel];
|
|
4069
|
+
const HIDDEN_AT_REST_ROLES = [AccordionRole.Panel, DisclosureRole.Panel, DisclosureRole.Less];
|
|
4013
4070
|
function isHiddenAtRest(node) {
|
|
4014
4071
|
return (!!node?.type && HIDDEN_AT_REST_TYPES.includes(node.type)) || (!!node?.role && HIDDEN_AT_REST_ROLES.includes(node.role));
|
|
4015
4072
|
}
|
|
@@ -4145,10 +4202,17 @@ function sameSet(a, b) {
|
|
|
4145
4202
|
return a.size === b.size && [...a].every(id => b.has(id));
|
|
4146
4203
|
}
|
|
4147
4204
|
|
|
4205
|
+
/** The node whose "Showing on canvas" choice a rendered root follows: itself, or — a preview row's copy — its
|
|
4206
|
+
* template (a copy shares its template's style id). */
|
|
4207
|
+
function designIdOf(node) {
|
|
4208
|
+
return node.__previewClone ? (node.styleId ?? node.id) : node.id;
|
|
4209
|
+
}
|
|
4148
4210
|
/**
|
|
4149
|
-
* The composites' runtime ON THE CANVAS (CC2) — the canvas is a live runtime, so an Accordion
|
|
4150
|
-
* closes on the canvas exactly as on the site: the SAME composite-core `AccordionRuntime` the live
|
|
4151
|
-
* attaches.
|
|
4211
|
+
* The composites' runtime ON THE CANVAS (CC2) — the canvas is a live runtime, so an Accordion (and a Disclosure,
|
|
4212
|
+
* CC2.1) opens and closes on the canvas exactly as on the site: the SAME composite-core `AccordionRuntime` the live
|
|
4213
|
+
* engine attaches. A composite repeated in a Repeater's preview rows runs one per row, each with its own ARIA ids
|
|
4214
|
+
* (its row folded into the scope id — vectoriox/iox-ui#20). On top of the live state it shows what the author is
|
|
4215
|
+
* designing (R2, CC1's design state):
|
|
4152
4216
|
* - selecting anything inside a CLOSED panel (canvas, tree, crumb, an Items row, SELECT_NODE) opens its item
|
|
4153
4217
|
* while it is selected, and deselecting closes it again;
|
|
4154
4218
|
* - "Showing on canvas ▸ All open" opens every item; "As saved" goes back to the saved default.
|
|
@@ -4166,18 +4230,21 @@ class CompositeCanvasService {
|
|
|
4166
4230
|
for (const id of [...this.attached.keys()])
|
|
4167
4231
|
this.detach(id);
|
|
4168
4232
|
}
|
|
4169
|
-
/**
|
|
4233
|
+
/** A composite root rendered on the canvas (the template, or a preview row's copy): run it. `element` is the
|
|
4234
|
+
* root's rendered element. Its ARIA ids are scoped by the preview rows it sits in. */
|
|
4170
4235
|
attach(node, element) {
|
|
4171
4236
|
if (!node.id)
|
|
4172
4237
|
return;
|
|
4173
4238
|
this.detach(node.id);
|
|
4239
|
+
const cssId = node.styleId ?? node.id;
|
|
4174
4240
|
const runtime = this.zone.runOutsideAngular(() => new AccordionRuntime(element, {
|
|
4175
|
-
|
|
4241
|
+
kind: compositeKindOfRole(node.role) ?? undefined,
|
|
4242
|
+
rootId: () => compositeScopeId(cssId, compositeRowKeys(element)),
|
|
4176
4243
|
behaviour: accordionBehaviour(node),
|
|
4177
4244
|
observe: true,
|
|
4178
4245
|
forced: () => this.forcedFor(node, element),
|
|
4179
4246
|
}));
|
|
4180
|
-
this.attached.set(node.id, { node, runtime, shown: this.designState?.shownState(node
|
|
4247
|
+
this.attached.set(node.id, { node, runtime, shown: this.designState?.shownState(designIdOf(node)) ?? CanvasShowState.Closed });
|
|
4181
4248
|
}
|
|
4182
4249
|
detach(nodeId) {
|
|
4183
4250
|
if (!nodeId)
|
|
@@ -4195,8 +4262,8 @@ class CompositeCanvasService {
|
|
|
4195
4262
|
return (nodeId && this.attached.get(nodeId)?.runtime) || null;
|
|
4196
4263
|
}
|
|
4197
4264
|
applyDesignState() {
|
|
4198
|
-
for (const
|
|
4199
|
-
const shown = this.designState?.shownState(
|
|
4265
|
+
for (const entry of this.attached.values()) {
|
|
4266
|
+
const shown = this.designState?.shownState(designIdOf(entry.node)) ?? CanvasShowState.Closed;
|
|
4200
4267
|
// Back to "As saved": the saved default, whatever the author clicked open meanwhile (board 3).
|
|
4201
4268
|
if (shown !== entry.shown && shown === CanvasShowState.Closed)
|
|
4202
4269
|
entry.runtime.resetLive();
|
|
@@ -4206,7 +4273,8 @@ class CompositeCanvasService {
|
|
|
4206
4273
|
}
|
|
4207
4274
|
}
|
|
4208
4275
|
/** The keys the design state holds open: every item ("All open"), or the items whose hidden part the
|
|
4209
|
-
* selection sits in. A preview row shares its template's classes, so the template (row 1) answers
|
|
4276
|
+
* selection sits in. A preview row shares its template's classes, so the template (row 1) answers — and a
|
|
4277
|
+
* composite copied into a preview row follows its template's choice. */
|
|
4210
4278
|
forcedFor(node, root) {
|
|
4211
4279
|
const forced = new Set();
|
|
4212
4280
|
const state = this.designState;
|
|
@@ -4214,7 +4282,7 @@ class CompositeCanvasService {
|
|
|
4214
4282
|
return forced;
|
|
4215
4283
|
const runtime = this.attached.get(node.id)?.runtime;
|
|
4216
4284
|
const items = runtime?.items() ?? [];
|
|
4217
|
-
if (state.shownState(node
|
|
4285
|
+
if (state.shownState(designIdOf(node)) === CanvasShowState.Open) {
|
|
4218
4286
|
for (const item of items)
|
|
4219
4287
|
forced.add(runtime.keyOf(item, items));
|
|
4220
4288
|
return forced;
|
|
@@ -4735,8 +4803,10 @@ class RenderDirective {
|
|
|
4735
4803
|
this.overlayService.triggerContextMenu(event.clientX, event.clientY);
|
|
4736
4804
|
});
|
|
4737
4805
|
}
|
|
4738
|
-
// A composite root runs its behaviour on the canvas — the live site's runtime (CC2).
|
|
4739
|
-
|
|
4806
|
+
// A composite root runs its behaviour on the canvas — the live site's runtime (CC2; the Disclosure, CC2.1).
|
|
4807
|
+
// A preview row's copy runs too, scoped by its row (vectoriox/iox-ui#20): its ids are its own and it shows
|
|
4808
|
+
// the saved default, as every row does on the live site.
|
|
4809
|
+
if (nativeEl && node.id && isCompositeRoot(node) && this.compositeCanvas) {
|
|
4740
4810
|
this.compositeCanvas.attach(node, nativeEl);
|
|
4741
4811
|
this.compositeRootId = node.id;
|
|
4742
4812
|
}
|
|
@@ -4859,6 +4929,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
4859
4929
|
|
|
4860
4930
|
const EMPTY_SOURCE_KEY = 'builder.chrome.emptySource';
|
|
4861
4931
|
const EMPTY_SOURCE_HINT_KEY = 'builder.chrome.emptySourceHint';
|
|
4932
|
+
const NO_TYPE_LABELS = () => null;
|
|
4862
4933
|
class BuilderRepeaterComponent {
|
|
4863
4934
|
get children() { return this._children; }
|
|
4864
4935
|
/** RenderDirective sets `source` (→ fetchData) BEFORE `children`. With an async source the response
|
|
@@ -4880,8 +4951,9 @@ class BuilderRepeaterComponent {
|
|
|
4880
4951
|
get emptySourceTitle() {
|
|
4881
4952
|
return this.label(EMPTY_SOURCE_KEY).replace('{alias}', this._source);
|
|
4882
4953
|
}
|
|
4954
|
+
/** "The FAQ content type has no published items…" — the type's LABEL (board 4), else the alias. */
|
|
4883
4955
|
get emptySourceHint() {
|
|
4884
|
-
const type = this.dsRegistry.findByAlias(this._source)
|
|
4956
|
+
const type = sourceTypeLabel(this._source, this.dsRegistry.findByAlias(this._source), this.typeLabels ?? NO_TYPE_LABELS);
|
|
4885
4957
|
return this.label(EMPTY_SOURCE_HINT_KEY).split('{type}').join(type);
|
|
4886
4958
|
}
|
|
4887
4959
|
label(key) {
|
|
@@ -4921,7 +4993,7 @@ class BuilderRepeaterComponent {
|
|
|
4921
4993
|
this.fetchData();
|
|
4922
4994
|
}
|
|
4923
4995
|
}
|
|
4924
|
-
constructor(dragEngine, overlayService, dataSourceService, dsRegistry, panelEventService, cdr, interactionEngine, labels) {
|
|
4996
|
+
constructor(dragEngine, overlayService, dataSourceService, dsRegistry, panelEventService, cdr, interactionEngine, labels, typeLabels) {
|
|
4925
4997
|
this.dragEngine = dragEngine;
|
|
4926
4998
|
this.overlayService = overlayService;
|
|
4927
4999
|
this.dataSourceService = dataSourceService;
|
|
@@ -4930,6 +5002,7 @@ class BuilderRepeaterComponent {
|
|
|
4930
5002
|
this.cdr = cdr;
|
|
4931
5003
|
this.interactionEngine = interactionEngine;
|
|
4932
5004
|
this.labels = labels;
|
|
5005
|
+
this.typeLabels = typeLabels;
|
|
4933
5006
|
this._children = [];
|
|
4934
5007
|
this.style = {};
|
|
4935
5008
|
this.nodeId = '';
|
|
@@ -5070,7 +5143,7 @@ class BuilderRepeaterComponent {
|
|
|
5070
5143
|
if (this.items.length)
|
|
5071
5144
|
setTimeout(() => this.refreshPreviews());
|
|
5072
5145
|
}
|
|
5073
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: BuilderRepeaterComponent, deps: [{ token: DragEngineService }, { token: OverlayService }, { token: BuilderDataSourceService }, { token: DataSourceRegistryService }, { token: PanelEventService }, { token: i0.ChangeDetectorRef }, { token: InteractionEngineService }, { token: IOX_BUILDER_LABELS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.31", ngImport: i0, type: BuilderRepeaterComponent, deps: [{ token: DragEngineService }, { token: OverlayService }, { token: BuilderDataSourceService }, { token: DataSourceRegistryService }, { token: PanelEventService }, { token: i0.ChangeDetectorRef }, { token: InteractionEngineService }, { token: IOX_BUILDER_LABELS, optional: true }, { token: IOX_CONTENT_TYPE_LABELS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5074
5147
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.31", type: BuilderRepeaterComponent, isStandalone: false, selector: "app-builder-repeater", inputs: { children: "children", style: "style", nodeId: "nodeId", dropListId: "dropListId", source: "source", sourcePath: "sourcePath", limit: "limit" }, outputs: { childClick: "childClick", childMouseEnter: "childMouseEnter", childMouseLeave: "childMouseLeave" }, ngImport: i0, template: `
|
|
5075
5148
|
<ng-template #badgeContent>
|
|
5076
5149
|
<i class="ph-thin ph-repeat"></i>
|
|
@@ -5261,6 +5334,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
5261
5334
|
}, {
|
|
5262
5335
|
type: Inject,
|
|
5263
5336
|
args: [IOX_BUILDER_LABELS]
|
|
5337
|
+
}] }, { type: undefined, decorators: [{
|
|
5338
|
+
type: Optional
|
|
5339
|
+
}, {
|
|
5340
|
+
type: Inject,
|
|
5341
|
+
args: [IOX_CONTENT_TYPE_LABELS]
|
|
5264
5342
|
}] }], propDecorators: { children: [{
|
|
5265
5343
|
type: Input
|
|
5266
5344
|
}], style: [{
|
|
@@ -5294,9 +5372,10 @@ var CompositePresetId;
|
|
|
5294
5372
|
CompositePresetId["Badge"] = "badge";
|
|
5295
5373
|
CompositePresetId["Chip"] = "chip";
|
|
5296
5374
|
CompositePresetId["Accordion"] = "accordion";
|
|
5375
|
+
CompositePresetId["Disclosure"] = "disclosure";
|
|
5297
5376
|
})(CompositePresetId || (CompositePresetId = {}));
|
|
5298
5377
|
/** Where a composite sits in the Components panel (composite plan §6d): content blocks, or the interactive
|
|
5299
|
-
* composites (the Accordion — CC2; Tabs and the floating family later). */
|
|
5378
|
+
* composites (the Accordion — CC2, the Disclosure — CC2.1; Tabs and the floating family later). */
|
|
5300
5379
|
var CompositePaletteGroup;
|
|
5301
5380
|
(function (CompositePaletteGroup) {
|
|
5302
5381
|
CompositePaletteGroup["ContentBlocks"] = "content-blocks";
|
|
@@ -5323,6 +5402,11 @@ const COMPOSITE_PRESETS = Object.freeze([
|
|
|
5323
5402
|
description: 'Questions that open — three items, one open at a time. Every header, icon and panel is its own element.',
|
|
5324
5403
|
build: create => buildAccordionRecipe(create),
|
|
5325
5404
|
},
|
|
5405
|
+
{
|
|
5406
|
+
id: CompositePresetId.Disclosure, group: CompositePaletteGroup.Interactive, name: 'Disclosure', icon: 'ph-thin ph-caret-circle-down',
|
|
5407
|
+
description: '"Read more" — a button that reveals the text below it and reads "Read less" while it is open.',
|
|
5408
|
+
build: create => buildDisclosureRecipe(create),
|
|
5409
|
+
},
|
|
5326
5410
|
]);
|
|
5327
5411
|
/**
|
|
5328
5412
|
* The builder's node factory for composite-core recipes: a NEW node as the palette creates one
|
|
@@ -6768,13 +6852,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
6768
6852
|
* breadcrumb and the tree row's sub-label share these, so the four surfaces never disagree (board 3: "The
|
|
6769
6853
|
* four surfaces, all driven by the same selection").
|
|
6770
6854
|
*
|
|
6771
|
-
* An accordion's parts are named by the part alone (`trigger`, "Accordion · trigger", board 3);
|
|
6772
|
-
* its full role (`card.title`, "Card · card.title", board 8).
|
|
6855
|
+
* An accordion's and a disclosure's parts are named by the part alone (`trigger`, "Accordion · trigger", board 3);
|
|
6856
|
+
* a card keeps its full role (`card.title`, "Card · card.title", board 8).
|
|
6773
6857
|
*/
|
|
6774
|
-
const SHORT_ROLE_KINDS = new Set([
|
|
6858
|
+
const SHORT_ROLE_KINDS = new Set([CompositeKind.Accordion, CompositeKind.Disclosure]);
|
|
6775
6859
|
/** A composite kind's glyph (Phosphor, weight-less): the badge, the root's crumb and its tree row carry it
|
|
6776
6860
|
* (board 3: "the composite root carrying its kind icon"). A card keeps the generic stack glyph. */
|
|
6777
|
-
const KIND_GLYPHS = {
|
|
6861
|
+
const KIND_GLYPHS = { [CompositeKind.Accordion]: 'ph-rows', [CompositeKind.Disclosure]: 'ph-caret-circle-down' };
|
|
6778
6862
|
const DEFAULT_KIND_GLYPH = 'ph-stack';
|
|
6779
6863
|
/** The tree icon of an accordion's structural parts (board 3): rows on the root, a stack on an item and a
|
|
6780
6864
|
* panel, a cursor on the header, a sparkle on the icon. Other parts keep their type's icon. */
|
|
@@ -6784,6 +6868,12 @@ const PART_ICONS = {
|
|
|
6784
6868
|
[AccordionRole.Trigger]: 'ph-thin ph-cursor',
|
|
6785
6869
|
[AccordionRole.Panel]: 'ph-thin ph-stack',
|
|
6786
6870
|
[AccordionRole.Icon]: 'ph-thin ph-sparkle',
|
|
6871
|
+
// CC2.1 — the disclosure follows the accordion's drawn conventions (board 3): its kind glyph on the root, a
|
|
6872
|
+
// cursor on its toggle, a stack on its panel, a sparkle on its icon; its two words keep the Text icon.
|
|
6873
|
+
[DisclosureRole.Disclosure]: 'ph-thin ph-caret-circle-down',
|
|
6874
|
+
[DisclosureRole.Trigger]: 'ph-thin ph-cursor',
|
|
6875
|
+
[DisclosureRole.Panel]: 'ph-thin ph-stack',
|
|
6876
|
+
[DisclosureRole.Icon]: 'ph-thin ph-sparkle',
|
|
6787
6877
|
};
|
|
6788
6878
|
/** The glyph of a role's composite kind (`ph-rows` for an accordion and its parts). */
|
|
6789
6879
|
function compositeKindGlyph(role) {
|
|
@@ -6868,7 +6958,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
6868
6958
|
const FROM_ROW_KEY = 'builder.chrome.fromRow';
|
|
6869
6959
|
const ADD_ITEM_KEY = 'builder.chrome.addItem';
|
|
6870
6960
|
/** The kind label a composite part's selection badge shows (Card v2: "Card · card.title"). */
|
|
6871
|
-
const COMPOSITE_KIND_KEYS = { card: 'builder.chrome.kindCard', accordion: 'builder.chrome.kindAccordion' };
|
|
6961
|
+
const COMPOSITE_KIND_KEYS = { card: 'builder.chrome.kindCard', accordion: 'builder.chrome.kindAccordion', disclosure: 'builder.chrome.kindDisclosure' };
|
|
6872
6962
|
/** The parts that offer "Add item" on the selection toolbar (board 3: the "Add slide" pattern). */
|
|
6873
6963
|
const ADD_ITEM_ROLES = new Set([AccordionRole.Accordion, AccordionRole.Item, AccordionRole.Trigger, AccordionRole.Panel]);
|
|
6874
6964
|
class OverlayComponent {
|
|
@@ -7737,7 +7827,7 @@ function walk(nodes, depth, out, ctx, inTemplate, templateOf) {
|
|
|
7737
7827
|
}
|
|
7738
7828
|
}
|
|
7739
7829
|
|
|
7740
|
-
/** An Accordion from content's root row (CC2, board 9): "From
|
|
7830
|
+
/** An Accordion from content's root row (CC2, board 3 / 9): "From FAQ · 6 rows" — the content type's label. */
|
|
7741
7831
|
const FROM_CONTENT_KEY = 'builder.chrome.fromContent';
|
|
7742
7832
|
const LOCKED_PART_KEY = 'builder.chrome.lockedPart';
|
|
7743
7833
|
const COMPOSITE_ROLE_KEY = 'builder.chrome.compositeRole';
|
|
@@ -7775,6 +7865,8 @@ class LayerTreeComponent {
|
|
|
7775
7865
|
this.activeSection = 'page';
|
|
7776
7866
|
this.labels = inject(IOX_BUILDER_LABELS);
|
|
7777
7867
|
this.panelEvents = inject(PanelEventService);
|
|
7868
|
+
this.typeLabels = inject(IOX_CONTENT_TYPE_LABELS);
|
|
7869
|
+
this.dataSources = inject(DataSourceRegistryService, { optional: true });
|
|
7778
7870
|
this.lockedPartTitle = this.labels(LOCKED_PART_KEY, BUILDER_CHROME_EN[LOCKED_PART_KEY]);
|
|
7779
7871
|
this.roleTitle = this.labels(COMPOSITE_ROLE_KEY, BUILDER_CHROME_EN[COMPOSITE_ROLE_KEY]);
|
|
7780
7872
|
this.templateLabel = this.labels(TEMPLATE_KEY, BUILDER_CHROME_EN[TEMPLATE_KEY]);
|
|
@@ -7946,7 +8038,9 @@ class LayerTreeComponent {
|
|
|
7946
8038
|
isExpanded: (node) => (node.id ? (this.expandedState.get(node.id) ?? true) : true),
|
|
7947
8039
|
repeaterRows: (node) => this.repeaterRows(node),
|
|
7948
8040
|
fromContentLabel: (rows) => rows.alias
|
|
7949
|
-
? this.labels(FROM_CONTENT_KEY, BUILDER_CHROME_EN[FROM_CONTENT_KEY])
|
|
8041
|
+
? this.labels(FROM_CONTENT_KEY, BUILDER_CHROME_EN[FROM_CONTENT_KEY])
|
|
8042
|
+
.replace('{source}', sourceTypeLabel(rows.alias, this.dataSources?.findByAlias(rows.alias), this.typeLabels))
|
|
8043
|
+
.replace('{count}', String(rows.count))
|
|
7950
8044
|
: null,
|
|
7951
8045
|
};
|
|
7952
8046
|
this.flatTree = flattenLayerTree(this.layout, ctx);
|
|
@@ -8019,7 +8113,7 @@ class BreadcrumbBarComponent {
|
|
|
8019
8113
|
...nodes.map((node, i) => ({
|
|
8020
8114
|
node,
|
|
8021
8115
|
label: crumbLabel(node),
|
|
8022
|
-
icon:
|
|
8116
|
+
icon: isCompositeRoot(node) ? `ph-thin ${compositeKindGlyph(node.role)}` : null,
|
|
8023
8117
|
isCurrent: i === last,
|
|
8024
8118
|
key: node,
|
|
8025
8119
|
})),
|
|
@@ -9883,13 +9977,14 @@ const ACCORDION_TRACK_WRAPPER = 'track';
|
|
|
9883
9977
|
* See moveable-migration.md.
|
|
9884
9978
|
*/
|
|
9885
9979
|
class BuilderContainerComponent {
|
|
9886
|
-
/** The wrapper a child renders in: an Accordion item's header → its heading level
|
|
9980
|
+
/** The wrapper a child renders in: an Accordion item's header → its heading level; an item's panel (either
|
|
9981
|
+
* kind) → the track. A disclosure's toggle has no heading — it is a button in the flow. */
|
|
9887
9982
|
wrapperOf(child) {
|
|
9888
|
-
if (this.node
|
|
9983
|
+
if (!isCompositeItem(this.node))
|
|
9889
9984
|
return null;
|
|
9890
|
-
if (child.role === AccordionRole.Trigger)
|
|
9985
|
+
if (child.role === AccordionRole.Trigger && this.node?.role === AccordionRole.Item)
|
|
9891
9986
|
return accordionHeadingLevel(child);
|
|
9892
|
-
if (child
|
|
9987
|
+
if (isCompositePanel(child))
|
|
9893
9988
|
return ACCORDION_TRACK_WRAPPER;
|
|
9894
9989
|
return null;
|
|
9895
9990
|
}
|
|
@@ -9962,7 +10057,8 @@ class BuilderContainerComponent {
|
|
|
9962
10057
|
</ng-template>
|
|
9963
10058
|
<!-- An Accordion ITEM (CC2) wraps its parts in the markup every renderer writes: the header inside a
|
|
9964
10059
|
heading of its question's level, the panel inside the track + region the ONE hiding rule collapses
|
|
9965
|
-
(iox-design.css).
|
|
10060
|
+
(iox-design.css). A Disclosure (CC2.1) is its own item: its toggle stays a bare button, its panel
|
|
10061
|
+
takes the same track. Structural only — the runtime stamps their state. -->
|
|
9966
10062
|
@for (child of children; track child) {
|
|
9967
10063
|
@switch (wrapperOf(child)) {
|
|
9968
10064
|
@case ('h2') { <h2 class="iox-accordion-heading"><ng-container *ngTemplateOutlet="childTpl; context: { $implicit: child }"></ng-container></h2> }
|
|
@@ -10003,7 +10099,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
10003
10099
|
</ng-template>
|
|
10004
10100
|
<!-- An Accordion ITEM (CC2) wraps its parts in the markup every renderer writes: the header inside a
|
|
10005
10101
|
heading of its question's level, the panel inside the track + region the ONE hiding rule collapses
|
|
10006
|
-
(iox-design.css).
|
|
10102
|
+
(iox-design.css). A Disclosure (CC2.1) is its own item: its toggle stays a bare button, its panel
|
|
10103
|
+
takes the same track. Structural only — the runtime stamps their state. -->
|
|
10007
10104
|
@for (child of children; track child) {
|
|
10008
10105
|
@switch (wrapperOf(child)) {
|
|
10009
10106
|
@case ('h2') { <h2 class="iox-accordion-heading"><ng-container *ngTemplateOutlet="childTpl; context: { $implicit: child }"></ng-container></h2> }
|
|
@@ -10024,7 +10121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
10024
10121
|
'[attr.data-iox-state]': 'formClass === "iox-form" ? formState : null',
|
|
10025
10122
|
'[attr.start]': "htmlTag === 'ol' && start !== 1 ? start : null",
|
|
10026
10123
|
'[attr.reversed]': "htmlTag === 'ol' && reversed ? '' : null",
|
|
10027
|
-
// An
|
|
10124
|
+
// An item's identity (an accordion item, or a disclosure) — the runtime pairs its header and panel ids from it.
|
|
10028
10125
|
'[attr.data-iox-item-key]': 'node?.itemKey ?? null',
|
|
10029
10126
|
}, standalone: false, styles: [":host{position:relative;box-sizing:border-box}.container-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:1.5px dashed rgba(100,116,139,.35);border-radius:4px;color:#64748b80;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;opacity:0;transition:opacity .15s}:host(:hover) .container-placeholder,:host(.iox-drag-over) .container-placeholder{opacity:1}.container-placeholder i{font-size:18px}:host ::ng-deep>[class*=iox-outer-]{min-width:0}\n"] }]
|
|
10030
10127
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: DragEngineService }, { type: i0.ChangeDetectorRef }], propDecorators: { children: [{
|
|
@@ -10056,9 +10153,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
|
|
|
10056
10153
|
/** `click` covers plain and modified clicks; a middle click opens a tab through `auxclick` alone. */
|
|
10057
10154
|
const NAVIGATING_CLICKS = ['click', 'auxclick'];
|
|
10058
10155
|
class BuilderLinkedContainerComponent {
|
|
10059
|
-
/** An Accordion's header
|
|
10156
|
+
/** An Accordion's header (CC2) or a Disclosure's toggle (CC2.1) renders a <button>. */
|
|
10060
10157
|
get isTrigger() {
|
|
10061
|
-
return this.node
|
|
10158
|
+
return isCompositeTrigger(this.node);
|
|
10062
10159
|
}
|
|
10063
10160
|
constructor(dragEngine, cdr, elRef, isPreview) {
|
|
10064
10161
|
this.dragEngine = dragEngine;
|
|
@@ -13265,5 +13362,5 @@ class BuilderSpacerComponentConfig extends ComponentConfig {
|
|
|
13265
13362
|
* Generated bundle index. Do not edit.
|
|
13266
13363
|
*/
|
|
13267
13364
|
|
|
13268
|
-
export { ACTION_TYPE_OPTIONS, AuditCode, AuditPanelComponent, AuditSeverity, BODY_CRUMB_LABEL, BOUND_ICON, BREAKPOINT_PRESENTATION, BUILDER_CANVAS_CONTAINER, BUILDER_CHROME_EN, BUILDER_FONT_LINK_ATTR, BUILDER_TOKEN_SCOPE_CLASS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDialogComponent, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CANVAS_EMPTY_IMAGE_LABEL_EN, CANVAS_EMPTY_IMAGE_LABEL_KEY, CANVAS_ROOT_RESET_CSS, COMPOSITE_PRESETS, CanvasDesignStateService, CanvasShowState, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, CompositeCanvasService, CompositePaletteGroup, CompositePresetId, DEFAULT_ESSENTIAL_TRAITS, DESCRIPTOR_MAX_LENGTH, DRAG_HANDLE_ATTR, DROP_REFUSED_CLASS, DataSourceRegistryService, DataSourceType, DialogComponentConfig, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS$1 as EASING_OPTIONS, EDITOR_CHROME_ATTRIBUTE, ESSENTIAL_TRAITS_BY_TYPE, EffectsGroupStyleConfig, FIELD_KIND_PRESETS, FIELD_PARTS, FORM_STATE_BLOCK_TYPES, FORM_TYPE, FieldComponentConfig, FieldGroupComponentConfig, FormComponentConfig, FormErrorComponentConfig, FormStateService, FormSuccessComponentConfig, GLOBALS_AFTER_CLASS, GalleryConfig, GlobalCanvasLayer, GroupStyleConfig, HIDDEN_AT_REST_LABEL_KEY, HIDDEN_AT_REST_ROLES, HIDDEN_AT_REST_TYPES, INSERT_REFUSAL_LABEL_KEYS, INTERACTION_STATES, INVERSE_ACTION, IOX_BUILDER_CANVAS, IOX_BUILDER_LABELS, IOX_DATA_SOURCE_ENDPOINTS, InsertRefusal, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LAYOUT_PRESETS, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PALETTE_PRESET_DEFS, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, REPEATER_SOURCE_PROP, REPEATER_TYPE, ROOT_ESCAPE_PX, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, RootZone, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SelectionReveal, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StructureFix, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SubmitButtonComponentConfig, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, VALIDATION_STATES, VALIDATION_STATE_CLASS, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, auditNodes, bindingLabel, bindingLabels, buildCompositePreset, buildConsentPreset, buildElementStyleSpecimen, buildFieldKindPreset, buildFlavorSpecimen, buildFormPreset, buildFullStyleTraits, buildLayoutPreset, buildPalettePreset, buildPresetStyleTraits, builderCompositeFactory, canFluidise, canvasEmptyImageLabel, collapseColumnsProps, columnCountOf, defaultBuilderLabels, defaultPageSettings, dropChildren, dropTargetLabel, escapesRoot, essentialTraitsFor, findNodeLocation, findParentOf, flattenLayerTree, flattenSchemaFields, fluidiseProps, generateNodeId, globalCanvasLayer, insertRefusal, insertRefusalLabel, isHiddenAt, isHiddenAtRest, isPinnedGlobal, isSpecimen, markSpecimen, matchesControlSearch, nearestFormNode, nodeAncestorPath, nodeAncestorPathInEither, nodeDescriptor, nodeStyleMap, overlayGlobals, pathToNode, refreshSubtree, regenerateNodeIds, removalRefusal, reorderProps, repeaterSourceAlias, repeaterSubLabel, resolveInsertTarget, resolveTraitControllerType, resolveTraitOptions, retypeNode, rootEscapeBand, rootZone, selectionRevealOf, setStyleTrait, setTrait, shortDescriptor, stackChildrenProps, summarise, syncEmptyImagePlaceholder, syncNodeDesign, syncNodeInputs, textNode, upsertNodeStyles, visibilityProps, walkNodes, wrapNode };
|
|
13365
|
+
export { ACTION_TYPE_OPTIONS, AuditCode, AuditPanelComponent, AuditSeverity, BODY_CRUMB_LABEL, BOUND_ICON, BREAKPOINT_PRESENTATION, BUILDER_CANVAS_CONTAINER, BUILDER_CHROME_EN, BUILDER_FONT_LINK_ATTR, BUILDER_TOKEN_SCOPE_CLASS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDialogComponent, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CANVAS_EMPTY_IMAGE_LABEL_EN, CANVAS_EMPTY_IMAGE_LABEL_KEY, CANVAS_ROOT_RESET_CSS, COMPOSITE_PRESETS, CanvasDesignStateService, CanvasShowState, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, CompositeCanvasService, CompositePaletteGroup, CompositePresetId, DEFAULT_ESSENTIAL_TRAITS, DESCRIPTOR_MAX_LENGTH, DRAG_HANDLE_ATTR, DROP_REFUSED_CLASS, DataSourceRegistryService, DataSourceType, DialogComponentConfig, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS$1 as EASING_OPTIONS, EDITOR_CHROME_ATTRIBUTE, ESSENTIAL_TRAITS_BY_TYPE, EffectsGroupStyleConfig, FIELD_KIND_PRESETS, FIELD_PARTS, FORM_STATE_BLOCK_TYPES, FORM_TYPE, FieldComponentConfig, FieldGroupComponentConfig, FormComponentConfig, FormErrorComponentConfig, FormStateService, FormSuccessComponentConfig, GLOBALS_AFTER_CLASS, GalleryConfig, GlobalCanvasLayer, GroupStyleConfig, HIDDEN_AT_REST_LABEL_KEY, HIDDEN_AT_REST_ROLES, HIDDEN_AT_REST_TYPES, INSERT_REFUSAL_LABEL_KEYS, INTERACTION_STATES, INVERSE_ACTION, IOX_BUILDER_CANVAS, IOX_BUILDER_LABELS, IOX_CONTENT_TYPE_LABELS, IOX_DATA_SOURCE_ENDPOINTS, InsertRefusal, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LAYOUT_PRESETS, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PALETTE_PRESET_DEFS, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, REPEATER_SOURCE_PROP, REPEATER_TYPE, ROOT_ESCAPE_PX, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, RootZone, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SelectionReveal, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StructureFix, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SubmitButtonComponentConfig, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, VALIDATION_STATES, VALIDATION_STATE_CLASS, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, auditNodes, bindingLabel, bindingLabels, buildCompositePreset, buildConsentPreset, buildElementStyleSpecimen, buildFieldKindPreset, buildFlavorSpecimen, buildFormPreset, buildFullStyleTraits, buildLayoutPreset, buildPalettePreset, buildPresetStyleTraits, builderCompositeFactory, canFluidise, canvasEmptyImageLabel, collapseColumnsProps, columnCountOf, defaultBuilderLabels, defaultPageSettings, dropChildren, dropTargetLabel, escapesRoot, essentialTraitsFor, findNodeLocation, findParentOf, flattenLayerTree, flattenSchemaFields, fluidiseProps, generateNodeId, globalCanvasLayer, insertRefusal, insertRefusalLabel, isHiddenAt, isHiddenAtRest, isPinnedGlobal, isSpecimen, markSpecimen, matchesControlSearch, nearestFormNode, nodeAncestorPath, nodeAncestorPathInEither, nodeDescriptor, nodeStyleMap, overlayGlobals, pathToNode, refreshSubtree, regenerateNodeIds, removalRefusal, reorderProps, repeaterSourceAlias, repeaterSubLabel, resolveInsertTarget, resolveTraitControllerType, resolveTraitOptions, retypeNode, rootEscapeBand, rootZone, selectionRevealOf, setStyleTrait, setTrait, shortDescriptor, sourceContentType, sourceTypeLabel, stackChildrenProps, summarise, syncEmptyImagePlaceholder, syncNodeDesign, syncNodeInputs, textNode, upsertNodeStyles, visibilityProps, walkNodes, wrapNode };
|
|
13269
13366
|
//# sourceMappingURL=vectoriox-iox-builder.mjs.map
|