@useinsider/guido 1.0.3-beta.3dd93d0 → 1.0.3-beta.3e280d4

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 (231) hide show
  1. package/README.md +3 -147
  2. package/dist/components/Guido.vue.js +9 -11
  3. package/dist/components/Guido.vue2.js +70 -76
  4. package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
  5. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  6. package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
  7. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  8. package/dist/components/organisms/header/RightSlot.vue2.js +20 -21
  9. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  10. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +17 -30
  11. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +10 -12
  12. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +20 -23
  13. package/dist/composables/useActionsApi.js +1 -1
  14. package/dist/composables/useGuidoActions.js +9 -19
  15. package/dist/composables/useHtmlCompiler.js +13 -15
  16. package/dist/composables/useHtmlValidator.js +35 -36
  17. package/dist/composables/useStripo.js +60 -55
  18. package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
  19. package/dist/config/migrator/recommendationMigrator.js +98 -188
  20. package/dist/enums/defaults.js +11 -20
  21. package/dist/enums/extensions/recommendationBlock.js +2 -2
  22. package/dist/enums/onboarding.js +2 -7
  23. package/dist/enums/unsubscribe.js +25 -27
  24. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  25. package/dist/extensions/Blocks/Checkbox/control.js +14 -15
  26. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  27. package/dist/extensions/Blocks/Checkbox/template.js +9 -14
  28. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  29. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  30. package/dist/extensions/Blocks/RadioButton/control.js +17 -18
  31. package/dist/extensions/Blocks/RadioButton/template.js +9 -18
  32. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  33. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +298 -66
  34. package/dist/extensions/Blocks/Recommendation/control.js +4 -5
  35. package/dist/extensions/Blocks/Recommendation/extension.js +4 -4
  36. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  37. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  38. package/dist/extensions/Blocks/Recommendation/template.js +365 -0
  39. package/dist/extensions/Blocks/Unsubscribe/block.js +41 -45
  40. package/dist/extensions/Blocks/common-control.js +110 -174
  41. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  42. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  43. package/dist/guido.css +1 -1
  44. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +168 -213
  45. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  46. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  47. package/dist/package.json.js +1 -1
  48. package/dist/services/recommendationApi.js +19 -13
  49. package/dist/services/stripoApi.js +26 -38
  50. package/dist/src/@types/generic.d.ts +6 -42
  51. package/dist/src/components/Guido.vue.d.ts +2 -4
  52. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +1 -3
  53. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +1 -3
  54. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  55. package/dist/src/composables/useGuidoActions.d.ts +0 -9
  56. package/dist/src/enums/defaults.d.ts +0 -1
  57. package/dist/src/enums/onboarding.d.ts +0 -5
  58. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
  59. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  60. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
  61. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  62. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +42 -5
  63. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  64. package/dist/src/extensions/Blocks/Recommendation/{templates/migrationTemplate.d.ts → template.d.ts} +34 -7
  65. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +4 -3
  66. package/dist/src/extensions/Blocks/common-control.d.ts +7 -44
  67. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
  68. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
  69. package/dist/src/stores/config.d.ts +2 -10
  70. package/dist/src/stores/dynamic-content.d.ts +3 -3
  71. package/dist/src/stores/editor.d.ts +1 -1
  72. package/dist/src/stores/onboarding.d.ts +1 -335
  73. package/dist/src/stores/preview.d.ts +1 -1
  74. package/dist/src/stores/recommendation.d.ts +1 -1
  75. package/dist/src/stores/save-as-template.d.ts +1 -1
  76. package/dist/src/stores/toaster.d.ts +1 -1
  77. package/dist/src/stores/unsubscribe.d.ts +1 -1
  78. package/dist/src/stores/version-history.d.ts +1 -1
  79. package/dist/src/utils/dateUtil.d.ts +0 -21
  80. package/dist/src/utils/genericUtil.d.ts +0 -1
  81. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  82. package/dist/static/styles/customEditorStyle.css.js +3 -3
  83. package/dist/stores/config.js +5 -5
  84. package/dist/stores/dynamic-content.js +2 -2
  85. package/dist/stores/editor.js +1 -1
  86. package/dist/stores/onboarding.js +36 -44
  87. package/dist/stores/preview.js +1 -1
  88. package/dist/stores/recommendation.js +3 -3
  89. package/dist/stores/save-as-template.js +2 -2
  90. package/dist/stores/toaster.js +1 -1
  91. package/dist/stores/unsubscribe.js +1 -1
  92. package/dist/stores/version-history.js +4 -4
  93. package/dist/utils/dateUtil.js +3 -24
  94. package/dist/utils/genericUtil.js +8 -18
  95. package/package.json +4 -6
  96. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
  97. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -99
  98. package/dist/composables/useBlocksConfig.js +0 -48
  99. package/dist/config/compiler/itemsCompilerRules.js +0 -14
  100. package/dist/enums/date.js +0 -6
  101. package/dist/extensions/Blocks/Items/block.js +0 -67
  102. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
  103. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -193
  104. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
  105. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  106. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
  107. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
  108. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
  109. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
  110. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
  111. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +0 -92
  112. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -316
  113. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  114. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -274
  115. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -77
  116. package/dist/extensions/Blocks/Items/extension.js +0 -20
  117. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  118. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  119. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -62
  120. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -72
  121. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -132
  122. package/dist/extensions/Blocks/Items/store/items-block.js +0 -75
  123. package/dist/extensions/Blocks/Items/template.js +0 -195
  124. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  125. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  126. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  127. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  128. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  129. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  130. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  131. package/dist/extensions/Blocks/controlFactories.js +0 -223
  132. package/dist/node_modules/lodash-es/_DataView.js +0 -6
  133. package/dist/node_modules/lodash-es/_Promise.js +0 -6
  134. package/dist/node_modules/lodash-es/_Set.js +0 -6
  135. package/dist/node_modules/lodash-es/_SetCache.js +0 -13
  136. package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
  137. package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
  138. package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
  139. package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
  140. package/dist/node_modules/lodash-es/_arraySome.js +0 -9
  141. package/dist/node_modules/lodash-es/_baseEach.js +0 -6
  142. package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
  143. package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
  144. package/dist/node_modules/lodash-es/_baseGet.js +0 -11
  145. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  146. package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
  147. package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
  148. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
  149. package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
  150. package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
  151. package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
  152. package/dist/node_modules/lodash-es/_baseMap.js +0 -11
  153. package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
  154. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  155. package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
  156. package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  157. package/dist/node_modules/lodash-es/_baseRange.js +0 -9
  158. package/dist/node_modules/lodash-es/_baseToString.js +0 -18
  159. package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
  160. package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
  161. package/dist/node_modules/lodash-es/_castPath.js +0 -10
  162. package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
  163. package/dist/node_modules/lodash-es/_createRange.js +0 -11
  164. package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
  165. package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
  166. package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
  167. package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
  168. package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
  169. package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
  170. package/dist/node_modules/lodash-es/_getTag.js +0 -28
  171. package/dist/node_modules/lodash-es/_hasPath.js +0 -19
  172. package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
  173. package/dist/node_modules/lodash-es/_isKey.js +0 -12
  174. package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
  175. package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
  176. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  177. package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
  178. package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
  179. package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
  180. package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
  181. package/dist/node_modules/lodash-es/_setToArray.js +0 -9
  182. package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
  183. package/dist/node_modules/lodash-es/_toKey.js +0 -10
  184. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
  185. package/dist/node_modules/lodash-es/flatMap.js +0 -8
  186. package/dist/node_modules/lodash-es/get.js +0 -8
  187. package/dist/node_modules/lodash-es/hasIn.js +0 -8
  188. package/dist/node_modules/lodash-es/isSymbol.js +0 -9
  189. package/dist/node_modules/lodash-es/keys.js +0 -9
  190. package/dist/node_modules/lodash-es/map.js +0 -11
  191. package/dist/node_modules/lodash-es/property.js +0 -10
  192. package/dist/node_modules/lodash-es/range.js +0 -5
  193. package/dist/node_modules/lodash-es/stubArray.js +0 -6
  194. package/dist/node_modules/lodash-es/toFinite.js +0 -14
  195. package/dist/node_modules/lodash-es/toNumber.js +0 -22
  196. package/dist/node_modules/lodash-es/toString.js +0 -7
  197. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
  198. package/dist/src/composables/useBlocksConfig.d.ts +0 -11
  199. package/dist/src/config/compiler/itemsCompilerRules.d.ts +0 -2
  200. package/dist/src/enums/date.d.ts +0 -4
  201. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -27
  202. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  203. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -33
  204. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  205. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  206. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  207. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  208. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
  209. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  210. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
  211. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -15
  212. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -48
  213. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -62
  214. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -163
  215. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -50
  216. package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
  217. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  218. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
  219. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -43
  220. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -24
  221. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  222. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  223. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  224. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  225. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  226. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  227. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
  228. package/dist/src/utils/environmentUtil.d.ts +0 -5
  229. package/dist/src/utils/pairProductVariables.d.ts +0 -7
  230. package/dist/utils/environmentUtil.js +0 -4
  231. package/dist/utils/pairProductVariables.js +0 -136
