@useinsider/guido 2.2.0-beta.d819452 → 2.2.0-beta.eeefcc3

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 (200) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +70 -65
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  6. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  7. package/dist/composables/useActionsApi.js +15 -13
  8. package/dist/composables/useBlocksConfig.js +26 -16
  9. package/dist/composables/useHtmlValidator.js +114 -104
  10. package/dist/composables/useRecommendation.js +54 -21
  11. package/dist/composables/useStripo.js +25 -23
  12. package/dist/composables/useVersionHistoryApi.js +1 -1
  13. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  14. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  15. package/dist/config/i18n/en/index.js +11 -0
  16. package/dist/config/i18n/en/labels.json.js +7 -0
  17. package/dist/config/i18n/en/toasters.json.js +56 -0
  18. package/dist/config/i18n/en/tooltips.json.js +82 -0
  19. package/dist/config/i18n/index.js +7 -0
  20. package/dist/config/migrator/itemsBlockMigrator.js +142 -120
  21. package/dist/config/migrator/recommendationMigrator.js +2 -2
  22. package/dist/enums/defaults.js +8 -4
  23. package/dist/enums/extensions/recommendationBlock.js +1 -1
  24. package/dist/enums/recommendation.js +16 -15
  25. package/dist/extensions/Blocks/Items/block.js +19 -28
  26. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  27. package/dist/extensions/Blocks/Items/controls/cardComposition.js +124 -85
  28. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  29. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  30. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  31. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  32. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  33. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  34. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  35. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  36. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  37. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  38. package/dist/extensions/Blocks/Items/extension.js +8 -9
  39. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  40. package/dist/extensions/Blocks/Items/template.js +181 -175
  41. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  42. package/dist/extensions/Blocks/Recommendation/block.js +133 -9
  43. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  44. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  45. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
  46. package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
  47. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextAfterControl.js → omnibusDiscount/textAfter.js} +16 -14
  67. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextBeforeControl.js → omnibusDiscount/textBefore.js} +16 -14
  68. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextAfterControl.js → omnibusPrice/textAfter.js} +16 -14
  70. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextBeforeControl.js → omnibusPrice/textBefore.js} +14 -12
  71. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  73. package/dist/extensions/Blocks/Recommendation/extension.js +40 -17
  74. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  75. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  76. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  77. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +21 -10
  78. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
  79. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  80. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  81. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  82. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  83. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  84. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  85. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  86. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  87. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  88. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +26 -15
  89. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  90. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  91. package/dist/extensions/Blocks/common-control.js +91 -92
  92. package/dist/extensions/Blocks/controlFactories.js +125 -93
  93. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  94. package/dist/guido.css +1 -1
  95. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +317 -193
  96. package/dist/package.json.js +1 -1
  97. package/dist/services/recommendationApi.js +11 -8
  98. package/dist/services/stripoApi.js +20 -17
  99. package/dist/services/templateLibraryApi.js +16 -13
  100. package/dist/src/@types/config/schemas.d.ts +8 -0
  101. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  102. package/dist/src/composables/useConfig.d.ts +4 -0
  103. package/dist/src/composables/useRecommendation.d.ts +1 -0
  104. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  105. package/dist/src/config/i18n/en/index.d.ts +1 -0
  106. package/dist/src/config/i18n/index.d.ts +16 -0
  107. package/dist/src/enums/defaults.d.ts +4 -0
  108. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  109. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  110. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  111. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  112. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  113. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  114. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  115. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  116. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  117. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  118. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  119. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  120. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  121. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  122. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  123. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +0 -24
  124. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  125. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  126. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
  127. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  130. package/dist/src/extensions/Blocks/Recommendation/{cardCompositionControl.d.ts → controls/cardComposition/index.d.ts} +23 -3
  131. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +21 -589
  133. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  136. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  137. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
  138. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  139. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  140. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  141. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
  142. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  143. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  144. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  145. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  146. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  147. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  148. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  149. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  150. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  151. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  152. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  153. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  154. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  155. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  156. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  157. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  158. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  159. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  160. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  161. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
  162. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  163. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  164. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  165. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  166. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  167. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
  168. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  169. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  170. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  171. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  172. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  173. package/dist/src/stores/config.d.ts +36 -0
  174. package/dist/static/styles/components/notification.css.js +19 -0
  175. package/dist/static/styles/components/tools.css.js +6 -2
  176. package/dist/static/styles/components/version-history.css.js +10 -2
  177. package/dist/static/styles/components/wide-panel.css.js +18 -2
  178. package/dist/static/styles/customEditorStyle.css.js +35 -11
  179. package/dist/static/styles/variables.css.js +2 -0
  180. package/dist/static/templates/empty/index.html.js +74 -0
  181. package/dist/static/templates/empty/style.css.js +779 -0
  182. package/dist/utils/pairProductVariables.js +57 -56
  183. package/dist/utils/templatePreparation.js +15 -14
  184. package/package.json +2 -2
  185. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  186. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -187
  187. package/dist/extensions/Blocks/Recommendation/constants.js +0 -13
  188. package/dist/extensions/Blocks/Recommendation/control.js +0 -336
  189. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
  190. package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -245
  191. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
  192. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
  193. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -181
  194. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -189
  195. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -209
  196. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  197. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -38
  198. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
  199. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  200. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -52
