@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.
- package/dist/components/Guido.vue.js +3 -3
- package/dist/components/Guido.vue2.js +85 -81
- package/dist/components/organisms/header/EditorActions.vue.js +1 -1
- package/dist/components/organisms/header/EditorActions.vue2.js +54 -41
- package/dist/composables/useActionsApi.js +82 -67
- package/dist/composables/useAutoSave.js +31 -26
- package/dist/composables/useEditorLock.js +20 -0
- package/dist/composables/useGuidoStateBridge.js +37 -31
- package/dist/composables/useSave.js +42 -39
- package/dist/config/migrator/itemsBlockMigrator.js +197 -137
- package/dist/extensions/Blocks/Items/constants/cardLayout.js +20 -0
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +18 -17
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +114 -105
- package/dist/extensions/Blocks/Items/enums/productEnums.js +14 -9
- package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +11 -9
- package/dist/extensions/Blocks/Items/template.js +224 -215
- package/dist/guido.css +1 -1
- package/dist/package.json.js +1 -1
- package/dist/src/composables/useEditorLock.d.ts +10 -0
- package/dist/src/extensions/Blocks/Items/constants/cardLayout.d.ts +44 -0
- package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +3 -0
- package/dist/src/extensions/Blocks/Items/template.d.ts +19 -0
- package/dist/utils/pairProductVariables.js +71 -71
- package/package.json +2 -2
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { ModificationDescription as
|
|
2
|
-
import { CommonControl as
|
|
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
|
|
5
|
-
import { SETTINGS_ENUMS as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { getDefaultTemplate as
|
|
9
|
-
import { findNameTextNode as
|
|
10
|
-
import { getItemsBlockConfig as _, setItemsBlockConfig as M, escapeReplacement as
|
|
11
|
-
const
|
|
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
|
|
17
|
+
class se extends $ {
|
|
17
18
|
getId() {
|
|
18
|
-
return
|
|
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
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
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
|
-
[
|
|
42
|
-
[
|
|
43
|
-
[
|
|
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:
|
|
53
|
+
name: p.ITEMS_TYPE,
|
|
53
54
|
className: "es-100",
|
|
54
55
|
placeholder: "Select Item Type",
|
|
55
|
-
options:
|
|
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:
|
|
66
|
-
buttons:
|
|
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:
|
|
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({ [
|
|
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
|
|
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 =
|
|
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}}"),
|
|
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
|
-
},
|
|
106
|
-
const
|
|
107
|
-
this._updateImageSrc(
|
|
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({ [
|
|
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
|
|
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
|
-
|
|
123
|
+
p.ITEMS_TYPE,
|
|
123
124
|
L.SELECTPICKER.items,
|
|
124
|
-
|
|
125
|
+
H
|
|
125
126
|
);
|
|
126
|
-
const e = _(this.currentNode), r = (e == null ? void 0 : e.type) ??
|
|
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
|
-
[
|
|
129
|
+
[p.ITEMS_TYPE]: r
|
|
129
130
|
});
|
|
130
|
-
const i =
|
|
131
|
+
const i = g[r];
|
|
131
132
|
this.api.setUIEAttribute(
|
|
132
|
-
|
|
133
|
+
p.ITEM_IDS,
|
|
133
134
|
L.SELECTPICKER.items,
|
|
134
135
|
i
|
|
135
136
|
), this.api.updateValues({
|
|
136
|
-
[
|
|
137
|
+
[p.ITEM_IDS]: t
|
|
137
138
|
});
|
|
138
139
|
}
|
|
139
140
|
_listenToFormUpdates() {
|
|
140
141
|
this.api.onValueChanged(
|
|
141
|
-
|
|
142
|
+
p.ITEMS_TYPE,
|
|
142
143
|
(e) => this._onItemsTypeChange(e)
|
|
143
144
|
), this.api.onValueChanged(
|
|
144
|
-
|
|
145
|
+
p.ORIENTATION,
|
|
145
146
|
(e) => this._onOrientationChange(e)
|
|
146
147
|
), this.api.onValueChanged(
|
|
147
|
-
|
|
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) ??
|
|
153
|
-
this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(
|
|
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:
|
|
160
|
-
})).apply(new
|
|
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) ??
|
|
164
|
-
let
|
|
165
|
-
return
|
|
166
|
-
imageSrc: y.PAIRS_FOR_EXTENSION.imageSrc[i].DEFAULT[
|
|
167
|
-
name: y.PAIRS_FOR_EXTENSION.name[i].DEFAULT[
|
|
168
|
-
price:
|
|
169
|
-
originalPrice:
|
|
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,
|
|
187
|
+
n = n.replace(i, A(e)), r.modifyHtml(t).setInnerHtml(n);
|
|
187
188
|
}
|
|
188
189
|
_updatePrice(e, r) {
|
|
189
|
-
var
|
|
190
|
-
const t = ((
|
|
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((
|
|
194
|
-
const
|
|
195
|
-
if (!
|
|
194
|
+
t.forEach((l) => {
|
|
195
|
+
const c = this._getParagraphFromBlock(l);
|
|
196
|
+
if (!c)
|
|
196
197
|
return;
|
|
197
|
-
const
|
|
198
|
-
r.modifyHtml(
|
|
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
|
|
203
|
-
const t = ((
|
|
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((
|
|
207
|
-
const
|
|
208
|
-
if (!
|
|
207
|
+
t.forEach((l) => {
|
|
208
|
+
const c = this._getParagraphFromBlock(l);
|
|
209
|
+
if (!c)
|
|
209
210
|
return;
|
|
210
|
-
const
|
|
211
|
-
if (!
|
|
211
|
+
const o = c.querySelector("s");
|
|
212
|
+
if (!o)
|
|
212
213
|
return;
|
|
213
|
-
const
|
|
214
|
-
r.modifyHtml(
|
|
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) ??
|
|
220
|
-
if (!
|
|
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
|
|
223
|
-
if (!
|
|
223
|
+
const o = this._getParagraphFromBlock(c);
|
|
224
|
+
if (!o)
|
|
224
225
|
return;
|
|
225
|
-
const
|
|
226
|
-
let
|
|
227
|
-
function
|
|
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*)?${
|
|
230
|
-
`$1${
|
|
230
|
+
new RegExp(`(>\\s*)?${S}(\\s*<)?`, "g"),
|
|
231
|
+
`$1${P}$2`
|
|
231
232
|
);
|
|
232
233
|
}
|
|
233
|
-
|
|
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,
|
|
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 = ((
|
|
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 = ((
|
|
240
|
+
)) || [], n = ((P = this.currentNode) == null ? void 0 : P.querySelectorAll(
|
|
240
241
|
`[esd-extension-block-id="${I.ORIGINAL_PRICE}"]`
|
|
241
|
-
)) || [], [s] = i, [
|
|
242
|
-
if (!r || !t || !s || !
|
|
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
|
|
245
|
-
let
|
|
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
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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) ??
|
|
266
|
-
s && r.modifyHtml(s).setAttribute("data-number", n), this.currentNode.querySelectorAll("[data-number]").forEach((
|
|
267
|
-
const
|
|
268
|
-
r.modifyHtml(
|
|
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
|
|
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
|
|
285
|
+
var s;
|
|
277
286
|
if (!this.currentNode)
|
|
278
287
|
return;
|
|
279
|
-
const e = (
|
|
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 =
|
|
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",
|
|
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(),
|
|
304
|
-
i = t.replace(
|
|
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
|
-
|
|
319
|
-
|
|
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: "
|
|
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: "
|
|
128
|
-
DEFAULT_SINGLE_PRICE_FORMATTED: "
|
|
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: "
|
|
166
|
-
DEFAULT_SINGLE_PRICE_FORMATTED: "
|
|
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
|
|
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
|
-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
59
|
+
<td class="product-button-class es-p5l" data-slot-6>
|
|
58
60
|
<table width="100%">
|
|
59
61
|
<tbody>
|
|
60
62
|
{-{-PRODUCT_BUTTON-}-}
|