@useinsider/guido 3.7.2-beta.0bf502c → 3.7.2-beta.13c9a35

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 (41) hide show
  1. package/dist/@types/config/schemas.js +70 -66
  2. package/dist/composables/usePreviewMode.js +15 -14
  3. package/dist/composables/useRecommendationPreview.js +100 -0
  4. package/dist/composables/useStripo.js +54 -68
  5. package/dist/config/compiler/utils/recommendationCompilerUtils.js +90 -82
  6. package/dist/config/i18n/en/toasters.json.js +0 -1
  7. package/dist/config/migrator/recommendation/htmlBuilder.js +59 -58
  8. package/dist/config/migrator/recommendation/settingsMapper.js +38 -33
  9. package/dist/extensions/Blocks/Recommendation/block.js +60 -41
  10. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +41 -32
  11. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +369 -288
  12. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +96 -84
  13. package/dist/extensions/Blocks/Recommendation/controls/main/pricePlacement.js +133 -0
  14. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +82 -80
  15. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +21 -7
  16. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +64 -4
  17. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +7 -5
  18. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +101 -72
  19. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +31 -30
  20. package/dist/extensions/Blocks/Recommendation/templates/index.js +9 -7
  21. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +74 -59
  22. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +21 -21
  23. package/dist/extensions/Blocks/Recommendation/templates/utils.js +88 -57
  24. package/dist/src/@types/config/schemas.d.ts +16 -0
  25. package/dist/src/composables/useConfig.d.ts +4 -0
  26. package/dist/src/composables/useRecommendationPreview.d.ts +10 -0
  27. package/dist/src/config/migrator/recommendation/settingsMapper.d.ts +1 -1
  28. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +10 -0
  29. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +29 -3
  30. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +1 -1
  31. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +3 -1
  32. package/dist/src/extensions/Blocks/Recommendation/controls/main/pricePlacement.d.ts +59 -0
  33. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +2 -0
  34. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +16 -0
  35. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +4 -4
  36. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +13 -0
  37. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +3 -2
  38. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +33 -1
  39. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +15 -0
  40. package/dist/src/stores/config.d.ts +36 -0
  41. package/package.json +1 -1
@@ -1,151 +1,159 @@
1
- import { useConfig as g } from "../../../composables/useConfig.js";
2
- import { useRecommendation as _ } from "../../../composables/useRecommendation.js";
1
+ import { useConfig as _ } from "../../../composables/useConfig.js";
2
+ import { useRecommendation as g } from "../../../composables/useRecommendation.js";
3
3
  import { CSS_CLASS_RECO_BUTTON as q } from "../../../extensions/Blocks/Recommendation/constants/selectors.js";
4
4
  import { useRecommendationExtensionStore as C } from "../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
