@useinsider/guido 2.2.0-beta.8abc7b6 → 2.2.0-beta.953ff70

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 (133) hide show
  1. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +14 -15
  2. package/dist/composables/useHtmlValidator.js +104 -114
  3. package/dist/composables/useRecommendation.js +21 -54
  4. package/dist/config/compiler/recommendationCompilerRules.js +39 -45
  5. package/dist/config/migrator/itemsBlockMigrator.js +97 -101
  6. package/dist/config/migrator/recommendationMigrator.js +2 -2
  7. package/dist/enums/extensions/recommendationBlock.js +1 -1
  8. package/dist/enums/recommendation.js +15 -16
  9. package/dist/extensions/Blocks/Recommendation/block.js +9 -133
  10. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +187 -0
  11. package/dist/extensions/Blocks/Recommendation/constants.js +13 -0
  12. package/dist/extensions/Blocks/Recommendation/control.js +336 -0
  13. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  14. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  15. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  16. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscount/textAfter.js → omnibusDiscountTextAfterControl.js} +14 -16
  17. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscount/textBefore.js → omnibusDiscountTextBeforeControl.js} +14 -16
  18. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPrice/textAfter.js → omnibusPriceTextAfterControl.js} +14 -16
  19. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPrice/textBefore.js → omnibusPriceTextBeforeControl.js} +12 -14
  20. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  21. package/dist/extensions/Blocks/Recommendation/extension.js +17 -40
  22. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +3 -19
  23. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +4 -13
  24. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +10 -21
  25. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +207 -254
  26. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +181 -0
  27. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +189 -0
  28. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +209 -0
  29. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  30. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +15 -26
  31. package/dist/extensions/Blocks/controlFactories.js +93 -125
  32. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +186 -242
  33. package/dist/services/recommendationApi.js +8 -11
  34. package/dist/services/templateLibraryApi.js +13 -16
  35. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  36. package/dist/src/composables/useRecommendation.d.ts +0 -1
  37. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -67
  38. package/dist/src/extensions/Blocks/Recommendation/{controls/cardComposition/index.d.ts → cardCompositionControl.d.ts} +3 -23
  39. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +24 -0
  40. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +38 -0
  41. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +589 -21
  42. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  43. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  44. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +468 -138
  45. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  46. package/dist/src/extensions/Blocks/Recommendation/templates/{grid/migration.d.ts → migrationTemplate.d.ts} +4 -11
  47. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +52 -0
  48. package/dist/static/styles/customEditorStyle.css.js +11 -35
  49. package/dist/utils/pairProductVariables.js +56 -57
  50. package/dist/utils/templatePreparation.js +14 -15
  51. package/package.json +1 -1
  52. package/dist/config/compiler/utils/recommendationCompilerUtils.js +0 -121
  53. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  54. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  55. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +0 -66
  56. package/dist/extensions/Blocks/Recommendation/constants/layout.js +0 -22
  57. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -21
  58. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  59. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -80
  60. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -232
  61. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  62. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -92
  63. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +0 -102
  64. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +0 -209
  65. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +0 -52
  66. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -250
  67. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +0 -70
  68. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +0 -160
  69. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +0 -67
  70. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +0 -307
  71. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +0 -21
  72. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  73. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -108
  74. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  75. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  76. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  77. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  78. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -222
  79. package/dist/extensions/Blocks/Recommendation/services/configService.js +0 -240
  80. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +0 -228
  81. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +0 -251
  82. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +0 -66
  83. package/dist/extensions/Blocks/Recommendation/templates/index.js +0 -12
  84. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +0 -169
  85. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +0 -73
  86. package/dist/extensions/Blocks/Recommendation/templates/utils.js +0 -134
  87. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +0 -6
  88. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +0 -29
  89. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +0 -46
  90. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +0 -17
  91. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  92. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -49
  93. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -13
  94. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +0 -41
  95. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -35
  96. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  97. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -31
  98. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  99. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -37
  100. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -29
  101. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +0 -52
  102. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +0 -22
  103. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -79
  104. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +0 -24
  105. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -60
  106. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -23
  107. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +0 -221
  108. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +0 -29
  109. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  110. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -34
  111. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  112. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  113. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  114. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  115. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  116. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  117. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  118. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  119. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -83
  120. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +0 -151
  121. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +0 -6
  122. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +0 -20
  123. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +0 -33
  124. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +0 -41
  125. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +0 -8
  126. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +0 -25
  127. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +0 -18
  128. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +0 -66
  129. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +0 -7
  130. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -166
  131. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +0 -33
  132. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +0 -113
  133. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +0 -77
