@useinsider/guido 2.0.0-beta.c588e27 → 2.0.0-beta.c6d6ca6

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 (70) hide show
  1. package/dist/@types/config/schemas.js +53 -39
  2. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  3. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  4. package/dist/components/organisms/header/LeftSlot.vue.js +12 -12
  5. package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
  6. package/dist/components/organisms/header/RightSlot.vue2.js +10 -10
  7. package/dist/composables/useConfig.js +29 -27
  8. package/dist/composables/useSave.js +13 -11
  9. package/dist/config/migrator/index.js +9 -8
  10. package/dist/config/migrator/itemsBlockMigrator.js +334 -0
  11. package/dist/extensions/Blocks/Items/block.js +36 -40
  12. package/dist/extensions/Blocks/Items/controls/button/link.js +22 -29
  13. package/dist/extensions/Blocks/Items/controls/cardComposition.js +66 -46
  14. package/dist/extensions/Blocks/Items/controls/image/link.js +23 -30
  15. package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
  16. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +19 -17
  17. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +31 -29
  18. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +36 -36
  19. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +21 -19
  20. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +29 -27
  21. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +93 -0
  22. package/dist/extensions/Blocks/Items/controls/settingsControl.js +176 -162
  23. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  24. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  25. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +4 -5
  26. package/dist/extensions/Blocks/Items/extension.js +11 -9
  27. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  28. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  29. package/dist/extensions/Blocks/Items/settingsPanel.js +27 -26
  30. package/dist/extensions/Blocks/Items/store/items-block.js +11 -7
  31. package/dist/extensions/Blocks/Items/template.js +387 -140
  32. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +174 -0
  33. package/dist/extensions/Blocks/Recommendation/control.js +1 -1
  34. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  35. package/dist/extensions/Blocks/common-control.js +26 -27
  36. package/dist/extensions/Blocks/controlFactories.js +55 -45
  37. package/dist/guido.css +1 -1
  38. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +364 -285
  39. package/dist/package.json.js +1 -1
  40. package/dist/src/@types/config/index.d.ts +2 -2
  41. package/dist/src/@types/config/schemas.d.ts +26 -0
  42. package/dist/src/@types/config/types.d.ts +7 -1
  43. package/dist/src/composables/useConfig.d.ts +6 -0
  44. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  45. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -2
  46. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +9 -0
  47. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -2
  48. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  49. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +18 -0
  50. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  51. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  52. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  53. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  54. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
  55. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  56. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +71 -0
  57. package/dist/src/extensions/Blocks/common-control.d.ts +9 -10
  58. package/dist/src/stores/config.d.ts +147 -1
  59. package/dist/static/styles/components/button.css.js +1 -1
  60. package/dist/stores/config.js +7 -0
  61. package/dist/utils/pairProductVariables.js +61 -58
  62. package/package.json +3 -3
  63. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  64. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  65. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  66. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  67. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  68. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  69. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  70. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
@@ -1,19 +1,20 @@
1
- import { defineStore as r } from "pinia";
1
+ import { defineStore as s } from "pinia";
2
2
  import { DefaultConfigValues as e } from "../enums/settingsEnums.js";
3
- const n = (t) => t.replace(/Url\}/, "Image}"), o = (t) => t.replace(/Image\}/, "Url}"), i = () => {
3
+ const n = (t) => t.replace(/Url\}/, "Image}"), r = (t) => t.replace(/Image\}/, "Url}"), i = () => {
4
4
  const t = e.cartItemsSelectControlValue;
5
5
  return {
6
6
  itemsType: e.itemsType,
7
7
  itemIds: t,
8
8
  imageLink: n(t),
9
- buttonLink: o(t),
9
+ buttonLink: r(t),
10
10
  orientation: e.cardOrientationControlValue,
11
11
  nameTrimming: !0,
12
- hideDiscount: !1,
12
+ hideDiscount: !0,
13
13
  currencySymbol: "USD",
14
14
  currencyLocation: "0",
15
15
  formattedPrice: !0,
16
- priceOrientation: "horizontal",
16
+ singlePrice: !1,
17
+ priceOrientation: "vertical",
17
18
  templateData: {
18
19
  imageSrc: "",
19
20
  name: "",
@@ -23,14 +24,14 @@ const n = (t) => t.replace(/Url\}/, "Image}"), o = (t) => t.replace(/Image\}/, "
23
24
  button: ""
24
25
  }
25
26
  };
