@useinsider/guido 3.0.0-beta.7d3a300 → 3.0.0-beta.952fc1f

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 (58) hide show
  1. package/dist/config/i18n/en/tooltips.json.js +1 -2
  2. package/dist/extensions/Blocks/Recommendation/block.js +56 -38
  3. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  4. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +36 -34
  5. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +4 -4
  6. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +15 -15
  7. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +24 -24
  8. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +2 -2
  9. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +107 -78
  10. package/dist/extensions/Blocks/Recommendation/controls/{layout/index.js → main/layoutOrientation.js} +35 -27
  11. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +2 -2
  12. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +58 -0
  13. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +150 -64
  14. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +2 -2
  15. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +198 -204
  16. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +25 -8
  17. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +6 -5
  18. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +8 -8
  19. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +21 -21
  20. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +13 -13
  21. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +17 -17
  22. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +134 -142
  23. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +65 -0
  24. package/dist/extensions/Blocks/Recommendation/extension.js +13 -13
  25. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +35 -0
  26. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +21 -15
  27. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -0
  28. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +27 -27
  29. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +6 -6
  30. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +17 -16
  31. package/dist/extensions/Blocks/common-control.js +90 -41
  32. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +218 -324
  33. package/dist/package.json.js +1 -1
  34. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +2 -1
  35. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +2 -2
  36. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +5 -1
  37. package/dist/src/extensions/Blocks/Recommendation/controls/{layout/index.d.ts → main/layoutOrientation.d.ts} +3 -3
  38. package/dist/src/extensions/Blocks/Recommendation/controls/main/productCount.d.ts +28 -0
  39. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +38 -20
  40. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +4 -2
  41. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +23 -1
  42. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +8 -18
  43. package/dist/src/extensions/Blocks/Recommendation/controls/syncInfoMessage.d.ts +34 -0
  44. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -0
  45. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +13 -0
  46. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +3 -3
  47. package/dist/src/extensions/Blocks/common-control.d.ts +24 -2
  48. package/dist/static/styles/components/button.css.js +7 -13
  49. package/dist/static/styles/components/narrow-panel.css.js +0 -52
  50. package/dist/static/styles/components/wide-panel.css.js +1 -0
  51. package/dist/static/styles/customEditorStyle.css.js +9 -0
  52. package/package.json +3 -3
  53. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
  54. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
  55. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
  56. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
  57. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
  58. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
@@ -75,8 +75,7 @@ const e = {
75
75
  "The image with the invalid link cannot be saved to the image gallery": "Enter a valid image link to continue.",
76
76
  "The data source link is unavailable. Please, make sure there is an access to the data source.": "Enter an accessible Data Source Link to contiue.",
77
77
  "The file should not exceed the maximum resolution of {maxImageResolution}px.": "Upload files up to 1024x512 pixels to continue.",
78
- "The option is disabled because was overridden in the Code editor": "The option is disabled because it was overridden in the Code Editor.",
79
- "Dropdown with a list of available data services, preliminarily created in the Data section → Services tab of the Account.": "Service for Data Collection lets you enter a form submission URL for the recipients to submit."
78
+ "The option is disabled because was overridden in the Code editor": "The option is disabled because it was overridden in the Code Editor."
80
79
  };
