@useinsider/guido 1.0.3-beta.e9bec65 → 1.0.3-beta.ef63ed1

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 (183) hide show
  1. package/README.md +3 -147
  2. package/dist/components/Guido.vue.js +9 -11
  3. package/dist/components/Guido.vue2.js +74 -81
  4. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  5. package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
  6. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  7. package/dist/components/organisms/header/RightSlot.vue2.js +22 -23
  8. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  9. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +17 -30
  10. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +10 -12
  11. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -19
  12. package/dist/composables/useGuidoActions.js +9 -19
  13. package/dist/composables/useStripo.js +55 -48
  14. package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
  15. package/dist/config/migrator/index.js +6 -7
  16. package/dist/enums/defaults.js +8 -16
  17. package/dist/enums/onboarding.js +1 -2
  18. package/dist/enums/unsubscribe.js +25 -27
  19. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  20. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  21. package/dist/extensions/Blocks/RadioButton/template.js +6 -6
  22. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  23. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  24. package/dist/guido.css +1 -1
  25. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +93 -311
  26. package/dist/package.json.js +1 -1
  27. package/dist/services/stripoApi.js +1 -1
  28. package/dist/src/@types/generic.d.ts +4 -44
  29. package/dist/src/components/Guido.vue.d.ts +2 -4
  30. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +1 -3
  31. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +1 -3
  32. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  33. package/dist/src/composables/useGuidoActions.d.ts +0 -9
  34. package/dist/src/enums/onboarding.d.ts +0 -1
  35. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
  36. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
  37. package/dist/src/stores/config.d.ts +2 -10
  38. package/dist/src/stores/dynamic-content.d.ts +3 -3
  39. package/dist/src/stores/editor.d.ts +1 -22
  40. package/dist/src/stores/onboarding.d.ts +1 -1
  41. package/dist/src/stores/preview.d.ts +1 -1
  42. package/dist/src/stores/recommendation.d.ts +1 -1
  43. package/dist/src/stores/save-as-template.d.ts +1 -1
  44. package/dist/src/stores/toaster.d.ts +1 -1
  45. package/dist/src/stores/unsubscribe.d.ts +1 -1
  46. package/dist/src/stores/version-history.d.ts +1 -1
  47. package/dist/src/utils/dateUtil.d.ts +0 -21
  48. package/dist/src/utils/genericUtil.d.ts +0 -2
  49. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  50. package/dist/static/styles/customEditorStyle.css.js +0 -5
  51. package/dist/stores/config.js +5 -5
  52. package/dist/stores/dynamic-content.js +2 -2
  53. package/dist/stores/editor.js +2 -3
  54. package/dist/stores/onboarding.js +27 -27
  55. package/dist/stores/preview.js +1 -1
  56. package/dist/stores/recommendation.js +3 -3
  57. package/dist/stores/save-as-template.js +2 -2
  58. package/dist/stores/toaster.js +1 -1
  59. package/dist/stores/unsubscribe.js +1 -1
  60. package/dist/stores/version-history.js +4 -4
  61. package/dist/utils/dateUtil.js +3 -24
  62. package/dist/utils/genericUtil.js +11 -23
  63. package/package.json +5 -5
  64. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +0 -28
  65. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +0 -38
  66. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +0 -17
  67. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +0 -37
  68. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +0 -20
  69. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +0 -44
  70. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +0 -17
  71. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +0 -27
  72. package/dist/composables/useBlocksConfig.js +0 -49
  73. package/dist/config/migrator/recommendationMigrator.js +0 -293
  74. package/dist/enums/date.js +0 -6
  75. package/dist/enums/extensions/recommendationBlock.js +0 -80
  76. package/dist/extensions/Blocks/Recommendation/block.js +0 -30
  77. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  78. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  79. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  80. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  81. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  82. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  83. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  84. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  85. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  86. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  87. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  88. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  89. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  90. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  91. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  92. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  93. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  94. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  95. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  96. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  97. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  98. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  99. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  100. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  101. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  102. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  103. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  104. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  105. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  106. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  107. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  108. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  109. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  110. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  111. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  112. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  113. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  114. package/dist/extensions/Blocks/Recommendation/extension.js +0 -45
  115. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +0 -51
  116. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +0 -19
  117. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +0 -117
  118. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +0 -266
  119. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  120. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  121. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  122. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +0 -28
  123. package/dist/extensions/Blocks/common-control.js +0 -184
  124. package/dist/services/recommendationApi.js +0 -43
  125. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -19
  126. package/dist/src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +0 -2
  127. package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +0 -2
  128. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +0 -16
  129. package/dist/src/composables/useBlocksConfig.d.ts +0 -11
  130. package/dist/src/config/migrator/recommendationMigrator.d.ts +0 -1
  131. package/dist/src/enums/date.d.ts +0 -4
  132. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -16
  133. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -11
  134. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  135. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -51
  136. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  137. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  138. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  139. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  140. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  141. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  142. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  143. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  144. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  145. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  146. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  147. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  148. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  149. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  150. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  151. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  152. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  153. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  154. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  155. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  156. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  157. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  158. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  159. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  160. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  161. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  162. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  163. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  164. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  165. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  166. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  167. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  168. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  169. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  170. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  171. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -2
  172. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +0 -4
  173. package/dist/src/extensions/Blocks/Recommendation/settingsPanel.d.ts +0 -4
  174. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +0 -555
  175. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  176. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +0 -16
  177. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  178. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +0 -7
  179. package/dist/src/extensions/Blocks/common-control.d.ts +0 -87
  180. package/dist/src/mock/api/recommendation.d.ts +0 -2
  181. package/dist/src/services/recommendationApi.d.ts +0 -6
  182. package/dist/src/utils/environmentUtil.d.ts +0 -5
  183. package/dist/utils/environmentUtil.js +0 -4
