@useinsider/guido 1.0.3-beta.5361682 → 1.0.3-beta.538b804

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 (86) hide show
  1. package/README.md +0 -32
  2. package/dist/composables/useActionsApi.js +1 -1
  3. package/dist/composables/useHtmlValidator.js +36 -35
  4. package/dist/enums/unsubscribe.js +27 -26
  5. package/dist/extensions/Blocks/Items/block.js +26 -26
  6. package/dist/extensions/Blocks/Items/controls/name/trimming.js +1 -1
  7. package/dist/extensions/Blocks/Items/controls/settingsControl.js +48 -36
  8. package/dist/extensions/Blocks/Items/enums/productEnums.js +62 -4
  9. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +57 -57
  10. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +54 -55
  11. package/dist/extensions/Blocks/Items/template.js +79 -82
  12. package/dist/extensions/Blocks/Unsubscribe/block.js +27 -27
  13. package/dist/node_modules/lodash-es/_DataView.js +6 -0
  14. package/dist/node_modules/lodash-es/_Promise.js +6 -0
  15. package/dist/node_modules/lodash-es/_Set.js +6 -0
  16. package/dist/node_modules/lodash-es/_SetCache.js +13 -0
  17. package/dist/node_modules/lodash-es/_WeakMap.js +6 -0
  18. package/dist/node_modules/lodash-es/_arrayFilter.js +10 -0
  19. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +13 -12
  20. package/dist/node_modules/lodash-es/_arrayMap.js +8 -0
  21. package/dist/node_modules/lodash-es/_arrayPush.js +8 -0
  22. package/dist/node_modules/lodash-es/_arraySome.js +9 -0
  23. package/dist/node_modules/lodash-es/_baseEach.js +6 -0
  24. package/dist/node_modules/lodash-es/_baseFlatten.js +13 -0
  25. package/dist/node_modules/lodash-es/_baseForOwn.js +8 -0
  26. package/dist/node_modules/lodash-es/_baseGet.js +11 -0
  27. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  28. package/dist/node_modules/lodash-es/_baseHasIn.js +6 -0
  29. package/dist/node_modules/lodash-es/_baseIsEqual.js +8 -0
  30. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +32 -0
  31. package/dist/node_modules/lodash-es/_baseIsMatch.js +29 -0
  32. package/dist/node_modules/lodash-es/_baseIteratee.js +11 -0
  33. package/dist/node_modules/lodash-es/_baseKeys.js +14 -0
  34. package/dist/node_modules/lodash-es/_baseMap.js +11 -0
  35. package/dist/node_modules/lodash-es/_baseMatches.js +12 -0
  36. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  37. package/dist/node_modules/lodash-es/_baseProperty.js +8 -0
  38. package/dist/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  39. package/dist/node_modules/lodash-es/_baseRange.js +9 -0
  40. package/dist/node_modules/lodash-es/_baseToString.js +18 -0
  41. package/dist/node_modules/lodash-es/_baseTrim.js +8 -0
  42. package/dist/node_modules/lodash-es/_cacheHas.js +6 -0
  43. package/dist/node_modules/lodash-es/_castPath.js +10 -0
  44. package/dist/node_modules/lodash-es/_createBaseEach.js +15 -0
  45. package/dist/node_modules/lodash-es/_createRange.js +11 -0
  46. package/dist/node_modules/lodash-es/_equalArrays.js +40 -0
  47. package/dist/node_modules/lodash-es/_equalByTag.js +45 -0
  48. package/dist/node_modules/lodash-es/_equalObjects.js +36 -0
  49. package/dist/node_modules/lodash-es/_getAllKeys.js +9 -0
  50. package/dist/node_modules/lodash-es/_getMatchData.js +12 -0
  51. package/dist/node_modules/lodash-es/_getSymbols.js +10 -0
  52. package/dist/node_modules/lodash-es/_getTag.js +28 -0
  53. package/dist/node_modules/lodash-es/_hasPath.js +19 -0
  54. package/dist/node_modules/lodash-es/_isFlattenable.js +10 -0
  55. package/dist/node_modules/lodash-es/_isKey.js +12 -0
  56. package/dist/node_modules/lodash-es/_isStrictComparable.js +7 -0
  57. package/dist/node_modules/lodash-es/_mapToArray.js +9 -0
  58. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  59. package/dist/node_modules/lodash-es/_memoizeCapped.js +11 -0
  60. package/dist/node_modules/lodash-es/_nativeKeys.js +5 -0
  61. package/dist/node_modules/lodash-es/_setCacheAdd.js +7 -0
  62. package/dist/node_modules/lodash-es/_setCacheHas.js +6 -0
  63. package/dist/node_modules/lodash-es/_setToArray.js +9 -0
  64. package/dist/node_modules/lodash-es/_stringToPath.js +10 -0
  65. package/dist/node_modules/lodash-es/_toKey.js +10 -0
  66. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +9 -0
  67. package/dist/node_modules/lodash-es/flatMap.js +8 -0
  68. package/dist/node_modules/lodash-es/get.js +8 -0
  69. package/dist/node_modules/lodash-es/hasIn.js +8 -0
  70. package/dist/node_modules/lodash-es/isSymbol.js +9 -0
  71. package/dist/node_modules/lodash-es/keys.js +9 -0
  72. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  73. package/dist/node_modules/lodash-es/map.js +11 -0
  74. package/dist/node_modules/lodash-es/property.js +10 -0
  75. package/dist/node_modules/lodash-es/range.js +5 -0
  76. package/dist/node_modules/lodash-es/stubArray.js +6 -0
  77. package/dist/node_modules/lodash-es/toFinite.js +14 -0
  78. package/dist/node_modules/lodash-es/toNumber.js +22 -0
  79. package/dist/node_modules/lodash-es/toString.js +7 -0
  80. package/dist/src/extensions/Blocks/Items/block.d.ts +14 -0
  81. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +4 -0
  82. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +2 -0
  83. package/dist/src/extensions/Blocks/Items/template.d.ts +9 -1
  84. package/dist/src/utils/environmentUtil.d.ts +5 -0
  85. package/dist/utils/environmentUtil.js +4 -0
  86. package/package.json +2 -9
