@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.
Files changed (106) hide show
  1. package/dist/components/Guido.vue.js +4 -4
  2. package/dist/components/Guido.vue2.js +91 -81
  3. package/dist/components/organisms/header/EditorActions.vue.js +10 -8
  4. package/dist/components/organisms/header/EditorActions.vue2.js +41 -31
  5. package/dist/components/organisms/header/MigrationConfirmModal.vue.js +17 -0
  6. package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +39 -0
  7. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +1 -1
  8. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +1 -1
  9. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +1 -1
  10. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +2 -2
  11. package/dist/composables/useToaster.js +12 -10
  12. package/dist/config/compiler/unsubscribeCompilerRules.js +14 -14
  13. package/dist/config/compiler/utils/recommendationCompilerUtils.js +29 -18
  14. package/dist/config/i18n/en/labels.json.js +8 -3
  15. package/dist/config/migrator/itemsBlockMigrator.js +135 -131
  16. package/dist/config/migrator/recommendationMigrator.js +58 -54
  17. package/dist/enums/block.js +4 -0
  18. package/dist/extensions/Blocks/Items/block.js +30 -21
  19. package/dist/extensions/Blocks/Items/iconsRegistry.js +7 -6
  20. package/dist/extensions/Blocks/Items/items.css.js +48 -0
  21. package/dist/extensions/Blocks/Recommendation/block.js +64 -34
  22. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +1 -1
  23. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  24. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +36 -34
  25. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +15 -12
  26. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +4 -4
  27. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +693 -144
  28. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +78 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +15 -15
  30. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +24 -24
  31. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +2 -2
  32. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +107 -78
  33. package/dist/extensions/Blocks/Recommendation/controls/{layout/index.js → main/layoutOrientation.js} +34 -23
  34. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +2 -2
  35. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +58 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +150 -64
  37. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +2 -2
  38. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +202 -200
  39. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +25 -8
  40. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +6 -5
  41. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +8 -8
  42. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +21 -21
  43. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +13 -13
  44. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +17 -17
  45. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +94 -100
  46. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +65 -0
  47. package/dist/extensions/Blocks/Recommendation/extension.js +20 -18
  48. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +5 -4
  49. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +209 -2
  50. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +135 -111
  51. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +9 -7
  52. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +63 -34
  53. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +25 -28
  54. package/dist/extensions/Blocks/Recommendation/templates/index.js +8 -8
  55. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +28 -13
  56. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +25 -44
  57. package/dist/extensions/Blocks/Recommendation/templates/utils.js +62 -38
  58. package/dist/extensions/Blocks/common-control.js +96 -39
  59. package/dist/guido.css +1 -1
  60. package/dist/src/@types/extensions/block.d.ts +2 -0
  61. package/dist/src/App.vue.d.ts +3 -1
  62. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  63. package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +6 -0
  64. package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
  65. package/dist/src/enums/block.d.ts +4 -0
  66. package/dist/src/extensions/Blocks/Items/block.d.ts +3 -1
  67. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +4 -1
  68. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +2 -1
  69. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +9 -1
  70. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  71. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +10 -0
  72. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +134 -44
  73. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +105 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +3 -2
  75. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +5 -1
  76. package/dist/src/extensions/Blocks/Recommendation/controls/{layout/index.d.ts → main/layoutOrientation.d.ts} +3 -3
  77. package/dist/src/extensions/Blocks/Recommendation/controls/main/productCount.d.ts +28 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +38 -20
  79. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +6 -2
  80. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +23 -1
  81. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +8 -18
  82. package/dist/src/extensions/Blocks/Recommendation/controls/syncInfoMessage.d.ts +34 -0
  83. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +2 -0
  84. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +1 -1
  85. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +1 -1
  86. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +10 -4
  87. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +37 -2
  88. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +13 -0
  89. package/dist/src/extensions/Blocks/common-control.d.ts +29 -2
  90. package/dist/src/stores/template.d.ts +29 -0
  91. package/dist/src/utils/migrationBannerHtml.d.ts +2 -0
  92. package/dist/static/assets/info.svg.js +5 -0
  93. package/dist/static/styles/base.css.js +7 -2
  94. package/dist/static/styles/components/wide-panel.css.js +1 -0
  95. package/dist/static/styles/customEditorStyle.css.js +9 -0
  96. package/dist/static/styles/variables.css.js +3 -0
  97. package/dist/stores/template.js +15 -0
  98. package/dist/stores/toaster.js +7 -7
  99. package/dist/utils/migrationBannerHtml.js +21 -0
  100. package/package.json +3 -2
  101. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
  102. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
  103. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
  104. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
  105. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
  106. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
