@useinsider/guido 3.22.0-beta.3f91a42 → 3.22.0-beta.53526b4
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/config/migrator/couponBlockAlignmentMigrator.js +55 -0
- package/dist/config/migrator/index.js +14 -13
- package/dist/extensions/Blocks/Items/controls/button/link.js +17 -14
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +17 -14
- package/dist/extensions/Blocks/Items/controls/image/link.js +17 -14
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +10 -9
- package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +25 -24
- package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +13 -12
- package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +30 -29
- package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +16 -15
- package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +26 -25
- package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +28 -27
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +80 -75
- package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +3 -3
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +7 -7
- package/dist/extensions/Blocks/Recommendation/controls/customAttribute/textTrim.js +13 -13
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +116 -121
- package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +5 -5
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +8 -8
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +15 -15
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +12 -12
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +10 -10
- package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +1 -1
- package/dist/extensions/Blocks/common-control.js +55 -62
- package/dist/package.json.js +1 -1
- package/dist/src/config/migrator/couponBlockAlignmentMigrator.d.ts +1 -0
- package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +2 -3
- package/dist/src/extensions/Blocks/common-control.d.ts +0 -2
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var A = Object.defineProperty;
|
|
2
|
+
var m = (n, e, t) => e in n ? A(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
|
|
3
|
+
var l = (n, e, t) => m(n, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
const f = "td.coupon-block.ins-coupon-code:not([esd-extension-block-id])", p = /* @__PURE__ */ new Set(["left", "center", "right", "justify"]), u = /^text-align\s*:\s*(.*)$/i, c = /\s*!\s*important\s*$/i, d = /(?:[^;"'(]|"[^"]*"|'[^']*'|\([^)]*\)|["'(])+/g;
|
|
5
|
+
function a(n) {
|
|
6
|
+
const e = n == null ? void 0 : n.trim().toLowerCase();
|
|
7
|
+
return e && p.has(e) ? e : null;
|
|
8
|
+
}
|
|
9
|
+
function h(n) {
|
|
10
|
+
return (n.match(d) ?? []).map((e) => e.trim()).filter(Boolean);
|
|
11
|
+
}
|
|
12
|
+
function T(n) {
|
|
13
|
+
const e = n.reduce((t, i) => {
|
|
14
|
+
var s;
|
|
15
|
+
const r = (s = u.exec(i)) == null ? void 0 : s[1];
|
|
16
|
+
if (r === void 0)
|
|
17
|
+
return t;
|
|
18
|
+
const o = c.test(r);
|
|
19
|
+
return o || !(t != null && t.important) ? { value: r.replace(c, ""), important: o } : t;
|
|
20
|
+
}, null);
|
|
21
|
+
return a(e == null ? void 0 : e.value);
|
|
22
|
+
}
|
|
23
|
+
class b {
|
|
24
|
+
constructor() {
|
|
25
|
+
l(this, "parser");
|
|
26
|
+
this.parser = new DOMParser();
|
|
27
|
+
}
|
|
28
|
+
migrate(e) {
|
|
29
|
+
if (!e.includes("coupon-block"))
|
|
30
|
+
return e;
|
|
31
|
+
try {
|
|
32
|
+
const t = this.parser.parseFromString(e, "text/html"), i = t.querySelectorAll(f);
|
|
33
|
+
let r = !1;
|
|
34
|
+
return i.forEach((o) => {
|
|
35
|
+
this.normalizeBlock(o) && (r = !0);
|
|
36
|
+
}), r ? t.documentElement.outerHTML : e;
|
|
37
|
+
} catch (t) {
|
|
38
|
+
return console.error("CouponBlockAlignmentMigrator failed:", t), e;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// The block cell's align is the only alignment the editor's control and the export read.
|
|
42
|
+
normalizeBlock(e) {
|
|
43
|
+
const t = e.querySelector(".ins-title"), i = h((t == null ? void 0 : t.getAttribute("style")) ?? ""), r = i.filter((g) => !u.test(g)), o = T(i) ?? a(t == null ? void 0 : t.getAttribute("align")) ?? a(e.getAttribute("align"));
|
|
44
|
+
if (!o)
|
|
45
|
+
return !1;
|
|
46
|
+
let s = !1;
|
|
47
|
+
return e.getAttribute("align") !== o && (e.setAttribute("align", o), s = !0), t != null && t.hasAttribute("align") && (t.removeAttribute("align"), s = !0), t && r.length < i.length && (r.length ? t.setAttribute("style", r.join("; ")) : t.removeAttribute("style"), s = !0), s;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function L(n) {
|
|
51
|
+
return new b().migrate(n);
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
L as migrateCouponBlockAlignment
|
|
55
|
+
};
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { migrateCheckbox as i } from "./checkboxMigrator.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
2
|
+
import { migrateCouponBlockAlignment as e } from "./couponBlockAlignmentMigrator.js";
|
|
3
|
+
import { migrateCouponBlock as a } from "./couponBlockMigrator.js";
|
|
4
|
+
import { migrateFullStoryScripts as n } from "./fullStoryScriptMigrator.js";
|
|
5
|
+
import { migrateItemsBlock as g } from "./itemsBlockMigrator.js";
|
|
6
|
+
import { migrateProductNameLink as p } from "./productNameLinkMigrator.js";
|
|
7
|
+
import { migrateRadioButton as c } from "./radioButtonMigrator.js";
|
|
8
|
+
import { migrateRecommendation as f } from "./recommendationMigrator.js";
|
|
9
|
+
import { migrateRecommendationPartnerScope as l } from "./recommendationPartnerMigrator.js";
|
|
10
|
+
import { migrateRecommendationTitle as s } from "./recommendationTitleMigrator.js";
|
|
11
|
+
import { migrateSocialIcons as u } from "./socialIconMigrator.js";
|
|
11
12
|
import { migrateUnsubscribe as d } from "./unsubscribeMigrator.js";
|
|
12
|
-
const
|
|
13
|
-
let m =
|
|
14
|
-
return m = i(m), m =
|
|
13
|
+
const A = async (r, t = {}, o) => {
|
|
14
|
+
let m = r;
|
|
15
|
+
return m = i(m), m = c(m), m = await d(m), m = e(m), m = a(m), m = f(m, t), o && (m = l(m, o)), m = s(m), m = g(m), m = p(m), m = u(m), m = n(m), m;
|
|
15
16
|
};
|
|
16
17
|
export {
|
|
17
|
-
|
|
18
|
+
A as migrate
|
|
18
19
|
};
|
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
import { CommonControl as
|
|
2
|
-
import { ItemsBlockControlId as
|
|
3
|
-
import { getItemsBlockConfig as
|
|
4
|
-
const
|
|
1
|
+
import { CommonControl as r } from "../../../common-control.js";
|
|
2
|
+
import { ItemsBlockControlId as i } from "../../enums/controlEnums.js";
|
|
3
|
+
import { getItemsBlockConfig as o } from "../../utils/nodeConfigUtils.js";
|
|
4
|
+
const s = i.BUTTON_LINK, n = {
|
|
5
5
|
LINK: "link"
|
|
6
6
|
};
|
|
7
|
-
class
|
|
7
|
+
class m extends r {
|
|
8
8
|
getId() {
|
|
9
|
-
return
|
|
9
|
+
return s;
|
|
10
10
|
}
|
|
11
11
|
getTemplate() {
|
|
12
12
|
return `
|
|
13
|
-
<div class="container ${
|
|
13
|
+
<div class="container ${s}">
|
|
14
14
|
${this._getLink()}
|
|
15
15
|
</div>
|
|
16
16
|
`;
|
|
17
17
|
}
|
|
18
18
|
onRender() {
|
|
19
|
-
this.
|
|
19
|
+
const t = o(this.currentNode);
|
|
20
|
+
this.api.updateValues({
|
|
21
|
+
[n.LINK]: (t == null ? void 0 : t.buttonLink) ?? ""
|
|
22
|
+
});
|
|
20
23
|
}
|
|
21
|
-
onTemplateNodeUpdated(
|
|
22
|
-
super.onTemplateNodeUpdated(
|
|
23
|
-
const
|
|
24
|
+
onTemplateNodeUpdated(t) {
|
|
25
|
+
super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(() => {
|
|
26
|
+
const e = o(this.currentNode);
|
|
24
27
|
this.api.updateValues({
|
|
25
|
-
[n.LINK]: (
|
|
28
|
+
[n.LINK]: (e == null ? void 0 : e.buttonLink) ?? ""
|
|
26
29
|
});
|
|
27
30
|
});
|
|
28
31
|
}
|
|
@@ -41,6 +44,6 @@ class L extends s {
|
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
export {
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
m as ButtonLinkControl,
|
|
48
|
+
s as CONTROL_BLOCK_ID
|
|
46
49
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var I = Object.defineProperty;
|
|
2
2
|
var U = (d, a, t) => a in d ? I(d, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[a] = t;
|
|
3
|
-
var
|
|
3
|
+
var p = (d, a, t) => U(d, typeof a != "symbol" ? a + "" : a, t);
|
|
4
4
|
import { ModificationDescription as c } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
5
5
|
import { CommonControl as b } from "../../common-control.js";
|
|
6
6
|
import { ItemsBlockId as r } from "../enums/controlEnums.js";
|
|
7
7
|
import { SETTINGS_ENUMS as h } from "../enums/settingsEnums.js";
|
|
8
8
|
import { getItemsBlockConfig as R, setItemsBlockConfig as m } from "../utils/nodeConfigUtils.js";
|
|
9
|
-
const
|
|
9
|
+
const g = "ui-elements-items-card-composition-block", i = {
|
|
10
10
|
PRODUCT_IMAGE: "image",
|
|
11
11
|
PRODUCT_NAME: "name",
|
|
12
12
|
PRODUCT_QUANTITY: "quantity",
|
|
@@ -17,7 +17,7 @@ const N = "ui-elements-items-card-composition-block", i = {
|
|
|
17
17
|
class M extends b {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(...arguments);
|
|
20
|
-
|
|
20
|
+
p(this, "visibilityState", {
|
|
21
21
|
[i.PRODUCT_IMAGE]: !0,
|
|
22
22
|
[i.PRODUCT_NAME]: !0,
|
|
23
23
|
[i.PRODUCT_QUANTITY]: !0,
|
|
@@ -27,7 +27,7 @@ class M extends b {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
getId() {
|
|
30
|
-
return
|
|
30
|
+
return g;
|
|
31
31
|
}
|
|
32
32
|
getTemplate() {
|
|
33
33
|
return `
|
|
@@ -44,7 +44,7 @@ class M extends b {
|
|
|
44
44
|
`;
|
|
45
45
|
}
|
|
46
46
|
onRender() {
|
|
47
|
-
this.
|
|
47
|
+
this._syncVisibilityFromAttributes(), this._handleBrowsedItemsQuantity(), this._initializeToggles(), this._listenToFormUpdates();
|
|
48
48
|
}
|
|
49
49
|
onTemplateNodeUpdated(t) {
|
|
50
50
|
super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(() => {
|
|
@@ -61,6 +61,9 @@ class M extends b {
|
|
|
61
61
|
</div>
|
|
62
62
|
`;
|
|
63
63
|
}
|
|
64
|
+
_initializeToggles() {
|
|
65
|
+
this._updateTogglesFromState();
|
|
66
|
+
}
|
|
64
67
|
_updateTogglesFromState() {
|
|
65
68
|
this.api.updateValues({
|
|
66
69
|
[i.PRODUCT_IMAGE]: this.visibilityState[i.PRODUCT_IMAGE],
|
|
@@ -221,21 +224,21 @@ class M extends b {
|
|
|
221
224
|
* - When both are visible, they share 50% each
|
|
222
225
|
*/
|
|
223
226
|
_updatePriceCellWidthsForVerticalLayout(t) {
|
|
224
|
-
var O,
|
|
227
|
+
var O, y;
|
|
225
228
|
const e = R(this.currentNode);
|
|
226
229
|
if (!((e == null ? void 0 : e.orientation) === h.ORIENTATION.VERTICAL))
|
|
227
230
|
return;
|
|
228
|
-
const n = (O = this.currentNode) == null ? void 0 : O.querySelectorAll(".product-price-class"), s = (
|
|
231
|
+
const n = (O = this.currentNode) == null ? void 0 : O.querySelectorAll(".product-price-class"), s = (y = this.currentNode) == null ? void 0 : y.querySelectorAll(".product-original-price-class"), l = (e == null ? void 0 : e.priceOrientation) === "vertical", P = this.visibilityState[i.PRODUCT_PRICE], C = this.visibilityState[i.PRODUCT_ORIGINAL_PRICE], T = t ?? this.api.getDocumentModifier();
|
|
229
232
|
if (n && n.length > 0) {
|
|
230
|
-
const
|
|
231
|
-
n.forEach((
|
|
232
|
-
T.modifyHtml(
|
|
233
|
+
const _ = l || !C ? "100%" : "50%";
|
|
234
|
+
n.forEach((u) => {
|
|
235
|
+
T.modifyHtml(u).setStyle("width", _);
|
|
233
236
|
});
|
|
234
237
|
}
|
|
235
238
|
if (s && s.length > 0) {
|
|
236
|
-
const
|
|
237
|
-
s.forEach((
|
|
238
|
-
T.modifyHtml(
|
|
239
|
+
const _ = l || !P ? "100%" : "50%";
|
|
240
|
+
s.forEach((u) => {
|
|
241
|
+
T.modifyHtml(u).setStyle("width", _);
|
|
239
242
|
});
|
|
240
243
|
}
|
|
241
244
|
t || T.apply(new c("Updated price cell widths for vertical layout"));
|
|
@@ -253,6 +256,6 @@ class M extends b {
|
|
|
253
256
|
}
|
|
254
257
|
}
|
|
255
258
|
export {
|
|
256
|
-
|
|
259
|
+
g as COMPOSITION_CONTROL_BLOCK_ID,
|
|
257
260
|
M as ItemsBlockCardCompositionControl
|
|
258
261
|
};
|
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
import { CommonControl as
|
|
2
|
-
import { ItemsBlockControlId as
|
|
3
|
-
import { getItemsBlockConfig as
|
|
4
|
-
const
|
|
1
|
+
import { CommonControl as a } from "../../../common-control.js";
|
|
2
|
+
import { ItemsBlockControlId as i } from "../../enums/controlEnums.js";
|
|
3
|
+
import { getItemsBlockConfig as o } from "../../utils/nodeConfigUtils.js";
|
|
4
|
+
const s = i.IMAGE_LINK, n = {
|
|
5
5
|
LINK: "link"
|
|
6
6
|
};
|
|
7
|
-
class
|
|
7
|
+
class p extends a {
|
|
8
8
|
getId() {
|
|
9
|
-
return
|
|
9
|
+
return s;
|
|
10
10
|
}
|
|
11
11
|
getTemplate() {
|
|
12
12
|
return `
|
|
13
|
-
<div class="container ${
|
|
13
|
+
<div class="container ${s}">
|
|
14
14
|
${this._getLink()}
|
|
15
15
|
</div>
|
|
16
16
|
`;
|
|
17
17
|
}
|
|
18
18
|
onRender() {
|
|
19
|
-
this.
|
|
19
|
+
const e = o(this.currentNode);
|
|
20
|
+
this.api.updateValues({
|
|
21
|
+
[n.LINK]: (e == null ? void 0 : e.imageLink) ?? ""
|
|
22
|
+
});
|
|
20
23
|
}
|
|
21
|
-
onTemplateNodeUpdated(
|
|
22
|
-
super.onTemplateNodeUpdated(
|
|
23
|
-
const
|
|
24
|
+
onTemplateNodeUpdated(e) {
|
|
25
|
+
super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(() => {
|
|
26
|
+
const t = o(this.currentNode);
|
|
24
27
|
this.api.updateValues({
|
|
25
|
-
[n.LINK]: (
|
|
28
|
+
[n.LINK]: (t == null ? void 0 : t.imageLink) ?? ""
|
|
26
29
|
});
|
|
27
30
|
});
|
|
28
31
|
}
|
|
@@ -41,6 +44,6 @@ class L extends s {
|
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
export {
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
s as CONTROL_BLOCK_ID,
|
|
48
|
+
p as ImageLinkControl
|
|
46
49
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ModificationDescription as d, UIElementType as
|
|
1
|
+
import { ModificationDescription as d, UIElementType as s, UEAttr as p } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
2
2
|
import { CommonControl as T } from "../../../common-control.js";
|
|
3
3
|
import { nameMaxWidthFor as h } from "../../constants/cardLayout.js";
|
|
4
4
|
import { ItemsBlockControlId as a } from "../../enums/controlEnums.js";
|
|
5
5
|
import { findNameTextNode as c } from "../../utils/nameNode.js";
|
|
6
|
-
import { getItemsBlockConfig as
|
|
6
|
+
import { getItemsBlockConfig as r, setItemsBlockConfig as g } from "../../utils/nodeConfigUtils.js";
|
|
7
7
|
const I = a.NAME_TRIMMING, n = {
|
|
8
8
|
TRIMMING: "trimming"
|
|
9
9
|
};
|
|
@@ -19,13 +19,14 @@ class E extends T {
|
|
|
19
19
|
`;
|
|
20
20
|
}
|
|
21
21
|
onRender() {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const e = r(this.currentNode);
|
|
23
|
+
this.api.updateValues({ [n.TRIMMING]: (e == null ? void 0 : e.nameTrimming) ?? !0 }), this.api.onValueChanged(n.TRIMMING, (t) => {
|
|
24
|
+
this._onTrimmingChange(t);
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
onTemplateNodeUpdated(e) {
|
|
27
28
|
super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(() => {
|
|
28
|
-
const t =
|
|
29
|
+
const t = r(this.currentNode);
|
|
29
30
|
this.api.updateValues({ [n.TRIMMING]: (t == null ? void 0 : t.nameTrimming) ?? !0 });
|
|
30
31
|
});
|
|
31
32
|
}
|
|
@@ -36,16 +37,16 @@ class E extends T {
|
|
|
36
37
|
const t = c(this.currentNode);
|
|
37
38
|
if (!t)
|
|
38
39
|
return;
|
|
39
|
-
const i =
|
|
40
|
-
|
|
40
|
+
const i = r(this.currentNode), m = e !== void 0 ? e : (i == null ? void 0 : i.nameTrimming) ?? !0, l = h(i == null ? void 0 : i.orientation), o = this.api.getDocumentModifier().modifyHtml(t);
|
|
41
|
+
m ? o.setStyle("white-space", "nowrap").setStyle("overflow", "hidden").setStyle("text-overflow", "ellipsis") : o.removeStyle("white-space").removeStyle("overflow").removeStyle("text-overflow"), o.setStyle("max-width", l).apply(new d(`Text Trimming ${m ? "Enabled" : "Disabled"}`));
|
|
41
42
|
}
|
|
42
43
|
_getTextTrimming() {
|
|
43
44
|
return `
|
|
44
45
|
<div class="display-flex align-items-center justify-content-between">
|
|
45
|
-
<${
|
|
46
|
+
<${s.LABEL}
|
|
46
47
|
${p.LABEL.text}="${this.api.translate("Text Trimming")}"
|
|
47
48
|
>
|
|
48
|
-
</${
|
|
49
|
+
</${s.LABEL}>
|
|
49
50
|
${this._GuToggle(n.TRIMMING)}
|
|
50
51
|
</div>
|
|
51
52
|
`;
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { currencyLocationMaps as
|
|
2
|
-
import { UEAttr as
|
|
3
|
-
import { CommonControl as
|
|
1
|
+
import { currencyLocationMaps as p } from "../../../../../enums/extensions/recommendationBlock.js";
|
|
2
|
+
import { UEAttr as N, ModificationDescription as I } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
3
|
+
import { CommonControl as L } from "../../../common-control.js";
|
|
4
4
|
import { ITEMS_CURRENCY_ATTR as T, currencyPositionFromLocation as E } from "../../constants/currency.js";
|
|
5
|
-
import { ItemsBlockControlId as
|
|
6
|
-
import { getItemsBlockConfig as
|
|
7
|
-
const b =
|
|
5
|
+
import { ItemsBlockControlId as m } from "../../enums/controlEnums.js";
|
|
6
|
+
import { getItemsBlockConfig as l, setItemsBlockConfig as O, escapeReplacement as f } from "../../utils/nodeConfigUtils.js";
|
|
7
|
+
const b = m.PRICE_CURRENCY_LOCATION, c = {
|
|
8
8
|
CURRENCY_LOCATION: "currencyLocation"
|
|
9
9
|
};
|
|
10
|
-
class
|
|
10
|
+
class Y extends L {
|
|
11
11
|
getId() {
|
|
12
12
|
return b;
|
|
13
13
|
}
|
|
14
14
|
getTemplate() {
|
|
15
15
|
return `
|
|
16
|
-
<div class="container ${
|
|
16
|
+
<div class="container ${m.PRICE_CURRENCY_LOCATION}">
|
|
17
17
|
${this._getCurrencyLocation()}
|
|
18
18
|
</div>
|
|
19
19
|
`;
|
|
20
20
|
}
|
|
21
21
|
onRender() {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const e = l(this.currentNode);
|
|
23
|
+
this.api.setUIEAttribute(c.CURRENCY_LOCATION, N.SELECTPICKER.items, p), this.api.updateValues({ [c.CURRENCY_LOCATION]: (e == null ? void 0 : e.priceCurrencyLocation) ?? "0" }), this.api.onValueChanged(c.CURRENCY_LOCATION, (t) => {
|
|
24
|
+
this._onCurrencyLocationChange(t);
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
onTemplateNodeUpdated(e) {
|
|
27
28
|
super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(() => {
|
|
28
|
-
const t =
|
|
29
|
-
this.api.updateValues({ [
|
|
29
|
+
const t = l(this.currentNode);
|
|
30
|
+
this.api.updateValues({ [c.CURRENCY_LOCATION]: (t == null ? void 0 : t.priceCurrencyLocation) ?? "0" });
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
33
|
_onCurrencyLocationChange(e) {
|
|
@@ -35,15 +36,15 @@ class B extends N {
|
|
|
35
36
|
const t = this._getPriceBlocks();
|
|
36
37
|
if (!t || t.length === 0)
|
|
37
38
|
return;
|
|
38
|
-
const r =
|
|
39
|
+
const r = l(this.currentNode), n = e || "0", o = (r == null ? void 0 : r.priceCurrencySymbol) ?? "", i = E(n), s = this.api.getDocumentModifier();
|
|
39
40
|
t.forEach((h) => {
|
|
40
|
-
const
|
|
41
|
-
if (!
|
|
41
|
+
const a = this._getParagraph(h);
|
|
42
|
+
if (!a)
|
|
42
43
|
return;
|
|
43
|
-
const d =
|
|
44
|
-
|
|
45
|
-
}),
|
|
46
|
-
`Updated currency location to ${
|
|
44
|
+
const d = a.getInnerHTML().trim() || "", C = a.getInnerText().trim() || "", u = (o == null ? void 0 : o.trim()) || "", _ = this._removeCurrencySymbol(C, u), g = this._detectSymbolInText(C) || u, R = this._buildPriceContent(_, g, n), y = d.replace(C, f(R));
|
|
45
|
+
s.modifyHtml(a).setInnerHtml(y).setAttribute(T.POSITION, i);
|
|
46
|
+
}), s.apply(new I(
|
|
47
|
+
`Updated currency location to ${i}`
|
|
47
48
|
));
|
|
48
49
|
}
|
|
49
50
|
_getPriceBlocks() {
|
|
@@ -65,8 +66,8 @@ class B extends N {
|
|
|
65
66
|
} else {
|
|
66
67
|
const o = r.match(/([^0-9.,\s]+)/);
|
|
67
68
|
if (o && o[1]) {
|
|
68
|
-
const
|
|
69
|
-
n = r.replace(
|
|
69
|
+
const i = o[1].trim(), s = new RegExp(`\\s*${this._escapeRegex(i)}\\s*`);
|
|
70
|
+
n = r.replace(s, "").trim();
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
return n;
|
|
@@ -83,9 +84,9 @@ class B extends N {
|
|
|
83
84
|
${this._GuTwoColumns([
|
|
84
85
|
this._GuLabel({ text: "Currency Location" }),
|
|
85
86
|
this._GuSelect({
|
|
86
|
-
name:
|
|
87
|
+
name: c.CURRENCY_LOCATION,
|
|
87
88
|
placeholder: "",
|
|
88
|
-
options:
|
|
89
|
+
options: p
|
|
89
90
|
})
|
|
90
91
|
])}
|
|
91
92
|
`;
|
|
@@ -93,5 +94,5 @@ class B extends N {
|
|
|
93
94
|
}
|
|
94
95
|
export {
|
|
95
96
|
b as CONTROL_BLOCK_ID,
|
|
96
|
-
|
|
97
|
+
Y as PriceCurrencyLocationControl
|
|
97
98
|
};
|
|
@@ -2,20 +2,20 @@ var R = Object.defineProperty;
|
|
|
2
2
|
var N = (s, c, e) => c in s ? R(s, c, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[c] = e;
|
|
3
3
|
var h = (s, c, e) => N(s, typeof c != "symbol" ? c + "" : c, e);
|
|
4
4
|
import { ModificationDescription as E } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
5
|
-
import { CommonControl as
|
|
6
|
-
import { ITEMS_CURRENCY_ATTR as
|
|
5
|
+
import { CommonControl as B } from "../../../common-control.js";
|
|
6
|
+
import { ITEMS_CURRENCY_ATTR as T } from "../../constants/currency.js";
|
|
7
7
|
import { ItemsBlockControlId as y } from "../../enums/controlEnums.js";
|
|
8
|
-
import { getItemsBlockConfig as p, setItemsBlockConfig as
|
|
9
|
-
const
|
|
8
|
+
import { getItemsBlockConfig as p, setItemsBlockConfig as Y, escapeReplacement as f } from "../../utils/nodeConfigUtils.js";
|
|
9
|
+
const x = y.PRICE_CURRENCY_SYMBOL, u = {
|
|
10
10
|
CURRENCY_SYMBOL: "currencySymbol"
|
|
11
11
|
};
|
|
12
|
-
class $ extends
|
|
12
|
+
class $ extends B {
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments);
|
|
15
15
|
h(this, "originalPriceContents", /* @__PURE__ */ new Map());
|
|
16
16
|
}
|
|
17
17
|
getId() {
|
|
18
|
-
return
|
|
18
|
+
return x;
|
|
19
19
|
}
|
|
20
20
|
getTemplate() {
|
|
21
21
|
return `
|
|
@@ -25,8 +25,9 @@ class $ extends f {
|
|
|
25
25
|
`;
|
|
26
26
|
}
|
|
27
27
|
onRender() {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
const e = p(this.currentNode);
|
|
29
|
+
this.api.updateValues({ [u.CURRENCY_SYMBOL]: (e == null ? void 0 : e.priceCurrencySymbol) ?? "" }), this._storeOriginalContents(), this.api.onValueChanged(u.CURRENCY_SYMBOL, (t) => {
|
|
30
|
+
this._onCurrencySymbolChange(t);
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
33
|
onDestroy() {
|
|
@@ -42,7 +43,7 @@ class $ extends f {
|
|
|
42
43
|
var a;
|
|
43
44
|
console.debug("Currency symbol changed to: ", e);
|
|
44
45
|
const t = p(this.currentNode), o = ((a = t == null ? void 0 : t.priceCurrencySymbol) == null ? void 0 : a.trim()) || "";
|
|
45
|
-
if (
|
|
46
|
+
if (Y(this.currentNode, this.api, { priceCurrencySymbol: e }), !this.currentNode)
|
|
46
47
|
return;
|
|
47
48
|
const r = this._getPriceBlocks();
|
|
48
49
|
if (!r || r.length === 0)
|
|
@@ -52,8 +53,8 @@ class $ extends f {
|
|
|
52
53
|
const m = this._getParagraph(d);
|
|
53
54
|
if (!m)
|
|
54
55
|
return;
|
|
55
|
-
const g = m.getInnerHTML().trim() || "", C = m.getInnerText().trim() || "", _ = this._removeCurrencySymbol(C, o), S = this._buildPriceContent(_, n, l), b = g.replace(C,
|
|
56
|
-
i.modifyHtml(m).setInnerHtml(b).setAttribute(
|
|
56
|
+
const g = m.getInnerHTML().trim() || "", C = m.getInnerText().trim() || "", _ = this._removeCurrencySymbol(C, o), S = this._buildPriceContent(_, n, l), b = g.replace(C, f(S));
|
|
57
|
+
i.modifyHtml(m).setInnerHtml(b).setAttribute(T.SYMBOL, n);
|
|
57
58
|
}), i.apply(new E(
|
|
58
59
|
`Updated currency symbol to ${n || "removed"}`
|
|
59
60
|
));
|
|
@@ -115,6 +116,6 @@ class $ extends f {
|
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
export {
|
|
118
|
-
|
|
119
|
+
x as CONTROL_BLOCK_ID,
|
|
119
120
|
$ as PriceCurrencySymbolControl
|
|
120
121
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ModificationDescription as C, UIElementType as
|
|
2
|
-
import { CommonControl as
|
|
3
|
-
import { ItemsBlockControlId as R, ItemsBlockId as
|
|
4
|
-
import { productPairs as
|
|
5
|
-
import { getItemsBlockConfig as
|
|
6
|
-
const O = R.PRICE_FORMATTED_PRICE,
|
|
1
|
+
import { ModificationDescription as C, UIElementType as _, UEAttr as L } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
2
|
+
import { CommonControl as D } from "../../../common-control.js";
|
|
3
|
+
import { ItemsBlockControlId as R, ItemsBlockId as I } from "../../enums/controlEnums.js";
|
|
4
|
+
import { productPairs as p } from "../../enums/productEnums.js";
|
|
5
|
+
import { getItemsBlockConfig as l, setItemsBlockConfig as h, escapeReplacement as g } from "../../utils/nodeConfigUtils.js";
|
|
6
|
+
const O = R.PRICE_FORMATTED_PRICE, a = {
|
|
7
7
|
FORMATTED_PRICE: "formattedPrice"
|
|
8
8
|
};
|
|
9
|
-
class k extends
|
|
9
|
+
class k extends D {
|
|
10
10
|
getId() {
|
|
11
11
|
return O;
|
|
12
12
|
}
|
|
@@ -18,52 +18,53 @@ class k extends g {
|
|
|
18
18
|
`;
|
|
19
19
|
}
|
|
20
20
|
onRender() {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const e = l(this.currentNode);
|
|
22
|
+
this.api.updateValues({ [a.FORMATTED_PRICE]: (e == null ? void 0 : e.priceFormatted) ?? !0 }), this.api.onValueChanged(a.FORMATTED_PRICE, (t) => {
|
|
23
|
+
this._onFormattedPriceChange(t);
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
onTemplateNodeUpdated(e) {
|
|
26
27
|
super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(() => {
|
|
27
|
-
const t =
|
|
28
|
-
this.api.updateValues({ [
|
|
28
|
+
const t = l(this.currentNode);
|
|
29
|
+
this.api.updateValues({ [a.FORMATTED_PRICE]: (t == null ? void 0 : t.priceFormatted) ?? !0 });
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
_onFormattedPriceChange(e) {
|
|
32
33
|
if (console.debug("Formatted price changed to: ", e), !this.currentNode)
|
|
33
34
|
return;
|
|
34
|
-
const t =
|
|
35
|
+
const t = l(this.currentNode), n = (t == null ? void 0 : t.type) ?? "CART_ITEMS", o = (t == null ? void 0 : t.priceSinglePrice) ?? !1, r = p.PAIRS_FOR_EXTENSION.price[n], i = p.PAIRS_FOR_EXTENSION.originalPrice[n], [E, m] = e ? [
|
|
35
36
|
o ? r.DEFAULT_SINGLE_PRICE : r.DEFAULT_PRICE,
|
|
36
37
|
o ? r.DEFAULT_SINGLE_PRICE_FORMATTED : r.DEFAULT_PRICE_FORMATTED
|
|
37
38
|
] : [
|
|
38
39
|
o ? r.DEFAULT_SINGLE_PRICE_FORMATTED : r.DEFAULT_PRICE_FORMATTED,
|
|
39
40
|
o ? r.DEFAULT_SINGLE_PRICE : r.DEFAULT_PRICE
|
|
40
|
-
],
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
((
|
|
44
|
-
`[esd-extension-block-id="${
|
|
45
|
-
)) || []).forEach((
|
|
46
|
-
this._updatePriceBlock(s,
|
|
47
|
-
}), ((
|
|
48
|
-
`[esd-extension-block-id="${
|
|
49
|
-
)) || []).forEach((
|
|
50
|
-
this._updatePriceBlock(s,
|
|
41
|
+
], T = o ? i.DEFAULT_SINGLE_PRICE : i.DEFAULT_PRICE, P = o ? i.DEFAULT_SINGLE_PRICE_FORMATTED : i.DEFAULT_PRICE_FORMATTED, [F, A] = e ? [T, P] : [P, T], s = this.api.getDocumentModifier();
|
|
42
|
+
h(this.currentNode, this.api, { priceFormatted: e }, s);
|
|
43
|
+
const c = this.currentNode.closest(".items-block");
|
|
44
|
+
((c == null ? void 0 : c.querySelectorAll(
|
|
45
|
+
`[esd-extension-block-id="${I.PRICE}"]`
|
|
46
|
+
)) || []).forEach((d) => {
|
|
47
|
+
this._updatePriceBlock(s, d, E, m, e);
|
|
48
|
+
}), ((c == null ? void 0 : c.querySelectorAll(
|
|
49
|
+
`[esd-extension-block-id="${I.ORIGINAL_PRICE}"]`
|
|
50
|
+
)) || []).forEach((d) => {
|
|
51
|
+
this._updatePriceBlock(s, d, F, A, e);
|
|
51
52
|
}), s.apply(new C(
|
|
52
53
|
`Updated price to ${e ? "formatted" : "unformatted"}`
|
|
53
54
|
));
|
|
54
55
|
}
|
|
55
|
-
_updatePriceBlock(e, t,
|
|
56
|
-
const i = `data-formated="${r ? "true" : "false"}"`,
|
|
57
|
-
e.modifyHtml(t).setInnerHtml(
|
|
56
|
+
_updatePriceBlock(e, t, n, o, r) {
|
|
57
|
+
const i = `data-formated="${r ? "true" : "false"}"`, E = t.getInnerHTML().trim().replace(n, g(o)).replace(/data-formated=(?:"[^"]*"|'[^']*')/g, i);
|
|
58
|
+
e.modifyHtml(t).setInnerHtml(E);
|
|
58
59
|
}
|
|
59
60
|
_getFormattedPrice() {
|
|
60
61
|
return `
|
|
61
62
|
<div class="display-flex align-items-center justify-content-between">
|
|
62
|
-
<${
|
|
63
|
+
<${_.LABEL}
|
|
63
64
|
${L.LABEL.text}="${this.api.translate("Formatted Price (e.g. $9.90)")}"
|
|
64
65
|
>
|
|
65
|
-
</${
|
|
66
|
-
${this._GuToggle(
|
|
66
|
+
</${_.LABEL}>
|
|
67
|
+
${this._GuToggle(a.FORMATTED_PRICE)}
|
|
67
68
|
</div>
|
|
68
69
|
`;
|
|
69
70
|
}
|