@useinsider/guido 2.0.0-beta.18d5b06 → 2.0.0-beta.1acfbd1

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 (66) hide show
  1. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +3 -3
  2. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +1 -1
  3. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +7 -6
  4. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +9 -4
  5. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +9 -9
  6. package/dist/components/organisms/header/EditorActions.vue.js +5 -4
  7. package/dist/components/organisms/header/LeftSlot.vue.js +7 -7
  8. package/dist/components/organisms/header/LeftSlot.vue2.js +3 -3
  9. package/dist/composables/useActionsApi.js +33 -30
  10. package/dist/config/migrator/index.js +9 -8
  11. package/dist/config/migrator/itemsBlockMigrator.js +334 -0
  12. package/dist/extensions/Blocks/Items/block.js +36 -40
  13. package/dist/extensions/Blocks/Items/controls/button/link.js +22 -29
  14. package/dist/extensions/Blocks/Items/controls/cardComposition.js +66 -46
  15. package/dist/extensions/Blocks/Items/controls/image/link.js +23 -30
  16. package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
  17. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +19 -17
  18. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +31 -29
  19. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +44 -38
  20. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +21 -19
  21. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +29 -27
  22. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +93 -0
  23. package/dist/extensions/Blocks/Items/controls/settingsControl.js +146 -131
  24. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  25. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  26. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +4 -5
  27. package/dist/extensions/Blocks/Items/extension.js +11 -9
  28. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  29. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  30. package/dist/extensions/Blocks/Items/settingsPanel.js +27 -26
  31. package/dist/extensions/Blocks/Items/store/items-block.js +11 -7
  32. package/dist/extensions/Blocks/Items/template.js +389 -141
  33. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  34. package/dist/extensions/Blocks/Recommendation/control.js +1 -1
  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/composables/useActionsApi.d.ts +1 -0
  41. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  42. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -2
  43. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +9 -0
  44. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -2
  45. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  46. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +18 -0
  47. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  48. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  49. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  50. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  51. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
  52. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  53. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +76 -0
  54. package/dist/src/extensions/Blocks/common-control.d.ts +9 -10
  55. package/dist/static/styles/components/wide-panel.css.js +1 -1
  56. package/dist/utils/pairProductVariables.js +61 -58
  57. package/dist/utils/templatePreparation.js +17 -17
  58. package/package.json +3 -3
  59. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  60. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  61. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  62. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  63. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  64. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  65. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  66. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
@@ -1,29 +1,28 @@
1
- var M = Object.defineProperty;
2
- var D = (h, p, e) => p in h ? M(h, p, { enumerable: !0, configurable: !0, writable: !0, value: e }) : h[p] = e;
3
- var b = (h, p, e) => D(h, typeof p != "symbol" ? p + "" : p, e);
4
- import { UEAttr as A, ModificationDescription as d } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as x } from "../../common-control.js";
6
- import { ItemsBlockId as l } from "../enums/controlEnums.js";
7
- import { productPairs as T, templateFirstLine as R } from "../enums/productEnums.js";
8
- import { ItemTypeOptions as P, OrientationOptions as L, ItemInCartOptions as N, SETTINGS_ENUMS as S, DefaultConfigValues as H } from "../enums/settingsEnums.js";
9
- import U from "../layouts/horizontal.html.js";
10
- import F from "../layouts/vertical.html.js";
11
- import { useItemsBlockStore as $ } from "../store/items-block.js";
12
- import { getDefaultTemplate as q } from "../template.js";
13
- import { syncCurrencySymbolFromAttributes as k, syncCurrencyLocationFromAttributes as w, syncFormattedPriceFromAttributes as B } from "../utils/syncAttributesFromConfigBlock.js";
14
- import { updateConfigBlockAttributes as f } from "../utils/updateAttributes.js";
15
- const G = "ui-elements-items-block", s = {
1
+ var x = Object.defineProperty;
2
+ var H = (I, h, e) => h in I ? x(I, h, { enumerable: !0, configurable: !0, writable: !0, value: e }) : I[h] = e;
3
+ var O = (I, h, e) => H(I, typeof h != "symbol" ? h + "" : h, e);
4
+ import { UEAttr as C, ModificationDescription as p } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as k } from "../../common-control.js";
6
+ import { ItemsBlockId as m } from "../enums/controlEnums.js";
7
+ import { productPairs as T, templateFirstLine as b } from "../enums/productEnums.js";
8
+ import { ItemTypeOptions as R, OrientationOptions as U, ItemInCartOptions as N, SETTINGS_ENUMS as S, DefaultConfigValues as P } from "../enums/settingsEnums.js";
9
+ import F from "../layouts/horizontal.html.js";
10
+ import $ from "../layouts/vertical.html.js";
11
+ import { useItemsBlockStore as q } from "../store/items-block.js";
12
+ import { getDefaultTemplate as w } from "../template.js";
13
+ import { getItemsBlockConfig as A, setItemsBlockConfig as f, escapeReplacement as L } from "../utils/nodeConfigUtils.js";
14
+ const B = "ui-elements-items-block", a = {
16
15
  ITEMS_TYPE: "itemsType",
17
16
  ORIENTATION: "orientation",
18
17
  ITEM_IDS: "itemIds"
19
18
  };