package/README.md CHANGED
@@ -787,35 +787,3 @@ ISC License
787
787
  - Playwright integrationBoilerplate/control.ts
788
788
  - Commitlint & Precommit Hooks integration
789
789
  - Get Pre-built display conditions from API
790
-
791
- Recommendation Block:
792
- - [ ] Validations for Filters
793
- - [ ] DOM Rerender after Filters change
794
- - [ ] Change currencySymbol as Input Type
795
- - [ ] Apply filter query to request
796
- - [ ] Drawer loading bug
797
- - [ ] Drawer send request when apply filters
798
- - [ ] Clear all feature for Drawer
799
- - [ ] Stripo's controls should be effect specific DOM item -- Try extending CommonControl class
800
- - [ ] Show toaster message if uses multiple recommendation blocks in same template
801
- - [ ] Change filter button text as Change Filters
802
- - [ ] Migration template for Recommendation Block
803
- - [ ] Recommendation Algorithm default value should be mostPopular
804
- - [ ] Default fields for empty template like currency, title etc.
805
- - [ ] Recommendation Block Icon Registry should be updated
806
- - [ ] AMP Block Icon should be updated
807
- - [ ] Padding feature for between Product Rows
808
-
809
- Items Block Phase 2:
810
- [ ] Writing configs to esd-config-data DOM.
811
- [ ] Build on save feature should be working
812
- [ ] Data Migration feature should be working
813
-
814
- Tech Debts:
815
- [ ] Merge Custom Blocks into a single File
816
- [ ] Move Custom Blocks names to an enum file
817
- [ ] Template Replacement should be optimized for version history
818
- [ ] Code Optimization for Items Block inner blocks reordering
819
- [ ] Image Size & Margins controls has an error on console
820
- [ ] Feed Text Trimming feature to toggle settings
821
- [ ] Formatted Price feature to toggle settings
@@ -17,7 +17,7 @@ const A = () => {
17
17
  ]
18
18
  },
19
19
  mergeTags: ["Tag1", "Tag2"],
20
- forseAmp: !1,
20
+ forceAmp: !1,
21
21
  resetDataSavedFlag: !1,
22
22
  disableLineHeightsReplace: !0
