@useinsider/guido 3.22.0-beta.e1b5da2 → 3.22.0-beta.e9b6f94
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.
- package/README.md +35 -4
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +118 -108
- package/dist/composables/useEditorOpenMetrics.js +167 -0
- package/dist/composables/useStripo.js +93 -82
- package/dist/config/compiler/utils/recommendationCompilerUtils.js +22 -22
- package/dist/config/migrator/recommendation/compositionMapper.js +49 -56
- package/dist/config/migrator/recommendation/extractors.js +40 -100
- package/dist/config/migrator/recommendation/htmlBuilder.js +207 -285
- package/dist/config/migrator/recommendation/settingsMapper.js +36 -37
- package/dist/config/migrator/recommendation/themeMapper.js +41 -53
- package/dist/config/migrator/recommendationMigrator.js +61 -68
- package/dist/config/migrator/unsubscribeMigrator.js +60 -87
- package/dist/extensions/Blocks/Recommendation/block.js +24 -33
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +19 -20
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +163 -148
- package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +22 -23
- package/dist/extensions/Blocks/Recommendation/templates/list/template.js +18 -19
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +91 -82
- package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMap.js +2 -3
- package/dist/guido.css +1 -1
- package/dist/library.js +12 -10
- package/dist/package.json.js +6 -4
- package/dist/public/prefetchRuntime.js +4 -0
- package/dist/src/composables/useEditorOpenMetrics.d.ts +27 -0
- package/dist/src/composables/useStripo.d.ts +2 -1
- package/dist/src/config/migrator/recommendation/compositionMapper.d.ts +1 -3
- package/dist/src/config/migrator/recommendation/extractors.d.ts +6 -35
- package/dist/src/config/migrator/recommendation/htmlBuilder.d.ts +1 -3
- package/dist/src/config/migrator/recommendation/themeMapper.d.ts +1 -3
- package/dist/src/config/migrator/recommendation/types.d.ts +1 -11
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +8 -2
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +13 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +19 -2
- package/dist/src/library.d.ts +1 -0
- package/dist/src/public/prefetchRuntime.d.ts +1 -0
- package/dist/src/utils/runtimePrefetch.d.ts +4 -0
- package/dist/src/utils/stripoRuntime.d.ts +3 -0
- package/dist/static/stripo-runtime-manifest.json.js +9 -0
- package/dist/utils/runtimePrefetch.js +26 -0
- package/dist/utils/stripoRuntime.js +13 -0
- package/package.json +6 -1
- package/dist/extensions/Blocks/Recommendation/utils/inlinePriceOrder.js +0 -12
- package/dist/src/extensions/Blocks/Recommendation/utils/inlinePriceOrder.d.ts +0 -9
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { RecommendationBlockId as g } from "../../../extensions/Blocks/Recommendation/constants/blockIds.js";
|
|
2
|
-
import { CSS_CLASS_SKIP_COMPILE as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { compositionKeyToProductAttr as W, bareAttributeName as tt } from "../../../extensions/Blocks/Recommendation/utils/compositionKeys.js";
|
|
7
|
-
import { resolveInlinePriceOrder as gt } from "../../../extensions/Blocks/Recommendation/utils/inlinePriceOrder.js";
|
|
8
|
-
import { formatPrice as V } from "../../../extensions/Blocks/Recommendation/utils/priceFormatter.js";
|
|
2
|
+
import { CSS_CLASS_SKIP_COMPILE as st, ATTR_RECOMMENDATION_TITLE as lt, CURRENCY_ATTR as R, ATTR_PRODUCT_IMAGE as I, ATTR_PRODUCT_BUTTON as O, CSS_CLASS_RECO_BUTTON as H, ATTR_PRODUCT_NAME as j, ATTR_PRODUCT_PRICE as V, ATTR_PRODUCT_OLD_PRICE as Y, ATTR_PRODUCT_OMNIBUS_PRICE as M, ATTR_PRODUCT_OMNIBUS_DISCOUNT as F, ATTR_CUSTOM_PREFIX as K } from "../../../extensions/Blocks/Recommendation/constants/selectors.js";
|
|
3
|
+
import { buildTitleRows as it } from "../../../extensions/Blocks/Recommendation/templates/titleRows.js";
|
|
4
|
+
import { compositionKeyToProductAttr as J, bareAttributeName as X } from "../../../extensions/Blocks/Recommendation/utils/compositionKeys.js";
|
|
5
|
+
import { formatPrice as B } from "../../../extensions/Blocks/Recommendation/utils/priceFormatter.js";
|
|
9
6
|
import { escapeHtml as r } from "../../../utils/htmlEscape.js";
|
|
10
|
-
import { appendStyle as
|
|
11
|
-
const
|
|
12
|
-
function
|
|
7
|
+
import { appendStyle as $ } from "./themeMapper.js";
|
|
8
|
+
const q = "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png", Q = "attribute-cell", Z = "Buy", W = "border-width: 1px; background: rgb(217, 234, 211); border-color: rgb(106, 168, 79)", tt = "color: rgb(56, 118, 29); background: rgb(217, 234, 211); font-family: arial, 'helvetica neue', helvetica, sans-serif; font-size: 16px; font-weight: normal; line-height: 120%; mso-border-alt: 10px solid rgb(217, 234, 211); mso-padding-alt: 0", rt = "ins-recommendation-product-container ins-recommendation-desktop-container";
|
|
9
|
+
function ct(t) {
|
|
13
10
|
return t.replace(/>\s+</g, "><").trim();
|
|
14
11
|
}
|
|
15
12
|
function f(t) {
|
|
16
13
|
return t ? ` align="${r(t)}"` : ' align="center"';
|
|
17
14
|
}
|
|
18
|
-
function
|
|
15
|
+
function _() {
|
|
19
16
|
return {
|
|
20
17
|
tdStyle: "",
|
|
21
18
|
pStyle: "",
|
|
@@ -24,28 +21,25 @@ function P() {
|
|
|
24
21
|
textTrimming: !1
|
|
25
22
|
};
|
|
26
23
|
}
|
|
27
|
-
function
|
|
28
|
-
return t ? { ...t, wrapBold: !0 } : { ...
|
|
24
|
+
function et(t) {
|
|
25
|
+
return t ? { ...t, wrapBold: !0 } : { ..._(), wrapBold: !0 };
|
|
29
26
|
}
|
|
30
|
-
function
|
|
31
|
-
let
|
|
32
|
-
return
|
|
27
|
+
function N(t, o) {
|
|
28
|
+
let e = r(t);
|
|
29
|
+
return o.wrapBold && o.wrapItalic ? e = `<strong><em>${e}</em></strong>` : o.wrapBold ? e = `<strong>${e}</strong>` : o.wrapItalic && (e = `<em>${e}</em>`), e;
|
|
33
30
|
}
|
|
34
31
|
function u(t) {
|
|
35
32
|
return t ? ` style="${r(t)}"` : "";
|
|
36
33
|
}
|
|
37
|
-
function
|
|
38
|
-
return
|
|
34
|
+
function P(t, o) {
|
|
35
|
+
return `<td width="${t}%" class="${Q}" ${o}`;
|
|
39
36
|
}
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
function St(t, e, o, n) {
|
|
44
|
-
const s = t.width ? ` width="${t.width}"` : "", l = t.height ? ` height="${t.height}"` : "", i = ["display: block", "max-width: 100%", "height: auto"];
|
|
37
|
+
function at(t, o, e, s) {
|
|
38
|
+
const l = t.width ? ` width="${t.width}"` : "", n = t.height ? ` height="${t.height}"` : "", i = ["display: block", "max-width: 100%", "height: auto"];
|
|
45
39
|
t.width && i.push(`width: ${t.width}px`), t.height && i.push(`height: ${t.height}px`);
|
|
46
|
-
const c = i.join("; "), a =
|
|
40
|
+
const c = i.join("; "), a = e ? ` style="background-color: ${r(e)}"` : "";
|
|
47
41
|
return `
|
|
48
|
-
${
|
|
42
|
+
${P(s, 'valign="top" style="padding: 0 5px; height: 100%"')}>
|
|
49
43
|
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
50
44
|
class="product-card-segment"${a}>
|
|
51
45
|
<tbody>
|
|
@@ -53,9 +47,9 @@ function St(t, e, o, n) {
|
|
|
53
47
|
<td align="center"
|
|
54
48
|
class="esd-block-image product-image es-p5"
|
|
55
49
|
esd-extension-block-id="${g.IMAGE}">
|
|
56
|
-
<a target="_blank" href="https://example.com/product/${
|
|
57
|
-
<img src="${
|
|
58
|
-
class="adapt-img"${
|
|
50
|
+
<a target="_blank" href="https://example.com/product/${o + 1}">
|
|
51
|
+
<img src="${q}" alt="Product Name"
|
|
52
|
+
class="adapt-img"${l}${n}
|
|
59
53
|
style="${c}">
|
|
60
54
|
</a>
|
|
61
55
|
</td>
|
|
@@ -65,18 +59,18 @@ function St(t, e, o, n) {
|
|
|
65
59
|
</td>
|
|
66
60
|
`;
|
|
67
61
|
}
|
|
68
|
-
function
|
|
69
|
-
const a = `table-layout: fixed${
|
|
62
|
+
function G(t, o, e, s, l, n, i) {
|
|
63
|
+
const a = `table-layout: fixed${n ? `; background-color: ${r(n)}` : ""}`, d = u(l.tdStyle), p = f(l.align), b = `esd-block-text ${o}`.trim(), m = $(s, l.pStyle);
|
|
70
64
|
return `
|
|
71
|
-
${
|
|
65
|
+
${P(i, 'valign="top" style="padding: 0 5px; height: 100%"')}>
|
|
72
66
|
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
73
67
|
class="product-card-segment" style="${a}">
|
|
74
68
|
<tbody>
|
|
75
69
|
<tr valign="top">
|
|
76
|
-
<td${
|
|
70
|
+
<td${p}
|
|
77
71
|
class="${b}"
|
|
78
|
-
esd-extension-block-id="${t}"${
|
|
79
|
-
<p contenteditable="false"${u(
|
|
72
|
+
esd-extension-block-id="${t}"${d}>
|
|
73
|
+
<p contenteditable="false"${u(m)}>${N(e, l)}</p>
|
|
80
74
|
</td>
|
|
81
75
|
</tr>
|
|
82
76
|
</tbody>
|
|
@@ -84,19 +78,19 @@ function F(t, e, o, n, s, l, i) {
|
|
|
84
78
|
</td>
|
|
85
79
|
`;
|
|
86
80
|
}
|
|
87
|
-
function
|
|
88
|
-
const
|
|
81
|
+
function dt(t, o, e, s) {
|
|
82
|
+
const l = o ? ` style="background-color: ${r(o)}"` : "", n = u(t.tdStyle), i = f(t.align), a = $("font-size: 14px; color: #999999", t.pStyle);
|
|
89
83
|
return `
|
|
90
|
-
${
|
|
84
|
+
${P(e, 'valign="top" style="padding: 0 5px; height: 100%"')}>
|
|
91
85
|
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
92
|
-
class="product-card-segment"${
|
|
86
|
+
class="product-card-segment"${l}>
|
|
93
87
|
<tbody>
|
|
94
88
|
<tr valign="top">
|
|
95
89
|
<td${i}
|
|
96
90
|
class="esd-block-text product-old-price es-p15l es-p15r"
|
|
97
|
-
esd-extension-block-id="${g.OLD_PRICE}"${
|
|
98
|
-
<p contenteditable="false"${u(
|
|
99
|
-
<s>${
|
|
91
|
+
esd-extension-block-id="${g.OLD_PRICE}"${n}>
|
|
92
|
+
<p contenteditable="false"${u(a)}>
|
|
93
|
+
<s>${N(s, t)}</s>
|
|
100
94
|
</p>
|
|
101
95
|
</td>
|
|
102
96
|
</tr>
|
|
@@ -105,21 +99,21 @@ function ht(t, e, o, n) {
|
|
|
105
99
|
</td>
|
|
106
100
|
`;
|
|
107
101
|
}
|
|
108
|
-
function
|
|
109
|
-
const c =
|
|
102
|
+
function z(t, o, e, s, l, n, i) {
|
|
103
|
+
const c = l ? `; background-color: ${r(l)}` : "", a = u(s.tdStyle), d = f(s.align), b = $("font-size: 12px; color: #666666", s.pStyle);
|
|
110
104
|
return `
|
|
111
|
-
${
|
|
105
|
+
${P(i, 'valign="top" style="padding: 0 5px; height: 100%"')}>
|
|
112
106
|
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
113
107
|
class="product-card-segment" style="table-layout: fixed${c}">
|
|
114
108
|
<tbody>
|
|
115
109
|
<tr valign="top">
|
|
116
|
-
<td${
|
|
110
|
+
<td${d}
|
|
117
111
|
data-text-before="" data-text-after=""
|
|
118
|
-
class="esd-block-text ${
|
|
112
|
+
class="esd-block-text ${n} es-p15l es-p15r"
|
|
119
113
|
esd-extension-block-id="${t}"${a}>
|
|
120
114
|
<p contenteditable="false"${u(b)}>
|
|
121
115
|
<span class="omnibus-text-before"></span>
|
|
122
|
-
<span class="${
|
|
116
|
+
<span class="${o}">${r(e)}</span>
|
|
123
117
|
<span class="omnibus-text-after"></span>
|
|
124
118
|
</p>
|
|
125
119
|
</td>
|
|
@@ -129,12 +123,12 @@ function K(t, e, o, n, s, l, i) {
|
|
|
129
123
|
</td>
|
|
130
124
|
`;
|
|
131
125
|
}
|
|
132
|
-
function
|
|
133
|
-
const
|
|
126
|
+
function pt(t, o, e, s) {
|
|
127
|
+
const l = e ? ` style="background-color: ${r(e)}"` : "", n = $("padding: 0 5px; height: 100%", o.tdStyle), i = f(o.align), c = o.text || Z, a = $(W, o.spanStyle), d = $(tt, o.aStyle);
|
|
134
128
|
return `
|
|
135
|
-
${
|
|
129
|
+
${P(s, `valign="top" style="${r(n)}"`)}>
|
|
136
130
|
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
137
|
-
class="product-card-segment"${
|
|
131
|
+
class="product-card-segment"${l}>
|
|
138
132
|
<tbody>
|
|
139
133
|
<tr valign="top">
|
|
140
134
|
<td${i}
|
|
@@ -142,8 +136,8 @@ function xt(t, e, o, n) {
|
|
|
142
136
|
esd-extension-block-id="${g.BUTTON}">
|
|
143
137
|
<span class="es-button-border" style="${r(a)}">
|
|
144
138
|
<a href="https://example.com/product/${t + 1}" target="_blank"
|
|
145
|
-
class="es-button ${
|
|
146
|
-
style="${r(
|
|
139
|
+
class="es-button ${H}"
|
|
140
|
+
style="${r(d)}">${r(c)}</a>
|
|
147
141
|
</span>
|
|
148
142
|
</td>
|
|
149
143
|
</tr>
|
|
@@ -152,18 +146,18 @@ function xt(t, e, o, n) {
|
|
|
152
146
|
</td>
|
|
153
147
|
`;
|
|
154
148
|
}
|
|
155
|
-
function
|
|
156
|
-
const
|
|
149
|
+
function ut(t, o, e, s, l) {
|
|
150
|
+
const n = s ? `; background-color: ${r(s)}` : "", i = u(e.tdStyle), c = f(e.align), d = $("font-size: 12px; color: #666666; margin: 0", e.pStyle), p = o.replace(/_/g, " ").replace(/\b\w/g, (b) => b.toUpperCase());
|
|
157
151
|
return `
|
|
158
|
-
${
|
|
152
|
+
${P(l, 'valign="middle" style="padding: 0 5px; height: 100%"')}>
|
|
159
153
|
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
160
|
-
class="product-card-segment" style="table-layout: fixed${
|
|
154
|
+
class="product-card-segment" style="table-layout: fixed${n}">
|
|
161
155
|
<tbody>
|
|
162
156
|
<tr valign="top">
|
|
163
157
|
<td product-attr="${r(t)}"${c}
|
|
164
|
-
class="
|
|
158
|
+
class="esd-block-text product-custom-attribute es-p0t es-p0b es-p15l es-p15r"
|
|
165
159
|
esd-extension-block-id="${g.CUSTOM_ATTRIBUTE}"${i}>
|
|
166
|
-
<p contenteditable="false"${u(
|
|
160
|
+
<p contenteditable="false"${u(d)}>${r(p)}</p>
|
|
167
161
|
</td>
|
|
168
162
|
</tr>
|
|
169
163
|
</tbody>
|
|
@@ -171,155 +165,111 @@ function Ct(t, e, o, n, s) {
|
|
|
171
165
|
</td>
|
|
172
166
|
`;
|
|
173
167
|
}
|
|
174
|
-
function
|
|
175
|
-
const
|
|
176
|
-
<td${f(i.align)} valign="middle"
|
|
177
|
-
class="esd-block-text product-price ${$}"
|
|
178
|
-
esd-extension-block-id="${g.PRICE}"${u(i.tdStyle)}>
|
|
179
|
-
<p contenteditable="false"${u(m(st, i.pStyle))}>${x(n.pricePlaceholder, i)}</p>
|
|
180
|
-
</td>
|
|
181
|
-
`, p = ($) => `
|
|
182
|
-
<td${f(c.align)} valign="middle"
|
|
183
|
-
class="esd-block-text product-old-price ${$}"
|
|
184
|
-
esd-extension-block-id="${g.OLD_PRICE}"${u(c.tdStyle)}>
|
|
185
|
-
<p contenteditable="false"${u(m(j, c.pStyle))}>
|
|
186
|
-
<s>${x(n.oldPricePlaceholder, c)}</s>
|
|
187
|
-
</p>
|
|
188
|
-
</td>
|
|
189
|
-
`, d = s ? p("es-p15l es-p5r") : a("es-p15l es-p5r"), b = s ? a("es-p5l es-p15r") : p("es-p5l es-p15r");
|
|
190
|
-
return `
|
|
191
|
-
${R(o, 'valign="top" style="padding: 0 5px; height: 100%"')}>
|
|
192
|
-
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
193
|
-
class="product-card-segment"${l}>
|
|
194
|
-
<tbody>
|
|
195
|
-
<tr valign="top">
|
|
196
|
-
<td align="center">
|
|
197
|
-
<table cellpadding="0" cellspacing="0" border="0" align="center" style="margin: 0 auto">
|
|
198
|
-
<tbody>
|
|
199
|
-
<tr valign="middle">${d}${b}</tr>
|
|
200
|
-
</tbody>
|
|
201
|
-
</table>
|
|
202
|
-
</td>
|
|
203
|
-
</tr>
|
|
204
|
-
</tbody>
|
|
205
|
-
</table>
|
|
206
|
-
</td>
|
|
207
|
-
`;
|
|
208
|
-
}
|
|
209
|
-
function Pt(t, e, o, n, s, l, i) {
|
|
210
|
-
const c = e[t], a = c ?? P();
|
|
211
|
-
if (i.inlinePrice && t === i.inlinePrice.anchor)
|
|
212
|
-
return Tt(e, n, l, i, i.inlinePrice.originalFirst);
|
|
168
|
+
function bt(t, o, e, s, l, n, i) {
|
|
169
|
+
const c = o[t], a = c ?? _();
|
|
213
170
|
switch (t) {
|
|
214
|
-
case
|
|
215
|
-
return
|
|
171
|
+
case I:
|
|
172
|
+
return at(
|
|
216
173
|
c ?? {},
|
|
174
|
+
l,
|
|
217
175
|
s,
|
|
218
|
-
n
|
|
219
|
-
l
|
|
176
|
+
n
|
|
220
177
|
);
|
|
221
|
-
case
|
|
222
|
-
return
|
|
178
|
+
case j:
|
|
179
|
+
return G(
|
|
223
180
|
g.NAME,
|
|
224
|
-
|
|
181
|
+
"product-name es-p10t es-p10b es-p15l es-p15r",
|
|
225
182
|
"Product Name",
|
|
226
183
|
"font-size: 16px; color: #333333",
|
|
227
184
|
a,
|
|
228
|
-
|
|
229
|
-
|
|
185
|
+
s,
|
|
186
|
+
n
|
|
230
187
|
);
|
|
231
|
-
case
|
|
232
|
-
return
|
|
188
|
+
case V:
|
|
189
|
+
return G(
|
|
233
190
|
g.PRICE,
|
|
234
191
|
"product-price es-p15l es-p15r",
|
|
235
192
|
i.pricePlaceholder,
|
|
236
193
|
"font-size: 16px; color: #333333",
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
194
|
+
et(c),
|
|
195
|
+
s,
|
|
196
|
+
n
|
|
240
197
|
);
|
|
241
|
-
case
|
|
242
|
-
return
|
|
243
|
-
case
|
|
244
|
-
return
|
|
198
|
+
case Y:
|
|
199
|
+
return dt(a, s, n, i.oldPricePlaceholder);
|
|
200
|
+
case M:
|
|
201
|
+
return z(
|
|
245
202
|
g.OMNIBUS_PRICE,
|
|
246
203
|
"omnibus-price-value",
|
|
247
204
|
i.omnibusPricePlaceholder,
|
|
248
205
|
a,
|
|
249
|
-
|
|
206
|
+
s,
|
|
250
207
|
"product-omnibus-price",
|
|
251
|
-
|
|
208
|
+
n
|
|
252
209
|
);
|
|
253
|
-
case
|
|
254
|
-
return
|
|
210
|
+
case F:
|
|
211
|
+
return z(
|
|
255
212
|
g.OMNIBUS_DISCOUNT,
|
|
256
213
|
"omnibus-discount-value",
|
|
257
214
|
"-10%",
|
|
258
215
|
a,
|
|
259
|
-
|
|
216
|
+
s,
|
|
260
217
|
"product-omnibus-discount",
|
|
261
|
-
|
|
218
|
+
n
|
|
262
219
|
);
|
|
263
|
-
case
|
|
264
|
-
return
|
|
265
|
-
|
|
220
|
+
case O:
|
|
221
|
+
return pt(
|
|
222
|
+
l,
|
|
266
223
|
c ?? {},
|
|
267
|
-
|
|
268
|
-
|
|
224
|
+
s,
|
|
225
|
+
n
|
|
269
226
|
);
|
|
270
227
|
default:
|
|
271
|
-
if (t.startsWith(
|
|
272
|
-
const
|
|
273
|
-
return
|
|
228
|
+
if (t.startsWith(K)) {
|
|
229
|
+
const d = e[t] ?? J(t), p = X(d);
|
|
230
|
+
return ut(d, p, a, s, n);
|
|
274
231
|
}
|
|
275
232
|
return null;
|
|
276
233
|
}
|
|
277
234
|
}
|
|
278
|
-
const
|
|
235
|
+
const ot = `
|
|
279
236
|
<tr>
|
|
280
237
|
<td class="spacer" style="height: 10px"></td>
|
|
281
238
|
</tr>
|
|
282
239
|
`;
|
|
283
|
-
function
|
|
240
|
+
function gt(t) {
|
|
284
241
|
return {
|
|
285
|
-
pricePlaceholder:
|
|
286
|
-
oldPricePlaceholder:
|
|
287
|
-
omnibusPricePlaceholder:
|
|
242
|
+
pricePlaceholder: B({ price: 18, currency: t }),
|
|
243
|
+
oldPricePlaceholder: B({ price: 20, currency: t }),
|
|
244
|
+
omnibusPricePlaceholder: B({ price: 20, currency: t })
|
|
288
245
|
};
|
|
289
246
|
}
|
|
290
|
-
function
|
|
291
|
-
const n =
|
|
292
|
-
return t || !n || !l ? null : gt(e);
|
|
293
|
-
}
|
|
294
|
-
function _t(t, e, o, n) {
|
|
295
|
-
const { composition: s, visibility: l, perElement: i, customAttrValues: c, cardBg: a } = n, p = (100 / o).toFixed(2), d = o - e, b = `<td class="${ot}" style="padding: 0 5px;" width="${p}%"></td>`, $ = d > 0 ? b.repeat(d) : "";
|
|
247
|
+
function mt(t, o, e, s) {
|
|
248
|
+
const { composition: l, visibility: n, perElement: i, customAttrValues: c, cardBg: a } = s, d = (100 / e).toFixed(2), p = e - o, b = `<td class="${Q}" style="padding: 0 5px;" width="${d}%"></td>`, m = p > 0 ? b.repeat(p) : "";
|
|
296
249
|
return `
|
|
297
250
|
<tr class="recommendation-product-row">
|
|
298
251
|
<td>
|
|
299
252
|
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"
|
|
300
253
|
class="product-card-wrapper" style="table-layout: fixed">
|
|
301
|
-
<tbody>${
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
for (let _ = 0; _ < e; _ += 1) {
|
|
307
|
-
const E = Pt(
|
|
308
|
-
C,
|
|
254
|
+
<tbody>${l.map((w) => {
|
|
255
|
+
const C = n[w] !== !1, S = C ? "" : ' style="display: none"', A = C ? "1" : "0", x = [];
|
|
256
|
+
for (let T = 0; T < o; T += 1) {
|
|
257
|
+
const E = bt(
|
|
258
|
+
w,
|
|
309
259
|
i,
|
|
310
260
|
c,
|
|
311
261
|
a,
|
|
312
|
-
t +
|
|
313
|
-
|
|
314
|
-
|
|
262
|
+
t + T,
|
|
263
|
+
d,
|
|
264
|
+
s
|
|
315
265
|
);
|
|
316
|
-
E &&
|
|
266
|
+
E && x.push(E);
|
|
317
267
|
}
|
|
318
|
-
return
|
|
268
|
+
return x.length === 0 ? "" : `
|
|
319
269
|
<tr class="recommendation-attribute-row"
|
|
320
|
-
data-attribute-type="${r(
|
|
321
|
-
data-visibility="${
|
|
322
|
-
${
|
|
270
|
+
data-attribute-type="${r(w)}"
|
|
271
|
+
data-visibility="${A}"${S}>
|
|
272
|
+
${x.join("")}${m}
|
|
323
273
|
</tr>
|
|
324
274
|
`;
|
|
325
275
|
}).filter(Boolean).join("")}</tbody>
|
|
@@ -328,67 +278,49 @@ function _t(t, e, o, n) {
|
|
|
328
278
|
</tr>
|
|
329
279
|
`;
|
|
330
280
|
}
|
|
331
|
-
function
|
|
332
|
-
const
|
|
333
|
-
for (let
|
|
334
|
-
const
|
|
335
|
-
|
|
281
|
+
function $t(t, o, e) {
|
|
282
|
+
const s = [];
|
|
283
|
+
for (let l = 0; l < t; l += o) {
|
|
284
|
+
const n = Math.min(o, t - l);
|
|
285
|
+
l > 0 && s.push(ot), s.push(mt(l, n, o, e));
|
|
336
286
|
}
|
|
337
|
-
return
|
|
338
|
-
}
|
|
339
|
-
function Rt(t, e, o) {
|
|
340
|
-
const n = G(t[v]), s = t[k] ?? P(), l = (c) => `
|
|
341
|
-
<td class="esd-block-text product-price" esd-extension-block-id="${g.PRICE}"
|
|
342
|
-
${f(n.align ?? "left")} valign="middle"
|
|
343
|
-
${u(m(`width: auto${c}`, n.tdStyle))}>
|
|
344
|
-
<p contenteditable="false"${u(m(`${st}; margin: 0`, n.pStyle))}>${x(e.pricePlaceholder, n)}</p>
|
|
345
|
-
</td>
|
|
346
|
-
`, i = (c) => `
|
|
347
|
-
<td class="esd-block-text product-old-price" esd-extension-block-id="${g.OLD_PRICE}"
|
|
348
|
-
${f(s.align ?? "left")} valign="middle"
|
|
349
|
-
${u(m(`width: auto${c}`, s.tdStyle))}>
|
|
350
|
-
<p contenteditable="false"${u(m(ct, s.pStyle))}>${`<s>${x(e.oldPricePlaceholder, s)}</s>`}</p>
|
|
351
|
-
</td>
|
|
352
|
-
`;
|
|
353
|
-
return o ? i("; padding-right: 8px") + l("") : l("; padding-right: 8px") + i("");
|
|
287
|
+
return s.join("");
|
|
354
288
|
}
|
|
355
|
-
function
|
|
356
|
-
const
|
|
357
|
-
if (
|
|
358
|
-
|
|
359
|
-
if (t === q) {
|
|
360
|
-
const l = s ?? P(), i = m("font-size: 16px; color: #333333; margin: 0", l.pStyle), c = f(l.align ?? "left");
|
|
289
|
+
function ft(t, o, e, s) {
|
|
290
|
+
const l = o[t];
|
|
291
|
+
if (t === j) {
|
|
292
|
+
const n = l ?? _(), i = $("font-size: 16px; color: #333333; margin: 0", n.pStyle), c = f(n.align ?? "left");
|
|
361
293
|
return `
|
|
362
|
-
<td class="esd-block-text product-name
|
|
363
|
-
esd-extension-block-id="${g.NAME}"${c}${u(
|
|
364
|
-
<p contenteditable="false"${u(i)}>${
|
|
294
|
+
<td class="esd-block-text product-name"
|
|
295
|
+
esd-extension-block-id="${g.NAME}"${c}${u(n.tdStyle)}>
|
|
296
|
+
<p contenteditable="false"${u(i)}>${N("Product Name", n)}</p>
|
|
365
297
|
</td>
|
|
366
298
|
`;
|
|
367
299
|
}
|
|
368
|
-
if (t ===
|
|
369
|
-
const
|
|
300
|
+
if (t === V) {
|
|
301
|
+
const n = et(l), i = $("font-size: 16px; color: #333333; margin: 0", n.pStyle), c = f(n.align ?? "left");
|
|
370
302
|
return `
|
|
371
303
|
<td class="esd-block-text product-price"
|
|
372
|
-
esd-extension-block-id="${g.PRICE}"${c}${u(
|
|
373
|
-
<p contenteditable="false"${u(i)}>${
|
|
304
|
+
esd-extension-block-id="${g.PRICE}"${c}${u(n.tdStyle)}>
|
|
305
|
+
<p contenteditable="false"${u(i)}>${N(s.pricePlaceholder, n)}</p>
|
|
374
306
|
</td>
|
|
375
307
|
`;
|
|
376
308
|
}
|
|
377
|
-
if (t ===
|
|
378
|
-
const
|
|
309
|
+
if (t === Y) {
|
|
310
|
+
const n = l ?? _(), c = $("font-size: 14px; color: #999999; text-decoration: line-through; margin: 0", n.pStyle), a = f(n.align ?? "left");
|
|
379
311
|
return `
|
|
380
312
|
<td class="esd-block-text product-old-price"
|
|
381
|
-
esd-extension-block-id="${g.OLD_PRICE}"${
|
|
382
|
-
<p contenteditable="false"${u(
|
|
313
|
+
esd-extension-block-id="${g.OLD_PRICE}"${a}${u(n.tdStyle)}>
|
|
314
|
+
<p contenteditable="false"${u(c)}><s>${N(s.oldPricePlaceholder, n)}</s></p>
|
|
383
315
|
</td>
|
|
384
316
|
`;
|
|
385
317
|
}
|
|
386
|
-
if (t ===
|
|
387
|
-
const
|
|
318
|
+
if (t === M || t === F) {
|
|
319
|
+
const n = t === M, i = n ? g.OMNIBUS_PRICE : g.OMNIBUS_DISCOUNT, c = n ? "omnibus-price-value" : "omnibus-discount-value", a = n ? s.omnibusPricePlaceholder : "-10%", d = n ? "product-omnibus-price" : "product-omnibus-discount", p = l ?? _(), b = $("font-size: 12px; color: #666666; margin: 0", p.pStyle), m = f(p.align ?? "left");
|
|
388
320
|
return `
|
|
389
|
-
<td class="esd-block-text ${
|
|
321
|
+
<td class="esd-block-text ${d}"
|
|
390
322
|
data-text-before="" data-text-after=""
|
|
391
|
-
esd-extension-block-id="${i}"${
|
|
323
|
+
esd-extension-block-id="${i}"${m}${u(p.tdStyle)}>
|
|
392
324
|
<p contenteditable="false"${u(b)}>
|
|
393
325
|
<span class="omnibus-text-before"></span>
|
|
394
326
|
<span class="${c}">${r(a)}</span>
|
|
@@ -397,59 +329,56 @@ function It(t, e, o, n) {
|
|
|
397
329
|
</td>
|
|
398
330
|
`;
|
|
399
331
|
}
|
|
400
|
-
if (t.startsWith(
|
|
401
|
-
const
|
|
332
|
+
if (t.startsWith(K)) {
|
|
333
|
+
const n = l ?? _(), i = e[t] ?? J(t), a = X(i).replace(/_/g, " ").replace(/\b\w/g, (m) => m.toUpperCase()), d = $("font-size: 12px; color: #666666; margin: 0", n.pStyle), p = f(n.align ?? "left"), b = g.CUSTOM_ATTRIBUTE;
|
|
402
334
|
return `
|
|
403
335
|
<td product-attr="${r(i)}"
|
|
404
|
-
class="esd-block-text product-custom-attribute
|
|
405
|
-
esd-extension-block-id="${b}"${
|
|
406
|
-
<p contenteditable="false"${u(
|
|
336
|
+
class="esd-block-text product-custom-attribute"
|
|
337
|
+
esd-extension-block-id="${b}"${p}${u(n.tdStyle)}>
|
|
338
|
+
<p contenteditable="false"${u(d)}>${r(a)}</p>
|
|
407
339
|
</td>
|
|
408
340
|
`;
|
|
409
341
|
}
|
|
410
342
|
return null;
|
|
411
343
|
}
|
|
412
|
-
function
|
|
413
|
-
const { composition:
|
|
344
|
+
function yt(t, o) {
|
|
345
|
+
const { composition: e, visibility: s, perElement: l, customAttrValues: n, cardBg: i } = o, c = i ? `background-color: ${r(i)}` : "", a = c ? `style="table-layout: fixed; ${c}"` : 'style="table-layout: fixed"', d = l[I] ?? {}, p = s[I] !== !1, b = d.width ? ` width="${d.width}"` : "", m = p ? "" : ' style="display: none"', h = `
|
|
414
346
|
<td width="120"
|
|
415
347
|
class="esd-block-image product-image-cell recommendation-attribute-row es-p5"
|
|
416
348
|
esd-extension-block-id="${g.IMAGE}"
|
|
417
|
-
data-attribute-type="${
|
|
418
|
-
data-visibility="${
|
|
419
|
-
align="center" valign="middle"${
|
|
349
|
+
data-attribute-type="${I}"
|
|
350
|
+
data-visibility="${p ? "1" : "0"}"
|
|
351
|
+
align="center" valign="middle"${m}>
|
|
420
352
|
<a target="_blank" href="https://example.com/product/${t + 1}">
|
|
421
|
-
<img src="${
|
|
353
|
+
<img src="${q}" alt="Product Name"
|
|
422
354
|
class="adapt-img product-image"${b}
|
|
423
355
|
style="display: block; max-width: 100%; height: auto">
|
|
424
356
|
</a>
|
|
425
357
|
</td>
|
|
426
|
-
`,
|
|
358
|
+
`, C = `
|
|
427
359
|
<td class="product-info-cell" valign="middle" style="padding: 15px">
|
|
428
360
|
<table cellpadding="0" cellspacing="0" role="presentation" width="100%"
|
|
429
361
|
style="table-layout: fixed">
|
|
430
|
-
<tbody>${
|
|
431
|
-
|
|
432
|
-
return
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
return M ? `<tr class="recommendation-attribute-row"
|
|
436
|
-
data-attribute-type="${r(S)}"
|
|
437
|
-
data-visibility="${B}"${N}>${M}</tr>` : "";
|
|
362
|
+
<tbody>${e.filter((y) => y !== I && y !== O).map((y) => {
|
|
363
|
+
const v = s[y] !== !1, L = v ? "" : ' style="display: none"', nt = v ? "1" : "0", D = ft(y, l, n, o);
|
|
364
|
+
return D ? `<tr class="recommendation-attribute-row"
|
|
365
|
+
data-attribute-type="${r(y)}"
|
|
366
|
+
data-visibility="${nt}"${L}>${D}</tr>` : "";
|
|
438
367
|
}).filter(Boolean).join(`
|
|
439
368
|
`)}</tbody>
|
|
440
369
|
</table>
|
|
441
370
|
</td>
|
|
442
|
-
`,
|
|
371
|
+
`, S = l[O] ?? {}, A = s[O] !== !1, x = S.text || Z, T = $(W, S.spanStyle ?? ""), E = $(tt, S.aStyle ?? ""), U = A ? "" : ' style="display: none"', k = `
|
|
443
372
|
<td width="100"
|
|
444
373
|
class="esd-block-button button-cell recommendation-attribute-row product-button es-p5l es-p5r"
|
|
445
374
|
esd-extension-block-id="${g.BUTTON}"
|
|
446
|
-
data-attribute-type="${
|
|
447
|
-
data-visibility="${
|
|
448
|
-
align="${r(
|
|
449
|
-
<span class="es-button-border" style="${r(
|
|
375
|
+
data-attribute-type="${O}"
|
|
376
|
+
data-visibility="${A ? "1" : "0"}"
|
|
377
|
+
align="${r(S.align ?? "center")}" valign="middle"${U}>
|
|
378
|
+
<span class="es-button-border" style="${r(T)}">
|
|
450
379
|
<a href="https://example.com/product/${t + 1}" target="_blank"
|
|
451
|
-
class="es-button ${
|
|
452
|
-
style="${r(E)}">${r(
|
|
380
|
+
class="es-button ${H}"
|
|
381
|
+
style="${r(E)}">${r(x)}</a>
|
|
453
382
|
</span>
|
|
454
383
|
</td>
|
|
455
384
|
`;
|
|
@@ -459,71 +388,64 @@ function Et(t, e) {
|
|
|
459
388
|
<table width="100%" cellpadding="0" cellspacing="0" border="0"
|
|
460
389
|
class="product-card-wrapper" ${a}>
|
|
461
390
|
<tbody>
|
|
462
|
-
<tr>${
|
|
391
|
+
<tr>${h}${C}${k}</tr>
|
|
463
392
|
</tbody>
|
|
464
393
|
</table>
|
|
465
394
|
</td>
|
|
466
395
|
</tr>
|
|
467
396
|
`;
|
|
468
397
|
}
|
|
469
|
-
function
|
|
470
|
-
const
|
|
471
|
-
for (let
|
|
472
|
-
|
|
473
|
-
return
|
|
398
|
+
function St(t, o) {
|
|
399
|
+
const e = [];
|
|
400
|
+
for (let s = 0; s < t; s += 1)
|
|
401
|
+
s > 0 && e.push(ot), e.push(yt(s, o));
|
|
402
|
+
return e.join("");
|
|
474
403
|
}
|
|
475
|
-
function
|
|
476
|
-
var a,
|
|
477
|
-
const
|
|
478
|
-
(a =
|
|
479
|
-
const
|
|
480
|
-
return `<p${u(
|
|
404
|
+
function ht(t, o) {
|
|
405
|
+
var a, d, p, b, m, h;
|
|
406
|
+
const e = t == null ? void 0 : t.theme, s = [];
|
|
407
|
+
(a = e == null ? void 0 : e.textStyle) != null && a["font-family"] && s.push(`font-family: ${e.textStyle["font-family"]}`), s.push(`font-size: ${((d = e == null ? void 0 : e.textStyle) == null ? void 0 : d["font-size"]) ?? "28px"}`), s.push(`color: ${((p = e == null ? void 0 : e.textColor) == null ? void 0 : p.color) ?? "#333333"}`), (b = e == null ? void 0 : e.textStyle) != null && b["font-weight"] && s.push(`font-weight: ${e.textStyle["font-weight"]}`), (m = e == null ? void 0 : e.textStyle) != null && m["font-style"] && s.push(`font-style: ${e.textStyle["font-style"]}`);
|
|
408
|
+
const l = s.join("; "), n = ((h = e == null ? void 0 : e.textStyle) == null ? void 0 : h["font-weight"]) !== "normal", i = r(o), c = n ? `<strong>${i}</strong>` : i;
|
|
409
|
+
return `<p${u(l)}>${c}</p>`;
|
|
481
410
|
}
|
|
482
|
-
function
|
|
483
|
-
const
|
|
484
|
-
return ` ${
|
|
411
|
+
function xt(t) {
|
|
412
|
+
const o = t.alignment === "before" ? "0" : "1";
|
|
413
|
+
return ` ${R.CURRENCY}="${r(t.code)}" ${R.SYMBOL}="${r(t.symbol)}" ${R.ALIGNMENT}="${o}" ${R.THOUSAND_SEPARATOR}="${r(t.thousandSeparator)}" ${R.DECIMAL_SEPARATOR}="${r(t.decimalSeparator)}" ${R.DECIMAL_COUNT}="${t.decimalCount}"`;
|
|
485
414
|
}
|
|
486
|
-
function
|
|
415
|
+
function Et(t) {
|
|
487
416
|
const {
|
|
488
|
-
nodeConfig:
|
|
489
|
-
composition:
|
|
490
|
-
cardBg:
|
|
491
|
-
titleText:
|
|
492
|
-
extraClasses:
|
|
417
|
+
nodeConfig: o,
|
|
418
|
+
composition: e,
|
|
419
|
+
cardBg: s,
|
|
420
|
+
titleText: l,
|
|
421
|
+
extraClasses: n = "",
|
|
493
422
|
legacyId: i,
|
|
494
423
|
legacyBgColor: c,
|
|
495
424
|
preserveInnerHtml: a,
|
|
496
|
-
skipCompile:
|
|
497
|
-
|
|
498
|
-
} = t, b = e.layout === "list" ? ' data-layout="list"' : "", $ = e.layout === "list" ? " es-m-p0 ins-recommendation-list-layout" : "", w = o.composition.join(","), C = JSON.stringify(o.customAttributes), y = [
|
|
425
|
+
skipCompile: d = !1
|
|
426
|
+
} = t, p = o.layout === "list" ? ' data-layout="list"' : "", b = o.layout === "list" ? " es-m-p0 ins-recommendation-list-layout" : "", m = e.composition.join(","), h = JSON.stringify(e.customAttributes), w = [
|
|
499
427
|
"recommendation-block-v2",
|
|
500
428
|
"esd-block-recommendation-v3-block",
|
|
501
|
-
|
|
502
|
-
`ins-recommendation-v3-block-${
|
|
429
|
+
`es-p20${b}`,
|
|
430
|
+
`ins-recommendation-v3-block-${o.recommendationId}`,
|
|
503
431
|
// Marker class Stripo's block infrastructure uses to identify recommendation
|
|
504
432
|
// blocks. Without it, certain Styles-panel controls (e.g. button "Fit to
|
|
505
433
|
// Container") are suppressed even though every other selector matches.
|
|
506
434
|
"esd-recommendation-block",
|
|
507
435
|
"esd-extension-block",
|
|
508
436
|
"esd-container-frame",
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
].filter(Boolean).join(" "),
|
|
513
|
-
const
|
|
514
|
-
composition:
|
|
515
|
-
visibility:
|
|
516
|
-
perElement:
|
|
517
|
-
customAttrValues:
|
|
518
|
-
cardBg:
|
|
519
|
-
...
|
|
520
|
-
|
|
521
|
-
e.priceMovedToNextLine,
|
|
522
|
-
o.composition,
|
|
523
|
-
o.visibility
|
|
524
|
-
)
|
|
525
|
-
}, B = e.layout === "list", M = B ? Ot(h, N) : X(h, e.cardsInRow, N), at = e.mobileLayoutEnabled && !B ? `<td><table width="100%" cellpadding="0" cellspacing="0" border="0"
|
|
526
|
-
class="${ft}" style="display: none">${X(h, e.mobileCardsInRow, N)}</table></td>` : "";
|
|
437
|
+
"ins-recommendation-no-mobile-layout",
|
|
438
|
+
d ? st : "",
|
|
439
|
+
n
|
|
440
|
+
].filter(Boolean).join(" "), C = xt(o.currency), S = o.visibility[lt] !== !1, A = ` esd-ext-config="${r(JSON.stringify(o))}"`, x = i ? ` id="${r(i)}"` : "", T = c ? ` bgcolor="${r(c)}"` : "", U = a ?? (() => {
|
|
441
|
+
const k = parseInt(o.size) || 6, y = {
|
|
442
|
+
composition: e.composition,
|
|
443
|
+
visibility: e.visibility,
|
|
444
|
+
perElement: e.perElementStyles,
|
|
445
|
+
customAttrValues: e.customAttrValues,
|
|
446
|
+
cardBg: s,
|
|
447
|
+
...gt(o.currency)
|
|
448
|
+
}, v = o.layout === "list" ? St(k, y) : $t(k, o.cardsInRow, y);
|
|
527
449
|
return `
|
|
528
450
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
529
451
|
<tbody>
|
|
@@ -531,15 +453,15 @@ function Yt(t) {
|
|
|
531
453
|
<td align="center">
|
|
532
454
|
<table class="container" width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
533
455
|
<tbody>
|
|
534
|
-
${
|
|
456
|
+
${S ? it(ht(e.titleVariable, l), !0, o.rowSpacing) : ""}
|
|
535
457
|
<tr>
|
|
536
458
|
<td>
|
|
537
459
|
<table width="100%" cellpadding="0" cellspacing="0" border="0"
|
|
538
|
-
class="${
|
|
460
|
+
class="${rt}">${v}
|
|
539
461
|
</table>
|
|
540
462
|
</td>
|
|
541
463
|
</tr>
|
|
542
|
-
<tr class="ins-recommendation-mobile-row"
|
|
464
|
+
<tr class="ins-recommendation-mobile-row"></tr>
|
|
543
465
|
</tbody>
|
|
544
466
|
</table>
|
|
545
467
|
</td>
|
|
@@ -547,22 +469,22 @@ function Yt(t) {
|
|
|
547
469
|
</tbody>
|
|
548
470
|
</table>`;
|
|
549
471
|
})();
|
|
550
|
-
return
|
|
472
|
+
return ct(`
|
|
551
473
|
<td align="left"
|
|
552
474
|
esd-extension-block-id="recommendation-block"
|
|
553
475
|
width="520"
|
|
554
|
-
class="${
|
|
555
|
-
recommendation-id="${
|
|
556
|
-
data-card-composition="${r(
|
|
557
|
-
data-custom-attributes="${r(
|
|
558
|
-
data-column-spacing="${
|
|
559
|
-
data-row-spacing="${
|
|
560
|
-
data-mobile-column-spacing="${
|
|
561
|
-
data-mobile-row-spacing="${
|
|
562
|
-
hide-price="${
|
|
476
|
+
class="${w}"${x}${T}
|
|
477
|
+
recommendation-id="${o.recommendationId}"${C}
|
|
478
|
+
data-card-composition="${r(m)}"
|
|
479
|
+
data-custom-attributes="${r(h)}"
|
|
480
|
+
data-column-spacing="${o.columnSpacing}"
|
|
481
|
+
data-row-spacing="${o.rowSpacing}"
|
|
482
|
+
data-mobile-column-spacing="${o.mobileColumnSpacing}"
|
|
483
|
+
data-mobile-row-spacing="${o.mobileRowSpacing}"
|
|
484
|
+
hide-price="${o.priceHideIfSameAsDiscounted}"${p}${A}>${U}
|
|
563
485
|
</td>
|
|
564
486
|
`);
|
|
565
487
|
}
|
|
566
488
|
export {
|
|
567
|
-
|
|
489
|
+
Et as buildBlockHtml
|
|
568
490
|
};
|