@useinsider/guido 2.1.0-beta.01eaf27 → 2.1.0-beta.07fb1d6

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 (152) hide show
  1. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  2. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  3. package/dist/composables/useActionsApi.js +15 -13
  4. package/dist/composables/useHtmlValidator.js +95 -87
  5. package/dist/composables/useRecommendation.js +54 -21
  6. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  7. package/dist/config/compiler/utils/recommendationCompilerUtils.js +116 -0
  8. package/dist/config/migrator/recommendationMigrator.js +2 -2
  9. package/dist/enums/extensions/recommendationBlock.js +1 -1
  10. package/dist/enums/recommendation.js +16 -15
  11. package/dist/extensions/Blocks/Items/block.js +27 -25
  12. package/dist/extensions/Blocks/Items/controls/cardComposition.js +117 -94
  13. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +29 -29
  14. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +29 -29
  15. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +31 -29
  16. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -1
  17. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +29 -27
  18. package/dist/extensions/Blocks/Items/controls/settingsControl.js +164 -158
  19. package/dist/extensions/Blocks/Items/extension.js +8 -9
  20. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  21. package/dist/extensions/Blocks/Items/template.js +5 -4
  22. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +16 -16
  23. package/dist/extensions/Blocks/Recommendation/block.js +132 -9
  24. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  25. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  26. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +65 -0
  27. package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
  28. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +217 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +110 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +286 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextAfterControl.js → omnibusDiscount/textAfter.js} +16 -14
  47. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextBeforeControl.js → omnibusDiscount/textBefore.js} +16 -14
  48. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextAfterControl.js → omnibusPrice/textAfter.js} +16 -14
  50. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextBeforeControl.js → omnibusPrice/textBefore.js} +14 -12
  51. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  53. package/dist/extensions/Blocks/Recommendation/extension.js +40 -17
  54. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  55. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  56. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  57. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +21 -10
  58. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +256 -207
  59. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +233 -0
  60. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  61. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +69 -0
  62. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  63. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +174 -0
  64. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  65. package/dist/extensions/Blocks/Recommendation/templates/utils.js +118 -0
  66. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  67. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  68. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +26 -15
  69. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  70. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  71. package/dist/extensions/Blocks/controlFactories.js +125 -93
  72. package/dist/guido.css +1 -1
  73. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +223 -169
  74. package/dist/package.json.js +1 -1
  75. package/dist/services/recommendationApi.js +11 -8
  76. package/dist/services/templateLibraryApi.js +16 -13
  77. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  78. package/dist/src/composables/useRecommendation.d.ts +1 -0
  79. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  80. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -4
  81. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +9 -9
  82. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  83. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  84. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  85. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +0 -24
  86. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  87. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  88. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
  89. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -0
  90. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  91. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  92. package/dist/src/extensions/Blocks/Recommendation/{cardCompositionControl.d.ts → controls/cardComposition/index.d.ts} +23 -3
  93. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  94. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +21 -589
  95. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  96. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  97. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  98. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  99. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +67 -0
  100. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  101. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
  102. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  103. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +214 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  115. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  116. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  117. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  118. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  119. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  120. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  121. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  122. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  123. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  124. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  125. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  126. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +57 -0
  127. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  128. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +160 -0
  129. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  130. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  131. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  132. package/dist/static/styles/components/notification.css.js +1 -0
  133. package/dist/static/styles/components/version-history.css.js +10 -2
  134. package/dist/static/styles/components/wide-panel.css.js +18 -2
  135. package/dist/static/styles/customEditorStyle.css.js +25 -2
  136. package/dist/utils/pairProductVariables.js +57 -56
  137. package/dist/utils/templatePreparation.js +15 -14
  138. package/package.json +2 -2
  139. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -187
  140. package/dist/extensions/Blocks/Recommendation/constants.js +0 -13
  141. package/dist/extensions/Blocks/Recommendation/control.js +0 -336
  142. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
  143. package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -245
  144. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
  145. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
  146. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -181
  147. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -189
  148. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -209
  149. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -38
  150. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
  151. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  152. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -52