81
80
  export {
82
81
  e as default
@@ -1,41 +1,45 @@
1
- var f = Object.defineProperty;
2
- var h = (r, o, t) => o in r ? f(r, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[o] = t;
3
- var g = (r, o, t) => h(r, typeof o != "symbol" ? o + "" : o, t);
4
- import { BlockId as I } from "../../../enums/block.js";
5
- import { getMigrationBannerHtml as k } from "../../../utils/migrationBannerHtml.js";
6
- import { Block as B, BlockCompositionType as _, ModificationDescription as R } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- import { ensureMobileCssRulesExist as d } from "./controls/mobileLayout/cssRules.js";
8
- import { RecommendationConfigService as s } from "./services/configService.js";
9
- import { useRecommendationExtensionStore as u } from "./store/recommendation.js";
10
- import { getDefaultTemplate as A } from "./templates/grid/template.js";
11
- const p = I.Recommendation, c = "recommendation-block-v2", a = "recommendation-id";
12
- class T extends B {
1
+ var k = Object.defineProperty;
2
+ var I = (r, n, t) => n in r ? k(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
+ var u = (r, n, t) => I(r, typeof n != "symbol" ? n + "" : n, t);
4
+ import { BlockId as B } from "../../../enums/block.js";
5
+ import { getMigrationBannerHtml as _ } from "../../../utils/migrationBannerHtml.js";
6
+ import { Block as b, BlockCompositionType as R, ModificationDescription as y } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
+ import { regenerateMobileProductRows as C } from "./controls/main/utils.js";
8
+ import { ensureMobileCssRulesExist as g, setMobileLayoutOptOut as d, hasMobileLayoutOptOut as A } from "./controls/mobileLayout/cssRules.js";
9
+ import { RecommendationConfigService as c } from "./services/configService.js";
10
+ import { useRecommendationExtensionStore as p } from "./store/recommendation.js";
11
+ import { getDefaultTemplate as E } from "./templates/grid/template.js";
12
+ const f = B.Recommendation, a = "recommendation-block-v2", l = "recommendation-id";
13
+ let h = !1;
14
+ class q extends b {
13
15
  constructor() {
14
16
  super();
15
17
  /**
16
18
  * Stores the ID generated in getTemplate() so onCreated() can reuse it.
17
19
  * This avoids generating a new (different) ID in onCreated().
18
20
  */
19
- g(this, "_pendingBlockId", null);
21
+ u(this, "_pendingBlockId", null);
20
22
  }
21
23
  getId() {
22
- return p;
24
+ return f;
23
25
  }
24
26
  getIcon() {
25
27
  return "recommendation-icon";
26
28
  }
27
29
  getBlockCompositionType() {
28
- return _.CONTAINER;
30
+ return R.CONTAINER;
29
31
  }
30
32
  getName() {
31
33
  return this.api.translate("Recommendation Block");
32
34
  }
33
35
  getDescription() {
34
- return this.api.translate("Recommendation Block Title Description");
36
+ return this.api.translate(
37
+ "Recommendation lets you display personalized product recommendations to users based on their algorithm."
38
+ );
35
39
  }
36
40
  getSettingsPanelTitleHtml() {
37
- return k(
38
- p,
41
+ return _(
42
+ f,
39
43
  this.api.translate("Recommendation Block"),
40
44
  this.api.translate("This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.")
41
45
  );
@@ -52,7 +56,7 @@ class T extends B {
52
56
  */
53
57
  getTemplate() {
54
58
  const t = this._generateNextId();
55
- return this._pendingBlockId = t, A(t);
59
+ return this._pendingBlockId = t, E(t);
56
60
  }
57
61
  /**
58
62
  * Called when a new block is dropped into the template
@@ -64,8 +68,13 @@ class T extends B {
64
68
  onCreated(t) {
65
69
  const e = this._pendingBlockId ?? this._generateNextId();
66
70
  this._pendingBlockId = null, this._assignRecommendationId(t, e);
67
- const n = s.initializeConfig(this.api, t, { recommendationId: e }), i = u();
68
- i.setCurrentBlock(e), d(this.api), i.patchCurrentBlockConfig({ language: n.language }, { triggerRefetch: !1 });
71
+ const o = c.initializeConfig(this.api, t, { recommendationId: e }), i = p();
72
+ i.setCurrentBlock(e), g(this.api);
73
+ const s = this._getBlockElement(t);
74
+ s && (d(this.api, s, !0), C({
75
+ currentNode: t,
76
+ documentModifier: this.api.getDocumentModifier()
77
+ })), i.patchCurrentBlockConfig({ language: o.language }, { triggerRefetch: !1 });
69
78
  }
70
79
  /**
71
80
  * Called when the document changes or template is loaded
@@ -78,14 +87,23 @@ class T extends B {
78
87
  if (!(!t || !("getNodeConfig" in t))) {
79
88
  if (!this._getRecommendationId(t)) {
80
89
  const e = this._generateNextId();
81
- this._assignRecommendationId(t, e), s.hasConfig(t) && s.updateConfig(
90
+ this._assignRecommendationId(t, e), c.hasConfig(t) && c.updateConfig(
82
91
  this.api,
83
92
  t,
84
93
  { recommendationId: e },
85
94
  "Assign recommendation ID to legacy block"
86
95
  );
87
96
  }
88
- s.needsMigration(t) && this._migrateFromLegacy(t), d(this.api);
97
+ c.needsMigration(t) && this._migrateFromLegacy(t);
98
+ try {
99
+ h || (g(this.api), h = !0);
100
+ const e = c.getConfig(t), o = this._getBlockElement(t);
101
+ if (o) {
102
+ const i = !e.mobileLayoutEnabled;
103
+ A(o) !== i && d(this.api, o, i);
104
+ }
105
+ } catch {
106
+ }
89
107
  }
90
108
  }
91
109
  /**
@@ -96,7 +114,7 @@ class T extends B {
96
114
  */
97
115
  onDelete(t) {
98
116
  const e = this._getRecommendationId(t);
99
- e && u().removeBlockState(e);
117
+ e && p().removeBlockState(e);
100
118
  }
101
119
  /**
102
120
  * Generates the next unique recommendation ID by scanning all existing blocks
@@ -106,10 +124,10 @@ class T extends B {
106
124
  let t = 0;
107
125
  try {
108
126
  const e = this.api.getDocumentRoot();
109
- e && "querySelectorAll" in e && e.querySelectorAll(`.${c}`).forEach((i) => {
127
+ e && "querySelectorAll" in e && e.querySelectorAll(`.${a}`).forEach((i) => {
110
128
  if ("getAttribute" in i) {
111
- const m = i.getAttribute(a), l = m ? parseInt(m) : 0;
112
- l > t && (t = l);
129
+ const s = i.getAttribute(l), m = s ? parseInt(s) : 0;
130
+ m > t && (t = m);
113
131
  }
114
132
  });
115
133
  } catch {
@@ -123,11 +141,11 @@ class T extends B {
123
141
  * added classes via setAttribute.
124
142
  */
125
143
  _assignRecommendationId(t, e) {
126
- const n = this._getBlockElement(t);
127
- if (!n)
144
+ const o = this._getBlockElement(t);
145
+ if (!o)
128
146
  return;
129
147
  const i = this.api.getDocumentModifier();
130
- i.modifyHtml(n).setAttribute(a, e.toString()), i.apply(new R(`Assign recommendation ID ${e}`));
148
+ i.modifyHtml(o).setAttribute(l, e.toString()), i.apply(new y(`Assign recommendation ID ${e}`));
131
149
  }
132
150
  /**
133
151
  * Gets the recommendation-id from a block node
@@ -136,10 +154,10 @@ class T extends B {
136
154
  const e = this._getBlockElement(t);
137
155
  if (!e || !("getAttribute" in e))
138
156
  return null;
139
- const n = e.getAttribute(a);
140
- if (!n)
157
+ const o = e.getAttribute(l);
158
+ if (!o)
141
159
  return null;
142
- const i = parseInt(n);
160
+ const i = parseInt(o);
143
161
  return Number.isNaN(i) ? null : i;
144
162
  }
145
163
  /**
@@ -148,19 +166,19 @@ class T extends B {
148
166
  _getBlockElement(t) {
149
167
  if ("getAttribute" in t) {
150
168
  const e = t.getAttribute("class");
151
- if (e && e.includes(c))
169
+ if (e && e.includes(a))
152
170
  return t;
153
171
  }
154
- return "querySelector" in t ? t.querySelector(`.${c}`) ?? null : null;
172
+ return "querySelector" in t ? t.querySelector(`.${a}`) : null;
155
173
  }
156
174
  /**
157
175
  * Migrate configuration from legacy format
158
176
  */
159
177
  _migrateFromLegacy(t) {
160
- s.migrateFromDataAttributes(this.api, t);
178
+ c.migrateFromDataAttributes(this.api, t);
161
179
  }
162
180
  }
163
181
  export {
164
- p as BLOCK_ID,
165
- T as RecommendationBlock
182
+ f as BLOCK_ID,
183
+ q as RecommendationBlock
166
184
  };
@@ -1,4 +1,4 @@
1
- var o = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control", c.OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control", c.OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control", c.OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control", c.OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control", c.OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control", c.OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control", c.OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control", c.OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control", c.OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control", c.OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control", c.OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control", c.OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control", c.OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control", c.OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control", c.OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control", c.OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control", c.OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c.CUSTOM_ATTR_ALIGN = "recommendation-block-custom-attr-align-control", c.CUSTOM_ATTR_BACKGROUND = "recommendation-block-custom-attr-background-control", c.CUSTOM_ATTR_COLOR = "recommendation-block-custom-attr-color-control", c.CUSTOM_ATTR_FONT_FAMILY = "recommendation-block-custom-attr-font-family-control", c.CUSTOM_ATTR_PADDINGS = "recommendation-block-custom-attr-paddings-control", c.CUSTOM_ATTR_SIZE = "recommendation-block-custom-attr-size-control", c.CUSTOM_ATTR_STYLE = "recommendation-block-custom-attr-style-control", c))(o || {});
1
+ var o = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control", c.OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control", c.OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control", c.OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control", c.OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control", c.OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control", c.OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control", c.OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control", c.OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control", c.OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control", c.OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control", c.OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control", c.OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control", c.OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control", c.OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control", c.OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control", c.OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control", c.OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c.CUSTOM_ATTR_ALIGN = "recommendation-block-custom-attr-align-control", c.CUSTOM_ATTR_BACKGROUND = "recommendation-block-custom-attr-background-control", c.CUSTOM_ATTR_COLOR = "recommendation-block-custom-attr-color-control", c.CUSTOM_ATTR_FONT_FAMILY = "recommendation-block-custom-attr-font-family-control", c.CUSTOM_ATTR_PADDINGS = "recommendation-block-custom-attr-paddings-control", c.CUSTOM_ATTR_SIZE = "recommendation-block-custom-attr-size-control", c.CUSTOM_ATTR_STYLE = "recommendation-block-custom-attr-style-control", c.SYNC_INFO_MESSAGE = "recommendation-block-sync-info-message", c))(o || {});
2
2
  export {
3
3
  o as RecommendationControlId
4
4
  };
@@ -1,69 +1,71 @@
1
- import { DEFAULT_MOBILE_ROW_SPACING as U, DEFAULT_MOBILE_COLUMN_SPACING as R, DEFAULT_ROW_SPACING as n, DEFAULT_COLUMN_SPACING as O, DEFAULT_MOBILE_CARDS_IN_ROW as C, DEFAULT_CARDS_IN_ROW as D } from "./layout.js";
2
- import { ATTR_PRODUCT_IMAGE as _, ATTR_PRODUCT_NAME as o, ATTR_PRODUCT_OLD_PRICE as t, ATTR_PRODUCT_PRICE as e, ATTR_PRODUCT_OMNIBUS_PRICE as T, ATTR_PRODUCT_OMNIBUS_DISCOUNT as I, ATTR_PRODUCT_BUTTON as r } from "./selectors.js";
3
- const i = {
1
+ import { DEFAULT_MOBILE_ROW_SPACING as R, DEFAULT_MOBILE_COLUMN_SPACING as U, DEFAULT_ROW_SPACING as i, DEFAULT_COLUMN_SPACING as s, DEFAULT_MOBILE_CARDS_IN_ROW as o, DEFAULT_CARDS_IN_ROW as C } from "./layout.js";
2
+ import { ATTR_PRODUCT_IMAGE as _, ATTR_PRODUCT_NAME as e, ATTR_PRODUCT_OLD_PRICE as t, ATTR_PRODUCT_PRICE as T, ATTR_PRODUCT_OMNIBUS_PRICE as r, ATTR_PRODUCT_OMNIBUS_DISCOUNT as I, ATTR_PRODUCT_BUTTON as n } from "./selectors.js";
3
+ const O = {
4
4
  code: "USD",
5
5
  symbol: "USD",
6
6
  alignment: "after",
7
7
  decimalCount: 2,
8
8
  decimalSeparator: ".",
9
9
  thousandSeparator: ","
10
- }, A = {
10
+ }, D = {
11
11
  textBefore: "",
12
12
  textAfter: ""
13
- }, s = {
13
+ }, A = {
14
14
  textBefore: "",
15
15
  textAfter: ""
16
- }, E = [
16
+ }, a = [
17
17
  _,
18
- o,
19
- t,
20
18
  e,
19
+ t,
21
20
  T,
21
+ r,
22
22
  I,
23
- r
24
- ], c = {
23
+ n
24
+ ], E = {
25
25
  [_]: !0,
26
- [o]: !0,
27
26
  [e]: !0,
27
+ [T]: !0,
28
28
  [t]: !0,
29
- [T]: !1,
29
+ [r]: !1,
30
30
  [I]: !1,
31
- [r]: !0
32
- }, N = {
31
+ [n]: !0
32
+ }, l = {
33
33
  // Settings
34
34
  strategy: "mostPopular",
35
35
  productIds: [],
36
36
  size: "6",
37
37
  shuffleProducts: !1,
38
38
  language: "en_US",
39
- currency: i,
39
+ currency: O,
40
40
  filters: [],
41
41
  // Layout
42
42
  layout: "grid",
43
- cardsInRow: D,
44
- mobileCardsInRow: C,
45
- columnSpacing: O,
46
- rowSpacing: n,
47
- mobileColumnSpacing: R,
48
- mobileRowSpacing: U,
43
+ cardsInRow: C,
44
+ mobileCardsInRow: o,
45
+ mobileLayoutEnabled: !1,
46
+ previousMobileCardsInRow: o,
47
+ columnSpacing: s,
48
+ rowSpacing: i,
49
+ mobileColumnSpacing: U,
50
+ mobileRowSpacing: R,
49
51
  // Composition
50
- composition: E,
51
- visibility: c,
52
+ composition: a,
53
+ visibility: E,
52
54
  // Element settings
53
- omnibusPrice: A,
54
- omnibusDiscount: s,
55
+ omnibusPrice: D,
56
+ omnibusDiscount: A,
55
57
  textTrimming: !1,
56
58
  // Meta
57
59
  configVersion: 1,
58
60
  recommendationId: 0
59
- }, m = [11, 12], L = 1;
61
+ }, N = [11, 12], m = 1;
60
62
  export {
61
- L as CURRENT_CONFIG_VERSION,
62
- E as DEFAULT_COMPOSITION,
63
- i as DEFAULT_CURRENCY,
64
- N as DEFAULT_NODE_CONFIG,
65
- s as DEFAULT_OMNIBUS_DISCOUNT,
66
- A as DEFAULT_OMNIBUS_PRICE,
67
- c as DEFAULT_VISIBILITY,
68
- m as EXCLUDED_ALGORITHM_IDS
63
+ m as CURRENT_CONFIG_VERSION,
64
+ a as DEFAULT_COMPOSITION,
65
+ O as DEFAULT_CURRENCY,
66
+ l as DEFAULT_NODE_CONFIG,
67
+ A as DEFAULT_OMNIBUS_DISCOUNT,
68
+ D as DEFAULT_OMNIBUS_PRICE,
69
+ E as DEFAULT_VISIBILITY,
70
+ N as EXCLUDED_ALGORITHM_IDS
69
71
  };
@@ -1,7 +1,7 @@
1
1
  import { ModificationDescription as d } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
2
  import { CommonControl as s } from "../../../common-control.js";
3
3
  import { getCurrentLayout as l } from "../main/utils.js";
4
- const u = "recommendation-card-background-color-control", e = {
4
+ const i = "recommendation-card-background-color-control", e = {
5
5
  CARD_BACKGROUND_COLOR: "cardBackgroundColor"
6
6
  }, a = {
7
7
  GRID: ".product-card-segment",
@@ -9,13 +9,13 @@ const u = "recommendation-card-background-color-control", e = {
9
9
  };
10
10
  class _ extends s {
11
11
  getId() {
12
- return u;
12
+ return i;
13
13
  }
14
14
  getTemplate() {
15
15
  return `
16
16
  <div class="card-bg-control-container">
17
17
  ${this._GuTwoColumns([
18
- this._GuLabel({ text: "Card Background Color" }),
18
+ this._GuLabel({ text: this.api.translate("Card Background Color") }),
19
19
  this._GuColorPicker(e.CARD_BACKGROUND_COLOR)
20
20
  ])}
21
21
  </div>
@@ -75,6 +75,6 @@ class _ extends s {
75
75
  }
76
76
  }
77
77
  export {
78
- u as CARD_BACKGROUND_COLOR_CONTROL_ID,
78
+ i as CARD_BACKGROUND_COLOR_CONTROL_ID,
79
79
  _ as CardBackgroundColorControl
80
80
  };
@@ -1,15 +1,15 @@
1
1
  var c = Object.defineProperty;
2
- var d = (r, i, t) => i in r ? c(r, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[i] = t;
3
- var a = (r, i, t) => d(r, typeof i != "symbol" ? i + "" : i, t);
4
- import { UEAttr as h } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as l } from "../../../common-control.js";
2
+ var h = (s, i, t) => i in s ? c(s, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[i] = t;
3
+ var a = (s, i, t) => h(s, typeof i != "symbol" ? i + "" : i, t);
4
+ import { UEAttr as l } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as d } from "../../../common-control.js";
6
6
  import { RecommendationConfigService as n } from "../../services/configService.js";
7
7
  import { useRecommendationExtensionStore as m } from "../../store/recommendation.js";
8
8
  const g = "recommendation-algorithm-control", e = {
9
9
  ALGORITHM: "strategy",
10
10
  PRODUCT_IDS: "productIds"
11
11
  };
12
- class T extends l {
12
+ class T extends d {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  // Store is used ONLY for API-fetched data (algorithms list), not for config
@@ -22,16 +22,16 @@ class T extends l {
22
22
  return `
23
23
  <div class="algorithm-control-container">
24
24
  ${this._GuTwoColumns([
25
- this._GuLabel({ text: "Recommendation Algorithm" }),
25
+ this._GuLabel({ text: this.api.translate("Recommendation Algorithm") }),
26
26
  this._GuSelect({
27
27
  name: e.ALGORITHM,
28
- placeholder: "Select Recommendation Algorithm",
28
+ placeholder: this.api.translate("Select Recommendation Algorithm"),
29
29
  options: this.store.getActivePredictiveAlgorithms
30
30
  }),
31
- this._GuLabel({ text: "Product Ids", name: `${e.PRODUCT_IDS}_label` }),
31
+ this._GuLabel({ text: this.api.translate("Product Ids"), name: `${e.PRODUCT_IDS}_label` }),
32
32
  this._GuTextInput({
33
33
  name: e.PRODUCT_IDS,
34
- placeholder: "Enter Product Ids",
34
+ placeholder: this.api.translate("Enter Product Ids"),
35
35
  className: "es-180w"
36
36
  })
37
37
  ])}
@@ -58,16 +58,16 @@ class T extends l {
58
58
  try {
59
59
  this.api.setUIEAttribute(
60
60
  e.ALGORITHM,
61
- h.SELECTPICKER.items,
61
+ l.SELECTPICKER.items,
62
62
  t
63
63
  );
64
- } catch (s) {
65
- console.warn("[AlgorithmControl] Failed to set algorithm options:", s);
64
+ } catch (r) {
65
+ console.warn("[AlgorithmControl] Failed to set algorithm options:", r);
66
66
  }
67
67
  }
68
68
  _setProductIdsVisibility(t) {
69
- const s = (t ?? n.getConfig(this.currentNode).strategy) === "manualMerchandising";
70
- this.api.setVisibility(e.PRODUCT_IDS, s), this.api.setVisibility(`${e.PRODUCT_IDS}_label`, s);
69
+ const r = (t ?? n.getConfig(this.currentNode).strategy) === "manualMerchandising";
70
+ this.api.setVisibility(e.PRODUCT_IDS, r), this.api.setVisibility(`${e.PRODUCT_IDS}_label`, r);
71
71
  }
72
72
  _onAlgorithmChange(t) {
73
73
  !this.currentNode || n.getConfig(this.currentNode).strategy === t || (n.updateConfig(
@@ -80,7 +80,7 @@ class T extends l {
80
80
  _onProductIdsChange(t) {
81
81
  if (!this.currentNode)
82
82
  return;
83
- const o = t.split(",").map((s) => s.trim()).filter(Boolean);
83
+ const o = t.split(",").map((r) => r.trim()).filter(Boolean);
84
84
  n.updateConfig(
85
85
  this.api,
86
86
  this.currentNode,
@@ -1,9 +1,9 @@
1
- var R = Object.defineProperty;
2
- var _ = (i, o, e) => o in i ? R(i, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[o] = e;
3
- var c = (i, o, e) => _(i, typeof o != "symbol" ? o + "" : o, e);
4
- import { currencyLocationMaps as l, currencyOperators as a, currencyDecimalCounts as h } from "../../../../../enums/extensions/recommendationBlock.js";
5
- import { UEAttr as m } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
- import { CommonControl as p } from "../../../common-control.js";
1
+ var p = Object.defineProperty;
2
+ var R = (o, a, e) => a in o ? p(o, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[a] = e;
3
+ var c = (o, a, e) => R(o, typeof a != "symbol" ? a + "" : a, e);
4
+ import { currencyLocationMaps as l, currencyOperators as i, currencyDecimalCounts as h } from "../../../../../enums/extensions/recommendationBlock.js";
5
+ import { UEAttr as _ } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
+ import { CommonControl as m } from "../../../common-control.js";
7
7
  import { RecommendationConfigService as s } from "../../services/configService.js";
8
8
  import { useRecommendationExtensionStore as d } from "../../store/recommendation.js";
9
9
  import { setCurrencyAttributes as S, updatePricesInPlace as N } from "./utils.js";
@@ -15,7 +15,7 @@ const E = "recommendation-currency-control", t = {
15
15
  CURRENCY_DECIMAL_SEPARATOR: "currencyDecimalSeparator",
16
16
  CURRENCY_DECIMAL_COUNT: "currencyDecimalCount"
17
17
  };
18
- class Y extends p {
18
+ class Y extends m {
19
19
  constructor() {
20
20
  super(...arguments);
21
21
  // Store is used ONLY for API-fetched data (currency list), not for config
@@ -30,40 +30,40 @@ class Y extends p {
30
30
  return `
31
31
  <div class="currency-control-container">
32
32
  ${this._GuTwoColumns([
33
- this._GuLabel({ text: "Currency" }),
33
+ this._GuLabel({ text: this.api.translate("Currency") }),
34
34
  this._GuSelect({
35
35
  name: t.CURRENCY,
36
- placeholder: "Select Currency",
36
+ placeholder: this.api.translate("Select Currency"),
37
37
  options: this.store.currencyList
38
38
  }),
39
- this._GuLabel({ text: "Currency Location" }),
39
+ this._GuLabel({ text: this.api.translate("Currency Location") }),
40
40
  this._GuSelect({
41
41
  name: t.CURRENCY_LOCATION,
42
- placeholder: "Select Currency Location",
42
+ placeholder: this.api.translate("Select Currency Location"),
43
43
  options: l
44
44
  }),
45
- this._GuLabel({ text: "Currency Symbol" }),
45
+ this._GuLabel({ text: this.api.translate("Currency Symbol") }),
46
46
  this._GuTextInput({
47
47
  name: t.CURRENCY_SYMBOL,
48
- placeholder: "Enter Currency Symbol",
48
+ placeholder: this.api.translate("Enter Currency Symbol"),
49
49
  className: "es-180w"
50
50
  }),
51
- this._GuLabel({ text: "Thousand Separator" }),
51
+ this._GuLabel({ text: this.api.translate("Thousand Separator") }),
52
52
  this._GuSelect({
53
53
  name: t.CURRENCY_THOUSAND_SEPARATOR,
54
- placeholder: "Select Thousand Separator",
55
- options: a
54
+ placeholder: this.api.translate("Select Thousand Separator"),
55
+ options: i
56
56
  }),
57
- this._GuLabel({ text: "Decimal Separator" }),
57
+ this._GuLabel({ text: this.api.translate("Decimal Separator") }),
58
58
  this._GuSelect({
59
59
  name: t.CURRENCY_DECIMAL_SEPARATOR,
60
- placeholder: "Select Decimal Separator",
61
- options: a
60
+ placeholder: this.api.translate("Select Decimal Separator"),
61
+ options: i
62
62
  }),
63
- this._GuLabel({ text: "Decimal Count" }),
63
+ this._GuLabel({ text: this.api.translate("Decimal Count") }),
64
64
  this._GuSelect({
65
65
  name: t.CURRENCY_DECIMAL_COUNT,
66
- placeholder: "Select Decimal Count",
66
+ placeholder: this.api.translate("Select Decimal Count"),
67
67
  options: h
68
68
  })
69
69
  ])}
@@ -96,12 +96,12 @@ class Y extends p {
96
96
  const { store: e } = this, r = {
97
97
  [t.CURRENCY]: e.currencyList,
98
98
  [t.CURRENCY_LOCATION]: l,
99
- [t.CURRENCY_THOUSAND_SEPARATOR]: a,
100
- [t.CURRENCY_DECIMAL_SEPARATOR]: a,
99
+ [t.CURRENCY_THOUSAND_SEPARATOR]: i,
100
+ [t.CURRENCY_DECIMAL_SEPARATOR]: i,
101
101
  [t.CURRENCY_DECIMAL_COUNT]: h
102
102
  };
103
103
  Object.entries(r).forEach(([C, n]) => {
104
- this.api.setUIEAttribute(C, m.SELECTPICKER.items, n);
104
+ this.api.setUIEAttribute(C, _.SELECTPICKER.items, n);
105
105
  });
106
106
  }
107
107
  /**
@@ -21,10 +21,10 @@ class h extends s {
21
21
  return `
22
22
  <div class="filters-control-container">
23
23
  ${this._GuTwoColumns([
24
- this._GuLabel({ text: "Filters" }),
24
+ this._GuLabel({ text: this.api.translate("Filters") }),
25
25
  this._GuButton({
26
26
  name: a.FILTERS,
27
- label: "Add Filter",
27
+ label: this.api.translate("Add Filter"),
28
28
  id: "guido__btn-add-filter"
29
29
  })
30
30
  ])}