@useinsider/guido 2.1.0-beta.11a9204 → 2.1.0-beta.1859c19

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 (148) hide show
  1. package/README.md +0 -36
  2. package/dist/@types/config/schemas.js +65 -70
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +58 -69
  5. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +14 -15
  6. package/dist/composables/useBlocksConfig.js +16 -26
  7. package/dist/composables/useHtmlValidator.js +104 -114
  8. package/dist/composables/useRecommendation.js +21 -54
  9. package/dist/config/compiler/recommendationCompilerRules.js +39 -45
  10. package/dist/config/migrator/itemsBlockMigrator.js +97 -101
  11. package/dist/config/migrator/recommendationMigrator.js +2 -2
  12. package/dist/enums/defaults.js +4 -8
  13. package/dist/enums/extensions/recommendationBlock.js +1 -1
  14. package/dist/enums/recommendation.js +15 -16
  15. package/dist/extensions/Blocks/Recommendation/block.js +9 -133
  16. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +187 -0
  17. package/dist/extensions/Blocks/Recommendation/constants.js +13 -0
  18. package/dist/extensions/Blocks/Recommendation/control.js +336 -0
  19. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  20. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  21. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  22. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscount/textAfter.js → omnibusDiscountTextAfterControl.js} +14 -16
  23. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscount/textBefore.js → omnibusDiscountTextBeforeControl.js} +14 -16
  24. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPrice/textAfter.js → omnibusPriceTextAfterControl.js} +14 -16
  25. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPrice/textBefore.js → omnibusPriceTextBeforeControl.js} +12 -14
  26. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  27. package/dist/extensions/Blocks/Recommendation/extension.js +17 -40
  28. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +3 -19
  29. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +4 -13
  30. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +10 -21
  31. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +207 -254
  32. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +181 -0
  33. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +189 -0
  34. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +209 -0
  35. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  36. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +15 -26
  37. package/dist/extensions/Blocks/controlFactories.js +93 -125
  38. package/dist/guido.css +1 -1
  39. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +193 -317
  40. package/dist/services/recommendationApi.js +8 -11
  41. package/dist/services/templateLibraryApi.js +13 -16
  42. package/dist/src/@types/config/schemas.d.ts +0 -8
  43. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  44. package/dist/src/composables/useConfig.d.ts +0 -4
  45. package/dist/src/composables/useRecommendation.d.ts +0 -1
  46. package/dist/src/enums/defaults.d.ts +0 -4
  47. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -67
  48. package/dist/src/extensions/Blocks/Recommendation/{controls/cardComposition/index.d.ts → cardCompositionControl.d.ts} +3 -23
  49. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +24 -0
  50. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +38 -0
  51. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +589 -21
  52. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  53. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  54. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +468 -138
  55. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  56. package/dist/src/extensions/Blocks/Recommendation/templates/{grid/migration.d.ts → migrationTemplate.d.ts} +4 -11
  57. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +52 -0
  58. package/dist/src/stores/config.d.ts +0 -36
  59. package/dist/static/styles/components/version-history.css.js +2 -10
  60. package/dist/static/styles/components/wide-panel.css.js +2 -3
  61. package/dist/static/styles/customEditorStyle.css.js +11 -35
  62. package/dist/utils/pairProductVariables.js +56 -57
  63. package/dist/utils/templatePreparation.js +14 -15
  64. package/package.json +1 -1
  65. package/dist/config/compiler/utils/recommendationCompilerUtils.js +0 -121
  66. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  67. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  68. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +0 -66
  69. package/dist/extensions/Blocks/Recommendation/constants/layout.js +0 -22
  70. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -21
  71. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  72. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -80
  73. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -232
  74. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  75. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -92
  76. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +0 -102
  77. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +0 -209
  78. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +0 -52
  79. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -250
  80. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +0 -70
  81. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +0 -160
  82. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +0 -67
  83. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +0 -307
  84. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +0 -21
  85. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  86. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -108
  87. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  88. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  89. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  90. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  91. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -222
  92. package/dist/extensions/Blocks/Recommendation/services/configService.js +0 -240
  93. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +0 -228
  94. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +0 -251
  95. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +0 -66
  96. package/dist/extensions/Blocks/Recommendation/templates/index.js +0 -12
  97. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +0 -169
  98. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +0 -73
  99. package/dist/extensions/Blocks/Recommendation/templates/utils.js +0 -134
  100. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +0 -6
  101. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +0 -29
  102. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +0 -46
  103. package/dist/extensions/ModulesTabIcons/extension.js +0 -17
  104. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +0 -17
  105. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  106. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -49
  107. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -13
  108. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +0 -41
  109. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -35
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  111. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -31
  112. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  113. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -37
  114. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -29
  115. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +0 -52
  116. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +0 -22
  117. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -79
  118. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +0 -24
  119. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -60
  120. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -23
  121. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +0 -221
  122. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +0 -29
  123. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  124. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -34
  125. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  126. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  127. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  128. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  129. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  130. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  131. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  132. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  133. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -83
  134. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +0 -151
  135. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +0 -6
  136. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +0 -20
  137. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +0 -33
  138. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +0 -41
  139. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +0 -8
  140. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +0 -25
  141. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +0 -18
  142. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +0 -66
  143. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +0 -7
  144. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -166
  145. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +0 -33
  146. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +0 -113
  147. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +0 -77
  148. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +0 -2