@@ -0,0 +1,181 @@
1
+ import { BlockType as e, BlockAttr as o } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationBlockId as s, ATTR_PRODUCT_BUTTON as r, ATTR_PRODUCT_OMNIBUS_DISCOUNT as c, ATTR_PRODUCT_OMNIBUS_PRICE as p, ATTR_PRODUCT_OLD_PRICE as i, ATTR_PRODUCT_PRICE as d, ATTR_PRODUCT_NAME as T, ATTR_PRODUCT_IMAGE as b } from "../constants.js";
3
+ import { generateTemplate as _, prepareProductRows as O, spacer as u, DEFAULTS as f, getDefaultProducts as C } from "./templateUtils.js";
4
+ import { DEFAULT_CARD_COMPOSITION as I, DEFAULT_CARD_VISIBILITY as h } from "./templateUtils.js";
5
+ const g = `
6
+ <td align="left" class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20">
7
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
8
+ <tr>
9
+ <td align="center">
10
+ <table
11
+ class="container"
12
+ width="100%"
13
+ cellpadding="0"
14
+ cellspacing="0"
15
+ border="0">
16
+ <tbody>
17
+ <tr>
18
+ <td>
19
+ <table
20
+ width="100%"
21
+ cellpadding="0"
22
+ cellspacing="0"
23
+ border="0">
24
+ <tbody>
25
+ <${e.BLOCK_TEXT}
26
+ class="es-p10t es-p10b es-p20l es-p20r"
27
+ align="center">
28
+ <p path="1" style="font-size: 28px; color: #333333;">
29
+ <strong path="1,0">{-{-TITLE-}-}</strong>
30
+ </p>
31
+ </${e.BLOCK_TEXT}>
32
+ </tbody>
33
+ </table>
34
+ </td>
35
+ </tr>
36
+ ${u}
37
+ <tr>
38
+ <td>
39
+ <table
40
+ class="ins-recommendation-product-container"
41
+ width="100%"
42
+ cellpadding="0"
43
+ cellspacing="0"
44
+ border="0"
45
+ >
46
+ {-{-PRODUCT_ROWS-}-}
47
+ </table>
48
+ </td>
49
+ </tr>
50
+ </tbody>
51
+ </table>
52
+ </td>
53
+ </tr>
54
+ </table>
55
+ </td>
56
+ `, n = {
57
+ [b]: (t) => `
58
+ <${e.BLOCK_IMAGE}
59
+ ${o.BLOCK_IMAGE.src}="${t.image_url}"
60
+ ${o.BLOCK_IMAGE.alt}="${t.name}"
61
+ ${o.BLOCK_IMAGE.href}="#"
62
+ class="product-image"
63
+ align="center"
64
+ style="max-width: 100%; height: auto; margin: 0 auto;"
65
+ esd-extension-block-id="${s.IMAGE}">
66
+ </${e.BLOCK_IMAGE}>
67
+ `,
68
+ [T]: (t) => `
69
+ <${e.BLOCK_TEXT}
70
+ class="product-name es-p10t es-p10b es-p15l es-p15r"
71
+ align="center"
72
+ esd-extension-block-id="${s.NAME}">
73
+ <p path="1" contenteditable="false" style="font-size: 16px; color: #333333;">
74
+ <strong path="1,0">${t.name}</strong>
75
+ </p>
76
+ </${e.BLOCK_TEXT}>
77
+ `,
78
+ [d]: () => `
79
+ <${e.BLOCK_TEXT}
80
+ class="product-price es-p15l es-p15r"
81
+ align="center"
82
+ esd-extension-block-id="${s.PRICE}">
83
+ <p path="1" contenteditable="false" style="font-size: 16px; color: #333333;">
84
+ <strong path="1,0">18,00 TRY</strong>
85
+ </p>
86
+ </${e.BLOCK_TEXT}>
87
+ `,
88
+ [i]: () => `
89
+ <${e.BLOCK_TEXT}
90
+ class="product-old-price es-p15l es-p15r"
91
+ align="center"
92
+ esd-extension-block-id="${s.OLD_PRICE}">
93
+ <p path="1" contenteditable="false" style="font-size: 14px; color: #999999;">
94
+ <s path="1,0">20,00 TRY</s>
95
+ </p>
96
+ </${e.BLOCK_TEXT}>
97
+ `,
98
+ [p]: () => `
99
+ <${e.BLOCK_TEXT}
100
+ class="product-omnibus-price es-p15l es-p15r"
101
+ align="center"
102
+ data-text-before="Lowest 30-day price: "
103
+ data-text-after=""
104
+ esd-extension-block-id="${s.OMNIBUS_PRICE}">
105
+ <p path="1" contenteditable="false" style="font-size: 12px; color: #666666;">
106
+ <span class="omnibus-text-before">Lowest 30-day price: </span>
107
+ <span class="omnibus-price-value">17,00 TRY</span>
108
+ <span class="omnibus-text-after"></span>
109
+ </p>
110
+ </${e.BLOCK_TEXT}>
111
+ `,
112
+ [c]: () => `
113
+ <${e.BLOCK_TEXT}
114
+ class="product-omnibus-discount es-p15l es-p15r"
115
+ align="center"
116
+ data-text-before=""
117
+ data-text-after=""
118
+ esd-extension-block-id="${s.OMNIBUS_DISCOUNT}">
119
+ <p path="1" contenteditable="false" style="font-size: 12px; color: #666666;">
120
+ <span class="omnibus-text-before"></span>
121
+ <span class="omnibus-discount-value">-6%</span>
122
+ <span class="omnibus-text-after"></span>
123
+ </p>
124
+ </${e.BLOCK_TEXT}>
125
+ `,
126
+ [r]: () => `
127
+ <${e.BLOCK_BUTTON}
128
+ ${o.BLOCK_BUTTON.href}="#"
129
+ class="product-button es-p10t es-p10b"
130
+ align="center"
131
+ esd-extension-block-id="${s.BUTTON}">
132
+ <span class="es-button-border">
133
+ <a
134
+ href="#"
135
+ class="es-button buy-button"
136
+ target="_blank"
137
+ style="
138
+ display: inline-block;
139
+ width: 90%;
140
+ max-width: 150px;
141
+ padding: 12px 20px;
142
+ background-color: #ffffff;
143
+ color: #333333;
144
+ text-decoration: none;
145
+ border: 2px solid #cccccc;
146
+ font-size: 16px;
147
+ box-sizing: border-box;
148
+ ">
149
+ Buy
150
+ </a>
151
+ </span>
152
+ </${e.BLOCK_BUTTON}>
153
+ `
154
+ };
155
+ function x() {
156
+ const t = C();
157
+ return _(
158
+ g,
159
+ t,
160
+ 3,
161
+ n,
162
+ f.TITLE
163
+ );
164
+ }
165
+ function E(t, a, l) {
166
+ return O(
167
+ t,
168
+ a,
169
+ n,
170
+ l
171
+ );
172
+ }
173
+ export {
174
+ f as DEFAULTS,
175
+ I as DEFAULT_CARD_COMPOSITION,
176
+ h as DEFAULT_CARD_VISIBILITY,
177
+ g as default,
178
+ C as getDefaultProducts,
179
+ x as getDefaultTemplate,
180
+ E as prepareProductRows
181
+ };
@@ -0,0 +1,189 @@
1
+ import { ATTR_PRODUCT_BUTTON as o, ATTR_PRODUCT_OMNIBUS_DISCOUNT as a, ATTR_PRODUCT_OMNIBUS_PRICE as s, ATTR_PRODUCT_OLD_PRICE as l, ATTR_PRODUCT_PRICE as c, ATTR_PRODUCT_NAME as r, ATTR_PRODUCT_IMAGE as d } from "../constants.js";
2
+ import { prepareProductRows as i } from "./templateUtils.js";
3
+ import { DEFAULTS as k, getDefaultProducts as f } from "./templateUtils.js";
4
+ const g = `
5
+ <td
6
+ align="left"
7
+ esd-extension-block-id="recommendation-block"
8
+ esd-handler-name="esd-extension-RecommendationBlock"
9
+ class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20"
10
+ >
11
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
12
+ <tr>
13
+ <td align="center">
14
+ <table
15
+ class="container"
16
+ width="100%"
17
+ cellpadding="0"
18
+ cellspacing="0"
19
+ border="0">
20
+ <tbody>
21
+ <tr>
22
+ <td>
23
+ <table
24
+ width="100%"
25
+ cellpadding="0"
26
+ cellspacing="0"
27
+ border="0">
28
+ <tbody>
29
+ <tr>
30
+ {-{-TITLE-}-}
31
+ </tr>
32
+ </tbody>
33
+ </table>
34
+ </td>
35
+ </tr>
36
+ <tr>
37
+ <td class="spacer" style="height: 20px;"></td>
38
+ </tr>
39
+ <tr>
40
+ <td>
41
+ <table
42
+ class="ins-recommendation-product-container"
43
+ width="100%"
44
+ cellpadding="0"
45
+ cellspacing="0"
46
+ border="0"
47
+ >
48
+ {-{-PRODUCT_ROWS-}-}
49
+ </table>
50
+ </td>
51
+ </tr>
52
+ </tbody>
53
+ </table>
54
+ </td>
55
+ </tr>
56
+ </table>
57
+ </td>
58
+ `, p = {
59
+ [d]: (t) => `
60
+ <tr>
61
+ <td
62
+ class="esd-block-image product-image"
63
+ esd-extension-block-id="recommendation-block-image"
64
+ align="center"
65
+ style="font-size: 0px;">
66
+ <a target="_blank" href="${t.url}">
67
+ <img
68
+ src="${t.image_url}"
69
+ alt="${t.name}"
70
+ width="120"
71
+ style="display: block; max-width: 100%; height: auto;"
72
+ class="adapt-img">
73
+ </a>
74
+ </td>
75
+ </tr>
76
+ `,
77
+ [r]: (t) => `
78
+ <tr>
79
+ <td
80
+ class="esd-block-text product-name"
81
+ esd-extension-block-id="recommendation-block-name"
82
+ align="center">
83
+ <p
84
+ path="1"
85
+ contenteditable="false"
86
+ style="font-size: 16px; color: #333333; font-weight: 600; text-align: center;">
87
+ <strong path="1,0">${t.name}</strong>
88
+ </p>
89
+ </td>
90
+ </tr>
91
+ `,
92
+ [c]: () => `
93
+ <tr>
94
+ <td
95
+ class="esd-block-text product-price"
96
+ esd-extension-block-id="recommendation-block-price"
97
+ align="center">
98
+ <p
99
+ path="1"
100
+ contenteditable="false"
101
+ style="font-size: 16px; color: #333333; font-weight: bold; text-align: center;">
102
+ <strong path="1,0">18,00 TRY</strong>
103
+ </p>
104
+ </td>
105
+ </tr>
106
+ `,
107
+ [l]: () => `
108
+ <tr>
109
+ <td
110
+ class="esd-block-text product-old-price"
111
+ esd-extension-block-id="recommendation-block-old-price"
112
+ align="center">
113
+ <p
114
+ path="1"
115
+ contenteditable="false"
116
+ style="font-size: 14px; color: #999999; text-decoration: line-through; text-align: center;">
117
+ <s path="1,0">20,00 TRY</s>
118
+ </p>
119
+ </td>
120
+ </tr>
121
+ `,
122
+ [s]: () => `
123
+ <tr>
124
+ <td
125
+ class="esd-block-text product-omnibus-price"
126
+ esd-extension-block-id="recommendation-block-omnibus-price"
127
+ data-text-before="Lowest 30-day price: "
128
+ data-text-after=""
129
+ align="center">
130
+ <p
131
+ path="1"
132
+ contenteditable="false"
133
+ style="font-size: 14px; color: #666666; text-align: center;"><span
134
+ class="omnibus-text-before">Lowest 30-day price: </span><span
135
+ class="omnibus-price-value">17,00 TRY</span><span
136
+ class="omnibus-text-after"></span></p>
137
+ </td>
138
+ </tr>
139
+ `,
140
+ [a]: () => `
141
+ <tr>
142
+ <td
143
+ class="esd-block-text product-omnibus-discount"
144
+ esd-extension-block-id="recommendation-block-omnibus-discount"
145
+ data-text-before=""
146
+ data-text-after=""
147
+ align="center">
148
+ <p
149
+ path="1"
150
+ contenteditable="false"
151
+ style="font-size: 14px; color: #666666; text-align: center;"><span
152
+ class="omnibus-text-before"></span><span
153
+ class="omnibus-discount-value">-6%</span><span
154
+ class="omnibus-text-after"></span></p>
155
+ </td>
156
+ </tr>
157
+ `,
158
+ [o]: (t) => `
159
+ <tr>
160
+ <td
161
+ class="esd-block-button product-button"
162
+ esd-extension-block-id="recommendation-block-button"
163
+ align="center">
164
+ <span class="es-button-border" style="display: block;">
165
+ <a
166
+ href="${t.url}"
167
+ target="_blank"
168
+ class="es-button">
169
+ {-{-PRODUCT_BUTTON_TEXT-}-}
170
+ </a>
171
+ </span>
172
+ </td>
173
+ </tr>
174
+ `
175
+ };
176
+ function u(t, e, n) {
177
+ return i(
178
+ t,
179
+ e,
180
+ p,
181
+ n
182
+ );
183
+ }
184
+ export {
185
+ k as DEFAULTS,
186
+ g as default,
187
+ f as getDefaultProducts,
188
+ u as prepareProductRows
189
+ };
@@ -0,0 +1,209 @@
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,28 +1,28 @@
1
1
  function l(t) {
2
2
  if (t.length === 0)
3
3
  return "";
4
- const o = t.sort((r, e) => r.filterNumber - e.filterNumber), n = o.map((r) => `[${r.attribute}][${r.operatorReplace}][${r.value}]`), [i, ...p] = n;
5
- let u = i;
4
+ const o = t.sort((r, e) => r.filterNumber - e.filterNumber), n = o.map((r) => `[${r.attribute}][${r.operatorReplace}][${r.value}]`), [s, ...p] = n;
5
+ let u = s;
6
6
  for (let r = 0; r < p.length; r++) {
7
7
  const e = o[r + 1].innerGroupOperator;
8
8
  u += `${e}${p[r]}`;
9
9
  }
10
10
  return `(${u})`;
11
11
  }
