@useinsider/guido 2.1.0-beta.c305789 → 2.1.0-beta.c684df8
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/@types/config/schemas.js +1 -1
- package/dist/components/organisms/base/Toaster.vue.js +4 -4
- package/dist/components/organisms/base/Toaster.vue2.js +12 -9
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
- package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +11 -13
- package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +54 -23
- package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +7 -5
- package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +34 -21
- package/dist/components/organisms/extensions/recommendation/Filters.vue.js +11 -11
- package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +48 -36
- package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +11 -9
- package/dist/components/organisms/header/EditorActions.vue.js +8 -10
- package/dist/components/organisms/header/EditorActions.vue2.js +31 -40
- package/dist/composables/useRecommendation.js +9 -9
- package/dist/config/compiler/utils/recommendationCompilerUtils.js +1 -1
- package/dist/config/i18n/en/labels.json.js +3 -8
- package/dist/config/migrator/itemsBlockMigrator.js +134 -139
- package/dist/config/migrator/recommendationMigrator.js +41 -46
- package/dist/extensions/Blocks/Items/block.js +25 -45
- package/dist/extensions/Blocks/Items/iconsRegistry.js +5 -6
- package/dist/extensions/Blocks/Items/items.css.js +0 -48
- package/dist/extensions/Blocks/Recommendation/block.js +29 -49
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +36 -33
- package/dist/extensions/Blocks/Recommendation/constants/layout.js +16 -14
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +15 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/index.js +9 -9
- package/dist/extensions/Blocks/Recommendation/controls/image/index.js +1 -1
- package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +41 -29
- package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +16 -16
- package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +30 -32
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +194 -104
- package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +9 -9
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +46 -38
- package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +16 -16
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +291 -217
- package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +14 -14
- package/dist/extensions/Blocks/Recommendation/controls/name/index.js +10 -10
- package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +5 -5
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +14 -14
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +9 -9
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +3 -3
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +1 -1
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +9 -9
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +3 -3
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +13 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/index.js +3 -3
- package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +223 -99
- package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +3 -4
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +0 -48
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +172 -85
- package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +2 -2
- package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +1 -1
- package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +2 -2
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +32 -32
- package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +8 -8
- package/dist/extensions/Blocks/Recommendation/validation/filterSchema.js +29 -0
- package/dist/extensions/Blocks/common-control.js +4 -12
- package/dist/guido.css +1 -1
- package/dist/src/components/Guido.vue.d.ts +1 -1
- package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +1 -0
- package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +17 -1
- package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
- package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
- package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +6 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +3 -3
- package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +6 -2
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +8 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +38 -10
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +27 -14
- package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +50 -17
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +19 -2
- package/dist/src/extensions/Blocks/Recommendation/templates/grid/migration.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +4 -2
- package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +8 -0
- package/dist/src/extensions/Blocks/Recommendation/validation/filterSchema.d.ts +15 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +0 -5
- package/dist/static/styles/customEditorStyle.css.js +50 -23
- package/package.json +2 -2
- package/dist/components/organisms/header/MigrationConfirmModal.vue.js +0 -17
- package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +0 -41
- package/dist/extensions/Blocks/common-icons.js +0 -39
- package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +0 -6
- package/dist/src/extensions/Blocks/common-icons.d.ts +0 -1
- package/dist/src/stores/template.d.ts +0 -3
- package/dist/stores/template.js +0 -9
|
@@ -1,50 +1,41 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useConfig as
|
|
3
|
-
import { useExport as
|
|
4
|
-
import { useTestEmailClick as
|
|
5
|
-
import { useSave as
|
|
6
|
-
import { useTranslations as
|
|
7
|
-
import { useVersionHistoryApi as
|
|
8
|
-
import { useEditorStore as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
import I from "./MigrationConfirmModal.vue.js";
|
|
13
|
-
const X = /* @__PURE__ */ T({
|
|
1
|
+
import { defineComponent as g, ref as u, computed as f } from "vue";
|
|
2
|
+
import { useConfig as E } from "../../../composables/useConfig.js";
|
|
3
|
+
import { useExport as h } from "../../../composables/useExport.js";
|
|
4
|
+
import { useTestEmailClick as w } from "../../../composables/useGuidoActions.js";
|
|
5
|
+
import { useSave as x } from "../../../composables/useSave.js";
|
|
6
|
+
import { useTranslations as T } from "../../../composables/useTranslations.js";
|
|
7
|
+
import { useVersionHistoryApi as O } from "../../../composables/useVersionHistoryApi.js";
|
|
8
|
+
import { useEditorStore as A } from "../../../stores/editor.js";
|
|
9
|
+
import { getTooltipOptions as C } from "../../../utils/tooltipUtils.js";
|
|
10
|
+
import { InButtonV2 as k } from "@useinsider/design-system-vue";
|
|
11
|
+
const J = /* @__PURE__ */ g({
|
|
14
12
|
__name: "EditorActions",
|
|
15
|
-
setup(
|
|
16
|
-
const { config:
|
|
17
|
-
if (
|
|
18
|
-
|
|
13
|
+
setup(B, { expose: v }) {
|
|
14
|
+
const { config: n } = E(), { exportHtml: a } = h(), { save: l } = x(), { openVersionHistory: p, closeVersionHistory: c } = O(), o = A(), s = T(), r = u(!1), i = u(!1), d = w(), y = () => {
|
|
15
|
+
if (o.isVersionHistoryOpen) {
|
|
16
|
+
c();
|
|
19
17
|
return;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
r.value = !0, await
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
},
|
|
19
|
+
p();
|
|
20
|
+
}, H = async () => {
|
|
21
|
+
r.value = !0, await a(), r.value = !1;
|
|
22
|
+
}, V = () => {
|
|
23
|
+
o.isSaveAsTemplateDrawerOpen = !0;
|
|
24
|
+
}, S = f(() => o.isVersionHistoryOpen ? s("newsletter.close-version-history") : s("newsletter.version-history")), _ = f(
|
|
27
25
|
() => {
|
|
28
|
-
var
|
|
29
|
-
return ((
|
|
26
|
+
var t, e;
|
|
27
|
+
return ((e = (t = n.value) == null ? void 0 : t.features) == null ? void 0 : e.versionHistory) && !o.isPreviewModeOpen;
|
|
30
28
|
}
|
|
31
|
-
),
|
|
32
|
-
i.value = !0,
|
|
33
|
-
const
|
|
34
|
-
return i.value = !1, (
|
|
35
|
-
}, g = (o) => {
|
|
36
|
-
var t;
|
|
37
|
-
if (!o && d.value) {
|
|
38
|
-
(t = v.value) == null || t.open();
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
y(o);
|
|
29
|
+
), m = async (t) => {
|
|
30
|
+
i.value = !0, o.loadingStatus = !0;
|
|
31
|
+
const e = await l(t);
|
|
32
|
+
return i.value = !1, (t || !e) && (o.loadingStatus = !1), e;
|
|
42
33
|
};
|
|
43
|
-
return
|
|
44
|
-
handleSave:
|
|
45
|
-
}), { __sfc: !0, config:
|
|
34
|
+
return v({
|
|
35
|
+
handleSave: m
|
|
36
|
+
}), { __sfc: !0, config: n, exportHtml: a, save: l, openVersionHistory: p, closeVersionHistory: c, editorStore: o, trans: s, isExporting: r, isSaving: i, testEmailClick: d, handleVersionHistory: y, handleExport: H, handleSaveAs: V, versionHistoryTooltipText: S, isVersionHistoryButtonVisible: _, handleSave: m, getTooltipOptions: C, InButtonV2: k };
|
|
46
37
|
}
|
|
47
38
|
});
|
|
48
39
|
export {
|
|
49
|
-
|
|
40
|
+
J as default
|
|
50
41
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RecommendationFeedSourceMaps as g, URLS as p } from "../enums/extensions/recommendationBlock.js";
|
|
2
2
|
import { MinDeviceViewport as R, DefaultPadding as b } from "../enums/recommendation.js";
|
|
3
|
-
import { useRecommendationExtensionStore as
|
|
3
|
+
import { useRecommendationExtensionStore as u } from "../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
4
4
|
import { generateCompleteFilterQuery as x } from "../extensions/Blocks/Recommendation/utils/filterUtil.js";
|
|
5
|
-
import { useConfigStore as
|
|
5
|
+
import { useConfigStore as I } from "../stores/config.js";
|
|
6
6
|
const N = () => ({
|
|
7
7
|
calculateCardWidth: ({
|
|
8
8
|
mobileLeftPadding: i,
|
|
@@ -14,7 +14,7 @@ const N = () => ({
|
|
|
14
14
|
return (R - e) / r;
|
|
15
15
|
},
|
|
16
16
|
getRecommendationCampaignData: (i) => {
|
|
17
|
-
const n =
|
|
17
|
+
const n = u(), o = Number(i), a = n.blockStates[o];
|
|
18
18
|
if (!a)
|
|
19
19
|
return {
|
|
20
20
|
textTrimming: !1,
|
|
@@ -43,16 +43,16 @@ const N = () => ({
|
|
|
43
43
|
};
|
|
44
44
|
},
|
|
45
45
|
buildCampaignUrl: (i) => {
|
|
46
|
-
var
|
|
47
|
-
const n =
|
|
46
|
+
var m;
|
|
47
|
+
const n = u(), o = I(), a = Number(i), r = n.blockStates[a];
|
|
48
48
|
if (!r)
|
|
49
49
|
return "";
|
|
50
|
-
const { recommendationConfigs: e } = r,
|
|
51
|
-
t.set("locale", e.language), t.set("currency", e.currencySettings.value), t.set("partnerName", o.partnerName), t.set("size", e.size), t.set("details", "true"), t.set("campaignId", o.variationId), e.strategy === "manualMerchandising" ? t.set("productId", e.productIds.join(",")) : e.strategy === "similarViewed" && t.set("productId", "{itemId}");
|
|
50
|
+
const { recommendationConfigs: e } = r, l = ((m = g.find((s) => s.key === e.strategy)) == null ? void 0 : m.path) || "", t = new URLSearchParams();
|
|
51
|
+
t.set("locale", e.language), t.set("currency", e.currencySettings.value), t.set("partnerName", o.partnerName), t.set("size", e.size), t.set("details", "true"), t.set("campaignId", o.variationId), e.strategy === "manualMerchandising" ? t.set("productId", e.productIds.join(",")) : e.strategy === "similarViewed" && t.set("productId", "{itemId}"), e.strategy === "userBased" && t.set("userId", "{user_id}");
|
|
52
52
|
const f = e.filters.filter((s) => s.isValid), c = x(f);
|
|
53
53
|
c && t.set("filter", c), e.shuffleProducts && t.set("shuffle", "true");
|
|
54
|
-
const
|
|
55
|
-
return n.recommendationCampaignUrls[i] =
|
|
54
|
+
const d = `${p.RECOMMENDATION_API_URL}/v2/${l}?${t.toString()}`;
|
|
55
|
+
return n.recommendationCampaignUrls[i] = d, d;
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
58
|
export {
|
|
@@ -106,7 +106,7 @@ function h(e, u) {
|
|
|
106
106
|
` : "") + u.documentElement.outerHTML;
|
|
107
107
|
}
|
|
108
108
|
function w(e) {
|
|
109
|
-
const u = e.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(u, "text/html"), o = r.querySelectorAll(".
|
|
109
|
+
const u = e.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(u, "text/html"), o = r.querySelectorAll(".recommendation-block-v2");
|
|
110
110
|
if (!o.length)
|
|
111
111
|
return e;
|
|
112
112
|
const { buildCampaignUrl: n } = _();
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
const
|
|
1
|
+
const l = {
|
|
2
2
|
"Global Styles & Layout": "Global Styles and Layout",
|
|
3
|
-
"Structures & Modules": "Structures and Modules"
|
|
4
|
-
"Recommendation Block": "Recommendation",
|
|
5
|
-
Items: e,
|
|
6
|
-
"This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.": "This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.",
|
|
7
|
-
"This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly.": "This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly."
|
|
3
|
+
"Structures & Modules": "Structures and Modules"
|
|
8
4
|
};
|
|
9
5
|
export {
|
|
10
|
-
|
|
11
|
-
o as default
|
|
6
|
+
l as default
|
|
12
7
|
};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var M = (
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
import { useTemplateStore as F } from "../../stores/template.js";
|
|
9
|
-
const q = {
|
|
1
|
+
var v = Object.defineProperty;
|
|
2
|
+
var B = (e, t, r) => t in e ? v(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
|
|
3
|
+
var M = (e, t, r) => B(e, typeof t != "symbol" ? t + "" : t, r);
|
|
4
|
+
import { productPairs as U } from "../../extensions/Blocks/Items/enums/productEnums.js";
|
|
5
|
+
import { ItemInCartOptions as T, DefaultConfigValues as g, SETTINGS_ENUMS as u } from "../../extensions/Blocks/Items/enums/settingsEnums.js";
|
|
6
|
+
import { getDefaultTemplate as K } from "../../extensions/Blocks/Items/template.js";
|
|
7
|
+
const w = {
|
|
10
8
|
img: {
|
|
11
9
|
pairsKey: "imageSrc",
|
|
12
10
|
defaultKey: "DEFAULT",
|
|
@@ -73,125 +71,122 @@ const q = {
|
|
|
73
71
|
isArray: !1
|
|
74
72
|
}
|
|
75
73
|
};
|
|
76
|
-
function
|
|
74
|
+
function F() {
|
|
77
75
|
return String(Date.now() + Math.floor(Math.random() * 1e3));
|
|
78
76
|
}
|
|
79
|
-
function
|
|
80
|
-
return
|
|
81
|
-
CartItems:
|
|
82
|
-
BrowsedItems:
|
|
83
|
-
PurchasedItems:
|
|
84
|
-
CART_ITEMS:
|
|
85
|
-
BROWSED_ITEMS:
|
|
86
|
-
PURCHASED_ITEMS:
|
|
87
|
-
}[
|
|
77
|
+
function q(e) {
|
|
78
|
+
return e ? {
|
|
79
|
+
CartItems: u.ITEMS_TYPE.CART_ITEMS,
|
|
80
|
+
BrowsedItems: u.ITEMS_TYPE.BROWSED_ITEMS,
|
|
81
|
+
PurchasedItems: u.ITEMS_TYPE.PURCHASED_ITEMS,
|
|
82
|
+
CART_ITEMS: u.ITEMS_TYPE.CART_ITEMS,
|
|
83
|
+
BROWSED_ITEMS: u.ITEMS_TYPE.BROWSED_ITEMS,
|
|
84
|
+
PURCHASED_ITEMS: u.ITEMS_TYPE.PURCHASED_ITEMS
|
|
85
|
+
}[e] || u.ITEMS_TYPE.CART_ITEMS : u.ITEMS_TYPE.CART_ITEMS;
|
|
88
86
|
}
|
|
89
|
-
function R(
|
|
90
|
-
var
|
|
91
|
-
const t = (
|
|
92
|
-
let
|
|
93
|
-
if (
|
|
94
|
-
const
|
|
95
|
-
|
|
87
|
+
function R(e) {
|
|
88
|
+
var a;
|
|
89
|
+
const t = (_, c) => _ == null ? c : _ === "1" || _ === "true", r = (_, c) => _ || c, l = e["data-type"] || e["data-source"], i = q(l), n = T[i];
|
|
90
|
+
let o = e["data-cart_items_select_control_value"] || ((a = n == null ? void 0 : n[0]) == null ? void 0 : a.value) || g.cartItemsSelectControlValue;
|
|
91
|
+
if (o && !o.includes("{{") && /^\d+$/.test(o)) {
|
|
92
|
+
const _ = parseInt(o) - 1, c = T[i];
|
|
93
|
+
c && c[_] && (o = c[_].value);
|
|
96
94
|
}
|
|
97
95
|
return {
|
|
98
96
|
initialized: !0,
|
|
99
|
-
blockInstanceId:
|
|
100
|
-
source:
|
|
101
|
-
type:
|
|
102
|
-
itemsSelectValue:
|
|
103
|
-
orientation:
|
|
104
|
-
nameTrimming: t(
|
|
105
|
-
priceHideDiscount: t(
|
|
106
|
-
priceFormatted: t(
|
|
107
|
-
priceSinglePrice: t(
|
|
108
|
-
priceCurrencySymbol:
|
|
109
|
-
|
|
97
|
+
blockInstanceId: r(e["data-block-instance-id"], F()),
|
|
98
|
+
source: i,
|
|
99
|
+
type: i,
|
|
100
|
+
itemsSelectValue: o,
|
|
101
|
+
orientation: e["data-card_orientation_control_value"] || u.ORIENTATION.VERTICAL,
|
|
102
|
+
nameTrimming: t(e["data-product_name_control_trim"], !0),
|
|
103
|
+
priceHideDiscount: t(e["data-product_price_control_nodup"], !0),
|
|
104
|
+
priceFormatted: t(e["data-product_price_control_formated"], !0),
|
|
105
|
+
priceSinglePrice: t(e["data-product_price_control_single_price"], !1),
|
|
106
|
+
priceCurrencySymbol: r(
|
|
107
|
+
e["data-product_price_control_currency_symbol"],
|
|
110
108
|
g.productPriceCurrencySymbolControlValue
|
|
111
109
|
),
|
|
112
|
-
priceCurrencyLocation:
|
|
113
|
-
|
|
110
|
+
priceCurrencyLocation: r(
|
|
111
|
+
e["data-product_price_currency_location"],
|
|
114
112
|
g.productPriceCurrencyLocationControlValue
|
|
115
113
|
),
|
|
116
|
-
priceOrientation:
|
|
117
|
-
quantityControlEnabled: t(
|
|
118
|
-
buttonLink:
|
|
119
|
-
imageLink:
|
|
120
|
-
buttonLabel:
|
|
121
|
-
buttonFullWidth: t(
|
|
122
|
-
imageVisible: t(
|
|
123
|
-
nameVisible: t(
|
|
124
|
-
quantityVisible: t(
|
|
125
|
-
priceVisible: t(
|
|
126
|
-
originalPriceVisible: t(
|
|
127
|
-
buttonVisible: t(
|
|
114
|
+
priceOrientation: e["data-product_original_price_control_orientation"] || "horizontal",
|
|
115
|
+
quantityControlEnabled: t(e["data-product_quantity_control_enabled"], !0),
|
|
116
|
+
buttonLink: r(e["data-product_button_link"], g.productButtonLinkControlValue),
|
|
117
|
+
imageLink: r(e["data-product_image_link"], g.productImageLinkControlValue),
|
|
118
|
+
buttonLabel: r(e["data-product_button_control_label"], "Buy"),
|
|
119
|
+
buttonFullWidth: t(e["data-product_button_control_atw"], !0),
|
|
120
|
+
imageVisible: t(e["data-product_image_control_enabled"], !0),
|
|
121
|
+
nameVisible: t(e["data-product_name_control_enabled"], !0),
|
|
122
|
+
quantityVisible: t(e["data-product_quantity_control_enabled"], !0),
|
|
123
|
+
priceVisible: t(e["data-product_price_control_enabled"], !0),
|
|
124
|
+
originalPriceVisible: t(e["data-product_original_price_control_enabled"], !0),
|
|
125
|
+
buttonVisible: t(e["data-product_button_control_enabled"], !0)
|
|
128
126
|
};
|
|
129
127
|
}
|
|
130
|
-
const
|
|
128
|
+
const O = {
|
|
131
129
|
ins_apr: "CART_ITEMS",
|
|
132
130
|
browsed_item: "BROWSED_ITEMS",
|
|
133
131
|
purchased_item: "PURCHASED_ITEMS"
|
|
134
132
|
};
|
|
135
|
-
function
|
|
136
|
-
const
|
|
133
|
+
function $(e, t) {
|
|
134
|
+
const r = {
|
|
137
135
|
CART_ITEMS: `{{Abandoned Cart Item (${t}) Image}}`,
|
|
138
136
|
BROWSED_ITEMS: `{{Browsed Item (${t}) Image}}`,
|
|
139
137
|
PURCHASED_ITEMS: `{{Purchased Item (${t}) Image}}`
|
|
140
138
|
};
|
|
141
|
-
return
|
|
139
|
+
return r[e] || r.CART_ITEMS;
|
|
142
140
|
}
|
|
143
|
-
function
|
|
144
|
-
const
|
|
141
|
+
function x(e, t) {
|
|
142
|
+
const r = {
|
|
145
143
|
CART_ITEMS: `{{Abandoned Cart Item (${t}) Url}}`,
|
|
146
144
|
BROWSED_ITEMS: `{{Browsed Item (${t}) Url}}`,
|
|
147
145
|
PURCHASED_ITEMS: `{{Purchased Item (${t}) Url}}`
|
|
148
146
|
};
|
|
149
|
-
return
|
|
147
|
+
return r[e] || r.CART_ITEMS;
|
|
150
148
|
}
|
|
151
|
-
class
|
|
149
|
+
class V {
|
|
152
150
|
constructor() {
|
|
153
151
|
M(this, "parser");
|
|
154
152
|
this.parser = new DOMParser();
|
|
155
153
|
}
|
|
156
154
|
migrate(t) {
|
|
157
155
|
try {
|
|
158
|
-
let
|
|
159
|
-
|
|
160
|
-
const
|
|
156
|
+
let r = this.removeJinjaConditionals(t);
|
|
157
|
+
r = this.replaceTemplateVariables(r);
|
|
158
|
+
const l = this.parser.parseFromString(r, "text/html"), i = l.querySelectorAll(
|
|
161
159
|
"td.esd-cart-items-block, td.esd-browsed-items-block, td.esd-purchased-items-block"
|
|
162
|
-
)
|
|
163
|
-
return
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
currencyLocation: e.currencyLocation,
|
|
173
|
-
formattedPrice: e.formattedPrice,
|
|
174
|
-
configBlockAttributes: e.configBlockAttributes,
|
|
160
|
+
);
|
|
161
|
+
return i.length === 0 ? (console.warn("ItemsBlockMigrator: No blocks found with items block selectors"), r) : (i.forEach((n) => {
|
|
162
|
+
const o = this.extractConfiguration(n), a = K({
|
|
163
|
+
orientation: o.orientation,
|
|
164
|
+
itemsType: o.itemsType,
|
|
165
|
+
itemId: o.itemId,
|
|
166
|
+
currencySymbol: o.currencySymbol,
|
|
167
|
+
currencyLocation: o.currencyLocation,
|
|
168
|
+
formattedPrice: o.formattedPrice,
|
|
169
|
+
configBlockAttributes: o.configBlockAttributes,
|
|
175
170
|
migrate: !0,
|
|
176
|
-
nameStyles:
|
|
177
|
-
buttonStyles:
|
|
178
|
-
priceStyles:
|
|
179
|
-
originalPriceStyles:
|
|
180
|
-
quantityStyles:
|
|
181
|
-
nodeConfig: R(
|
|
182
|
-
}),
|
|
183
|
-
`<table><tbody><tr>${
|
|
171
|
+
nameStyles: o.nameStyles,
|
|
172
|
+
buttonStyles: o.buttonStyles,
|
|
173
|
+
priceStyles: o.priceStyles,
|
|
174
|
+
originalPriceStyles: o.originalPriceStyles,
|
|
175
|
+
quantityStyles: o.quantityStyles,
|
|
176
|
+
nodeConfig: R(o.configBlockAttributes)
|
|
177
|
+
}), c = this.parser.parseFromString(
|
|
178
|
+
`<table><tbody><tr>${a}</tr></tbody></table>`,
|
|
184
179
|
"text/html"
|
|
185
180
|
).querySelector("td");
|
|
186
|
-
if (
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
const
|
|
190
|
-
|
|
181
|
+
if (c && n.parentNode) {
|
|
182
|
+
const f = R(o.configBlockAttributes);
|
|
183
|
+
c.setAttribute("esd-ext-config", JSON.stringify(f));
|
|
184
|
+
const d = c.querySelector("esd-config-block");
|
|
185
|
+
d && d.remove(), n.parentNode.replaceChild(c, n);
|
|
191
186
|
}
|
|
192
|
-
}),
|
|
193
|
-
} catch (
|
|
194
|
-
return console.error("ItemsBlockMigrator failed:",
|
|
187
|
+
}), l.documentElement.outerHTML);
|
|
188
|
+
} catch (r) {
|
|
189
|
+
return console.error("ItemsBlockMigrator failed:", r), t;
|
|
195
190
|
}
|
|
196
191
|
}
|
|
197
192
|
/**
|
|
@@ -202,18 +197,18 @@ class z {
|
|
|
202
197
|
*/
|
|
203
198
|
extractConfiguration(t) {
|
|
204
199
|
var C, D, P;
|
|
205
|
-
const
|
|
200
|
+
const r = ((C = t.querySelector("[data-type]")) == null ? void 0 : C.getAttribute("data-type")) || "CART_ITEMS", l = ((D = t.querySelector("[data-number]")) == null ? void 0 : D.getAttribute("data-number")) || "1", i = parseInt(l) - 1, n = T[r], o = ((P = n == null ? void 0 : n[i]) == null ? void 0 : P.value) || n[0].value, a = t.querySelector('[product-attr="price"]'), _ = (a == null ? void 0 : a.getAttribute("data-currency_symbol")) || "USD", f = ((a == null ? void 0 : a.getAttribute("data-curency")) || "before") === "after" ? "1" : "0", d = (a == null ? void 0 : a.getAttribute("data-formated")) !== "false", s = this.extractConfigBlockAttributes(t, r, l), S = s["data-card_orientation_control_value"];
|
|
206
201
|
let b;
|
|
207
202
|
S ? b = S === "horizontal" ? "horizontal" : "vertical" : b = t.querySelector('[colspan="2"]') !== null ? "vertical" : "horizontal";
|
|
208
|
-
const
|
|
203
|
+
const p = t.querySelector('a[product-attr="name"]'), I = (p == null ? void 0 : p.getAttribute("style")) || void 0, y = t.querySelector('a[product-attr="button"]'), m = (y == null ? void 0 : y.getAttribute("style")) || void 0, h = (a == null ? void 0 : a.getAttribute("style")) || void 0, A = t.querySelector("p.original-price"), k = (A == null ? void 0 : A.getAttribute("style")) || void 0, E = t.querySelector('[product-attr="quantity"]'), L = (E == null ? void 0 : E.getAttribute("style")) || void 0;
|
|
209
204
|
return {
|
|
210
205
|
orientation: b,
|
|
211
|
-
itemsType:
|
|
212
|
-
itemId:
|
|
213
|
-
currencySymbol:
|
|
214
|
-
currencyLocation:
|
|
215
|
-
formattedPrice:
|
|
216
|
-
configBlockAttributes:
|
|
206
|
+
itemsType: r,
|
|
207
|
+
itemId: o,
|
|
208
|
+
currencySymbol: _,
|
|
209
|
+
currencyLocation: f,
|
|
210
|
+
formattedPrice: d,
|
|
211
|
+
configBlockAttributes: s,
|
|
217
212
|
nameStyles: I,
|
|
218
213
|
buttonStyles: m,
|
|
219
214
|
priceStyles: h,
|
|
@@ -228,27 +223,27 @@ class z {
|
|
|
228
223
|
* @param itemsType - The type of items (CART_ITEMS, BROWSED_ITEMS, PURCHASED_ITEMS)
|
|
229
224
|
* @param itemNumber - The item number (1-based index)
|
|
230
225
|
*/
|
|
231
|
-
extractConfigBlockAttributes(t,
|
|
232
|
-
const
|
|
233
|
-
if (!
|
|
226
|
+
extractConfigBlockAttributes(t, r, l) {
|
|
227
|
+
const i = t.querySelector("esd-config-block"), n = {};
|
|
228
|
+
if (!i)
|
|
234
229
|
return this.getDefaultConfigBlockAttributes();
|
|
235
|
-
if (Array.from(
|
|
236
|
-
|
|
230
|
+
if (Array.from(i.attributes).forEach((a) => {
|
|
231
|
+
a.name.startsWith("data-") && (n[a.name] = a.value);
|
|
237
232
|
}), n["data-cart_items_select_control_value"]) {
|
|
238
|
-
const
|
|
239
|
-
if (/^\d+$/.test(
|
|
240
|
-
const
|
|
241
|
-
|
|
233
|
+
const a = n["data-cart_items_select_control_value"];
|
|
234
|
+
if (/^\d+$/.test(a)) {
|
|
235
|
+
const _ = parseInt(a) - 1, c = T[r];
|
|
236
|
+
c && c[_] && (n["data-cart_items_select_control_value"] = c[_].value);
|
|
242
237
|
}
|
|
243
238
|
}
|
|
244
239
|
if (n["data-product_price_control_curency"]) {
|
|
245
|
-
const
|
|
246
|
-
let
|
|
247
|
-
|
|
240
|
+
const a = n["data-product_price_control_curency"];
|
|
241
|
+
let _ = a;
|
|
242
|
+
a === "before" ? _ = "0" : a === "after" && (_ = "1"), n["data-product_price_control_curency"] = _, n["data-product_price_currency_location"] = _;
|
|
248
243
|
}
|
|
249
244
|
(!n["data-product_price_control_currency_symbol"] || n["data-product_price_control_currency_symbol"].trim() === "") && (n["data-product_price_control_currency_symbol"] = "USD");
|
|
250
|
-
const
|
|
251
|
-
return
|
|
245
|
+
const o = { ...this.getDefaultConfigBlockAttributes(), ...n };
|
|
246
|
+
return o["data-type"] = r, o["data-source"] = r, o["data-product_image_link"] = $(r, l), o["data-product_button_link"] = x(r, l), o;
|
|
252
247
|
}
|
|
253
248
|
/**
|
|
254
249
|
* Returns default esd-config-block attributes based on the old template structure
|
|
@@ -308,17 +303,17 @@ class z {
|
|
|
308
303
|
* contains display condition Jinja scripts that should NOT be removed.
|
|
309
304
|
*/
|
|
310
305
|
removeJinjaConditionals(t) {
|
|
311
|
-
const
|
|
312
|
-
let
|
|
313
|
-
return
|
|
306
|
+
const r = "__ESD_DISPLAY_CONDITIONS_PLACEHOLDER__", l = t.match(/esd-custom-display-conditions="[^"]*"/);
|
|
307
|
+
let i = l ? t.replace(l[0], r) : t;
|
|
308
|
+
return i = i.replace(
|
|
314
309
|
/\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_total_product_kind\s*(>|>)\s*\d+\s*%\}/g,
|
|
315
310
|
""
|
|
316
|
-
),
|
|
311
|
+
), i = i.replace(
|
|
317
312
|
/\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_price_\d+\s*(!=|!=)\s*\1_originalprice_\d+\s*%\}/g,
|
|
318
313
|
""
|
|
319
|
-
),
|
|
314
|
+
), i = i.replace(/\{%\s*endif\s*%\}/g, ""), l && (i = i.replace(r, l[0])), i = i.replace(/\n\s*\n\s*\n/g, `
|
|
320
315
|
|
|
321
|
-
`),
|
|
316
|
+
`), i;
|
|
322
317
|
}
|
|
323
318
|
/**
|
|
324
319
|
* Replaces template variables with default values from productPairs
|
|
@@ -330,32 +325,32 @@ class z {
|
|
|
330
325
|
* - {{purchased_item_formattedprice_5}} → '1,490.49' (PURCHASED_ITEMS)
|
|
331
326
|
*/
|
|
332
327
|
replaceTemplateVariables(t) {
|
|
333
|
-
const { PAIRS_FOR_EXTENSION:
|
|
334
|
-
return t.replace(/{{([^}]+)}}/g, (
|
|
335
|
-
const n =
|
|
328
|
+
const { PAIRS_FOR_EXTENSION: r } = U;
|
|
329
|
+
return t.replace(/{{([^}]+)}}/g, (l, i) => {
|
|
330
|
+
const n = i.match(/^(ins_apr|browsed_item|purchased_item)_([a-z_]+)_(\d+)$/);
|
|
336
331
|
if (!n)
|
|
337
|
-
return
|
|
338
|
-
const [,
|
|
339
|
-
if (!
|
|
340
|
-
return console.warn(`Unknown variable prefix: ${
|
|
341
|
-
const
|
|
342
|
-
if (!
|
|
343
|
-
return console.warn(`Unknown variable suffix mapping for: ${
|
|
344
|
-
const { pairsKey:
|
|
345
|
-
if (!
|
|
346
|
-
return console.warn(`No data found for: ${
|
|
332
|
+
return l;
|
|
333
|
+
const [, o, a, _] = n, c = O[o];
|
|
334
|
+
if (!c)
|
|
335
|
+
return console.warn(`Unknown variable prefix: ${o}`), l;
|
|
336
|
+
const f = w[a];
|
|
337
|
+
if (!f)
|
|
338
|
+
return console.warn(`Unknown variable suffix mapping for: ${a}`), l;
|
|
339
|
+
const { pairsKey: d, defaultKey: s, isArray: S } = f, p = r[d][c];
|
|
340
|
+
if (!p)
|
|
341
|
+
return console.warn(`No data found for: ${d}.${c}`), l;
|
|
347
342
|
if (S) {
|
|
348
|
-
const
|
|
349
|
-
return Array.isArray(m) && m[
|
|
343
|
+
const y = parseInt(_) - 1, m = p[s];
|
|
344
|
+
return Array.isArray(m) && m[y] ? m[y] : (console.warn(`Array value not found: ${d}.${c}.${s}[${y}]`), l);
|
|
350
345
|
}
|
|
351
|
-
const I =
|
|
352
|
-
return I !== void 0 ? String(I) : (console.warn(`Default value not found: ${
|
|
346
|
+
const I = p[s];
|
|
347
|
+
return I !== void 0 ? String(I) : (console.warn(`Default value not found: ${d}.${c}.${s}`), l);
|
|
353
348
|
});
|
|
354
349
|
}
|
|
355
350
|
}
|
|
356
|
-
function
|
|
357
|
-
return new
|
|
351
|
+
function G(e) {
|
|
352
|
+
return new V().migrate(e);
|
|
358
353
|
}
|
|
359
354
|
export {
|
|
360
|
-
|
|
355
|
+
G as migrateItemsBlock
|
|
361
356
|
};
|