@useinsider/guido 3.2.0-beta.78d83bd → 3.2.0-beta.7fb9b70

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.
Files changed (118) hide show
  1. package/README.md +117 -1
  2. package/dist/@types/config/schemas.js +153 -95
  3. package/dist/components/Guido.vue.js +4 -4
  4. package/dist/components/Guido.vue2.js +90 -88
  5. package/dist/components/organisms/AutoSaveController.vue.js +17 -0
  6. package/dist/components/organisms/AutoSaveController.vue2.js +13 -0
  7. package/dist/components/organisms/header/AutoSaveToggle.vue.js +22 -0
  8. package/dist/components/organisms/header/AutoSaveToggle.vue2.js +19 -0
  9. package/dist/components/organisms/header/RightSlot.vue.js +8 -8
  10. package/dist/components/organisms/header/RightSlot.vue2.js +9 -8
  11. package/dist/components/organisms/onboarding/AMPOnboarding.vue2.js +51 -31
  12. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +1 -1
  13. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +23 -22
  14. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +1 -1
  15. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +37 -39
  16. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +3 -3
  17. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +30 -41
  18. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue2.js +15 -14
  19. package/dist/composables/useAutoSave.js +71 -0
  20. package/dist/composables/useRecommendation.js +46 -26
  21. package/dist/composables/useRibbonOffset.js +21 -0
  22. package/dist/composables/useSave.js +19 -16
  23. package/dist/composables/useStripo.js +14 -16
  24. package/dist/composables/validators/useCouponBlockValidator.js +24 -0
  25. package/dist/config/compiler/recommendationCompilerRules.js +25 -25
  26. package/dist/config/compiler/utils/recommendationCompilerUtils.js +104 -71
  27. package/dist/config/migrator/index.js +9 -9
  28. package/dist/config/migrator/radioButtonMigrator.js +64 -44
  29. package/dist/config/migrator/recommendation/compositionMapper.js +98 -0
  30. package/dist/config/migrator/recommendation/extractors.js +27 -0
  31. package/dist/config/migrator/recommendation/htmlBuilder.js +496 -0
  32. package/dist/config/migrator/recommendation/parseLegacyConfig.js +33 -0
  33. package/dist/config/migrator/recommendation/settingsMapper.js +70 -0
  34. package/dist/config/migrator/recommendation/themeMapper.js +93 -0
  35. package/dist/config/migrator/recommendationMigrator.js +74 -290
  36. package/dist/enums/extensions/recommendationBlock.js +2 -1
  37. package/dist/enums/onboarding.js +7 -2
  38. package/dist/extensions/Blocks/Items/template.js +48 -46
  39. package/dist/extensions/Blocks/RadioButton/template.js +1 -1
  40. package/dist/extensions/Blocks/Recommendation/block.js +35 -32
  41. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +5 -5
  42. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +25 -24
  43. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +228 -181
  44. package/dist/extensions/Blocks/Recommendation/services/configService.js +65 -29
  45. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +130 -90
  46. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +19 -10
  47. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +8 -8
  48. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +25 -15
  49. package/dist/extensions/Blocks/Recommendation/templates/utils.js +1 -1
  50. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMap.js +21 -0
  51. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +13 -22
  52. package/dist/guido.css +1 -1
  53. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +259 -235
  54. package/dist/node_modules/valibot/dist/index.js +450 -235
  55. package/dist/package.json.js +1 -1
  56. package/dist/services/templateLibraryApi.js +5 -4
  57. package/dist/src/@types/config/defaults.d.ts +5 -1
  58. package/dist/src/@types/config/index.d.ts +3 -3
  59. package/dist/src/@types/config/schemas.d.ts +217 -0
  60. package/dist/src/@types/config/types.d.ts +9 -1
  61. package/dist/src/components/Guido.vue.d.ts +1 -1
  62. package/dist/src/components/organisms/AutoSaveController.vue.d.ts +2 -0
  63. package/dist/src/components/organisms/header/AutoSaveToggle.vue.d.ts +2 -0
  64. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  65. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  66. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  67. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  68. package/dist/src/composables/useAutoSave.d.ts +3 -0
  69. package/dist/src/composables/useConfig.d.ts +58 -0
  70. package/dist/src/composables/useRecommendation.d.ts +10 -1
  71. package/dist/src/composables/useRecommendation.test.d.ts +1 -0
  72. package/dist/src/composables/useRibbonOffset.d.ts +4 -0
  73. package/dist/src/composables/useSave.d.ts +1 -1
  74. package/dist/src/composables/validators/useCouponBlockValidator.d.ts +3 -0
  75. package/dist/src/config/migrator/index.d.ts +2 -1
  76. package/dist/src/config/migrator/recommendation/compositionMapper.d.ts +2 -0
  77. package/dist/src/config/migrator/recommendation/compositionMapper.test.d.ts +1 -0
  78. package/dist/src/config/migrator/recommendation/extractors.d.ts +7 -0
  79. package/dist/src/config/migrator/recommendation/extractors.test.d.ts +1 -0
  80. package/dist/src/config/migrator/recommendation/htmlBuilder.d.ts +11 -0
  81. package/dist/src/config/migrator/recommendation/parseLegacyConfig.d.ts +15 -0
  82. package/dist/src/config/migrator/recommendation/parseLegacyConfig.test.d.ts +1 -0
  83. package/dist/src/config/migrator/recommendation/settingsMapper.d.ts +7 -0
  84. package/dist/src/config/migrator/recommendation/settingsMapper.test.d.ts +1 -0
  85. package/dist/src/config/migrator/recommendation/themeMapper.d.ts +5 -0
  86. package/dist/src/config/migrator/recommendation/themeMapper.test.d.ts +1 -0
  87. package/dist/src/config/migrator/recommendation/types.d.ts +205 -0
  88. package/dist/src/config/migrator/recommendationMigrator.d.ts +13 -1
  89. package/dist/src/config/migrator/recommendationMigrator.test.d.ts +1 -0
  90. package/dist/src/enums/onboarding.d.ts +6 -0
  91. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  92. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.test.d.ts +1 -0
  93. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +10 -0
  94. package/dist/src/extensions/Blocks/Recommendation/services/configService.test.d.ts +1 -0
  95. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +34 -0
  96. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +1 -1
  97. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +21 -0
  98. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.test.d.ts +1 -0
  99. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -3
  100. package/dist/src/library.d.ts +1 -1
  101. package/dist/src/stores/autosave.d.ts +12 -0
  102. package/dist/src/stores/config.d.ts +522 -0
  103. package/dist/src/stores/editor.d.ts +23 -0
  104. package/dist/src/stores/onboarding.d.ts +4 -0
  105. package/dist/src/utils/htmlEscape.d.ts +5 -0
  106. package/dist/src/utils/htmlEscape.test.d.ts +1 -0
  107. package/dist/src/utils/timeUtil.d.ts +8 -0
  108. package/dist/stores/autosave.js +17 -0
  109. package/dist/stores/editor.js +3 -1
  110. package/dist/stores/onboarding.js +4 -0
  111. package/dist/utils/htmlEscape.js +13 -0
  112. package/dist/utils/pairProductVariables.js +89 -88
  113. package/dist/utils/templatePreparation.js +72 -32
  114. package/dist/utils/timeUtil.js +19 -0
  115. package/package.json +7 -3
  116. package/dist/enums/displayConditions.js +0 -80
  117. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +0 -251
  118. package/dist/src/enums/displayConditions.d.ts +0 -2