@@ -1,251 +0,0 @@
1
- import { ATTR_PRODUCT_BUTTON as s, ATTR_PRODUCT_OMNIBUS_DISCOUNT as d, ATTR_PRODUCT_OMNIBUS_PRICE as c, ATTR_PRODUCT_OLD_PRICE as o, ATTR_PRODUCT_PRICE as i, ATTR_PRODUCT_NAME as r, ATTR_PRODUCT_IMAGE as p } from "../../constants/selectors.js";
2
- import { prepareGridProductRows as b } from "./template.js";
3
- const u = `
4
- <td
5
- align="left"
6
- esd-extension-block-id="recommendation-block"
7
- esd-handler-name="esd-extension-RecommendationBlock"
8
- class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20"
9
- >
10
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
11
- <tr>
12
- <td align="center">
13
- <table
14
- class="container"
15
- width="100%"
16
- cellpadding="0"
17
- cellspacing="0"
18
- border="0">
19
- <tbody>
20
- <tr>
21
- <td>
22
- <table
23
- width="100%"
24
- cellpadding="0"
25
- cellspacing="0"
26
- border="0">
27
- <tbody>
28
- <tr>
29
- {-{-TITLE-}-}
30
- </tr>
31
- </tbody>
32
- </table>
33
- </td>
34
- </tr>
35
- <tr>
36
- <td class="spacer" style="height: 20px;"></td>
37
- </tr>
38
- <tr>
39
- <td>
40
- <table
41
- class="ins-recommendation-product-container"
42
- width="100%"
43
- cellpadding="0"
44
- cellspacing="0"
45
- border="0"
46
- >
47
- {-{-PRODUCT_ROWS-}-}
48
- </table>
49
- </td>
50
- </tr>
51
- </tbody>
52
- </table>
53
- </td>
54
- </tr>
55
- </table>
56
- </td>
57
- `, e = "0 5px", a = "attribute-cell", g = {
58
- [p]: (t) => `
59
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
60
- <table
61
- class="product-card-segment"
62
- width="100%"
63
- height="100%"
64
- cellpadding="0"
65
- cellspacing="0"
66
- border="0">
67
- <tr>
68
- <td
69
- class="esd-block-image product-image"
70
- esd-extension-block-id="recommendation-block-image"
71
- align="center"
72
- style="font-size: 0px;">
73
- <a target="_blank" href="${t.url}">
74
- <img
75
- src="${t.image_url}"
76
- alt="${t.name}"
77
- width="120"
78
- style="display: block; max-width: 100%; height: auto;"
79
- class="adapt-img">
80
- </a>
81
- </td>
82
- </tr>
83
- </table>
84
- </td>
85
- `,
86
- [r]: (t) => `
87
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
88
- <table
89
- class="product-card-segment"
90
- width="100%"
91
- height="100%"
92
- cellpadding="0"
93
- cellspacing="0"
94
- border="0">
95
- <tr>
96
- <td
97
- class="esd-block-text product-name"
98
- esd-extension-block-id="recommendation-block-name"
99
- align="center">
100
- <p
101
- path="1"
102
- contenteditable="false"
103
- style="font-size: 16px; color: #333333; font-weight: 600; text-align: center;">
104
- <strong path="1,0">${t.name}</strong>
105
- </p>
106
- </td>
107
- </tr>
108
- </table>
109
- </td>
110
- `,
111
- [i]: () => `
112
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
113
- <table
114
- class="product-card-segment"
115
- width="100%"
116
- height="100%"
117
- cellpadding="0"
118
- cellspacing="0"
119
- border="0">
120
- <tr>
121
- <td
122
- class="esd-block-text product-price"
123
- esd-extension-block-id="recommendation-block-price"
124
- align="center">
125
- <p
126
- path="1"
127
- contenteditable="false"
128
- style="font-size: 16px; color: #333333; font-weight: bold; text-align: center;">
129
- <strong path="1,0">18,00 TRY</strong>
130
- </p>
131
- </td>
132
- </tr>
133
- </table>
134
- </td>
135
- `,
136
- [o]: () => `
137
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
138
- <table
139
- class="product-card-segment"
140
- width="100%"
141
- height="100%"
142
- cellpadding="0"
143
- cellspacing="0"
144
- border="0">
145
- <tr>
146
- <td
147
- class="esd-block-text product-old-price"
148
- esd-extension-block-id="recommendation-block-old-price"
149
- align="center">
150
- <p
151
- path="1"
152
- contenteditable="false"
153
- style="font-size: 14px; color: #999999; text-decoration: line-through; text-align: center;">
154
- <s path="1,0">20,00 TRY</s>
155
- </p>
156
- </td>
157
- </tr>
158
- </table>
159
- </td>
160
- `,
161
- [c]: () => `
162
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
163
- <table
164
- class="product-card-segment"
165
- width="100%"
166
- height="100%"
167
- cellpadding="0"
168
- cellspacing="0"
169
- border="0">
170
- <tr>
171
- <td
172
- class="esd-block-text product-omnibus-price"
173
- esd-extension-block-id="recommendation-block-omnibus-price"
174
- data-text-before="Lowest 30-day price: "
175
- data-text-after=""
176
- align="center">
177
- <p
178
- path="1"
179
- contenteditable="false"
180
- style="font-size: 14px; color: #666666; text-align: center;"><span
181
- class="omnibus-text-before">Lowest 30-day price: </span><span
182
- class="omnibus-price-value">17,00 TRY</span><span
183
- class="omnibus-text-after"></span></p>
184
- </td>
185
- </tr>
186
- </table>
187
- </td>
188
- `,
189
- [d]: () => `
190
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
191
- <table
192
- class="product-card-segment"
193
- width="100%"
194
- height="100%"
195
- cellpadding="0"
196
- cellspacing="0"
197
- border="0">
198
- <tr>
199
- <td
200
- class="esd-block-text product-omnibus-discount"
201
- esd-extension-block-id="recommendation-block-omnibus-discount"
202
- data-text-before=""
203
- data-text-after=""
204
- align="center">
205
- <p
206
- path="1"
207
- contenteditable="false"
208
- style="font-size: 14px; color: #666666; text-align: center;"><span
209
- class="omnibus-text-before"></span><span
210
- class="omnibus-discount-value">-6%</span><span
211
- class="omnibus-text-after"></span></p>
212
- </td>
213
- </tr>
214
- </table>
215
- </td>
216
- `,
217
- [s]: (t) => `
218
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
219
- <table
220
- class="product-card-segment"
221
- width="100%"
222
- height="100%"
223
- cellpadding="0"
224
- cellspacing="0"
225
- border="0">
226
- <tr>
227
- <td
228
- class="esd-block-button product-button"
229
- esd-extension-block-id="recommendation-block-button"
230
- align="center">
231
- <span class="es-button-border" style="display: block;">
232
- <a
233
- href="${t.url}"
234
- target="_blank"
235
- class="es-button">
236
- {-{-PRODUCT_BUTTON_TEXT-}-}
237
- </a>
238
- </span>
239
- </td>
240
- </tr>
241
- </table>
242
- </td>
243
- `
244
- };
245
- function T(t, l, n) {
246
- return b(t, l, g, n);
247
- }
248
- export {
249
- u as default,
250
- T as prepareProductRows
251
- };
@@ -1,66 +0,0 @@
1
- import { DEFAULT_PRODUCTS_PER_ROW as m, DEFAULT_MOBILE_CARDS_IN_ROW as I } from "../../constants/layout.js";
2
- import { DEFAULT_CARD_COMPOSITION as _, spacer as E, getDefaultProducts as S, createBlockTemplate as A, DEFAULTS as b, DEFAULT_CARD_VISIBILITY as D } from "../utils.js";
3
- import { gridElementRenderer as w, ATTRIBUTE_CELL_CLASS as C, DEFAULT_CELL_PADDING as f } from "./elementRenderer.js";
4
- const O = `
5
- <tr class="recommendation-product-row">
6
- <td>
7
- <table
8
- width="100%"
9
- height="100%"
10
- cellpadding="0"
11
- cellspacing="0"
12
- border="0"
13
- class="product-card-wrapper"
14
- style="table-layout: fixed;">
15
- <tbody>
16
- {-{-ATTRIBUTE_ROWS-}-}
17
- </tbody>
18
- </table>
19
- </td>
20
- </tr>
21
- `, U = `
22
- <tr
23
- class="recommendation-attribute-row"
24
- data-attribute-type="{-{-ATTR_TYPE-}-}"
25
- data-visibility="{-{-VISIBILITY-}-}"
26
- {-{-DISPLAY_STYLE-}-}>
27
- {-{-CELLS-}-}
28
- </tr>
29
- `;
30
- function g(t, e, r, n = _) {
31
- const c = (100 / e).toFixed(2), s = e - t.length, o = `<td class="${C}" style="padding: ${f};" width="${c}%"></td>`, i = s > 0 ? o.repeat(s) : "";
32
- return n.filter((l) => r[l]).map((l) => {
33
- const p = D[l] ?? !0, T = p ? "" : 'style="display: none;"', u = t.map((R) => {
34
- const L = r[l];
35
- return L(R).replace("<td", `<td width="${c}%"`);
36
- }).join("");
37
- return U.replace("{-{-ATTR_TYPE-}-}", l).replace("{-{-VISIBILITY-}-}", p ? "1" : "0").replace("{-{-DISPLAY_STYLE-}-}", T).replace("{-{-CELLS-}-}", u + i);
38
- }).join("");
39
- }
40
- function P(t, e, r, n) {
41
- const c = [];
42
- for (let o = 0; o < t.length; o += e)
43
- c.push(t.slice(o, o + e));
44
- return c.map((o, i) => {
45
- const a = g(
46
- o,
47
- e,
48
- r,
49
- n
50
- ), l = O.replace("{-{-ATTRIBUTE_ROWS-}-}", a);
51
- return i > 0 ? E + l : l;
52
- }).join("");
53
- }
54
- function d(t, e, r) {
55
- return P(t, e, w, r);
56
- }
57
- function W(t) {
58
- const e = t ? `ins-recommendation-v3-block-${t}` : void 0, r = A("grid", e), n = S(), c = d(n, m), s = d(n, I);
59
- return r.replace("{-{-TITLE-}-}", b.TITLE).replace("{-{-PRODUCT_ROWS-}-}", c).replace("{-{-MOBILE_PRODUCT_ROWS-}-}", s);
60
- }
61
- export {
62
- W as getDefaultTemplate,
63
- g as prepareGridAttributeRows,
64
- P as prepareGridProductRows,
65
- d as prepareProductRows
66
- };
@@ -1,12 +0,0 @@
1
- import { DEFAULT_PRODUCTS_PER_ROW as s } from "../constants/layout.js";
2
- import { prepareProductRows as R } from "./grid/template.js";
3
- import { prepareProductRows as c } from "./list/template.js";
4
- function a(r, o, p = {}) {
5
- if (o === "list")
6
- return c(r);
7
- const { productsPerRow: t = s, composition: e } = p;
8
- return R(r, t, e);
9
- }
10
- export {
11
- a as prepareProductRows
12
- };
@@ -1,169 +0,0 @@
1
- import { RecommendationBlockId as o } from "../../constants/blockIds.js";
2
- import { ATTR_PRODUCT_BUTTON as l, ATTR_PRODUCT_IMAGE as d, ATTR_PRODUCT_OMNIBUS_DISCOUNT as u, ATTR_PRODUCT_OMNIBUS_PRICE as m, ATTR_PRODUCT_OLD_PRICE as g, ATTR_PRODUCT_PRICE as f, ATTR_PRODUCT_NAME as x } from "../../constants/selectors.js";
3
- import { useRecommendationExtensionStore as T } from "../../store/recommendation.js";
4
- import { formatPrice as _ } from "../../utils/priceFormatter.js";
5
- import { sanitizeImageUrl as y } from "../utils.js";
6
- function p() {
7
- const t = T(), { currencySettings: e } = t.recommendationConfigs;
8
- return {
9
- code: e.value,
10
- symbol: e.symbol,
11
- alignment: e.alignment === "0" ? "before" : "after",
12
- decimalCount: parseInt(e.decimalCount) || 2,
13
- decimalSeparator: e.decimalSeparator,
14
- thousandSeparator: e.thousandSeparator
15
- };
16
- }
17
- function s(t, e = "price") {
18
- const n = p(), r = t[e], a = (r == null ? void 0 : r[n.code]) ?? Object.values(r ?? {})[0] ?? 0;
19
- return _({
20
- price: a,
21
- currency: n
22
- });
23
- }
24
- const $ = {
25
- /**
26
- * Image cell - left column (120px fixed width)
27
- * Has recommendation-attribute-row class and data attributes for Card Composition control
28
- */
29
- [d]: (t) => `
30
- <td
31
- width="120"
32
- class="esd-block-image product-image-cell recommendation-attribute-row es-p5"
33
- esd-extension-block-id="${o.IMAGE}"
34
- data-attribute-type="${d}"
35
- data-visibility="1"
36
- align="center"
37
- valign="middle">
38
- <a target="_blank" href="${t.url}">
39
- <img
40
- src="${y(t.image_url)}"
41
- alt="${t.name}"
42
- style="display: block; max-width: 100%; height: auto;"
43
- class="adapt-img product-image">
44
- </a>
45
- </td>
46
- `,
47
- /**
48
- * Name element - row for info cell table
49
- */
50
- [x]: (t) => `
51
- <tr>
52
- <td
53
- class="esd-block-text product-name"
54
- esd-extension-block-id="${o.NAME}"
55
- align="left">
56
- <p contenteditable="false" style="font-size: 16px; color: #333333; font-weight: 600; margin: 0;">
57
- <strong>${t.name}</strong>
58
- </p>
59
- </td>
60
- </tr>
61
- `,
62
- /**
63
- * Price element - row for info cell table
64
- */
65
- [f]: (t) => `
66
- <tr>
67
- <td
68
- class="esd-block-text product-price"
69
- esd-extension-block-id="${o.PRICE}"
70
- align="left">
71
- <p contenteditable="false" style="font-size: 16px; color: #333333; font-weight: bold; margin: 0;">
72
- <strong>${s(t, "price")}</strong>
73
- </p>
74
- </td>
75
- </tr>
76
- `,
77
- /**
78
- * Old price element - row for info cell table
79
- */
80
- [g]: (t) => `
81
- <tr>
82
- <td
83
- class="esd-block-text product-old-price"
84
- esd-extension-block-id="${o.OLD_PRICE}"
85
- align="left">
86
- <p
87
- contenteditable="false"
88
- style="font-size: 14px; color: #999999; text-decoration: line-through; margin: 0;">
89
- <strong>${s(t, "original_price")}</strong>
90
- </p>
91
- </td>
92
- </tr>
93
- `,
94
- /**
95
- * Omnibus price element - row for info cell table
96
- */
97
- [m]: (t) => `
98
- <tr>
99
- <td
100
- class="esd-block-text product-omnibus-price"
101
- data-text-before="Lowest 30-day price: "
102
- data-text-after=""
103
- esd-extension-block-id="${o.OMNIBUS_PRICE}"
104
- align="left">
105
- <p style="font-size: 12px; color: #666666; margin: 0;">
106
- <span class="omnibus-text-before">Lowest 30-day price: </span>
107
- <span class="omnibus-price-value">${s(t, "original_price")}</span>
108
- <span class="omnibus-text-after"></span>
109
- </p>
110
- </td>
111
- </tr>
112
- `,
113
- /**
114
- * Omnibus discount element - row for info cell table
115
- */
116
- [u]: (t) => {
117
- var i, c;
118
- const e = p(), n = ((i = t.original_price) == null ? void 0 : i[e.code]) ?? Object.values(t.original_price ?? {})[0] ?? 0, r = ((c = t.price) == null ? void 0 : c[e.code]) ?? Object.values(t.price ?? {})[0] ?? 0, a = n > 0 ? Math.round((n - r) / n * 100) : 0, b = a > 0 ? `-${a}%` : "0%";
119
- return `
120
- <tr>
121
- <td
122
- class="esd-block-text product-omnibus-discount"
123
- data-text-before=""
124
- data-text-after=""
125
- esd-extension-block-id="${o.OMNIBUS_DISCOUNT}"
126
- align="left">
127
- <p style="font-size: 12px; color: #666666; margin: 0;">
128
- <span class="omnibus-text-before"></span>
129
- <span class="omnibus-discount-value">${b}</span>
130
- <span class="omnibus-text-after"></span>
131
- </p>
132
- </td>
133
- </tr>
134
- `;
135
- },
136
- /**
137
- * Button cell - right column (100px fixed width)
138
- * Has recommendation-attribute-row class and data attributes for Card Composition control
139
- */
140
- [l]: (t) => `
141
- <td
142
- width="100"
143
- class="esd-block-button button-cell recommendation-attribute-row product-button es-p5l es-p5r"
144
- esd-extension-block-id="${o.BUTTON}"
145
- data-attribute-type="${l}"
146
- data-visibility="1"
147
- align="center"
148
- valign="middle">
149
- <span
150
- class="es-button-border"
151
- style="
152
- border-width: 1px;
153
- background: rgb(217, 234, 211);
154
- border-color: rgb(106, 168, 79);
155
- ">
156
- <a
157
- href="${t.url}"
158
- target="_blank"
159
- class="es-button buy-button"
160
- style="color: rgb(56, 118, 29); background: rgb(217, 234, 211); padding: 5px 30px;">
161
- Buy
162
- </a>
163
- </span>
164
- </td>
165
- `
166
- };
167
- export {
168
- $ as listElementRenderer
169
- };
@@ -1,73 +0,0 @@
1
- import { ATTR_PRODUCT_IMAGE as E, ATTR_PRODUCT_NAME as l, ATTR_PRODUCT_OLD_PRICE as c, ATTR_PRODUCT_PRICE as a, ATTR_PRODUCT_OMNIBUS_PRICE as d, ATTR_PRODUCT_OMNIBUS_DISCOUNT as T, ATTR_PRODUCT_BUTTON as N } from "../../constants/selectors.js";
2
- import { spacer as $, DEFAULT_CARD_VISIBILITY as o } from "../utils.js";
3
- import { listElementRenderer as e } from "./elementRenderer.js";
4
- const f = `
5
- <tr class="recommendation-product-row">
6
- <td style="padding: 0 5px;">
7
- <table
8
- width="100%"
9
- cellpadding="0"
10
- cellspacing="0"
11
- border="0"
12
- class="product-card-wrapper">
13
- <tbody>
14
- <tr>
15
- {-{-PRODUCT_CONTENT-}-}
16
- </tr>
17
- </tbody>
18
- </table>
19
- </td>
20
- </tr>
21
- `;
22
- function V(t) {
23
- const r = e[E](t), s = o[l], i = o[c], R = o[a], C = o[d], b = o[T], n = (w, A, p) => {
24
- const I = p ? "" : ' style="display: none;"', g = w.replace(/<tr>/, "").replace(/<\/tr>/, "");
25
- return `<tr
26
- class="recommendation-attribute-row"
27
- data-attribute-type="${A}"
28
- data-visibility="${p ? "1" : "0"}"${I}>${g}</tr>`;
29
- }, m = n(
30
- e[l](t),
31
- l,
32
- s
33
- ), _ = n(
34
- e[c](t),
35
- c,
36
- i
37
- ), O = n(
38
- e[a](t),
39
- a,
40
- R
41
- ), P = n(
42
- e[d](t),
43
- d,
44
- C
45
- ), u = n(
46
- e[T](t),
47
- T,
48
- b
49
- ), D = `
50
- <td class="product-info-cell" valign="middle" style="padding: 15px;">
51
- <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
52
- <tbody>
53
- ${m}
54
- ${_}
55
- ${O}
56
- ${P}
57
- ${u}
58
- </tbody>
59
- </table>
60
- </td>
61
- `, U = e[N](t), y = r + D + U;
62
- return f.replace("{-{-PRODUCT_CONTENT-}-}", y);
63
- }
64
- function M(t) {
65
- return t.map((r, s) => {
66
- const i = V(r);
67
- return s > 0 ? $ + i : i;
68
- }).join("");
69
- }
70
- export {
71
- V as getListProductCard,
72
- M as prepareProductRows
73
- };