@useinsider/guido 2.0.0-beta.dbde199 → 2.0.0-beta.faa7c5d

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 (174) hide show
  1. package/dist/@types/config/schemas.js +53 -39
  2. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  3. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  4. package/dist/components/organisms/header/LeftSlot.vue.js +12 -12
  5. package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
  6. package/dist/components/organisms/header/RightSlot.vue2.js +10 -10
  7. package/dist/composables/useConfig.js +29 -27
  8. package/dist/composables/useSave.js +13 -11
  9. package/dist/config/migrator/index.js +9 -8
  10. package/dist/config/migrator/itemsBlockMigrator.js +342 -0
  11. package/dist/extensions/Blocks/Items/block.js +39 -40
  12. package/dist/extensions/Blocks/Items/controls/button/link.js +22 -29
  13. package/dist/extensions/Blocks/Items/controls/cardComposition.js +70 -59
  14. package/dist/extensions/Blocks/Items/controls/image/link.js +23 -30
  15. package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
  16. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +19 -17
  17. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +31 -29
  18. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +36 -36
  19. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +21 -19
  20. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +29 -27
  21. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +93 -0
  22. package/dist/extensions/Blocks/Items/controls/settingsControl.js +152 -143
  23. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  24. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  25. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +4 -3
  26. package/dist/extensions/Blocks/Items/extension.js +7 -6
  27. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  28. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  29. package/dist/extensions/Blocks/Items/settingsPanel.js +27 -26
  30. package/dist/extensions/Blocks/Items/store/items-block.js +11 -7
  31. package/dist/extensions/Blocks/Items/template.js +366 -129
  32. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +184 -0
  33. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +68 -158
  34. package/dist/extensions/Blocks/Recommendation/constants.js +1 -10
  35. package/dist/extensions/Blocks/Recommendation/control.js +61 -91
  36. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/extension.js +40 -16
  71. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +71 -124
  72. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +65 -89
  73. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +19 -56
  74. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +45 -74
  75. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  76. package/dist/extensions/Blocks/common-control.js +29 -30
  77. package/dist/extensions/Blocks/controlFactories.js +108 -98
  78. package/dist/guido.css +1 -1
  79. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +46 -40
  80. package/dist/src/@types/config/index.d.ts +2 -2
  81. package/dist/src/@types/config/schemas.d.ts +26 -0
  82. package/dist/src/@types/config/types.d.ts +7 -1
  83. package/dist/src/composables/useConfig.d.ts +6 -0
  84. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  85. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -2
  86. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +9 -0
  87. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -2
  88. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  89. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +18 -0
  90. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  91. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  92. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  93. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -0
  94. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
  95. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  96. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +73 -0
  97. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +3 -54
  98. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +1 -41
  99. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +2 -5
  100. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  101. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  102. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  103. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  133. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  134. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  135. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +1 -1
  136. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +7 -15
  137. package/dist/src/extensions/Blocks/common-control.d.ts +9 -10
  138. package/dist/src/stores/config.d.ts +147 -1
  139. package/dist/static/styles/components/button.css.js +1 -1
  140. package/dist/static/styles/components/wide-panel.css.js +4 -0
  141. package/dist/static/styles/customEditorStyle.css.js +0 -13
  142. package/dist/stores/config.js +7 -0
  143. package/dist/utils/pairProductVariables.js +61 -58
  144. package/package.json +1 -1
  145. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  146. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  147. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  148. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  149. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
  150. package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -272
  151. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
  152. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +0 -71
  153. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +0 -71
  154. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +0 -71
  155. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +0 -71
  156. package/dist/extensions/Blocks/Recommendation/controls/priceHideControl.js +0 -60
  157. package/dist/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.js +0 -160
  158. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
  159. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -25
  160. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  161. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  162. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  163. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  164. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
  165. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -654
  166. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
  167. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
  168. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
  169. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
  170. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
  171. package/dist/src/extensions/Blocks/Recommendation/controls/priceHideControl.d.ts +0 -16
  172. package/dist/src/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.d.ts +0 -50
  173. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
  174. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
@@ -23,19 +23,6 @@ const n = `.esd-x,
23
23
  .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-panel {
24
24
  display: none !important;
25
25
  }
26
-
27
- /* Apply to the table cell (td) with text-trim-enabled class */
28
- .text-trim-enabled {
29
- max-width: 0 !important;
30
- }
31
-
32
- .text-trim-enabled p {
33
- overflow: hidden !important;
34
- text-overflow: ellipsis !important;
35
- white-space: nowrap !important;
36
- margin: 0 !important;
37
- display: block !important;
38
- }
39
26
  `;