20
- class te extends x {
19
+ class J extends k {
21
20
  constructor() {
22
21
  super(...arguments);
23
- b(this, "store", $());
22
+ O(this, "store", q());
24
23
  }
25
24
  getId() {
26
- return G;
25
+ return B;
27
26
  }
28
27
  getTemplate() {
29
28
  return `
@@ -36,21 +35,22 @@ class te extends x {
36
35
  }
37
36
  onRender() {
38
37
  this.api.updateValues({
39
- [s.ORIENTATION]: this.store.orientation,
40
- [s.ITEMS_TYPE]: this.store.itemsType,
41
- [s.ITEM_IDS]: this.store.itemIds
38
+ [a.ORIENTATION]: this.store.orientation,
39
+ [a.ITEMS_TYPE]: this.store.itemsType,
40
+ [a.ITEM_IDS]: this.store.itemIds
42
41
  }), this._listenToFormUpdates();
43
42
  }
44
43
  onTemplateNodeUpdated(e) {
45
- super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(
44
+ super.onTemplateNodeUpdated(e), console.debug("Items Block Config", e.getNodeConfig()), this.handleBlockInstanceChange(
46
45
  () => {
47
- k(this.currentNode), w(this.currentNode), B(this.currentNode);
46
+ const t = A(this.currentNode);
47
+ t && (this.store.setItemsType(t.type), this.store.setItemIds(t.itemsSelectValue), this.store.setOrientation(t.orientation), this.store.setCurrencySymbol(t.priceCurrencySymbol), this.store.setCurrencyLocation(t.priceCurrencyLocation), this.store.setFormattedPrice(t.priceFormatted), this.store.setImageLink(t.imageLink), this.store.setButtonLink(t.buttonLink));
48
48
  },
49
49
  () => {
50
50
  this.api.updateValues({
51
- [s.ORIENTATION]: this.store.orientation,
52
- [s.ITEMS_TYPE]: this.store.itemsType,
53
- [s.ITEM_IDS]: this.store.itemIds
51
+ [a.ORIENTATION]: this.store.orientation,
52
+ [a.ITEMS_TYPE]: this.store.itemsType,
53
+ [a.ITEM_IDS]: this.store.itemIds
54
54
  }), this._initializeSelectItems();
55
55
  }
56
56
  );
@@ -64,10 +64,10 @@ class te extends x {
64
64
  ${this._GuOneColumn([
65
65
  this._GuLabel({ text: "Item Type" }),
66
66
  this._GuSelect({
67
- name: s.ITEMS_TYPE,
67
+ name: a.ITEMS_TYPE,
68
68
  className: "es-100",
69
69
  placeholder: "Select Item Type",
70
- options: P
70
+ options: R
71
71
  })
72
72
  ])}
73
73
  `;
@@ -77,8 +77,8 @@ class te extends x {
77
77
  ${this._GuTwoColumns([
78
78
  this._GuLabel({ text: "Orientation" }),
79
79
  this._GuRadioButton({
80
- name: s.ORIENTATION,
81
- buttons: L
80
+ name: a.ORIENTATION,
81
+ buttons: U
82
82
  })
83
83
  ])}
84
84
  `;
@@ -88,7 +88,7 @@ class te extends x {
88
88
  ${this._GuTwoColumns([
89
89
  this._GuLabel({ text: "Item in Cart" }),
90
90
  this._GuSelect({
91
- name: s.ITEM_IDS,
91
+ name: a.ITEM_IDS,
92
92
  className: "es-100",
93
93
  placeholder: "Select Item In Cart",
94
94
  options: []
@@ -97,172 +97,187 @@ class te extends x {
97
97
  `;
98
98
  }
99
99
  _onOrientationChange(e) {
100
- console.debug("Orientation changed to: ", e), this.store.setOrientation(e), this.store.setPriceOrientation("horizontal"), this.api.updateValues({ [s.ORIENTATION]: e }), f(this.currentNode, this.api), this._reOrderTemplate(), setTimeout(() => {
100
+ this.store.setOrientation(e), this.store.setPriceOrientation("horizontal"), this.api.updateValues({ [a.ORIENTATION]: e }), f(this.currentNode, this.api, {
101
+ orientation: e,
102
+ priceOrientation: "horizontal"
103
+ }), this._reOrderTemplate(), setTimeout(() => {
101
104
  this._recalculateTrimming();
102
105
  }, 50);
103
106
  }
104
107
  _onItemsTypeChange(e) {
105
- const i = S.ITEMS_TYPE[e], t = N[e], r = t == null ? void 0 : t[0];
106
- !i || !r || (this.store.setItemsType(i), this.store.setItemIds(r.value), f(this.currentNode, this.api), this._updateDataTypeAttributes(i), this._initializeSelectItems(), this._reFillTemplate());
108
+ const t = S.ITEMS_TYPE[e], i = N[e], r = i == null ? void 0 : i[0];
109
+ !t || !r || (this.store.setItemsType(t), this.store.setItemIds(r.value), f(this.currentNode, this.api, {
110
+ source: t,
111
+ type: t,
112
+ itemsSelectValue: r.value,
113
+ imageLink: this.store.imageLink,
114
+ buttonLink: this.store.buttonLink
115
+ }), this._updateDataTypeAttributes(t), this._initializeSelectItems(), this._reFillTemplate());
107
116
  }
108
117
  _onItemIdsChange(e) {
109
- console.debug("Item ids changed to: ", e), this.store.setItemIds(e), this.api.updateValues({ [s.ITEM_IDS]: e }), f(this.currentNode, this.api), this._updateDataNumberAttributes(e), this._reFillTemplate();
118
+ this.store.setItemIds(e), this.api.updateValues({ [a.ITEM_IDS]: e }), f(this.currentNode, this.api, {
119
+ itemsSelectValue: e,
120
+ imageLink: this.store.imageLink,
121
+ buttonLink: this.store.buttonLink
122
+ }), this._updateDataNumberAttributes(e), this._reFillTemplate();
110
123
  }
111
124
  _initializeSelectItems() {
112
125
  this.api.setUIEAttribute(
113
- s.ITEMS_TYPE,
114
- A.SELECTPICKER.items,
115
- P
126
+ a.ITEMS_TYPE,
127
+ C.SELECTPICKER.items,
128
+ R
116
129
  );
117
- const { itemsType: e, itemIds: i } = this.store;
130
+ const { itemsType: e, itemIds: t } = this.store;
118
131
  this.api.updateValues({
119
- [s.ITEMS_TYPE]: e
132
+ [a.ITEMS_TYPE]: e
120
133
  });
121
- const t = N[e];
134
+ const i = N[e];
122
135
  this.api.setUIEAttribute(
123
- s.ITEM_IDS,
124
- A.SELECTPICKER.items,
125
- t
136
+ a.ITEM_IDS,
137
+ C.SELECTPICKER.items,
138
+ i
126
139
  ), this.api.updateValues({
127
- [s.ITEM_IDS]: i
140
+ [a.ITEM_IDS]: t
128
141
  });
129
142
  }
130
143
  _listenToFormUpdates() {
131
144
  this.api.onValueChanged(
132
- s.ITEMS_TYPE,
145
+ a.ITEMS_TYPE,
133
146
  (e) => this._onItemsTypeChange(e)
134
147
  ), this.api.onValueChanged(
135
- s.ORIENTATION,
148
+ a.ORIENTATION,
136
149
  (e) => this._onOrientationChange(e)
137
150
  ), this.api.onValueChanged(
138
- s.ITEM_IDS,
151
+ a.ITEM_IDS,
139
152
  (e) => this._onItemIdsChange(e)
140
153
  );
141
154
  }
142
155
  _renderTemplate() {
143
156
  const {
144
157
  orientation: e,
145
- itemsType: i,
146
- itemIds: t,
158
+ itemsType: t,
159
+ itemIds: i,
147
160
  currencySymbol: r,
148
161
  currencyLocation: n,
149
162
  formattedPrice: o
150
163
  } = this.store;
151
- this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(q({
164
+ this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(w({
152
165
  orientation: e,
153
- itemsType: i,
154
- itemId: t,
166
+ itemsType: t,
167
+ itemId: i,
155
168
  currencySymbol: r,
156
169
  currencyLocation: n,
157
170
  formattedPrice: o
158
- })).apply(new d("Updated template"));
171
+ })).apply(new p("Updated template"));
159
172
  }
160
173
  _getTemplateData() {
161
- const { itemsType: e, itemIds: i, formattedPrice: t } = this.store, r = N[e].findIndex((o) => o.value === i), n = r > -1 ? r : 0;
174
+ const { itemsType: e, itemIds: t, formattedPrice: i } = this.store, r = N[e].findIndex((o) => o.value === t), n = r > -1 ? r : 0;
162
175
  return {
163
176
  imageSrc: T.PAIRS_FOR_EXTENSION.imageSrc[e].DEFAULT[n],
164
177
  name: T.PAIRS_FOR_EXTENSION.name[e].DEFAULT[n],
165
- price: t ? T.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE_FORMATTED : T.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE,
166
- originalPrice: t ? T.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE_FORMATTED : T.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE,
178
+ price: i ? T.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE_FORMATTED : T.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE,
179
+ originalPrice: i ? T.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE_FORMATTED : T.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE,
167
180
  quantity: T.PAIRS_FOR_EXTENSION.quantity[e].DEFAULT,
168
181
  button: T.PAIRS_FOR_EXTENSION.button[e].DEFAULT_LABEL
169
182
  };
170
183
  }
171
184
  _updateImageSrc(e) {
172
- var t;
173
- const i = (t = this.currentNode) == null ? void 0 : t.querySelector(`[esd-extension-block-id="${l.IMAGE}"] img`);
174
- i && this.api.getDocumentModifier().modifyHtml(i).setAttribute("src", e).apply(new d("Updated image src"));
185
+ var i;
186
+ const t = (i = this.currentNode) == null ? void 0 : i.querySelector(`[esd-extension-block-id="${m.IMAGE}"] img`);
187
+ t && this.api.getDocumentModifier().modifyHtml(t).setAttribute("src", e).apply(new p("Updated image src"));
175
188
  }
176
189
  _updateName(e) {
177
190
  var n;
178
- const i = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${l.NAME}"]`);
179
- if (!i)
191
+ const t = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${m.NAME}"]`);
192
+ if (!t)
180
193
  return;
181
- const t = i.getInnerText().trim();
182
- let r = i.getInnerHTML();
183
- r = r.replace(t, e), this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(r).apply(new d("Updated name"));
194
+ const i = t.getInnerText().trim();
195
+ let r = t.getInnerHTML();
196
+ r = r.replace(i, e), this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(r).apply(new p("Updated name"));
184
197
  }
185
198
  _updatePrice(e) {
186
199
  var g;
187
- const i = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${l.PRICE}"]`);
188
- if (!i)
189
- return;
190
- const t = this._getParagraphFromBlock(i);
200
+ const t = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${m.PRICE}"]`);
191
201
  if (!t)
192
202
  return;
193
- const r = t.getInnerHTML() || "", n = t.getInnerText() || "", { currencySymbol: o, currencyLocation: a } = this.store, c = (o == null ? void 0 : o.trim()) || "", m = this._removeCurrencySymbol(n, c), u = this._replacePriceNumber(m, e), I = this._buildPriceContent(u, c, a), _ = r.replace(n, I);
194
- this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(_).apply(new d("Updated price"));
203
+ const i = this._getParagraphFromBlock(t);
204
+ if (!i)
205
+ return;
206
+ const r = i.getInnerHTML() || "", n = i.getInnerText() || "", { currencySymbol: o, currencyLocation: l } = this.store, c = (o == null ? void 0 : o.trim()) || "", s = this._removeCurrencySymbol(n, c), u = this._replacePriceNumber(s, e), d = this._buildPriceContent(u, c, l), _ = r.replace(n, d);
207
+ this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(_).apply(new p("Updated price"));
195
208
  }
196
209
  _updateOriginalPrice(e) {
197
210
  var y;
198
- const i = (y = this.currentNode) == null ? void 0 : y.querySelector(
199
- `[esd-extension-block-id="${l.ORIGINAL_PRICE}"]`
211
+ const t = (y = this.currentNode) == null ? void 0 : y.querySelector(
212
+ `[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
200
213
  );
201
- if (!i)
202
- return;
203
- const t = this._getParagraphFromBlock(i);
204
214
  if (!t)
205
215
  return;
206
- const r = t.querySelector("s");
216
+ const i = this._getParagraphFromBlock(t);
217
+ if (!i)
218
+ return;
219
+ const r = i.querySelector("s");
207
220
  if (!r)
208
221
  return;
209
- const n = r.getInnerHTML() || "", o = r.getInnerText() || "", { currencySymbol: a, currencyLocation: c } = this.store, m = (a == null ? void 0 : a.trim()) || "", u = this._removeCurrencySymbol(o, m), I = this._replacePriceNumber(u, e), _ = this._buildPriceContent(I, m, c), E = `<s>${n.replace(o, _)}</s>`;
210
- this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(E).apply(new d("Updated original price"));
222
+ const n = r.getInnerHTML() || "", o = r.getInnerText() || "", { currencySymbol: l, currencyLocation: c } = this.store, s = (l == null ? void 0 : l.trim()) || "", u = this._removeCurrencySymbol(o, s), d = this._replacePriceNumber(u, e), _ = this._buildPriceContent(d, s, c), E = `<s>${n.replace(o, _)}</s>`;
223
+ this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(E).apply(new p("Updated original price"));
211
224
  }
212
225
  _updateQuantity(e) {
213
- var a;
214
- const i = this.store.itemsType !== S.ITEMS_TYPE.BROWSED_ITEMS, t = (a = this.currentNode) == null ? void 0 : a.querySelector(`[esd-extension-block-id="${l.QUANTITY}"]`);
215
- if (!t)
226
+ var d;
227
+ const t = this.store.itemsType !== S.ITEMS_TYPE.BROWSED_ITEMS, i = A(this.currentNode), r = (i == null ? void 0 : i.quantityControlEnabled) !== !1, n = t && r, o = (d = this.currentNode) == null ? void 0 : d.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`);
228
+ if (!o)
216
229
  return;
217
- const r = t.getStyle("display") === "none", n = t.getInnerText().trim();
218
- let o = t.getInnerHTML();
219
- o = o.replace(n, e), this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(o).setStyle("display", i && !r ? "table-cell" : "none").apply(new d("Updated quantity"));
230
+ const l = this._getParagraphFromBlock(o);
231
+ if (!l)
232
+ return;
233
+ const c = l.getInnerText().trim();
234
+ let s = l.getInnerHTML();
235
+ s = s.replace(c, e);
236
+ const u = this.api.getDocumentModifier();
237
+ u.modifyHtml(l).setInnerHtml(s), u.modifyHtml(o).setStyle("display", n ? "table-cell" : "none"), u.apply(new p("Updated quantity"));
220
238
  }
221
- /**
222
- * @todo Optimize template reordering for performance.
223
- * @description Reorders the template structure based on current orientation and visibility settings.
224
- */
225
239
  _reOrderTemplate() {
226
- var I, _, g, E, y, O, C;
227
- const e = (I = this.currentNode) == null ? void 0 : I.querySelector(`[esd-extension-block-id="${l.IMAGE}"]`), i = (_ = this.currentNode) == null ? void 0 : _.querySelector(`[esd-extension-block-id="${l.NAME}"]`), t = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${l.PRICE}"]`), r = (E = this.currentNode) == null ? void 0 : E.querySelector(
228
- `[esd-extension-block-id="${l.ORIGINAL_PRICE}"]`
229
- ), n = (y = this.currentNode) == null ? void 0 : y.querySelector(`[esd-extension-block-id="${l.QUANTITY}"]`), o = (O = this.currentNode) == null ? void 0 : O.querySelector(`[esd-extension-block-id="${l.BUTTON}"]`), a = (C = this.currentNode) == null ? void 0 : C.querySelector("esd-config-block");
230
- if (!e || !i || !t || !r || !n || !o || !a)
240
+ var u, d, _, g, E, y;
241
+ const e = (u = this.currentNode) == null ? void 0 : u.querySelector(`[esd-extension-block-id="${m.IMAGE}"]`), t = (d = this.currentNode) == null ? void 0 : d.querySelector(`[esd-extension-block-id="${m.NAME}"]`), i = (_ = this.currentNode) == null ? void 0 : _.querySelector(`[esd-extension-block-id="${m.PRICE}"]`), r = (g = this.currentNode) == null ? void 0 : g.querySelector(
242
+ `[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
243
+ ), n = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`), o = (y = this.currentNode) == null ? void 0 : y.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`);
244
+ if (!e || !t || !i || !r || !n || !o)
231
245
  return;
232
- const { orientation: c } = this.store, m = c === S.ORIENTATION.VERTICAL;
233
- let u = m ? F : U;
234
- this.api.getDocumentModifier().modifyHtml(e.querySelector("img")).setAttribute("width", H.productImageWidth).apply(new d("Updated image width")), setTimeout(() => {
235
- u = u.replace("{-{-TEMPLATE_FIRST_LINE-}-}", m ? R : "").replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", i.getOuterHTML()).replaceAll("{-{-PRODUCT_PRICE-}-}", t.getOuterHTML()).replaceAll("{-{-PRODUCT_ORIGINAL_PRICE-}-}", r.getOuterHTML()).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", o.getOuterHTML()).replace("{-{-CONFIG_BLOCK-}-}", a.getOuterHTML()), u = u.trim().replace(R, "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(u).apply(new d("Reordered template"));
246
+ const { orientation: l } = this.store, c = l === S.ORIENTATION.VERTICAL;
247
+ let s = c ? $ : F;
248
+ this.api.getDocumentModifier().modifyHtml(e.querySelector("img")).setAttribute("width", P.productImageWidth).setAttribute("height", P.productImageWidth).apply(new p("Updated image width")), setTimeout(() => {
249
+ const M = L(i.getOuterHTML()), D = L(r.getOuterHTML());
250
+ s = s.replace("{-{-TEMPLATE_FIRST_LINE-}-}", c ? b : "").replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", t.getOuterHTML()).replaceAll("{-{-PRODUCT_PRICE-}-}", M).replaceAll("{-{-PRODUCT_ORIGINAL_PRICE-}-}", D).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", o.getOuterHTML()), s = s.trim().replace(b, "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(s).apply(new p("Reordered template"));
236
251
  }, 50);
237
252
  }
238
253
  _updateDataTypeAttributes(e) {
239
254
  if (!this.currentNode)
240
255
  return;
241
- const i = this.currentNode.closest(".ins-product-td"), t = this.api.getDocumentModifier();
242
- i && t.modifyHtml(i).setAttribute("data-type", e), this.currentNode.querySelectorAll("[data-type]").forEach((n) => {
256
+ const t = this.currentNode.closest(".ins-product-td"), i = this.api.getDocumentModifier();
257
+ t && i.modifyHtml(t).setAttribute("data-type", e), this.currentNode.querySelectorAll("[data-type]").forEach((n) => {
243
258
  const o = n;
244
- t.modifyHtml(o).setAttribute("data-type", e);
245
- }), t.apply(new d("Updated data-type attribute"));
259
+ i.modifyHtml(o).setAttribute("data-type", e);
260
+ }), i.apply(new p("Updated data-type attribute"));
246
261
  }
247
262
  _updateDataNumberAttributes(e) {
248
263
  if (!this.currentNode)
249
264
  return;
250
- const { itemsType: i } = this.store, t = N[i].findIndex((c) => c.value === e);
265
+ const { itemsType: t } = this.store, i = N[t].findIndex((c) => c.value === e);
251
266
  let r = "1";
252
- if (t >= 0)
253
- r = String(t + 1);
267
+ if (i >= 0)
268
+ r = String(i + 1);
254
269
  else if (e) {
255
270
  const c = e.match(/\((\d+)\)/);
256
271
  if (c) {
257
- const [, m] = c;
258
- r = m;
272
+ const [, s] = c;
273
+ r = s;
259
274
  }
260
275
  }
261
276
  const n = this.currentNode.closest(".ins-product-td"), o = this.api.getDocumentModifier();
262
277
  n && o.modifyHtml(n).setAttribute("data-number", r), this.currentNode.querySelectorAll("[data-number]").forEach((c) => {
263
- const m = c;
264
- o.modifyHtml(m).setAttribute("data-number", r);
265
- }), o.apply(new d("Updated data-number attribute"));
278
+ const s = c;
279
+ o.modifyHtml(s).setAttribute("data-number", r);
280
+ }), o.apply(new p("Updated data-number attribute"));
266
281
  }
267
282
  _reFillTemplate() {
268
283
  const e = this._getTemplateData();
@@ -272,14 +287,14 @@ class te extends x {
272
287
  var n;
273
288
  if (!this.currentNode)
274
289
  return;
275
- const e = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${l.NAME}"]`);
290
+ const e = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${m.NAME}"]`);
276
291
  if (!e)
277
292
  return;
278
- const i = e.querySelector("p > a");
279
- if (!i)
293
+ const t = e.querySelector("p > a");
294
+ if (!t)
280
295
  return;
281
- const t = this.store.orientation === S.ORIENTATION.VERTICAL, r = this.store.nameTrimming;
282
- this.api.getDocumentModifier().modifyHtml(i).setStyle("overflow", "hidden").setStyle("white-space", r ? "nowrap" : "normal").setStyle("text-overflow", r ? "ellipsis" : "unset").setStyle("max-width", t ? "130px" : "520px").setStyle("width", t ? "130px" : "520px").apply(new d("Recalculated trimming after orientation change"));
296
+ const i = this.store.orientation === S.ORIENTATION.HORIZONTAL, r = this.store.nameTrimming;
297
+ this.api.getDocumentModifier().modifyHtml(t).setStyle("overflow", "hidden").setStyle("white-space", r ? "nowrap" : "normal").setStyle("text-overflow", r ? "ellipsis" : "unset").setStyle("max-width", i ? "130px" : "520px").setStyle("width", i ? "130px" : "520px").apply(new p("Recalculated trimming after orientation change"));
283
298
  }
284
299
  _getParagraphFromBlock(e) {
285
300
  return e.querySelector("p");
@@ -287,30 +302,30 @@ class te extends x {
287
302
  _escapeRegex(e) {
288
303
  return e.replace(/[-\\^$*+?().|[\]{}]/g, "\\$&");
289
304
  }
290
- _removeCurrencySymbol(e, i) {
291
- const t = e || "";
292
- let r = t;
293
- if (i) {
294
- const n = new RegExp(`\\s*${this._escapeRegex(i)}\\s*`);
295
- r = t.replace(n, "").trim();
305
+ _removeCurrencySymbol(e, t) {
306
+ const i = e || "";
307
+ let r = i;
308
+ if (t) {
309
+ const n = new RegExp(`\\s*${this._escapeRegex(t)}\\s*`);
310
+ r = i.replace(n, "").trim();
296
311
  } else {
297
- const n = t.match(/([^0-9.,\s]+)/);
312
+ const n = i.match(/([^0-9.,\s]+)/);
298
313
  if (n && n[1]) {
299
- const o = n[1].trim(), a = new RegExp(`\\s*${this._escapeRegex(o)}\\s*`);
300
- r = t.replace(a, "").trim();
314
+ const o = n[1].trim(), l = new RegExp(`\\s*${this._escapeRegex(o)}\\s*`);
315
+ r = i.replace(l, "").trim();
301
316
  }
302
317
  }
303
318
  return r;
304
319
  }
305
- _replacePriceNumber(e, i) {
306
- const t = /([0-9][0-9,.]*)/;
307
- return e.replace(t, i).trim();
320
+ _replacePriceNumber(e, t) {
321
+ const i = /([0-9][0-9,.]*)/;
322
+ return e.replace(i, t).trim();
308
323
  }
309
- _buildPriceContent(e, i, t) {
310
- return i ? t === "1" ? `${e}&nbsp;${i}&nbsp;` : `${i}&nbsp;${e}` : e;
324
+ _buildPriceContent(e, t, i) {
325
+ return t ? i === "1" ? `${e}&nbsp;${t}` : `${t}&nbsp;${e}` : e;
311
326
  }
312
327
  }
313
328
  export {
314
- G as CONTROL_BLOCK_ID,
315
- te as ItemsBlockControl
329
+ B as CONTROL_BLOCK_ID,
330
+ J as ItemsBlockControl
316
331
  };
@@ -1,5 +1,5 @@
1
- var c = /* @__PURE__ */ ((i) => (i.BUTTON = "items-block-button", i.IMAGE = "items-block-image", i.ORIGINAL_PRICE = "items-block-original-price", i.PRICE = "items-block-price", i.QUANTITY = "items-block-quantity", i.NAME = "items-block-name", i))(c || {}), t = /* @__PURE__ */ ((i) => (i.BUTTON_ALIGN = "items-block-button-align-control", i.BUTTON_BORDER = "items-block-button-border-control", i.BUTTON_BORDER_RADIUS = "items-block-button-border-radius-control", i.BUTTON_COLOR = "items-block-button-color-control", i.BUTTON_FIT_TO_CONTENT = "items-block-button-fit-to-content-control", i.BUTTON_FONT_FAMILY = "items-block-button-font-family-control", i.BUTTON_MARGINS = "items-block-button-margins-control", i.BUTTON_PADDINGS = "items-block-button-paddings-control", i.BUTTON_TEXT = "items-block-button-text-control", i.BUTTON_TEXT_SIZE = "items-block-button-text-size-control", i.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "items-block-button-text-style-and-font-color-control", i.BUTTON_LINK = "items-block-button-link-control", i.IMAGE_SIZE = "items-block-image-size-control", i.IMAGE_MARGINS = "items-block-image-margins-control", i.IMAGE_LINK = "items-block-image-link-control", i.ORIGINAL_PRICE_ALIGN = "items-block-original-price-align-control", i.ORIGINAL_PRICE_COLOR = "items-block-original-price-color-control", i.ORIGINAL_PRICE_SIZE = "items-block-original-price-size-control", i.ORIGINAL_PRICE_STYLE = "items-block-original-price-style-control", i.ORIGINAL_PRICE_FONT_FAMILY = "items-block-original-price-font-family-control", i.ORIGINAL_PRICE_BACKGROUND = "items-block-original-price-background-control", i.ORIGINAL_PRICE_PADDINGS = "items-block-original-price-paddings-control", i.PRICE_ALIGN = "items-block-price-align-control", i.PRICE_COLOR = "items-block-price-color-control", i.PRICE_SIZE = "items-block-price-size-control", i.PRICE_STYLE = "items-block-price-style-control", i.PRICE_FONT_FAMILY = "items-block-price-font-family-control", i.PRICE_BACKGROUND = "items-block-price-background-control", i.PRICE_PADDINGS = "items-block-price-paddings-control", i.PRICE_HIDE_DISCOUNT = "items-block-price-hide-discount-control", i.PRICE_FORMATTED_PRICE = "items-block-price-formatted-price-control", i.PRICE_CURRENCY_SYMBOL = "items-block-price-currency-symbol-control", i.PRICE_CURRENCY_LOCATION = "items-block-price-currency-location-control", i.PRICE_ORIENTATION = "items-block-price-orientation-control", i.NAME_ALIGN = "items-block-name-align-control", i.NAME_COLOR = "items-block-name-color-control", i.NAME_SIZE = "items-block-name-size-control", i.NAME_STYLE = "items-block-name-style-control", i.NAME_FONT_FAMILY = "items-block-name-font-family-control", i.NAME_BACKGROUND = "items-block-name-background-control", i.NAME_TRIMMING = "items-block-name-trimming-control", i.NAME_PADDINGS = "items-block-name-paddings-control", i.QUANTITY_ALIGN = "items-block-quantity-align-control", i.QUANTITY_COLOR = "items-block-quantity-color-control", i.QUANTITY_FONT_FAMILY = "items-block-quantity-font-family-control", i.QUANTITY_PADDINGS = "items-block-quantity-paddings-control", i.QUANTITY_SIZE = "items-block-quantity-size-control", i.QUANTITY_STYLE = "items-block-quantity-style-control", i))(t || {});
1
+ var c = /* @__PURE__ */ ((i) => (i.BUTTON = "items-block-button", i.IMAGE = "items-block-image", i.ORIGINAL_PRICE = "items-block-original-price", i.PRICE = "items-block-price", i.QUANTITY = "items-block-quantity", i.NAME = "items-block-name", i))(c || {}), _ = /* @__PURE__ */ ((i) => (i.BUTTON_ALIGN = "items-block-button-align-control", i.BUTTON_BORDER = "items-block-button-border-control", i.BUTTON_BORDER_RADIUS = "items-block-button-border-radius-control", i.BUTTON_COLOR = "items-block-button-color-control", i.BUTTON_FIT_TO_CONTENT = "items-block-button-fit-to-content-control", i.BUTTON_FONT_FAMILY = "items-block-button-font-family-control", i.BUTTON_MARGINS = "items-block-button-margins-control", i.BUTTON_PADDINGS = "items-block-button-paddings-control", i.BUTTON_TEXT = "items-block-button-text-control", i.BUTTON_TEXT_SIZE = "items-block-button-text-size-control", i.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "items-block-button-text-style-and-font-color-control", i.BUTTON_LINK = "items-block-button-link-control", i.IMAGE_SIZE = "items-block-image-size-control", i.IMAGE_MARGINS = "items-block-image-margins-control", i.IMAGE_LINK = "items-block-image-link-control", i.ORIGINAL_PRICE_ALIGN = "items-block-original-price-align-control", i.ORIGINAL_PRICE_COLOR = "items-block-original-price-color-control", i.ORIGINAL_PRICE_SIZE = "items-block-original-price-size-control", i.ORIGINAL_PRICE_STYLE = "items-block-original-price-style-control", i.ORIGINAL_PRICE_FONT_FAMILY = "items-block-original-price-font-family-control", i.ORIGINAL_PRICE_BACKGROUND = "items-block-original-price-background-control", i.ORIGINAL_PRICE_PADDINGS = "items-block-original-price-paddings-control", i.PRICE_ALIGN = "items-block-price-align-control", i.PRICE_COLOR = "items-block-price-color-control", i.PRICE_SIZE = "items-block-price-size-control", i.PRICE_STYLE = "items-block-price-style-control", i.PRICE_FONT_FAMILY = "items-block-price-font-family-control", i.PRICE_BACKGROUND = "items-block-price-background-control", i.PRICE_PADDINGS = "items-block-price-paddings-control", i.PRICE_HIDE_DISCOUNT = "items-block-price-hide-discount-control", i.PRICE_FORMATTED_PRICE = "items-block-price-formatted-price-control", i.PRICE_SINGLE_PRICE = "items-block-price-single-price-control", i.PRICE_CURRENCY_SYMBOL = "items-block-price-currency-symbol-control", i.PRICE_CURRENCY_LOCATION = "items-block-price-currency-location-control", i.PRICE_ORIENTATION = "items-block-price-orientation-control", i.NAME_ALIGN = "items-block-name-align-control", i.NAME_COLOR = "items-block-name-color-control", i.NAME_SIZE = "items-block-name-size-control", i.NAME_STYLE = "items-block-name-style-control", i.NAME_FONT_FAMILY = "items-block-name-font-family-control", i.NAME_BACKGROUND = "items-block-name-background-control", i.NAME_TRIMMING = "items-block-name-trimming-control", i.NAME_PADDINGS = "items-block-name-paddings-control", i.QUANTITY_ALIGN = "items-block-quantity-align-control", i.QUANTITY_COLOR = "items-block-quantity-color-control", i.QUANTITY_FONT_FAMILY = "items-block-quantity-font-family-control", i.QUANTITY_PADDINGS = "items-block-quantity-paddings-control", i.QUANTITY_SIZE = "items-block-quantity-size-control", i.QUANTITY_STYLE = "items-block-quantity-style-control", i))(_ || {});
2
2
  export {
3
- t as ItemsBlockControlId,
3
+ _ as ItemsBlockControlId,
4
4
  c as ItemsBlockId
5
5
  };