@useinsider/guido 2.0.0-beta.4f6e85f → 2.0.0-beta.522e9d9

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