40
27
  export {
41
28
  n as default
@@ -64,6 +64,13 @@ const s = o("guido-config", {
64
64
  var e;
65
65
  return ((e = i.config) == null ? void 0 : e.compiler) ?? null;
66
66
  },
67
+ /**
68
+ * Get the callbacks configuration
69
+ */
70
+ callbacks: (i) => {
71
+ var e;
72
+ return ((e = i.config) == null ? void 0 : e.callbacks) ?? null;
73
+ },
67
74
  /**
68
75
  * Get the template ID
69
76
  */
@@ -1,74 +1,77 @@
1
1
  import { productPairs as w } from "../extensions/Blocks/Items/enums/productEnums.js";
2
- function M(H) {
3
- const m = H.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), $ = new DOMParser().parseFromString(m, "text/html"), C = w.PAIRS_FOR_EXTENSION;
4
- Object.entries(C).forEach(([n, d]) => {
2
+ function P(k) {
3
+ const m = k.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), $ = new DOMParser().parseFromString(m, "text/html"), R = w.PAIRS_FOR_EXTENSION;
4
+ Object.entries(R).forEach(([n, l]) => {
5
5
  $.querySelectorAll(".ins-product-td").forEach((o) => {
6
- const h = o.getAttribute("data-number") || "1", _ = o.getAttribute("data-type") || "CART_ITEMS";
6
+ const E = o.getAttribute("data-number") || "1", b = o.getAttribute("data-type") || "CART_ITEMS";
7
7
  o.querySelectorAll(`[product-attr="${n}"]`).forEach((e) => {
8
8
  var y;
9
- const b = e.getAttribute("data-type") || _, u = e.getAttribute("data-number") || h, p = d[b];
9
+ const T = e.getAttribute("data-type") || b, u = e.getAttribute("data-number") || E, p = l[T];
10
10
  if (p)
11
11
  switch (n) {
12
12
  case "imageSrc": {
13
- let t = null, i = null;
14
- if (e.tagName === "IMG" ? (t = e, i = t.closest("a")) : (t = e.querySelector("img"), i = e.querySelector("a") || e.closest("a")), !t)
13
+ let t = null, c = null;
14
+ if (e.tagName === "IMG" ? (t = e, c = t.closest("a")) : (t = e.querySelector("img"), c = e.querySelector("a") || e.closest("a")), !t)
15
15
  break;
16
- const c = p.DEFAULT, a = p.ATTR;
17
- if (c && t.src) {
16
+ const i = p.DEFAULT, a = p.ATTR;
17
+ if (i && t.src) {
18
18
  const r = t.src;
19
- c.some((l) => {
20
- const s = l.split("/").pop() || "", F = r.split("/").pop() || "";
21
- return r.includes(l) || r.includes(s) || F === s;
19
+ i.some((d) => {
20
+ const s = d.split("/").pop() || "", _ = r.split("/").pop() || "";
21
+ return r.includes(d) || r.includes(s) || _ === s;
22
22
  }) && (t.src = `{{${a}_${u}}}`);
23
23
  }
24
- if (i) {
25
- const r = (y = C.itemLink) == null ? void 0 : y[b];
24
+ if (c) {
25
+ const r = (y = R.itemLink) == null ? void 0 : y[T];
26
26
  if (r) {
27
- const f = r.HREF, l = r.DEFAULT_HREF || "#!", s = i.href;
28
- (s === "#" || s === "" || s.endsWith("#!") || s.endsWith(l) || s === `${window.location.href}${l}` || !s || s === window.location.href) && (i.href = `{{${f}_${u}}}`);
27
+ const f = r.HREF, d = r.DEFAULT_HREF || "#!", s = c.href;
28
+ (s === "#" || s === "" || s.endsWith("#!") || s.endsWith(d) || s === `${window.location.href}${d}` || !s || s === window.location.href) && (c.href = `{{${f}_${u}}}`);
29
29
  }
30
30
  }
31
31
  break;
32
32
  }
33
33
  case "name": {
34
- const t = p, i = t.ATTR, c = t.DEFAULT_HREF || "#!", a = t.HREF;
35
- e.textContent && (e.textContent = `{{${i}_${u}}}`);
34
+ const t = p, c = t.ATTR, i = t.DEFAULT_HREF || "#!", a = t.HREF;
35
+ e.textContent && (e.textContent = `{{${c}_${u}}}`);
36
36
  const r = e.closest("a") || (e.tagName === "A" ? e : null);
37
37
  if (r && a) {
38
- const f = r.href, l = `${window.location.href}${c}`;
39
- (f === l || f.endsWith(c)) && (r.href = `{{${a}_${u}}}`);
38
+ const f = r.href, d = `${window.location.href}${i}`;
39
+ (f === d || f.endsWith(i)) && (r.href = `{{${a}_${u}}}`);
40
40
  }
41
41
  break;
42
42
  }
43
43
  case "price":
44
44
  case "originalPrice": {
45
- const t = p, c = e.getAttribute("data-formated") === "true", a = e.getAttribute("data-curency") || "before", r = c ? t.PRICE_FORMATTED : t.PRICE, f = t.CURRENCY;
46
- let l = `{{${r}_${u}}}`;
47
- if (f) {
48
- const s = `{{${f}_${u}}}`;
49
- l = a === "after" ? `${l} ${s}` : `${s} ${l}`;
45
+ const t = p, c = e.getAttribute("data-formated"), i = e.getAttribute("data-single_price"), a = c === "true", r = i === "true", f = e.getAttribute("data-curency") || "before";
46
+ let d;
47
+ r ? d = a ? t.SINGLE_PRICE_FORMATTED : t.SINGLE_PRICE : d = a ? t.PRICE_FORMATTED : t.PRICE;
48
+ const s = t.CURRENCY;
49
+ let _ = `{{${d}_${u}}}`;
50
+ if (s) {
51
+ const H = `{{${s}_${u}}}`;
52
+ _ = f === "after" ? `${_} ${H}` : `${H} ${_}`;
50
53
  }
51
- e.textContent = l;
54
+ e.textContent = _;
52
55
  break;
53
56
  }
54
57
  case "quantity": {
55
- const t = p, i = t.ATTR, c = t.DEFAULT;
56
- e.textContent && e.textContent.trim() === c && (e.textContent = `{{${i}_${u}}}`);
58
+ const t = p, c = t.ATTR, i = t.DEFAULT;
59
+ e.textContent && e.textContent.trim() === i && (e.textContent = `{{${c}_${u}}}`);
57
60
  break;
58
61
  }
59
62
  case "button": {
60
- const t = p, i = t.HREF, c = t.DEFAULT_HREF || "#!", a = e.tagName === "A" ? e : e.querySelector("a");
63
+ const t = p, c = t.HREF, i = t.DEFAULT_HREF || "#!", a = e.tagName === "A" ? e : e.querySelector("a");
61
64
  if (a) {
62
- const r = a.href || "", f = `${window.location.href}${c}`;
63
- (r === "" || r === "#" || r === f || r.endsWith(c) || r.endsWith("#!") || r === window.location.href) && (a.href = `{{${i}_${u}}}`);
65
+ const r = a.href || "", f = `${window.location.href}${i}`;
66
+ (r === "" || r === "#" || r === f || r.endsWith(i) || r.endsWith("#!") || r === window.location.href) && (a.href = `{{${c}_${u}}}`);
64
67
  }
65
68
  break;
66
69
  }
67
70
  case "itemLink": {
68
- const t = p, i = t.HREF, c = t.DEFAULT_HREF || "#!", a = e;
71
+ const t = p, c = t.HREF, i = t.DEFAULT_HREF || "#!", a = e;
69
72
  if (a.href) {
70
- const r = a.href, f = `${window.location.href}${c}`;
71
- (r === f || r.endsWith(c)) && (a.href = `{{${i}_${u}}}`);
73
+ const r = a.href, f = `${window.location.href}${i}`;
74
+ (r === f || r.endsWith(i)) && (a.href = `{{${c}_${u}}}`);
72
75
  }
73
76
  break;
74
77
  }
@@ -83,21 +86,21 @@ function M(H) {
83
86
  });
84
87
  });
85
88
  });
86
- const S = $.querySelectorAll(".ins-product-td"), R = [];
87
- S.forEach((n) => {
88
- const d = n.getAttribute("data-type") || "CART_ITEMS", A = n.getAttribute("data-number") || "1", o = n.getAttribute("data-nodup"), h = n.outerHTML;
89
- R.push({
89
+ const F = $.querySelectorAll(".ins-product-td"), S = [];
90
+ F.forEach((n) => {
91
+ const l = n.getAttribute("data-type") || "CART_ITEMS", A = n.getAttribute("data-number") || "1", o = n.getAttribute("data-nodup"), E = n.outerHTML;
92
+ S.push({
90
93
  element: n,
91
- outerHtml: h,
92
- type: d,
94
+ outerHtml: E,
95
+ type: l,
93
96
  number: A,
94
97
  nodup: o || void 0
95
98
  });
96
99
  });
97
- let E = $.body.innerHTML;
98
- R.reverse().forEach(({ outerHtml: n, type: d, number: A }) => {
100
+ let h = $.body.innerHTML;
101
+ S.reverse().forEach(({ outerHtml: n, type: l, number: A }) => {
99
102
  let o = "";
100
- switch (d) {
103
+ switch (l) {
101
104
  case "CART_ITEMS":
102
105
  o = "ins_apr_total_product_kind";
103
106
  break;
@@ -109,28 +112,28 @@ function M(H) {
109
112
  break;
110
113
  }
111
114
  if (o) {
112
- const _ = parseInt(A) - 1, b = `${`{% if ${o} > ${_} %}`}${n}{% endif %}`;
113
- E = E.replace(n, b);
115
+ const b = parseInt(A) - 1, T = `${`{% if ${o} > ${b} %}`}${n}{% endif %}`;
116
+ h = h.replace(n, T);
114
117
  }
115
118
  });
116
- const k = $.querySelectorAll('[product-attr="originalPrice"][data-type="CART_ITEMS"]'), T = [];
117
- return k.forEach((n) => {
118
- const d = n.getAttribute("data-number"), A = n.getAttribute("data-type");
119
- if (!d || A !== "CART_ITEMS")
119
+ const I = $.querySelectorAll('[product-attr="originalPrice"][data-type="CART_ITEMS"]'), g = [];
120
+ return I.forEach((n) => {
121
+ const l = n.getAttribute("data-number"), A = n.getAttribute("data-type");
122
+ if (!l || A !== "CART_ITEMS")
120
123
  return;
121
124
  const o = n.closest(".product-original-price-class");
122
125
  if (o) {
123
- const h = o.outerHTML;
124
- T.some((g) => g.tdOuterHtml === h) || T.push({ tdOuterHtml: h, number: d });
126
+ const E = o.outerHTML;
127
+ g.some((C) => C.tdOuterHtml === E) || g.push({ tdOuterHtml: E, number: l });
125
128
  }
126
- }), T.reverse().forEach(({ tdOuterHtml: n, number: d }) => {
127
- const A = `{% if ins_apr_price_${d} != ins_apr_originalprice_${d} %}`;
128
- if (!E.includes(A) && !n.includes("{% if")) {
129
- const h = `${A}${n}{% endif %}`;
130
- E = E.replace(n, h);
129
+ }), g.reverse().forEach(({ tdOuterHtml: n, number: l }) => {
130
+ const A = `{% if ins_apr_price_${l} != ins_apr_originalprice_${l} %}`;
131
+ if (!h.includes(A) && !n.includes("{% if")) {
132
+ const E = `${A}${n}{% endif %}`;
133
+ h = h.replace(n, E);
131
134
  }
132
- }), E.replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
135
+ }), h.replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
133
136
  }
134
137
  export {
135
- M as pairProductVariables
138
+ P as pairProductVariables
136
139
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.0.0-beta.dbde199",
3
+ "version": "2.0.0-beta.faa7c5d",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -1,17 +0,0 @@
1
- function r(t) {
2
- if (!t)
3
- return null;
4
- const n = t.closest(".items-block-v2");
5
- return n ? n.querySelector("esd-config-block") : null;
6
- }
7
- function o(t, n = !1) {
8
- return t == null ? n : t === "1" || t === "true";
9
- }
10
- function e(t, n = "") {
11
- return t || n;
12
- }
13
- export {
14
- o as attributeToBoolean,
15
- e as attributeToString,
16
- r as getConfigBlock
17
- };
@@ -1,28 +0,0 @@
1
- import { configAttributes as i } from "../enums/productEnums.js";
2
- import { getConfigBlock as c, attributeToBoolean as u, attributeToString as a } from "./configBlockUtils.js";
3
- function l(r, t) {
4
- const e = c(r);
5
- if (!e)
6
- return;
7
- const o = e.getAttribute(i[t.attributeName]), n = t.converter(o);
8
- t.storeSetter(n);
9
- }
10
- function b(r, t, e = !1) {
11
- return {
12
- attributeName: r,
13
- storeSetter: t,
14
- converter: (o) => u(o, e)
15
- };
16
- }
17
- function s(r, t, e = "") {
18
- return {
19
- attributeName: r,
20
- storeSetter: t,
21
- converter: (o) => a(o, e)
22
- };
23
- }
24
- export {
25
- b as createBooleanSyncConfig,
26
- s as createStringSyncConfig,
27
- l as syncAttributeFromConfigBlock
28
- };
@@ -1,76 +0,0 @@
1
- import { useItemsBlockStore as e } from "../store/items-block.js";
2
- import { syncAttributeFromConfigBlock as r, createBooleanSyncConfig as i, createStringSyncConfig as s } from "./syncAttributeFromConfigBlock.js";
3
- function m(t) {
4
- const o = e(), n = i(
5
- "PRODUCT_NAME_TRIMMING",
6
- (c) => o.setNameTrimming(c),
7
- !1
8
- );
9
- r(t, n);
10
- }
11
- function f(t) {
12
- const o = e(), n = i(
13
- "PRODUCT_PRICE_HIDE_DISCOUNT",
14
- (c) => o.setHideDiscount(c),
15
- !1
16
- );
17
- r(t, n);
18
- }
19
- function R(t) {
20
- const o = e(), n = i(
21
- "PRODUCT_PRICE_FORMATTED",
22
- (c) => o.setFormattedPrice(c),
23
- !0
24
- );
25
- r(t, n);
26
- }
27
- function O(t) {
28
- const o = e(), n = s(
29
- "PRODUCT_PRICE_CURRENCY_SYMBOL",
30
- (c) => o.setCurrencySymbol(c),
31
- ""
32
- );
33
- r(t, n);
34
- }
35
- function _(t) {
36
- const o = e(), n = s(
37
- "PRODUCT_PRICE_CURRENCY_LOCATION",
38
- (c) => o.setCurrencyLocation(c),
39
- "0"
40
- );
41
- r(t, n);
42
- }
43
- function I(t) {
44
- const o = e(), n = s(
45
- "PRODUCT_BUTTON_LINK",
46
- (c) => o.setButtonLink(c),
47
- ""
48
- );
49
- r(t, n);
50
- }
51
- function T(t) {
52
- const o = e(), n = s(
53
- "PRODUCT_IMAGE_LINK",
54
- (c) => o.setImageLink(c),
55
- ""
56
- );
57
- r(t, n);
58
- }
59
- function y(t) {
60
- const o = e(), n = s(
61
- "PRODUCT_ORIGINAL_PRICE_CONTROL_ORIENTATION",
62
- (c) => o.setPriceOrientation(c),
63
- "horizontal"
64
- );
65
- r(t, n);
66
- }
67
- export {
68
- I as syncButtonLinkFromAttributes,
69
- _ as syncCurrencyLocationFromAttributes,
70
- O as syncCurrencySymbolFromAttributes,
71
- R as syncFormattedPriceFromAttributes,
72
- f as syncHideDiscountFromAttributes,
73
- T as syncImageLinkFromAttributes,
74
- m as syncNameTrimmingFromAttributes,
75
- y as syncPriceOrientationFromAttributes
76
- };
@@ -1,46 +0,0 @@
1
- import { ModificationDescription as p } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { configAttributes as t } from "../enums/productEnums.js";
3
- import { DefaultConfigValues as i } from "../enums/settingsEnums.js";
4
- import { useItemsBlockStore as s } from "../store/items-block.js";
5
- import { getConfigBlock as P } from "./configBlockUtils.js";
6
- function M(n, O) {
7
- const e = P(n);
8
- if (!e)
9
- return;
10
- const c = s(), {
11
- itemsType: r,
12
- itemIds: C,
13
- orientation: T,
14
- nameTrimming: _,
15
- hideDiscount: E,
16
- formattedPrice: R,
17
- currencySymbol: N,
18
- currencyLocation: m,
19
- priceOrientation: I,
20
- buttonLink: a,
21
- imageLink: f
22
- } = c, u = {
23
- "data-source": r,
24
- [t.TYPE]: r,
25
- [t.ITEMS_INDEX_SELECT_CONTROL_VALUE]: C,
26
- [t.ORIENTATION]: T,
27
- [t.PRODUCT_NAME_TRIMMING]: _ ? "1" : "0",
28
- [t.PRODUCT_PRICE_HIDE_DISCOUNT]: E ? "1" : "0",
29
- [t.PRODUCT_PRICE_FORMATTED]: R ? "1" : "0",
30
- [t.PRODUCT_PRICE_CURRENCY_SYMBOL]: N || "",
31
- [t.PRODUCT_PRICE_CURRENCY_LOCATION]: m || "0",
32
- [t.PRODUCT_ORIGINAL_PRICE_CONTROL_ORIENTATION]: I || "horizontal",
33
- [t.PRODUCT_BUTTON_LINK]: a || "",
34
- [t.PRODUCT_IMAGE_LINK]: f || "",
35
- [t.NAME_CONTROL_ENABLED]: i.productNameControlEnabled,
36
- [t.QUANTITY_CONTROL_ENABLED]: i.productQuantityControlEnabled,
37
- [t.PRICE_CONTROL_OPENED]: i.productPriceControlOpened
38
- };
39
- let o = O.getDocumentModifier().modifyHtml(e);
40
- Object.entries(u).forEach(([D, l]) => {
41
- o = o.setAttribute(D, l);
42
- }), o.apply(new p("Update config block attributes from control"));
43
- }
44
- export {
45
- M as updateConfigBlockAttributes
46
- };
@@ -1,68 +0,0 @@
1
- import { ModificationDescription as a } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { CommonControl as d } from "../../common-control.js";
3
- const c = "recommendation-card-background-color-control", o = {
4
- CARD_BACKGROUND_COLOR: "cardBackgroundColor"
5
- };
6
- class u extends d {
7
- getId() {
8
- return c;
9
- }
10
- getTemplate() {
11
- return `
12
- <div class="card-bg-control-container">
13
- ${this._GuTwoColumns([
14
- this._GuLabel({ text: "Card Background Color" }),
15
- this._GuColorPicker(o.CARD_BACKGROUND_COLOR)
16
- ])}
17
- </div>
18
- `;
19
- }
20
- onRender() {
21
- this._setFormValues(), this._listenToFormUpdates();
22
- }
23
- onTemplateNodeUpdated(r) {
24
- super.onTemplateNodeUpdated(r), this._setFormValues();
25
- }
26
- _setFormValues() {
27
- const r = this._getCurrentCardBackgroundColor();
28
- this.api.updateValues({
29
- [o.CARD_BACKGROUND_COLOR]: r
30
- });
31
- }
32
- /**
33
- * Reads the current background color from the first product card wrapper
34
- * @returns The background color value or 'transparent' if not found
35
- */
36
- _getCurrentCardBackgroundColor() {
37
- if (!this.currentNode || !("querySelectorAll" in this.currentNode))
38
- return "transparent";
39
- const r = this.currentNode.querySelector(".product-card-wrapper");
40
- return !r || !("getStyle" in r) ? "transparent" : r.getStyle("background-color") || "transparent";
41
- }
42
- /**
43
- * Handles card background color changes
44
- * Applies the color to all product card wrapper elements
45
- */
46
- _onCardBackgroundColorChange(r) {
47
- if (!this.currentNode || !("querySelectorAll" in this.currentNode))
48
- return;
49
- const e = Array.from(
50
- this.currentNode.querySelectorAll(".product-card-wrapper")
51
- );
52
- if (e.length === 0)
53
- return;
54
- const t = this.api.getDocumentModifier();
55
- e.forEach((n) => {
56
- t.modifyHtml(n).setStyle("background-color", r);
57
- }), t.apply(new a("Update card background color"));
58
- }
59
- _listenToFormUpdates() {
60
- this.api.onValueChanged(o.CARD_BACKGROUND_COLOR, (r) => {
61
- this._onCardBackgroundColorChange(r);
62
- });
63
- }
64
- }
65
- export {
66
- c as CARD_BACKGROUND_COLOR_CONTROL_ID,
67
- u as CardBackgroundColorControl
68
- };