@@ -1,293 +0,0 @@
1
- var h = Object.defineProperty;
2
- var T = (A, e, t) => e in A ? h(A, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : A[e] = t;
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";
6
- class w {
7
- constructor() {
8
- m(this, "parser");
9
- this.parser = new DOMParser();
10
- }
11
- migrate(e) {
12
- try {
13
- const t = this.parser.parseFromString(e, "text/html"), s = t.querySelectorAll(
14
- 'td.ins-recommendation-v3-block-1, td.product-block[esd-handler-name*="EmailRecommendationV3"]'
15
- );
16
- return s.length === 0 ? e : (s.forEach((o) => {
17
- const l = o.getAttribute("id"), r = this.extractBgColor(o), i = this.extractTitle(o), u = this.extractProductRows(o), c = P.replace("{-{-TITLE-}-}", i).replace("{-{-PRODUCT_ROWS-}-}", u), a = this.parser.parseFromString(
18
- `<table id="tempDoc"><tbody><tr>${c}</tr></tbody></table>`,
19
- "text/html"
20
- ).querySelector(".ins-recommendation-v3-block-v2");
21
- a && o.parentNode && (l && a.setAttribute("id", l), r && a.setAttribute("bgcolor", r), o.parentNode.replaceChild(a, o));
22
- }), t.documentElement.outerHTML);
23
- } catch (t) {
24
- return console.error("RecommendationMigrator failed:", t), e;
25
- }
26
- }
27
- /**
28
- * Extracts background color from old block
29
- * @param block - The old recommendation block element
30
- * @returns The background color value or empty string
31
- */
32
- extractBgColor(e) {
33
- const t = e.getAttribute("bgcolor");
34
- if (t)
35
- return t.trim();
36
- const s = e.getAttribute("style");
37
- if (s) {
38
- const o = s.match(/background-color\s*:\s*([^;]+)/i);
39
- if (o && o[1])
40
- return o[1].trim();
41
- }
42
- return "";
43
- }
44
- /**
45
- * Extracts background color from product card wrapper element
46
- * @param cardElement - The product card TD element
47
- * @returns The background color value or empty string
48
- */
49
- extractCardBgColor(e) {
50
- const t = e.getAttribute("bgcolor");
51
- if (t)
52
- return t.trim();
53
- const s = e.getAttribute("style");
54
- if (s) {
55
- const o = s.match(/background-color\s*:\s*([^;]+)/i);
56
- if (o && o[1])
57
- return o[1].trim();
58
- }
59
- return "";
60
- }
61
- /**
62
- * Extracts title from old block and converts to new structure
63
- * @param block - The old recommendation block element
64
- * @returns HTML string for the title block
65
- */
66
- extractTitle(e) {
67
- var a, g;
68
- const t = e.querySelector(".ext-recommendation-title");
69
- if (!t)
70
- return this.buildTitleBlock({
71
- text: "You May Also Like!",
72
- isBold: !0,
73
- isItalic: !1,
74
- align: "center",
75
- styles: "font-size: 28px; color: #333333;"
76
- });
77
- const s = t.querySelector("p");
78
- if (!s) {
79
- const p = ((a = t.textContent) == null ? void 0 : a.trim()) || "You May Also Like!", b = t.getAttribute("align") || "center";
80
- return this.buildTitleBlock({
81
- text: p,
82
- isBold: !0,
83
- isItalic: !1,
84
- align: b,
85
- styles: "font-size: 28px; color: #333333;"
86
- });
87
- }
88
- const o = ((g = s.textContent) == null ? void 0 : g.trim()) || "You May Also Like!", l = t.getAttribute("align") || s.getAttribute("align") || "center", r = s.getAttribute("style") || "", i = /font-weight\s*:\s*bold/i.test(r) || !!s.querySelector("b, strong"), u = /font-style\s*:\s*italic/i.test(r) || !!s.querySelector("i, em"), c = this.removeStyleProperties(r, ["font-weight", "font-style"]), n = this.convertInlineToBlock(c);
89
- return this.buildTitleBlock({
90
- text: o,
91
- isBold: i,
92
- isItalic: u,
93
- align: l,
94
- styles: n
95
- });
96
- }
97
- /**
98
- * Extracts product configuration from old block and generates new product rows
99
- * @param block - The old recommendation block element
100
- * @returns HTML string for product rows
101
- */
102
- extractProductRows(e) {
103
- const t = this.extractProductConfig(e);
104
- if (!t)
105
- return console.warn("[RecommendationMigrator] No product config found, using defaults"), this.generateProductRows(6, 3, {});
106
- const { totalCount: s, productsPerRow: o } = t, l = this.extractProductStyles(e);
107
- return this.generateProductRows(s, o, l);
108
- }
109
- /**
110
- * Extracts Stripo padding/margin utility classes from a class string
111
- * @param classString - Space-separated class string from element
112
- * @returns Filtered Stripo utility classes as a space-separated string
113
- */
114
- extractStripoClasses(e) {
115
- return e ? e.split(/\s+/).filter((o) => /^es-(p\d+|m[-\d])/.test(o)).join(" ") : "";
116
- }
117
- /**
118
- * Extracts product configuration from old block
119
- * @param block - The old recommendation block element
120
- * @returns Object with totalCount and productsPerRow, or null if parsing fails
121
- */
122
- extractProductConfig(e) {
123
- const t = e.getAttribute("esd-dev-product-config");
124
- if (!t)
125
- return null;
126
- try {
127
- const s = this.unescapeJsonString(t), o = JSON.parse(s);
128
- return {
129
- totalCount: o.totalCount ?? 6,
130
- productsPerRow: o.rowCount ?? 3
131
- };
132
- } catch (s) {
133
- return console.error("[RecommendationMigrator] Failed to parse product config:", s), console.error(
134
- "[RecommendationMigrator] Error details:",
135
- s instanceof Error ? s.message : String(s)
136
- ), null;
137
- }
138
- }
139
- /**
140
- * Decodes HTML entities from JSON string
141
- * @param text - The encoded string
142
- * @returns Decoded string
143
- */
144
- unescapeJsonString(e) {
145
- return e.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&#x27;/g, "'").replace(/&quot;/g, '"').replace(/\\\\"/g, "'");
146
- }
147
- /**
148
- * Generates product rows using prepareProductRows with default product data
149
- * @param totalCount - Total number of products to display
150
- * @param productsPerRow - Number of products in each row
151
- * @param extractedStyles - Styles extracted from old product elements
152
- * @returns HTML string for product rows with applied styles
153
- */
154
- generateProductRows(e, t, s) {
155
- const o = q(), l = [];
156
- for (let i = 0; i < e; i++) {
157
- const u = o[i % o.length];
158
- l.push({ ...u });
159
- }
160
- let r = S(l, t);
161
- return r = this.applyExtractedStyles(r, s), r;
162
- }
163
- /**
164
- * Extracts styles from old product elements
165
- * @param block - The old recommendation block element
166
- * @returns Object with extracted styles for each element type
167
- */
168
- extractProductStyles(e) {
169
- const t = {}, s = e.querySelector(".product-card");
170
- if (!s)
171
- return console.warn("[RecommendationMigrator] No product card found, using default styles"), t;
172
- const o = this.extractCardBgColor(s);
173
- o && (t.cardBgColor = o);
174
- const l = s.querySelector(".ext-product-image");
175
- if (l) {
176
- const n = l.querySelector("img"), a = n == null ? void 0 : n.getAttribute("width"), g = l.getAttribute("style") || "", p = l.getAttribute("align") || "center", b = l.getAttribute("class") || "", d = this.extractStripoClasses(b);
177
- t.imageWidth = a || "120", t.imageAlign = p, t.imageTdStyle = g, t.imageClasses = d;
178
- }
179
- const r = s.querySelector(".ext-product-name");
180
- if (r) {
181
- const n = r.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = r.getAttribute("align") || "center", p = r.getAttribute("style") || "", b = r.getAttribute("class") || "", d = this.extractStripoClasses(b);
182
- t.nameStyle = a, t.nameAlign = g, t.nameTdStyle = p, t.nameClasses = d;
183
- }
184
- const i = s.querySelector(".ext-product-price");
185
- if (i) {
186
- const n = i.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = i.getAttribute("align") || "center", p = i.getAttribute("style") || "", b = i.getAttribute("class") || "", d = this.extractStripoClasses(b);
187
- t.priceStyle = a, t.priceAlign = g, t.priceTdStyle = p, t.priceClasses = d;
188
- }
189
- const u = s.querySelector(".ext-product-original-price");
190
- if (u) {
191
- const n = u.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = u.getAttribute("align") || "center", p = u.getAttribute("style") || "", b = u.getAttribute("class") || "", d = this.extractStripoClasses(b);
192
- t.oldPriceStyle = a, t.oldPriceAlign = g, t.oldPriceTdStyle = p, t.oldPriceClasses = d;
193
- }
194
- const c = s.querySelector(".ext-product-button");
195
- if (c) {
196
- const n = c.querySelector(".es-button-border"), a = c.querySelector("a.es-button"), g = (n == null ? void 0 : n.getAttribute("style")) || "", p = (a == null ? void 0 : a.getAttribute("style")) || "", b = c.getAttribute("align") || "center", d = c.getAttribute("style") || "", f = c.getAttribute("class") || "", C = this.extractStripoClasses(f), y = ((c == null ? void 0 : c.textContent) || "").trim();
197
- t.buttonBorderStyle = g, t.buttonLinkStyle = p, t.buttonAlign = b, t.buttonTdStyle = d, t.buttonClasses = C, t.buttonText = y;
198
- }
199
- return t;
200
- }
201
- /**
202
- * Applies extracted styles to the generated HTML
203
- * @param html - The generated HTML from prepareProductRows
204
- * @param extractedStyles - Styles extracted from old product elements
205
- * @returns HTML with applied styles
206
- */
207
- applyExtractedStyles(e, t) {
208
- if (!t || Object.keys(t).length === 0)
209
- return e;
210
- const s = this.parser.parseFromString(`<table>${e}</table>`, "text/html");
211
- t.cardBgColor && s.querySelectorAll(".product-attribute-cell").forEach((r) => {
212
- r.setAttribute("bgcolor", t.cardBgColor);
213
- }), (t.imageWidth || t.imageAlign || t.imageTdStyle || t.imageClasses) && s.querySelectorAll(".product-image").forEach((r) => {
214
- if (t.imageAlign && r.setAttribute("align", t.imageAlign), t.imageTdStyle && r.setAttribute("style", t.imageTdStyle), t.imageClasses) {
215
- const c = `${r.getAttribute("class") || ""} ${t.imageClasses}`.trim();
216
- r.setAttribute("class", c);
217
- }
218
- const i = r.querySelector("img");
219
- i && t.imageWidth && i.setAttribute("width", t.imageWidth);
220
- }), (t.nameStyle || t.nameAlign || t.nameTdStyle || t.nameClasses) && s.querySelectorAll(".product-name").forEach((r) => {
221
- if (t.nameAlign && r.setAttribute("align", t.nameAlign), t.nameTdStyle && r.setAttribute("style", t.nameTdStyle), t.nameClasses) {
222
- const c = `${r.getAttribute("class") || ""} ${t.nameClasses}`.trim();
223
- r.setAttribute("class", c);
224
- }
225
- const i = r.querySelector("p");
226
- i && t.nameStyle && i.setAttribute("style", t.nameStyle);
227
- }), (t.priceStyle || t.priceAlign || t.priceTdStyle || t.priceClasses) && s.querySelectorAll(".product-price").forEach((r) => {
228
- if (t.priceAlign && r.setAttribute("align", t.priceAlign), t.priceTdStyle && r.setAttribute("style", t.priceTdStyle), t.priceClasses) {
229
- const c = `${r.getAttribute("class") || ""} ${t.priceClasses}`.trim();
230
- r.setAttribute("class", c);
231
- }
232
- const i = r.querySelector("p");
233
- i && t.priceStyle && i.setAttribute("style", t.priceStyle);
234
- }), (t.oldPriceStyle || t.oldPriceAlign || t.oldPriceTdStyle || t.oldPriceClasses) && s.querySelectorAll(".product-old-price").forEach((r) => {
235
- if (t.oldPriceAlign && r.setAttribute("align", t.oldPriceAlign), t.oldPriceTdStyle && r.setAttribute("style", t.oldPriceTdStyle), t.oldPriceClasses) {
236
- const c = `${r.getAttribute("class") || ""} ${t.oldPriceClasses}`.trim();
237
- r.setAttribute("class", c);
238
- }
239
- const i = r.querySelector("p");
240
- i && t.oldPriceStyle && i.setAttribute("style", t.oldPriceStyle);
241
- }), (t.buttonBorderStyle || t.buttonLinkStyle || t.buttonAlign || t.buttonTdStyle || t.buttonClasses) && s.querySelectorAll(".product-button").forEach((r) => {
242
- if (t.buttonAlign && r.setAttribute("align", t.buttonAlign), t.buttonTdStyle && r.setAttribute("style", t.buttonTdStyle), t.buttonClasses) {
243
- const n = `${r.getAttribute("class") || ""} ${t.buttonClasses}`.trim();
244
- r.setAttribute("class", n);
245
- }
246
- const i = r.querySelector(".es-button-border");
247
- i && t.buttonBorderStyle && i.setAttribute("style", t.buttonBorderStyle);
248
- const u = r.querySelector("a.es-button");
249
- u && (t.buttonLinkStyle && u.setAttribute("style", t.buttonLinkStyle), t.buttonText && (u.textContent = t.buttonText));
250
- });
251
- const o = s.querySelector("table");
252
- return (o == null ? void 0 : o.innerHTML) || e;
253
- }
254
- /**
255
- * Builds title block with proper structure
256
- */
257
- buildTitleBlock(e) {
258
- let t = e.text;
259
- e.isBold && e.isItalic ? t = `<strong path="1,0"><em path="1,0,0">${t}</em></strong>` : e.isBold ? t = `<strong path="1,0">${t}</strong>` : e.isItalic && (t = `<em path="1,0">${t}</em>`);
260
- const s = e.align ? ` align="${e.align}"` : "", o = e.styles ? ` style="${e.styles}"` : "";
261
- return `
262
- <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r"${s}>
263
- <p path="1"${o}>
264
- ${t}
265
- </p>
266
- </td>
267
- `;
268
- }
269
- /**
270
- * Removes specified style properties from a style string
271
- */
272
- removeStyleProperties(e, t) {
273
- return e ? t.reduce((o, l) => {
274
- const r = new RegExp(`${l}\\s*:\\s*[^;]*;?`, "gi");
275
- return o.replace(r, "");
276
- }, e).replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim() : "";
277
- }
278
- /**
279
- * Converts inline display to block display
280
- */
281
- convertInlineToBlock(e) {
282
- if (!e)
283
- return "";
284
- let t = e.replace(/display\s*:\s*inline/gi, "display: block");
285
- return /display\s*:/i.test(t) || (t = t ? `${t}; display: block` : "display: block"), t.replace(/;\s*;/g, ";").replace(/^;|;$/g, "").replace(/"/g, "'").trim();
286
- }
287
- }
288
- function k(A) {
289
- return new w().migrate(A);
290
- }
291
- export {
292
- k as migrateRecommendation
293
- };
@@ -1,6 +0,0 @@
1
- const t = "tr-TR", T = "default", L = "UTC";
2
- export {
3
- T as DEFAULT,
4
- t as DEFAULT_LOCALE,
5
- L as DEFAULT_TZ
6
- };
@@ -1,80 +0,0 @@
1
- const s = {
2
- RECOMMENDATION_API_URL: "http://recommendationv2.api.useinsider.com"
3
- }, i = [
4
- { id: 11, key: "similarViewed", name: "Viewed Together", path: "viewed-together" },
5
- { id: 12, key: "similarBought", name: "Purchased Together", path: "purchased-together" },
6
- { id: 13, key: "userBased", name: "User Based", path: "user-based" },
7
- { id: 36, key: "highestDiscounted", name: "Highest Discounted Items", path: "highest-discounted" },
8
- { id: 38, key: "manualMerchandising", name: "Manual Merchandising", path: "manual-merchandising" },
9
- { id: 39, key: "newArrivals", name: "New Arrivals", path: "new-arrivals" },
10
- { id: 40, key: "trendingProducts", name: "Trending Products", path: "trending" },
11
- { id: 46, key: "mostValuableOfPartner", name: "Most Valuable Products", path: "most-valuable" },
12
- { id: 61, key: "mostPopular", name: "Most Popular Items", path: "most-popular" },
13
- { id: 62, key: "mostPurchased", name: "Top Sellers", path: "top-sellers" }
14
- ], u = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], l = [
15
- { text: "after the amount", value: "1" },
16
- { text: "before the amount", value: "0" }
17
- ], c = [
18
- { text: "dot(.)", value: "." },
19
- { text: "comma(,)", value: "," }
20
- ], d = [
21
- { text: "0", value: "0" },
22
- { text: "1", value: "1" },
23
- { text: "2", value: "2" },
24
- { text: "3", value: "3" },
25
- { text: "4", value: "4" },
26
- { text: "5", value: "5" }
27
- ], e = [
28
- { text: "is exactly", value: "=" },
29
- { text: "contains", value: "~" },
30
- { text: "does not contain", value: "!~" },
31
- { text: "any of", value: "||" }
32
- ], a = [
33
- { text: "is exactly", value: "=" },
34
- { text: "is not exactly", value: "!==" },
35
- { text: "contains", value: "~" },
36
- { text: "does not contain", value: "!~" },
37
- { text: "any of", value: "||" }
38
- ], r = [
39
- { text: "is equal to", value: "=" },
40
- { text: "is greater than", value: ">" },
41
- { text: "is less than", value: "<" }
42
- ], o = [
43
- { text: "is equal to", value: "=" },
44
- { text: "after", value: ">" },
45
- { text: "before", value: "<" }
46
- ], n = [
47
- { text: "true", value: "==" },
48
- { text: "false", value: "!=" }
49
- ], p = (t) => {
50
- if (!t)
51
- return e;
52
- switch (t) {
53
- case "Boolean":
54
- return n;
55
- case "Date":
56
- return o;
57
- case "Number":
58
- return r;
59
- case "String":
60
- return e;
61
- case "Strings":
62
- return a;
63
- default:
64
- return e;
65
- }
66
- };
67
- export {
68
- u as PriceAttributes,
69
- i as RecommendationFeedSourceMaps,
70
- s as URLS,
71
- d as currencyDecimalCounts,
72
- l as currencyLocationMaps,
73
- c as currencyOperators,
74
- p as getOperatorOptions,
75
- a as operatorOptionsForArrayOfStrings,
76
- n as operatorOptionsForBooleans,
77
- o as operatorOptionsForDates,
78
- r as operatorOptionsForNumbers,
79
- e as operatorOptionsForStrings
80
- };
@@ -1,30 +0,0 @@
1
- import { Block as e, BlockCompositionType as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { getDefaultTemplate as o } from "./templates/blockTemplate.js";
3
- const n = "recommendation-block";
4
- class m extends e {
5
- constructor() {
6
- super();
7
- }
8
- getId() {
9
- return n;
10
- }
11
- getIcon() {
12
- return "recommendation-icon";
13
- }
14
- getBlockCompositionType() {
15
- return t.CONTAINER;
16
- }
17
- getName() {
18
- return this.api.translate("Recommendation Block");
19
- }
20
- getDescription() {
21
- return this.api.translate("Recommendation Block Title Description");
22
- }
23
- getTemplate() {
24
- return o();
25
- }
26
- }
27
- export {
28
- n as BLOCK_ID,
29
- m as RecommendationBlock
30
- };
@@ -1,103 +0,0 @@
1
- var m = Object.defineProperty;
2
- var y = (n, o, i) => o in n ? m(n, o, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[o] = i;
3
- var a = (n, o, i) => y(n, typeof o != "symbol" ? o + "" : o, i);
4
- import { ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as b } from "../common-control.js";
6
- const h = "ui-elements-recommendation-card-composition", s = [
7
- { key: "productImage", label: "Product Image", visible: !0 },
8
- { key: "productName", label: "Product Name", visible: !0 },
9
- { key: "productPrice", label: "Product Price", visible: !0 },
10
- { key: "productOriginalPrice", label: "Product Original Price", visible: !0 },
11
- { key: "productButton", label: "Product Button", visible: !0 }
12
- ];
13
- class g extends b {
14
- constructor() {
15
- super(...arguments);
16
- a(this, "currentComposition", []);
17
- a(this, "currentVisibility", {});
18
- }
19
- getId() {
20
- return h;
21
- }
22
- getTemplate() {
23
- const i = s.map((e) => ({
24
- key: e.key,
25
- label: e.label,
26
- content: `
27
- <div style="display: flex; align-items: center; justify-content: space-between;
28
- padding: 8px; gap: 8px;">
29
- <span style="flex: 1;">${e.label}</span>
30
- ${this._GuToggle(`visibility_${e.key}`)}
31
- </div>
32
- `
33
- }));
34
- return `
35
- <div class="container">
36
- ${this._GuLabel({ text: "Card Element Order & Visibility" })}
37
- ${this._GuOrderable("cardComposition", i)}
38
- </div>
39
- `;
40
- }
41
- onRender() {
42
- this._initializeComposition(), this.api.onValueChanged("cardComposition", (i) => {
43
- this.currentComposition = i, this._applyCompositionToBlock(i);
44
- }), s.forEach((i) => {
45
- this.api.onValueChanged(`visibility_${i.key}`, (e) => {
46
- this.currentVisibility[i.key] = e, this._applyVisibilityToBlock();
47
- });
48
- });
49
- }
50
- onTemplateNodeUpdated(i) {
51
- super.onTemplateNodeUpdated(i), this._initializeComposition();
52
- }
53
- /**
54
- * Initialize the composition order and visibility from the block or use defaults
55
- */
56
- _initializeComposition() {
57
- var p;
58
- const i = (p = this.currentNode) == null ? void 0 : p.querySelector(".ins-recommendation-v3-block-v2");
59
- let e = null, l = null;
60
- if (i && "getAttribute" in i && (e = i.getAttribute("data-card-composition"), l = i.getAttribute("data-card-visibility")), e) {
61
- const t = e.split(",").filter(Boolean), r = s.map((c) => c.key);
62
- t.every((c) => r.includes(c)) && t.length > 0 ? this.currentComposition = t : this.currentComposition = r;
63
- } else
64
- this.currentComposition = s.map((t) => t.key);
65
- if (l)
66
- try {
67
- const t = JSON.parse(l);
68
- this.currentVisibility = t;
69
- } catch {
70
- this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
71
- }
72
- else
73
- this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
74
- const d = {
75
- cardComposition: this.currentComposition
76
- };
77
- s.forEach((t) => {
78
- d[`visibility_${t.key}`] = this.currentVisibility[t.key] ?? !0;
79
- }), this.api.updateValues(d);
80
- }
81
- /**
82
- * Apply the reordered composition to the block's HTML structure
83
- */
84
- _applyCompositionToBlock(i) {
85
- if (!this.currentNode)
86
- return;
87
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
88
- e && this.api.getDocumentModifier().modifyHtml(e).setAttribute("data-card-composition", i.join(",")).apply(new u("Stored card composition order"));
89
- }
90
- /**
91
- * Apply visibility changes to the block's HTML structure
92
- */
93
- _applyVisibilityToBlock() {
94
- if (!this.currentNode)
95
- return;
96
- const i = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
97
- i && this.api.getDocumentModifier().modifyHtml(i).setAttribute("data-card-visibility", JSON.stringify(this.currentVisibility)).apply(new u("Stored card visibility settings"));
98
- }
99
- }
100
- export {
101
- h as COMPOSITION_CONTROL_BLOCK_ID,
102
- g as RecommendationCardCompositionControl
103
- };
@@ -1,5 +0,0 @@
1
- var o = /* @__PURE__ */ ((c) => (c.BUTTON = "recommendation-block-button", c.NAME = "recommendation-block-name", c.PRICE = "recommendation-block-price", c.OLD_PRICE = "recommendation-block-old-price", c.IMAGE = "recommendation-block-image", c))(o || {}), r = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c))(r || {});
2
- export {
3
- o as RecommendationBlockId,
4
- r as RecommendationControlId
5
- };