@useinsider/guido 2.0.0-beta.cf2fe38 → 2.0.0-beta.d170da6

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 (103) hide show
  1. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
  2. package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
  3. package/dist/extensions/Blocks/Recommendation/control.js +74 -59
  4. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  5. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  6. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  7. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  8. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  9. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  10. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  11. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  12. package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
  13. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
  14. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
  15. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
  16. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
  17. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  18. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +47 -52
  19. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  20. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
  21. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  22. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  23. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
  24. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  25. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  26. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  27. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  28. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  29. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  30. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  31. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
  32. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  33. package/dist/static/styles/components/wide-panel.css.js +0 -4
  34. package/dist/static/styles/customEditorStyle.css.js +13 -0
  35. package/package.json +1 -1
  36. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  37. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  38. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  39. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  40. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  41. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  42. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  43. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  44. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  45. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  46. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  47. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  48. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  49. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  50. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  51. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  52. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  53. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  54. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  55. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  56. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  57. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  58. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  59. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  60. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  61. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  63. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  64. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  65. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  66. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  67. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  68. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  69. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  70. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  71. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  72. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  73. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  74. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  75. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  76. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  77. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  78. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  79. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  80. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  81. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  82. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  83. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  84. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  85. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  86. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  87. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  88. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  89. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  90. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  91. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  92. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  93. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  94. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  95. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  96. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  97. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  98. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  99. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  100. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  101. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  102. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  103. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