@@ -1,4 +1,4 @@
1
- import { useRecommendation as _ } from "../../../composables/useRecommendation.js";
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 $(e, u, r) {
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") || "", a = s.querySelectorAll(".attribute-cell");
73
- a.length > 0 ? a.forEach((l) => {
74
- p(l, i, u, t, r);
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 S(e, u, r) {
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((l) => {
86
- const f = l.getAttribute("data-attribute-type") || "";
87
- l.querySelectorAll(".attribute-cell").forEach((y, m) => {
88
- const A = i * c + m;
89
- p(y, f, u, A, r);
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
- S(n, u, r);
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" ? $(e, u, o) : q(e, u, o);
112
+ r === "list" ? S(e, u, o) : q(e, u, o);
102
113
  }
103
- function h(e, u) {
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 w(e) {
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
- }), h(u, r).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
127
+ }), g(u, r).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
117
128
  }
118
129
  export {
119
130
  b as formatPriceVariable,
120
- w as prepareRecommendationBlocks
131
+ E as prepareRecommendationBlocks
121
132
  };
@@ -1,7 +1,12 @@
1
- const l = {
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
- l as default
10
+ e as Items,
11
+ o as default
7
12
  };
@@ -1,10 +1,12 @@
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 = {
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 F() {
76
+ function O() {
75
77
  return String(Date.now() + Math.floor(Math.random() * 1e3));
76
78
  }
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;
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(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);
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(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"],
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: r(
111
- e["data-product_price_currency_location"],
112
+ priceCurrencyLocation: o(
113
+ r["data-product_price_currency_location"],
112
114
  g.productPriceCurrencyLocationControlValue
113
115
  ),
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)
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 O = {
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 $(e, t) {
134
- const r = {
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[e] || r.CART_ITEMS;
141
+ return o[r] || o.CART_ITEMS;
140
142
  }
141
- function x(e, t) {
142
- const r = {
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[e] || r.CART_ITEMS;
149
+ return o[r] || o.CART_ITEMS;
148
150
  }
149
- class V {
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 r = this.removeJinjaConditionals(t);
157
- r = this.replaceTemplateVariables(r);
158
- const l = this.parser.parseFromString(r, "text/html"), i = l.querySelectorAll(
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 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,
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: 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>`,
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 (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);
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 (r) {
189
- return console.error("ItemsBlockMigrator failed:", r), t;
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 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"];
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 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;
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: r,
207
- itemId: o,
208
- currencySymbol: _,
209
- currencyLocation: f,
210
- formattedPrice: d,
211
- configBlockAttributes: s,
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, r, l) {
227
- const i = t.querySelector("esd-config-block"), n = {};
228
- if (!i)
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(i.attributes).forEach((a) => {
231
- a.name.startsWith("data-") && (n[a.name] = a.value);
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 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);
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 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"] = _;
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 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;
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 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(
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*(&gt;|>)\s*\d+\s*%\}/g,
310
314
  ""
311
- ), i = i.replace(
315
+ ), a = a.replace(
312
316
  /\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_price_\d+\s*(!&#61;|!=)\s*\1_originalprice_\d+\s*%\}/g,
313
317
  ""
314
- ), i = i.replace(/\{%\s*endif\s*%\}/g, ""), l && (i = i.replace(r, l[0])), i = i.replace(/\n\s*\n\s*\n/g, `
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
- `), i;
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: r } = U;
329
- return t.replace(/{{([^}]+)}}/g, (l, i) => {
330
- const n = i.match(/^(ins_apr|browsed_item|purchased_item)_([a-z_]+)_(\d+)$/);
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 [, 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;
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 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);
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 = p[s];
347
- return I !== void 0 ? String(I) : (console.warn(`Default value not found: ${d}.${c}.${s}`), l);
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 G(e) {
352
- return new V().migrate(e);
355
+ function Q(r) {
356
+ return new z().migrate(r);
353
357
  }
354
358
  export {
355
- G as migrateItemsBlock
359
+ Q as migrateItemsBlock
356
360
  };