@@ -0,0 +1,116 @@
1
+ import { useRecommendation as _ } from "../../../composables/useRecommendation.js";
2
+ function b(e, u, r, o) {
3
+ const s = `{{${e}_${u}_${r}}}`, t = `{{${e}_${u}_currency}}`;
4
+ return o === "before" ? `${t} ${s}` : `${s} ${t}`;
5
+ }
6
+ function p(e, u, r, o, s) {
7
+ switch (u) {
8
+ case "productImage": {
9
+ const t = e.querySelector("img");
10
+ t && (t.setAttribute("src", `{{${r}_${o}_image_url}}`), t.setAttribute("alt", `{{${r}_${o}_name}}`));
11
+ const c = e.querySelector("a");
12
+ c && c.setAttribute("href", `{{${r}_${o}_url}}`);
13
+ break;
14
+ }
15
+ case "productName": {
16
+ const t = e.querySelector("p");
17
+ if (t) {
18
+ const c = t.querySelector("strong") || t;
19
+ c.textContent = `{{${r}_${o}_name}}`;
20
+ }
21
+ break;
22
+ }
23
+ case "productPrice": {
24
+ const t = e.querySelector("p");
25
+ if (t) {
26
+ const c = t.querySelector("strong") || t;
27
+ c.textContent = b(r, o, "price", s);
28
+ }
29
+ break;
30
+ }
31
+ case "productOldPrice": {
32
+ const t = e.querySelector("p");
33
+ if (t) {
34
+ const c = t.querySelector("strong") || t;
35
+ c.textContent = b(
36
+ r,
37
+ o,
38
+ "original_price",
39
+ s
40
+ ), t.setAttribute("product-attr", "discount");
41
+ }
42
+ break;
43
+ }
44
+ case "productButton": {
45
+ const t = e.querySelector("a");
46
+ t && t.setAttribute("href", `{{${r}_${o}_url}}`);
47
+ break;
48
+ }
49
+ case "productOmnibusPrice": {
50
+ const t = e.querySelector(".omnibus-price-value");
51
+ if (t) {
52
+ t.textContent = `{{${r}_${o}_omnibus_price}}`;
53
+ const c = t.closest("p");
54
+ c && (c.setAttribute("product-attr", "omnibus_price"), c.setAttribute("composition", "true"));
55
+ }
56
+ break;
57
+ }
58
+ case "productOmnibusDiscount": {
59
+ const t = e.querySelector(".omnibus-discount-value");
60
+ if (t) {
61
+ t.textContent = `{{${r}_${o}_omnibus_discount}}`;
62
+ const c = t.closest("p");
63
+ c && (c.setAttribute("product-attr", "omnibus_discount"), c.setAttribute("composition", "true"));
64
+ }
65
+ break;
66
+ }
67
+ }
68
+ }
69
+ function $(e, u, r) {
70
+ e.querySelectorAll(".recommendation-product-row").forEach((s, t) => {
71
+ s.querySelectorAll("[data-attribute-type]").forEach((n) => {
72
+ const i = n.getAttribute("data-attribute-type") || "", a = n.querySelectorAll(".attribute-cell");
73
+ a.length > 0 ? a.forEach((l) => {
74
+ p(l, i, u, t, r);
75
+ }) : p(n, i, u, t, r);
76
+ });
77
+ });
78
+ }
79
+ function S(e, u, r) {
80
+ const o = e.querySelectorAll(".recommendation-product-row");
81
+ if (!o.length)
82
+ return;
83
+ const [s] = o, t = s.querySelector("[data-attribute-type]"), c = t ? t.querySelectorAll(".attribute-cell").length : 1;
84
+ o.forEach((n, i) => {
85
+ n.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);
90
+ });
91
+ });
92
+ });
93
+ }
94
+ function q(e, u) {
95
+ const r = e.getAttribute("data-layout") || "grid", o = e.getAttribute("currency-alignment") || "after";
96
+ r === "list" ? $(e, u, o) : S(e, u, o);
97
+ }
98
+ function h(e, u) {
99
+ const r = e.match(/<!DOCTYPE[^>]*>/i);
100
+ return (r ? `${r[0]}
101
+ ` : "") + u.documentElement.outerHTML;
102
+ }
103
+ function w(e) {
104
+ const u = e.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(u, "text/html"), o = r.querySelectorAll(".ins-recommendation-v3-block-v2");
105
+ if (!o.length)
106
+ return e;
107
+ const { buildCampaignUrl: s } = _();
108
+ return o.forEach((c) => {
109
+ const n = c.getAttribute("recommendation-id");
110
+ n && (s(n), q(c, n));
111
+ }), h(u, r).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
112
+ }
113
+ export {
114
+ b as formatPriceVariable,
115
+ w as prepareRecommendationBlocks
116
+ };
@@ -1,8 +1,8 @@
1
1
  var h = Object.defineProperty;