@@ -23,12 +23,12 @@ ${s.map((E) => ` - ${E}`).join(`
23
23
  validateImplementation(e, r) {
24
24
  var I;
25
25
  const s = [], E = r.name, T = Object.getPrototypeOf(this);
26
- e.forEach((d) => {
27
- if (typeof this[d] != "function") {
28
- s.push(`Method ${d}() is not defined`);
26
+ e.forEach((l) => {
27
+ if (typeof this[l] != "function") {
28
+ s.push(`Method ${l}() is not defined`);
29
29
  return;
30
30
  }
31
- T[d] === r.prototype[d] && s.push(`Method ${d}() must be implemented (currently using base class error-throwing implementation)`);
31
+ T[l] === r.prototype[l] && s.push(`Method ${l}() must be implemented (currently using base class error-throwing implementation)`);
32
32
  }), u.validatedClasses.add(r), s.length > 0 ? (u.validationErrors.set(r, s), console.error(`[${E} Validation] ${E} validation failed:`, s)) : typeof process < "u" && ((I = process.env) == null ? void 0 : I.NODE_ENV) === "development" && console.log(`[${E} Validation] ✅ ${E} validated successfully`);
33
33
  }
34
34
  };
@@ -254,10 +254,10 @@ var st = {
254
254
  ...o,
255
255
  caption: "caption",
256
256
  icon: "icon"
257
- }, gt = {
257
+ }, mt = {
258
258
  ...o,
259
259
  caption: "caption"
260
- }, mt = {
260
+ }, gt = {
261
261
  ...o,
262
262
  minValue: "min-value",
263
263
  maxValue: "max-value",
@@ -292,11 +292,11 @@ var st = {
292
292
  position: "position"
293
293
  }, vt = {
294
294
  ...o
295
- }, Gt = {
295
+ }, Vt = {
296
296
  BUTTON: Ct,
297
- CHECKBOX: gt,
297
+ CHECKBOX: mt,
298
298
  COLOR: o,
299
- COUNTER: mt,
299
+ COUNTER: gt,
300
300
  LABEL: bt,
301
301
  RADIO_BUTTONS: Nt,
302
302
  SELECTPICKER: X,
@@ -344,7 +344,7 @@ var st = {
344
344
  const e = t.querySelectorAll(O.BUTTON), r = t.asElement().hasClass(U) ? [t] : [];
345
345
  return e.length ? e : r;
346
346
  }
347
- }, Vt = class extends i {
347
+ }, Gt = class extends i {
348
348
  getParentControlId() {
349
349
  return n.BLOCK_BUTTON.BORDER_RADIUS;
350
350
  }
@@ -454,20 +454,20 @@ var st = {
454
454
  }
455
455
  };
456
456
  k.REQUIRED_METHODS = ["getId", "getTemplate"];
457
- var ee = k, G = class extends x {
457
+ var ee = k, V = class extends x {
458
458
  getTargetNodes(t) {
459
459
  const e = t.querySelectorAll(O.IMAGE), r = t.asElement().hasClass(K) ? [t] : [];
460
460
  return e.length ? e : r;
461
461
  }
462
- }, re = class extends G {
462
+ }, re = class extends V {
463
463
  getParentControlId() {
464
464
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
465
465
  }
466
- }, ne = class extends G {
466
+ }, ne = class extends V {
467
467
  getParentControlId() {
468
468
  return n.BLOCK_IMAGE.SIZE;
469
469
  }
470
- }, V = class L extends a {
470
+ }, G = class L extends a {
471
471
  constructor() {
472
472
  super(L.REQUIRED_METHODS, L);
473
473
  }
@@ -475,8 +475,8 @@ var ee = k, G = class extends x {
475
475
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
476
476
  }
477
477
  };
478
- V.REQUIRED_METHODS = ["registerBlockControls"];
479
- var se = V, ae = class {
478
+ G.REQUIRED_METHODS = ["registerBlockControls"];
479
+ var se = G, ae = class {
480
480
  constructor(t, e) {
481
481
  this.tabId = t, this.controlsIds = e;
482
482
  }
@@ -499,46 +499,42 @@ var se = V, ae = class {
499
499
  const e = this.controlsIds.indexOf(t);
500
500
  e !== -1 && this.controlsIds.splice(e, 1);
501
501
  }
502
- }, l = class extends x {
502
+ }, d = class extends x {
503
503
  getTargetNodes(t) {
504
504
  const e = t.querySelectorAll(O.TEXT), r = t.asElement().hasClass(p) ? [t] : [];
505
505
  return e.length ? e : r;
506
506
  }
507
- }, ie = class extends l {
507
+ }, ie = class extends d {
508
508
  getParentControlId() {
509
509
  return n.GENERAL.TEXT_ALIGN;
510
510
  }
511
- }, oe = class extends l {
512
- getParentControlId() {
513
- return n.BLOCK_TEXT.TEXT_BLOCK_BACKGROUND_COLOR;
514
- }
515
- }, Ee = class extends l {
511
+ }, oe = class extends d {
516
512
  getParentControlId() {
517
513
  return n.GENERAL.TEXT_COLOR;
518
514
  }
519
- }, le = class extends l {
515
+ }, Ee = class extends d {
520
516
  getParentControlId() {
521
517
  return n.BLOCK_TEXT.FONT_FAMILY;
522
518
  }
523
- }, de = class extends l {
519
+ }, le = class extends d {
524
520
  getParentControlId() {
525
521
  return n.GENERAL.TEXT_LINE_SPACING;
526
522
  }
527
- }, ue = class extends l {
523
+ }, de = class extends d {
528
524
  getParentControlId() {
529
525
  return n.BLOCK_TEXT.INTERNAL_INDENTS;
530
526
  }
531
- }, Ie = class extends l {
527
+ }, ue = class extends d {
532
528
  getParentControlId() {
533
529
  return n.GENERAL.TEXT_SIZE;
534
530
  }
535
- }, Oe = class extends l {
531
+ }, Ie = class extends d {
536
532
  getParentControlId() {
537
533
  return n.GENERAL.TEXT_STYLE;
538
534
  }
539
535
  }, Ut = class {
540
- constructor(t, e, r = [], s, E = [], T, I = [], d = [], v, $, W, z, Z, j, q, J, tt) {
541
- this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.i18n = t, this.styles = e, this.previewStyles = W, this.uiElements = r, this.uiElementTagRegistry = s, this.controls = E, this.settingsPanelRegistry = T, this.contextActions = I, this.blocks = d, this.externalSmartElementsLibrary = v, this.externalImageLibrary = $, this.externalImageLibraryTab = tt, this.externalAiAssistant = z, this.externalDisplayConditionsLibrary = Z, this.externalVideoLibrary = j, this.blocksPanel = q, this.iconsRegistry = J, this.id = Math.random().toString(36).substring(2);
536
+ constructor(t, e, r = [], s, E = [], T, I = [], l = [], v, $, W, z, Z, j, q, J, tt) {
537
+ this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.i18n = t, this.styles = e, this.previewStyles = W, this.uiElements = r, this.uiElementTagRegistry = s, this.controls = E, this.settingsPanelRegistry = T, this.contextActions = I, this.blocks = l, this.externalSmartElementsLibrary = v, this.externalImageLibrary = $, this.externalImageLibraryTab = tt, this.externalAiAssistant = z, this.externalDisplayConditionsLibrary = Z, this.externalVideoLibrary = j, this.blocksPanel = q, this.iconsRegistry = J, this.id = Math.random().toString(36).substring(2);
542
538
  }
543
539
  getI18n() {
544
540
  return this.i18n;
@@ -594,7 +590,7 @@ var se = V, ae = class {
594
590
  getIconsRegistry() {
595
591
  return this.iconsRegistry;
596
592
  }
597
- }, Te = class {
593
+ }, Oe = class {
598
594
  constructor() {
599
595
  this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [];
600
596
  }
@@ -689,9 +685,9 @@ var se = V, ae = class {
689
685
  }
690
686
  };
691
687
  pt.REQUIRED_METHODS = ["openAiAssistant"];
692
- var Kt = class g extends a {
688
+ var Kt = class m extends a {
693
689
  constructor() {
694
- super(g.REQUIRED_METHODS, g);
690
+ super(m.REQUIRED_METHODS, m);
695
691
  }
696
692
  /**
697
693
  * Retrieves the name of the category.
@@ -730,9 +726,9 @@ var Kt = class g extends a {
730
726
  }
731
727
  };
732
728
  Kt.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
733
- var Ft = class m extends a {
729
+ var Ft = class g extends a {
734
730
  constructor() {
735
- super(m.REQUIRED_METHODS, m);
731
+ super(g.REQUIRED_METHODS, g);
736
732
  }
737
733
  openImageLibrary(e, r, s) {
738
734
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
@@ -787,7 +783,7 @@ var Q = class D extends a {
787
783
  }
788
784
  };
789
785
  Q.REQUIRED_METHODS = ["registerIconsSvg"];
790
- var ce = Q, _e = class {
786
+ var Te = Q, ce = class {
791
787
  constructor(t) {
792
788
  this.key = t;
793
789
  }
@@ -856,7 +852,7 @@ var ce = Q, _e = class {
856
852
  }
857
853
  };
858
854
  f.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
859
- var he = f, Y = class B extends a {
855
+ var _e = f, Y = class B extends a {
860
856
  constructor() {
861
857
  super(B.REQUIRED_METHODS, B);
862
858
  }
@@ -865,7 +861,7 @@ var he = f, Y = class B extends a {
865
861
  }
866
862
  };
867
863
  Y.REQUIRED_METHODS = ["registerUiElements"];
868
- var Re = Y;
864
+ var he = Y;
869
865
  export {
870
866
  Xt as Block,
871
867
  kt as BlockAttr,
@@ -877,7 +873,7 @@ export {
877
873
  Qt as ButtonAlignBuiltInControl,
878
874
  ft as ButtonBackgroundColorBuiltInControl,
879
875
  Yt as ButtonBorderBuiltInControl,
880
- Vt as ButtonBorderRadiusBuiltInControl,
876
+ Gt as ButtonBorderRadiusBuiltInControl,
881
877
  $t as ButtonColorBuiltInControl,
882
878
  w as ButtonControls,
883
879
  Wt as ButtonFitToContainerBuiltInControl,
@@ -890,27 +886,26 @@ export {
890
886
  Rt as ContainerControls,
891
887
  ee as Control,
892
888
  Ut as Extension,
893
- Te as ExtensionBuilder,
889
+ Oe as ExtensionBuilder,
894
890
  F as GeneralControls,
895
- ce as IconsRegistry,
891
+ Te as IconsRegistry,
896
892
  H as ImageControls,
897
893
  re as ImageMarginsBuiltInControl,
898
894
  ne as ImageSizeBuiltInControl,
899
- _e as ModificationDescription,
895
+ ce as ModificationDescription,
900
896
  se as SettingsPanelRegistry,
901
897
  ae as SettingsPanelTab,
902
898
  Lt as SettingsTab,
903
899
  ie as TextAlignBuiltInControl,
904
- oe as TextBlockBackgroundBuiltInControl,
905
- Ee as TextColorBuiltInControl,
900
+ oe as TextColorBuiltInControl,
906
901
  P as TextControls,
907
- le as TextFontFamilyBuiltInControl,
908
- de as TextLineSpacingBuiltInControl,
909
- ue as TextPaddingsBuiltInControl,
910
- Ie as TextSizeBuiltInControl,
911
- Oe as TextStyleBuiltInControl,
912
- Gt as UEAttr,
913
- he as UIElement,
914
- Re as UIElementTagRegistry,
902
+ Ee as TextFontFamilyBuiltInControl,
903
+ le as TextLineSpacingBuiltInControl,
904
+ de as TextPaddingsBuiltInControl,
905
+ ue as TextSizeBuiltInControl,
906
+ Ie as TextStyleBuiltInControl,
907
+ Vt as UEAttr,
908
+ _e as UIElement,
909
+ he as UIElementTagRegistry,
915
910
  yt as UIElementType
916
911
  };
@@ -7,22 +7,69 @@ export interface CardCompositionItem {
7
7
  visible: boolean;
8
8
  }
9
9
  export declare class RecommendationCardCompositionControl extends CommonControl {
10
- private currentComposition;
11
- private currentVisibility;
12
10
  getId(): string;
13
11
  getTemplate(): string;
14
12
  onRender(): void;
15
13
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
16
14
  /**
17
- * Initialize the composition order and visibility from the block or use defaults
15
+ * Creates the HTML content for an orderable item with label and toggle
16
+ */
17
+ private _createItemContent;
18
+ /**
19
+ * Registers event listeners for composition and visibility changes
20
+ */
21
+ private _registerValueChangeListeners;
22
+ /**
23
+ * Initializes composition order and visibility state from the current node
18
24
  */
19
25
  private _initializeComposition;
26
+ /**
27
+ * Reads composition order from node's data-card-composition attribute
28
+ * Falls back to default order if attribute is not present
29
+ */
30
+ private _readCompositionFromNode;
31
+ /**
32
+ * Builds visibility values object from the visibility map
33
+ */
34
+ private _buildVisibilityValues;
35
+ /**
36
+ * Read visibility state from individual row elements' data-visibility attributes
37
+ * This ensures toggles reflect the actual DOM state
38
+ */
39
+ private _readVisibilityFromRows;
40
+ /**
41
+ * Returns default visibility values for all items
42
+ */
43
+ private _getDefaultVisibilities;
44
+ /**
45
+ * Extracts visibility values from DOM nodes
46
+ */
47
+ private _extractVisibilityFromRows;
48
+ /**
49
+ * Parses visibility value from string to boolean
50
+ * Accepts "1", "true" as true, everything else as false
51
+ */
52
+ private _parseVisibilityValue;
53
+ /**
54
+ * Merges extracted visibilities with default values for missing keys
55
+ */
56
+ private _mergeWithDefaults;
20
57
  /**
21
58
  * Apply the reordered composition to the block's HTML structure
59
+ * Updates the data-card-composition attribute and reorders product attributes
22
60
  */
23
61
  private _applyCompositionToBlock;
62
+ /**
63
+ * Reorders attribute rows within each product row based on composition order
64
+ */
65
+ private _reorderProductAttributes;
66
+ /**
67
+ * Builds HTML string with attributes ordered according to composition
68
+ */
69
+ private _buildCompositionHtml;
24
70
  /**
25
71
  * Apply visibility changes to the block's HTML structure
72
+ * Updates display style and data-visibility attribute for all matching rows
26
73
  */
27
74
  private _applyVisibilityToBlock;
28
75
  }
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Attribute type constants used in templates
3
+ * These are used as keys in ElementRenderer and composition arrays
4
+ */
5
+ export declare const ATTR_PRODUCT_IMAGE = "productImage";
6
+ export declare const ATTR_PRODUCT_NAME = "productName";
7
+ export declare const ATTR_PRODUCT_PRICE = "productPrice";
8
+ export declare const ATTR_PRODUCT_OLD_PRICE = "productOldPrice";
9
+ export declare const ATTR_PRODUCT_OMNIBUS_PRICE = "productOmnibusPrice";
10
+ export declare const ATTR_PRODUCT_OMNIBUS_DISCOUNT = "productOmnibusDiscount";
11
+ export declare const ATTR_PRODUCT_BUTTON = "productButton";
1
12
  /**
2
13
  * Block IDs used in the Recommendation Extension
3
14
  * These IDs are used in the esd-extension-block-id attribute to identify specific blocks
@@ -7,6 +18,8 @@ export declare enum RecommendationBlockId {
7
18
  NAME = "recommendation-block-name",
8
19
  PRICE = "recommendation-block-price",
9
20
  OLD_PRICE = "recommendation-block-old-price",
21
+ OMNIBUS_PRICE = "recommendation-block-omnibus-price",
22
+ OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount",
10
23
  IMAGE = "recommendation-block-image"
11
24
  }
12
25
  /**
@@ -32,6 +45,7 @@ export declare enum RecommendationControlId {
32
45
  NAME_PADDINGS = "recommendation-block-name-paddings-control",
33
46
  NAME_SIZE = "recommendation-block-name-size-control",
34
47
  NAME_STYLE = "recommendation-block-name-style-control",
48
+ NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control",
35
49
  PRICE_ALIGN = "recommendation-block-price-align-control",
36
50
  PRICE_BACKGROUND = "recommendation-block-price-background-control",
37
51
  PRICE_COLOR = "recommendation-block-price-color-control",
@@ -46,6 +60,24 @@ export declare enum RecommendationControlId {
46
60
  OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control",
47
61
  OLD_PRICE_SIZE = "recommendation-block-old-price-size-control",
48
62
  OLD_PRICE_STYLE = "recommendation-block-old-price-style-control",
63
+ OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control",
64
+ OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control",
65
+ OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control",
66
+ OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control",
67
+ OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control",
68
+ OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control",
69
+ OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control",
70
+ OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control",
71
+ OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control",
72
+ OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control",
73
+ OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control",
74
+ OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control",
75
+ OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control",
76
+ OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control",
77
+ OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control",
78
+ OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control",
79
+ OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control",
80
+ OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control",
49
81
  IMAGE_SIZE = "recommendation-block-image-size-control",
50
82
  IMAGE_MARGINS = "recommendation-block-image-margins-control"
51
83
  }
@@ -17,8 +17,6 @@ export declare class RecommendationBlockControl extends CommonControl {
17
17
  _getProductLayout(): string;
18
18
  _getFilterStatus(): string;
19
19
  _getShuffleProducts(): string;
20
- _getResponsive(): string;
21
- _onFilterChange(value: boolean): void;
22
20
  _onFilterSelectClick(): void;
23
21
  _onDataChange(item: string, value: string | number | string[]): void;
24
22
  /**
@@ -26,6 +24,11 @@ export declare class RecommendationBlockControl extends CommonControl {
26
24
  */
27
25
  _getCardComposition(): string[];
28
26
  _regenerateProductRows(): void;
27
+ /**
28
+ * Reapply spacing values after product regeneration
29
+ * This ensures spacing persists when products are regenerated
30
+ */
31
+ _reapplySpacing(): void;
29
32
  _debouncedRegenerateProductRows: import("@vueuse/shared").PromisifyFn<() => void>;
30
33
  _onCurrencyConfigChange(item: string, value: string | number): void;
31
34
  _onCurrencyChange(value: string): void;
@@ -0,0 +1,25 @@
1
+ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
+ import { CommonControl } from '../../common-control';
3
+ export declare const CARD_BACKGROUND_COLOR_CONTROL_ID = "recommendation-card-background-color-control";
4
+ /**
5
+ * Control for managing recommendation card background color
6
+ * This control is displayed in the Styles tab
7
+ */
8
+ export declare class CardBackgroundColorControl extends CommonControl {
9
+ getId(): string;
10
+ getTemplate(): string;
11
+ onRender(): void;
12
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
13
+ _setFormValues(): void;
14
+ /**
15
+ * Reads the current background color from the first product card wrapper
16
+ * @returns The background color value or 'transparent' if not found
17
+ */
18
+ _getCurrentCardBackgroundColor(): string;
19
+ /**
20
+ * Handles card background color changes
21
+ * Applies the color to all product card wrapper elements
22
+ */
23
+ _onCardBackgroundColorChange(color: string): void;
24
+ _listenToFormUpdates(): void;
25
+ }