@useinsider/guido 3.18.0 → 3.18.1-beta.74a13e4

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.
@@ -1,21 +1,22 @@
1
- import { ModificationDescription as S, UEAttr as L } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { CommonControl as k } from "../../common-control.js";
1
+ import { ModificationDescription as N, UEAttr as L } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { CommonControl as $ } from "../../common-control.js";
3
+ import { reorientBlockCellPadding as D, nameMaxWidthFor as f } from "../constants/cardLayout.js";
3
4
  import { ItemsBlockId as I } from "../enums/controlEnums.js";
4
- import { productPairs as y, templateFirstLine as D } from "../enums/productEnums.js";
5
- import { SETTINGS_ENUMS as d, ItemTypeOptions as x, OrientationOptions as F, ItemInCartOptions as O, DefaultConfigValues as H } from "../enums/settingsEnums.js";
6
- import $ from "../layouts/horizontal.html.js";
7
- import w from "../layouts/vertical.html.js";
8
- import { getDefaultTemplate as q, wrapInTableRow as C } from "../template.js";
9
- import { findNameTextNode as V } from "../utils/nameNode.js";
10
- import { getItemsBlockConfig as _, setItemsBlockConfig as M, escapeReplacement as g, deriveItemNumber as B } from "../utils/nodeConfigUtils.js";
11
- const G = "ui-elements-items-block", m = {
5
+ import { productPairs as y, templateFirstLine as x } from "../enums/productEnums.js";
6
+ import { SETTINGS_ENUMS as T, ItemTypeOptions as H, OrientationOptions as w, ItemInCartOptions as g, DefaultConfigValues as U } from "../enums/settingsEnums.js";
7
+ import q from "../layouts/horizontal.html.js";
8
+ import V from "../layouts/vertical.html.js";
9
+ import { getDefaultTemplate as B, wrapInTableRow as C, applyPriceOrientationStyles as G } from "../template.js";
10
+ import { findNameTextNode as Y } from "../utils/nameNode.js";
11
+ import { getItemsBlockConfig as _, setItemsBlockConfig as M, escapeReplacement as A, deriveItemNumber as v } from "../utils/nodeConfigUtils.js";
12
+ const Q = "ui-elements-items-block", p = {
12
13
  ITEMS_TYPE: "itemsType",
13
14
  ORIENTATION: "orientation",
14
15
  ITEM_IDS: "itemIds"
15
16
  };
16
- class te extends k {
17
+ class se extends $ {
17
18
  getId() {
18
- return G;
19
+ return Q;
19
20
  }
20
21
  getTemplate() {
21
22
  return `
@@ -29,18 +30,18 @@ class te extends k {
29
30
  onRender() {
30
31
  const e = _(this.currentNode);
31
32
  this.api.updateValues({
32
- [m.ORIENTATION]: (e == null ? void 0 : e.orientation) ?? d.ORIENTATION.VERTICAL,
33
- [m.ITEMS_TYPE]: (e == null ? void 0 : e.type) ?? d.ITEMS_TYPE.CART_ITEMS,
34
- [m.ITEM_IDS]: (e == null ? void 0 : e.itemsSelectValue) ?? ""
33
+ [p.ORIENTATION]: (e == null ? void 0 : e.orientation) ?? T.ORIENTATION.VERTICAL,
34
+ [p.ITEMS_TYPE]: (e == null ? void 0 : e.type) ?? T.ITEMS_TYPE.CART_ITEMS,
35
+ [p.ITEM_IDS]: (e == null ? void 0 : e.itemsSelectValue) ?? ""
35
36
  }), this._listenToFormUpdates();
36
37
  }
37
38
  onTemplateNodeUpdated(e) {
38
39
  super.onTemplateNodeUpdated(e), console.debug("Items Block Config", e.getNodeConfig()), this.handleBlockInstanceChange(() => {
39
40
  const r = _(this.currentNode);
40
41
  this.api.updateValues({
41
- [m.ORIENTATION]: (r == null ? void 0 : r.orientation) ?? d.ORIENTATION.VERTICAL,
42
- [m.ITEMS_TYPE]: (r == null ? void 0 : r.type) ?? d.ITEMS_TYPE.CART_ITEMS,
43
- [m.ITEM_IDS]: (r == null ? void 0 : r.itemsSelectValue) ?? ""
42
+ [p.ORIENTATION]: (r == null ? void 0 : r.orientation) ?? T.ORIENTATION.VERTICAL,
43
+ [p.ITEMS_TYPE]: (r == null ? void 0 : r.type) ?? T.ITEMS_TYPE.CART_ITEMS,
44
+ [p.ITEM_IDS]: (r == null ? void 0 : r.itemsSelectValue) ?? ""
44
45
  }), this._initializeSelectItems();
45
46
  });
46
47
  }
@@ -49,10 +50,10 @@ class te extends k {
49
50
  ${this._GuOneColumn([
50
51
  this._GuLabel({ text: "Item Type" }),
51
52
  this._GuSelect({
52
- name: m.ITEMS_TYPE,
53
+ name: p.ITEMS_TYPE,
53
54
  className: "es-100",
54
55
  placeholder: "Select Item Type",
55
- options: x
56
+ options: H
56
57
  })
57
58
  ])}
58
59
  `;
@@ -62,8 +63,8 @@ class te extends k {
62
63
  ${this._GuTwoColumns([
63
64
  this._GuLabel({ text: "Orientation" }),
64
65
  this._GuRadioButton({
65
- name: m.ORIENTATION,
66
- buttons: F
66
+ name: p.ORIENTATION,
67
+ buttons: w
67
68
  })
68
69
  ])}
69
70
  `;
@@ -73,7 +74,7 @@ class te extends k {
73
74
  ${this._GuTwoColumns([
74
75
  this._GuLabel({ text: "Item in Cart" }),
75
76
  this._GuSelect({
76
- name: m.ITEM_IDS,
77
+ name: p.ITEM_IDS,
77
78
  className: "es-100",
78
79
  placeholder: "Select Item In Cart",
79
80
  options: []
@@ -82,32 +83,32 @@ class te extends k {
82
83
  `;
83
84
  }
84
85
  _onOrientationChange(e) {
85
- this.api.updateValues({ [m.ORIENTATION]: e });
86
+ this.api.updateValues({ [p.ORIENTATION]: e });
86
87
  const r = this.api.getDocumentModifier();
87
88
  M(this.currentNode, this.api, {
88
89
  orientation: e,
89
90
  priceOrientation: "horizontal"
90
- }, r), r.apply(new S("Changed orientation")), this._reOrderTemplate(), setTimeout(() => {
91
+ }, r), r.apply(new N("Changed orientation")), this._reOrderTemplate(), setTimeout(() => {
91
92
  this._recalculateTrimming();
92
93
  }, 50);
93
94
  }
94
95
  _onItemsTypeChange(e) {
95
- const r = d.ITEMS_TYPE[e], t = O[e], i = t == null ? void 0 : t[0];
96
+ const r = T.ITEMS_TYPE[e], t = g[e], i = t == null ? void 0 : t[0];
96
97
  if (!r || !i)
97
98
  return;
98
- const n = i.value, s = i.value.replace("Url}}", "Image}}"), o = this.api.getDocumentModifier();
99
+ const n = i.value, s = i.value.replace("Url}}", "Image}}"), a = this.api.getDocumentModifier();
99
100
  M(this.currentNode, this.api, {
100
101
  source: r,
101
102
  type: r,
102
103
  itemsSelectValue: i.value,
103
104
  imageLink: s,
104
105
  buttonLink: n
105
- }, o), this._updateDataTypeAttributes(r, o), this._initializeSelectItems();
106
- const c = this._getTemplateData(r, i.value);
107
- this._updateImageSrc(c.imageSrc, o), this._updateName(c.name, o), this._updatePrice(c.price, o), this._updateOriginalPrice(c.originalPrice, o), this._updateQuantity(c.quantity, r, o), o.apply(new S("Updated items type"));
106
+ }, a), this._updateDataTypeAttributes(r, a), this._initializeSelectItems();
107
+ const l = this._getTemplateData(r, i.value);
108
+ this._updateImageSrc(l.imageSrc, a), this._updateName(l.name, a), this._updatePrice(l.price, a), this._updateOriginalPrice(l.originalPrice, a), this._updateQuantity(l.quantity, r, a), a.apply(new N("Updated items type"));
108
109
  }
109
110
  _onItemIdsChange(e) {
110
- this.api.updateValues({ [m.ITEM_IDS]: e });
111
+ this.api.updateValues({ [p.ITEM_IDS]: e });
111
112
  const r = e, t = e.replace("Url}}", "Image}}"), i = this.api.getDocumentModifier();
112
113
  M(this.currentNode, this.api, {
113
114
  itemsSelectValue: e,
@@ -115,58 +116,58 @@ class te extends k {
115
116
  buttonLink: r
116
117
  }, i), this._updateDataNumberAttributes(e, i);
117
118
  const n = this._getTemplateData(void 0, e);
118
- this._updateImageSrc(n.imageSrc, i), this._updateName(n.name, i), this._updatePrice(n.price, i), this._updateOriginalPrice(n.originalPrice, i), this._updateQuantity(n.quantity, void 0, i), i.apply(new S("Updated item selection"));
119
+ this._updateImageSrc(n.imageSrc, i), this._updateName(n.name, i), this._updatePrice(n.price, i), this._updateOriginalPrice(n.originalPrice, i), this._updateQuantity(n.quantity, void 0, i), i.apply(new N("Updated item selection"));
119
120
  }
120
121
  _initializeSelectItems() {
121
122
  this.api.setUIEAttribute(
122
- m.ITEMS_TYPE,
123
+ p.ITEMS_TYPE,
123
124
  L.SELECTPICKER.items,
124
- x
125
+ H
125
126
  );
126
- const e = _(this.currentNode), r = (e == null ? void 0 : e.type) ?? d.ITEMS_TYPE.CART_ITEMS, t = (e == null ? void 0 : e.itemsSelectValue) ?? "";
127
+ const e = _(this.currentNode), r = (e == null ? void 0 : e.type) ?? T.ITEMS_TYPE.CART_ITEMS, t = (e == null ? void 0 : e.itemsSelectValue) ?? "";
127
128
  this.api.updateValues({
128
- [m.ITEMS_TYPE]: r
129
+ [p.ITEMS_TYPE]: r
129
130
  });
130
- const i = O[r];
131
+ const i = g[r];
131
132
  this.api.setUIEAttribute(
132
- m.ITEM_IDS,
133
+ p.ITEM_IDS,
133
134
  L.SELECTPICKER.items,
134
135
  i
135
136
  ), this.api.updateValues({
136
- [m.ITEM_IDS]: t
137
+ [p.ITEM_IDS]: t
137
138
  });
138
139
  }
139
140
  _listenToFormUpdates() {
140
141
  this.api.onValueChanged(
141
- m.ITEMS_TYPE,
142
+ p.ITEMS_TYPE,
142
143
  (e) => this._onItemsTypeChange(e)
143
144
  ), this.api.onValueChanged(
144
- m.ORIENTATION,
145
+ p.ORIENTATION,
145
146
  (e) => this._onOrientationChange(e)
146
147
  ), this.api.onValueChanged(
147
- m.ITEM_IDS,
148
+ p.ITEM_IDS,
148
149
  (e) => this._onItemIdsChange(e)
149
150
  );
150
151
  }
151
152
  _renderTemplate() {
152
- const e = _(this.currentNode), r = (e == null ? void 0 : e.orientation) ?? d.ORIENTATION.VERTICAL, t = (e == null ? void 0 : e.type) ?? d.ITEMS_TYPE.CART_ITEMS, i = (e == null ? void 0 : e.itemsSelectValue) ?? "", n = (e == null ? void 0 : e.priceCurrencySymbol) ?? "", s = (e == null ? void 0 : e.priceCurrencyLocation) ?? "0", o = (e == null ? void 0 : e.priceFormatted) ?? !1;
153
- this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(q({
153
+ const e = _(this.currentNode), r = (e == null ? void 0 : e.orientation) ?? T.ORIENTATION.VERTICAL, t = (e == null ? void 0 : e.type) ?? T.ITEMS_TYPE.CART_ITEMS, i = (e == null ? void 0 : e.itemsSelectValue) ?? "", n = (e == null ? void 0 : e.priceCurrencySymbol) ?? "", s = (e == null ? void 0 : e.priceCurrencyLocation) ?? "0", a = (e == null ? void 0 : e.priceFormatted) ?? !1;
154
+ this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(B({
154
155
  orientation: r,
155
156
  itemsType: t,
156
157
  itemId: i,
157
158
  currencySymbol: n,
158
159
  currencyLocation: s,
159
- formattedPrice: o
160
- })).apply(new S("Updated template"));
160
+ formattedPrice: a
161
+ })).apply(new N("Updated template"));
161
162
  }
162
163
  _getTemplateData(e, r) {
163
- const t = _(this.currentNode), i = e ?? (t == null ? void 0 : t.type) ?? d.ITEMS_TYPE.CART_ITEMS, n = r ?? (t == null ? void 0 : t.itemsSelectValue) ?? "", s = (t == null ? void 0 : t.priceFormatted) ?? !1, o = (t == null ? void 0 : t.priceSinglePrice) ?? !1, c = O[i].findIndex((h) => h.value === n), a = c > -1 ? c : 0, l = y.PAIRS_FOR_EXTENSION.price[i], T = y.PAIRS_FOR_EXTENSION.originalPrice[i];
164
- let u, p;
165
- return o ? (u = s ? l.DEFAULT_SINGLE_PRICE_FORMATTED : l.DEFAULT_SINGLE_PRICE, p = s ? T.DEFAULT_SINGLE_PRICE_FORMATTED : T.DEFAULT_SINGLE_PRICE) : (u = s ? l.DEFAULT_PRICE_FORMATTED : l.DEFAULT_PRICE, p = s ? T.DEFAULT_PRICE_FORMATTED : T.DEFAULT_PRICE), {
166
- imageSrc: y.PAIRS_FOR_EXTENSION.imageSrc[i].DEFAULT[a],
167
- name: y.PAIRS_FOR_EXTENSION.name[i].DEFAULT[a],
168
- price: u,
169
- originalPrice: p,
164
+ const t = _(this.currentNode), i = e ?? (t == null ? void 0 : t.type) ?? T.ITEMS_TYPE.CART_ITEMS, n = r ?? (t == null ? void 0 : t.itemsSelectValue) ?? "", s = (t == null ? void 0 : t.priceFormatted) ?? !1, a = (t == null ? void 0 : t.priceSinglePrice) ?? !1, l = g[i].findIndex((h) => h.value === n), c = l > -1 ? l : 0, o = y.PAIRS_FOR_EXTENSION.price[i], d = y.PAIRS_FOR_EXTENSION.originalPrice[i];
165
+ let m, u;
166
+ return a ? (m = s ? o.DEFAULT_SINGLE_PRICE_FORMATTED : o.DEFAULT_SINGLE_PRICE, u = s ? d.DEFAULT_SINGLE_PRICE_FORMATTED : d.DEFAULT_SINGLE_PRICE) : (m = s ? o.DEFAULT_PRICE_FORMATTED : o.DEFAULT_PRICE, u = s ? d.DEFAULT_PRICE_FORMATTED : d.DEFAULT_PRICE), {
167
+ imageSrc: y.PAIRS_FOR_EXTENSION.imageSrc[i].DEFAULT[c],
168
+ name: y.PAIRS_FOR_EXTENSION.name[i].DEFAULT[c],
169
+ price: m,
170
+ originalPrice: u,
170
171
  quantity: y.PAIRS_FOR_EXTENSION.quantity[i].DEFAULT,
171
172
  button: y.PAIRS_FOR_EXTENSION.button[i].DEFAULT_LABEL
172
173
  };
@@ -183,71 +184,79 @@ class te extends k {
183
184
  return;
184
185
  const i = t.getInnerText().trim();
185
186
  let n = t.getInnerHTML().trim();
186
- n = n.replace(i, g(e)), r.modifyHtml(t).setInnerHtml(n);
187
+ n = n.replace(i, A(e)), r.modifyHtml(t).setInnerHtml(n);
187
188
  }
188
189
  _updatePrice(e, r) {
189
- var o;
190
- const t = ((o = this.currentNode) == null ? void 0 : o.querySelectorAll(
190
+ var a;
191
+ const t = ((a = this.currentNode) == null ? void 0 : a.querySelectorAll(
191
192
  `[esd-extension-block-id="${I.PRICE}"]`
192
193
  )) || [], i = _(this.currentNode), n = (i == null ? void 0 : i.priceCurrencySymbol) ?? "", s = (i == null ? void 0 : i.priceCurrencyLocation) ?? "0";
193
- t.forEach((c) => {
194
- const a = this._getParagraphFromBlock(c);
195
- if (!a)
194
+ t.forEach((l) => {
195
+ const c = this._getParagraphFromBlock(l);
196
+ if (!c)
196
197
  return;
197
- const l = a.getInnerHTML().trim() || "", T = a.getInnerText().trim() || "", u = (n == null ? void 0 : n.trim()) || "", p = this._removeCurrencySymbol(T, u), h = this._replacePriceNumber(p, e), E = this._buildPriceContent(h, u, s), N = l.replace(T, g(E));
198
- r.modifyHtml(a).setInnerHtml(N);
198
+ const o = c.getInnerHTML().trim() || "", d = c.getInnerText().trim() || "", m = (n == null ? void 0 : n.trim()) || "", u = this._removeCurrencySymbol(d, m), h = this._replacePriceNumber(u, e), E = this._buildPriceContent(h, m, s), S = o.replace(d, A(E));
199
+ r.modifyHtml(c).setInnerHtml(S);
199
200
  });
200
201
  }
201
202
  _updateOriginalPrice(e, r) {
202
- var o;
203
- const t = ((o = this.currentNode) == null ? void 0 : o.querySelectorAll(
203
+ var a;
204
+ const t = ((a = this.currentNode) == null ? void 0 : a.querySelectorAll(
204
205
  `[esd-extension-block-id="${I.ORIGINAL_PRICE}"]`
205
206
  )) || [], i = _(this.currentNode), n = (i == null ? void 0 : i.priceCurrencySymbol) ?? "", s = (i == null ? void 0 : i.priceCurrencyLocation) ?? "0";
206
- t.forEach((c) => {
207
- const a = this._getParagraphFromBlock(c);
208
- if (!a)
207
+ t.forEach((l) => {
208
+ const c = this._getParagraphFromBlock(l);
209
+ if (!c)
209
210
  return;
210
- const l = a.querySelector("s");
211
- if (!l)
211
+ const o = c.querySelector("s");
212
+ if (!o)
212
213
  return;
213
- const T = l.getInnerHTML().trim() || "", u = l.getInnerText().trim() || "", p = (n == null ? void 0 : n.trim()) || "", h = this._removeCurrencySymbol(u, p), E = this._replacePriceNumber(h, e), N = this._buildPriceContent(E, p, s), R = `<s>${T.replace(u, g(N))}</s>`;
214
- r.modifyHtml(a).setInnerHtml(R);
214
+ const d = o.getInnerHTML().trim() || "", m = o.getInnerText().trim() || "", u = (n == null ? void 0 : n.trim()) || "", h = this._removeCurrencySymbol(m, u), E = this._replacePriceNumber(h, e), S = this._buildPriceContent(E, u, s), R = `<s>${d.replace(m, A(S))}</s>`;
215
+ r.modifyHtml(c).setInnerHtml(R);
215
216
  });
216
217
  }
217
218
  _updateQuantity(e, r, t) {
218
219
  var h;
219
- const i = _(this.currentNode), s = (r ?? (i == null ? void 0 : i.type) ?? d.ITEMS_TYPE.CART_ITEMS) !== d.ITEMS_TYPE.BROWSED_ITEMS, o = (i == null ? void 0 : i.quantityControlEnabled) !== !1, c = s && o, a = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${I.QUANTITY}"]`);
220
- if (!a)
220
+ const i = _(this.currentNode), s = (r ?? (i == null ? void 0 : i.type) ?? T.ITEMS_TYPE.CART_ITEMS) !== T.ITEMS_TYPE.BROWSED_ITEMS, a = (i == null ? void 0 : i.quantityControlEnabled) !== !1, l = s && a, c = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${I.QUANTITY}"]`);
221
+ if (!c)
221
222
  return;
222
- const l = this._getParagraphFromBlock(a);
223
- if (!l)
223
+ const o = this._getParagraphFromBlock(c);
224
+ if (!o)
224
225
  return;
225
- const T = l.getInnerText().trim();
226
- let u = l.getInnerHTML().trim();
227
- function p(E, N, A) {
226
+ const d = o.getInnerText().trim();
227
+ let m = o.getInnerHTML().trim();
228
+ function u(E, S, P) {
228
229
  return E.replace(
229
- new RegExp(`(>\\s*)?${N}(\\s*<)?`, "g"),
230
- `$1${A}$2`
230
+ new RegExp(`(>\\s*)?${S}(\\s*<)?`, "g"),
231
+ `$1${P}$2`
231
232
  );
232
233
  }
233
- u = p(u, T, e), t.modifyHtml(l).setInnerHtml(u), t.modifyHtml(a).setStyle("display", c ? "table-cell" : "none");
234
+ m = u(m, d, e), t.modifyHtml(o).setInnerHtml(m), t.modifyHtml(c).setStyle("display", l ? "table-cell" : "none");
234
235
  }
235
236
  _reOrderTemplate(e) {
236
- var h, E, N, A, R, b;
237
- const r = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${I.IMAGE}"]`), t = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${I.NAME}"]`), i = ((N = this.currentNode) == null ? void 0 : N.querySelectorAll(
237
+ var h, E, S, P, R, b;
238
+ const r = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${I.IMAGE}"]`), t = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${I.NAME}"]`), i = ((S = this.currentNode) == null ? void 0 : S.querySelectorAll(
238
239
  `[esd-extension-block-id="${I.PRICE}"]`
239
- )) || [], n = ((A = this.currentNode) == null ? void 0 : A.querySelectorAll(
240
+ )) || [], n = ((P = this.currentNode) == null ? void 0 : P.querySelectorAll(
240
241
  `[esd-extension-block-id="${I.ORIGINAL_PRICE}"]`
241
- )) || [], [s] = i, [o] = n, c = (R = this.currentNode) == null ? void 0 : R.querySelector(`[esd-extension-block-id="${I.QUANTITY}"]`), a = (b = this.currentNode) == null ? void 0 : b.querySelector(`[esd-extension-block-id="${I.BUTTON}"]`);
242
- if (!r || !t || !s || !o || !c || !a)
242
+ )) || [], [s] = i, [a] = n, l = (R = this.currentNode) == null ? void 0 : R.querySelector(`[esd-extension-block-id="${I.QUANTITY}"]`), c = (b = this.currentNode) == null ? void 0 : b.querySelector(`[esd-extension-block-id="${I.BUTTON}"]`);
243
+ if (!r || !t || !s || !a || !l || !c)
243
244
  return;
244
- const l = _(this.currentNode), u = ((l == null ? void 0 : l.orientation) ?? d.ORIENTATION.VERTICAL) === d.ORIENTATION.VERTICAL;
245
- let p = u ? w : $;
245
+ const o = _(this.currentNode), d = (o == null ? void 0 : o.orientation) ?? T.ORIENTATION.VERTICAL, m = d === T.ORIENTATION.VERTICAL;
246
+ let u = m ? V : q;
246
247
  setTimeout(() => {
247
- const f = g(s.getOuterHTML()), U = g(o.getOuterHTML());
248
- p = p.replace("{-{-TEMPLATE_FIRST_LINE-}-}", u ? D : "").replace("{-{-PRODUCT_IMAGE-}-}", C(r.getOuterHTML())).replace("{-{-PRODUCT_NAME-}-}", C(t.getOuterHTML())).replaceAll("{-{-PRODUCT_PRICE-}-}", C(f)).replaceAll("{-{-PRODUCT_ORIGINAL_PRICE-}-}", C(U)).replace("{-{-PRODUCT_QUANTITY-}-}", C(c.getOuterHTML())).replace("{-{-PRODUCT_BUTTON-}-}", C(a.getOuterHTML())), p = p.trim().replace(D, "").slice(0, -5);
249
- const P = e ?? this.api.getDocumentModifier();
250
- P.modifyHtml(r.querySelector("img")).setAttribute("width", H.productImageWidth).setAttribute("height", H.productImageWidth), P.modifyHtml(this.currentNode).setInnerHtml(p), e || P.apply(new S("Reordered template"));
248
+ const k = A(D(s.getOuterHTML(), m)), F = A(
249
+ D(a.getOuterHTML(), m)
250
+ );
251
+ u = u.replace("{-{-TEMPLATE_FIRST_LINE-}-}", m ? x : "").replace("{-{-PRODUCT_IMAGE-}-}", C(r.getOuterHTML())).replace("{-{-PRODUCT_NAME-}-}", C(t.getOuterHTML())).replaceAll("{-{-PRODUCT_PRICE-}-}", C(k)).replaceAll("{-{-PRODUCT_ORIGINAL_PRICE-}-}", C(F)).replace("{-{-PRODUCT_QUANTITY-}-}", C(l.getOuterHTML())).replace("{-{-PRODUCT_BUTTON-}-}", C(c.getOuterHTML())), u = G(
252
+ u,
253
+ d,
254
+ (o == null ? void 0 : o.priceOrientation) ?? "horizontal",
255
+ (o == null ? void 0 : o.priceVisible) ?? !0,
256
+ (o == null ? void 0 : o.originalPriceVisible) ?? !0
257
+ ), u = u.trim().replace(x, "").slice(0, -5);
258
+ const O = e ?? this.api.getDocumentModifier();
259
+ O.modifyHtml(r.querySelector("img")).setAttribute("width", U.productImageWidth).setAttribute("height", U.productImageWidth), O.modifyHtml(this.currentNode).setInnerHtml(u), e || O.apply(new N("Reordered template"));
251
260
  }, 50);
252
261
  }
253
262
  _updateDataTypeAttributes(e, r) {
@@ -262,28 +271,28 @@ class te extends k {
262
271
  _updateDataNumberAttributes(e, r) {
263
272
  if (!this.currentNode)
264
273
  return;
265
- const t = _(this.currentNode), i = (t == null ? void 0 : t.type) ?? d.ITEMS_TYPE.CART_ITEMS, n = B(e, i), s = this.currentNode.closest(".ins-product-td");
266
- s && r.modifyHtml(s).setAttribute("data-number", n), this.currentNode.querySelectorAll("[data-number]").forEach((c) => {
267
- const a = c;
268
- r.modifyHtml(a).setAttribute("data-number", n);
274
+ const t = _(this.currentNode), i = (t == null ? void 0 : t.type) ?? T.ITEMS_TYPE.CART_ITEMS, n = v(e, i), s = this.currentNode.closest(".ins-product-td");
275
+ s && r.modifyHtml(s).setAttribute("data-number", n), this.currentNode.querySelectorAll("[data-number]").forEach((l) => {
276
+ const c = l;
277
+ r.modifyHtml(c).setAttribute("data-number", n);
269
278
  });
270
279
  }
271
280
  _reFillTemplate(e) {
272
281
  const r = this._getTemplateData(e), t = this.api.getDocumentModifier();
273
- this._updateImageSrc(r.imageSrc, t), this._updateName(r.name, t), this._updatePrice(r.price, t), this._updateOriginalPrice(r.originalPrice, t), this._updateQuantity(r.quantity, e, t), t.apply(new S("Refilled template"));
282
+ this._updateImageSrc(r.imageSrc, t), this._updateName(r.name, t), this._updatePrice(r.price, t), this._updateOriginalPrice(r.originalPrice, t), this._updateQuantity(r.quantity, e, t), t.apply(new N("Refilled template"));
274
283
  }
275
284
  _recalculateTrimming() {
276
- var n;
285
+ var s;
277
286
  if (!this.currentNode)
278
287
  return;
279
- const e = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${I.NAME}"]`);
288
+ const e = (s = this.currentNode) == null ? void 0 : s.querySelector(`[esd-extension-block-id="${I.NAME}"]`);
280
289
  if (!e)
281
290
  return;
282
- const r = V(e);
291
+ const r = Y(e);
283
292
  if (!r)
284
293
  return;
285
- const t = _(this.currentNode), i = (t == null ? void 0 : t.nameTrimming) ?? !0;
286
- this.api.getDocumentModifier().modifyHtml(r).setStyle("overflow", "hidden").setStyle("white-space", i ? "nowrap" : "normal").setStyle("text-overflow", i ? "ellipsis" : "unset").setStyle("max-width", "100%").setStyle("width", "100%").apply(new S("Recalculated trimming after orientation change"));
294
+ const t = _(this.currentNode), i = (t == null ? void 0 : t.nameTrimming) ?? !0, n = f(t == null ? void 0 : t.orientation);
295
+ this.api.getDocumentModifier().modifyHtml(r).setStyle("overflow", "hidden").setStyle("white-space", i ? "nowrap" : "normal").setStyle("text-overflow", i ? "ellipsis" : "unset").setStyle("max-width", n).removeStyle("width").apply(new N("Recalculated trimming after orientation change"));
287
296
  }
288
297
  _getParagraphFromBlock(e) {
289
298
  return e.querySelector("p");
@@ -300,8 +309,8 @@ class te extends k {
300
309
  } else {
301
310
  const n = t.match(/([^0-9.,\s]+)/);
302
311
  if (n && n[1]) {
303
- const s = n[1].trim(), o = new RegExp(`\\s*${this._escapeRegex(s)}\\s*`);
304
- i = t.replace(o, "").trim();
312
+ const s = n[1].trim(), a = new RegExp(`\\s*${this._escapeRegex(s)}\\s*`);
313
+ i = t.replace(a, "").trim();
305
314
  }
306
315
  }
307
316
  return i;
@@ -315,6 +324,6 @@ class te extends k {
315
324
  }
316
325
  }
317
326
  export {
318
- G as CONTROL_BLOCK_ID,
319
- te as ItemsBlockControl
327
+ Q as CONTROL_BLOCK_ID,
328
+ se as ItemsBlockControl
320
329
  };
@@ -92,15 +92,20 @@ const t = '<td align="center" class="ins-product-td items-block items-block-v2">
92
92
  quantity: {
93
93
  CART_ITEMS: {
94
94
  ATTR: "ins_apr_quantity",
95
- DEFAULT: "3"
95
+ DEFAULT: "3",
96
+ LEGACY_DEFAULTS: []
96
97
  },
97
98
  BROWSED_ITEMS: {
98
99
  ATTR: "browsed_item_quantity",
99
- DEFAULT: "7"
100
+ DEFAULT: "1",
101
+ // Was '7' before SD-149368 corrected it; still tokenize the legacy value so
102
+ // already-saved browsed-items templates keep exporting the merge tag, not literal '7'.
103
+ LEGACY_DEFAULTS: ["7"]
100
104
  },
101
105
  PURCHASED_ITEMS: {
102
106
  ATTR: "purchased_item_quantity",
103
- DEFAULT: "10"
107
+ DEFAULT: "10",
108
+ LEGACY_DEFAULTS: []
104
109
  }
105
110
  },
106
111
  price: {
@@ -124,8 +129,8 @@ const t = '<td align="center" class="ins-product-td items-block items-block-v2">
124
129
  CURRENCY: "browsed_item_productcurrency",
125
130
  DEFAULT_PRICE: "1249.99",
126
131
  DEFAULT_PRICE_FORMATTED: "1,249.99",
127
- DEFAULT_SINGLE_PRICE: "178.57",
128
- DEFAULT_SINGLE_PRICE_FORMATTED: "178.57",
132
+ DEFAULT_SINGLE_PRICE: "1249.99",
133
+ DEFAULT_SINGLE_PRICE_FORMATTED: "1,249.99",
129
134
  DEFAULT_CURRENCY: "USD"
130
135
  },
131
136
  PURCHASED_ITEMS: {
@@ -162,8 +167,8 @@ const t = '<td align="center" class="ins-product-td items-block items-block-v2">
162
167
  CURRENCY: "browsed_item_productcurrency",
163
168
  DEFAULT_PRICE: "2049.99",
164
169
  DEFAULT_PRICE_FORMATTED: "2,049.99",
165
- DEFAULT_SINGLE_PRICE: "292.86",
166
- DEFAULT_SINGLE_PRICE_FORMATTED: "292.86",
170
+ DEFAULT_SINGLE_PRICE: "2049.99",
171
+ DEFAULT_SINGLE_PRICE_FORMATTED: "2,049.99",
167
172
  DEFAULT_CURRENCY: "USD"
168
173
  },
169
174
  PURCHASED_ITEMS: {
@@ -214,7 +219,7 @@ const t = '<td align="center" class="ins-product-td items-block items-block-v2">
214
219
  function a(e, i = 8) {
215
220
  return s(1, i + 1).map((_) => `${e}_${_}`);
216
221
  }
217
- function R() {
222
+ function T() {
218
223
  const { PAIRS_FOR_EXTENSION: e } = r, i = [];
219
224
  return i.push(
220
225
  e.imageSrc.CART_ITEMS.ATTR,
@@ -274,7 +279,7 @@ function R() {
274
279
  ), i;
275
280
  }
276
281
  const p = E(
277
- R(),
282
+ T(),
278
283
  (e) => a(e)
279
284
  );
280
285
  export {
@@ -1,47 +1,49 @@
1
1
  const t = `{-{-TEMPLATE_FIRST_LINE-}-}
2
- <table class="es-left ins-product-wrapper ins-product-cart" width="100%" cellspacing="0" cellpadding="0">
2
+ <table class="es-left ins-product-wrapper ins-product-cart" width="100%" cellspacing="0" cellpadding="0" style="width: 100%;">
3
3
  <tbody>
4
4
  <tr>
5
5
  <td style="padding: 16px 9px;">
6
- <table class="es-left esdev-disable-select" cellspacing="0" cellpadding="0" align="left" width="100%">
6
+ <table class="es-left esdev-disable-select" cellspacing="0" cellpadding="0" align="left" width="100%" style="width: 100%;">
7
7
  <tbody>
8
8
  <tr>
9
- <td class="product-image-class es-p10r" data-slot-1>
9
+ <td class="product-image-class es-p5r" data-slot-1>
10
10
  <table width="100%">
11
11
  <tbody>
12
12
  {-{-PRODUCT_IMAGE-}-}
13
13
  </tbody>
14
14
  </table>
15
15
  </td>
16
- <td class="product-name-class es-p10l es-p10r" data-slot-2>
16
+ <!-- name column cap: keep in sync with NAME_HORIZONTAL_MAX_WIDTH (constants/cardLayout.ts);
17
+ max-width only so a fixed-layout table can still shrink the column in narrow structures -->
18
+ <td class="product-name-class es-p5l es-p5r" data-slot-2 style="max-width: 130px;">
17
19
  <table width="100%" style="table-layout: fixed;">
18
20
  <tbody>
19
21
  {-{-PRODUCT_NAME-}-}
20
22
  </tbody>
21
23
  </table>
22
24
  </td>
23
- <td class="product-quantity-class es-p10l es-p10r" data-slot-3>
25
+ <td class="product-quantity-class es-p5l es-p5r" data-slot-3>
24
26
  <table width="100%">
25
27
  <tbody>
26
28
  {-{-PRODUCT_QUANTITY-}-}
27
29
  </tbody>
28
30
  </table>
29
31
  </td>
30
- <td class="product-price-class horizontal-price es-p10l es-p10r" data-slot-4>
32
+ <td class="product-price-class horizontal-price" data-slot-4>
31
33
  <table width="100%">
32
34
  <tbody>
33
35
  {-{-PRODUCT_PRICE-}-}
34
36
  </tbody>
35
37
  </table>
36
38
  </td>
37
- <td class="product-original-price-class horizontal-price es-p10l es-p10r" data-slot-5>
39
+ <td class="product-original-price-class horizontal-price" data-slot-5>
38
40
  <table width="100%">
39
41
  <tbody>
40
42
  {-{-PRODUCT_ORIGINAL_PRICE-}-}
41
43
  </tbody>
42
44
  </table>
43
45
  </td>
44
- <td class="product-price-container vertical-price es-p10l es-p10r" data-slot-4 style="display: none;">
46
+ <td class="product-price-container vertical-price" data-slot-4 style="display: none;">
45
47
  <table class="product-price-class" width="100%" data-slot-4>
46
48
  <tbody>
47
49
  {-{-PRODUCT_PRICE-}-}
@@ -54,7 +56,7 @@ const t = `{-{-TEMPLATE_FIRST_LINE-}-}
54
56
  </tbody>
55
57
  </table>
56
58
  </td>
57
- <td class="product-button-class es-p10l" data-slot-6>
59
+ <td class="product-button-class es-p5l" data-slot-6>
58
60
  <table width="100%">
59
61
  <tbody>
60
62
  {-{-PRODUCT_BUTTON-}-}