26
- }, m = r("guidoItemsBlock", {
27
+ }, m = s("guidoItemsBlock", {
27
28
  state: () => i(),
28
29
  actions: {
29
30
  setItemsType(t) {
30
31
  this.itemsType = t;
31
32
  },
32
33
  setItemIds(t) {
33
- this.itemIds = t, this.imageLink = n(t), this.buttonLink = o(t);
34
+ this.itemIds = t, this.imageLink = n(t), this.buttonLink = r(t);
34
35
  },
35
36
  setImageLink(t) {
36
37
  this.imageLink = t;
@@ -56,6 +57,9 @@ const n = (t) => t.replace(/Url\}/, "Image}"), o = (t) => t.replace(/Image\}/, "
56
57
  setFormattedPrice(t) {
57
58
  this.formattedPrice = t;
58
59
  },
60
+ setSinglePrice(t) {
61
+ this.singlePrice = t;
62
+ },
59
63
  setPriceOrientation(t) {
60
64
  this.priceOrientation = t;
61
65
  },
@@ -1,29 +1,101 @@
1
- import { BlockType as l, BlockAttr as _ } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { ItemsBlockId as T } from "./enums/controlEnums.js";
3
- import { productPairs as i, templateFirstLine as N } from "./enums/productEnums.js";
4
- import { ItemInCartOptions as f, SETTINGS_ENUMS as O, DefaultConfigValues as P } from "./enums/settingsEnums.js";
5
- import B from "./layouts/horizontal.html.js";
6
- import g from "./layouts/vertical.html.js";
7
- let [C] = i.PAIRS_FOR_EXTENSION.imageSrc.CART_ITEMS.DEFAULT, [A] = i.PAIRS_FOR_EXTENSION.name.CART_ITEMS.DEFAULT, [p] = i.PAIRS_FOR_EXTENSION.price.CART_ITEMS.DEFAULT_PRICE_FORMATTED, [I] = i.PAIRS_FOR_EXTENSION.originalPrice.CART_ITEMS.DEFAULT_PRICE_FORMATTED, [u] = i.PAIRS_FOR_EXTENSION.quantity.CART_ITEMS.DEFAULT;
8
- const h = (a, t) => `
9
- <${l.BLOCK_IMAGE}
10
- ${_.BLOCK_IMAGE.src}="${C}"
11
- ${_.BLOCK_IMAGE.alt}="${A}"
12
- ${_.BLOCK_IMAGE.href}="#!"
13
- ${_.BLOCK_IMAGE.width}=${P.productImageWidth}
14
- esd-extension-block-id="${T.IMAGE}"
1
+ import { BlockType as O, BlockAttr as N } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { ItemsBlockId as I } from "./enums/controlEnums.js";
3
+ import { productPairs as R, templateFirstLine as Q } from "./enums/productEnums.js";
4
+ import { ItemInCartOptions as H, SETTINGS_ENUMS as w, DefaultConfigValues as F } from "./enums/settingsEnums.js";
5
+ import C from "./layouts/horizontal.html.js";
6
+ import Y from "./layouts/vertical.html.js";
7
+ let [M] = R.PAIRS_FOR_EXTENSION.imageSrc.CART_ITEMS.DEFAULT, [m] = R.PAIRS_FOR_EXTENSION.name.CART_ITEMS.DEFAULT, [x] = R.PAIRS_FOR_EXTENSION.price.CART_ITEMS.DEFAULT_PRICE_FORMATTED, [S] = R.PAIRS_FOR_EXTENSION.originalPrice.CART_ITEMS.DEFAULT_PRICE_FORMATTED, [D] = R.PAIRS_FOR_EXTENSION.quantity.CART_ITEMS.DEFAULT;
8
+ const q = (s, e) => s.split(";").map((l) => l.trim()).filter((l) => !l.toLowerCase().startsWith(e.toLowerCase())).join("; ").replace(/;\s*$/, ""), U = (s) => q(s, "text-align"), L = (s, e) => {
9
+ const l = new RegExp(`${e}\\s*:\\s*([^;]+)`, "i"), a = s.match(l);
10
+ return a ? a[1].trim() : null;
11
+ }, g = (s, e, l) => new RegExp(`(${e}\\s*:\\s*)[^;]+`, "gi").test(s) ? s.replace(
12
+ new RegExp(`(${e}\\s*:\\s*)[^;]+`, "gi"),
13
+ `$1${l}`
14
+ ) : s, j = (s, e, l, a) => {
15
+ const c = l || F.productImageHeight, n = (a == null ? void 0 : a.imageVisible) === !1 ? "display: none; " : "";
16
+ return `
17
+ <td class="esd-block-image document-node-component default-block-component selectable ng-star-inserted"
18
+ align="center"
19
+ esd-extension-block-id="${I.IMAGE}"
20
+ data-slot-1=""
21
+ product-attr="imageSrc"
22
+ data-type="${s}"
23
+ data-number="${e}"
24
+ style="${n}font-size: 0px;">
25
+ <a class="document-node-component ng-star-inserted"
26
+ target="_blank"
27
+ href="#!">
28
+ <img class="adapt-img document-node-component ng-star-inserted"
29
+ src="${M}"
30
+ alt="${m}"
31
+ width="${c}"
32
+ height="${c}">
33
+ </a>
34
+ </td>
35
+ `;
36
+ }, Z = (s, e) => `
37
+ <${O.BLOCK_IMAGE}
38
+ ${N.BLOCK_IMAGE.src}="${M}"
39
+ ${N.BLOCK_IMAGE.alt}="${m}"
40
+ ${N.BLOCK_IMAGE.href}="#!"
41
+ ${N.BLOCK_IMAGE.width}="${F.productImageWidth}"
42
+ ${N.BLOCK_IMAGE.height}="${F.productImageWidth}"
43
+ esd-extension-block-id="${I.IMAGE}"
15
44
  data-slot-1
16
45
  product-attr="imageSrc"
17
- data-type="${a}"
18
- data-number="${t}"
46
+ data-type="${s}"
47
+ data-number="${e}"
19
48
  />
20
- `, F = (a) => `
21
- <${l.BLOCK_TEXT}
49
+ `, J = (s, e, l, a, c) => {
50
+ const d = `
51
+ text-decoration:none;
52
+ font-size: inherit;
53
+ font-weight: inherit;
54
+ line-height: inherit;
55
+ font-family: inherit;
56
+ color: inherit;
57
+ display: block;
58
+ word-wrap:break-word;
59
+ white-space: nowrap;
60
+ width: ${l === w.ORIENTATION.HORIZONTAL ? "130px" : "520px"};
61
+ overflow: hidden;
62
+ text-overflow: ellipsis;
63
+ `;
64
+ if (e) {
65
+ const i = L(a || "", "text-align") || "center", r = U(a || d), o = L(r, "color"), t = L(r, "font-size"), p = [
66
+ o ? `color: ${o}` : "",
67
+ t ? `font-size: ${t}` : ""
68
+ ].filter(Boolean).join("; "), T = g(
69
+ g(r, "color", "inherit"),
70
+ "font-size",
71
+ "inherit"
72
+ ), u = (c == null ? void 0 : c.nameVisible) === !1 ? "display: none;" : "display: table-cell;";
73
+ return `
74
+ <td class="esd-block-text es-p10"
75
+ align="${i}"
76
+ width="100%"
77
+ data-type="${s}"
78
+ esd-extension-block-id="${I.NAME}"
79
+ style="${u}">
80
+ <p contenteditable="false" path="1"${p ? ` style="${p}"` : ""}>
81
+ <a
82
+ href="#!"
83
+ style="${T}"
84
+ product-attr="name"
85
+ data-slot-2
86
+ width="100%">
87
+ ${m}
88
+ </a>
89
+ </p>
90
+ </td>
91
+ `;
92
+ }
93
+ return `<${O.BLOCK_TEXT}
22
94
  width="100%"
23
95
  align="center"
24
96
  class="es-p10"
25
- data-type="${a}"
26
- esd-extension-block-id="${T.NAME}"
97
+ data-type="${s}"
98
+ esd-extension-block-id="${I.NAME}"
27
99
  >
28
100
  <p contenteditable="false">
29
101
  <a
@@ -45,151 +117,326 @@ const h = (a, t) => `
45
117
  product-attr="name"
46
118
  data-slot-2
47
119
  width="100%">
48
- ${A}
120
+ ${m}
49
121
  </a>
50
122
  </p>
51
- </${l.BLOCK_TEXT}>
52
- `, S = (a, t, o, e, c) => {
53
- let n = p;
54
- if (e && e.trim()) {
55
- const E = `&nbsp;${e.trim()}&nbsp;`;
56
- n = (c || "0") === "1" ? `${p}${E}` : `${E}${p}`;
123
+ </${O.BLOCK_TEXT}>
124
+ `;
125
+ }, tt = (s, e, l, a, c, n, d, i, r, o) => {
126
+ let t = x;
127
+ if (a && a.trim()) {
128
+ const E = `${a.trim()}`;
129
+ t = (c || "0") === "1" ? `${x}&nbsp;${E}` : `${E}&nbsp;${x}`;
130
+ }
131
+ const p = c === "1" ? "after" : "before", T = `data-formated="${l ? "true" : "false"}"`, u = `data-curency="${p}"`, P = a ? `data-currency_symbol="${a}"` : "", $ = `data-single_price="${i ? "true" : "false"}"`, _ = r === w.ORIENTATION.VERTICAL ? " es-p10b es-p10t" : "";
132
+ if (n) {
133
+ const h = U(d || "color: #060606; white-space: nowrap; font-size: 20px;"), y = o ? "" : ' style="display: none;"';
134
+ return `
135
+ <td class="esd-block-text items-block-price${_}"
136
+ align="center"
137
+ esd-extension-block-id="${I.PRICE}"
138
+ width="100%"
139
+ ${y}>
140
+ <p product-attr="price"
141
+ contenteditable="false"
142
+ data-slot-4
143
+ data-type="${s}"
144
+ data-number="${e}"
145
+ ${T}
146
+ ${u}
147
+ ${P}
148
+ ${$}
149
+ style="${h}">
150
+ ${t}
151
+ </p>
152
+ </td>`;
57
153
  }
58
- const r = c === "1" ? "after" : "before", d = `data-formated="${o ? "true" : "false"}"`, s = `data-curency="${r}"`;
59
154
  return `
60
- <${l.BLOCK_TEXT}
61
- esd-extension-block-id="${T.PRICE}"
62
- class="items-block-price"
63
- width="100%"
64
- align="center"
65
- >
66
- <p
67
- product-attr="price"
68
- contenteditable="false"
69
- data-slot-4
70
- data-type="${a}"
71
- data-number="${t}"
72
- ${d}
73
- ${s}
74
- ${e ? `data-currency_symbol="${e}"` : ""}
155
+ <${O.BLOCK_TEXT}
156
+ esd-extension-block-id="${I.PRICE}"
157
+ class="items-block-price ${_}"
158
+ width="100%"
159
+ align="center"
75
160
  >
76
- ${n}
77
- </p>
78
- </${l.BLOCK_TEXT}>
79
- `;
80
- }, L = (a, t, o, e, c) => {
81
- let n = I;
82
- if (e && e.trim()) {
83
- const E = `&nbsp;${e.trim()}&nbsp;`;
84
- n = (c || "0") === "1" ? `${I}${E}` : `${E}${I}`;
161
+ <p
162
+ product-attr="price"
163
+ contenteditable="false"
164
+ data-slot-4
165
+ data-type="${s}"
166
+ data-number="${e}"
167
+ ${T}
168
+ ${u}
169
+ ${a ? `data-currency_symbol="${a}"` : ""}
170
+ ${$}
171
+ >
172
+ ${t}
173
+ </p>
174
+ </${O.BLOCK_TEXT}>
175
+ `;
176
+ }, et = (s, e, l, a, c, n, d = !0, i, r, o) => {
177
+ let t = S;
178
+ if (a && a.trim()) {
179
+ const E = `${a.trim()}`;
180
+ t = (c || "0") === "1" ? `${S}&nbsp;${E}` : `${E}&nbsp;${S}`;
181
+ }
182
+ const p = c === "1" ? "after" : "before", T = `data-formated="${l ? "true" : "false"}"`, u = `data-curency="${p}"`, P = d ? "" : ' style="display: none;"', $ = `data-single_price="${r ? "true" : "false"}"`, _ = o === w.ORIENTATION.VERTICAL ? " es-p10b es-p10t" : "";
183
+ if (n) {
184
+ const h = U(i || "color: #cc0000; white-space: nowrap; font-size: 19px;");
185
+ return `
186
+ <td class="esd-block-text items-block-price${_}"
187
+ esd-extension-block-id="${I.ORIGINAL_PRICE}"
188
+ width="100%"
189
+ align="center"${P}>
190
+ <p
191
+ product-attr="originalPrice"
192
+ contenteditable="false"
193
+ data-slot-5
194
+ data-type="${s}"
195
+ data-number="${e}"
196
+ ${T}
197
+ ${u}
198
+ ${a ? `data-currency_symbol="${a}"` : ""}
199
+ ${$}
200
+ style="${h}">
201
+ <s>${t}</s>
202
+ </p>
203
+ </td>
204
+ `;
85
205
  }
86
- const r = c === "1" ? "after" : "before", d = `data-formated="${o ? "true" : "false"}"`, s = `data-curency="${r}"`;
87
206
  return `
88
- <${l.BLOCK_TEXT}
89
- class="items-block-price"
90
- esd-extension-block-id="${T.ORIGINAL_PRICE}"
91
- width="100%"
92
- align="center"
93
- >
94
- <p
95
- product-attr="originalPrice"
96
- contenteditable="false"
97
- data-slot-5
98
- style="color: #cc0000"
99
- data-type="${a}"
100
- data-number="${t}"
101
- ${d}
102
- ${s}
103
- ${e ? `data-currency_symbol="${e}"` : ""}
207
+ <${O.BLOCK_TEXT}
208
+ class="items-block-price ${_}"
209
+ esd-extension-block-id="${I.ORIGINAL_PRICE}"
210
+ width="100%"
211
+ align="center"
212
+ ${d ? "" : 'style="display: none;"'}
104
213
  >
105
- <s>${n}</s>
106
- </p>
107
- </${l.BLOCK_TEXT}>
108
- `;
109
- }, b = () => `
110
- <${l.BLOCK_TEXT}
111
- width="100%"
112
- align="center"
113
- class="es-p10"
114
- esd-extension-block-id="${T.QUANTITY}"
115
- >
116
- <p
117
- product-attr="quantity"
118
- data-slot-3
119
- contenteditable="false"
120
- width="100%">
121
- ${u}
122
- </p>
123
- </${l.BLOCK_TEXT}>
124
- `, U = (a, t) => `
125
- <${l.BLOCK_BUTTON}
126
- width="100%"
127
- class="ins-button"
128
- name="buy-button"
129
- caption="Buy"
130
- align="center"
131
- esd-extension-block-id="${T.BUTTON}"
132
- product-attr="button"
133
- data-slot-6
134
- data-type="${a}"
135
- data-number="${t}"
136
- >Buy
137
- </${l.BLOCK_BUTTON}>
138
- `, D = () => `
139
- <esd-config-block style="display: none;"></esd-config-block>
140
- `, R = (a, t, o, e, c, n, r, d) => {
141
- const $ = `${`data-type="${t}" data-number="${o}"`} data-orientation="${e}"`;
142
- return a.replace(
214
+ <p
215
+ product-attr="originalPrice"
216
+ contenteditable="false"
217
+ data-slot-5
218
+ style="color: #cc0000"
219
+ data-type="${s}"
220
+ data-number="${e}"
221
+ ${T}
222
+ ${u}
223
+ ${a ? `data-currency_symbol="${a}"` : ""}
224
+ ${$}
225
+ >
226
+ <s>${t}</s>
227
+ </p>
228
+ </${O.BLOCK_TEXT}>
229
+ `;
230
+ }, at = (s = !0, e, l) => {
231
+ const a = s ? "" : 'style="display: none;"';
232
+ if (e) {
233
+ const n = l || "text-align: center; font-size: 14px;";
234
+ return `
235
+ <td class="esd-block-text es-p10 document-node-component default-block-component selectable"
236
+ width="100%" align="center"
237
+ esd-extension-block-id="${I.QUANTITY}"
238
+ ${a}>
239
+ <p product-attr="quantity"
240
+ data-slot-3=""
241
+ contenteditable="false"
242
+ width="100%"
243
+ path="1"
244
+ style="${n}">
245
+ ${D}
246
+ </p>
247
+ </td>`;
248
+ }
249
+ return `
250
+ <${O.BLOCK_TEXT}
251
+ width="100%"
252
+ align="center"
253
+ class="es-p10"
254
+ esd-extension-block-id="${I.QUANTITY}"
255
+ ${s ? "" : 'style="display: none;"'}
256
+ >
257
+ <p
258
+ product-attr="quantity"
259
+ data-slot-3
260
+ contenteditable="false"
261
+ width="100%">
262
+ ${D}
263
+ </p>
264
+ </${O.BLOCK_TEXT}>
265
+ `;
266
+ }, st = (s, e, l = "Buy", a, c, n = !0, d = !0) => {
267
+ if (a) {
268
+ const i = L(c || "", "background") || L(c || "", "background-color"), r = i ? `border-width: 0px; background: ${i};` : "border-width: 0px;", o = n ? "es-fw" : "es-il", t = (c || "").replace("border-width: 0;", "");
269
+ return `
270
+ <td class="esd-block-button ins-button default-block-component selectable"
271
+ align="center" width="100%" name="buy-button" caption="${l}"
272
+ esd-extension-block-id="${I.BUTTON}"
273
+ product-attr="button" data-slot-6="" data-type="${s}" data-number="${e}"
274
+ ${d ? "" : ' style="display: none;"'}>
275
+ <span class="es-button-border ${o}" style="${r}">
276
+ <a
277
+ class="es-button"
278
+ href="#!"
279
+ target="_blank"
280
+ style="${t} padding: 5px 12px;">
281
+ ${l}
282
+ </a>
283
+ </span>
284
+ </td>`;
285
+ }
286
+ return `
287
+ <${O.BLOCK_BUTTON}
288
+ width="100%"
289
+ class="ins-button"
290
+ name="buy-button"
291
+ caption="${l}"
292
+ align="center"
293
+ esd-extension-block-id="${I.BUTTON}"
294
+ product-attr="button"
295
+ data-slot-6
296
+ data-type="${s}"
297
+ data-number="${e}"
298
+ >${l}
299
+ </${O.BLOCK_BUTTON}>
300
+ `;
301
+ }, lt = (s, e, l, a = !0, c = !0) => {
302
+ const n = e === w.ORIENTATION.VERTICAL, d = l === "horizontal";
303
+ if (n) {
304
+ const i = !d, r = i || !c ? "100%" : "50%", o = i || !a ? "100%" : "50%";
305
+ let t = s.replace(
306
+ /<td\s+[^>]*class="([^"]*product-price-class[^"]*)"[^>]*>/gi,
307
+ (p) => p.replace(/width="[^"]*"/gi, `width="${r}"`).replace(/width:\s*[^;]+;/gi, `width: ${r};`)
308
+ );
309
+ return t = t.replace(
310
+ /<td\s+[^>]*class="([^"]*product-original-price-class[^"]*)"[^>]*>/gi,
311
+ (p) => p.replace(/width="[^"]*"/gi, `width="${o}"`).replace(/width:\s*[^;]+;/gi, `width: ${o};`)
312
+ ), t;
313
+ }
314
+ return d ? s : s.replace(
315
+ /<td\s+[^>]*class="[^"]*horizontal-price[^"]*"[^>]*>/gi,
316
+ (i) => /style\s*=\s*"/i.test(i) ? i.replace(/style\s*=\s*"([^"]*)"/i, 'style="display: none; $1"') : i.replace(/>$/, ' style="display: none;">')
317
+ ).replace(
318
+ /<td\s+[^>]*class="[^"]*vertical-price[^"]*"[^>]*>/gi,
319
+ (i) => i.replace(/display:\s*none;?/gi, "display: table-cell;")
320
+ );
321
+ }, rt = (s) => s ? `<td align="center"
322
+ esd-extension-block-id="items-block" width="560"
323
+ data-number="4"
324
+ class="ins-product-td items-block items-block-v2 esd-items-block esd-extension-block esd-container-frame">` : Q, v = (s, e, l, a, c, n, d, i, r, o, t, p, T, u = "horizontal", P, $, b, _) => {
325
+ const y = `${`data-type="${e}" data-number="${l}"`} data-orientation="${a}"`, A = s.replace(
143
326
  /<td([^>]*class="[^"]*ins-product-td[^"]*"[^>]*)>/,
144
- `<td$1 ${$}>`
145
- ).replace("{-{-TEMPLATE_FIRST_LINE-}-}", N).replace("{-{-PRODUCT_IMAGE-}-}", h(t, o)).replace("{-{-PRODUCT_NAME-}-}", F(t)).replaceAll(
327
+ `<td$1 ${y}>`
328
+ ), z = r == null ? void 0 : r["data-product_image_control_image-height"], X = n ? j(e, l, z, t) : Z(e, l), G = (t == null ? void 0 : t.buttonLabel) || "Buy", K = (t == null ? void 0 : t.buttonFullWidth) !== void 0 ? t.buttonFullWidth : !0, f = e === w.ITEMS_TYPE.BROWSED_ITEMS ? !1 : t == null ? void 0 : t.quantityControlEnabled, B = (t == null ? void 0 : t.buttonVisible) !== void 0 ? t.buttonVisible : (r == null ? void 0 : r["data-product_button_control_enabled"]) !== "false", k = (t == null ? void 0 : t.priceVisible) !== void 0 ? t.priceVisible : (r == null ? void 0 : r["data-product_price_control_enabled"]) !== "false", V = (t == null ? void 0 : t.originalPriceVisible) !== void 0 ? t.originalPriceVisible : (r == null ? void 0 : r["data-product_original_price_control_enabled"]) !== "false", W = A.replace("{-{-TEMPLATE_FIRST_LINE-}-}", rt(n)).replace("{-{-PRODUCT_IMAGE-}-}", X).replace("{-{-PRODUCT_NAME-}-}", J(e, n, a, p, t)).replaceAll(
146
329
  "{-{-PRODUCT_PRICE-}-}",
147
- S(t, o, c, n, r)
330
+ tt(
331
+ e,
332
+ l,
333
+ c,
334
+ d,
335
+ i,
336
+ n,
337
+ P,
338
+ _,
339
+ a,
340
+ k
341
+ )
148
342
  ).replaceAll(
149
343
  "{-{-PRODUCT_ORIGINAL_PRICE-}-}",
150
- L(
151
- t,
152
- o,
344
+ et(
345
+ e,
346
+ l,
153
347
  c,
348
+ d,
349
+ i,
154
350
  n,
155
- r
351
+ V,
352
+ $,
353
+ _,
354
+ a
156
355
  )
157
- ).replace("{-{-PRODUCT_QUANTITY-}-}", b()).replace("{-{-PRODUCT_BUTTON-}-}", U(t, o)).replace("{-{-CONFIG_BLOCK-}-}", D());
356
+ ).replace("{-{-PRODUCT_QUANTITY-}-}", at(f, n, b)).replace(
357
+ "{-{-PRODUCT_BUTTON-}-}",
358
+ st(e, l, G, n, T, K, B)
359
+ );
360
+ return lt(
361
+ W,
362
+ a,
363
+ u,
364
+ k,
365
+ V
366
+ );
158
367
  };
159
- function G({
160
- orientation: a,
161
- itemsType: t = O.ITEMS_TYPE.CART_ITEMS,
162
- itemId: o,
163
- currencySymbol: e,
368
+ function $t({
369
+ orientation: s,
370
+ itemsType: e = w.ITEMS_TYPE.CART_ITEMS,
371
+ itemId: l,
372
+ currencySymbol: a,
164
373
  currencyLocation: c,
165
- formattedPrice: n = !0
374
+ migrate: n = !1,
375
+ formattedPrice: d = !0,
376
+ configBlockAttributes: i,
377
+ nodeConfig: r,
378
+ nameStyles: o,
379
+ buttonStyles: t,
380
+ priceStyles: p,
381
+ originalPriceStyles: T,
382
+ quantityStyles: u,
383
+ priceOrientation: P
166
384
  }) {
167
- const r = f[t].findIndex((s) => s.value === o);
168
- let d = "1";
169
- if (r >= 0)
170
- d = String(r + 1);
171
- else if (o) {
172
- const s = o.match(/\((\d+)\)/);
173
- s && s[1] && ([, d] = s);
385
+ const $ = H[e].findIndex((A) => A.value === l);
386
+ let b = "1";
387
+ if ($ >= 0)
388
+ b = String($ + 1);
389
+ else if (l) {
390
+ const A = l.match(/\((\d+)\)/);
391
+ A && A[1] && ([, b] = A);
174
392
  }
175
- return C = i.PAIRS_FOR_EXTENSION.imageSrc[t].DEFAULT[r >= 0 ? r : 0], A = i.PAIRS_FOR_EXTENSION.name[t].DEFAULT[r >= 0 ? r : 0], p = n ? i.PAIRS_FOR_EXTENSION.price[t].DEFAULT_PRICE_FORMATTED : i.PAIRS_FOR_EXTENSION.price[t].DEFAULT_PRICE, I = n ? i.PAIRS_FOR_EXTENSION.originalPrice[t].DEFAULT_PRICE_FORMATTED : i.PAIRS_FOR_EXTENSION.originalPrice[t].DEFAULT_PRICE, u = i.PAIRS_FOR_EXTENSION.quantity[t].DEFAULT, a === O.ORIENTATION.VERTICAL ? R(
176
- g,
177
- t,
393
+ const _ = (r == null ? void 0 : r.priceSinglePrice) ?? (i == null ? void 0 : i["data-product_price_control_single_price"]) === "1" ?? !1;
394
+ M = R.PAIRS_FOR_EXTENSION.imageSrc[e].DEFAULT[$ >= 0 ? $ : 0], m = R.PAIRS_FOR_EXTENSION.name[e].DEFAULT[$ >= 0 ? $ : 0];
395
+ const E = R.PAIRS_FOR_EXTENSION.price[e], h = R.PAIRS_FOR_EXTENSION.originalPrice[e];
396
+ _ ? (x = d ? E.DEFAULT_SINGLE_PRICE_FORMATTED : E.DEFAULT_SINGLE_PRICE, S = d ? h.DEFAULT_SINGLE_PRICE_FORMATTED : h.DEFAULT_SINGLE_PRICE) : (x = d ? E.DEFAULT_PRICE_FORMATTED : E.DEFAULT_PRICE, S = d ? h.DEFAULT_PRICE_FORMATTED : h.DEFAULT_PRICE), D = R.PAIRS_FOR_EXTENSION.quantity[e].DEFAULT;
397
+ const y = P || (r == null ? void 0 : r.priceOrientation) || "horizontal";
398
+ return s === w.ORIENTATION.VERTICAL ? v(
399
+ Y,
400
+ e,
401
+ b,
402
+ s,
178
403
  d,
179
- a,
180
404
  n,
181
- e,
182
- c
183
- ) : R(
184
- B,
405
+ a,
406
+ c,
407
+ i,
408
+ void 0,
409
+ // nodup
410
+ r,
411
+ o,
185
412
  t,
413
+ y,
414
+ p,
415
+ T,
416
+ u,
417
+ _
418
+ ) : v(
419
+ C,
420
+ e,
421
+ b,
422
+ s,
186
423
  d,
187
- a,
188
424
  n,
189
- e,
190
- c
425
+ a,
426
+ c,
427
+ i,
428
+ void 0,
429
+ // nodup
430
+ r,
431
+ o,
432
+ t,
433
+ y,
434
+ p,
435
+ T,
436
+ u,
437
+ _
191
438
  );
192
439
  }
193
440
  export {
194
- G as getDefaultTemplate
441
+ $t as getDefaultTemplate
195
442
  };