@@ -1,209 +0,0 @@
1
- import { ATTR_PRODUCT_IMAGE as h, ATTR_PRODUCT_NAME as C, ATTR_PRODUCT_OLD_PRICE as D, ATTR_PRODUCT_PRICE as b, ATTR_PRODUCT_OMNIBUS_PRICE as P, ATTR_PRODUCT_OMNIBUS_DISCOUNT as U, ATTR_PRODUCT_BUTTON as N } from "../constants.js";
2
- const E = {
3
- TITLE: "You May Also Like!"
4
- }, I = `
5
- <tr>
6
- <td class="spacer" style="height: 10px;"></td>
7
- </tr>
8
- `, A = `
9
- <tr class="recommendation-product-row">
10
- <td>
11
- <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
12
- {-{-PRODUCTS-}-}
13
- </table>
14
- </td>
15
- </tr>
16
- `, o = `
17
- <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
18
- <table
19
- width="100%"
20
- height="100%"
21
- cellpadding="0"
22
- cellspacing="0"
23
- border="0"
24
- class="product-card-wrapper">
25
- <tr>
26
- <td
27
- class="product-attribute-cell"
28
- valign="top">
29
- <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
30
- <tbody>
31
- {-{-PRODUCT_CONTENT-}-}
32
- </tbody>
33
- </table>
34
- </td>
35
- </tr>
36
- </table>
37
- </td>
38
- `, Y = [
39
- h,
40
- C,
41
- D,
42
- b,
43
- P,
44
- U,
45
- N
46
- ], S = {
47
- [h]: !0,
48
- [C]: !0,
49
- [b]: !0,
50
- [D]: !0,
51
- [P]: !1,
52
- [U]: !1,
53
- [N]: !0
54
- };
55
- function M() {
56
- return [
57
- {
58
- name: "Product Name",
59
- image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
60
- price: { USD: 18 },
61
- original_price: { USD: 20 },
62
- discount: { USD: 2 },
63
- url: "https://example.com/product/1",
64
- item_id: "1",
65
- in_stock: 1,
66
- locale: "en",
67
- product_attributes: {},
68
- category: []
69
- },
70
- {
71
- name: "Belt",
72
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
73
- price: { TRY: 55 },
74
- original_price: { TRY: 65 },
75
- discount: { TRY: 10 },
76
- url: "https://example.com/product/2",
77
- item_id: "2",
78
- in_stock: 1,
79
- locale: "tr",
80
- product_attributes: {},
81
- category: []
82
- },
83
- {
84
- name: "Beanie",
85
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
86
- price: { TRY: 18 },
87
- original_price: { TRY: 20 },
88
- discount: { TRY: 2 },
89
- url: "https://example.com/product/3",
90
- item_id: "3",
91
- in_stock: 1,
92
- locale: "tr",
93
- product_attributes: {},
94
- category: []
95
- },
96
- {
97
- name: "Album",
98
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
99
- price: { TRY: 15 },
100
- original_price: { TRY: 15 },
101
- discount: { TRY: 0 },
102
- url: "https://example.com/product/4",
103
- item_id: "4",
104
- in_stock: 1,
105
- locale: "tr",
106
- product_attributes: {},
107
- category: []
108
- },
109
- {
110
- name: "Flying Ninja with a very long product name",
111
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
112
- price: { TRY: 12 },
113
- original_price: { TRY: 15 },
114
- discount: { TRY: 3 },
115
- url: "https://example.com/product/5",
116
- item_id: "5",
117
- in_stock: 1,
118
- locale: "tr",
119
- product_attributes: {},
120
- category: []
121
- },
122
- {
123
- name: "Single",
124
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
125
- price: { TRY: 22555 },
126
- original_price: { TRY: 33989 },
127
- discount: { TRY: 11434 },
128
- url: "https://example.com/product/6",
129
- item_id: "6",
130
- in_stock: 1,
131
- locale: "tr",
132
- product_attributes: {},
133
- category: []
134
- }
135
- ];
136
- }
137
- function f(a, r, e, l = Y) {
138
- const s = (100 / r).toFixed(2), p = [];
139
- for (let i = 0; i < a.length; i += r)
140
- p.push(a.slice(i, i + r));
141
- let c = "";
142
- return p.forEach((i, w) => {
143
- w > 0 && (c += I);
144
- let n = "", u = "", d = "", T = "", m = "", _ = "", g = "";
145
- i.forEach((t) => {
146
- n += o.replace(
147
- "{-{-PRODUCT_CONTENT-}-}",
148
- e.productImage(t)
149
- ), u += o.replace(
150
- "{-{-PRODUCT_CONTENT-}-}",
151
- e.productName(t)
152
- ), d += o.replace(
153
- "{-{-PRODUCT_CONTENT-}-}",
154
- e.productPrice(t)
155
- ), T += o.replace(
156
- "{-{-PRODUCT_CONTENT-}-}",
157
- e.productOldPrice(t)
158
- ), m += o.replace(
159
- "{-{-PRODUCT_CONTENT-}-}",
160
- e.productOmnibusPrice(t)
161
- ), _ += o.replace(
162
- "{-{-PRODUCT_CONTENT-}-}",
163
- e.productOmnibusDiscount(t)
164
- ), g += o.replace(
165
- "{-{-PRODUCT_CONTENT-}-}",
166
- e.productButton(t)
167
- );
168
- });
169
- const R = {
170
- productImage: n,
171
- productName: u,
172
- productPrice: d,
173
- productOldPrice: T,
174
- productOmnibusPrice: m,
175
- productOmnibusDiscount: _,
176
- productButton: g
177
- }, y = l.filter((t) => !!R[t]).map((t) => {
178
- const O = S[t] ?? !0;
179
- return `
180
- <tr class="recommendation-attribute-row"
181
- data-attribute-type="${t}"
182
- data-visibility="${O ? "1" : "0"}"${O ? "" : ' style="display: none;"'}>
183
- ${R[t]}
184
- </tr>
185
- `;
186
- }).join("");
187
- c += A.replace("{-{-PRODUCTS-}-}", y);
188
- }), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${s}%`);
189
- }
190
- function j(a, r, e, l, s = E.TITLE, p) {
191
- const c = f(
192
- r,
193
- e,
194
- l,
195
- p
196
- );
197
- return a.replace("{-{-TITLE-}-}", s).replace("{-{-PRODUCT_ROWS-}-}", c);
198
- }
199
- export {
200
- E as DEFAULTS,
201
- Y as DEFAULT_CARD_COMPOSITION,
202
- S as DEFAULT_CARD_VISIBILITY,
203
- j as generateTemplate,
204
- M as getDefaultProducts,
205
- f as prepareProductRows,
206
- o as productCardWrapper,
207
- A as productRow,
208
- I as spacer
209
- };
@@ -1,45 +0,0 @@
1
- import type { OrientationType, ProductType } from '@@/Types/extensions/items';
2
- interface ItemsBlockState {
3
- itemsType: ProductType;
4
- itemIds: string;
5
- imageLink: string;
6
- buttonLink: string;
7
- orientation: OrientationType;
8
- nameTrimming: boolean;
9
- hideDiscount: boolean;
10
- currencySymbol: string;
11
- currencyLocation: string;
12
- formattedPrice: boolean;
13
- singlePrice: boolean;
14
- priceOrientation: 'vertical' | 'horizontal';
15
- templateData: {
16
- imageSrc: string;
17
- name: string;
18
- price: string;
19
- originalPrice: string;
20
- quantity: string;
21
- button: string;
22
- };
23
- }
24
- export declare const useItemsBlockStore: import("pinia").StoreDefinition<"guidoItemsBlock", ItemsBlockState, {}, {
25
- setItemsType(itemsType: ProductType): void;
26
- setItemIds(itemIds: string): void;
27
- setImageLink(imageLink: string): void;
28
- setButtonLink(buttonLink: string): void;
29
- setOrientation(orientation: OrientationType): void;
30
- setNameTrimming(nameTrimming: boolean): void;
31
- setHideDiscount(hideDiscount: boolean): void;
32
- setCurrencySymbol(currencySymbol: string): void;
33
- setCurrencyLocation(currencyLocation: string): void;
34
- setFormattedPrice(formattedPrice: boolean): void;
35
- setSinglePrice(singlePrice: boolean): void;
36
- setPriceOrientation(priceOrientation: "vertical" | "horizontal"): void;
37
- setTemplateData(templateData: ItemsBlockState["templateData"]): void;
38
- updateFromAttributes(attributes: {
39
- itemsType?: string;
40
- itemIds?: string;
41
- orientation?: string;
42
- }): void;
43
- reset(): void;
44
- }>;
45
- export {};
@@ -1,38 +0,0 @@
1
- import { CommonControl } from '../common-control';
2
- export declare const CONTROL_BLOCK_ID = "ui-elements-recommendation-block";
3
- export declare class RecommendationBlockControl extends CommonControl {
4
- private store;
5
- private storeUnsubscription;
6
- private addFilterListener;
7
- private addFilterButton;
8
- getId(): string;
9
- getTemplate(): string;
10
- onRender(): Promise<void>;
11
- onDestroy(): void;
12
- _setFormValues(): void;
13
- _initializeSelectItems(): void;
14
- _getAlgorithms(): string;
15
- _getLanguages(): string;
16
- _getCurrency(): string;
17
- _getProductLayout(): string;
18
- _getFilterStatus(): string;
19
- _getShuffleProducts(): string;
20
- _onFilterSelectClick(): void;
21
- _onDataChange(item: string, value: string | number | string[]): void;
22
- /**
23
- * Get the current card composition from block data attribute or use default
24
- */
25
- _getCardComposition(): string[];
26
- _regenerateProductRows(): void;
27
- /**
28
- * Reapply spacing values after product regeneration
29
- * This ensures spacing persists when products are regenerated
30
- */
31
- _reapplySpacing(): void;
32
- _debouncedRegenerateProductRows: import("@vueuse/shared").PromisifyFn<() => void>;
33
- _onCurrencyConfigChange(item: string, value: string | number): void;
34
- _onCurrencyChange(value: string): void;
35
- _setProductIdsVisibility(): void;
36
- _listenToFormUpdates(): void;
37
- _listenStateUpdates(): void;
38
- }
@@ -1,16 +0,0 @@
1
- import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
- import { CommonControl } from '../../common-control';
3
- /**
4
- * Control for enabling/disabling text trimming on product names
5
- * When enabled, adds a CSS class that applies text-overflow: ellipsis
6
- */
7
- export declare class NameTextTrimControl extends CommonControl {
8
- getId(): string;
9
- getTemplate(): string;
10
- onRender(): void;
11
- onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
12
- _setFormValues(): void;
13
- _getCurrentTrimState(): boolean;
14
- _onTextTrimChange(enabled: boolean): void;
15
- _listenToFormUpdates(): void;
16
- }
@@ -1,16 +0,0 @@
1
- import type { RecommendationProduct } from '@@/Types/recommendation';
2
- import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY } from './templateUtils';
3
- declare const blockTemplate = "\n <td align=\"left\" class=\"ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <BLOCK_TEXT\n class=\"es-p10t es-p10b es-p20l es-p20r\"\n align=\"center\">\n <p path=\"1\" style=\"font-size: 28px; color: #333333;\">\n <strong path=\"1,0\">{-{-TITLE-}-}</strong>\n </p>\n </BLOCK_TEXT>\n </tbody>\n </table>\n </td>\n </tr>\n \n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
4
- export declare function getDefaultTemplate(): string;
5
- /**
6
- * Generates a custom template with specified products and layout
7
- * @param products - Array of products to display
8
- * @param productsPerRow - Number of products per row
9
- * @param title - Optional title for the block
10
- * @param composition - Optional array defining order of card elements
11
- * @returns Complete HTML template
12
- */
13
- export declare function generateBlockTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
14
- export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
15
- export { DEFAULTS, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY, getDefaultProducts, };
16
- export default blockTemplate;
@@ -1,52 +0,0 @@
1
- import type { RecommendationProduct } from '@@/Types/recommendation';
2
- import { ATTR_PRODUCT_IMAGE, ATTR_PRODUCT_NAME, ATTR_PRODUCT_PRICE, ATTR_PRODUCT_OLD_PRICE, ATTR_PRODUCT_OMNIBUS_PRICE, ATTR_PRODUCT_OMNIBUS_DISCOUNT, ATTR_PRODUCT_BUTTON } from '../constants';
3
- export interface ElementRenderer {
4
- [ATTR_PRODUCT_IMAGE]: (product: RecommendationProduct) => string;
5
- [ATTR_PRODUCT_NAME]: (product: RecommendationProduct) => string;
6
- [ATTR_PRODUCT_PRICE]: (product: RecommendationProduct) => string;
7
- [ATTR_PRODUCT_OLD_PRICE]: (product: RecommendationProduct) => string;
8
- [ATTR_PRODUCT_OMNIBUS_PRICE]: (product: RecommendationProduct) => string;
9
- [ATTR_PRODUCT_OMNIBUS_DISCOUNT]: (product: RecommendationProduct) => string;
10
- [ATTR_PRODUCT_BUTTON]: (product: RecommendationProduct) => string;
11
- }
12
- export interface TemplateConfig {
13
- spacer: string;
14
- blockTemplate: string;
15
- productRow: string;
16
- productCardWrapper: string;
17
- elementRenderer: ElementRenderer;
18
- }
19
- export declare const DEFAULTS: {
20
- TITLE: string;
21
- DESCRIPTION: string;
22
- };
23
- export declare const spacer = "\n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n";
24
- export declare const productRow = "\n <tr class=\"recommendation-product-row\">\n <td>\n <table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n {-{-PRODUCTS-}-}\n </table>\n </td>\n </tr>\n";
25
- export declare const productCardWrapper = "\n <td width=\"{-{-COLUMN_WIDTH-}-}\" style=\"padding: 0 5px;\" valign=\"top\" height=\"100%\">\n <table\n width=\"100%\"\n height=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n class=\"product-card-wrapper\">\n <tr>\n <td\n class=\"product-attribute-cell\"\n valign=\"top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n {-{-PRODUCT_CONTENT-}-}\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
26
- export declare const DEFAULT_CARD_COMPOSITION: string[];
27
- /**
28
- * Default visibility settings for card composition elements
29
- * Omnibus Price and Omnibus Discount are hidden by default
30
- */
31
- export declare const DEFAULT_CARD_VISIBILITY: Record<string, boolean>;
32
- export declare function getDefaultProducts(): RecommendationProduct[];
33
- /**
34
- * Core template generation logic that works with any element renderer
35
- * @param products - Array of products to display
36
- * @param productsPerRow - Number of products per row
37
- * @param elementRenderer - Object with methods to render each product element
38
- * @param composition - Optional array defining order of card elements
39
- * @returns HTML string for product rows
40
- */
41
- export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
42
- /**
43
- * Generates complete HTML template with dynamic products and layout
44
- * @param blockTemplate - The base block template string
45
- * @param products - Array of products to display
46
- * @param productsPerRow - Number of products per row
47
- * @param elementRenderer - Element renderer for generating product HTML
48
- * @param title - Title for the block
49
- * @param composition - Optional array defining order of card elements
50
- * @returns Complete HTML template
51
- */
52
- export declare function generateTemplate(blockTemplate: string, products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, title?: string, composition?: string[]): string;