12
- function f(t) {
12
+ function m(t) {
13
13
  if (!t || t.length === 0)
14
14
  return "";
15
- const o = t.reduce((r, e) => (r[e.filterGroup] || (r[e.filterGroup] = []), r[e.filterGroup].push(e), r), {}), n = Object.keys(o).map(Number).sort((r, e) => r - e), i = n.map((r) => {
15
+ const o = t.reduce((r, e) => (r[e.filterGroup] || (r[e.filterGroup] = []), r[e.filterGroup].push(e), r), {}), n = Object.keys(o).map(Number).sort((r, e) => r - e), s = n.map((r) => {
16
16
  const e = o[r];
17
17
  return l(e);
18
- }), [p, ...u] = i;
19
- let s = p;
18
+ }), [p, ...u] = s;
19
+ let i = p;
20
20
  for (let r = 0; r < u.length; r++) {
21
21
  const e = n[r + 1], c = o[e][0].outerGroupOperator;
22
- s += `${c}${u[r]}`;
22
+ i += `${c}${u[r]}`;
23
23
  }
24
- return s.trim();
24
+ return console.debug("🎉 Complete query generated:", i), i.trim();
25
25
  }
26
26
  export {
27
- f as generateCompleteFilterQuery
27
+ m as generateCompleteFilterQuery
28
28
  };
@@ -1,36 +1,25 @@
1
- function m(t) {
2
- const e = {
3
- "&": "&amp;",
4
- "<": "&lt;",
5
- ">": "&gt;",
6
- '"': "&quot;",
7
- "'": "&#39;"
8
- };
9
- return t.replace(/[&<>"']/g, (n) => e[n]);
1
+ function a(n) {
2
+ return "getInnerHTML" in n && typeof n.getInnerHTML == "function" ? n.getInnerHTML().trim() : "innerHTML" in n ? n.innerHTML : "";
10
3
  }
11
- function p(t) {
12
- return "getInnerHTML" in t && typeof t.getInnerHTML == "function" ? t.getInnerHTML().trim() : "innerHTML" in t ? t.innerHTML : "";
13
- }
14
- function T(t, e) {
15
- const n = m(e);
16
- if (!t)
17
- return n;
18
- const r = p(t);
4
+ function m(n, t) {
5
+ if (!n)
6
+ return t;
7
+ const r = a(n);
19
8
  if (!r || r.trim() === "" || !/<(strong|em|u|s|b|i)\b/i.test(r))
20
- return n;
21
- const i = [], o = [];
22
- let c = r.trim();
9
+ return t;
10
+ const i = [], s = [];
11
+ let o = r.trim();
23
12
  for (; ; ) {
24
- const u = c.match(/^<(strong|em|u|s|b|i)(\s[^>]*)?>(.*)$/is);
13
+ const u = o.match(/^<(strong|em|u|s|b|i)(\s[^>]*)?>(.*)$/is);
25
14
  if (!u)
26
15
  break;
27
- const [, s, f = "", g] = u, a = new RegExp(`</${s}>$`, "i");
28
- if (!a.test(g))
16
+ const [, e, f = "", g] = u, c = new RegExp(`</${e}>$`, "i");
17
+ if (!c.test(g))
29
18
  break;
30
- i.push(`<${s}${f}>`), o.unshift(`</${s}>`), c = g.replace(a, "").trim();
19
+ i.push(`<${e}${f}>`), s.unshift(`</${e}>`), o = g.replace(c, "").trim();
31
20
  }
32
- return i.length > 0 ? i.join("") + n + o.join("") : n;
21
+ return i.length > 0 ? i.join("") + t + s.join("") : t;
33
22
  }
34
23
  export {
35
- T as preserveTextStyles
24
+ m as preserveTextStyles
36
25
  };