- function y(r, n, e, o, i = "") {
6
- const c = `{{${i}${r}_${n}_${e}}}`, t = `{{${i}${r}_${n}_currency}}`;
7
- return o === "before" ? `${t} ${c}` : `${c} ${t}`;
5
+ function b(r, n, t, o, s = "") {
6
+ const c = `{{${s}${r}_${n}_${t}}}`, e = `{{${s}${r}_${n}_currency}}`;
7
+ return o === "before" ? `${e} ${c}` : `${c} ${e}`;
8
8
  }
9
- function A(r) {
9
+ function f(r) {
10
10
  let n = r;
11
11
  for (; n.children.length === 1; )
12
12
  [n] = n.children;
13
13
  return n;
14
14
  }
15
- function f(r, n, e, o, i, c) {
15
+ function h(r, n, t, o, s, c) {
16
16
  switch (n) {
17
17
  case "productImage": {
18
- const t = r.querySelector("img");
19
- t && (t.setAttribute("src", `{{${c}${e}_${o}_image_url}}`), t.setAttribute("alt", `{{${c}${e}_${o}_name}}`));
20
- const s = r.querySelector("a");
21
- s && (s.setAttribute("href", `{{${c}${e}_${o}_url}}`), s.classList.add(q));
18
+ const e = r.querySelector("img");
19
+ e && (e.setAttribute("src", `{{${c}${t}_${o}_image_url}}`), e.setAttribute("alt", `{{${c}${t}_${o}_name}}`));
20
+ const i = r.querySelector("a");
21
+ i && (i.setAttribute("href", `{{${c}${t}_${o}_url}}`), i.classList.add(q));
22
22
  break;
23
23
  }
24
24
  case "productName": {
25
- const t = r.querySelector("p");
26
- if (t) {
27
- const s = t.querySelector("strong") || t;
28
- s.textContent = `{{${c}${e}_${o}_name}}`;
25
+ const e = r.querySelector("p");
26
+ if (e) {
27
+ const i = e.querySelector("strong") || e;
28
+ i.textContent = `{{${c}${t}_${o}_name}}`;
29
29
  }
30
30
  break;
31
31
  }
32
32
  case "productPrice": {
33
- const t = r.querySelector("p");
34
- t && (A(t).textContent = y(
35
- e,
33
+ const e = r.querySelector(".product-price p") ?? r.querySelector("p");
34
+ e && (f(e).textContent = b(
35
+ t,
36
36
  o,
37
37
  "price",
38
- i,
38
+ s,
39
+ c
40
+ ));
41
+ const i = r.querySelector(".product-old-price p");
42
+ i && (f(i).textContent = b(
43
+ t,
44
+ o,
45
+ "original_price",
46
+ s,
39
47
  c
40
48
  ));
41
49
  break;
42
50
  }
43
51
  case "productOldPrice": {
44
- const t = r.querySelector("p");
45
- t && (A(t).textContent = y(
46
- e,
52
+ const e = r.querySelector("p");
53
+ e && (f(e).textContent = b(
54
+ t,
47
55
  o,
48
56
  "original_price",
49
- i,
57
+ s,
50
58
  c
51
- ), t.setAttribute("product-attr", "discount"));
59
+ ));
52
60
  break;
53
61
  }
54
62
  case "productButton": {
55
- const t = r.querySelector("a");
56
- t && t.setAttribute("href", `{{${c}${e}_${o}_url}}`);
63
+ const e = r.querySelector("a");
64
+ e && e.setAttribute("href", `{{${c}${t}_${o}_url}}`);
57
65
  break;
58
66
  }
59
67
  case "productOmnibusPrice": {
60
- const t = r.querySelector(".omnibus-price-value");
61
- if (t) {
62
- t.textContent = `{{${c}${e}_${o}_omnibus_price}}`;
63
- const s = t.closest("p");
64
- s && (s.setAttribute("product-attr", "omnibus_price"), s.setAttribute("composition", "true"));
68
+ const e = r.querySelector(".omnibus-price-value");
69
+ if (e) {
70
+ e.textContent = `{{${c}${t}_${o}_omnibus_price}}`;
71
+ const i = e.closest("p");
72
+ i && (i.setAttribute("product-attr", "omnibus_price"), i.setAttribute("composition", "true"));
65
73
  }
66
74
  break;
67
75
  }
68
76
  case "productOmnibusDiscount": {
69
- const t = r.querySelector(".omnibus-discount-value");
70
- if (t) {
71
- t.textContent = `{{${c}${e}_${o}_omnibus_discount}}`;
72
- const s = t.closest("p");
73
- s && (s.setAttribute("product-attr", "omnibus_discount"), s.setAttribute("composition", "true"));
77
+ const e = r.querySelector(".omnibus-discount-value");
78
+ if (e) {
79
+ e.textContent = `{{${c}${t}_${o}_omnibus_discount}}`;
80
+ const i = e.closest("p");
81
+ i && (i.setAttribute("product-attr", "omnibus_discount"), i.setAttribute("composition", "true"));
74
82
  }
75
83
  break;
76
84
  }
77
85
  default: {
78
- const t = r.getAttribute("product-attr") ? r : r.querySelector("[product-attr]");
79
- if (t) {
80
- const s = t.getAttribute("product-attr"), a = t.querySelector("p");
86
+ const e = r.getAttribute("product-attr") ? r : r.querySelector("[product-attr]");
87
+ if (e) {
88
+ const i = e.getAttribute("product-attr"), a = e.querySelector("p");
81
89
  if (a) {
82
90
  const u = a.querySelector("strong") || a;
83
- u.textContent = `{{${c}${e}_${o}_${s}}}`;
91
+ u.textContent = `{{${c}${t}_${o}_${i}}}`;
84
92
  }
85
93
  }
86
94
  break;
87
95
  }
88
96
  }
89
97
  }
90
- function w(r, n, e, o) {
91
- r.querySelectorAll(".recommendation-product-row").forEach((c, t) => {
98
+ function w(r, n, t, o) {
99
+ r.querySelectorAll(".recommendation-product-row").forEach((c, e) => {
92
100
  c.querySelectorAll("[data-attribute-type]").forEach((a) => {
93
101
  const u = a.getAttribute("data-attribute-type") || "", p = a.querySelectorAll(".attribute-cell");
94
102
  p.length > 0 ? p.forEach((l) => {
95
- f(l, u, n, t, e, o);
96
- }) : f(a, u, n, t, e, o);
103
+ h(l, u, n, e, t, o);
104
+ }) : h(a, u, n, e, t, o);
97
105
  });
98
106
  });
99
107
  }
100
- function E(r, n, e, o) {
101
- const i = r.querySelectorAll(".recommendation-product-row");
102
- if (!i.length)
108
+ function E(r, n, t, o) {
109
+ const s = r.querySelectorAll(".recommendation-product-row");
110
+ if (!s.length)
103
111
  return;
104
- const [c] = i, t = c.querySelector("[data-attribute-type]"), s = t ? t.querySelectorAll(".attribute-cell").length : 1;
105
- i.forEach((a, u) => {
112
+ const [c] = s, e = c.querySelector("[data-attribute-type]"), i = e ? e.querySelectorAll(".attribute-cell").length : 1;
113
+ s.forEach((a, u) => {
106
114
  a.querySelectorAll("[data-attribute-type]").forEach((l) => {
107
115
  const d = l.getAttribute("data-attribute-type") || "";
108
- l.querySelectorAll(".attribute-cell").forEach((h, $) => {
109
- const S = u * s + $;
110
- f(h, d, n, S, e, o);
116
+ l.querySelectorAll(".attribute-cell").forEach((A, $) => {
117
+ const S = u * i + $;
118
+ h(A, d, n, S, t, o);
111
119
  });
112
120
  });
113
121
  });
114
122
  }
115
- function R(r, n, e, o) {
123
+ function P(r, n, t, o) {
116
124
  r.querySelectorAll(".ins-recommendation-product-container").forEach((c) => {
117
- E(c, n, e, o);
125
+ E(c, n, t, o);
118
126
  });
119
127
  }
120
- function P(r, n, e) {
121
- const o = r.getAttribute("data-layout") || "grid", i = r.getAttribute("currency-alignment") || "after";
122
- o === "list" ? w(r, n, i, e) : R(r, n, i, e);
128
+ function R(r, n, t) {
129
+ const o = r.getAttribute("data-layout") || "grid", s = r.getAttribute("currency-alignment") || "after";
130
+ o === "list" ? w(r, n, s, t) : P(r, n, s, t);
123
131
  }
124
- function b(r, n, e) {
125
- const o = new RegExp(`${n}\\s*:\\s*(\\d+)\\s*px`, "i"), i = r.match(o);
126
- return i ? parseInt(i[1]) : e;
132
+ function y(r, n, t) {
133
+ const o = new RegExp(`${n}\\s*:\\s*(\\d+)\\s*px`, "i"), s = r.match(o);
134
+ return s ? parseInt(s[1]) : t;
127
135
  }
128
- function T(r, n) {
129
- let e = r.parentElement;
130
- for (; e && e !== n; ) {
131
- if (e.tagName === "TD") {
132
- const o = e.getAttribute("width");
136
+ function O(r, n) {
137
+ let t = r.parentElement;
138
+ for (; t && t !== n; ) {
139
+ if (t.tagName === "TD") {
140
+ const o = t.getAttribute("width");
133
141
  if (o && o.endsWith("%") && parseFloat(o) < 100)
134
- return e;
142
+ return t;
135
143
  }
136
- e = e.parentElement;
144
+ t = t.parentElement;
137
145
  }
138
146
  return null;
139
147
  }
140
- function v(r) {
141
- const n = r.getAttribute("style") || "", e = b(n, "width", 600), o = b(n, "padding", 0) * 2, i = Math.max(0, e - o);
142
- i !== 0 && r.querySelectorAll("img.adapt-img").forEach((c) => {
148
+ function T(r) {
149
+ const n = r.getAttribute("style") || "", t = y(n, "width", 600), o = y(n, "padding", 0) * 2, s = Math.max(0, t - o);
150
+ s !== 0 && r.querySelectorAll("img.adapt-img").forEach((c) => {
143
151
  if (c.hasAttribute("width"))
144
152
  return;
145
- const t = T(c, r);
146
- if (!t)
153
+ const e = O(c, r);
154
+ if (!e)
147
155
  return;
148
- const s = t.getAttribute("width"), a = parseFloat(s), u = b(t.getAttribute("style") || "", "padding", 0) * 2, p = Math.floor(i * a / 100), l = Math.max(1, p - u);
156
+ const i = e.getAttribute("width"), a = parseFloat(i), u = y(e.getAttribute("style") || "", "padding", 0) * 2, p = Math.floor(s * a / 100), l = Math.max(1, p - u);
149
157
  c.setAttribute("width", String(l));
150
158
  const d = c.getAttribute("style") || "";
151
159
  if (!/\bwidth\s*:\s*\d/i.test(d)) {
@@ -154,25 +162,25 @@ function v(r) {
154
162
  }
155
163
  });
156
164
  }
157
- function O(r, n) {
158
- const e = r.match(/<!DOCTYPE[^>]*>/i);
159
- return (e ? `${e[0]}
165
+ function v(r, n) {
166
+ const t = r.match(/<!DOCTYPE[^>]*>/i);
167
+ return (t ? `${t[0]}
160
168
  ` : "") + n.documentElement.outerHTML;
161
169
  }
162
170
  function N(r) {
163
- const n = r.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), e = new DOMParser().parseFromString(n, "text/html"), o = e.querySelectorAll(".recommendation-block-v2");
171
+ const n = r.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), t = new DOMParser().parseFromString(n, "text/html"), o = t.querySelectorAll(".recommendation-block-v2");
164
172
  if (!o.length)
165
173
  return r;
166
- const { buildCampaignUrl: i } = _(), c = C();
174
+ const { buildCampaignUrl: s } = g(), c = C();
167
175
  c.recommendationCampaignUrls = {};
168
- const { isFeatureEnabled: t } = g(), s = t("liquidSyntax") ? "reco_" : "";
176
+ const { isFeatureEnabled: e } = _(), i = e("liquidSyntax") ? "reco_" : "";
169
177
  return o.forEach((u) => {
170
178
  var l, d;
171
179
  const p = u.getAttribute("recommendation-id");
172
- p && ((l = u.parentNode) == null || l.insertBefore(e.createComment("REC_START"), u), (d = u.parentNode) == null || d.insertBefore(e.createComment("REC_END"), u.nextSibling), u.querySelectorAll('[data-visibility="0"]').forEach((m) => m.remove()), i(p), P(u, p, s), v(u));
173
- }), O(n, e).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
180
+ p && ((l = u.parentNode) == null || l.insertBefore(t.createComment("REC_START"), u), (d = u.parentNode) == null || d.insertBefore(t.createComment("REC_END"), u.nextSibling), u.querySelectorAll('[data-visibility="0"]').forEach((m) => m.remove()), s(p), R(u, p, i), T(u));
181
+ }), v(n, t).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
174
182
  }
175
183
  export {
176
- y as formatPriceVariable,
184
+ b as formatPriceVariable,
177
185
  N as prepareRecommendationBlocks
178
186
  };
@@ -1,5 +1,4 @@
1
1
  const e = "Your version has been restored successfully.", o = "Restore Image", t = "Cancel", a = {
2
- "Reload page": "Reload page",
3
2
  "The image has been deleted.": "The image has been deleted successfully.",
4
3
  "Aim for the drop zone!": "Drag and drop your image inside the upload area to continue.",
5
4
  "Image processing": "The image upload is in progress. This may take some time.",
@@ -35,11 +35,11 @@ function O(t, o) {
35
35
  function lt(t, o, e, l) {
36
36
  const s = t.width ? ` width="${t.width}"` : "", n = t.height ? ` height="${t.height}"` : "", i = ["display: block", "max-width: 100%", "height: auto"];
37
37
  t.width && i.push(`width: ${t.width}px`), t.height && i.push(`height: ${t.height}px`);
38
- const a = i.join("; "), r = e ? ` style="background-color: ${c(e)}"` : "";
38
+ const r = i.join("; "), a = e ? ` style="background-color: ${c(e)}"` : "";
39
39
  return `
40
40
  ${O(l, 'valign="top" style="padding: 0 5px; height: 100%"')}>
41
41
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
42
- class="product-card-segment"${r}>
42
+ class="product-card-segment"${a}>
43
43
  <tbody>
44
44
  <tr valign="top">
45
45
  <td align="center"
@@ -48,7 +48,7 @@ function lt(t, o, e, l) {
48
48
  <a target="_blank" href="https://example.com/product/${o + 1}">
49
49
  <img src="${Y}" alt="Product Name"
50
50
  class="adapt-img"${s}${n}
51
- style="${a}">
51
+ style="${r}">
52
52
  </a>
53
53
  </td>
54
54
  </tr>
@@ -57,12 +57,12 @@ function lt(t, o, e, l) {
57
57
  </td>
58
58
  `;
59
59
  }
60
- function L(t, o, e, l, s, n, i) {
61
- const r = `table-layout: fixed${n ? `; background-color: ${c(n)}` : ""}`, d = b(s.tdStyle), p = y(s.align), u = `esd-block-text ${o}`.trim(), m = $(l, s.pStyle);
60
+ function D(t, o, e, l, s, n, i) {
61
+ const a = `table-layout: fixed${n ? `; background-color: ${c(n)}` : ""}`, d = b(s.tdStyle), p = y(s.align), u = `esd-block-text ${o}`.trim(), m = $(l, s.pStyle);
62
62
  return `
63
63
  ${O(i, 'valign="top" style="padding: 0 5px; height: 100%"')}>
64
64
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
65
- class="product-card-segment" style="${r}">
65
+ class="product-card-segment" style="${a}">
66
66
  <tbody>
67
67
  <tr valign="top">
68
68
  <td${p}
@@ -77,7 +77,7 @@ function L(t, o, e, l, s, n, i) {
77
77
  `;
78
78
  }
79
79
  function st(t, o, e, l) {
80
- const s = o ? ` style="background-color: ${c(o)}"` : "", n = b(t.tdStyle), i = y(t.align), r = $("font-size: 14px; color: #999999", t.pStyle);
80
+ const s = o ? ` style="background-color: ${c(o)}"` : "", n = b(t.tdStyle), i = y(t.align), a = $("font-size: 14px; color: #999999", t.pStyle);
81
81
  return `
82
82
  ${O(e, 'valign="top" style="padding: 0 5px; height: 100%"')}>
83
83
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
@@ -87,7 +87,7 @@ function st(t, o, e, l) {
87
87
  <td${i}
88
88
  class="esd-block-text product-old-price es-p15l es-p15r"
89
89
  esd-extension-block-id="${g.OLD_PRICE}"${n}>
90
- <p contenteditable="false"${b(r)}>
90
+ <p contenteditable="false"${b(a)}>
91
91
  <s>${k(l, t)}</s>
92
92
  </p>
93
93
  </td>
@@ -97,18 +97,18 @@ function st(t, o, e, l) {
97
97
  </td>
98
98
  `;
99
99
  }
100
- function D(t, o, e, l, s, n, i) {
101
- const a = s ? `; background-color: ${c(s)}` : "", r = b(l.tdStyle), d = y(l.align), u = $("font-size: 12px; color: #666666", l.pStyle);
100
+ function L(t, o, e, l, s, n, i) {
101
+ const r = s ? `; background-color: ${c(s)}` : "", a = b(l.tdStyle), d = y(l.align), u = $("font-size: 12px; color: #666666", l.pStyle);
102
102
  return `
103
103
  ${O(i, 'valign="top" style="padding: 0 5px; height: 100%"')}>
104
104
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
105
- class="product-card-segment" style="table-layout: fixed${a}">
105
+ class="product-card-segment" style="table-layout: fixed${r}">
106
106
  <tbody>
107
107
  <tr valign="top">
108
108
  <td${d}
109
109
  data-text-before="" data-text-after=""
110
110
  class="esd-block-text ${n} es-p15l es-p15r"
111
- esd-extension-block-id="${t}"${r}>
111
+ esd-extension-block-id="${t}"${a}>
112
112
  <p contenteditable="false"${b(u)}>
113
113
  <span class="omnibus-text-before"></span>
114
114
  <span class="${o}">${c(e)}</span>
@@ -122,7 +122,7 @@ function D(t, o, e, l, s, n, i) {
122
122
  `;
123
123
  }
124
124
  function it(t, o, e, l) {
125
- const s = e ? ` style="background-color: ${c(e)}"` : "", n = $("padding: 0 5px; height: 100%", o.tdStyle), i = y(o.align), a = o.text || J, r = $(X, o.spanStyle), d = $(K, o.aStyle);
125
+ const s = e ? ` style="background-color: ${c(e)}"` : "", n = $("padding: 0 5px; height: 100%", o.tdStyle), i = y(o.align), r = o.text || J, a = $(X, o.spanStyle), d = $(K, o.aStyle);
126
126
  return `
127
127
  ${O(l, `valign="top" style="${c(n)}"`)}>
128
128
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
@@ -132,10 +132,10 @@ function it(t, o, e, l) {
132
132
  <td${i}
133
133
  class="esd-block-button product-button es-p10t es-p10b es-p5l es-p5r"
134
134
  esd-extension-block-id="${g.BUTTON}">
135
- <span class="es-button-border" style="${c(r)}">
135
+ <span class="es-button-border" style="${c(a)}">
136
136
  <a href="https://example.com/product/${t + 1}" target="_blank"
137
137
  class="es-button ${z}"
138
- style="${c(d)}">${c(a)}</a>
138
+ style="${c(d)}">${c(r)}</a>
139
139
  </span>
140
140
  </td>
141
141
  </tr>
@@ -145,14 +145,14 @@ function it(t, o, e, l) {
145
145
  `;
146
146
  }
147
147
  function ct(t, o, e, l, s) {
148
- const n = l ? `; background-color: ${c(l)}` : "", i = b(e.tdStyle), a = y(e.align), d = $("font-size: 12px; color: #666666; margin: 0", e.pStyle), p = o.replace(/_/g, " ").replace(/\b\w/g, (u) => u.toUpperCase());
148
+ const n = l ? `; background-color: ${c(l)}` : "", i = b(e.tdStyle), r = y(e.align), d = $("font-size: 12px; color: #666666; margin: 0", e.pStyle), p = o.replace(/_/g, " ").replace(/\b\w/g, (u) => u.toUpperCase());
149
149
  return `
150
150
  ${O(s, 'valign="middle" style="padding: 0 5px; height: 100%"')}>
151
151
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
152
152
  class="product-card-segment" style="table-layout: fixed${n}">
153
153
  <tbody>
154
154
  <tr valign="top">
155
- <td product-attr="${c(t)}"${a}
155
+ <td product-attr="${c(t)}"${r}
156
156
  class="esd-block-text product-custom-attribute es-p0t es-p0b es-p15l es-p15r"
157
157
  esd-extension-block-id="${g.CUSTOM_ATTRIBUTE}"${i}>
158
158
  <p contenteditable="false"${b(d)}>${c(p)}</p>
@@ -163,54 +163,54 @@ function ct(t, o, e, l, s) {
163
163
  </td>
164
164
  `;
165
165
  }
166
- function at(t, o, e, l, s, n, i) {
167
- const a = o[t], r = a ?? _();
166
+ function rt(t, o, e, l, s, n, i) {
167
+ const r = o[t], a = r ?? _();
168
168
  switch (t) {
169
169
  case I:
170
170
  return lt(
171
- a ?? {},
171
+ r ?? {},
172
172
  s,
173
173
  l,
174
174
  n
175
175
  );
176
176
  case G:
177
- return L(
177
+ return D(
178
178
  g.NAME,
179
179
  "product-name es-p10t es-p10b es-p15l es-p15r",
180
180
  "Product Name",
181
181
  "font-size: 16px; color: #333333",
182
- r,
182
+ a,
183
183
  l,
184
184
  n
185
185
  );
186
186
  case H:
187
- return L(
187
+ return D(
188
188
  g.PRICE,
189
189
  "product-price es-p15l es-p15r",
190
190
  i.pricePlaceholder,
191
191
  "font-size: 16px; color: #333333",
192
- q(a),
192
+ q(r),
193
193
  l,
194
194
  n
195
195
  );
196
196
  case j:
197
- return st(r, l, n, i.oldPricePlaceholder);
197
+ return st(a, l, n, i.oldPricePlaceholder);
198
198
  case U:
199
- return D(
199
+ return L(
200
200
  g.OMNIBUS_PRICE,
201
201
  "omnibus-price-value",
202
202
  i.omnibusPricePlaceholder,
203
- r,
203
+ a,
204
204
  l,
205
205
  "product-omnibus-price",
206
206
  n
207
207
  );
208
208
  case V:
209
- return D(
209
+ return L(
210
210
  g.OMNIBUS_DISCOUNT,
211
211
  "omnibus-discount-value",
212
212
  "-10%",
213
- r,
213
+ a,
214
214
  l,
215
215
  "product-omnibus-discount",
216
216
  n
@@ -218,14 +218,14 @@ function at(t, o, e, l, s, n, i) {
218
218
  case N:
219
219
  return it(
220
220
  s,
221
- a ?? {},
221
+ r ?? {},
222
222
  l,
223
223
  n
224
224
  );
225
225
  default:
226
226
  if (t.startsWith(E)) {
227
227
  const d = e[t] ?? t.slice(E.length), p = t.slice(E.length);
228
- return ct(d, p, r, l, n);
228
+ return ct(d, p, a, l, n);
229
229
  }
230
230
  return null;
231
231
  }
@@ -235,7 +235,7 @@ const Q = `
235
235
  <td class="spacer" style="height: 10px"></td>
236
236
  </tr>
237
237
  `;
238
- function rt(t) {
238
+ function at(t) {
239
239
  return {
240
240
  pricePlaceholder: v({ price: 18, currency: t }),
241
241
  oldPricePlaceholder: v({ price: 20, currency: t }),
@@ -243,7 +243,7 @@ function rt(t) {
243
243
  };
244
244
  }
245
245
  function dt(t, o, e, l) {
246
- const { composition: s, visibility: n, perElement: i, customAttrValues: a, cardBg: r } = l, d = (100 / e).toFixed(2), p = e - o, u = `<td class="${F}" style="padding: 0 5px;" width="${d}%"></td>`, m = p > 0 ? u.repeat(p) : "";
246
+ const { composition: s, visibility: n, perElement: i, customAttrValues: r, cardBg: a } = l, d = (100 / e).toFixed(2), p = e - o, u = `<td class="${F}" style="padding: 0 5px;" width="${d}%"></td>`, m = p > 0 ? u.repeat(p) : "";
247
247
  return `
248
248
  <tr class="recommendation-product-row">
249
249
  <td>
@@ -252,11 +252,11 @@ function dt(t, o, e, l) {
252
252
  <tbody>${s.map((T) => {
253
253
  const w = n[T] !== !1, f = w ? "" : ' style="display: none"', C = w ? "1" : "0", S = [];
254
254
  for (let x = 0; x < o; x += 1) {
255
- const A = at(
255
+ const A = rt(
256
256
  T,
257
257
  i,
258
- a,
259
258
  r,
259
+ a,
260
260
  t + x,
261
261
  d,
262
262
  l
@@ -287,60 +287,60 @@ function pt(t, o, e) {
287
287
  function ut(t, o, e, l) {
288
288
  const s = o[t];
289
289
  if (t === G) {
290
- const n = s ?? _(), i = $("font-size: 16px; color: #333333; margin: 0", n.pStyle), a = y(n.align ?? "left");
290
+ const n = s ?? _(), i = $("font-size: 16px; color: #333333; margin: 0", n.pStyle), r = y(n.align ?? "left");
291
291
  return `
292
292
  <td class="esd-block-text product-name"
293
- esd-extension-block-id="${g.NAME}"${a}${b(n.tdStyle)}>
293
+ esd-extension-block-id="${g.NAME}"${r}${b(n.tdStyle)}>
294
294
  <p contenteditable="false"${b(i)}>${k("Product Name", n)}</p>
295
295
  </td>
296
296
  `;
297
297
  }
298
298
  if (t === H) {
299
- const n = q(s), i = $("font-size: 16px; color: #333333; margin: 0", n.pStyle), a = y(n.align ?? "left");
299
+ const n = q(s), i = $("font-size: 16px; color: #333333; margin: 0", n.pStyle), r = y(n.align ?? "left");
300
300
  return `
301
301
  <td class="esd-block-text product-price"
302
- esd-extension-block-id="${g.PRICE}"${a}${b(n.tdStyle)}>
302
+ esd-extension-block-id="${g.PRICE}"${r}${b(n.tdStyle)}>
303
303
  <p contenteditable="false"${b(i)}>${k(l.pricePlaceholder, n)}</p>
304
304
  </td>
305
305
  `;
306
306
  }
307
307
  if (t === j) {
308
- const n = s ?? _(), a = $("font-size: 14px; color: #999999; text-decoration: line-through; margin: 0", n.pStyle), r = y(n.align ?? "left");
308
+ const n = s ?? _(), r = $("font-size: 14px; color: #999999; text-decoration: line-through; margin: 0", n.pStyle), a = y(n.align ?? "left");
309
309
  return `
310
310
  <td class="esd-block-text product-old-price"
311
- esd-extension-block-id="${g.OLD_PRICE}"${r}${b(n.tdStyle)}>
312
- <p contenteditable="false"${b(a)}><s>${k(l.oldPricePlaceholder, n)}</s></p>
311
+ esd-extension-block-id="${g.OLD_PRICE}"${a}${b(n.tdStyle)}>
312
+ <p contenteditable="false"${b(r)}><s>${k(l.oldPricePlaceholder, n)}</s></p>
313
313
  </td>
314
314
  `;
315
315
  }
316
316
  if (t === U || t === V) {
317
- const n = t === U, i = n ? g.OMNIBUS_PRICE : g.OMNIBUS_DISCOUNT, a = n ? "omnibus-price-value" : "omnibus-discount-value", r = n ? l.omnibusPricePlaceholder : "-10%", d = n ? "product-omnibus-price" : "product-omnibus-discount", p = s ?? _(), u = $("font-size: 12px; color: #666666; margin: 0", p.pStyle), m = y(p.align ?? "left");
317
+ const n = t === U, i = n ? g.OMNIBUS_PRICE : g.OMNIBUS_DISCOUNT, r = n ? "omnibus-price-value" : "omnibus-discount-value", a = n ? l.omnibusPricePlaceholder : "-10%", d = n ? "product-omnibus-price" : "product-omnibus-discount", p = s ?? _(), u = $("font-size: 12px; color: #666666; margin: 0", p.pStyle), m = y(p.align ?? "left");
318
318
  return `
319
319
  <td class="esd-block-text ${d}"
320
320
  data-text-before="" data-text-after=""
321
321
  esd-extension-block-id="${i}"${m}${b(p.tdStyle)}>
322
322
  <p contenteditable="false"${b(u)}>
323
323
  <span class="omnibus-text-before"></span>
324
- <span class="${a}">${c(r)}</span>
324
+ <span class="${r}">${c(a)}</span>
325
325
  <span class="omnibus-text-after"></span>
326
326
  </p>
327
327
  </td>
328
328
  `;
329
329
  }
330
330
  if (t.startsWith(E)) {
331
- const n = s ?? _(), i = e[t] ?? t.slice(E.length), r = t.slice(E.length).replace(/_/g, " ").replace(/\b\w/g, (m) => m.toUpperCase()), d = $("font-size: 12px; color: #666666; margin: 0", n.pStyle), p = y(n.align ?? "left"), u = g.CUSTOM_ATTRIBUTE;
331
+ const n = s ?? _(), i = e[t] ?? t.slice(E.length), a = t.slice(E.length).replace(/_/g, " ").replace(/\b\w/g, (m) => m.toUpperCase()), d = $("font-size: 12px; color: #666666; margin: 0", n.pStyle), p = y(n.align ?? "left"), u = g.CUSTOM_ATTRIBUTE;
332
332
  return `
333
333
  <td product-attr="${c(i)}"
334
334
  class="esd-block-text product-custom-attribute"
335
335
  esd-extension-block-id="${u}"${p}${b(n.tdStyle)}>
336
- <p contenteditable="false"${b(d)}>${c(r)}</p>
336
+ <p contenteditable="false"${b(d)}>${c(a)}</p>
337
337
  </td>
338
338
  `;
339
339
  }
340
340
  return null;
341
341
  }
342
342
  function bt(t, o) {
343
- const { composition: e, visibility: l, perElement: s, customAttrValues: n, cardBg: i } = o, a = i ? `background-color: ${c(i)}` : "", r = a ? `style="table-layout: fixed; ${a}"` : 'style="table-layout: fixed"', d = s[I] ?? {}, p = l[I] !== !1, u = d.width ? ` width="${d.width}"` : "", m = p ? "" : ' style="display: none"', h = `
343
+ const { composition: e, visibility: l, perElement: s, customAttrValues: n, cardBg: i } = o, r = i ? `background-color: ${c(i)}` : "", a = r ? `style="table-layout: fixed; ${r}"` : 'style="table-layout: fixed"', d = s[I] ?? {}, p = l[I] !== !1, u = d.width ? ` width="${d.width}"` : "", m = p ? "" : ' style="display: none"', h = `
344
344
  <td width="120"
345
345
  class="esd-block-image product-image-cell recommendation-attribute-row es-p5"
346
346
  esd-extension-block-id="${g.IMAGE}"
@@ -384,7 +384,7 @@ function bt(t, o) {
384
384
  <tr class="recommendation-product-row">
385
385
  <td style="padding: 0 5px">
386
386
  <table width="100%" cellpadding="0" cellspacing="0" border="0"
387
- class="product-card-wrapper" ${r}>
387
+ class="product-card-wrapper" ${a}>
388
388
  <tbody>
389
389
  <tr>${h}${w}${W}</tr>
390
390
  </tbody>
@@ -400,13 +400,13 @@ function gt(t, o) {
400
400
  return e.join("");
401
401
  }
402
402
  function mt(t, o) {
403
- var r, d, p, u, m, h;
403
+ var a, d, p, u, m, h;
404
404
  const e = t == null ? void 0 : t.theme, l = [];
405
- (r = e == null ? void 0 : e.textStyle) != null && r["font-family"] && l.push(`font-family: ${e.textStyle["font-family"]}`), l.push(`font-size: ${((d = e == null ? void 0 : e.textStyle) == null ? void 0 : d["font-size"]) ?? "28px"}`), l.push(`color: ${((p = e == null ? void 0 : e.textColor) == null ? void 0 : p.color) ?? "#333333"}`), (u = e == null ? void 0 : e.textStyle) != null && u["font-weight"] && l.push(`font-weight: ${e.textStyle["font-weight"]}`), (m = e == null ? void 0 : e.textStyle) != null && m["font-style"] && l.push(`font-style: ${e.textStyle["font-style"]}`);
406
- const s = l.join("; "), n = ((h = e == null ? void 0 : e.textStyle) == null ? void 0 : h["font-weight"]) !== "normal", i = c(o), a = n ? `<strong>${i}</strong>` : i;
405
+ (a = e == null ? void 0 : e.textStyle) != null && a["font-family"] && l.push(`font-family: ${e.textStyle["font-family"]}`), l.push(`font-size: ${((d = e == null ? void 0 : e.textStyle) == null ? void 0 : d["font-size"]) ?? "28px"}`), l.push(`color: ${((p = e == null ? void 0 : e.textColor) == null ? void 0 : p.color) ?? "#333333"}`), (u = e == null ? void 0 : e.textStyle) != null && u["font-weight"] && l.push(`font-weight: ${e.textStyle["font-weight"]}`), (m = e == null ? void 0 : e.textStyle) != null && m["font-style"] && l.push(`font-style: ${e.textStyle["font-style"]}`);
406
+ const s = l.join("; "), n = ((h = e == null ? void 0 : e.textStyle) == null ? void 0 : h["font-weight"]) !== "normal", i = c(o), r = n ? `<strong>${i}</strong>` : i;
407
407
  return `
408
408
  <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r" align="center">
409
- <p${b(s)}>${a}</p>
409
+ <p${b(s)}>${r}</p>
410
410
  </td>
411
411
  `;
412
412
  }
@@ -422,15 +422,15 @@ function Tt(t) {
422
422
  titleText: s,
423
423
  extraClasses: n = "",
424
424
  legacyId: i,
425
- legacyBgColor: a
426
- } = t, r = parseInt(o.size) || 6, d = o.layout === "list" ? ' data-layout="list"' : "", p = o.layout === "list" ? " es-m-p0 ins-recommendation-list-layout" : "", u = {
425
+ legacyBgColor: r
426
+ } = t, a = parseInt(o.size) || 6, d = o.layout === "list" ? ' data-layout="list"' : "", p = o.layout === "list" ? " es-m-p0 ins-recommendation-list-layout" : "", u = {
427
427
  composition: e.composition,
428
428
  visibility: e.visibility,
429
429
  perElement: e.perElementStyles,
430
430
  customAttrValues: e.customAttrValues,
431
431
  cardBg: l,
432
- ...rt(o.currency)
433
- }, m = o.layout === "list" ? gt(r, u) : pt(r, o.cardsInRow, u), h = mt(e.titleVariable, s), T = e.composition.join(","), w = JSON.stringify(e.customAttributes), f = [
432
+ ...at(o.currency)
433
+ }, m = o.layout === "list" ? gt(a, u) : pt(a, o.cardsInRow, u), h = mt(e.titleVariable, s), T = e.composition.join(","), w = JSON.stringify(e.customAttributes), f = [
434
434
  "recommendation-block-v2",
435
435
  "esd-block-recommendation-v3-block",
436
436
  `es-p20${p}`,
@@ -443,7 +443,7 @@ function Tt(t) {
443
443
  "esd-container-frame",
444
444
  "ins-recommendation-no-mobile-layout",
445
445
  n
446
- ].filter(Boolean).join(" "), C = $t(o.currency), S = ` esd-ext-config="${c(JSON.stringify(o))}"`, x = i ? ` id="${c(i)}"` : "", A = a ? ` bgcolor="${c(a)}"` : "";
446
+ ].filter(Boolean).join(" "), C = $t(o.currency), S = ` esd-ext-config="${c(JSON.stringify(o))}"`, x = i ? ` id="${c(i)}"` : "", A = r ? ` bgcolor="${c(r)}"` : "";
447
447
  return nt(`
448
448
  <td align="left"
449
449
  esd-extension-block-id="recommendation-block"
@@ -455,7 +455,8 @@ function Tt(t) {
455
455
  data-column-spacing="${o.columnSpacing}"
456
456
  data-row-spacing="${o.rowSpacing}"
457
457
  data-mobile-column-spacing="${o.mobileColumnSpacing}"
458
- data-mobile-row-spacing="${o.mobileRowSpacing}"${d}${S}>
458
+ data-mobile-row-spacing="${o.mobileRowSpacing}"
459
+ hide-price="${o.priceHideIfSameAsDiscounted}"${d}${S}>
459
460
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
460
461
  <tbody>
461
462
  <tr>