@useinsider/guido 3.0.0-beta.34a1600 → 3.0.0-beta.39155d9

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 (91) hide show
  1. package/dist/@types/config/schemas.js +10 -8
  2. package/dist/components/Guido.vue.js +3 -3
  3. package/dist/components/Guido.vue2.js +61 -60
  4. package/dist/components/organisms/header/EditorActions.vue.js +1 -1
  5. package/dist/components/organisms/header/EditorActions.vue2.js +6 -6
  6. package/dist/composables/useCustomFieldAttributes.js +16 -0
  7. package/dist/composables/useHtmlValidator.js +40 -38
  8. package/dist/config/compiler/unsubscribeCompilerRules.js +14 -14
  9. package/dist/config/compiler/utils/recommendationCompilerUtils.js +29 -18
  10. package/dist/extensions/Blocks/Recommendation/block.js +40 -55
  11. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +1 -1
  12. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  13. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +34 -36
  14. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +15 -12
  15. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +4 -4
  16. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +693 -144
  17. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +78 -0
  18. package/dist/extensions/Blocks/Recommendation/controls/{main/layoutOrientation.js → layout/index.js} +27 -32
  19. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +15 -15
  20. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +24 -24
  21. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +2 -2
  22. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +78 -107
  23. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +2 -2
  24. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +64 -150
  25. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +2 -2
  26. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +191 -177
  27. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +8 -25
  28. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +5 -6
  29. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +8 -8
  30. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +21 -21
  31. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +13 -13
  32. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +17 -17
  33. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +100 -94
  34. package/dist/extensions/Blocks/Recommendation/extension.js +27 -25
  35. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +125 -36
  36. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +111 -99
  37. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +2 -2
  38. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +63 -34
  39. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +30 -33
  40. package/dist/extensions/Blocks/Recommendation/templates/index.js +8 -8
  41. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +28 -13
  42. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +25 -44
  43. package/dist/extensions/Blocks/Recommendation/templates/utils.js +62 -38
  44. package/dist/extensions/Blocks/common-control.js +41 -90
  45. package/dist/guido.css +1 -1
  46. package/dist/services/customFieldAttributesApi.js +21 -0
  47. package/dist/src/@types/config/schemas.d.ts +4 -0
  48. package/dist/src/components/Guido.vue.d.ts +1 -1
  49. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  50. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  51. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  52. package/dist/src/composables/useConfig.d.ts +2 -0
  53. package/dist/src/composables/useCustomFieldAttributes.d.ts +5 -0
  54. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +1 -0
  55. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +2 -1
  56. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +7 -1
  57. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  58. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +10 -0
  59. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  60. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +134 -44
  61. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +105 -0
  62. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +3 -2
  63. package/dist/src/extensions/Blocks/Recommendation/controls/{main/layoutOrientation.d.ts → layout/index.d.ts} +3 -3
  64. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +1 -5
  65. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +20 -38
  66. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +4 -4
  67. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +1 -23
  68. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  69. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  70. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  71. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  72. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +18 -8
  73. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  74. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  75. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +1 -1
  76. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +1 -1
  77. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +10 -4
  78. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +37 -2
  79. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -13
  80. package/dist/src/extensions/Blocks/common-control.d.ts +2 -24
  81. package/dist/src/mock/api/custom-field-attributes.d.ts +2 -0
  82. package/dist/src/services/customFieldAttributesApi.d.ts +3 -0
  83. package/dist/src/stores/config.d.ts +18 -0
  84. package/dist/static/styles/components/wide-panel.css.js +0 -1
  85. package/dist/static/styles/customEditorStyle.css.js +0 -9
  86. package/dist/static/styles/variables.css.js +3 -0
  87. package/package.json +1 -1
  88. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +0 -58
  89. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +0 -65
  90. package/dist/src/extensions/Blocks/Recommendation/controls/main/productCount.d.ts +0 -28
  91. package/dist/src/extensions/Blocks/Recommendation/controls/syncInfoMessage.d.ts +0 -34
@@ -1,4 +1,4 @@
1
- import { useRecommendation as _ } from "../../../composables/useRecommendation.js";
1
+ import { useRecommendation as $ } from "../../../composables/useRecommendation.js";
2
2
  function b(e, u, r, o) {
3
3
  const n = `{{${e}_${u}_${r}}}`, t = `{{${e}_${u}_currency}}`;
4
4
  return o === "before" ? `${t} ${n}` : `${n} ${t}`;
@@ -64,58 +64,69 @@ function p(e, u, r, o, n) {
64
64
  }
65
65
  break;
66
66
  }
