@useinsider/guido 3.0.0 → 3.1.0-beta.65e69dd
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 +4 -4
- package/dist/components/Guido.vue2.js +91 -81
- package/dist/components/organisms/header/EditorActions.vue.js +10 -8
- package/dist/components/organisms/header/EditorActions.vue2.js +41 -31
- package/dist/components/organisms/header/MigrationConfirmModal.vue.js +17 -0
- package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +39 -0
- package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +1 -1
- package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +1 -1
- package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +1 -1
- package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +2 -2
- package/dist/composables/useToaster.js +12 -10
- package/dist/config/compiler/unsubscribeCompilerRules.js +14 -14
- package/dist/config/compiler/utils/recommendationCompilerUtils.js +29 -18
- package/dist/config/i18n/en/labels.json.js +8 -3
- package/dist/config/migrator/itemsBlockMigrator.js +135 -131
- package/dist/config/migrator/recommendationMigrator.js +58 -54
- package/dist/enums/block.js +4 -0
- package/dist/extensions/Blocks/Items/block.js +30 -21
- package/dist/extensions/Blocks/Items/iconsRegistry.js +7 -6
- package/dist/extensions/Blocks/Items/items.css.js +48 -0
- package/dist/extensions/Blocks/Recommendation/block.js +64 -34
- package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +1 -1
- package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +36 -34
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +15 -12
- package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +4 -4
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +693 -144
- package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +78 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +15 -15
- package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +24 -24
- package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +2 -2
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +107 -78
- package/dist/extensions/Blocks/Recommendation/controls/{layout/index.js → main/layoutOrientation.js} +34 -23
- package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +2 -2
- package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +58 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +150 -64
- package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +2 -2
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +202 -200
- package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +25 -8
- package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +6 -5
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +8 -8
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +21 -21
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +13 -13
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +17 -17
- package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +94 -100
- package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +65 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +20 -18
- package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +5 -4
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +209 -2
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +135 -111
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +9 -7
- package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +63 -34
- package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +25 -28
- package/dist/extensions/Blocks/Recommendation/templates/index.js +8 -8
- package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +28 -13
- package/dist/extensions/Blocks/Recommendation/templates/list/template.js +25 -44
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +62 -38
- package/dist/extensions/Blocks/common-control.js +96 -39
- package/dist/guido.css +1 -1
- package/dist/src/@types/extensions/block.d.ts +2 -0
- package/dist/src/App.vue.d.ts +3 -1
- package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +6 -0
- package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
- package/dist/src/enums/block.d.ts +4 -0
- package/dist/src/extensions/Blocks/Items/block.d.ts +3 -1
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +4 -1
- package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +2 -1
- package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +9 -1
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +10 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +134 -44
- package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +105 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +3 -2
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +5 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/{layout/index.d.ts → main/layoutOrientation.d.ts} +3 -3
- package/dist/src/extensions/Blocks/Recommendation/controls/main/productCount.d.ts +28 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +38 -20
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +6 -2
- package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +23 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +8 -18
- package/dist/src/extensions/Blocks/Recommendation/controls/syncInfoMessage.d.ts +34 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +2 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +10 -4
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +37 -2
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +13 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +29 -2
- package/dist/src/stores/template.d.ts +29 -0
- package/dist/src/utils/migrationBannerHtml.d.ts +2 -0
- package/dist/static/assets/info.svg.js +5 -0
- package/dist/static/styles/base.css.js +7 -2
- package/dist/static/styles/components/wide-panel.css.js +1 -0
- package/dist/static/styles/customEditorStyle.css.js +9 -0
- package/dist/static/styles/variables.css.js +3 -0
- package/dist/stores/template.js +15 -0
- package/dist/stores/toaster.js +7 -7
- package/dist/utils/migrationBannerHtml.js +21 -0
- package/package.json +3 -2
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
- package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useRecommendation as
|
|
1
|
+
import { useRecommendation as $ } from "../../../composables/useRecommendation.js";
|
|
2
2
|
function b(e, u, r, o) {
|
|
3
3
|
const n = `{{${e}_${u}_${r}}}`, t = `{{${e}_${u}_currency}}`;
|
|
4
4
|
return o === "before" ? `${t} ${n}` : `${n} ${t}`;
|
|
@@ -64,58 +64,69 @@ function p(e, u, r, o, n) {
|
|
|
64
64
|
}
|
|
65
65
|
break;
|
|
66
66
|
}
|
|
67
|
+
default: {
|
|
68
|
+
const t = e.getAttribute("product-attr") ? e : e.querySelector("[product-attr]");
|
|
69
|
+
if (t) {
|
|
70
|
+
const c = t.getAttribute("product-attr"), s = t.querySelector("p");
|
|
71
|
+
if (s) {
|
|
72
|
+
const i = s.querySelector("strong") || s;
|
|
73
|
+
i.textContent = `{{${r}_${o}_${c}}}`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
67
78
|
}
|
|
68
79
|
}
|
|
69
|
-
function
|
|
80
|
+
function S(e, u, r) {
|
|
70
81
|
e.querySelectorAll(".recommendation-product-row").forEach((n, t) => {
|
|
71
82
|
n.querySelectorAll("[data-attribute-type]").forEach((s) => {
|
|
72
|
-
const i = s.getAttribute("data-attribute-type") || "",
|
|
73
|
-
|
|
74
|
-
p(
|
|
83
|
+
const i = s.getAttribute("data-attribute-type") || "", l = s.querySelectorAll(".attribute-cell");
|
|
84
|
+
l.length > 0 ? l.forEach((a) => {
|
|
85
|
+
p(a, i, u, t, r);
|
|
75
86
|
}) : p(s, i, u, t, r);
|
|
76
87
|
});
|
|
77
88
|
});
|
|
78
89
|
}
|
|
79
|
-
function
|
|
90
|
+
function _(e, u, r) {
|
|
80
91
|
const o = e.querySelectorAll(".recommendation-product-row");
|
|
81
92
|
if (!o.length)
|
|
82
93
|
return;
|
|
83
94
|
const [n] = o, t = n.querySelector("[data-attribute-type]"), c = t ? t.querySelectorAll(".attribute-cell").length : 1;
|
|
84
95
|
o.forEach((s, i) => {
|
|
85
|
-
s.querySelectorAll("[data-attribute-type]").forEach((
|
|
86
|
-
const f =
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
p(y, f, u,
|
|
96
|
+
s.querySelectorAll("[data-attribute-type]").forEach((a) => {
|
|
97
|
+
const f = a.getAttribute("data-attribute-type") || "";
|
|
98
|
+
a.querySelectorAll(".attribute-cell").forEach((y, A) => {
|
|
99
|
+
const m = i * c + A;
|
|
100
|
+
p(y, f, u, m, r);
|
|
90
101
|
});
|
|
91
102
|
});
|
|
92
103
|
});
|
|
93
104
|
}
|
|
94
105
|
function q(e, u, r) {
|
|
95
106
|
e.querySelectorAll(".ins-recommendation-product-container").forEach((n) => {
|
|
96
|
-
|
|
107
|
+
_(n, u, r);
|
|
97
108
|
});
|
|
98
109
|
}
|
|
99
110
|
function d(e, u) {
|
|
100
111
|
const r = e.getAttribute("data-layout") || "grid", o = e.getAttribute("currency-alignment") || "after";
|
|
101
|
-
r === "list" ?
|
|
112
|
+
r === "list" ? S(e, u, o) : q(e, u, o);
|
|
102
113
|
}
|
|
103
|
-
function
|
|
114
|
+
function g(e, u) {
|
|
104
115
|
const r = e.match(/<!DOCTYPE[^>]*>/i);
|
|
105
116
|
return (r ? `${r[0]}
|
|
106
117
|
` : "") + u.documentElement.outerHTML;
|
|
107
118
|
}
|
|
108
|
-
function
|
|
119
|
+
function E(e) {
|
|
109
120
|
const u = e.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(u, "text/html"), o = r.querySelectorAll(".recommendation-block-v2");
|
|
110
121
|
if (!o.length)
|
|
111
122
|
return e;
|
|
112
|
-
const { buildCampaignUrl: n } =
|
|
123
|
+
const { buildCampaignUrl: n } = $();
|
|
113
124
|
return o.forEach((c) => {
|
|
114
125
|
const s = c.getAttribute("recommendation-id");
|
|
115
126
|
s && (n(s), d(c, s));
|
|
116
|
-
}),
|
|
127
|
+
}), g(u, r).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}");
|
|
117
128
|
}
|
|
118
129
|
export {
|
|
119
130
|
b as formatPriceVariable,
|
|
120
|
-
|
|
131
|
+
E as prepareRecommendationBlocks
|
|
121
132
|
};
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
const
|
|
1
|
+
const e = "Items", o = {
|
|
2
2
|
"Global Styles & Layout": "Global Styles and Layout",
|
|
3
|
-
"Structures & Modules": "Structures and Modules"
|
|
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."
|
|
4
8
|
};
|
|
5
9
|
export {
|
|
6
|
-
|
|
10
|
+
e as Items,
|
|
11
|
+
o as default
|
|
7
12
|
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var M = (
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
1
|
+
var B = Object.defineProperty;
|
|
2
|
+
var v = (r, t, o) => t in r ? B(r, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : r[t] = o;
|
|
3
|
+
var M = (r, t, o) => v(r, typeof t != "symbol" ? t + "" : t, o);
|
|
4
|
+
import { BLOCK_ID as U } from "../../extensions/Blocks/Items/block.js";
|
|
5
|
+
import { productPairs as K } from "../../extensions/Blocks/Items/enums/productEnums.js";
|
|
6
|
+
import { ItemInCartOptions as T, DefaultConfigValues as g, SETTINGS_ENUMS as s } from "../../extensions/Blocks/Items/enums/settingsEnums.js";
|
|
7
|
+
import { getDefaultTemplate as w } from "../../extensions/Blocks/Items/template.js";
|
|
8
|
+
import { useTemplateStore as F } from "../../stores/template.js";
|
|
9
|
+
const q = {
|
|
8
10
|
img: {
|
|
9
11
|
pairsKey: "imageSrc",
|
|
10
12
|
defaultKey: "DEFAULT",
|
|
@@ -71,122 +73,124 @@ const w = {
|
|
|
71
73
|
isArray: !1
|
|
72
74
|
}
|
|
73
75
|
};
|
|
74
|
-
function
|
|
76
|
+
function O() {
|
|
75
77
|
return String(Date.now() + Math.floor(Math.random() * 1e3));
|
|
76
78
|
}
|
|
77
|
-
function
|
|
78
|
-
return
|
|
79
|
-
CartItems:
|
|
80
|
-
BrowsedItems:
|
|
81
|
-
PurchasedItems:
|
|
82
|
-
CART_ITEMS:
|
|
83
|
-
BROWSED_ITEMS:
|
|
84
|
-
PURCHASED_ITEMS:
|
|
85
|
-
}[
|
|
79
|
+
function $(r) {
|
|
80
|
+
return r ? {
|
|
81
|
+
CartItems: s.ITEMS_TYPE.CART_ITEMS,
|
|
82
|
+
BrowsedItems: s.ITEMS_TYPE.BROWSED_ITEMS,
|
|
83
|
+
PurchasedItems: s.ITEMS_TYPE.PURCHASED_ITEMS,
|
|
84
|
+
CART_ITEMS: s.ITEMS_TYPE.CART_ITEMS,
|
|
85
|
+
BROWSED_ITEMS: s.ITEMS_TYPE.BROWSED_ITEMS,
|
|
86
|
+
PURCHASED_ITEMS: s.ITEMS_TYPE.PURCHASED_ITEMS
|
|
87
|
+
}[r] || s.ITEMS_TYPE.CART_ITEMS : s.ITEMS_TYPE.CART_ITEMS;
|
|
86
88
|
}
|
|
87
|
-
function R(
|
|
88
|
-
var
|
|
89
|
-
const t = (
|
|
90
|
-
let
|
|
91
|
-
if (
|
|
92
|
-
const
|
|
93
|
-
|
|
89
|
+
function R(r) {
|
|
90
|
+
var e;
|
|
91
|
+
const t = (c, _) => c == null ? _ : c === "1" || c === "true", o = (c, _) => c || _, l = r["data-type"] || r["data-source"], a = $(l), n = T[a];
|
|
92
|
+
let i = r["data-cart_items_select_control_value"] || ((e = n == null ? void 0 : n[0]) == null ? void 0 : e.value) || g.cartItemsSelectControlValue;
|
|
93
|
+
if (i && !i.includes("{{") && /^\d+$/.test(i)) {
|
|
94
|
+
const c = parseInt(i) - 1, _ = T[a];
|
|
95
|
+
_ && _[c] && (i = _[c].value);
|
|
94
96
|
}
|
|
95
97
|
return {
|
|
96
98
|
initialized: !0,
|
|
97
|
-
blockInstanceId: r
|
|
98
|
-
source:
|
|
99
|
-
type:
|
|
100
|
-
itemsSelectValue:
|
|
101
|
-
orientation:
|
|
102
|
-
nameTrimming: t(
|
|
103
|
-
priceHideDiscount: t(
|
|
104
|
-
priceFormatted: t(
|
|
105
|
-
priceSinglePrice: t(
|
|
106
|
-
priceCurrencySymbol:
|
|
107
|
-
|
|
99
|
+
blockInstanceId: o(r["data-block-instance-id"], O()),
|
|
100
|
+
source: a,
|
|
101
|
+
type: a,
|
|
102
|
+
itemsSelectValue: i,
|
|
103
|
+
orientation: r["data-card_orientation_control_value"] || s.ORIENTATION.VERTICAL,
|
|
104
|
+
nameTrimming: t(r["data-product_name_control_trim"], !0),
|
|
105
|
+
priceHideDiscount: t(r["data-product_price_control_nodup"], !0),
|
|
106
|
+
priceFormatted: t(r["data-product_price_control_formated"], !0),
|
|
107
|
+
priceSinglePrice: t(r["data-product_price_control_single_price"], !1),
|
|
108
|
+
priceCurrencySymbol: o(
|
|
109
|
+
r["data-product_price_control_currency_symbol"],
|
|
108
110
|
g.productPriceCurrencySymbolControlValue
|
|
109
111
|
),
|
|
110
|
-
priceCurrencyLocation:
|
|
111
|
-
|
|
112
|
+
priceCurrencyLocation: o(
|
|
113
|
+
r["data-product_price_currency_location"],
|
|
112
114
|
g.productPriceCurrencyLocationControlValue
|
|
113
115
|
),
|
|
114
|
-
priceOrientation:
|
|
115
|
-
quantityControlEnabled: t(
|
|
116
|
-
buttonLink: r
|
|
117
|
-
imageLink: r
|
|
118
|
-
buttonLabel: r
|
|
119
|
-
buttonFullWidth: t(
|
|
120
|
-
imageVisible: t(
|
|
121
|
-
nameVisible: t(
|
|
122
|
-
quantityVisible: t(
|
|
123
|
-
priceVisible: t(
|
|
124
|
-
originalPriceVisible: t(
|
|
125
|
-
buttonVisible: t(
|
|
116
|
+
priceOrientation: r["data-product_original_price_control_orientation"] || "horizontal",
|
|
117
|
+
quantityControlEnabled: t(r["data-product_quantity_control_enabled"], !0),
|
|
118
|
+
buttonLink: o(r["data-product_button_link"], g.productButtonLinkControlValue),
|
|
119
|
+
imageLink: o(r["data-product_image_link"], g.productImageLinkControlValue),
|
|
120
|
+
buttonLabel: o(r["data-product_button_control_label"], "Buy"),
|
|
121
|
+
buttonFullWidth: t(r["data-product_button_control_atw"], !0),
|
|
122
|
+
imageVisible: t(r["data-product_image_control_enabled"], !0),
|
|
123
|
+
nameVisible: t(r["data-product_name_control_enabled"], !0),
|
|
124
|
+
quantityVisible: t(r["data-product_quantity_control_enabled"], !0),
|
|
125
|
+
priceVisible: t(r["data-product_price_control_enabled"], !0),
|
|
126
|
+
originalPriceVisible: t(r["data-product_original_price_control_enabled"], !0),
|
|
127
|
+
buttonVisible: t(r["data-product_button_control_enabled"], !0)
|
|
126
128
|
};
|
|
127
129
|
}
|
|
128
|
-
const
|
|
130
|
+
const x = {
|
|
129
131
|
ins_apr: "CART_ITEMS",
|
|
130
132
|
browsed_item: "BROWSED_ITEMS",
|
|
131
133
|
purchased_item: "PURCHASED_ITEMS"
|
|
132
134
|
};
|
|
133
|
-
function
|
|
134
|
-
const
|
|
135
|
+
function V(r, t) {
|
|
136
|
+
const o = {
|
|
135
137
|
CART_ITEMS: `{{Abandoned Cart Item (${t}) Image}}`,
|
|
136
138
|
BROWSED_ITEMS: `{{Browsed Item (${t}) Image}}`,
|
|
137
139
|
PURCHASED_ITEMS: `{{Purchased Item (${t}) Image}}`
|
|
138
140
|
};
|
|
139
|
-
return r
|
|
141
|
+
return o[r] || o.CART_ITEMS;
|
|
140
142
|
}
|
|
141
|
-
function
|
|
142
|
-
const
|
|
143
|
+
function N(r, t) {
|
|
144
|
+
const o = {
|
|
143
145
|
CART_ITEMS: `{{Abandoned Cart Item (${t}) Url}}`,
|
|
144
146
|
BROWSED_ITEMS: `{{Browsed Item (${t}) Url}}`,
|
|
145
147
|
PURCHASED_ITEMS: `{{Purchased Item (${t}) Url}}`
|
|
146
148
|
};
|
|
147
|
-
return r
|
|
149
|
+
return o[r] || o.CART_ITEMS;
|
|
148
150
|
}
|
|
149
|
-
class
|
|
151
|
+
class z {
|
|
150
152
|
constructor() {
|
|
151
153
|
M(this, "parser");
|
|
152
154
|
this.parser = new DOMParser();
|
|
153
155
|
}
|
|
154
156
|
migrate(t) {
|
|
155
157
|
try {
|
|
156
|
-
let
|
|
157
|
-
|
|
158
|
-
const l = this.parser.parseFromString(
|
|
158
|
+
let o = this.removeJinjaConditionals(t);
|
|
159
|
+
o = this.replaceTemplateVariables(o);
|
|
160
|
+
const l = this.parser.parseFromString(o, "text/html"), a = l.querySelectorAll(
|
|
159
161
|
"td.esd-cart-items-block, td.esd-browsed-items-block, td.esd-purchased-items-block"
|
|
160
162
|
);
|
|
161
|
-
return
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
163
|
+
return F().$patch((i) => {
|
|
164
|
+
i.migrations = { ...i.migrations, [U]: a.length };
|
|
165
|
+
}), a.length === 0 ? (console.warn("ItemsBlockMigrator: No blocks found with items block selectors"), o) : (a.forEach((i) => {
|
|
166
|
+
const e = this.extractConfiguration(i), c = w({
|
|
167
|
+
orientation: e.orientation,
|
|
168
|
+
itemsType: e.itemsType,
|
|
169
|
+
itemId: e.itemId,
|
|
170
|
+
currencySymbol: e.currencySymbol,
|
|
171
|
+
currencyLocation: e.currencyLocation,
|
|
172
|
+
formattedPrice: e.formattedPrice,
|
|
173
|
+
configBlockAttributes: e.configBlockAttributes,
|
|
170
174
|
migrate: !0,
|
|
171
|
-
nameStyles:
|
|
172
|
-
buttonStyles:
|
|
173
|
-
priceStyles:
|
|
174
|
-
originalPriceStyles:
|
|
175
|
-
quantityStyles:
|
|
176
|
-
nodeConfig: R(
|
|
177
|
-
}),
|
|
178
|
-
`<table><tbody><tr>${
|
|
175
|
+
nameStyles: e.nameStyles,
|
|
176
|
+
buttonStyles: e.buttonStyles,
|
|
177
|
+
priceStyles: e.priceStyles,
|
|
178
|
+
originalPriceStyles: e.originalPriceStyles,
|
|
179
|
+
quantityStyles: e.quantityStyles,
|
|
180
|
+
nodeConfig: R(e.configBlockAttributes)
|
|
181
|
+
}), d = this.parser.parseFromString(
|
|
182
|
+
`<table><tbody><tr>${c}</tr></tbody></table>`,
|
|
179
183
|
"text/html"
|
|
180
184
|
).querySelector("td");
|
|
181
|
-
if (
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
const
|
|
185
|
-
|
|
185
|
+
if (d && i.parentNode) {
|
|
186
|
+
const p = R(e.configBlockAttributes);
|
|
187
|
+
d.setAttribute("esd-ext-config", JSON.stringify(p));
|
|
188
|
+
const u = d.querySelector("esd-config-block");
|
|
189
|
+
u && u.remove(), i.parentNode.replaceChild(d, i);
|
|
186
190
|
}
|
|
187
191
|
}), l.documentElement.outerHTML);
|
|
188
|
-
} catch (
|
|
189
|
-
return console.error("ItemsBlockMigrator failed:",
|
|
192
|
+
} catch (o) {
|
|
193
|
+
return console.error("ItemsBlockMigrator failed:", o), t;
|
|
190
194
|
}
|
|
191
195
|
}
|
|
192
196
|
/**
|
|
@@ -197,18 +201,18 @@ class V {
|
|
|
197
201
|
*/
|
|
198
202
|
extractConfiguration(t) {
|
|
199
203
|
var C, D, P;
|
|
200
|
-
const
|
|
204
|
+
const o = ((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", a = parseInt(l) - 1, n = T[o], i = ((P = n == null ? void 0 : n[a]) == null ? void 0 : P.value) || n[0].value, e = t.querySelector('[product-attr="price"]'), c = (e == null ? void 0 : e.getAttribute("data-currency_symbol")) || "USD", d = ((e == null ? void 0 : e.getAttribute("data-curency")) || "before") === "after" ? "1" : "0", p = (e == null ? void 0 : e.getAttribute("data-formated")) !== "false", u = this.extractConfigBlockAttributes(t, o, l), S = u["data-card_orientation_control_value"];
|
|
201
205
|
let b;
|
|
202
206
|
S ? b = S === "horizontal" ? "horizontal" : "vertical" : b = t.querySelector('[colspan="2"]') !== null ? "vertical" : "horizontal";
|
|
203
|
-
const
|
|
207
|
+
const y = t.querySelector('a[product-attr="name"]'), I = (y == null ? void 0 : y.getAttribute("style")) || void 0, f = t.querySelector('a[product-attr="button"]'), m = (f == null ? void 0 : f.getAttribute("style")) || void 0, h = (e == null ? void 0 : e.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;
|
|
204
208
|
return {
|
|
205
209
|
orientation: b,
|
|
206
|
-
itemsType:
|
|
207
|
-
itemId:
|
|
208
|
-
currencySymbol:
|
|
209
|
-
currencyLocation:
|
|
210
|
-
formattedPrice:
|
|
211
|
-
configBlockAttributes:
|
|
210
|
+
itemsType: o,
|
|
211
|
+
itemId: i,
|
|
212
|
+
currencySymbol: c,
|
|
213
|
+
currencyLocation: d,
|
|
214
|
+
formattedPrice: p,
|
|
215
|
+
configBlockAttributes: u,
|
|
212
216
|
nameStyles: I,
|
|
213
217
|
buttonStyles: m,
|
|
214
218
|
priceStyles: h,
|
|
@@ -223,27 +227,27 @@ class V {
|
|
|
223
227
|
* @param itemsType - The type of items (CART_ITEMS, BROWSED_ITEMS, PURCHASED_ITEMS)
|
|
224
228
|
* @param itemNumber - The item number (1-based index)
|
|
225
229
|
*/
|
|
226
|
-
extractConfigBlockAttributes(t,
|
|
227
|
-
const
|
|
228
|
-
if (!
|
|
230
|
+
extractConfigBlockAttributes(t, o, l) {
|
|
231
|
+
const a = t.querySelector("esd-config-block"), n = {};
|
|
232
|
+
if (!a)
|
|
229
233
|
return this.getDefaultConfigBlockAttributes();
|
|
230
|
-
if (Array.from(
|
|
231
|
-
|
|
234
|
+
if (Array.from(a.attributes).forEach((e) => {
|
|
235
|
+
e.name.startsWith("data-") && (n[e.name] = e.value);
|
|
232
236
|
}), n["data-cart_items_select_control_value"]) {
|
|
233
|
-
const
|
|
234
|
-
if (/^\d+$/.test(
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
+
const e = n["data-cart_items_select_control_value"];
|
|
238
|
+
if (/^\d+$/.test(e)) {
|
|
239
|
+
const c = parseInt(e) - 1, _ = T[o];
|
|
240
|
+
_ && _[c] && (n["data-cart_items_select_control_value"] = _[c].value);
|
|
237
241
|
}
|
|
238
242
|
}
|
|
239
243
|
if (n["data-product_price_control_curency"]) {
|
|
240
|
-
const
|
|
241
|
-
let
|
|
242
|
-
|
|
244
|
+
const e = n["data-product_price_control_curency"];
|
|
245
|
+
let c = e;
|
|
246
|
+
e === "before" ? c = "0" : e === "after" && (c = "1"), n["data-product_price_control_curency"] = c, n["data-product_price_currency_location"] = c;
|
|
243
247
|
}
|
|
244
248
|
(!n["data-product_price_control_currency_symbol"] || n["data-product_price_control_currency_symbol"].trim() === "") && (n["data-product_price_control_currency_symbol"] = "USD");
|
|
245
|
-
const
|
|
246
|
-
return
|
|
249
|
+
const i = { ...this.getDefaultConfigBlockAttributes(), ...n };
|
|
250
|
+
return i["data-type"] = o, i["data-source"] = o, i["data-product_image_link"] = V(o, l), i["data-product_button_link"] = N(o, l), i;
|
|
247
251
|
}
|
|
248
252
|
/**
|
|
249
253
|
* Returns default esd-config-block attributes based on the old template structure
|
|
@@ -303,17 +307,17 @@ class V {
|
|
|
303
307
|
* contains display condition Jinja scripts that should NOT be removed.
|
|
304
308
|
*/
|
|
305
309
|
removeJinjaConditionals(t) {
|
|
306
|
-
const
|
|
307
|
-
let
|
|
308
|
-
return
|
|
310
|
+
const o = "__ESD_DISPLAY_CONDITIONS_PLACEHOLDER__", l = t.match(/esd-custom-display-conditions="[^"]*"/);
|
|
311
|
+
let a = l ? t.replace(l[0], o) : t;
|
|
312
|
+
return a = a.replace(
|
|
309
313
|
/\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_total_product_kind\s*(>|>)\s*\d+\s*%\}/g,
|
|
310
314
|
""
|
|
311
|
-
),
|
|
315
|
+
), a = a.replace(
|
|
312
316
|
/\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_price_\d+\s*(!=|!=)\s*\1_originalprice_\d+\s*%\}/g,
|
|
313
317
|
""
|
|
314
|
-
),
|
|
318
|
+
), a = a.replace(/\{%\s*endif\s*%\}/g, ""), l && (a = a.replace(o, l[0])), a = a.replace(/\n\s*\n\s*\n/g, `
|
|
315
319
|
|
|
316
|
-
`),
|
|
320
|
+
`), a;
|
|
317
321
|
}
|
|
318
322
|
/**
|
|
319
323
|
* Replaces template variables with default values from productPairs
|
|
@@ -325,32 +329,32 @@ class V {
|
|
|
325
329
|
* - {{purchased_item_formattedprice_5}} → '1,490.49' (PURCHASED_ITEMS)
|
|
326
330
|
*/
|
|
327
331
|
replaceTemplateVariables(t) {
|
|
328
|
-
const { PAIRS_FOR_EXTENSION:
|
|
329
|
-
return t.replace(/{{([^}]+)}}/g, (l,
|
|
330
|
-
const n =
|
|
332
|
+
const { PAIRS_FOR_EXTENSION: o } = K;
|
|
333
|
+
return t.replace(/{{([^}]+)}}/g, (l, a) => {
|
|
334
|
+
const n = a.match(/^(ins_apr|browsed_item|purchased_item)_([a-z_]+)_(\d+)$/);
|
|
331
335
|
if (!n)
|
|
332
336
|
return l;
|
|
333
|
-
const [,
|
|
334
|
-
if (!
|
|
335
|
-
return console.warn(`Unknown variable prefix: ${
|
|
336
|
-
const
|
|
337
|
-
if (!
|
|
338
|
-
return console.warn(`Unknown variable suffix mapping for: ${
|
|
339
|
-
const { pairsKey:
|
|
340
|
-
if (!
|
|
341
|
-
return console.warn(`No data found for: ${
|
|
337
|
+
const [, i, e, c] = n, _ = x[i];
|
|
338
|
+
if (!_)
|
|
339
|
+
return console.warn(`Unknown variable prefix: ${i}`), l;
|
|
340
|
+
const d = q[e];
|
|
341
|
+
if (!d)
|
|
342
|
+
return console.warn(`Unknown variable suffix mapping for: ${e}`), l;
|
|
343
|
+
const { pairsKey: p, defaultKey: u, isArray: S } = d, y = o[p][_];
|
|
344
|
+
if (!y)
|
|
345
|
+
return console.warn(`No data found for: ${p}.${_}`), l;
|
|
342
346
|
if (S) {
|
|
343
|
-
const
|
|
344
|
-
return Array.isArray(m) && m[
|
|
347
|
+
const f = parseInt(c) - 1, m = y[u];
|
|
348
|
+
return Array.isArray(m) && m[f] ? m[f] : (console.warn(`Array value not found: ${p}.${_}.${u}[${f}]`), l);
|
|
345
349
|
}
|
|
346
|
-
const I =
|
|
347
|
-
return I !== void 0 ? String(I) : (console.warn(`Default value not found: ${
|
|
350
|
+
const I = y[u];
|
|
351
|
+
return I !== void 0 ? String(I) : (console.warn(`Default value not found: ${p}.${_}.${u}`), l);
|
|
348
352
|
});
|
|
349
353
|
}
|
|
350
354
|
}
|
|
351
|
-
function
|
|
352
|
-
return new
|
|
355
|
+
function Q(r) {
|
|
356
|
+
return new z().migrate(r);
|
|
353
357
|
}
|
|
354
358
|
export {
|
|
355
|
-
|
|
359
|
+
Q as migrateItemsBlock
|
|
356
360
|
};
|