@useinsider/guido 1.0.3-beta.a6a2da8 → 1.0.3-beta.a75a201

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 (298) hide show
  1. package/README.md +141 -3
  2. package/dist/components/Guido.vue.js +11 -9
  3. package/dist/components/Guido.vue2.js +38 -37
  4. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +28 -0
  5. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +38 -0
  6. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +17 -0
  7. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +37 -0
  8. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +20 -0
  9. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +44 -0
  10. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +17 -0
  11. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +27 -0
  12. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  13. package/dist/components/organisms/header/LeftSlot.vue2.js +16 -15
  14. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  15. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  16. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +30 -17
  17. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -10
  18. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +19 -18
  19. package/dist/composables/useBlocksConfig.js +49 -0
  20. package/dist/composables/useStripo.js +37 -45
  21. package/dist/config/migrator/index.js +7 -6
  22. package/dist/config/migrator/recommendationMigrator.js +293 -0
  23. package/dist/enums/date.js +6 -0
  24. package/dist/enums/defaults.js +15 -8
  25. package/dist/enums/extensions/recommendationBlock.js +80 -0
  26. package/dist/enums/onboarding.js +2 -1
  27. package/dist/enums/unsubscribe.js +15 -11
  28. package/dist/extensions/Blocks/Checkbox/control.js +55 -53
  29. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  30. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  31. package/dist/extensions/Blocks/RadioButton/control.js +44 -42
  32. package/dist/extensions/Blocks/RadioButton/template.js +6 -6
  33. package/dist/extensions/Blocks/Recommendation/block.js +30 -0
  34. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  35. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  36. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/extension.js +45 -0
  72. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  73. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  74. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -0
  75. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  76. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  77. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  78. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  79. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  80. package/dist/extensions/Blocks/common-control.js +184 -0
  81. package/dist/guido.css +1 -1
  82. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +311 -93
  83. package/dist/package.json.js +7 -0
  84. package/dist/services/recommendationApi.js +43 -0
  85. package/dist/services/stripoApi.js +1 -1
  86. package/dist/{@types → src/@types}/generic.d.ts +19 -0
  87. package/dist/{components → src/components}/Guido.vue.d.ts +1 -0
  88. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  89. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +16 -0
  90. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +4 -0
  91. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +4 -0
  92. package/dist/src/composables/useBlocksConfig.d.ts +11 -0
  93. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
  94. package/dist/src/enums/date.d.ts +4 -0
  95. package/dist/src/enums/extensions/recommendationBlock.d.ts +16 -0
  96. package/dist/src/enums/onboarding.d.ts +2 -0
  97. package/dist/{enums → src/enums}/unsubscribe.d.ts +4 -0
  98. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +11 -0
  99. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  100. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +51 -0
  101. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  102. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  103. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  133. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  136. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  137. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  138. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  139. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +16 -0
  140. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  141. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  142. package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +4 -0
  143. package/dist/src/extensions/Blocks/common-control.d.ts +87 -0
  144. package/dist/src/extensions/DynamicContent/extension.d.ts +2 -0
  145. package/dist/src/mock/api/validator.d.ts +2 -0
  146. package/dist/src/services/recommendationApi.d.ts +6 -0
  147. package/dist/{stores → src/stores}/config.d.ts +7 -0
  148. package/dist/{stores → src/stores}/editor.d.ts +21 -0
  149. package/dist/src/utils/dateUtil.d.ts +22 -0
  150. package/dist/{utils → src/utils}/genericUtil.d.ts +1 -0
  151. package/dist/static/styles/components/narrow-panel.css.js +10 -0
  152. package/dist/static/styles/customEditorStyle.css.js +5 -0
  153. package/dist/stores/editor.js +2 -1
  154. package/dist/utils/dateUtil.js +24 -3
  155. package/dist/utils/genericUtil.js +8 -7
  156. package/package.json +8 -3
  157. package/dist/enums/onboarding.d.ts +0 -1
  158. package/dist/utils/dateUtil.d.ts +0 -1
  159. package/dist/{@types → src/@types}/events.d.ts +0 -0
  160. package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
  161. package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  162. package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  163. package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
  164. package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  165. package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  166. package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  167. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  168. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  169. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  170. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  171. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  172. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  173. package/dist/{components/organisms/header/LeftSlot.vue.d.ts → src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts} +0 -0
  174. package/dist/{components/organisms/header/MiddleSlot.vue.d.ts → src/components/organisms/extensions/recommendation/Filters.vue.d.ts} +0 -0
  175. package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  176. package/dist/{components/organisms/header/ViewOptions.vue.d.ts → src/components/organisms/header/LeftSlot.vue.d.ts} +0 -0
  177. package/dist/{components/organisms/header/version-history/RestoreButton.vue.d.ts → src/components/organisms/header/MiddleSlot.vue.d.ts} +0 -0
  178. package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
  179. package/dist/{components/organisms/header/version-history → src/components/organisms/header}/ViewOptions.vue.d.ts +0 -0
  180. package/dist/{components/organisms/onboarding/AMPOnboarding.vue.d.ts → src/components/organisms/header/version-history/RestoreButton.vue.d.ts} +0 -0
  181. package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  182. package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  183. package/dist/{components/organisms/onboarding/GenericOnboarding.vue.d.ts → src/components/organisms/header/version-history/ViewOptions.vue.d.ts} +0 -0
  184. package/dist/{components/organisms/onboarding/NewVersionPopup.vue.d.ts → src/components/organisms/onboarding/AMPOnboarding.vue.d.ts} +0 -0
  185. package/dist/{components/organisms/onboarding/OnboardingWrapper.vue.d.ts → src/components/organisms/onboarding/GenericOnboarding.vue.d.ts} +0 -0
  186. package/dist/{components → src/components}/organisms/onboarding/TextBlockOnboarding.vue.d.ts +0 -0
  187. package/dist/{components → src/components}/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +0 -0
  188. package/dist/{components → src/components}/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +0 -0
  189. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +0 -0
  190. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +0 -0
  191. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +0 -0
  192. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +0 -0
  193. package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +0 -0
  194. package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +1 -1
  195. /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
  196. /package/dist/{composables → src/composables}/useApiExample.d.ts +0 -0
  197. /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
  198. /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
  199. /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
  200. /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
  201. /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
  202. /package/dist/{composables → src/composables}/useGuidoActions.d.ts +0 -0
  203. /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
  204. /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
  205. /package/dist/{composables → src/composables}/useHttp.d.ts +0 -0
  206. /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
  207. /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
  208. /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
  209. /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
  210. /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
  211. /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
  212. /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
  213. /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
  214. /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
  215. /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
  216. /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
  217. /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
  218. /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
  219. /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
  220. /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
  221. /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
  222. /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
  223. /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  224. /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
  225. /package/dist/{config → src/config}/migrator/couponBlockMigrator.d.ts +0 -0
  226. /package/dist/{config → src/config}/migrator/index.d.ts +0 -0
  227. /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
  228. /package/dist/{config → src/config}/migrator/unsubscribeMigrator.d.ts +0 -0
  229. /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
  230. /package/dist/{enums → src/enums}/displayConditions.d.ts +0 -0
  231. /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
  232. /package/dist/{enums → src/enums}/preview.d.ts +0 -0
  233. /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
  234. /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
  235. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +0 -0
  236. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
  237. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  238. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  239. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  240. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/template.d.ts +0 -0
  241. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  242. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  243. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  244. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  245. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  246. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +0 -0
  247. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
  248. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/extension.d.ts +0 -0
  249. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  250. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  251. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +0 -0
  252. /package/dist/{extensions/Blocks/Unsubscribe → src/extensions/Blocks/Recommendation}/extension.d.ts +0 -0
  253. /package/dist/{extensions/Blocks/Unsubscribe → src/extensions/Blocks/Recommendation}/settingsPanel.d.ts +0 -0
  254. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/block.d.ts +0 -0
  255. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/control.d.ts +0 -0
  256. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/elements/preview.d.ts +0 -0
  257. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/Unsubscribe}/extension.d.ts +0 -0
  258. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -0
  259. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/Unsubscribe}/settingsPanel.d.ts +0 -0
  260. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/tagRegistry.d.ts +0 -0
  261. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/template.d.ts +0 -0
  262. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/constants.d.ts +0 -0
  263. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/utils.d.ts +0 -0
  264. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  265. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  266. /package/dist/{extensions/DynamicContent → src/extensions/Blocks/_Boilerplate}/extension.d.ts +0 -0
  267. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  268. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  269. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content-modal.d.ts +0 -0
  270. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content.d.ts +0 -0
  271. /package/dist/{library.d.ts → src/library.d.ts} +0 -0
  272. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  273. /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
  274. /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
  275. /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
  276. /package/dist/{mock/api/template-library.d.ts → src/mock/api/recommendation.d.ts} +0 -0
  277. /package/dist/{mock/api/unsubscribe.d.ts → src/mock/api/template-library.d.ts} +0 -0
  278. /package/dist/{mock/api/user-modal-state.d.ts → src/mock/api/unsubscribe.d.ts} +0 -0
  279. /package/dist/{mock/api/validator.d.ts → src/mock/api/user-modal-state.d.ts} +0 -0
  280. /package/dist/{mock → src/mock}/browser.d.ts +0 -0
  281. /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
  282. /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
  283. /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
  284. /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
  285. /package/dist/{services → src/services}/unsubscribeApi.d.ts +0 -0
  286. /package/dist/{stores → src/stores}/dynamic-content.d.ts +0 -0
  287. /package/dist/{stores → src/stores}/onboarding.d.ts +0 -0
  288. /package/dist/{stores → src/stores}/preview.d.ts +0 -0
  289. /package/dist/{stores → src/stores}/recommendation.d.ts +0 -0
  290. /package/dist/{stores → src/stores}/save-as-template.d.ts +0 -0
  291. /package/dist/{stores → src/stores}/toaster.d.ts +0 -0
  292. /package/dist/{stores → src/stores}/unsubscribe.d.ts +0 -0
  293. /package/dist/{stores → src/stores}/version-history.d.ts +0 -0
  294. /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
  295. /package/dist/{utils → src/utils}/base64.d.ts +0 -0
  296. /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
  297. /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
  298. /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
@@ -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<"recommendationExtension", 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;
@@ -0,0 +1,4 @@
1
+ import { SettingsPanelRegistry, SettingsPanelTab } from '@stripoinc/ui-editor-extensions';
2
+ export declare class SettingsPanel extends SettingsPanelRegistry {
3
+ registerBlockControls(blockControlsMap: Record<string, SettingsPanelTab[]>): void;
4
+ }