67
+ default: {
68
+ const t = e.getAttribute("product-attr") ? e : e.querySelector("[product-attr]");
69
+ if (t) {
70
+ const c = t.getAttribute("product-attr"), s = t.querySelector("p");
71
+ if (s) {
72
+ const i = s.querySelector("strong") || s;
73
+ i.textContent = `{{${r}_${o}_${c}}}`;
74
+ }
75
+ }
76
+ break;
77
+ }
67
78
  }
68
79
  }
69
- function $(e, u, r) {
80
+ function S(e, u, r) {
70
81
  e.querySelectorAll(".recommendation-product-row").forEach((n, t) => {
71
82
  n.querySelectorAll("[data-attribute-type]").forEach((s) => {
72
- const i = s.getAttribute("data-attribute-type") || "", a = s.querySelectorAll(".attribute-cell");
73
- a.length > 0 ? a.forEach((l) => {
74
- p(l, i, u, t, r);
83
+ const i = s.getAttribute("data-attribute-type") || "", l = s.querySelectorAll(".attribute-cell");
84
+ l.length > 0 ? l.forEach((a) => {
85
+ p(a, i, u, t, r);
75
86
  }) : p(s, i, u, t, r);
76
87
  });
77
88
  });
78
89
  }
79
- function S(e, u, r) {
90
+ function _(e, u, r) {
80
91
  const o = e.querySelectorAll(".recommendation-product-row");
81
92
  if (!o.length)
82
93
  return;
83
94
  const [n] = o, t = n.querySelector("[data-attribute-type]"), c = t ? t.querySelectorAll(".attribute-cell").length : 1;
84
95
  o.forEach((s, i) => {
85
- s.querySelectorAll("[data-attribute-type]").forEach((l) => {
86
- const f = l.getAttribute("data-attribute-type") || "";
87
- l.querySelectorAll(".attribute-cell").forEach((y, m) => {
88
- const A = i * c + m;
89
- p(y, f, u, A, r);
96
+ s.querySelectorAll("[data-attribute-type]").forEach((a) => {
97
+ const f = a.getAttribute("data-attribute-type") || "";
98
+ a.querySelectorAll(".attribute-cell").forEach((y, A) => {
99
+ const m = i * c + A;
100
+ p(y, f, u, m, r);
90
101
  });
91
102
  });
92
103
  });
93
104
  }
94
105
  function q(e, u, r) {
95
106
  e.querySelectorAll(".ins-recommendation-product-container").forEach((n) => {
96
- S(n, u, r);
107
+ _(n, u, r);
97
108
  });
98
109
  }
99
110
  function d(e, u) {
100
111
  const r = e.getAttribute("data-layout") || "grid", o = e.getAttribute("currency-alignment") || "after";
101
- r === "list" ? $(e, u, o) : q(e, u, o);
112
+ r === "list" ? S(e, u, o) : q(e, u, o);
102
113
  }
103
- function h(e, u) {
114
+ function g(e, u) {
104
115
  const r = e.match(/<!DOCTYPE[^>]*>/i);
105
116
  return (r ? `${r[0]}
106
117
  ` : "") + u.documentElement.outerHTML;
107
118
  }
108
- function w(e) {
119
+ function E(e) {
109
120
  const u = e.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(u, "text/html"), o = r.querySelectorAll(".recommendation-block-v2");
110
121
  if (!o.length)
111
122
  return e;
112
- const { buildCampaignUrl: n } = _();
123
+ const { buildCampaignUrl: n } = $();
113
124
  return o.forEach((c) => {
114
125
  const s = c.getAttribute("recommendation-id");
115
126
  s && (n(s), d(c, s));
116
- }), h(u, r).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
127
+ }), g(u, r).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
117
128
  }
118
129
  export {
119
130
  b as formatPriceVariable,
120
- w as prepareRecommendationBlocks
131
+ E as prepareRecommendationBlocks
121
132
  };
@@ -1,49 +1,48 @@
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 _ } from "../../../enums/block.js";
5
- import { getMigrationBannerHtml as b } 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 = _.Recommendation, a = "recommendation-block-v2", m = "recommendation-id";
13
- let h = !1;
14
- class q extends B {
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 {
15
13
  constructor() {
16
14
  super();
17
15
  /**
18
16
  * Stores the ID generated in getTemplate() so onCreated() can reuse it.
19
17
  * This avoids generating a new (different) ID in onCreated().
20
18
  */
21
- u(this, "_pendingBlockId", null);
19
+ g(this, "_pendingBlockId", null);
22
20
  }
23
21
  getId() {
24
- return f;
22
+ return p;
25
23
  }
26
24
  getIcon() {
27
25
  return "recommendation-icon";
28
26
  }
29
27
  getBlockCompositionType() {
30
- return R.CONTAINER;
28
+ return _.CONTAINER;
31
29
  }
32
30
  getName() {
33
31
  return this.api.translate("Recommendation Block");
34
32
  }
35
33
  getDescription() {
36
- return this.api.translate(
37
- "Recommendation lets you display personalized product recommendations to users based on their algorithm."
38
- );
34
+ return this.api.translate("Recommendation Block Title Description");
39
35
  }
40
36
  getSettingsPanelTitleHtml() {
41
- return b(
42
- f,
37
+ return k(
38
+ p,
43
39
  this.api.translate("Recommendation Block"),
44
40
  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.")
45
41
  );
46
42
  }
43
+ allowInnerBlocksDND() {
44
+ return !1;
45
+ }
47
46
  /**
48
47
  * Returns the template HTML for a new recommendation block.
49
48
  * Generates a unique recommendation ID and embeds the instance class
@@ -53,7 +52,7 @@ class q extends B {
53
52
  */
54
53
  getTemplate() {
55
54
  const t = this._generateNextId();
56
- return this._pendingBlockId = t, E(t);
55
+ return this._pendingBlockId = t, A(t);
57
56
  }
58
57
  /**
59
58
  * Called when a new block is dropped into the template
@@ -65,13 +64,8 @@ class q extends B {
65
64
  onCreated(t) {
66
65
  const e = this._pendingBlockId ?? this._generateNextId();
67
66
  this._pendingBlockId = null, this._assignRecommendationId(t, e);
68
- const o = c.initializeConfig(this.api, t, { recommendationId: e }), i = p();
69
- i.setCurrentBlock(e), g(this.api);
70
- const s = this._getBlockElement(t);
71
- s && (d(this.api, s, !0), C({
72
- currentNode: t,
73
- documentModifier: this.api.getDocumentModifier()
74
- })), i.patchCurrentBlockConfig({ language: o.language }, { triggerRefetch: !1 });
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 });
75
69
  }
76
70
  /**
77
71
  * Called when the document changes or template is loaded
@@ -84,23 +78,14 @@ class q extends B {
84
78
  if (!(!t || !("getNodeConfig" in t))) {
85
79
  if (!this._getRecommendationId(t)) {
86
80
  const e = this._generateNextId();
87
- this._assignRecommendationId(t, e), c.hasConfig(t) && c.updateConfig(
81
+ this._assignRecommendationId(t, e), s.hasConfig(t) && s.updateConfig(
88
82
  this.api,
89
83
  t,
90
84
  { recommendationId: e },
91
85
  "Assign recommendation ID to legacy block"
92
86
  );
93
87
  }
94
- c.needsMigration(t) && this._migrateFromLegacy(t);
95
- try {
96
- h || (g(this.api), h = !0);
97
- const e = c.getConfig(t), o = this._getBlockElement(t);
98
- if (o) {
99
- const i = !e.mobileLayoutEnabled;
100
- A(o) !== i && d(this.api, o, i);
101
- }
102
- } catch {
103
- }
88
+ s.needsMigration(t) && this._migrateFromLegacy(t), d(this.api);
104
89
  }
105
90
  }
106
91
  /**
@@ -111,7 +96,7 @@ class q extends B {
111
96
  */
112
97
  onDelete(t) {
113
98
  const e = this._getRecommendationId(t);
114
- e && p().removeBlockState(e);
99
+ e && u().removeBlockState(e);
115
100
  }
116
101
  /**
117
102
  * Generates the next unique recommendation ID by scanning all existing blocks
@@ -121,9 +106,9 @@ class q extends B {
121
106
  let t = 0;
122
107
  try {
123
108
  const e = this.api.getDocumentRoot();
124
- e && "querySelectorAll" in e && e.querySelectorAll(`.${a}`).forEach((i) => {
109
+ e && "querySelectorAll" in e && e.querySelectorAll(`.${c}`).forEach((i) => {
125
110
  if ("getAttribute" in i) {
126
- const s = i.getAttribute(m), l = s ? parseInt(s) : 0;
111
+ const m = i.getAttribute(a), l = m ? parseInt(m) : 0;
127
112
  l > t && (t = l);
128
113
  }
129
114
  });
@@ -138,11 +123,11 @@ class q extends B {
138
123
  * added classes via setAttribute.
139
124
  */
140
125
  _assignRecommendationId(t, e) {
141
- const o = this._getBlockElement(t);
142
- if (!o)
126
+ const n = this._getBlockElement(t);
127
+ if (!n)
143
128
  return;
144
129
  const i = this.api.getDocumentModifier();
145
- i.modifyHtml(o).setAttribute(m, e.toString()), i.apply(new y(`Assign recommendation ID ${e}`));
130
+ i.modifyHtml(n).setAttribute(a, e.toString()), i.apply(new R(`Assign recommendation ID ${e}`));
146
131
  }
147
132
  /**
148
133
  * Gets the recommendation-id from a block node
@@ -151,10 +136,10 @@ class q extends B {
151
136
  const e = this._getBlockElement(t);
152
137
  if (!e || !("getAttribute" in e))
153
138
  return null;
154
- const o = e.getAttribute(m);
155
- if (!o)
139
+ const n = e.getAttribute(a);
140
+ if (!n)
156
141
  return null;
157
- const i = parseInt(o);
142
+ const i = parseInt(n);
158
143
  return Number.isNaN(i) ? null : i;
159
144
  }
160
145
  /**
@@ -163,19 +148,19 @@ class q extends B {
163
148
  _getBlockElement(t) {
164
149
  if ("getAttribute" in t) {
165
150
  const e = t.getAttribute("class");
166
- if (e && e.includes(a))
151
+ if (e && e.includes(c))
167
152
  return t;
168
153
  }
169
- return "querySelector" in t ? t.querySelector(`.${a}`) : null;
154
+ return "querySelector" in t ? t.querySelector(`.${c}`) : null;
170
155
  }
171
156
  /**
172
157
  * Migrate configuration from legacy format
173
158
  */
174
159
  _migrateFromLegacy(t) {
175
- c.migrateFromDataAttributes(this.api, t);
160
+ s.migrateFromDataAttributes(this.api, t);
176
161
  }
177
162
  }
178
163
  export {
179
- f as BLOCK_ID,
180
- q as RecommendationBlock
164
+ p as BLOCK_ID,
165
+ T as RecommendationBlock
181
166
  };
@@ -1,4 +1,4 @@
1
- var b = /* @__PURE__ */ ((r) => (r.BUTTON = "recommendation-block-button", r.NAME = "recommendation-block-name", r.PRICE = "recommendation-block-price", r.OLD_PRICE = "recommendation-block-old-price", r.OMNIBUS_PRICE = "recommendation-block-omnibus-price", r.OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount", r.IMAGE = "recommendation-block-image", r))(b || {});
1
+ var b = /* @__PURE__ */ ((r) => (r.BUTTON = "recommendation-block-button", r.NAME = "recommendation-block-name", r.PRICE = "recommendation-block-price", r.OLD_PRICE = "recommendation-block-old-price", r.OMNIBUS_PRICE = "recommendation-block-omnibus-price", r.OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount", r.IMAGE = "recommendation-block-image", r.CUSTOM_ATTRIBUTE = "recommendation-block-custom-attribute", r))(b || {});
2
2
  export {
3
3
  b as RecommendationBlockId
4
4
  };
@@ -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.SYNC_INFO_MESSAGE = "recommendation-block-sync-info-message", 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))(o || {});
2
2
  export {
3
3
  o as RecommendationControlId
4
4
  };
@@ -1,71 +1,69 @@
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 = {
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 = {
4
4
  code: "USD",
5
5
  symbol: "USD",
6
6
  alignment: "after",
7
7
  decimalCount: 2,
8
8
  decimalSeparator: ".",
9
9
  thousandSeparator: ","
10
- }, D = {
10
+ }, A = {
11
11
  textBefore: "",
12
12
  textAfter: ""
13
- }, A = {
13
+ }, s = {
14
14
  textBefore: "",
15
15
  textAfter: ""
16
- }, a = [
16
+ }, E = [
17
17
  _,
18
- e,
18
+ o,
19
19
  t,
20
+ e,
20
21
  T,
21
- r,
22
22
  I,
23
- n
24
- ], E = {
23
+ r
24
+ ], c = {
25
25
  [_]: !0,
26
+ [o]: !0,
26
27
  [e]: !0,
27
- [T]: !0,
28
28
  [t]: !0,
29
- [r]: !1,
29
+ [T]: !1,
30
30
  [I]: !1,
31
- [n]: !0
32
- }, l = {
31
+ [r]: !0
32
+ }, N = {
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: O,
39
+ currency: i,
40
40
  filters: [],
41
41
  // Layout
42
42
  layout: "grid",
43
- cardsInRow: C,
44
- mobileCardsInRow: o,
45
- mobileLayoutEnabled: !1,
46
- previousMobileCardsInRow: o,
47
- columnSpacing: s,
48
- rowSpacing: i,
49
- mobileColumnSpacing: U,
50
- mobileRowSpacing: R,
43
+ cardsInRow: D,
44
+ mobileCardsInRow: C,
45
+ columnSpacing: O,
46
+ rowSpacing: n,
47
+ mobileColumnSpacing: R,
48
+ mobileRowSpacing: U,
51
49
  // Composition
52
- composition: a,
53
- visibility: E,
50
+ composition: E,
51
+ visibility: c,
54
52
  // Element settings
55
- omnibusPrice: D,
56
- omnibusDiscount: A,
53
+ omnibusPrice: A,
54
+ omnibusDiscount: s,
57
55
  textTrimming: !1,
58
56
  // Meta
59
57
  configVersion: 1,
60
58
  recommendationId: 0
61
- }, N = [11, 12], m = 1;
59
+ }, m = [11, 12], L = 1;
62
60
  export {
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
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
71
69
  };
@@ -1,23 +1,26 @@
1
- const c = ".recommendation-block-v2", n = ".ins-recommendation-product-container", o = ".ins-recommendation-desktop-container", T = ".ins-recommendation-mobile-container", t = ".ins-recommendation-mobile-row", r = {
1
+ const T = ".recommendation-block-v2", c = ".ins-recommendation-product-container", o = ".ins-recommendation-desktop-container", t = ".ins-recommendation-mobile-container", n = ".ins-recommendation-mobile-row", R = {
2
2
  CURRENCY: "currency",
3
3
  SYMBOL: "currency-symbol",
4
4
  ALIGNMENT: "currency-alignment",
5
5
  THOUSAND_SEPARATOR: "currency-thousand-separator",
6
6
  DECIMAL_SEPARATOR: "currency-decimal-separator",
7
7
  DECIMAL_COUNT: "currency-decimal-count"
8
- }, R = "productImage", O = "productName", e = "productPrice", _ = "productOldPrice", E = "productOmnibusPrice", C = "productOmnibusDiscount", s = "productButton";
8
+ }, r = "productImage", O = "productName", _ = "productPrice", e = "productOldPrice", s = "productOmnibusPrice", C = "productOmnibusDiscount", E = "productButton", A = "customAttr:", i = "data-custom-attributes", u = "product-attr";
9
9
  export {
10
- s as ATTR_PRODUCT_BUTTON,
11
- R as ATTR_PRODUCT_IMAGE,
10
+ A as ATTR_CUSTOM_PREFIX,
11
+ i as ATTR_DATA_CUSTOM_ATTRIBUTES,
12
+ u as ATTR_PRODUCT_ATTR,
13
+ E as ATTR_PRODUCT_BUTTON,
14
+ r as ATTR_PRODUCT_IMAGE,
12
15
  O as ATTR_PRODUCT_NAME,
13
- _ as ATTR_PRODUCT_OLD_PRICE,
16
+ e as ATTR_PRODUCT_OLD_PRICE,
14
17
  C as ATTR_PRODUCT_OMNIBUS_DISCOUNT,
15
- E as ATTR_PRODUCT_OMNIBUS_PRICE,
16
- e as ATTR_PRODUCT_PRICE,
17
- c as BLOCK_ROOT_SELECTOR,
18
- n as CONTAINER_SELECTOR,
19
- r as CURRENCY_ATTR,
18
+ s as ATTR_PRODUCT_OMNIBUS_PRICE,
19
+ _ as ATTR_PRODUCT_PRICE,
20
+ T as BLOCK_ROOT_SELECTOR,
21
+ c as CONTAINER_SELECTOR,
22
+ R as CURRENCY_ATTR,
20
23
  o as DESKTOP_CONTAINER_SELECTOR,
21
- T as MOBILE_CONTAINER_SELECTOR,
22
- t as MOBILE_ROW_SELECTOR
24
+ t as MOBILE_CONTAINER_SELECTOR,
25
+ n as MOBILE_ROW_SELECTOR
23
26
  };
@@ -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 i = "recommendation-card-background-color-control", e = {
4
+ const u = "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 i = "recommendation-card-background-color-control", e = {
9
9
  };
10
10
  class _ extends s {
11
11
  getId() {
12
- return i;
12
+ return u;
13
13
  }
14
14
  getTemplate() {
15
15
  return `
16
16
  <div class="card-bg-control-container">
17
17
  ${this._GuTwoColumns([
18
- this._GuLabel({ text: this.api.translate("Card Background Color") }),
18
+ this._GuLabel({ text: "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
- i as CARD_BACKGROUND_COLOR_CONTROL_ID,
78
+ u as CARD_BACKGROUND_COLOR_CONTROL_ID,
79
79
  _ as CardBackgroundColorControl
80
80
  };