@useinsider/guido 1.0.3-beta.dbf4a88 → 1.0.3-beta.ddb7e87

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 (325) hide show
  1. package/README.md +147 -3
  2. package/dist/components/Guido.vue.js +11 -9
  3. package/dist/components/Guido.vue2.js +81 -74
  4. package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
  5. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +28 -0
  6. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +38 -0
  7. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +17 -0
  8. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +37 -0
  9. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +20 -0
  10. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +44 -0
  11. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +17 -0
  12. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +27 -0
  13. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  14. package/dist/components/organisms/header/LeftSlot.vue2.js +16 -15
  15. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  16. package/dist/components/organisms/header/RightSlot.vue2.js +21 -20
  17. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +21 -0
  18. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +99 -0
  19. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  20. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +30 -17
  21. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -10
  22. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +23 -20
  23. package/dist/composables/useActionsApi.js +1 -1
  24. package/dist/composables/useBlocksConfig.js +48 -0
  25. package/dist/composables/useGuidoActions.js +19 -9
  26. package/dist/composables/useHtmlCompiler.js +15 -13
  27. package/dist/composables/useHtmlValidator.js +36 -35
  28. package/dist/composables/useStripo.js +55 -58
  29. package/dist/config/compiler/itemsCompilerRules.js +14 -0
  30. package/dist/config/compiler/unsubscribeCompilerRules.js +33 -28
  31. package/dist/config/migrator/index.js +7 -6
  32. package/dist/config/migrator/recommendationMigrator.js +293 -0
  33. package/dist/enums/date.js +6 -0
  34. package/dist/enums/defaults.js +16 -8
  35. package/dist/enums/extensions/recommendationBlock.js +80 -0
  36. package/dist/enums/onboarding.js +7 -2
  37. package/dist/enums/unsubscribe.js +27 -25
  38. package/dist/extensions/Blocks/Checkbox/block.js +5 -2
  39. package/dist/extensions/Blocks/Checkbox/control.js +15 -14
  40. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  41. package/dist/extensions/Blocks/Checkbox/template.js +14 -9
  42. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  43. package/dist/extensions/Blocks/Items/block.js +67 -0
  44. package/dist/extensions/Blocks/Items/controls/button/link.js +68 -0
  45. package/dist/extensions/Blocks/Items/controls/cardComposition.js +193 -0
  46. package/dist/extensions/Blocks/Items/controls/image/link.js +68 -0
  47. package/dist/extensions/Blocks/Items/controls/index.js +217 -0
  48. package/dist/extensions/Blocks/Items/controls/name/trimming.js +70 -0
  49. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +107 -0
  50. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +123 -0
  51. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +76 -0
  52. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +61 -0
  53. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +92 -0
  54. package/dist/extensions/Blocks/Items/controls/settingsControl.js +316 -0
  55. package/dist/extensions/Blocks/Items/enums/controlEnums.js +5 -0
  56. package/dist/extensions/Blocks/Items/enums/productEnums.js +274 -0
  57. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +77 -0
  58. package/dist/extensions/Blocks/Items/extension.js +20 -0
  59. package/dist/extensions/Blocks/Items/iconsRegistry.js +32 -0
  60. package/dist/extensions/Blocks/Items/items.css.js +23 -0
  61. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +62 -0
  62. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +72 -0
  63. package/dist/extensions/Blocks/Items/settingsPanel.js +132 -0
  64. package/dist/extensions/Blocks/Items/store/items-block.js +75 -0
  65. package/dist/extensions/Blocks/Items/template.js +195 -0
  66. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +17 -0
  67. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +28 -0
  68. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +76 -0
  69. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +46 -0
  70. package/dist/extensions/Blocks/RadioButton/block.js +5 -2
  71. package/dist/extensions/Blocks/RadioButton/control.js +18 -17
  72. package/dist/extensions/Blocks/RadioButton/template.js +24 -15
  73. package/dist/extensions/Blocks/Recommendation/block.js +30 -0
  74. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  75. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  76. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  84. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  85. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  86. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  87. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  88. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  89. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  90. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  91. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  92. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  93. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  94. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  95. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  96. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  97. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  98. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  99. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  100. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  101. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  102. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  103. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  104. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  105. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  106. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  107. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  108. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  109. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  110. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  111. package/dist/extensions/Blocks/Recommendation/extension.js +45 -0
  112. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  113. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  114. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -0
  115. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  116. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  117. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  118. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  119. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  120. package/dist/extensions/Blocks/Unsubscribe/block.js +45 -41
  121. package/dist/extensions/Blocks/common-control.js +248 -0
  122. package/dist/extensions/Blocks/controlFactories.js +223 -0
  123. package/dist/extensions/DynamicContent/dynamic-content-modal.js +25 -19
  124. package/dist/extensions/DynamicContent/dynamic-content.js +128 -33
  125. package/dist/guido.css +1 -1
  126. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +357 -94
  127. package/dist/node_modules/lodash-es/_DataView.js +6 -0
  128. package/dist/node_modules/lodash-es/_Promise.js +6 -0
  129. package/dist/node_modules/lodash-es/_Set.js +6 -0
  130. package/dist/node_modules/lodash-es/_SetCache.js +13 -0
  131. package/dist/node_modules/lodash-es/_WeakMap.js +6 -0
  132. package/dist/node_modules/lodash-es/_arrayFilter.js +10 -0
  133. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +13 -12
  134. package/dist/node_modules/lodash-es/_arrayMap.js +8 -0
  135. package/dist/node_modules/lodash-es/_arrayPush.js +8 -0
  136. package/dist/node_modules/lodash-es/_arraySome.js +9 -0
  137. package/dist/node_modules/lodash-es/_baseEach.js +6 -0
  138. package/dist/node_modules/lodash-es/_baseFlatten.js +13 -0
  139. package/dist/node_modules/lodash-es/_baseForOwn.js +8 -0
  140. package/dist/node_modules/lodash-es/_baseGet.js +11 -0
  141. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  142. package/dist/node_modules/lodash-es/_baseHasIn.js +6 -0
  143. package/dist/node_modules/lodash-es/_baseIsEqual.js +8 -0
  144. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +32 -0
  145. package/dist/node_modules/lodash-es/_baseIsMatch.js +29 -0
  146. package/dist/node_modules/lodash-es/_baseIteratee.js +11 -0
  147. package/dist/node_modules/lodash-es/_baseKeys.js +14 -0
  148. package/dist/node_modules/lodash-es/_baseMap.js +11 -0
  149. package/dist/node_modules/lodash-es/_baseMatches.js +12 -0
  150. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  151. package/dist/node_modules/lodash-es/_baseProperty.js +8 -0
  152. package/dist/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  153. package/dist/node_modules/lodash-es/_baseRange.js +9 -0
  154. package/dist/node_modules/lodash-es/_baseToString.js +18 -0
  155. package/dist/node_modules/lodash-es/_baseTrim.js +8 -0
  156. package/dist/node_modules/lodash-es/_cacheHas.js +6 -0
  157. package/dist/node_modules/lodash-es/_castPath.js +10 -0
  158. package/dist/node_modules/lodash-es/_createBaseEach.js +15 -0
  159. package/dist/node_modules/lodash-es/_createRange.js +11 -0
  160. package/dist/node_modules/lodash-es/_equalArrays.js +40 -0
  161. package/dist/node_modules/lodash-es/_equalByTag.js +45 -0
  162. package/dist/node_modules/lodash-es/_equalObjects.js +36 -0
  163. package/dist/node_modules/lodash-es/_getAllKeys.js +9 -0
  164. package/dist/node_modules/lodash-es/_getMatchData.js +12 -0
  165. package/dist/node_modules/lodash-es/_getSymbols.js +10 -0
  166. package/dist/node_modules/lodash-es/_getTag.js +28 -0
  167. package/dist/node_modules/lodash-es/_hasPath.js +19 -0
  168. package/dist/node_modules/lodash-es/_isFlattenable.js +10 -0
  169. package/dist/node_modules/lodash-es/_isKey.js +12 -0
  170. package/dist/node_modules/lodash-es/_isStrictComparable.js +7 -0
  171. package/dist/node_modules/lodash-es/_mapToArray.js +9 -0
  172. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  173. package/dist/node_modules/lodash-es/_memoizeCapped.js +11 -0
  174. package/dist/node_modules/lodash-es/_nativeKeys.js +5 -0
  175. package/dist/node_modules/lodash-es/_setCacheAdd.js +7 -0
  176. package/dist/node_modules/lodash-es/_setCacheHas.js +6 -0
  177. package/dist/node_modules/lodash-es/_setToArray.js +9 -0
  178. package/dist/node_modules/lodash-es/_stringToPath.js +10 -0
  179. package/dist/node_modules/lodash-es/_toKey.js +10 -0
  180. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +9 -0
  181. package/dist/node_modules/lodash-es/flatMap.js +8 -0
  182. package/dist/node_modules/lodash-es/get.js +8 -0
  183. package/dist/node_modules/lodash-es/hasIn.js +8 -0
  184. package/dist/node_modules/lodash-es/isSymbol.js +9 -0
  185. package/dist/node_modules/lodash-es/keys.js +9 -0
  186. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  187. package/dist/node_modules/lodash-es/map.js +11 -0
  188. package/dist/node_modules/lodash-es/property.js +10 -0
  189. package/dist/node_modules/lodash-es/range.js +5 -0
  190. package/dist/node_modules/lodash-es/stubArray.js +6 -0
  191. package/dist/node_modules/lodash-es/toFinite.js +14 -0
  192. package/dist/node_modules/lodash-es/toNumber.js +22 -0
  193. package/dist/node_modules/lodash-es/toString.js +7 -0
  194. package/dist/package.json.js +1 -1
  195. package/dist/services/recommendationApi.js +37 -0
  196. package/dist/services/stripoApi.js +1 -1
  197. package/dist/src/@types/generic.d.ts +44 -4
  198. package/dist/src/components/Guido.vue.d.ts +4 -2
  199. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  200. package/dist/src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +2 -0
  201. package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +2 -0
  202. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +16 -0
  203. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +2 -0
  204. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +3 -1
  205. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +3 -1
  206. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  207. package/dist/src/composables/useBlocksConfig.d.ts +11 -0
  208. package/dist/src/composables/useGuidoActions.d.ts +9 -0
  209. package/dist/src/config/compiler/itemsCompilerRules.d.ts +2 -0
  210. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
  211. package/dist/src/enums/date.d.ts +4 -0
  212. package/dist/src/enums/extensions/recommendationBlock.d.ts +16 -0
  213. package/dist/src/enums/onboarding.d.ts +5 -0
  214. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +1 -0
  215. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  216. package/dist/src/extensions/Blocks/Items/block.d.ts +27 -0
  217. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +14 -0
  218. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +33 -0
  219. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +14 -0
  220. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +501 -0
  221. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +14 -0
  222. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +19 -0
  223. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +21 -0
  224. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +14 -0
  225. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +13 -0
  226. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +15 -0
  227. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +48 -0
  228. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +62 -0
  229. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +163 -0
  230. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +50 -0
  231. package/dist/src/extensions/Blocks/Items/extension.d.ts +2 -0
  232. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +4 -0
  233. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +4 -0
  234. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +43 -0
  235. package/dist/src/extensions/Blocks/Items/template.d.ts +24 -0
  236. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +23 -0
  237. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +32 -0
  238. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +50 -0
  239. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +8 -0
  240. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +1 -0
  241. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  242. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +11 -0
  243. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  244. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +51 -0
  245. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  246. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  247. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  248. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  249. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  250. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  251. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  252. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  253. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  254. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  255. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  256. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  257. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  258. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  259. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  260. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  261. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  262. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  263. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  264. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  265. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  266. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  267. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  268. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  269. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  270. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  271. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  272. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  273. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  274. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  275. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  276. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  277. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  278. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  279. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  280. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +2 -0
  281. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  282. package/dist/src/extensions/Blocks/Recommendation/settingsPanel.d.ts +4 -0
  283. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  284. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  285. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +16 -0
  286. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  287. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  288. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +3 -4
  289. package/dist/src/extensions/Blocks/common-control.d.ts +124 -0
  290. package/dist/src/extensions/Blocks/controlFactories.d.ts +312 -0
  291. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +9 -2
  292. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +52 -2
  293. package/dist/src/mock/api/recommendation.d.ts +2 -0
  294. package/dist/src/services/recommendationApi.d.ts +6 -0
  295. package/dist/src/stores/config.d.ts +10 -2
  296. package/dist/src/stores/dynamic-content.d.ts +3 -3
  297. package/dist/src/stores/editor.d.ts +22 -1
  298. package/dist/src/stores/onboarding.d.ts +335 -1
  299. package/dist/src/stores/preview.d.ts +1 -1
  300. package/dist/src/stores/recommendation.d.ts +1 -1
  301. package/dist/src/stores/save-as-template.d.ts +1 -1
  302. package/dist/src/stores/toaster.d.ts +1 -1
  303. package/dist/src/stores/unsubscribe.d.ts +1 -1
  304. package/dist/src/stores/version-history.d.ts +1 -1
  305. package/dist/src/utils/dateUtil.d.ts +21 -0
  306. package/dist/src/utils/environmentUtil.d.ts +5 -0
  307. package/dist/src/utils/genericUtil.d.ts +2 -0
  308. package/dist/src/utils/pairProductVariables.d.ts +7 -0
  309. package/dist/static/styles/components/narrow-panel.css.js +10 -0
  310. package/dist/static/styles/customEditorStyle.css.js +5 -0
  311. package/dist/stores/config.js +5 -5
  312. package/dist/stores/dynamic-content.js +2 -2
  313. package/dist/stores/editor.js +3 -2
  314. package/dist/stores/onboarding.js +44 -36
  315. package/dist/stores/preview.js +1 -1
  316. package/dist/stores/recommendation.js +3 -3
  317. package/dist/stores/save-as-template.js +2 -2
  318. package/dist/stores/toaster.js +1 -1
  319. package/dist/stores/unsubscribe.js +1 -1
  320. package/dist/stores/version-history.js +4 -4
  321. package/dist/utils/dateUtil.js +24 -3
  322. package/dist/utils/environmentUtil.js +4 -0
  323. package/dist/utils/genericUtil.js +17 -6
  324. package/dist/utils/pairProductVariables.js +136 -0
  325. package/package.json +7 -5