@@ -1,17 +1,17 @@
1
- var B = class d {
1
+ var x = class d {
2
2
  /**
3
3
  * Validates that all required methods are properly implemented in the subclass.
4
4
  * @param requiredMethods - Array of method names that must be implemented
5
5
  * @param classRef - Reference to the class constructor for validation caching
6
6
  */
7
- constructor(t, a) {
8
- if (a !== d) {
9
- d.validatedClasses.has(a) || this.validateImplementation(t, a);
10
- const i = d.validationErrors.get(a);
11
- if (i && i.length > 0)
7
+ constructor(t, r) {
8
+ if (r !== d) {
9
+ d.validatedClasses.has(r) || this.validateImplementation(t, r);
10
+ const s = d.validationErrors.get(r);
11
+ if (s && s.length > 0)
12
12
  throw new Error(
13
- `${a.name} has validation errors:
14
- ${i.map((o) => ` - ${o}`).join(`
13
+ `${r.name} has validation errors:
14
+ ${s.map((o) => ` - ${o}`).join(`
15
15
  `)}`
16
16
  );
17
17
  }
@@ -20,16 +20,16 @@ ${i.map((o) => ` - ${o}`).join(`
20
20
  * Validates that all required methods are properly implemented in the subclass.
21
21
  * This validation runs only once per class type and results are cached.
22
22
  */
23
- validateImplementation(t, a) {
24
- var v;
25
- const i = [], o = a.name, $ = Object.getPrototypeOf(this);
23
+ validateImplementation(t, r) {
24
+ var y;
25
+ const s = [], o = r.name, W = Object.getPrototypeOf(this);
26
26
  t.forEach((u) => {
27
27
  if (typeof this[u] != "function") {
28
- i.push(`Method ${u}() is not defined`);
28
+ s.push(`Method ${u}() is not defined`);
29
29
  return;
30
30
  }
31
- $[u] === a.prototype[u] && i.push(`Method ${u}() must be implemented (currently using base class error-throwing implementation)`);
32
- }), d.validatedClasses.add(a), i.length > 0 ? (d.validationErrors.set(a, i), console.error(`[${o} Validation] ${o} validation failed:`, i)) : typeof process < "u" && ((v = process.env) == null ? void 0 : v.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
31
+ W[u] === r.prototype[u] && s.push(`Method ${u}() must be implemented (currently using base class error-throwing implementation)`);
32
+ }), d.validatedClasses.add(r), s.length > 0 ? (d.validationErrors.set(r, s), console.error(`[${o} Validation] ${o} validation failed:`, s)) : typeof process < "u" && ((y = process.env) == null ? void 0 : y.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
33
33
  }
34
34
  /**
35
35
  * Lifecycle method for cleaning up resources (e.g., removing DOM artifacts from document.body).
@@ -39,9 +39,9 @@ ${i.map((o) => ` - ${o}`).join(`
39
39
  destroy() {
40
40
  }
41
41
  };
42
- B.validatedClasses = /* @__PURE__ */ new Set();
43
- B.validationErrors = /* @__PURE__ */ new Map();
44
- var s = B, W = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e))(W || {}), y = class T extends s {
42
+ x.validatedClasses = /* @__PURE__ */ new Set();
43
+ x.validationErrors = /* @__PURE__ */ new Map();
44
+ var i = x, z = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e))(z || {}), P = class T extends i {
45
45
  constructor() {
46
46
  super(T.REQUIRED_METHODS, T);
47
47
  }
@@ -160,6 +160,9 @@ var s = B, W = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAI
160
160
  allowInnerBlocksDND() {
161
161
  return !0;
162
162
  }
163
+ allowInteractWithAMPWhenSelected() {
164
+ return !0;
165
+ }
163
166
  /**
164
167
  * Gets the unique identifier for this block type.
165
168
  * This ID is used for registration and referencing the block.
@@ -218,15 +221,14 @@ var s = B, W = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAI
218
221
  throw new Error("Method getDescription() must be implemented by the subclass");
219
222
  }
220
223
  };
221
- y.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
222
- var $e = y, z = class I extends s {
224
+ P.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
225
+ var Ze = P, Z = class I extends i {
223
226
  constructor() {
224
227
  super(I.REQUIRED_METHODS, I);
225
228
  }
226
229
  /**
227
230
  * @deprecated - use {@link getPreviewInnerHtml} instead
228
231
  */
229
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
230
232
  getPreviewHtml(t) {
231
233
  }
232
234
  /**
@@ -236,8 +238,8 @@ var $e = y, z = class I extends s {
236
238
  throw new Error("Method getPreviewInnerHtml() must be implemented by the subclass");
237
239
  }
238
240
  };
239
- z.REQUIRED_METHODS = ["getPreviewInnerHtml"];
240
- var We = class {
241
+ Z.REQUIRED_METHODS = ["getPreviewInnerHtml"];
242
+ var qe = class {
241
243
  /**
242
244
  * Generates HTML representation for a block item
243
245
  * @param block - The block item to generate HTML for
@@ -311,7 +313,7 @@ var We = class {
311
313
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
312
314
  getModulesTabIconName(e) {
313
315
  }
314
- }, Z = class b extends s {
316
+ }, q = class b extends i {
315
317
  constructor() {
316
318
  super(b.REQUIRED_METHODS, b);
317
319
  }
@@ -328,85 +330,86 @@ var We = class {
328
330
  throw new Error("Method onClick() must be implemented by the subclass");
329
331
  }
330
332
  };
331
- Z.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
333
+ q.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
332
334
  var j = {
333
335
  src: "src",
336
+ alt: "alt",
334
337
  href: "href",
335
338
  width: "width",
336
339
  height: "height"
337
- }, ze = {
340
+ }, je = {
338
341
  BLOCK_IMAGE: j
339
- }, P = "esd-block-button", U = "esd-block-text", w = "esd-block-image", q = "esd-structure", J = "esd-block-video", ee = "esd-block-social", te = "esd-block-banner", re = "esd-block-timer", ae = "esd-block-menu", ne = "esd-block-html", se = "esd-block-spacer", ie = "esd-container-frame", le = "esd-stripe", Ee = "esd-amp-form", c = ((e) => (e.BUTTON = `.${P}`, e.TEXT = `.${U}`, e.IMAGE = `.${w}`, e.STRUCTURE = `.${q}`, e.VIDEO = `.${J}`, e.SOCIAL = `.${ee}`, e.BANNER = `.${te}`, e.TIMER = `.${re}`, e.MENU = `.${ae}`, e.HTML = `.${ne}`, e.SPACER = `.${se}`, e.CONTAINER = `.${ie}`, e.STRIPE = `.${le}`, e.FORM = `.${Ee}`, e))(c || {}), oe = /* @__PURE__ */ ((e) => (e.BLOCK_IMAGE = "BLOCK_IMAGE", e.BLOCK_TEXT = "BLOCK_TEXT", e.BLOCK_BUTTON = "BLOCK_BUTTON", e.BLOCK_SPACER = "BLOCK_SPACER", e.BLOCK_VIDEO = "BLOCK_VIDEO", e.BLOCK_SOCIAL = "BLOCK_SOCIAL", e.BLOCK_BANNER = "BLOCK_BANNER", e.BLOCK_TIMER = "BLOCK_TIMER", e.BLOCK_MENU = "BLOCK_MENU", e.BLOCK_MENU_ITEM = "BLOCK_MENU_ITEM", e.BLOCK_HTML = "BLOCK_HTML", e.BLOCK_AMP_CAROUSEL = "BLOCK_AMP_CAROUSEL", e.BLOCK_AMP_ACCORDION = "BLOCK_AMP_ACCORDION", e.BLOCK_AMP_FORM = "BLOCK_AMP_FORM", e.CONTAINER = "CONTAINER", e.FORM_CONTAINER = "FORM_CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e.EMPTY_CONTAINER = "EMPTY_CONTAINER", e.CUSTOM_BLOCK_LINK = "CUSTOM_BLOCK_LINK", e.CUSTOM_BLOCK_IMAGE = "CUSTOM_BLOCK_IMAGE", e.CUSTOM_BLOCK_TEXT = "CUSTOM_BLOCK_TEXT", e))(oe || {}), K = /* @__PURE__ */ ((e) => (e.ANCHOR_LINK_CONTAINER = "anchorLinkFormContainer", e.APPLY_CONDITION = "applyCondition", e.APPLY_CONDITION_SWITCHER = "applyConditionSwitcher", e.BACKGROUND_COLOR = "backgroundColor", e.BACKGROUND_IMAGE = "generalImageContainer", e.TEXT_COLOR = "textColor", e.TEXT_STYLE = "textStyle", e.TEXT_SIZE = "textSize", e.TEXT_LINE_SPACING = "textLineSpacing", e.TEXT_ALIGN = "textAlign", e.FIXED_HEIGHT_SWITCHER = "fixedHeightSwitcherForm", e.HIDDEN_NODE = "hiddenNode", e.SMART_BLOCK = "smartBlock", e.SYNCHRONIZED_MODULE = "synchronizedModuleForm", e.FONT_FAMILY = "generalFontFamilyForm", e.BLOCK_INTERNAL_INDENTS = "generalBlockInternalIndents", e.STRUCTURE_INTERNAL_INDENTS = "generalStructureInternalIndents", e))(K || {}), F = /* @__PURE__ */ ((e) => (e.ADJUST_TO_WIDTH = "adjustToWidth", e.ALIGNMENT = "buttonAlignment", e.BORDER = "buttonBorder", e.BORDER_RADIUS = "buttonBorderRadius", e.COLOR = "buttonColor", e.BUTTON_BLOCK_BACKGROUND_COLOR = "buttonBlockBackgroundColor", e.EXTERNAL_INDENTS = "buttonExternalIndents", e.FIXED_HEIGHT = "buttonFixedHeightForm", e.FONT_COLOR = "buttonFontColor", e.FONT_FAMILY = "buttonFontFamily", e.FONT_SIZE = "buttonFontSize", e.ICON = "buttonIconContainer", e.ICON_ALIGN = "buttonIconAlign", e.ICON_INDENT = "buttonIconIndent", e.ICON_WIDTH = "buttonIconWidth", e.IMAGE = "buttonImageForm", e.INTERNAL_INDENTS = "buttonInternalIndents", e.LINK = "buttonLink", e.MIME_TYPE = "buttonMimeTypeForm", e.SWITCHER_HOVERED_STYLES = "buttonSwitcherHoveredStylesForm", e.TEXT = "buttonText", e.TEXT_STYLE_AND_COLOR = "buttonTextStyleAndColorForm", e.HOVERED_BORDER_COLOR = "hoveredStyleBorderButtonForm", e.HOVERED_COLOR = "hoveredButtonColorForm", e.HOVERED_TEXT_COLOR = "hoveredButtonTextColorForm", e))(F || {}), H = /* @__PURE__ */ ((e) => (e.HIDDEN_NODE = "hiddenNodeText", e.PARAGRAPH_STYLE = "paragraphStyleForm", e.ALIGN = "textAlignmentForm", e.ANCHOR_CONTAINER = "textAnchorForm", e.FONT_BACKGROUND_COLOR = "textBlockFontBackgroundColor", e.TEXT_BLOCK_BACKGROUND_COLOR = "textBlockBackgroundColor", e.FONT_COLOR = "textBlockFontColor", e.TEXT_BLOCK_FONT_FAMILY = "textBlockFontFamily", e.FONT_FAMILY = "textFontFamily", e.FONT_SIZE = "textBlockFontSize", e.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", e.LINK_DATA = "textBlockLinkDataForm", e.FORMAT = "textBlockTextFormatForm", e.FIXED_HEIGHT = "textFixedHeightForm", e.INTERNAL_INDENTS = "textInternalIndents", e.LINE_HEIGHT = "textLineHeightForm", e.MIME_TYPE = "textMimeTypeForm", e.NO_LINE_WRAPS = "textNoLineWrapsForm", e))(H || {}), k = /* @__PURE__ */ ((e) => (e.ALT_TEXT = "altText", e.LINK = "blockLink", e.ALIGNMENT = "imageAlignment", e.ANCHOR_LINK_CONTAINER = "imageAnchorLinkContainerForm", e.BORDER_RADIUS = "imageBorderRadiusForm", e.IMAGE = "imageImageForm", e.EXTERNAL_INDENTS = "imageExternalIndents", e.MIME_TYPE = "imageMimeTypeForm", e.RESPONSIVE = "imageResponsive", e.ROLLOVER_IMAGE = "imageRolloverImageForm", e.ROLLOVER_SWITCHER = "imageRolloverSwitcherForm", e.SIZE = "imageSizeContainer", e))(k || {}), de = /* @__PURE__ */ ((e) => (e.BACKGROUND_COLOR = "containerBackgroundColorForm", e.BORDER_FORM = "containerBorderForm", e.BORDER_RADIUS = "containerBorderRadiusForm", e.EXTERNAL_INDENTS = "containerExternalIndentsForm", e.IMAGE_CONTAINER = "containerImageContainerForm", e.MIME_TYPE = "containerMimeTypeForm", e.DISPLAY_CONDITIONS = "displayConditions", e.HIDDEN_NODE = "containerHiddenNodeForm", e))(de || {}), n = {
340
- BLOCK_BUTTON: F,
341
- BLOCK_TEXT: H,
342
- BLOCK_IMAGE: k,
343
- GENERAL: K
344
- }, ue = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e))(ue || {}), ce = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(ce || {}), Te = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(Te || {}), r = {
342
+ }, U = "esd-block-button", w = "esd-block-text", K = "esd-block-image", J = "esd-structure", ee = "esd-block-video", te = "esd-block-social", re = "esd-block-banner", ae = "esd-block-timer", ne = "esd-block-menu", se = "esd-block-html", ie = "esd-block-spacer", le = "esd-container-frame", Ee = "esd-stripe", oe = "esd-amp-form", c = ((e) => (e.BUTTON = `.${U}`, e.TEXT = `.${w}`, e.IMAGE = `.${K}`, e.STRUCTURE = `.${J}`, e.VIDEO = `.${ee}`, e.SOCIAL = `.${te}`, e.BANNER = `.${re}`, e.TIMER = `.${ae}`, e.MENU = `.${ne}`, e.HTML = `.${se}`, e.SPACER = `.${ie}`, e.CONTAINER = `.${le}`, e.STRIPE = `.${Ee}`, e.FORM = `.${oe}`, e))(c || {}), de = /* @__PURE__ */ ((e) => (e.BLOCK_IMAGE = "BLOCK_IMAGE", e.BLOCK_TEXT = "BLOCK_TEXT", e.BLOCK_BUTTON = "BLOCK_BUTTON", e.BLOCK_SPACER = "BLOCK_SPACER", e.BLOCK_VIDEO = "BLOCK_VIDEO", e.BLOCK_SOCIAL = "BLOCK_SOCIAL", e.BLOCK_BANNER = "BLOCK_BANNER", e.BLOCK_TIMER = "BLOCK_TIMER", e.BLOCK_MENU = "BLOCK_MENU", e.BLOCK_MENU_ITEM = "BLOCK_MENU_ITEM", e.BLOCK_HTML = "BLOCK_HTML", e.BLOCK_AMP_CAROUSEL = "BLOCK_AMP_CAROUSEL", e.BLOCK_AMP_ACCORDION = "BLOCK_AMP_ACCORDION", e.BLOCK_AMP_FORM = "BLOCK_AMP_FORM", e.CONTAINER = "CONTAINER", e.FORM_CONTAINER = "FORM_CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e.EMPTY_CONTAINER = "EMPTY_CONTAINER", e.CUSTOM_BLOCK_LINK = "CUSTOM_BLOCK_LINK", e.CUSTOM_BLOCK_IMAGE = "CUSTOM_BLOCK_IMAGE", e.CUSTOM_BLOCK_TEXT = "CUSTOM_BLOCK_TEXT", e))(de || {}), F = /* @__PURE__ */ ((e) => (e.ANCHOR_LINK_CONTAINER = "anchorLinkFormContainer", e.APPLY_CONDITION = "applyCondition", e.APPLY_CONDITION_SWITCHER = "applyConditionSwitcher", e.BACKGROUND_COLOR = "backgroundColor", e.BACKGROUND_IMAGE = "generalImageContainer", e.TEXT_COLOR = "textColor", e.TEXT_STYLE = "textStyle", e.TEXT_SIZE = "textSize", e.TEXT_LINE_SPACING = "textLineSpacing", e.TEXT_ALIGN = "textAlign", e.FIXED_HEIGHT_SWITCHER = "fixedHeightSwitcherForm", e.HIDDEN_NODE = "hiddenNode", e.SMART_BLOCK = "smartBlock", e.SYNCHRONIZED_MODULE = "synchronizedModuleForm", e.FONT_FAMILY = "generalFontFamilyForm", e.BLOCK_INTERNAL_INDENTS = "generalBlockInternalIndents", e.STRUCTURE_INTERNAL_INDENTS = "generalStructureInternalIndents", e))(F || {}), H = /* @__PURE__ */ ((e) => (e.ADJUST_TO_WIDTH = "adjustToWidth", e.ALIGNMENT = "buttonAlignment", e.BORDER = "buttonBorder", e.BORDER_RADIUS = "buttonBorderRadius", e.COLOR = "buttonColor", e.BUTTON_BLOCK_BACKGROUND_COLOR = "buttonBlockBackgroundColor", e.EXTERNAL_INDENTS = "buttonExternalIndents", e.FIXED_HEIGHT = "buttonFixedHeightForm", e.FONT_COLOR = "buttonFontColor", e.FONT_FAMILY = "buttonFontFamily", e.FONT_SIZE = "buttonFontSize", e.ICON = "buttonIconContainer", e.ICON_ALIGN = "buttonIconAlign", e.ICON_INDENT = "buttonIconIndent", e.ICON_WIDTH = "buttonIconWidth", e.IMAGE = "buttonImageForm", e.INTERNAL_INDENTS = "buttonInternalIndents", e.LINK = "buttonLink", e.MIME_TYPE = "buttonMimeTypeForm", e.SWITCHER_HOVERED_STYLES = "buttonSwitcherHoveredStylesForm", e.TEXT = "buttonText", e.TEXT_STYLE_AND_COLOR = "buttonTextStyleAndColorForm", e.HOVERED_BORDER_COLOR = "hoveredStyleBorderButtonForm", e.HOVERED_COLOR = "hoveredButtonColorForm", e.HOVERED_TEXT_COLOR = "hoveredButtonTextColorForm", e))(H || {}), k = /* @__PURE__ */ ((e) => (e.HIDDEN_NODE = "hiddenNodeText", e.PARAGRAPH_STYLE = "paragraphStyleForm", e.ALIGN = "textAlignmentForm", e.ANCHOR_CONTAINER = "textAnchorForm", e.FONT_BACKGROUND_COLOR = "textBlockFontBackgroundColor", e.TEXT_BLOCK_BACKGROUND_COLOR = "textBlockBackgroundColor", e.FONT_COLOR = "textBlockFontColor", e.TEXT_BLOCK_FONT_FAMILY = "textBlockFontFamily", e.FONT_FAMILY = "textFontFamily", e.FONT_SIZE = "textBlockFontSize", e.FONT_WEIGHT = "textBlockFontWeight", e.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", e.LINK_DATA = "textBlockLinkDataForm", e.FORMAT = "textBlockTextFormatForm", e.FIXED_HEIGHT = "textFixedHeightForm", e.INTERNAL_INDENTS = "textInternalIndents", e.LINE_HEIGHT = "textLineHeightForm", e.MIME_TYPE = "textMimeTypeForm", e.NO_LINE_WRAPS = "textNoLineWrapsForm", e))(k || {}), p = /* @__PURE__ */ ((e) => (e.ALT_TEXT = "altText", e.LINK = "blockLink", e.ALIGNMENT = "imageAlignment", e.ANCHOR_LINK_CONTAINER = "imageAnchorLinkContainerForm", e.BORDER_RADIUS = "imageBorderRadiusForm", e.IMAGE = "imageImageForm", e.EXTERNAL_INDENTS = "imageExternalIndents", e.MIME_TYPE = "imageMimeTypeForm", e.RESPONSIVE = "imageResponsive", e.ROLLOVER_IMAGE = "imageRolloverImageForm", e.ROLLOVER_SWITCHER = "imageRolloverSwitcherForm", e.SIZE = "imageSizeContainer", e))(p || {}), ue = /* @__PURE__ */ ((e) => (e.BACKGROUND_COLOR = "containerBackgroundColorForm", e.BORDER_FORM = "containerBorderForm", e.BORDER_RADIUS = "containerBorderRadiusForm", e.EXTERNAL_INDENTS = "containerExternalIndentsForm", e.IMAGE_CONTAINER = "containerImageContainerForm", e.MIME_TYPE = "containerMimeTypeForm", e.DISPLAY_CONDITIONS = "displayConditions", e.HIDDEN_NODE = "containerHiddenNodeForm", e))(ue || {}), n = {
343
+ BLOCK_BUTTON: H,
344
+ BLOCK_TEXT: k,
345
+ BLOCK_IMAGE: p,
346
+ GENERAL: F
347
+ }, ce = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e.themeMode = "themeMode", e))(ce || {}), Te = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(Te || {}), Ie = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(Ie || {}), a = {
345
348
  name: "name",
346
349
  disabled: "disabled"
347
- }, Ie = {
348
- ...r,
350
+ }, be = {
351
+ ...a,
349
352
  caption: "caption",
350
353
  icon: "icon"
351
- }, be = {
352
- ...r,
353
- caption: "caption"
354
354
  }, he = {
355
- ...r,
355
+ ...a,
356
+ caption: "caption"
357
+ }, me = {
358
+ ...a,
356
359
  minValue: "min-value",
357
360
  maxValue: "max-value",
358
361
  step: "step"
359
- }, me = {
360
- ...r,
362
+ }, ge = {
363
+ ...a,
361
364
  placeholder: "placeholder",
362
365
  minDate: "min-date"
363
- }, ge = {
364
- ...r,
366
+ }, Oe = {
367
+ ...a,
365
368
  text: "text",
366
369
  hint: "hint"
367
- }, Oe = {
368
- ...r,
369
- type: "type"
370
370
  }, Re = {
371
- ...r,
371
+ ...a,
372
+ type: "type"
373
+ }, Le = {
374
+ ...a,
372
375
  buttons: "buttons"
373
- }, p = {
374
- ...r,
376
+ }, X = {
377
+ ...a,
375
378
  searchable: "searchable",
376
379
  multiSelect: "multi-select",
377
380
  placeholder: "placeholder",
378
381
  items: "items"
379
- }, Le = {
380
- ...p,
381
- addCustomFontOption: "add-custom-font-option"
382
382
  }, _e = {
383
- ...r,
383
+ ...X,
384
+ addCustomFontOption: "add-custom-font-option"
385
+ }, Ce = {
386
+ ...a,
384
387
  text: "text",
385
388
  value: "value"
386
- }, Ce = {
387
- ...r,
389
+ }, Ae = {
390
+ ...a,
388
391
  text: "text",
389
392
  hint: "hint",
390
393
  icon: "icon",
391
394
  value: "value"
392
- }, Ae = {
393
- ...r,
394
- buttons: "buttons"
395
395
  }, Ne = {
396
- ...r,
396
+ ...a,
397
+ buttons: "buttons"
398
+ }, De = {
399
+ ...a,
397
400
  text: "text",
398
401
  hint: "hint",
399
402
  icon: "icon",
400
403
  value: "value"
401
- }, De = {
402
- ...r,
403
- placeholder: "placeholder"
404
404
  }, Se = {
405
- ...r,
406
- resizable: "resizable",
405
+ ...a,
407
406
  placeholder: "placeholder"
408
407
  }, Me = {
409
- ...r,
408
+ ...a,
409
+ resizable: "resizable",
410
+ placeholder: "placeholder"
411
+ }, Be = {
412
+ ...a,
410
413
  img: "img",
411
414
  src: "src",
412
415
  title: "title",
@@ -416,54 +419,61 @@ var j = {
416
419
  isActive: "is-active",
417
420
  visibility: "visibility",
418
421
  transform: "transform"
419
- }, Be = {
420
- ...r,
421
- controlId: "control-id"
422
422
  }, xe = {
423
- ...r,
424
- expanded: "expanded"
423
+ ...a,
424
+ controlId: "control-id"
425
425
  }, ve = {
426
- ...r,
426
+ ...a,
427
+ expanded: "expanded"
428
+ }, ye = {
429
+ ...a,
427
430
  icon: "icon",
428
431
  position: "position"
429
- }, ye = {
430
- ...r
431
432
  }, Pe = {
432
- ...r,
433
- icon: "icon"
433
+ ...a
434
434
  }, Ue = {
435
- ...r
435
+ ...a,
436
+ icon: "icon"
436
437
  }, we = {
437
- ...r,
438
+ ...a
439
+ }, Ke = {
440
+ ...a,
438
441
  blockId: "block-id"
439
- }, Ze = {
440
- DEFAULT: r,
441
- BUTTON: Ie,
442
- CHECKBOX: be,
443
- CHECK_BUTTONS: Ae,
444
- COLOR: r,
445
- COUNTER: he,
446
- DATEPICKER: me,
447
- LABEL: ge,
448
- MESSAGE: Oe,
449
- RADIO_BUTTONS: Re,
450
- SELECTPICKER: p,
451
- FONT_FAMILY_SELECT: Le,
452
- SWITCHER: r,
453
- TEXT: De,
454
- TEXTAREA: Se,
455
- ICON: Me,
456
- CHECK_ITEM: Ce,
457
- SELECT_ITEM: _e,
458
- RADIO_ITEM: Ne,
459
- NESTED_CONTROL: Be,
460
- EXPANDABLE: xe,
461
- ORDERABLE: ve,
462
- ORDERABLE_ITEM: ye,
463
- ORDERABLE_ICON: Pe,
464
- REPEATABLE: Ue,
465
- DRAGGABLE_BLOCK: we
466
- }, Ke = /* @__PURE__ */ ((e) => (e.BUTTON = "UE-BUTTON", e.CHECKBOX = "UE-CHECKBOX", e.CHECK_BUTTONS = "UE-CHECK-BUTTONS", e.COLOR = "UE-COLOR", e.COUNTER = "UE-COUNTER", e.DATEPICKER = "UE-DATEPICKER", e.LABEL = "UE-LABEL", e.MESSAGE = "UE-MESSAGE", e.RADIO_BUTTONS = "UE-RADIO-BUTTONS", e.SELECTPICKER = "UE-SELECT", e.SWITCHER = "UE-SWITCHER", e.TEXT = "UE-TEXT", e.TEXTAREA = "UE-TEXTAREA", e.CHECK_ITEM = "UE-CHECK-ITEM", e.RADIO_ITEM = "UE-RADIO-ITEM", e.SELECT_ITEM = "UE-SELECT-ITEM", e.ICON = "UE-ICON", e.MERGETAGS = "UE-MERGETAGS", e.FONT_FAMILY_SELECT = "UE-FONT-FAMILY-SELECT", e.NESTED_CONTROL = "UE-NESTED-CONTROL", e.EXPANDABLE = "UE-EXPANDABLE", e.EXPANDABLE_HEADER = "UE-EXPANDABLE_HEADER", e.EXPANDABLE_CONTENT = "UE-EXPANDABLE_CONTENT", e.ORDERABLE = "UE-ORDERABLE", e.ORDERABLE_ITEM = "UE-ORDERABLE-ITEM", e.ORDERABLE_ICON = "UE-ORDERABLE-ICON", e.REPEATABLE = "UE-REPEATABLE", e.DRAGGABLE_BLOCK = "UE-DRAGGABLE-BLOCK", e))(Ke || {}), x = class {
442
+ }, Fe = {
443
+ ...a
444
+ }, He = {
445
+ ...a,
446
+ placeholder: "placeholder"
447
+ }, Je = {
448
+ DEFAULT: a,
449
+ BUTTON: be,
450
+ CHECKBOX: he,
451
+ CHECK_BUTTONS: Ne,
452
+ COLOR: a,
453
+ COUNTER: me,
454
+ DATEPICKER: ge,
455
+ LABEL: Oe,
456
+ MESSAGE: Re,
457
+ RADIO_BUTTONS: Le,
458
+ SELECTPICKER: X,
459
+ FONT_FAMILY_SELECT: _e,
460
+ SWITCHER: a,
461
+ TEXT: Se,
462
+ TEXTAREA: Me,
463
+ ICON: Be,
464
+ CHECK_ITEM: Ae,
465
+ SELECT_ITEM: Ce,
466
+ RADIO_ITEM: De,
467
+ NESTED_CONTROL: xe,
468
+ EXPANDABLE: ve,
469
+ ORDERABLE: ye,
470
+ ORDERABLE_ITEM: Pe,
471
+ ORDERABLE_ICON: Ue,
472
+ REPEATABLE: we,
473
+ DRAGGABLE_BLOCK: Ke,
474
+ AMP_FORM_SERVICE_PICKER: Fe,
475
+ MULTIPLE_SELECT: He
476
+ }, ke = /* @__PURE__ */ ((e) => (e.BUTTON = "UE-BUTTON", e.CHECKBOX = "UE-CHECKBOX", e.CHECK_BUTTONS = "UE-CHECK-BUTTONS", e.COLOR = "UE-COLOR", e.COUNTER = "UE-COUNTER", e.DATEPICKER = "UE-DATEPICKER", e.LABEL = "UE-LABEL", e.MESSAGE = "UE-MESSAGE", e.RADIO_BUTTONS = "UE-RADIO-BUTTONS", e.SELECTPICKER = "UE-SELECT", e.SWITCHER = "UE-SWITCHER", e.TEXT = "UE-TEXT", e.TEXTAREA = "UE-TEXTAREA", e.CHECK_ITEM = "UE-CHECK-ITEM", e.RADIO_ITEM = "UE-RADIO-ITEM", e.SELECT_ITEM = "UE-SELECT-ITEM", e.ICON = "UE-ICON", e.MERGETAGS = "UE-MERGETAGS", e.FONT_FAMILY_SELECT = "UE-FONT-FAMILY-SELECT", e.NESTED_CONTROL = "UE-NESTED-CONTROL", e.EXPANDABLE = "UE-EXPANDABLE", e.EXPANDABLE_HEADER = "UE-EXPANDABLE_HEADER", e.EXPANDABLE_CONTENT = "UE-EXPANDABLE_CONTENT", e.ORDERABLE = "UE-ORDERABLE", e.ORDERABLE_ITEM = "UE-ORDERABLE-ITEM", e.ORDERABLE_ICON = "UE-ORDERABLE-ICON", e.REPEATABLE = "UE-REPEATABLE", e.DRAGGABLE_BLOCK = "UE-DRAGGABLE-BLOCK", e.AMP_FORM_SERVICE_PICKER = "UE-AMP-FORM-SERVICE-PICKER", e.MULTIPLE_SELECT = "UE-MULTIPLE_SELECT", e.SCROLLABLE = "UE-SCROLLABLE-CONTAINER", e))(ke || {}), v = class {
467
477
  /**
468
478
  * @description returns map of nodes parent control operates on
469
479
  */
@@ -494,66 +504,66 @@ var j = {
494
504
  isVisible(e) {
495
505
  return !0;
496
506
  }
497
- }, l = class extends x {
507
+ }, l = class extends v {
498
508
  getTargetNodes(e) {
499
- const t = e.querySelectorAll(c.BUTTON), a = e.asElement().hasClass(P) ? [e] : [];
500
- return t.length ? t : a;
509
+ const t = e.querySelectorAll(c.BUTTON), r = e.asElement().hasClass(U) ? [e] : [];
510
+ return t.length ? t : r;
501
511
  }
502
- }, je = class extends l {
512
+ }, et = class extends l {
503
513
  getParentControlId() {
504
514
  return n.BLOCK_BUTTON.BORDER_RADIUS;
505
515
  }
506
516
  getLabels() {
507
517
  }
508
- }, qe = class extends l {
518
+ }, tt = class extends l {
509
519
  getParentControlId() {
510
520
  return n.BLOCK_BUTTON.ALIGNMENT;
511
521
  }
512
- }, Je = class extends l {
522
+ }, rt = class extends l {
513
523
  getParentControlId() {
514
524
  return n.GENERAL.BACKGROUND_COLOR;
515
525
  }
516
- }, et = class extends l {
526
+ }, at = class extends l {
517
527
  getParentControlId() {
518
528
  return n.BLOCK_BUTTON.BORDER;
519
529
  }
520
530
  getLabels() {
521
531
  }
522
- }, tt = class extends l {
532
+ }, nt = class extends l {
523
533
  getParentControlId() {
524
534
  return n.BLOCK_BUTTON.COLOR;
525
535
  }
526
- }, rt = class extends l {
536
+ }, st = class extends l {
527
537
  getParentControlId() {
528
538
  return n.BLOCK_BUTTON.ADJUST_TO_WIDTH;
529
539
  }
530
- }, at = class extends l {
540
+ }, it = class extends l {
531
541
  getParentControlId() {
532
542
  return n.BLOCK_BUTTON.FONT_FAMILY;
533
543
  }
534
- }, nt = class extends l {
544
+ }, lt = class extends l {
535
545
  getParentControlId() {
536
546
  return n.BLOCK_BUTTON.EXTERNAL_INDENTS;
537
547
  }
538
- }, st = class extends l {
548
+ }, Et = class extends l {
539
549
  getParentControlId() {
540
550
  return n.BLOCK_BUTTON.INTERNAL_INDENTS;
541
551
  }
542
- }, it = class extends l {
552
+ }, ot = class extends l {
543
553
  getParentControlId() {
544
554
  return n.BLOCK_BUTTON.TEXT;
545
555
  }
546
- }, lt = class extends l {
556
+ }, dt = class extends l {
547
557
  getParentControlId() {
548
558
  return n.BLOCK_BUTTON.FONT_SIZE;
549
559
  }
550
- }, Et = class extends l {
560
+ }, ut = class extends l {
551
561
  getParentControlId() {
552
562
  return n.BLOCK_BUTTON.TEXT_STYLE_AND_COLOR;
553
563
  }
554
564
  getLabels() {
555
565
  }
556
- }, X = class h extends s {
566
+ }, G = class h extends i {
557
567
  constructor() {
558
568
  super(h.REQUIRED_METHODS, h);
559
569
  }
@@ -608,8 +618,8 @@ var j = {
608
618
  onDocumentChanged(t) {
609
619
  }
610
620
  };
611
- X.REQUIRED_METHODS = ["getId", "getTemplate"];
612
- var ot = X, Fe = class m extends s {
621
+ G.REQUIRED_METHODS = ["getId", "getTemplate"];
622
+ var ct = G, pe = class m extends i {
613
623
  constructor() {
614
624
  super(m.REQUIRED_METHODS, m);
615
625
  }
@@ -678,21 +688,21 @@ var ot = X, Fe = class m extends s {
678
688
  onDestroy() {
679
689
  }
680
690
  };
681
- Fe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
682
- var G = class extends x {
691
+ pe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
692
+ var V = class extends v {
683
693
  getTargetNodes(e) {
684
- const t = e.querySelectorAll(c.IMAGE), a = e.asElement().hasClass(w) ? [e] : [];
685
- return t.length ? t : a;
694
+ const t = e.querySelectorAll(c.IMAGE), r = e.asElement().hasClass(K) ? [e] : [];
695
+ return t.length ? t : r;
686
696
  }
687
- }, dt = class extends G {
697
+ }, Tt = class extends V {
688
698
  getParentControlId() {
689
699
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
690
700
  }
691
- }, ut = class extends G {
701
+ }, It = class extends V {
692
702
  getParentControlId() {
693
703
  return n.BLOCK_IMAGE.SIZE;
694
704
  }
695
- }, He = class g extends s {
705
+ }, Xe = class g extends i {
696
706
  constructor() {
697
707
  super(g.REQUIRED_METHODS, g);
698
708
  }
@@ -756,8 +766,8 @@ var G = class extends x {
756
766
  onDocumentChanged() {
757
767
  }
758
768
  };
759
- He.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
760
- var V = class O extends s {
769
+ Xe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
770
+ var f = class O extends i {
761
771
  constructor() {
762
772
  super(O.REQUIRED_METHODS, O);
763
773
  }
@@ -765,10 +775,10 @@ var V = class O extends s {
765
775
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
766
776
  }
767
777
  };
768
- V.REQUIRED_METHODS = ["registerBlockControls"];
769
- var ct = V, Tt = class {
770
- constructor(e, t) {
771
- this.tabId = e, this.controlsIds = t;
778
+ f.REQUIRED_METHODS = ["registerBlockControls"];
779
+ var bt = f, ht = class R {
780
+ constructor(t, r) {
781
+ this.tabId = t, this.controls = r.map(R.normalizeControl);
772
782
  }
773
783
  getTabId() {
774
784
  return this.tabId;
@@ -777,52 +787,66 @@ var ct = V, Tt = class {
777
787
  return this.label;
778
788
  }
779
789
  getControlsIds() {
780
- return this.controlsIds;
790
+ return this.controls.map((t) => t.id);
791
+ }
792
+ getControls() {
793
+ return this.controls;
781
794
  }
782
- withLabel(e) {
783
- return this.label = e, this;
795
+ withLabel(t) {
796
+ return this.label = t, this;
784
797
  }
785
- addControl(e, t) {
786
- return t < 0 ? this.controlsIds.unshift(e) : t > this.controlsIds.length ? this.controlsIds.push(e) : this.controlsIds.splice(t, 0, e), this;
798
+ addControl(t, r) {
799
+ const s = R.normalizeControl(t);
800
+ return r < 0 ? this.controls.unshift(s) : r > this.controls.length ? this.controls.push(s) : this.controls.splice(r, 0, s), this;
787
801
  }
788
- deleteControl(e) {
789
- const t = this.controlsIds.indexOf(e);
790
- t !== -1 && this.controlsIds.splice(t, 1);
802
+ deleteControl(t) {
803
+ const r = this.controls.findIndex((s) => s.id === t);
804
+ r !== -1 && this.controls.splice(r, 1);
791
805
  }
792
- }, E = class extends x {
806
+ static normalizeControl(t) {
807
+ if (typeof t == "string")
808
+ return { id: t };
809
+ if (!t.id)
810
+ throw new Error("SettingsPanelTabControlConfig.id is required");
811
+ return {
812
+ ...t,
813
+ id: t.id
814
+ };
815
+ }
816
+ }, E = class extends v {
793
817
  getTargetNodes(e) {
794
- const t = e.querySelectorAll(c.TEXT), a = e.asElement().hasClass(U) ? [e] : [];
795
- return t.length ? t : a;
818
+ const t = e.querySelectorAll(c.TEXT), r = e.asElement().hasClass(w) ? [e] : [];
819
+ return t.length ? t : r;
796
820
  }
797
- }, It = class extends E {
821
+ }, mt = class extends E {
798
822
  getParentControlId() {
799
823
  return n.GENERAL.TEXT_ALIGN;
800
824
  }
801
- }, bt = class extends E {
825
+ }, gt = class extends E {
802
826
  getParentControlId() {
803
827
  return n.GENERAL.TEXT_COLOR;
804
828
  }
805
- }, ht = class extends E {
829
+ }, Ot = class extends E {
806
830
  getParentControlId() {
807
831
  return n.BLOCK_TEXT.FONT_FAMILY;
808
832
  }
809
- }, mt = class extends E {
833
+ }, Rt = class extends E {
810
834
  getParentControlId() {
811
835
  return n.GENERAL.TEXT_LINE_SPACING;
812
836
  }
813
- }, gt = class extends E {
837
+ }, Lt = class extends E {
814
838
  getParentControlId() {
815
839
  return n.BLOCK_TEXT.INTERNAL_INDENTS;
816
840
  }
817
- }, Ot = class extends E {
841
+ }, _t = class extends E {
818
842
  getParentControlId() {
819
843
  return n.GENERAL.TEXT_SIZE;
820
844
  }
821
- }, Rt = class extends E {
845
+ }, Ct = class extends E {
822
846
  getParentControlId() {
823
847
  return n.GENERAL.TEXT_STYLE;
824
848
  }
825
- }, ke = class {
849
+ }, Ge = class {
826
850
  constructor(e) {
827
851
  this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [], this.modulesPanelTabs = [], this.i18n = e == null ? void 0 : e.i18n, this.styles = e == null ? void 0 : e.styles, this.previewStyles = e == null ? void 0 : e.previewStyles, this.uiElements = (e == null ? void 0 : e.uiElements) ?? [], this.uiElementTagRegistry = e == null ? void 0 : e.uiElementTagRegistry, this.controls = (e == null ? void 0 : e.controls) ?? [], this.settingsPanelRegistry = e == null ? void 0 : e.settingsPanelRegistry, this.contextActions = (e == null ? void 0 : e.contextActions) ?? [], this.blocks = (e == null ? void 0 : e.blocks) ?? [], this.generalPanelTabs = (e == null ? void 0 : e.generalPanelTabs) ?? [], this.modulesPanelTabs = (e == null ? void 0 : e.modulesPanelTabs) ?? [], this.externalSmartElementsLibrary = e == null ? void 0 : e.externalSmartElementsLibrary, this.externalImageLibrary = e == null ? void 0 : e.externalImageLibrary, this.externalImageLibraryTab = e == null ? void 0 : e.externalImageLibraryTab, this.externalAiAssistant = e == null ? void 0 : e.externalAiAssistant, this.externalDisplayConditionsLibrary = e == null ? void 0 : e.externalDisplayConditionsLibrary, this.externalVideoLibrary = e == null ? void 0 : e.externalVideoLibrary, this.blocksPanel = e == null ? void 0 : e.blocksPanel, this.iconsRegistry = e == null ? void 0 : e.iconsRegistry, this.id = Math.random().toString(36).substring(2);
828
852
  }
@@ -886,7 +910,7 @@ var ct = V, Tt = class {
886
910
  getModulesPanelTabs() {
887
911
  return this.modulesPanelTabs;
888
912
  }
889
- }, Lt = class {
913
+ }, At = class {
890
914
  constructor() {
891
915
  this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [], this.modulesPanelTabs = [];
892
916
  }
@@ -957,7 +981,7 @@ var ct = V, Tt = class {
957
981
  return this.modulesPanelTabs.push(e), this;
958
982
  }
959
983
  build() {
960
- return new ke({
984
+ return new Ge({
961
985
  i18n: this.i18n,
962
986
  styles: this.styles.map((e) => e.trim()).join(`
963
987
  `),
@@ -980,18 +1004,18 @@ var ct = V, Tt = class {
980
1004
  modulesPanelTabs: this.modulesPanelTabs
981
1005
  });
982
1006
  }
983
- }, pe = class R extends s {
1007
+ }, Ve = class L extends i {
984
1008
  constructor() {
985
- super(R.REQUIRED_METHODS, R);
1009
+ super(L.REQUIRED_METHODS, L);
986
1010
  }
987
1011
  openAiAssistant(t) {
988
1012
  throw new Error("Method openAiAssistant() must be implemented by the subclass");
989
1013
  }
990
1014
  };
991
- pe.REQUIRED_METHODS = ["openAiAssistant"];
992
- var Xe = class L extends s {
1015
+ Ve.REQUIRED_METHODS = ["openAiAssistant"];
1016
+ var fe = class _ extends i {
993
1017
  constructor() {
994
- super(L.REQUIRED_METHODS, L);
1018
+ super(_.REQUIRED_METHODS, _);
995
1019
  }
996
1020
  /**
997
1021
  * Retrieves the name of the category.
@@ -1008,7 +1032,7 @@ var Xe = class L extends s {
1008
1032
  * @param {ExternalDisplayConditionSelectedCB} _successCallback - Callback executed with the updated or newly created condition upon success.
1009
1033
  * @param {() => void} _cancelCallback - Callback executed when the dialog is closed without making changes.
1010
1034
  */
1011
- openExternalDisplayConditionsDialog(t, a, i) {
1035
+ openExternalDisplayConditionsDialog(t, r, s) {
1012
1036
  throw new Error("Method openExternalDisplayConditionsDialog() must be implemented by the subclass");
1013
1037
  }
1014
1038
  /**
@@ -1029,19 +1053,19 @@ var Xe = class L extends s {
1029
1053
  throw new Error("Method getContextActionIndex() must be implemented by the subclass");
1030
1054
  }
1031
1055
  };
1032
- Xe.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
1033
- var Ge = class _ extends s {
1056
+ fe.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
1057
+ var Qe = class C extends i {
1034
1058
  constructor() {
1035
- super(_.REQUIRED_METHODS, _);
1059
+ super(C.REQUIRED_METHODS, C);
1036
1060
  }
1037
- openImageLibrary(t, a, i) {
1061
+ openImageLibrary(t, r, s) {
1038
1062
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
1039
1063
  }
1040
1064
  };
1041
- Ge.REQUIRED_METHODS = ["openImageLibrary"];
1042
- var Ve = class C extends s {
1065
+ Qe.REQUIRED_METHODS = ["openImageLibrary"];
1066
+ var Ye = class A extends i {
1043
1067
  constructor() {
1044
- super(C.REQUIRED_METHODS, C);
1068
+ super(A.REQUIRED_METHODS, A);
1045
1069
  }
1046
1070
  /**
1047
1071
  * @description Returns the translated name/label for the tab
@@ -1056,39 +1080,39 @@ var Ve = class C extends s {
1056
1080
  * @param _onImageSelectCallback - Callback to invoke when an image is selected
1057
1081
  * @param _selectedNode - (Optional) Selected node for which the gallery is being opened
1058
1082
  */
1059
- openImageLibraryTab(t, a, i) {
1083
+ openImageLibraryTab(t, r, s) {
1060
1084
  throw new Error("Method openImageLibraryTab() must be implemented by the subclass");
1061
1085
  }
1062
1086
  };
1063
- Ve.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
1064
- var Qe = class A extends s {
1087
+ Ye.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
1088
+ var $e = class N extends i {
1065
1089
  constructor() {
1066
- super(A.REQUIRED_METHODS, A);
1090
+ super(N.REQUIRED_METHODS, N);
1067
1091
  }
1068
- openSmartElementsLibrary(t, a) {
1092
+ openSmartElementsLibrary(t, r) {
1069
1093
  throw new Error("Method openSmartElementsLibrary() must be implemented by the subclass");
1070
1094
  }
1071
1095
  };
1072
- Qe.REQUIRED_METHODS = ["openSmartElementsLibrary"];
1073
- var fe = class N extends s {
1096
+ $e.REQUIRED_METHODS = ["openSmartElementsLibrary"];
1097
+ var We = class D extends i {
1074
1098
  constructor() {
1075
- super(N.REQUIRED_METHODS, N);
1099
+ super(D.REQUIRED_METHODS, D);
1076
1100
  }
1077
- openExternalVideosLibraryDialog(t, a, i) {
1101
+ openExternalVideosLibraryDialog(t, r, s) {
1078
1102
  throw new Error("Method openExternalVideosLibraryDialog() must be implemented by the subclass");
1079
1103
  }
1080
1104
  };
1081
- fe.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
1082
- var Q = class D extends s {
1105
+ We.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
1106
+ var Q = class S extends i {
1083
1107
  constructor() {
1084
- super(D.REQUIRED_METHODS, D);
1108
+ super(S.REQUIRED_METHODS, S);
1085
1109
  }
1086
1110
  registerIconsSvg(t) {
1087
1111
  throw new Error("Method registerIconsSvg() must be implemented by the subclass");
1088
1112
  }
1089
1113
  };
1090
1114
  Q.REQUIRED_METHODS = ["registerIconsSvg"];
1091
- var _t = Q, Ct = class {
1115
+ var Nt = Q, Dt = class {
1092
1116
  constructor(e) {
1093
1117
  this.key = e;
1094
1118
  }
@@ -1101,9 +1125,9 @@ var _t = Q, Ct = class {
1101
1125
  params: this.params
1102
1126
  };
1103
1127
  }
1104
- }, f = class S extends s {
1128
+ }, Y = class M extends i {
1105
1129
  constructor() {
1106
- super(S.REQUIRED_METHODS, S);
1130
+ super(M.REQUIRED_METHODS, M);
1107
1131
  }
1108
1132
  /**
1109
1133
  * Called when the UI element should render its content into the provided container.
@@ -1138,7 +1162,7 @@ var _t = Q, Ct = class {
1138
1162
  * @param name - The name of the attribute that was updated.
1139
1163
  * @param value - The new value of the attribute.
1140
1164
  */
1141
- onAttributeUpdated(t, a) {
1165
+ onAttributeUpdated(t, r) {
1142
1166
  }
1143
1167
  /**
1144
1168
  * Gets the unique identifier for this UI element type.
@@ -1156,64 +1180,64 @@ var _t = Q, Ct = class {
1156
1180
  throw new Error("Method getTemplate() must be implemented by the subclass");
1157
1181
  }
1158
1182
  };
1159
- f.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
1160
- var At = f, Y = class M extends s {
1183
+ Y.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
1184
+ var St = Y, $ = class B extends i {
1161
1185
  constructor() {
1162
- super(M.REQUIRED_METHODS, M);
1186
+ super(B.REQUIRED_METHODS, B);
1163
1187
  }
1164
1188
  registerUiElements(t) {
1165
1189
  throw new Error("Method registerUiElements() must be implemented by the subclass");
1166
1190
  }
1167
1191
  };
1168
- Y.REQUIRED_METHODS = ["registerUiElements"];
1169
- var Nt = Y;
1192
+ $.REQUIRED_METHODS = ["registerUiElements"];
1193
+ var Mt = $;
1170
1194
  export {
1171
- $e as Block,
1172
- ze as BlockAttr,
1173
- W as BlockCompositionType,
1195
+ Ze as Block,
1196
+ je as BlockAttr,
1197
+ z as BlockCompositionType,
1174
1198
  c as BlockSelector,
1175
- oe as BlockType,
1176
- We as BlocksPanel,
1177
- x as BuiltInControl,
1199
+ de as BlockType,
1200
+ qe as BlocksPanel,
1201
+ v as BuiltInControl,
1178
1202
  n as BuiltInControlTypes,
1179
- qe as ButtonAlignBuiltInControl,
1180
- Je as ButtonBackgroundColorBuiltInControl,
1181
- et as ButtonBorderBuiltInControl,
1182
- je as ButtonBorderRadiusBuiltInControl,
1183
- tt as ButtonColorBuiltInControl,
1184
- F as ButtonControls,
1185
- rt as ButtonFitToContainerBuiltInControl,
1186
- at as ButtonFontFamilyBuiltInControl,
1187
- nt as ButtonMarginsBuiltInControl,
1188
- st as ButtonPaddingsBuiltInControl,
1189
- it as ButtonTextBuiltInControl,
1190
- lt as ButtonTextSizeBuiltInControl,
1191
- Et as ButtonTextStyleAndFontColorBuiltInControl,
1192
- de as ContainerControls,
1193
- ot as Control,
1194
- ue as EditorStatePropertyType,
1195
- ke as Extension,
1196
- Lt as ExtensionBuilder,
1197
- K as GeneralControls,
1198
- _t as IconsRegistry,
1199
- k as ImageControls,
1200
- dt as ImageMarginsBuiltInControl,
1201
- ut as ImageSizeBuiltInControl,
1202
- Ct as ModificationDescription,
1203
- ce as PreviewDeviceMode,
1204
- ct as SettingsPanelRegistry,
1205
- Tt as SettingsPanelTab,
1206
- Te as SettingsTab,
1207
- It as TextAlignBuiltInControl,
1208
- bt as TextColorBuiltInControl,
1209
- H as TextControls,
1210
- ht as TextFontFamilyBuiltInControl,
1211
- mt as TextLineSpacingBuiltInControl,
1212
- gt as TextPaddingsBuiltInControl,
1213
- Ot as TextSizeBuiltInControl,
1214
- Rt as TextStyleBuiltInControl,
1215
- Ze as UEAttr,
1216
- At as UIElement,
1217
- Nt as UIElementTagRegistry,
1218
- Ke as UIElementType
1203
+ tt as ButtonAlignBuiltInControl,
1204
+ rt as ButtonBackgroundColorBuiltInControl,
1205
+ at as ButtonBorderBuiltInControl,
1206
+ et as ButtonBorderRadiusBuiltInControl,
1207
+ nt as ButtonColorBuiltInControl,
1208
+ H as ButtonControls,
1209
+ st as ButtonFitToContainerBuiltInControl,
1210
+ it as ButtonFontFamilyBuiltInControl,
1211
+ lt as ButtonMarginsBuiltInControl,
1212
+ Et as ButtonPaddingsBuiltInControl,
1213
+ ot as ButtonTextBuiltInControl,
1214
+ dt as ButtonTextSizeBuiltInControl,
1215
+ ut as ButtonTextStyleAndFontColorBuiltInControl,
1216
+ ue as ContainerControls,
1217
+ ct as Control,
1218
+ ce as EditorStatePropertyType,
1219
+ Ge as Extension,
1220
+ At as ExtensionBuilder,
1221
+ F as GeneralControls,
1222
+ Nt as IconsRegistry,
1223
+ p as ImageControls,
1224
+ Tt as ImageMarginsBuiltInControl,
1225
+ It as ImageSizeBuiltInControl,
1226
+ Dt as ModificationDescription,
1227
+ Te as PreviewDeviceMode,
1228
+ bt as SettingsPanelRegistry,
1229
+ ht as SettingsPanelTab,
1230
+ Ie as SettingsTab,
1231
+ mt as TextAlignBuiltInControl,
1232
+ gt as TextColorBuiltInControl,
1233
+ k as TextControls,
1234
+ Ot as TextFontFamilyBuiltInControl,
1235
+ Rt as TextLineSpacingBuiltInControl,
1236
+ Lt as TextPaddingsBuiltInControl,
1237
+ _t as TextSizeBuiltInControl,
1238
+ Ct as TextStyleBuiltInControl,
1239
+ Je as UEAttr,
1240
+ St as UIElement,
1241
+ Mt as UIElementTagRegistry,
1242
+ ke as UIElementType
1219
1243
  };