23
23
  }, ...t }, m = {
@@ -1,18 +1,19 @@
1
- import { useConfig as H } from "./useConfig.js";
2
- import { TemplateTypes as V } from "../enums/defaults.js";
3
- import { DISPLAY_CONDITIONS_REGEX as D, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as P, CampaignCouldNotBeSavedKey as R, CanNotMakeAnyChangesForRunningKey as _ } from "../enums/html-validator.js";
1
+ import { useConfig as V } from "./useConfig.js";
2
+ import { TemplateTypes as D } from "../enums/defaults.js";
3
+ import { DISPLAY_CONDITIONS_REGEX as H, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as P, CampaignCouldNotBeSavedKey as R, CanNotMakeAnyChangesForRunningKey as _ } from "../enums/html-validator.js";
4
4
  import { ToasterTypeOptions as l } from "../enums/toaster.js";
5
- import { useRecommendationStore as G } from "../stores/recommendation.js";
6
- import { base64EncodeWithSpecialChars as $ } from "../utils/base64.js";
7
- import { useHttp as j } from "./useHttp.js";
8
- import { useToaster as q } from "./useToaster.js";
9
- import { useTranslations as M } from "./useTranslations.js";
10
- const se = () => {
5
+ import { itemsBlockDynamicVariables as G } from "../extensions/Blocks/Items/enums/productEnums.js";
6
+ import { useRecommendationStore as $ } from "../stores/recommendation.js";
7
+ import { base64EncodeWithSpecialChars as j } from "../utils/base64.js";
8
+ import { useHttp as q } from "./useHttp.js";
9
+ import { useToaster as M } from "./useToaster.js";
10
+ import { useTranslations as X } from "./useTranslations.js";
11
+ const ie = () => {
11
12
  var d;
12
- const { showToaster: c } = q(), { post: y } = j(), { config: h } = H(), a = M(), m = G(), u = ((d = h.partner) == null ? void 0 : d.messageType) === V.transactional, v = async (e) => {
13
+ const { showToaster: c } = M(), { post: y } = q(), { config: h } = V(), a = X(), m = $(), u = ((d = h.partner) == null ? void 0 : d.messageType) === D.transactional, v = async (e) => {
13
14
  const t = await y(
14
15
  "/newsletter/template-library/check-template-html-body",
15
- { html: $(e) }
16
+ { html: j(e) }
16
17
  ), { status: n, message: r } = t.data;
17
18
  return n || c({
18
19
  type: l.Alert,
@@ -25,10 +26,10 @@ const se = () => {
25
26
  const t = e.match(/({%(.*?)%})/g);
26
27
  let n = !0;
27
28
  return t !== null && !u && t.forEach((r) => {
28
- const o = r.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
29
- if (o && o.length > 0) {
30
- const [i] = o;
31
- C(i) && !s.includes(i) && (c({
29
+ const i = r.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
30
+ if (i && i.length > 0) {
31
+ const [o] = i;
32
+ C(o) && !s.includes(o) && (c({
32
33
  type: l.Warning,
33
34
  message: a("custom-fields.invalid-custom-fields")
34
35
  }), n = !1);
@@ -58,19 +59,19 @@ const se = () => {
58
59
  }, k = (e, s) => {
59
60
  const t = e.match(/{{([a-zA-Z0-9_\s]*)}}/gm);
60
61
  if (t && !u) {
61
- const n = new Set(s.map((o) => o.toLowerCase())), r = [];
62
- if (t.forEach((o) => {
63
- const i = o.slice(2, -2).trim().toLowerCase();
64
- (!n.has(i) || i === "") && r.push(i);
62
+ const n = new Set(s.map((i) => i.toLowerCase())), r = [];
63
+ if (t.forEach((i) => {
64
+ const o = i.slice(2, -2).trim().toLowerCase();
65
+ (!n.has(o) || o === "") && r.push(o);
65
66
  }), r.length > 0) {
66
- const o = `
67
+ const i = `
67
68
  <ul>
68
- ${r.map((i) => `<li>${i}</li>`).join("")}
69
+ ${r.map((o) => `<li>${o}</li>`).join("")}
69
70
  </ul>
70
71
  `;
71
72
  return c({
72
73
  type: l.Alert,
73
- message: a("custom-fields.invalid-custom-fields") + o
74
+ message: a("custom-fields.invalid-custom-fields") + i
74
75
  }), !1;
75
76
  }
76
77
  }
@@ -79,11 +80,11 @@ const se = () => {
79
80
  const s = e.match(/{%(.*?)%}/g), t = [];
80
81
  let n = !0;
81
82
  if (s && s.forEach((r) => {
82
- const o = r.match(D), i = r.match(P), B = (o == null ? void 0 : o.join("")) || "";
83
- (!o || r !== B) && !i && (c({
83
+ const i = r.match(H), o = r.match(P), B = (i == null ? void 0 : i.join("")) || "";
84
+ (!i || r !== B) && !o && (c({
84
85
  type: l.Alert,
85
86
  message: a("newsletter.display-conditions-invalid-syntax")
86
- }), n = !1), o && o.forEach((f) => {
87
+ }), n = !1), i && i.forEach((f) => {
87
88
  f.trim() === "=" && (c({
88
89
  type: l.Alert,
89
90
  message: a("custom-conditions.wrong-equality-operators")
@@ -94,8 +95,8 @@ const se = () => {
94
95
  });
95
96
  });
96
97
  }), t.length) {
97
- const r = t.filter((i) => i === "if"), o = t.filter((i) => i === "endif");
98
- r.length !== o.length && (c({
98
+ const r = t.filter((o) => o === "if"), i = t.filter((o) => o === "endif");
99
+ r.length !== i.length && (c({
99
100
  type: l.Alert,
100
101
  message: a("custom-conditions.missing-if-endif-tag")
101
102
  }), n = !1);
@@ -121,28 +122,28 @@ const se = () => {
121
122
  }), !1);
122
123
  }, N = (e) => {
123
124
  const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".checkbox-block-v2");
124
- return Array.from(n).find((o) => {
125
- var i;
126
- return !((i = o.id) != null && i.trim());
125
+ return Array.from(n).find((i) => {
126
+ var o;
127
+ return !((o = i.id) != null && o.trim());
127
128
  }) ? (c({
128
129
  type: l.Alert,
129
130
  message: a("unsubscribe-templates.select-checkbox-groups")
130
131
  }), !1) : !0;
131
132
  }, O = (e) => {
132
133
  const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".radio-button-v2");
133
- return Array.from(n).find((o) => {
134
- var i;
135
- return !((i = o.id) != null && i.trim());
134
+ return Array.from(n).find((i) => {
135
+ var o;
136
+ return !((o = i.id) != null && o.trim());
136
137
  }) ? (c({
137
138
  type: l.Alert,
138
139
  message: a("unsubscribe-templates.select-radio-button-groups")
139
140
  }), !1) : !0;
140
141
  };
141
142
  return { validateHtml: async (e, s, t = !1) => {
142
- const n = s.map((o) => o.value);
143
+ const n = [...s.map((i) => i.value), ...G];
143
144
  return await b(e, n, t) && E(e) && A(e) && x(e) && k(e, n) && T(e) && F(e) && I(e) && W() && L(e) && N(e) && O(e);
144
145
  } };
145
146
  };
146
147
  export {
147
- se as useHtmlValidator
148
+ ie as useHtmlValidator
148
149
  };
@@ -1,25 +1,26 @@
1
- import { useTranslations as e } from "../composables/useTranslations.js";
2
- const s = e(), R = {
1
+ import { useTranslations as n } from "../composables/useTranslations.js";
2
+ import { getEnvironmentPrefix as R } from "../utils/environmentUtil.js";
3
+ const e = n(), I = {
3
4
  UNSUBSCRIBE_LINK_TYPE: 1,
4
5
  PREFERENCES_LINK_TYPE: 3
5
- }, S = {
6
+ }, r = {
6
7
  UNSUBSCRIBE_LINK_REGEX: /{{ins-unsubscribe-link}}/g,
7
8
  DATA_OGSB_BUTTON_CSS_REGEX: "\\[data-ogsb\\]\\s*\\.es-button\\.es-button-[0-9]+\\s*\\{(?:[^\\}]*)\\}",
8
9
  GLOBAL_UNSUBSCRIBE_LINK_REGEX: /{{ins-global-unsubscribe-link}}/g,
9
10
  PREFERENCES_UNSUBSCRIBE_LINK_REGEX: /{{ins-preferences-unsubscribe-link}}/g
10
- }, N = {
11
- UNSUBSCRIBE_URL: "https://mail.useinsider.com/user/v1/unsub",
12
- PREFERENCES_URL: "https://mail.useinsider.com/user/v1/prefs"
13
- }, I = "iid", _ = {
11
+ }, s = R(), _ = {
12
+ UNSUBSCRIBE_URL: `https://mail.${s}.com/user/v1/unsub`,
13
+ PREFERENCES_URL: `https://mail.${s}.com/user/v1/prefs`
14
+ }, i = "iid", B = {
14
15
  name: "Global Unsubscribe",
15
16
  sendGridId: "G"
16
- }, i = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", r = "/email/unsubscribe-pages", E = {
17
+ }, C = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", c = "/email/unsubscribe-pages", E = {
17
18
  GLOBAL_UNSUBSCRIBE: 1,
18
19
  GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: 2,
19
20
  SUBSCRIPTION_PREFERENCE_CENTER: 3,
20
21
  SUBSCRIPTION_PREFERENCE_CONFIRMATION: 4,
21
22
  RESUBSCRIBE: 5
22
- }, B = {
23
+ }, t = {
23
24
  [E.GLOBAL_UNSUBSCRIBE]: [
24
25
  E.GLOBAL_UNSUBSCRIBE,
25
26
  E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE,
@@ -29,27 +30,27 @@ const s = e(), R = {
29
30
  E.SUBSCRIPTION_PREFERENCE_CENTER,
30
31
  E.SUBSCRIPTION_PREFERENCE_CONFIRMATION
31
32
  ]
32
- }, C = {
33
- [E.GLOBAL_UNSUBSCRIBE]: s("unsubscription-preference.type-global-unsubscribe"),
34
- [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: s("unsubscription-preference.type-global-unsubscription-confirmation"),
35
- [E.RESUBSCRIBE]: s("unsubscription-preference.type-resubscribe"),
36
- [E.SUBSCRIPTION_PREFERENCE_CENTER]: s("unsubscription-preference.type-subscription-preferences-center"),
37
- [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: s("unsubscription-preference.type-subscription-preferences-confirmation")
38
- }, c = {
33
+ }, U = {
34
+ [E.GLOBAL_UNSUBSCRIBE]: e("unsubscription-preference.type-global-unsubscribe"),
35
+ [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: e("unsubscription-preference.type-global-unsubscription-confirmation"),
36
+ [E.RESUBSCRIBE]: e("unsubscription-preference.type-resubscribe"),
37
+ [E.SUBSCRIPTION_PREFERENCE_CENTER]: e("unsubscription-preference.type-subscription-preferences-center"),
38
+ [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: e("unsubscription-preference.type-subscription-preferences-confirmation")
39
+ }, o = {
39
40
  default: "{{ins-unsubscribe-link}}",
40
41
  [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
41
42
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
42
43
  };
43
44
  export {
44
- i as ACADEMY_LINK,
45
- _ as DEFAULT_UNSUBSCRIBE_GROUP,
46
- I as INSIDER_ID,
47
- S as LINK_REGEXES,
48
- R as LINK_TYPES,
49
- c as MERGE_TAGS,
45
+ C as ACADEMY_LINK,
46
+ B as DEFAULT_UNSUBSCRIBE_GROUP,
47
+ i as INSIDER_ID,
48
+ r as LINK_REGEXES,
49
+ I as LINK_TYPES,
50
+ o as MERGE_TAGS,
50
51
  E as PAGE_TYPES,
51
- B as TYPE_COLLECTIONS,
52
- C as TYPE_TRANSLATIONS,
53
- r as UNSUBSCRIBE_PAGES_LINK,
54
- N as URLS
52
+ t as TYPE_COLLECTIONS,
53
+ U as TYPE_TRANSLATIONS,
54
+ c as UNSUBSCRIBE_PAGES_LINK,
55
+ _ as URLS
55
56
  };
@@ -1,19 +1,20 @@
1
- import { useOnboardingStore as L } from "../../../stores/onboarding.js";
2
- import { Block as S, BlockCompositionType as y, ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
1
+ import { useOnboardingStore as y } from "../../../stores/onboarding.js";
2
+ import { Block as R, BlockCompositionType as L, ModificationDescription as a } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
3
  import { configAttributes as t } from "./enums/productEnums.js";
4
4
  import { DefaultConfigValues as e, SETTINGS_ENUMS as l } from "./enums/settingsEnums.js";
5
- import { useItemsBlockStore as I } from "./store/items-block.js";
5
+ import { useItemsBlockStore as S } from "./store/items-block.js";
6
6
  import { getDefaultTemplate as V } from "./template.js";
7
- const B = "items-block";
8
- class z extends S {
7
+ import { syncCurrencySymbolFromAttributes as B, syncCurrencyLocationFromAttributes as U, syncFormattedPriceFromAttributes as k } from "./utils/syncAttributesFromConfigBlock.js";
8
+ const M = "items-block";
9
+ class x extends R {
9
10
  getId() {
10
- return B;
11
+ return M;
11
12
  }
12
13
  getIcon() {
13
14
  return "items-icon";
14
15
  }
15
16
  getBlockCompositionType() {
16
- return y.CONTAINER;
17
+ return L.CONTAINER;
17
18
  }
18
19
  getName() {
19
20
  return this.api.translate("Items");
@@ -22,46 +23,45 @@ class z extends S {
22
23
  return this.api.translate("Items lets you display personalized products based on user behavior.");
23
24
  }
24
25
  getTemplate() {
25
- const i = I();
26
26
  return V({
27
27
  orientation: l.ORIENTATION.HORIZONTAL,
28
28
  itemsType: l.ITEMS_TYPE.CART_ITEMS,
29
29
  itemId: "{{Abandoned Cart Item (1) Url}}",
30
- currencySymbol: i.currencySymbol,
31
- currencyLocation: i.currencyLocation,
32
- formattedPrice: i.formattedPrice
30
+ currencySymbol: e.productPriceCurrencySymbolControlValue,
31
+ currencyLocation: e.productPriceCurrencyLocationControlValue,
32
+ formattedPrice: e.productPriceFormattedControlValue === "1"
33
33
  });
34
34
  }
35
35
  allowInnerBlocksDND() {
36
36
  return !1;
37
37
  }
38
- onCreated(i) {
39
- const n = i.querySelector("esd-config-block");
38
+ onCreated(r) {
39
+ const n = r.querySelector("esd-config-block");
40
40
  if (!n)
41
41
  return;
42
- const o = n, s = o.getAttribute("data-initialized") || "0", a = o.getAttribute(t.BLOCK_INSTANCE_ID), c = () => String(Date.now() + Math.floor(Math.random() * 1e3));
42
+ const o = n, s = o.getAttribute("data-initialized") || "0", u = o.getAttribute(t.BLOCK_INSTANCE_ID), c = () => String(Date.now() + Math.floor(Math.random() * 1e3));
43
43
  if (Number(s)) {
44
- if (!a) {
45
- const r = c();
46
- this.api.getDocumentModifier().modifyHtml(o).setAttribute(t.BLOCK_INSTANCE_ID, r).apply(new u("Assign block instance ID to legacy block"));
44
+ if (!u) {
45
+ const i = c();
46
+ this.api.getDocumentModifier().modifyHtml(o).setAttribute(t.BLOCK_INSTANCE_ID, i).apply(new a("Assign block instance ID to legacy block"));
47
47
  }
48
48
  } else {
49
- const r = e.itemsType, d = e.cartItemsSelectControlValue, m = e.cardOrientationControlValue, T = e.productNameTrimmingControlValue, C = e.productPriceHideDiscountControlValue, b = e.productPriceFormattedControlValue, E = e.productPriceCurrencySymbolControlValue, O = e.productPriceCurrencyLocationControlValue, A = e.productButtonLinkControlValue, _ = e.productImageLinkControlValue, N = e.productImageVisible, p = e.productNameVisible, f = e.productQuantityVisible, g = e.productPriceVisible, D = e.productOriginalPriceVisible, R = e.productButtonVisible, P = c();
50
- this.api.getDocumentModifier().modifyHtml(o).setAttribute("data-source", r).setAttribute(t.TYPE, r).setAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE, d).setAttribute(t.ORIENTATION, m).setAttribute(t.PRODUCT_NAME_TRIMMING, T).setAttribute(t.PRODUCT_PRICE_HIDE_DISCOUNT, C).setAttribute(t.PRODUCT_PRICE_FORMATTED, b).setAttribute(t.PRODUCT_PRICE_CURRENCY_SYMBOL, E).setAttribute(t.PRODUCT_PRICE_CURRENCY_LOCATION, O).setAttribute(t.PRODUCT_BUTTON_LINK, A).setAttribute(t.PRODUCT_IMAGE_LINK, _).setAttribute(t.BLOCK_INSTANCE_ID, P).setAttribute("data-initialized", "1").setAttribute(t.NAME_CONTROL_ENABLED, e.productNameControlEnabled).setAttribute(
49
+ const i = e.itemsType, I = e.cartItemsSelectControlValue, d = e.cardOrientationControlValue, m = e.productNameTrimmingControlValue, C = e.productPriceHideDiscountControlValue, b = e.productPriceFormattedControlValue, T = e.productPriceCurrencySymbolControlValue, A = e.productPriceCurrencyLocationControlValue, E = e.productButtonLinkControlValue, O = e.productImageLinkControlValue, _ = e.productImageVisible, p = e.productNameVisible, N = e.productQuantityVisible, f = e.productPriceVisible, g = e.productOriginalPriceVisible, D = e.productButtonVisible, P = c();
50
+ this.api.getDocumentModifier().modifyHtml(o).setAttribute("data-source", i).setAttribute(t.TYPE, i).setAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE, I).setAttribute(t.ORIENTATION, d).setAttribute(t.PRODUCT_NAME_TRIMMING, m).setAttribute(t.PRODUCT_PRICE_HIDE_DISCOUNT, C).setAttribute(t.PRODUCT_PRICE_FORMATTED, b).setAttribute(t.PRODUCT_PRICE_CURRENCY_SYMBOL, T).setAttribute(t.PRODUCT_PRICE_CURRENCY_LOCATION, A).setAttribute(t.PRODUCT_BUTTON_LINK, E).setAttribute(t.PRODUCT_IMAGE_LINK, O).setAttribute(t.BLOCK_INSTANCE_ID, P).setAttribute("data-initialized", "1").setAttribute(t.NAME_CONTROL_ENABLED, e.productNameControlEnabled).setAttribute(
51
51
  t.QUANTITY_CONTROL_ENABLED,
52
52
  e.productQuantityControlEnabled
53
- ).setAttribute(t.PRICE_CONTROL_OPENED, e.productPriceControlOpened).setAttribute(t.PRODUCT_IMAGE_VISIBLE, N).setAttribute(t.PRODUCT_NAME_VISIBLE, p).setAttribute(t.PRODUCT_QUANTITY_VISIBLE, f).setAttribute(t.PRODUCT_PRICE_VISIBLE, g).setAttribute(t.PRODUCT_ORIGINAL_PRICE_VISIBLE, D).setAttribute(t.PRODUCT_BUTTON_VISIBLE, R).apply(new u("Initialize config block attributes with defaults")), L().startOnboarding("itemsOnboarding");
53
+ ).setAttribute(t.PRICE_CONTROL_OPENED, e.productPriceControlOpened).setAttribute(t.PRODUCT_IMAGE_VISIBLE, _).setAttribute(t.PRODUCT_NAME_VISIBLE, p).setAttribute(t.PRODUCT_QUANTITY_VISIBLE, N).setAttribute(t.PRODUCT_PRICE_VISIBLE, f).setAttribute(t.PRODUCT_ORIGINAL_PRICE_VISIBLE, g).setAttribute(t.PRODUCT_BUTTON_VISIBLE, D).apply(new a("Initialize config block attributes with defaults")), y().startOnboarding("itemsOnboarding");
54
54
  }
55
55
  }
56
- onSelect(i) {
57
- const n = i.querySelector("esd-config-block"), o = I();
56
+ onSelect(r) {
57
+ const n = r.querySelector("esd-config-block"), o = S();
58
58
  if (!n)
59
59
  return;
60
- const s = n, a = s.getAttribute(t.TYPE) || e.itemsType, c = s.getAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE) || e.cartItemsSelectControlValue, r = s.getAttribute(t.ORIENTATION) || e.cardOrientationControlValue;
61
- o.setItemsType(a), o.setItemIds(c), o.setOrientation(r);
60
+ const s = n, u = s.getAttribute(t.TYPE) || e.itemsType, c = s.getAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE) || e.cartItemsSelectControlValue, i = s.getAttribute(t.ORIENTATION) || e.cardOrientationControlValue;
61
+ o.setItemsType(u), o.setItemIds(c), o.setOrientation(i), B(r), U(r), k(r);
62
62
  }
63
63
  }
64
64
  export {
65
- B as BLOCK_ID,
66
- z as ItemsBlock
65
+ M as BLOCK_ID,
66
+ x as ItemsBlock
67
67
  };
@@ -48,7 +48,7 @@ class R extends c {
48
48
  if (!o)
49
49
  return;
50
50
  const p = e !== void 0 ? e : this.store.nameTrimming, T = this.store.orientation === I.ORIENTATION.VERTICAL;
51
- p ? this.api.getDocumentModifier().modifyHtml(o).setStyle("white-space", "nowrap").setStyle("overflow", "hidden").setStyle("text-overflow", "ellipsis").setStyle("max-width", T ? "130px" : "100%").apply(new n("Text Trimming Enabled")) : this.api.getDocumentModifier().modifyHtml(o).removeStyle("white-space").removeStyle("overflow").removeStyle("text-overflow").removeStyle("max-width").apply(new n("Text Trimming Disabled"));
51
+ p ? this.api.getDocumentModifier().modifyHtml(o).setStyle("white-space", "nowrap").setStyle("overflow", "hidden").setStyle("text-overflow", "ellipsis").setStyle("max-width", T ? "130px" : "600px").apply(new n("Text Trimming Enabled")) : this.api.getDocumentModifier().modifyHtml(o).removeStyle("white-space").removeStyle("overflow").removeStyle("text-overflow").removeStyle("max-width").apply(new n("Text Trimming Disabled"));
52
52
  }
53
53
  _getTextTrimming() {
54
54
  return `
@@ -1,28 +1,29 @@
1
- var A = Object.defineProperty;
2
- var M = (T, u, e) => u in T ? A(T, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[u] = e;
3
- var b = (T, u, e) => M(T, typeof u != "symbol" ? u + "" : u, e);
1
+ var M = Object.defineProperty;
2
+ var P = (T, u, e) => u in T ? M(T, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[u] = e;
3
+ var b = (T, u, e) => P(T, typeof u != "symbol" ? u + "" : u, e);
4
4
  import { UEAttr as C, ModificationDescription as d } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as P } from "../../common-control.js";
5
+ import { CommonControl as D } from "../../common-control.js";
6
6
  import { ItemsBlockId as m } from "../enums/controlEnums.js";
7
- import { productPairs as p } from "../enums/productEnums.js";
8
- import { ItemTypeOptions as R, OrientationOptions as D, ItemInCartOptions as y, SETTINGS_ENUMS as S } from "../enums/settingsEnums.js";
9
- import x from "../layouts/horizontal.html.js";
10
- import L from "../layouts/vertical.html.js";
11
- import { useItemsBlockStore as H } from "../store/items-block.js";
12
- import { getDefaultTemplate as U } from "../template.js";
7
+ import { productPairs as p, templateFirstLine as A } from "../enums/productEnums.js";
8
+ import { ItemTypeOptions as R, OrientationOptions as x, ItemInCartOptions as g, SETTINGS_ENUMS as S } from "../enums/settingsEnums.js";
9
+ import L from "../layouts/horizontal.html.js";
10
+ import H from "../layouts/vertical.html.js";
11
+ import { useItemsBlockStore as U } from "../store/items-block.js";
12
+ import { getDefaultTemplate as F } from "../template.js";
13
+ import { syncCurrencySymbolFromAttributes as $, syncCurrencyLocationFromAttributes as k, syncFormattedPriceFromAttributes as q } from "../utils/syncAttributesFromConfigBlock.js";
13
14
  import { updateConfigBlockAttributes as f } from "../utils/updateAttributes.js";
14
- const $ = "ui-elements-items-block", s = {
15
+ const w = "ui-elements-items-block", s = {
15
16
  ITEMS_TYPE: "itemsType",
16
17
  ORIENTATION: "orientation",
17
18
  ITEM_IDS: "itemIds"
18
19
  };
19
- class W extends P {
20
+ class Z extends D {
20
21
  constructor() {
21
22
  super(...arguments);
22
- b(this, "store", H());
23
+ b(this, "store", U());
23
24
  }
24
25
  getId() {
25
- return $;
26
+ return w;
26
27
  }
27
28
  getTemplate() {
28
29
  return `
@@ -41,11 +42,18 @@ class W extends P {
41
42
  }), this._listenToFormUpdates();
42
43
  }
43
44
  onTemplateNodeUpdated(e) {
44
- this.currentNode = e, this.api.updateValues({
45
- [s.ORIENTATION]: this.store.orientation,
46
- [s.ITEMS_TYPE]: this.store.itemsType,
47
- [s.ITEM_IDS]: this.store.itemIds
48
- }), this._initializeSelectItems();
45
+ super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(
46
+ () => {
47
+ $(this.currentNode), k(this.currentNode), q(this.currentNode);
48
+ },
49
+ () => {
50
+ this.api.updateValues({
51
+ [s.ORIENTATION]: this.store.orientation,
52
+ [s.ITEMS_TYPE]: this.store.itemsType,
53
+ [s.ITEM_IDS]: this.store.itemIds
54
+ }), this._initializeSelectItems();
55
+ }
56
+ );
49
57
  }
50
58
  onDestroy() {
51
59
  const e = this._getTemplateData();
@@ -70,7 +78,7 @@ class W extends P {
70
78
  this._GuLabel({ text: "Orientation" }),
71
79
  this._GuRadioButton({
72
80
  name: s.ORIENTATION,
73
- buttons: D
81
+ buttons: x
74
82
  })
75
83
  ])}
76
84
  `;
@@ -92,7 +100,7 @@ class W extends P {
92
100
  console.debug("Orientation changed to: ", e), this.store.setOrientation(e), this.api.updateValues({ [s.ORIENTATION]: e }), f(this.currentNode, this.api), this._reOrderTemplate(), this._recalculateTrimming();
93
101
  }
94
102
  _onItemsTypeChange(e, i) {
95
- const { itemIds: t } = this.store, r = S.ITEMS_TYPE[e], n = y[i].findIndex((a) => a.value === t), o = y[e][n];
103
+ const { itemIds: t } = this.store, r = S.ITEMS_TYPE[e], n = g[i].findIndex((a) => a.value === t), o = g[e][n];
96
104
  r && (this.store.setItemsType(r), this.store.setItemIds(o.value), f(this.currentNode, this.api), this._updateDataTypeAttributes(r), this._initializeSelectItems(), this._reFillTemplate());
97
105
  }
98
106
  _onItemIdsChange(e) {
@@ -108,7 +116,7 @@ class W extends P {
108
116
  this.api.updateValues({
109
117
  [s.ITEMS_TYPE]: e
110
118
  });
111
- const t = y[e];
119
+ const t = g[e];
112
120
  this.api.setUIEAttribute(
113
121
  s.ITEM_IDS,
114
122
  C.SELECTPICKER.items,
@@ -138,7 +146,7 @@ class W extends P {
138
146
  currencyLocation: n,
139
147
  formattedPrice: o
140
148
  } = this.store;
141
- this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(U({
149
+ this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(F({
142
150
  orientation: e,
143
151
  itemsType: i,
144
152
  itemId: t,
@@ -148,7 +156,7 @@ class W extends P {
148
156
  })).apply(new d("Updated template"));
149
157
  }
150
158
  _getTemplateData() {
151
- const { itemsType: e, itemIds: i, formattedPrice: t } = this.store, r = y[e].findIndex((o) => o.value === i), n = r > -1 ? r : 0;
159
+ const { itemsType: e, itemIds: i, formattedPrice: t } = this.store, r = g[e].findIndex((o) => o.value === i), n = r > -1 ? r : 0;
152
160
  return {
153
161
  imageSrc: p.PAIRS_FOR_EXTENSION.imageSrc[e].DEFAULT[n],
154
162
  name: p.PAIRS_FOR_EXTENSION.name[e].DEFAULT[n],
@@ -173,8 +181,8 @@ class W extends P {
173
181
  r = r.replace(t, e), this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(r).apply(new d("Updated name"));
174
182
  }
175
183
  _updatePrice(e) {
176
- var g;
177
- const i = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${m.PRICE}"]`);
184
+ var E;
185
+ const i = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${m.PRICE}"]`);
178
186
  if (!i)
179
187
  return;
180
188
  const t = this._getParagraphFromBlock(i);
@@ -184,8 +192,8 @@ class W extends P {
184
192
  this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(_).apply(new d("Updated price"));
185
193
  }
186
194
  _updateOriginalPrice(e) {
187
- var E;
188
- const i = (E = this.currentNode) == null ? void 0 : E.querySelector(
195
+ var y;
196
+ const i = (y = this.currentNode) == null ? void 0 : y.querySelector(
189
197
  `[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
190
198
  );
191
199
  if (!i)
@@ -217,16 +225,20 @@ class W extends P {
217
225
  let r = i.getInnerHTML();
218
226
  r = r.replace(t, e), this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(r).apply(new d("Updated button"));
219
227
  }
228
+ /**
229
+ * @todo Optimize template reordering for performance.
230
+ * @description Reorders the template structure based on current orientation and visibility settings.
231
+ */
220
232
  _reOrderTemplate() {
221
- var I, h, _, g, N, E, O;
222
- const e = (I = this.currentNode) == null ? void 0 : I.querySelector(`[esd-extension-block-id="${m.IMAGE}"]`), i = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${m.NAME}"]`), t = (_ = this.currentNode) == null ? void 0 : _.querySelector(`[esd-extension-block-id="${m.PRICE}"]`), r = (g = this.currentNode) == null ? void 0 : g.querySelector(
233
+ var I, h, _, E, N, y, O;
234
+ const e = (I = this.currentNode) == null ? void 0 : I.querySelector(`[esd-extension-block-id="${m.IMAGE}"]`), i = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${m.NAME}"]`), t = (_ = this.currentNode) == null ? void 0 : _.querySelector(`[esd-extension-block-id="${m.PRICE}"]`), r = (E = this.currentNode) == null ? void 0 : E.querySelector(
223
235
  `[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
224
- ), n = (N = this.currentNode) == null ? void 0 : N.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`), o = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`), a = (O = this.currentNode) == null ? void 0 : O.querySelector("esd-config-block");
236
+ ), n = (N = this.currentNode) == null ? void 0 : N.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`), o = (y = this.currentNode) == null ? void 0 : y.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`), a = (O = this.currentNode) == null ? void 0 : O.querySelector("esd-config-block");
225
237
  if (!e || !i || !t || !r || !n || !o || !a)
226
238
  return;
227
239
  const { orientation: l } = this.store;
228
- let c = l === S.ORIENTATION.VERTICAL ? L : x;
229
- c = c.replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", i.getOuterHTML()).replace("{-{-PRODUCT_PRICE-}-}", t.getOuterHTML()).replace("{-{-PRODUCT_ORIGINAL_PRICE-}-}", r.getOuterHTML()).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", o.getOuterHTML()).replace("{-{-CONFIG_BLOCK-}-}", a.getOuterHTML()), c = c.trim().replace('<td align="center" class="ins-product-td items-block">', "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(c).apply(new d("Reordered template"));
240
+ let c = l === S.ORIENTATION.VERTICAL ? H : L;
241
+ c = c.replace("{-{-TEMPLATE_FIRST_LINE-}-}", A).replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", i.getOuterHTML()).replace("{-{-PRODUCT_PRICE-}-}", t.getOuterHTML()).replace("{-{-PRODUCT_ORIGINAL_PRICE-}-}", r.getOuterHTML()).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", o.getOuterHTML()).replace("{-{-CONFIG_BLOCK-}-}", a.getOuterHTML()), c = c.trim().replace(A, "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(c).apply(new d("Reordered template"));
230
242
  }
231
243
  _updateDataTypeAttributes(e) {
232
244
  if (!this.currentNode)
@@ -240,7 +252,7 @@ class W extends P {
240
252
  _updateDataNumberAttributes(e) {
241
253
  if (!this.currentNode)
242
254
  return;
243
- const { itemsType: i } = this.store, t = y[i].findIndex((l) => l.value === e);
255
+ const { itemsType: i } = this.store, t = g[i].findIndex((l) => l.value === e);
244
256
  let r = "1";
245
257
  if (t >= 0)
246
258
  r = String(t + 1);
@@ -304,6 +316,6 @@ class W extends P {
304
316
  }
305
317
  }
306
318
  export {
307
- $ as CONTROL_BLOCK_ID,
308
- W as ItemsBlockControl
319
+ w as CONTROL_BLOCK_ID,
320
+ Z as ItemsBlockControl
309
321
  };
@@ -1,4 +1,6 @@
1
- const e = {
1
+ import _ from "../../../../node_modules/lodash-es/flatMap.js";
2
+ import i from "../../../../node_modules/lodash-es/range.js";
3
+ const o = '<td align="center" class="ins-product-td items-block items-block-v2">', R = {
2
4
  TYPE: "data-type",
3
5
  ITEMS_INDEX_SELECT_CONTROL_VALUE: "data-cart_items_select_control_value",
4
6
  ORIENTATION: "data-card_orientation_control_value",
@@ -22,7 +24,7 @@ const e = {
22
24
  PRODUCT_PRICE_VISIBLE: "data-product_price_visible",
23
25
  PRODUCT_ORIGINAL_PRICE_VISIBLE: "data-product_original_price_visible",
24
26
  PRODUCT_BUTTON_VISIBLE: "data-product_button_visible"
25
- }, s = { PAIRS_FOR_EXTENSION: {
27
+ }, t = { PAIRS_FOR_EXTENSION: {
26
28
  imageSrc: {
27
29
  CART_ITEMS: {
28
30
  ATTR: "ins_apr_img",
@@ -209,7 +211,63 @@ const e = {
209
211
  }
210
212
  }
211
213
  } };
214
+ function m(e, a = 8) {
215
+ return i(1, a + 1).map((s) => `${e}_${s}`);
216
+ }
217
+ function E() {
218
+ const { PAIRS_FOR_EXTENSION: e } = t, a = [];
219
+ return a.push(
220
+ e.imageSrc.CART_ITEMS.ATTR,
221
+ e.imageSrc.BROWSED_ITEMS.ATTR,
222
+ e.imageSrc.PURCHASED_ITEMS.ATTR
223
+ ), a.push(
224
+ e.name.CART_ITEMS.ATTR,
225
+ e.name.CART_ITEMS.HREF,
226
+ e.name.BROWSED_ITEMS.ATTR,
227
+ e.name.BROWSED_ITEMS.HREF,
228
+ e.name.PURCHASED_ITEMS.ATTR,
229
+ e.name.PURCHASED_ITEMS.HREF
230
+ ), a.push(
231
+ e.quantity.CART_ITEMS.ATTR,
232
+ e.quantity.BROWSED_ITEMS.ATTR,
233
+ e.quantity.PURCHASED_ITEMS.ATTR
234
+ ), a.push(
235
+ e.price.CART_ITEMS.PRICE,
236
+ e.price.CART_ITEMS.PRICE_FORMATTED,
237
+ e.price.CART_ITEMS.CURRENCY,
238
+ e.price.BROWSED_ITEMS.PRICE,
239
+ e.price.BROWSED_ITEMS.PRICE_FORMATTED,
240
+ e.price.BROWSED_ITEMS.CURRENCY,
241
+ e.price.PURCHASED_ITEMS.PRICE,
242
+ e.price.PURCHASED_ITEMS.PRICE_FORMATTED,
243
+ e.price.PURCHASED_ITEMS.CURRENCY
244
+ ), a.push(
245
+ e.originalPrice.CART_ITEMS.PRICE,
246
+ e.originalPrice.CART_ITEMS.PRICE_FORMATTED,
247
+ e.originalPrice.CART_ITEMS.CURRENCY,
248
+ e.originalPrice.BROWSED_ITEMS.PRICE,
249
+ e.originalPrice.BROWSED_ITEMS.PRICE_FORMATTED,
250
+ e.originalPrice.BROWSED_ITEMS.CURRENCY,
251
+ e.originalPrice.PURCHASED_ITEMS.PRICE,
252
+ e.originalPrice.PURCHASED_ITEMS.PRICE_FORMATTED,
253
+ e.originalPrice.PURCHASED_ITEMS.CURRENCY
254
+ ), a.push(
255
+ e.button.CART_ITEMS.HREF,
256
+ e.button.BROWSED_ITEMS.HREF,
257
+ e.button.PURCHASED_ITEMS.HREF
258
+ ), a.push(
259
+ e.itemLink.CART_ITEMS.HREF,
260
+ e.itemLink.BROWSED_ITEMS.HREF,
261
+ e.itemLink.PURCHASED_ITEMS.HREF
262
+ ), a;
263
+ }
264
+ const p = _(
265
+ E(),
266
+ (e) => m(e)
267
+ );
212
268
  export {
213
- e as configAttributes,
214
- s as productPairs
269
+ R as configAttributes,
270
+ p as itemsBlockDynamicVariables,
271
+ t as productPairs,
272
+ o as templateFirstLine
215
273
  };