2
2
  var T = (A, e, t) => e in A ? h(A, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : A[e] = t;
3
3
  var m = (A, e, t) => T(A, typeof e != "symbol" ? e + "" : e, t);
4
- import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/migrationTemplate.js";
5
- import { getDefaultProducts as q } from "../../extensions/Blocks/Recommendation/templates/templateUtils.js";
4
+ import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/grid/migration.js";
5
+ import { getDefaultProducts as q } from "../../extensions/Blocks/Recommendation/templates/utils.js";
6
6
  class w {
7
7
  constructor() {
8
8
  m(this, "parser");
@@ -1,5 +1,5 @@
1
1
  const s = {
2
- RECOMMENDATION_API_URL: "http://recommendationv2.api.useinsider.com"
2
+ RECOMMENDATION_API_URL: "https://recommendationv2.api.useinsider.com"
3
3
  }, i = [
4
4
  { id: 11, key: "similarViewed", name: "Viewed Together", path: "viewed-together" },
5
5
  { id: 12, key: "similarBought", name: "Purchased Together", path: "purchased-together" },
@@ -1,4 +1,4 @@
1
- const s = 20, e = 320, t = {
1
+ const e = 20, s = 320, t = "vertical", m = {
2
2
  CART_ABANDONMENT: {
3
3
  ins_apr_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_1.png",
4
4
  ins_apr_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_2.png",
@@ -15,7 +15,7 @@ const s = 20, e = 320, t = {
15
15
  DISCOUNT: "discount",
16
16
  OMNIBUS_DISCOUNT: "omnibus_discount",
17
17
  OMNIBUS_PRICE: "omnibus_price"
18
- }, m = {
18
+ }, _ = {
19
19
  IF: {
20
20
  discount: `{% if {${i.DISCOUNT}} != "0%" and {${i.DISCOUNT}} != "" %}`,
21
21
  omnibus_discount: `{% if {${i.DISCOUNT}} != "0%" and {${i.DISCOUNT}} != "" and {${i.OMNIBUS_DISCOUNT}} != "0%" and {${i.OMNIBUS_DISCOUNT}} != "" %}`,
@@ -23,17 +23,17 @@ const s = 20, e = 320, t = {
23
23
  },
24
24
  ELSE: "{% else %}",
25
25
  END_IF: "{% endif %}"
26
- }, _ = {
27
- ID: /ins-recommendation-v3-campaign-id="(.*?)"/gi,
28
- ATTRIBUTE_PARAGRAPH: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)">[\S\s]*?<\/p>/gm,
29
- ATTRIBUTE_PARAGRAPH_START_TAG: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)">/gm,
26
+ }, a = {
27
+ ID: /recommendation-id="(.*?)"/gi,
28
+ ATTRIBUTE_PARAGRAPH: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>[\S\s]*?<\/p>/gm,
29
+ ATTRIBUTE_PARAGRAPH_START_TAG: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>/gm,
30
30
  COMPOSITION: /composition="true"/gm,
31
31
  CUSTOM_FIELD: /{{[0-9]+_[0-8]_(discount|omnibus_discount|omnibus_price)}}/gm,
32
32
  CUSTOM_FIELD_INDEXES_PART: /{{[0-9]+_[0-8]_/gm,
33
33
  CUSTOM_FIELD_NAME_PART: /_(discount|omnibus_discount|omnibus_price)}}/gm
34
- }, a = {
35
- PARAGRAPH_END_TAG: "</p>"
36
34
  }, n = {
35
+ PARAGRAPH_END_TAG: "</p>"
36
+ }, o = {
37
37
  REGULAR_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:90px!important;",
38
38
  TRIMMED_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:18px!important;",
39
39
  ELLIPSIS: "text-overflow:ellipsis!important; white-space:nowrap!important;",
@@ -46,11 +46,12 @@ const s = 20, e = 320, t = {
46
46
  };
47
47
  export {
48
48
  i as ATTRIBUTES,
49
- m as CONDITIONS,
50
- n as CSS,
51
- t as DUMMY_IMAGE_MAPPINGS,
52
- s as DefaultPadding,
53
- a as HTML,
54
- e as MinDeviceViewport,
55
- _ as REGEX
49
+ _ as CONDITIONS,
50
+ o as CSS,
51
+ m as DUMMY_IMAGE_MAPPINGS,
52
+ e as DefaultPadding,
53
+ n as HTML,
54
+ s as MinDeviceViewport,
55
+ a as REGEX,
56
+ t as VerticalOrientation
56
57
  };
@@ -1,18 +1,18 @@
1
- import { useOnboardingStore as l } from "../../../stores/onboarding.js";
2
- import { Block as m, BlockCompositionType as d, ModificationDescription as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
- import { SETTINGS_ENUMS as a, DefaultConfigValues as n } from "./enums/settingsEnums.js";
4
- import { getDefaultTemplate as f } from "./template.js";
5
- import { getItemsBlockContainer as g, getItemsBlockConfig as p, getDefaultItemsBlockConfig as u } from "./utils/nodeConfigUtils.js";
6
- const I = "items-block";
7
- class S extends m {
1
+ import { useOnboardingStore as d } from "../../../stores/onboarding.js";
2
+ import { Block as g, BlockCompositionType as f, ModificationDescription as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
+ import { SETTINGS_ENUMS as c, DefaultConfigValues as i } from "./enums/settingsEnums.js";
4
+ import { getDefaultTemplate as p } from "./template.js";
5
+ import { getItemsBlockContainer as u, getItemsBlockConfig as C, getDefaultItemsBlockConfig as I } from "./utils/nodeConfigUtils.js";
6
+ const y = "items-block";
7
+ class B extends g {
8
8
  getId() {
9
- return I;
9
+ return y;
10
10
  }
11
11
  getIcon() {
12
12
  return "items-icon";
13
13
  }
14
14
  getBlockCompositionType() {
15
- return d.CONTAINER;
15
+ return f.CONTAINER;
16
16
  }
17
17
  getName() {
18
18
  return this.api.translate("Items");
@@ -21,32 +21,34 @@ class S extends m {
21
21
  return this.api.translate("Items lets you display personalized products based on user behavior.");
22
22
  }
23
23
  getTemplate() {
24
- return f({
25
- orientation: a.ORIENTATION.VERTICAL,
26
- itemsType: a.ITEMS_TYPE.CART_ITEMS,
24
+ return p({
25
+ orientation: c.ORIENTATION.VERTICAL,
26
+ itemsType: c.ITEMS_TYPE.CART_ITEMS,
27
27
  itemId: "{{Abandoned Cart Item (1) Url}}",
28
- currencySymbol: n.productPriceCurrencySymbolControlValue,
29
- currencyLocation: n.productPriceCurrencyLocationControlValue,
30
- formattedPrice: n.productPriceFormattedControlValue === "1"
28
+ currencySymbol: i.productPriceCurrencySymbolControlValue,
29
+ currencyLocation: i.productPriceCurrencyLocationControlValue,
30
+ formattedPrice: i.productPriceFormattedControlValue === "1"
31
31
  });
32
32
  }
33
33
  allowInnerBlocksDND() {
34
34
  return !1;
35
35
  }
36
- onCreated(i) {
37
- const t = g(i);
38
- if (!t)
36
+ onCreated(n) {
37
+ const s = this.api.getDocumentModifier(), r = this.api.getDocumentRootCssNode();
38
+ r.querySelector('[product-attr="imageSrc"] img') || s.modifyCss(r).appendRule('[product-attr="imageSrc"] img {object-fit: contain;}');
39
+ const e = u(n);
40
+ if (!e)
39
41
  return;
40
- const r = t.getNodeConfig(), c = r && Object.keys(r).length > 0, e = p(i);
41
- if (e != null && e.initialized)
42
- c ? e.blockInstanceId || this.api.getDocumentModifier().modifyHtml(t).setNodeConfig({ ...e, blockInstanceId: String(Date.now()) }).apply(new o("Assign block instance ID to block")) : this.api.getDocumentModifier().modifyHtml(t).setNodeConfig(e).apply(new o("Migrate legacy config to nodeConfig"));
42
+ const a = e.getNodeConfig(), l = a && Object.keys(a).length > 0, t = C(n);
43
+ if (t != null && t.initialized)
44
+ l ? t.blockInstanceId || this.api.getDocumentModifier().modifyHtml(e).setNodeConfig({ ...t, blockInstanceId: String(Date.now()) }).apply(new o("Assign block instance ID to block")) : this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(t).apply(new o("Migrate legacy config to nodeConfig"));
43
45
  else {
44
- const s = u();
45
- this.api.getDocumentModifier().modifyHtml(t).setNodeConfig(s).apply(new o("Initialize Items block with default configuration")), l().startOnboarding("itemsOnboarding");
46
+ const m = I();
47
+ this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(m).apply(new o("Initialize Items block with default configuration")), d().startOnboarding("itemsOnboarding");
46
48
  }
47
49
  }
48
50
  }
49
51
  export {
50
- I as BLOCK_ID,
51
- S as ItemsBlock
52
+ y as BLOCK_ID,
53
+ B as ItemsBlock
52
54
  };
@@ -1,12 +1,12 @@
1
1
  var I = Object.defineProperty;
2
- var p = (c, r, t) => r in c ? I(c, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[r] = t;
3
- var y = (c, r, t) => p(c, typeof r != "symbol" ? r + "" : r, t);
4
- import { ModificationDescription as a } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as U } from "../../common-control.js";
6
- import { ItemsBlockId as n } from "../enums/controlEnums.js";
7
- import { SETTINGS_ENUMS as u } from "../enums/settingsEnums.js";
8
- import { getItemsBlockConfig as h, setItemsBlockConfig as b } from "../utils/nodeConfigUtils.js";
9
- const m = "ui-elements-items-card-composition-block", i = {
2
+ var U = (d, a, t) => a in d ? I(d, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[a] = t;
3
+ var p = (d, a, t) => U(d, typeof a != "symbol" ? a + "" : a, t);
4
+ import { ModificationDescription as c } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as b } from "../../common-control.js";
6
+ import { ItemsBlockId as r } from "../enums/controlEnums.js";
7
+ import { SETTINGS_ENUMS as h } from "../enums/settingsEnums.js";
8
+ import { getItemsBlockConfig as R, setItemsBlockConfig as m } from "../utils/nodeConfigUtils.js";
9
+ const g = "ui-elements-items-card-composition-block", i = {
10
10
  PRODUCT_IMAGE: "image",
11
11
  PRODUCT_NAME: "name",
12
12
  PRODUCT_QUANTITY: "quantity",
@@ -14,10 +14,10 @@ const m = "ui-elements-items-card-composition-block", i = {
14
14
  PRODUCT_ORIGINAL_PRICE: "originalPrice",
15
15
  PRODUCT_BUTTON: "button"
16
16
  };
17
- class S extends U {
17
+ class M extends b {
18
18
  constructor() {
19
19
  super(...arguments);
20
- y(this, "visibilityState", {
20
+ p(this, "visibilityState", {
21
21
  [i.PRODUCT_IMAGE]: !0,
22
22
  [i.PRODUCT_NAME]: !0,
23
23
  [i.PRODUCT_QUANTITY]: !0,
@@ -27,7 +27,7 @@ class S extends U {
27
27
  });
28
28
  }
29
29
  getId() {
30
- return m;
30
+ return g;
31
31
  }
32
32
  getTemplate() {
33
33
  return `
@@ -39,7 +39,7 @@ class S extends U {
39
39
  { name: i.PRODUCT_PRICE, label: "Product Price" },
40
40
  { name: i.PRODUCT_ORIGINAL_PRICE, label: "Product Original Price" },
41
41
  { name: i.PRODUCT_BUTTON, label: "Product Button" }
42
- ].map((o) => this._getToggleContainer(o)).join("")}
42
+ ].map((e) => this._getToggleContainer(e)).join("")}
43
43
  </div>
44
44
  `;
45
45
  }
@@ -48,14 +48,14 @@ class S extends U {
48
48
  }
49
49
  onTemplateNodeUpdated(t) {
50
50
  super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(() => {
51
- this._syncVisibilityFromAttributes(), this._handleBrowsedItemsQuantity(), this._applyVisibilityStyles(), this._updateTogglesFromState();
51
+ this._syncVisibilityFromAttributes(), this._handleBrowsedItemsQuantity(!0), this._updateTogglesFromState();
52
52
  });
53
53
  }
54
- _getToggleContainer({ name: t, label: o }) {
54
+ _getToggleContainer({ name: t, label: e }) {
55
55
  return `
56
56
  <div class="container" name="${t}Container">
57
57
  <div class="display-flex align-items-center justify-content-between">
58
- ${this._GuLabel({ text: o, name: `${t}Label` })}
58
+ ${this._GuLabel({ text: e, name: `${t}Label` })}
59
59
  ${this._GuToggle(t)}
60
60
  </div>
61
61
  </div>
@@ -75,10 +75,10 @@ class S extends U {
75
75
  });
76
76
  }
77
77
  _syncVisibilityFromAttributes() {
78
- const t = h(this.currentNode);
78
+ const t = R(this.currentNode);
79
79
  if (!t)
80
80
  return;
81
- const o = {
81
+ const e = {
82
82
  [i.PRODUCT_IMAGE]: "imageVisible",
83
83
  [i.PRODUCT_NAME]: "nameVisible",
84
84
  [i.PRODUCT_QUANTITY]: "quantityControlEnabled",
@@ -86,44 +86,45 @@ class S extends U {
86
86
  [i.PRODUCT_ORIGINAL_PRICE]: "originalPriceVisible",
87
87
  [i.PRODUCT_BUTTON]: "buttonVisible"
88
88
  };
89
- Object.entries(o).forEach(([e, s]) => {
90
- const l = t[s];
91
- this.visibilityState[e] = l !== !1;
89
+ Object.entries(e).forEach(([o, n]) => {
90
+ const s = t[n];
91
+ this.visibilityState[o] = s !== !1;
92
92
  });
93
93
  }
94
94
  /**
95
95
  * If itemsType is not BROWSED_ITEMS, show quantity
96
96
  * If itemsType is BROWSED_ITEMS, hide quantity
97
97
  * and mark it as '0'
98
+ * @param syncOnly - If true, only sync local state and UI without modifying the document
98
99
  */
99
- _handleBrowsedItemsQuantity() {
100
- const t = h(this.currentNode), e = ((t == null ? void 0 : t.type) ?? u.ITEMS_TYPE.CART_ITEMS) !== u.ITEMS_TYPE.BROWSED_ITEMS;
101
- if (!t)
100
+ _handleBrowsedItemsQuantity(t = !1) {
101
+ const e = R(this.currentNode), n = ((e == null ? void 0 : e.type) ?? h.ITEMS_TYPE.CART_ITEMS) !== h.ITEMS_TYPE.BROWSED_ITEMS;
102
+ if (!e)
102
103
  return;
103
- const s = t.quantityControlEnabled !== !1;
104
- this.visibilityState[i.PRODUCT_QUANTITY] = e && s, this.api.setVisibility(`${i.PRODUCT_QUANTITY}Container`, e), this._updateVisibilityAttribute(i.PRODUCT_QUANTITY, e && s);
105
- }
106
- _applyVisibilityStyles() {
107
- const t = {
108
- [i.PRODUCT_IMAGE]: n.IMAGE,
109
- [i.PRODUCT_NAME]: n.NAME,
110
- [i.PRODUCT_QUANTITY]: n.QUANTITY,
111
- [i.PRODUCT_PRICE]: n.PRICE,
112
- [i.PRODUCT_ORIGINAL_PRICE]: n.ORIGINAL_PRICE,
113
- [i.PRODUCT_BUTTON]: n.BUTTON
114
- };
115
- Object.entries(t).forEach(([o, e]) => {
104
+ const s = e.quantityControlEnabled !== !1;
105
+ this.visibilityState[i.PRODUCT_QUANTITY] = n && s, this.api.setVisibility(`${i.PRODUCT_QUANTITY}Container`, n), t || this._updateVisibilityAttribute(i.PRODUCT_QUANTITY, n && s);
106
+ }
107
+ _applyVisibilityStyles(t) {
108
+ const e = {
109
+ [i.PRODUCT_IMAGE]: r.IMAGE,
110
+ [i.PRODUCT_NAME]: r.NAME,
111
+ [i.PRODUCT_QUANTITY]: r.QUANTITY,
112
+ [i.PRODUCT_PRICE]: r.PRICE,
113
+ [i.PRODUCT_ORIGINAL_PRICE]: r.ORIGINAL_PRICE,
114
+ [i.PRODUCT_BUTTON]: r.BUTTON
115
+ }, o = t ?? this.api.getDocumentModifier();
116
+ Object.entries(e).forEach(([n, s]) => {
116
117
  var C;
117
- const s = (C = this.currentNode) == null ? void 0 : C.querySelectorAll(`[esd-extension-block-id="${e}"]`);
118
- if (!s)
118
+ const l = (C = this.currentNode) == null ? void 0 : C.querySelectorAll(`[esd-extension-block-id="${s}"]`);
119
+ if (!l)
119
120
  return;
120
- const l = this.visibilityState[o], T = this.api.getDocumentModifier();
121
- s.forEach((d) => {
122
- T.modifyHtml(d).setStyle("display", l ? "table-cell" : "none");
123
- }), T.apply(new a("Applied visibility from attributes"));
124
- }), this._updatePriceCellWidthsForVerticalLayout();
121
+ const P = this.visibilityState[n];
122
+ l.forEach((T) => {
123
+ o.modifyHtml(T).setStyle("display", P ? "table-cell" : "none");
124
+ });
125
+ }), this._updatePriceCellWidthsForVerticalLayout(o), t || o.apply(new c("Applied visibility styles"));
125
126
  }
126
- _updateVisibilityAttribute(t, o) {
127
+ _updateVisibilityAttribute(t, e, o) {
127
128
  const s = {
128
129
  [i.PRODUCT_IMAGE]: "imageVisible",
129
130
  [i.PRODUCT_NAME]: "nameVisible",
@@ -132,9 +133,9 @@ class S extends U {
132
133
  [i.PRODUCT_ORIGINAL_PRICE]: "originalPriceVisible",
133
134
  [i.PRODUCT_BUTTON]: "buttonVisible"
134
135
  }[t];
135
- s && b(this.currentNode, this.api, {
136
- [s]: o
137
- });
136
+ s && m(this.currentNode, this.api, {
137
+ [s]: e
138
+ }, o);
138
139
  }
139
140
  _listenToFormUpdates() {
140
141
  this.api.onValueChanged(i.PRODUCT_IMAGE, (t) => {
@@ -152,51 +153,67 @@ class S extends U {
152
153
  });
153
154
  }
154
155
  _onProductImageChange(t) {
155
- var e;
156
- const o = (e = this.currentNode) == null ? void 0 : e.querySelector(`[esd-extension-block-id="${n.IMAGE}"]`);
157
- o && (this.visibilityState[i.PRODUCT_IMAGE] = t, this.api.getDocumentModifier().modifyHtml(o).setStyle("display", t ? "table-cell" : "none").apply(new a(`Product image visibility changed to ${t ? "visible" : "hidden"}`)), this._updateVisibilityAttribute(i.PRODUCT_IMAGE, t));
156
+ var s;
157
+ const e = (s = this.currentNode) == null ? void 0 : s.querySelector(`[esd-extension-block-id="${r.IMAGE}"]`);
158
+ if (!e)
159
+ return;
160
+ this.visibilityState[i.PRODUCT_IMAGE] = t;
161
+ const o = this.api.getDocumentModifier();
162
+ o.modifyHtml(e).setStyle("display", t ? "table-cell" : "none"), this._updateVisibilityAttribute(i.PRODUCT_IMAGE, t, o);
163
+ const n = `Product image visibility changed to ${t ? "visible" : "hidden"}`;
164
+ o.apply(new c(n));
158
165
  }
159
166
  _onProductNameChange(t) {
160
- var e;
161
- const o = (e = this.currentNode) == null ? void 0 : e.querySelector(`[esd-extension-block-id="${n.NAME}"]`);
162
- o && (this.visibilityState[i.PRODUCT_NAME] = t, this.api.getDocumentModifier().modifyHtml(o).setStyle("display", t ? "table-cell" : "none").apply(new a(`Product name visibility changed to ${t ? "visible" : "hidden"}`)), this._updateVisibilityAttribute(i.PRODUCT_NAME, t));
167
+ var s;
168
+ const e = (s = this.currentNode) == null ? void 0 : s.querySelector(`[esd-extension-block-id="${r.NAME}"]`);
169
+ if (!e)
170
+ return;
171
+ this.visibilityState[i.PRODUCT_NAME] = t;
172
+ const o = this.api.getDocumentModifier();
173
+ o.modifyHtml(e).setStyle("display", t ? "table-cell" : "none"), this._updateVisibilityAttribute(i.PRODUCT_NAME, t, o);
174
+ const n = `Product name visibility changed to ${t ? "visible" : "hidden"}`;
175
+ o.apply(new c(n));
163
176
  }
164
177
  _onProductQuantityChange(t) {
165
- var e;
166
- const o = (e = this.currentNode) == null ? void 0 : e.querySelector(`[esd-extension-block-id="${n.QUANTITY}"]`);
167
- o && (this.visibilityState[i.PRODUCT_QUANTITY] = t, this.api.getDocumentModifier().modifyHtml(o).setStyle("display", t ? "table-cell" : "none").apply(new a(
168
- `Product quantity visibility changed to ${t ? "visible" : "hidden"}`
169
- )), this._updateVisibilityAttribute(i.PRODUCT_QUANTITY, t));
178
+ var s;
179
+ const e = (s = this.currentNode) == null ? void 0 : s.querySelector(`[esd-extension-block-id="${r.QUANTITY}"]`);
180
+ if (!e)
181
+ return;
182
+ this.visibilityState[i.PRODUCT_QUANTITY] = t;
183
+ const o = this.api.getDocumentModifier();
184
+ o.modifyHtml(e).setStyle("display", t ? "table-cell" : "none"), this._updateVisibilityAttribute(i.PRODUCT_QUANTITY, t, o);
185
+ const n = `Product quantity visibility changed to ${t ? "visible" : "hidden"}`;
186
+ o.apply(new c(n));
170
187
  }
171
188
  _onProductPriceChange(t) {
172
189
  var s;
173
- const o = (s = this.currentNode) == null ? void 0 : s.querySelectorAll(
174
- `[esd-extension-block-id="${n.PRICE}"]`
190
+ const e = (s = this.currentNode) == null ? void 0 : s.querySelectorAll(
191
+ `[esd-extension-block-id="${r.PRICE}"]`
175
192
  );
176
- if (!o)
193
+ if (!e)
177
194
  return;
178
195
  this.visibilityState[i.PRODUCT_PRICE] = t;
179
- const e = this.api.getDocumentModifier();
180
- o.forEach((l) => {
181
- e.modifyHtml(l).setStyle("display", t ? "table-cell" : "none");
182
- }), e.apply(
183
- new a(`Product price visibility changed to ${t ? "visible" : "hidden"}`)
184
- ), this._updateVisibilityAttribute(i.PRODUCT_PRICE, t), this._updatePriceCellWidthsForVerticalLayout();
196
+ const o = this.api.getDocumentModifier();
197
+ e.forEach((l) => {
198
+ o.modifyHtml(l).setStyle("display", t ? "table-cell" : "none");
199
+ }), this._updateVisibilityAttribute(i.PRODUCT_PRICE, t, o), this._updatePriceCellWidthsForVerticalLayout(o);
200
+ const n = `Product price visibility changed to ${t ? "visible" : "hidden"}`;
201
+ o.apply(new c(n));
185
202
  }
186
203
  _onProductOriginalPriceChange(t) {
187
204
  var s;
188
- const o = (s = this.currentNode) == null ? void 0 : s.querySelectorAll(
189
- `[esd-extension-block-id="${n.ORIGINAL_PRICE}"]`
205
+ const e = (s = this.currentNode) == null ? void 0 : s.querySelectorAll(
206
+ `[esd-extension-block-id="${r.ORIGINAL_PRICE}"]`
190
207
  );
191
- if (!o)
208
+ if (!e)
192
209
  return;
193
210
  this.visibilityState[i.PRODUCT_ORIGINAL_PRICE] = t;
194
- const e = this.api.getDocumentModifier();
195
- o.forEach((l) => {
196
- e.modifyHtml(l).setStyle("display", t ? "table-cell" : "none");
197
- }), e.apply(new a(
198
- `Product original price visibility changed to ${t ? "visible" : "hidden"}`
199
- )), this._updateVisibilityAttribute(i.PRODUCT_ORIGINAL_PRICE, t), this._updatePriceCellWidthsForVerticalLayout();
211
+ const o = this.api.getDocumentModifier();
212
+ e.forEach((l) => {
213
+ o.modifyHtml(l).setStyle("display", t ? "table-cell" : "none");
214
+ }), this._updateVisibilityAttribute(i.PRODUCT_ORIGINAL_PRICE, t, o), this._updatePriceCellWidthsForVerticalLayout(o);
215
+ const n = `Product original price visibility changed to ${t ? "visible" : "hidden"}`;
216
+ o.apply(new c(n));
200
217
  }
201
218
  /**
202
219
  * Updates both price cell widths in vertical layout based on priceOrientation and visibility.
@@ -206,33 +223,39 @@ class S extends U {
206
223
  * - When price is hidden, original price cell expands to 100%
207
224
  * - When both are visible, they share 50% each
208
225
  */
209
- _updatePriceCellWidthsForVerticalLayout() {
210
- var R, O;
211
- const t = h(this.currentNode);
212
- if (!((t == null ? void 0 : t.orientation) === u.ORIENTATION.VERTICAL))
226
+ _updatePriceCellWidthsForVerticalLayout(t) {
227
+ var O, y;
228
+ const e = R(this.currentNode);
229
+ if (!((e == null ? void 0 : e.orientation) === h.ORIENTATION.VERTICAL))
213
230
  return;
214
- const e = (R = this.currentNode) == null ? void 0 : R.querySelectorAll(".product-price-class"), s = (O = this.currentNode) == null ? void 0 : O.querySelectorAll(".product-original-price-class"), l = (t == null ? void 0 : t.priceOrientation) === "vertical", T = this.visibilityState[i.PRODUCT_PRICE], C = this.visibilityState[i.PRODUCT_ORIGINAL_PRICE], d = this.api.getDocumentModifier();
215
- if (e && e.length > 0) {
216
- const P = l || !C ? "100%" : "50%";
217
- e.forEach((_) => {
218
- d.modifyHtml(_).setStyle("width", P);
231
+ const n = (O = this.currentNode) == null ? void 0 : O.querySelectorAll(".product-price-class"), s = (y = this.currentNode) == null ? void 0 : y.querySelectorAll(".product-original-price-class"), l = (e == null ? void 0 : e.priceOrientation) === "vertical", P = this.visibilityState[i.PRODUCT_PRICE], C = this.visibilityState[i.PRODUCT_ORIGINAL_PRICE], T = t ?? this.api.getDocumentModifier();
232
+ if (n && n.length > 0) {
233
+ const _ = l || !C ? "100%" : "50%";
234
+ n.forEach((u) => {
235
+ T.modifyHtml(u).setStyle("width", _);
219
236
  });
220
237
  }
221
238
  if (s && s.length > 0) {
222
- const P = l || !T ? "100%" : "50%";
223
- s.forEach((_) => {
224
- d.modifyHtml(_).setStyle("width", P);
239
+ const _ = l || !P ? "100%" : "50%";
240
+ s.forEach((u) => {
241
+ T.modifyHtml(u).setStyle("width", _);
225
242
  });
226
243
  }
227
- d.apply(new a("Updated price cell widths for vertical layout"));
244
+ t || T.apply(new c("Updated price cell widths for vertical layout"));
228
245
  }
229
246
  _onProductButtonChange(t) {
230
- var e;
231
- const o = (e = this.currentNode) == null ? void 0 : e.querySelector(`[esd-extension-block-id="${n.BUTTON}"]`);
232
- o && (this.visibilityState[i.PRODUCT_BUTTON] = t, this.api.getDocumentModifier().modifyHtml(o).setStyle("display", t ? "table-cell" : "none").apply(new a(`Product button visibility changed to ${t ? "visible" : "hidden"}`)), this._updateVisibilityAttribute(i.PRODUCT_BUTTON, t));
247
+ var s;
248
+ const e = (s = this.currentNode) == null ? void 0 : s.querySelector(`[esd-extension-block-id="${r.BUTTON}"]`);
249
+ if (!e)
250
+ return;
251
+ this.visibilityState[i.PRODUCT_BUTTON] = t;
252
+ const o = this.api.getDocumentModifier();
253
+ o.modifyHtml(e).setStyle("display", t ? "table-cell" : "none"), this._updateVisibilityAttribute(i.PRODUCT_BUTTON, t, o);
254
+ const n = `Product button visibility changed to ${t ? "visible" : "hidden"}`;
255
+ o.apply(new c(n));
233
256
  }
234
257
  }
235
258
  export {
236
- m as COMPOSITION_CONTROL_BLOCK_ID,
237
- S as ItemsBlockCardCompositionControl
259
+ g as COMPOSITION_CONTROL_BLOCK_ID,
260
+ M as ItemsBlockCardCompositionControl
238
261
  };