@@ -0,0 +1,365 @@
1
+ import { BlockType as t, BlockAttr as n } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationBlockId as l } from "./constants.js";
3
+ const C = {
4
+ TITLE: "You May Also Like!"
5
+ }, _ = `
6
+ <tr>
7
+ <td class="spacer" style="height: 20px;"></td>
8
+ </tr>
9
+ `, E = `
10
+ <td align="left" class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20">
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
+ <${t.BLOCK_TEXT}
30
+ class="es-p10t es-p10b es-p20l es-p20r"
31
+ align="center">
32
+ <p path="1" style="font-size: 28px; color: #333333;">
33
+ <strong path="1,0">{-{-TITLE-}-}</strong>
34
+ </p>
35
+ </${t.BLOCK_TEXT}>
36
+ </tbody>
37
+ </table>
38
+ </td>
39
+ </tr>
40
+ ${_}
41
+ <tr>
42
+ <td>
43
+ <table
44
+ class="ins-recommendation-product-container"
45
+ width="100%"
46
+ cellpadding="0"
47
+ cellspacing="0"
48
+ border="0"
49
+ >
50
+ {-{-PRODUCT_ROWS-}-}
51
+ </table>
52
+ </td>
53
+ </tr>
54
+ </tbody>
55
+ </table>
56
+ </td>
57
+ </tr>
58
+ </table>
59
+ </td>
60
+ `, y = `
61
+ <tr>
62
+ <td>
63
+ <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
64
+ {-{-PRODUCTS-}-}
65
+ </table>
66
+ </td>
67
+ </tr>
68
+ `, c = `
69
+ <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
70
+ <table
71
+ width="100%"
72
+ height="100%"
73
+ cellpadding="0"
74
+ cellspacing="0"
75
+ border="0"
76
+ class="product-card-wrapper"
77
+ style="background-color: #f8f8f8;">
78
+ <tr>
79
+ {-{-PRODUCT_CONTENT-}-}
80
+ </tr>
81
+ </table>
82
+ </td>
83
+ `, w = `
84
+ <td
85
+ class="product-image-cell"
86
+ valign="top">
87
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
88
+ <tbody>
89
+ <${t.BLOCK_IMAGE}
90
+ ${n.BLOCK_IMAGE.src}="{-{-PRODUCT_IMAGE-}-}"
91
+ ${n.BLOCK_IMAGE.alt}="{-{-PRODUCT_NAME-}-}"
92
+ ${n.BLOCK_IMAGE.href}="#"
93
+ class="product-image"
94
+ align="center"
95
+ esd-extension-block-id="${l.IMAGE}">
96
+ </${t.BLOCK_TEXT}>
97
+ </tbody>
98
+ </table>
99
+ </td>
100
+ `, B = `
101
+ <td
102
+ class="product-name-cell"
103
+ valign="top">
104
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
105
+ <tbody>
106
+ <${t.BLOCK_TEXT}
107
+ class="product-name es-p15t es-p15b es-p10l es-p10r"
108
+ align="center"
109
+ esd-extension-block-id="${l.NAME}">
110
+ <p
111
+ path="1"
112
+ contenteditable="false"
113
+ style="font-size: 16px; color: #333333;">
114
+ <strong path="1,0">{-{-PRODUCT_NAME-}-}</strong>
115
+ </p>
116
+ </${t.BLOCK_TEXT}>
117
+ </tbody>
118
+ </table>
119
+ </td>
120
+ `, P = `
121
+ <td
122
+ class="product-price-cell"
123
+ valign="top">
124
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
125
+ <tbody>
126
+ <${t.BLOCK_TEXT}
127
+ class="product-price"
128
+ align="center"
129
+ esd-extension-block-id="${l.PRICE}">
130
+ <p
131
+ path="1"
132
+ contenteditable="false"
133
+ style="font-size: 16px; color: #333333;">
134
+ <strong path="1,0">18,00 TRY</strong>
135
+ </p>
136
+ </${t.BLOCK_TEXT}>
137
+ </tbody>
138
+ </table>
139
+ </td>
140
+ `, N = `
141
+ <td
142
+ class="product-old-price-cell"
143
+ valign="top">
144
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
145
+ <tbody>
146
+ <${t.BLOCK_TEXT}
147
+ class="product-old-price"
148
+ align="center"
149
+ esd-extension-block-id="${l.OLD_PRICE}">
150
+ <p
151
+ path="1"
152
+ contenteditable="false"
153
+ style="font-size: 14px; color: #999999;">
154
+ <s path="1,0">20,00 TRY</s>
155
+ </p>
156
+ </${t.BLOCK_TEXT}>
157
+ </tbody>
158
+ </table>
159
+ </td>
160
+ `, D = `
161
+ <td
162
+ class="button-cell"
163
+ valign="top">
164
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
165
+ <tbody>
166
+ <${t.BLOCK_BUTTON}
167
+ ${n.BLOCK_BUTTON.href}="#"
168
+ class="product-name es-p5t"
169
+ align="center"
170
+ esd-extension-block-id="${l.BUTTON}">
171
+ Buy
172
+ </${t.BLOCK_BUTTON}>
173
+ </tbody>
174
+ </table>
175
+ </td>
176
+ `, x = `
177
+ <td
178
+ align="left"
179
+ esd-extension-block-id="recommendation-block"
180
+ esd-handler-name="esd-extension-RecommendationBlock"
181
+ class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20"
182
+ >
183
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
184
+ <tr>
185
+ <td align="center">
186
+ <table
187
+ class="container"
188
+ width="100%"
189
+ cellpadding="0"
190
+ cellspacing="0"
191
+ border="0">
192
+ <tbody>
193
+ <tr>
194
+ <td>
195
+ <table
196
+ width="100%"
197
+ cellpadding="0"
198
+ cellspacing="0"
199
+ border="0">
200
+ <tbody>
201
+ <tr>
202
+ {-{-TITLE-}-}
203
+ </tr>
204
+ </tbody>
205
+ </table>
206
+ </td>
207
+ </tr>
208
+ <tr>
209
+ <td class="spacer" style="height: 20px;"></td>
210
+ </tr>
211
+ <tr>
212
+ <td>
213
+ <table
214
+ class="ins-recommendation-product-container"
215
+ width="100%"
216
+ cellpadding="0"
217
+ cellspacing="0"
218
+ border="0"
219
+ >
220
+ {-{-PRODUCT_ROWS-}-}
221
+ </table>
222
+ </td>
223
+ </tr>
224
+ </tbody>
225
+ </table>
226
+ </td>
227
+ </tr>
228
+ </table>
229
+ </td>
230
+ `, U = [
231
+ "productImage",
232
+ "productName",
233
+ "productOldPrice",
234
+ "productPrice",
235
+ "productButton"
236
+ ];
237
+ function f(r, a, i = U) {
238
+ const h = (100 / a).toFixed(2), p = [];
239
+ for (let o = 0; o < r.length; o += a)
240
+ p.push(r.slice(o, o + a));
241
+ let d = "";
242
+ return p.forEach((o, O) => {
243
+ O > 0 && (d += _);
244
+ let s = "", g = "", u = "", m = "", T = "";
245
+ o.forEach((e) => {
246
+ s += c.replace(
247
+ "{-{-PRODUCT_CONTENT-}-}",
248
+ w.replace("{-{-PRODUCT_IMAGE-}-}", e.image_url).replace("{-{-PRODUCT_NAME-}-}", e.name)
249
+ ), g += c.replace(
250
+ "{-{-PRODUCT_CONTENT-}-}",
251
+ B.replace("{-{-PRODUCT_NAME-}-}", e.name)
252
+ ), u += c.replace(
253
+ "{-{-PRODUCT_CONTENT-}-}",
254
+ P
255
+ ), m += c.replace(
256
+ "{-{-PRODUCT_CONTENT-}-}",
257
+ N
258
+ ), T += c.replace(
259
+ "{-{-PRODUCT_CONTENT-}-}",
260
+ D
261
+ );
262
+ });
263
+ const b = {
264
+ productImage: s,
265
+ productName: g,
266
+ productPrice: u,
267
+ productOldPrice: m,
268
+ productButton: T
269
+ }, R = i.filter((e) => b[e]).map((e) => `<tr>${b[e]}</tr>`).join("");
270
+ d += y.replace("{-{-PRODUCTS-}-}", R);
271
+ }), d.replaceAll("{-{-COLUMN_WIDTH-}-}", `${h}%`);
272
+ }
273
+ function k() {
274
+ return [
275
+ {
276
+ name: "Product Name",
277
+ image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
278
+ price: { USD: 18 },
279
+ original_price: { USD: 20 },
280
+ discount: { USD: 2 },
281
+ url: "https://example.com/product/1",
282
+ item_id: "1",
283
+ in_stock: 1,
284
+ locale: "en",
285
+ product_attributes: {},
286
+ category: []
287
+ },
288
+ {
289
+ name: "Belt",
290
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
291
+ price: { TRY: 55 },
292
+ original_price: { TRY: 65 },
293
+ discount: { TRY: 10 },
294
+ url: "https://example.com/product/2",
295
+ item_id: "2",
296
+ in_stock: 1,
297
+ locale: "tr",
298
+ product_attributes: {},
299
+ category: []
300
+ },
301
+ {
302
+ name: "Beanie",
303
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
304
+ price: { TRY: 18 },
305
+ original_price: { TRY: 20 },
306
+ discount: { TRY: 2 },
307
+ url: "https://example.com/product/3",
308
+ item_id: "3",
309
+ in_stock: 1,
310
+ locale: "tr",
311
+ product_attributes: {},
312
+ category: []
313
+ },
314
+ {
315
+ name: "Album",
316
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
317
+ price: { TRY: 15 },
318
+ original_price: { TRY: 15 },
319
+ discount: { TRY: 0 },
320
+ url: "https://example.com/product/4",
321
+ item_id: "4",
322
+ in_stock: 1,
323
+ locale: "tr",
324
+ product_attributes: {},
325
+ category: []
326
+ },
327
+ {
328
+ name: "Flying Ninja with a very long product name",
329
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
330
+ price: { TRY: 12 },
331
+ original_price: { TRY: 15 },
332
+ discount: { TRY: 3 },
333
+ url: "https://example.com/product/5",
334
+ item_id: "5",
335
+ in_stock: 1,
336
+ locale: "tr",
337
+ product_attributes: {},
338
+ category: []
339
+ },
340
+ {
341
+ name: "Single",
342
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
343
+ price: { TRY: 22555 },
344
+ original_price: { TRY: 33989 },
345
+ discount: { TRY: 11434 },
346
+ url: "https://example.com/product/6",
347
+ item_id: "6",
348
+ in_stock: 1,
349
+ locale: "tr",
350
+ product_attributes: {},
351
+ category: []
352
+ }
353
+ ];
354
+ }
355
+ function I() {
356
+ const r = k(), i = f(r, 3);
357
+ return E.replace("{-{-TITLE-}-}", C.TITLE).replace("{-{-PRODUCT_ROWS-}-}", i);
358
+ }
359
+ export {
360
+ U as DEFAULT_CARD_COMPOSITION,
361
+ x as default,
362
+ k as getDefaultProducts,
363
+ I as getDefaultTemplate,
364
+ f as prepareProductRows
365
+ };
@@ -1,17 +1,17 @@
1
- var d = Object.defineProperty;
2
- var _ = (n, i, e) => i in n ? d(n, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[i] = e;
3
- var u = (n, i, e) => _(n, typeof i != "symbol" ? i + "" : i, e);
1
+ var _ = Object.defineProperty;
2
+ var d = (n, i, e) => i in n ? _(n, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[i] = e;
3
+ var u = (n, i, e) => d(n, typeof i != "symbol" ? i + "" : i, e);
4
4
  import { PAGE_TYPES as E } from "../../../enums/unsubscribe.js";
5
5
  import { useUnsubscribeStore as c } from "../../../stores/unsubscribe.js";
6
- import { Block as h, BlockCompositionType as S, ModificationDescription as b } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
+ import { Block as S, BlockCompositionType as h, ModificationDescription as b } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
7
  import { getDefaultTemplate as L } from "./template.js";
8
8
  import { UNSUBSCRIBE_EVENTS as a, DATA_ATTRIBUTES as o } from "./utils/constants.js";
9
- import { parsePageList as p } from "./utils/utils.js";
10
- const g = "unsubscribe-block", v = 'a[data-unsubscribe-link="true"]', f = ".unsubscribe-block-v2", B = "{{ins-unsubscribe-link}}", T = {
9
+ import { parsePageList as m } from "./utils/utils.js";
10
+ const v = "unsubscribe-block", g = 'a[data-unsubscribe-link="true"]', B = ".unsubscribe-block-v2", f = "{{ins-unsubscribe-link}}", C = {
11
11
  [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
12
12
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
13
13
  };
14
- class R extends h {
14
+ class D extends S {
15
15
  constructor() {
16
16
  super();
17
17
  u(this, "selectEventListener", null);
@@ -19,13 +19,13 @@ class R extends h {
19
19
  u(this, "currentNode");
20
20
  }
21
21
  getId() {
22
- return g;
22
+ return v;
23
23
  }
24
24
  getIcon() {
25
25
  return "unsubscribe-icon";
26
26
  }
27
27
  getBlockCompositionType() {
28
- return S.BLOCK;
28
+ return h.BLOCK;
29
29
  }
30
30
  getName() {
31
31
  return this.api.translate("Unsubscribe Block");
@@ -36,8 +36,11 @@ class R extends h {
36
36
  getTemplate() {
37
37
  return L();
38
38
  }
39
+ onCreated(e) {
40
+ "getAttribute" in e && e.getAttribute("data-migration") || (this.currentNode = e, this._resetStoreState(), this._setupSelectEventListener(), this._setupCancelEventListener(), this._checkExistingBlocks(), this._openDrawer());
41
+ }
39
42
  onSelect(e) {
40
- this.currentNode = e, !("getAttribute" in e && e.getAttribute("data-migration")) && (this._resetStoreState(), this._loadBlockState(e), this._setupSelectEventListener(), this._setupCancelEventListener(), this._checkExistingBlocks(), this._openDrawer());
43
+ this.currentNode = e, this._resetStoreState(), this._loadBlockState(e), this._setupSelectEventListener();
41
44
  }
42
45
  onDelete(e) {
43
46
  this._removeEventListeners(), this._removeBlockTemplatesFromStore(e), this._resetStoreState();
@@ -47,8 +50,8 @@ class R extends h {
47
50
  }
48
51
  _setupSelectEventListener() {
49
52
  this._removeSelectEventListener(), this.selectEventListener = (e) => {
50
- const s = e, { collectionType: t, selectedPages: r } = s.detail;
51
- this._updateBlock(t, r.join(","));
53
+ const r = e, { collectionType: t, selectedPages: s } = r.detail;
54
+ this._updateBlock(t, s.join(","));
52
55
  }, document.addEventListener(a.SELECT, this.selectEventListener);
53
56
  }
54
57
  _removeSelectEventListener() {
@@ -63,45 +66,38 @@ class R extends h {
63
66
  this.cancelEventListener && (document.removeEventListener(a.CANCEL, this.cancelEventListener), this.cancelEventListener = null);
64
67
  }
65
68
  _handleCancel() {
66
- try {
67
- if (!this.currentNode)
68
- return;
69
- this.api.getDocumentModifier().modifyHtml(this.currentNode).delete().apply(new b("Removed unsubscribe block due to cancel"));
70
- } catch (e) {
71
- console.warn("[UnsubscribeBlock] Failed to remove unsubscribe block:", e);
72
- }
69
+ this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).delete().apply(new b("Removed unsubscribe block due to cancel"));
73
70
  }
74
71
  _removeEventListeners() {
75
72
  this._removeSelectEventListener(), this._removeCancelEventListener();
76
73
  }
77
- _updateBlock(e, s) {
74
+ _updateBlock(e, r) {
78
75
  if (!this.currentNode || !("querySelector" in this.currentNode))
79
76
  return;
80
- const t = this.currentNode.querySelector(v);
77
+ const t = this.currentNode.querySelector(g);
81
78
  if (!t)
82
79
  return;
83
- const r = this._getMergeTag(e);
84
- this.api.getDocumentModifier().modifyHtml(t).setAttribute("href", r).apply(new b(`Updated unsubscribe link to ${r}`)), this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute(o.PAGE_TYPE, e.toString()).setAttribute(o.PAGE_LIST, s).apply(new b("Updated unsubscribe block metadata"));
80
+ const s = this._getMergeTag(e);
81
+ this.api.getDocumentModifier().modifyHtml(t).setAttribute("href", s).apply(new b(`Updated unsubscribe link to ${s}`)), this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute(o.PAGE_TYPE, e.toString()).setAttribute(o.PAGE_LIST, r).apply(new b("Updated unsubscribe block metadata"));
85
82
  }
86
83
  _getMergeTag(e) {
87
- return T[e] ?? B;
84
+ return C[e] ?? f;
88
85
  }
89
86
  _openDrawer() {
90
- if (!(this.currentNode && this.currentNode.getAttribute("data-unsubscribe-page-type")))
91
- try {
92
- const e = c();
93
- e.typeSelectionDrawerStatus = !0;
94
- } catch (e) {
95
- console.error("[UnsubscribeBlock] Failed to open drawer:", e);
96
- }
87
+ try {
88
+ const e = c();
89
+ e.typeSelectionDrawerStatus = !0;
90
+ } catch (e) {
91
+ console.error("[UnsubscribeBlock] Failed to open drawer:", e);
92
+ }
97
93
  }
98
94
  _checkExistingBlocks() {
99
95
  const e = c();
100
- e.isGlobalUnsubscribeDisabled = !1, e.isSubscriptionPreferencesCenterDisabled = !1, this.api.getDocumentRoot().querySelectorAll(f).forEach((t) => {
96
+ e.isGlobalUnsubscribeDisabled = !1, e.isSubscriptionPreferencesCenterDisabled = !1, this.api.getDocumentRoot().querySelectorAll(B).forEach((t) => {
101
97
  if ("getAttribute" in t) {
102
- const r = t.getAttribute(o.PAGE_TYPE);
103
- if (r) {
104
- const l = Number(r);
98
+ const s = t.getAttribute(o.PAGE_TYPE);
99
+ if (s) {
100
+ const l = Number(s);
105
101
  l === E.GLOBAL_UNSUBSCRIBE ? e.isGlobalUnsubscribeDisabled = !0 : l === E.SUBSCRIPTION_PREFERENCE_CENTER && (e.isSubscriptionPreferencesCenterDisabled = !0);
106
102
  }
107
103
  }
@@ -110,11 +106,11 @@ class R extends h {
110
106
  _loadBlockState(e) {
111
107
  if (!("getAttribute" in e))
112
108
  return;
113
- const s = e.getAttribute(o.PAGE_TYPE), t = e.getAttribute(o.PAGE_LIST);
114
- if (!s || !t)
109
+ const r = e.getAttribute(o.PAGE_TYPE), t = e.getAttribute(o.PAGE_LIST);
110
+ if (!r || !t)
115
111
  return;
116
- const r = c(), l = Number(s), m = p(t);
117
- r.setCollectionWithoutAutoSelection(l), r.loadSelectedTemplates(m);
112
+ const s = c(), l = Number(r), p = m(t);
113
+ s.setCollectionWithoutAutoSelection(l), s.loadSelectedTemplates(p);
118
114
  }
119
115
  _resetStoreState() {
120
116
  c().$reset();
@@ -122,14 +118,14 @@ class R extends h {
122
118
  _removeBlockTemplatesFromStore(e) {
123
119
  if (!("getAttribute" in e))
124
120
  return;
125
- const s = e.getAttribute(o.PAGE_LIST);
126
- if (!s)
121
+ const r = e.getAttribute(o.PAGE_LIST);
122
+ if (!r)
127
123
  return;
128
- const t = c(), r = p(s);
129
- t.removeUnsubscribePages(r);
124
+ const t = c(), s = m(r);
125
+ t.removeUnsubscribePages(s);
130
126
  }
131
127
  }
132
128
  export {
133
- g as UNSUBSCRIBE_BLOCK_ID,
134
- R as UnsubscribeBlock
129
+ v as UNSUBSCRIBE_BLOCK_ID,
130
+ D as UnsubscribeBlock
135
131
  };