@@ -0,0 +1,555 @@
1
+ import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationProduct } from '@@/Types/recommendation';
2
+ interface StoreState {
3
+ recommendationCampaignUrls: Record<string, string>;
4
+ recommendationConfigs: {
5
+ cardsInRow: number;
6
+ currencySettings: {
7
+ name: string;
8
+ value: string;
9
+ symbol: string;
10
+ alignment: string;
11
+ decimalCount: string;
12
+ decimalSeparator: NumericSeparator;
13
+ thousandSeparator: NumericSeparator;
14
+ };
15
+ filters: Filter[];
16
+ id: number;
17
+ language: string;
18
+ orientation: Orientation;
19
+ productIds: string[];
20
+ recommendedProducts: [];
21
+ sendProductRequestFlag: false;
22
+ shuffleProducts: false;
23
+ strategy: string;
24
+ textTrimming: boolean;
25
+ unresponsive: boolean;
26
+ size: string;
27
+ };
28
+ recommendationProducts: RecommendationProduct[];
29
+ activePredictiveAlgorithms: number[];
30
+ languages: Languages;
31
+ currencyList: Currency[];
32
+ filterStatus: boolean;
33
+ filterSelectionDrawerStatus: boolean;
34
+ filterList: FiltersResponse;
35
+ filterGroup: number;
36
+ }
37
+ export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"guidoRecommendationExtension", StoreState, {
38
+ hasFilters: (state: {
39
+ recommendationCampaignUrls: Record<string, string>;
40
+ recommendationConfigs: {
41
+ cardsInRow: number;
42
+ currencySettings: {
43
+ name: string;
44
+ value: string;
45
+ symbol: string;
46
+ alignment: string;
47
+ decimalCount: string;
48
+ decimalSeparator: NumericSeparator;
49
+ thousandSeparator: NumericSeparator;
50
+ };
51
+ filters: {
52
+ type: string;
53
+ attribute: string;
54
+ operatorReplace: string;
55
+ operator: string;
56
+ innerGroupOperator: string;
57
+ outerGroupOperator: string;
58
+ value: string;
59
+ filterGroup: number;
60
+ filterNumber: number;
61
+ isValid: boolean;
62
+ }[];
63
+ id: number;
64
+ language: string;
65
+ orientation: Orientation;
66
+ productIds: string[];
67
+ recommendedProducts: [];
68
+ sendProductRequestFlag: false;
69
+ shuffleProducts: false;
70
+ strategy: string;
71
+ textTrimming: boolean;
72
+ unresponsive: boolean;
73
+ size: string;
74
+ };
75
+ recommendationProducts: {
76
+ image_url: string;
77
+ name: string;
78
+ item_id: string;
79
+ url: string;
80
+ in_stock: number;
81
+ price: {
82
+ [key: string]: number;
83
+ };
84
+ locale: string;
85
+ product_attributes: {
86
+ [key: string]: string;
87
+ };
88
+ category: string[];
89
+ discount: {
90
+ [key: string]: number;
91
+ };
92
+ original_price: {
93
+ [key: string]: number;
94
+ };
95
+ }[];
96
+ activePredictiveAlgorithms: number[];
97
+ languages: Languages;
98
+ currencyList: {
99
+ text: string;
100
+ value: string;
101
+ }[];
102
+ filterStatus: boolean;
103
+ filterSelectionDrawerStatus: boolean;
104
+ filterList: FiltersResponse;
105
+ filterGroup: number;
106
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => boolean;
107
+ getFilterGroupCount: (state: {
108
+ recommendationCampaignUrls: Record<string, string>;
109
+ recommendationConfigs: {
110
+ cardsInRow: number;
111
+ currencySettings: {
112
+ name: string;
113
+ value: string;
114
+ symbol: string;
115
+ alignment: string;
116
+ decimalCount: string;
117
+ decimalSeparator: NumericSeparator;
118
+ thousandSeparator: NumericSeparator;
119
+ };
120
+ filters: {
121
+ type: string;
122
+ attribute: string;
123
+ operatorReplace: string;
124
+ operator: string;
125
+ innerGroupOperator: string;
126
+ outerGroupOperator: string;
127
+ value: string;
128
+ filterGroup: number;
129
+ filterNumber: number;
130
+ isValid: boolean;
131
+ }[];
132
+ id: number;
133
+ language: string;
134
+ orientation: Orientation;
135
+ productIds: string[];
136
+ recommendedProducts: [];
137
+ sendProductRequestFlag: false;
138
+ shuffleProducts: false;
139
+ strategy: string;
140
+ textTrimming: boolean;
141
+ unresponsive: boolean;
142
+ size: string;
143
+ };
144
+ recommendationProducts: {
145
+ image_url: string;
146
+ name: string;
147
+ item_id: string;
148
+ url: string;
149
+ in_stock: number;
150
+ price: {
151
+ [key: string]: number;
152
+ };
153
+ locale: string;
154
+ product_attributes: {
155
+ [key: string]: string;
156
+ };
157
+ category: string[];
158
+ discount: {
159
+ [key: string]: number;
160
+ };
161
+ original_price: {
162
+ [key: string]: number;
163
+ };
164
+ }[];
165
+ activePredictiveAlgorithms: number[];
166
+ languages: Languages;
167
+ currencyList: {
168
+ text: string;
169
+ value: string;
170
+ }[];
171
+ filterStatus: boolean;
172
+ filterSelectionDrawerStatus: boolean;
173
+ filterList: FiltersResponse;
174
+ filterGroup: number;
175
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => number;
176
+ getActivePredictiveAlgorithms: (state: {
177
+ recommendationCampaignUrls: Record<string, string>;
178
+ recommendationConfigs: {
179
+ cardsInRow: number;
180
+ currencySettings: {
181
+ name: string;
182
+ value: string;
183
+ symbol: string;
184
+ alignment: string;
185
+ decimalCount: string;
186
+ decimalSeparator: NumericSeparator;
187
+ thousandSeparator: NumericSeparator;
188
+ };
189
+ filters: {
190
+ type: string;
191
+ attribute: string;
192
+ operatorReplace: string;
193
+ operator: string;
194
+ innerGroupOperator: string;
195
+ outerGroupOperator: string;
196
+ value: string;
197
+ filterGroup: number;
198
+ filterNumber: number;
199
+ isValid: boolean;
200
+ }[];
201
+ id: number;
202
+ language: string;
203
+ orientation: Orientation;
204
+ productIds: string[];
205
+ recommendedProducts: [];
206
+ sendProductRequestFlag: false;
207
+ shuffleProducts: false;
208
+ strategy: string;
209
+ textTrimming: boolean;
210
+ unresponsive: boolean;
211
+ size: string;
212
+ };
213
+ recommendationProducts: {
214
+ image_url: string;
215
+ name: string;
216
+ item_id: string;
217
+ url: string;
218
+ in_stock: number;
219
+ price: {
220
+ [key: string]: number;
221
+ };
222
+ locale: string;
223
+ product_attributes: {
224
+ [key: string]: string;
225
+ };
226
+ category: string[];
227
+ discount: {
228
+ [key: string]: number;
229
+ };
230
+ original_price: {
231
+ [key: string]: number;
232
+ };
233
+ }[];
234
+ activePredictiveAlgorithms: number[];
235
+ languages: Languages;
236
+ currencyList: {
237
+ text: string;
238
+ value: string;
239
+ }[];
240
+ filterStatus: boolean;
241
+ filterSelectionDrawerStatus: boolean;
242
+ filterList: FiltersResponse;
243
+ filterGroup: number;
244
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
245
+ text: string;
246
+ value: string;
247
+ }[];
248
+ getLanguages: (state: {
249
+ recommendationCampaignUrls: Record<string, string>;
250
+ recommendationConfigs: {
251
+ cardsInRow: number;
252
+ currencySettings: {
253
+ name: string;
254
+ value: string;
255
+ symbol: string;
256
+ alignment: string;
257
+ decimalCount: string;
258
+ decimalSeparator: NumericSeparator;
259
+ thousandSeparator: NumericSeparator;
260
+ };
261
+ filters: {
262
+ type: string;
263
+ attribute: string;
264
+ operatorReplace: string;
265
+ operator: string;
266
+ innerGroupOperator: string;
267
+ outerGroupOperator: string;
268
+ value: string;
269
+ filterGroup: number;
270
+ filterNumber: number;
271
+ isValid: boolean;
272
+ }[];
273
+ id: number;
274
+ language: string;
275
+ orientation: Orientation;
276
+ productIds: string[];
277
+ recommendedProducts: [];
278
+ sendProductRequestFlag: false;
279
+ shuffleProducts: false;
280
+ strategy: string;
281
+ textTrimming: boolean;
282
+ unresponsive: boolean;
283
+ size: string;
284
+ };
285
+ recommendationProducts: {
286
+ image_url: string;
287
+ name: string;
288
+ item_id: string;
289
+ url: string;
290
+ in_stock: number;
291
+ price: {
292
+ [key: string]: number;
293
+ };
294
+ locale: string;
295
+ product_attributes: {
296
+ [key: string]: string;
297
+ };
298
+ category: string[];
299
+ discount: {
300
+ [key: string]: number;
301
+ };
302
+ original_price: {
303
+ [key: string]: number;
304
+ };
305
+ }[];
306
+ activePredictiveAlgorithms: number[];
307
+ languages: Languages;
308
+ currencyList: {
309
+ text: string;
310
+ value: string;
311
+ }[];
312
+ filterStatus: boolean;
313
+ filterSelectionDrawerStatus: boolean;
314
+ filterList: FiltersResponse;
315
+ filterGroup: number;
316
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
317
+ text: string;
318
+ value: string;
319
+ }[];
320
+ getCurrencySymbolList: (state: {
321
+ recommendationCampaignUrls: Record<string, string>;
322
+ recommendationConfigs: {
323
+ cardsInRow: number;
324
+ currencySettings: {
325
+ name: string;
326
+ value: string;
327
+ symbol: string;
328
+ alignment: string;
329
+ decimalCount: string;
330
+ decimalSeparator: NumericSeparator;
331
+ thousandSeparator: NumericSeparator;
332
+ };
333
+ filters: {
334
+ type: string;
335
+ attribute: string;
336
+ operatorReplace: string;
337
+ operator: string;
338
+ innerGroupOperator: string;
339
+ outerGroupOperator: string;
340
+ value: string;
341
+ filterGroup: number;
342
+ filterNumber: number;
343
+ isValid: boolean;
344
+ }[];
345
+ id: number;
346
+ language: string;
347
+ orientation: Orientation;
348
+ productIds: string[];
349
+ recommendedProducts: [];
350
+ sendProductRequestFlag: false;
351
+ shuffleProducts: false;
352
+ strategy: string;
353
+ textTrimming: boolean;
354
+ unresponsive: boolean;
355
+ size: string;
356
+ };
357
+ recommendationProducts: {
358
+ image_url: string;
359
+ name: string;
360
+ item_id: string;
361
+ url: string;
362
+ in_stock: number;
363
+ price: {
364
+ [key: string]: number;
365
+ };
366
+ locale: string;
367
+ product_attributes: {
368
+ [key: string]: string;
369
+ };
370
+ category: string[];
371
+ discount: {
372
+ [key: string]: number;
373
+ };
374
+ original_price: {
375
+ [key: string]: number;
376
+ };
377
+ }[];
378
+ activePredictiveAlgorithms: number[];
379
+ languages: Languages;
380
+ currencyList: {
381
+ text: string;
382
+ value: string;
383
+ }[];
384
+ filterStatus: boolean;
385
+ filterSelectionDrawerStatus: boolean;
386
+ filterList: FiltersResponse;
387
+ filterGroup: number;
388
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
389
+ text: string;
390
+ value: string;
391
+ }[];
392
+ getFilterList: (state: {
393
+ recommendationCampaignUrls: Record<string, string>;
394
+ recommendationConfigs: {
395
+ cardsInRow: number;
396
+ currencySettings: {
397
+ name: string;
398
+ value: string;
399
+ symbol: string;
400
+ alignment: string;
401
+ decimalCount: string;
402
+ decimalSeparator: NumericSeparator;
403
+ thousandSeparator: NumericSeparator;
404
+ };
405
+ filters: {
406
+ type: string;
407
+ attribute: string;
408
+ operatorReplace: string;
409
+ operator: string;
410
+ innerGroupOperator: string;
411
+ outerGroupOperator: string;
412
+ value: string;
413
+ filterGroup: number;
414
+ filterNumber: number;
415
+ isValid: boolean;
416
+ }[];
417
+ id: number;
418
+ language: string;
419
+ orientation: Orientation;
420
+ productIds: string[];
421
+ recommendedProducts: [];
422
+ sendProductRequestFlag: false;
423
+ shuffleProducts: false;
424
+ strategy: string;
425
+ textTrimming: boolean;
426
+ unresponsive: boolean;
427
+ size: string;
428
+ };
429
+ recommendationProducts: {
430
+ image_url: string;
431
+ name: string;
432
+ item_id: string;
433
+ url: string;
434
+ in_stock: number;
435
+ price: {
436
+ [key: string]: number;
437
+ };
438
+ locale: string;
439
+ product_attributes: {
440
+ [key: string]: string;
441
+ };
442
+ category: string[];
443
+ discount: {
444
+ [key: string]: number;
445
+ };
446
+ original_price: {
447
+ [key: string]: number;
448
+ };
449
+ }[];
450
+ activePredictiveAlgorithms: number[];
451
+ languages: Languages;
452
+ currencyList: {
453
+ text: string;
454
+ value: string;
455
+ }[];
456
+ filterStatus: boolean;
457
+ filterSelectionDrawerStatus: boolean;
458
+ filterList: FiltersResponse;
459
+ filterGroup: number;
460
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
461
+ text: string;
462
+ value: string;
463
+ type: string;
464
+ }[];
465
+ getSelectedFilterGroup: (state: {
466
+ recommendationCampaignUrls: Record<string, string>;
467
+ recommendationConfigs: {
468
+ cardsInRow: number;
469
+ currencySettings: {
470
+ name: string;
471
+ value: string;
472
+ symbol: string;
473
+ alignment: string;
474
+ decimalCount: string;
475
+ decimalSeparator: NumericSeparator;
476
+ thousandSeparator: NumericSeparator;
477
+ };
478
+ filters: {
479
+ type: string;
480
+ attribute: string;
481
+ operatorReplace: string;
482
+ operator: string;
483
+ innerGroupOperator: string;
484
+ outerGroupOperator: string;
485
+ value: string;
486
+ filterGroup: number;
487
+ filterNumber: number;
488
+ isValid: boolean;
489
+ }[];
490
+ id: number;
491
+ language: string;
492
+ orientation: Orientation;
493
+ productIds: string[];
494
+ recommendedProducts: [];
495
+ sendProductRequestFlag: false;
496
+ shuffleProducts: false;
497
+ strategy: string;
498
+ textTrimming: boolean;
499
+ unresponsive: boolean;
500
+ size: string;
501
+ };
502
+ recommendationProducts: {
503
+ image_url: string;
504
+ name: string;
505
+ item_id: string;
506
+ url: string;
507
+ in_stock: number;
508
+ price: {
509
+ [key: string]: number;
510
+ };
511
+ locale: string;
512
+ product_attributes: {
513
+ [key: string]: string;
514
+ };
515
+ category: string[];
516
+ discount: {
517
+ [key: string]: number;
518
+ };
519
+ original_price: {
520
+ [key: string]: number;
521
+ };
522
+ }[];
523
+ activePredictiveAlgorithms: number[];
524
+ languages: Languages;
525
+ currencyList: {
526
+ text: string;
527
+ value: string;
528
+ }[];
529
+ filterStatus: boolean;
530
+ filterSelectionDrawerStatus: boolean;
531
+ filterList: FiltersResponse;
532
+ filterGroup: number;
533
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => (groupId: number) => {
534
+ type: string;
535
+ attribute: string;
536
+ operatorReplace: string;
537
+ operator: string;
538
+ innerGroupOperator: string;
539
+ outerGroupOperator: string;
540
+ value: string;
541
+ filterGroup: number;
542
+ filterNumber: number;
543
+ isValid: boolean;
544
+ }[];
545
+ }, {
546
+ fetchRecommendationCreateData(): Promise<void>;
547
+ fetchRecommendationFilters(): Promise<void>;
548
+ addFilterGroup(filterGroup: number): void;
549
+ updateFilter(updatedFilter: Filter): void;
550
+ deleteFilter(filter: Filter): void;
551
+ addFilter(filter: Filter): void;
552
+ generateFilterQuery(): string;
553
+ fetchRecommendationProducts(): Promise<void>;
554
+ }>;
555
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION } from './templateUtils';
3
+ declare const blockTemplate = "\n <td align=\"left\" class=\"ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <BLOCK_TEXT\n class=\"es-p10t es-p10b es-p20l es-p20r\"\n align=\"center\">\n <p path=\"1\" style=\"font-size: 28px; color: #333333;\">\n <strong path=\"1,0\">{-{-TITLE-}-}</strong>\n </p>\n </BLOCK_TEXT>\n </tbody>\n </table>\n </td>\n </tr>\n \n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
4
+ export declare function getDefaultTemplate(): string;
5
+ /**
6
+ * Generates a custom template with specified products and layout
7
+ * @param products - Array of products to display
8
+ * @param productsPerRow - Number of products per row
9
+ * @param title - Optional title for the block
10
+ * @param composition - Optional array defining order of card elements
11
+ * @returns Complete HTML template
12
+ */
13
+ export declare function generateBlockTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
14
+ export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
15
+ export { DEFAULTS, DEFAULT_CARD_COMPOSITION, getDefaultProducts, };
16
+ export default blockTemplate;
@@ -0,0 +1,16 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ import { DEFAULTS, getDefaultProducts } from './templateUtils';
3
+ declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"recommendation-block\"\n esd-handler-name=\"esd-extension-RecommendationBlock\"\n class=\"ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20\"\n >\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
4
+ export declare function getMigrationTemplate(): string;
5
+ /**
6
+ * Generates a custom migration template with specified products and layout
7
+ * @param products - Array of products to display
8
+ * @param productsPerRow - Number of products per row
9
+ * @param title - Optional title for the block
10
+ * @param composition - Optional array defining order of card elements
11
+ * @returns Complete HTML template
12
+ */
13
+ export declare function generateMigrationTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
14
+ export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
15
+ export { DEFAULTS, getDefaultProducts };
16
+ export default migrationTemplate;
@@ -0,0 +1,44 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ export interface ElementRenderer {
3
+ productImage: (product: RecommendationProduct) => string;
4
+ productName: (product: RecommendationProduct) => string;
5
+ productPrice: (product: RecommendationProduct) => string;
6
+ productOldPrice: (product: RecommendationProduct) => string;
7
+ productButton: (product: RecommendationProduct) => string;
8
+ }
9
+ export interface TemplateConfig {
10
+ spacer: string;
11
+ blockTemplate: string;
12
+ productRow: string;
13
+ productCardWrapper: string;
14
+ elementRenderer: ElementRenderer;
15
+ }
16
+ export declare const DEFAULTS: {
17
+ TITLE: string;
18
+ DESCRIPTION: string;
19
+ };
20
+ export declare const spacer = "\n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n";
21
+ export declare const productRow = "\n <tr>\n <td>\n <table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n {-{-PRODUCTS-}-}\n </table>\n </td>\n </tr>\n";
22
+ export declare const productCardWrapper = "\n <td width=\"{-{-COLUMN_WIDTH-}-}\" style=\"padding: 0 5px;\" valign=\"top\" height=\"100%\">\n <table\n width=\"100%\"\n height=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n class=\"product-card-wrapper\">\n <tr>\n <td\n class=\"product-attribute-cell\"\n valign=\"top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n {-{-PRODUCT_CONTENT-}-}\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
23
+ export declare const DEFAULT_CARD_COMPOSITION: string[];
24
+ export declare function getDefaultProducts(): RecommendationProduct[];
25
+ /**
26
+ * Core template generation logic that works with any element renderer
27
+ * @param products - Array of products to display
28
+ * @param productsPerRow - Number of products per row
29
+ * @param elementRenderer - Object with methods to render each product element
30
+ * @param composition - Optional array defining order of card elements
31
+ * @returns HTML string for product rows
32
+ */
33
+ export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
34
+ /**
35
+ * Generates complete HTML template with dynamic products and layout
36
+ * @param blockTemplate - The base block template string
37
+ * @param products - Array of products to display
38
+ * @param productsPerRow - Number of products per row
39
+ * @param elementRenderer - Element renderer for generating product HTML
40
+ * @param title - Title for the block
41
+ * @param composition - Optional array defining order of card elements
42
+ * @returns Complete HTML template
43
+ */
44
+ export declare function generateTemplate(blockTemplate: string, products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, title?: string, composition?: string[]): string;
@@ -0,0 +1,7 @@
1
+ import type { Filter } from '@@/Types/recommendation';
2
+ /**
3
+ * Generates the complete query with outer group operators
4
+ * @param filters Array of Filter objects
5
+ * @returns Complete query string with outer operators
6
+ */
7
+ export declare function generateCompleteFilterQuery(filters: Filter[]): string;
@@ -1,4 +1,4 @@
1
- import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
1
+ import type { ImmutableHtmlElementNode } from '@stripoinc/ui-editor-extensions';
2
2
  import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
3
3
  export declare const UNSUBSCRIBE_BLOCK_ID = "unsubscribe-block";
4
4
  export declare class UnsubscribeBlock extends Block {
@@ -12,9 +12,8 @@ export declare class UnsubscribeBlock extends Block {
12
12
  getName(): string;
13
13
  getDescription(): string;
14
14
  getTemplate(): string;
15
- onCreated(node: ImmutableHtmlNode): void;
16
- onSelect(node: ImmutableHtmlNode): undefined;
17
- onDelete(node: ImmutableHtmlNode): undefined;
15
+ onSelect(node: ImmutableHtmlElementNode): void;
16
+ onDelete(node: ImmutableHtmlElementNode): void;
18
17
  onDestroy(): void;
19
18
  private _setupSelectEventListener;
20
19
  private _removeSelectEventListener;