@useinsider/guido 1.0.3-beta.b722a77 → 1.0.3-beta.b8dcb37

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 (235) hide show
  1. package/dist/{src/@types → @types}/generic.d.ts +4 -0
  2. package/dist/components/Guido.vue.js +7 -7
  3. package/dist/components/Guido.vue2.js +36 -35
  4. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  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.d.ts +16 -0
  12. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +17 -0
  13. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +27 -0
  14. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +2 -0
  15. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +2 -0
  16. package/dist/composables/useStripo.js +37 -36
  17. package/dist/config/migrator/index.js +7 -6
  18. package/dist/config/migrator/recommendationMigrator.d.ts +1 -0
  19. package/dist/config/migrator/recommendationMigrator.js +203 -0
  20. package/dist/enums/extensions/recommendationBlock.d.ts +16 -0
  21. package/dist/enums/extensions/recommendationBlock.js +80 -0
  22. package/dist/extensions/Blocks/RadioButton/template.js +6 -6
  23. package/dist/extensions/Blocks/Recommendation/block.d.ts +11 -0
  24. package/dist/extensions/Blocks/Recommendation/block.js +30 -0
  25. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +65 -0
  26. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +335 -0
  27. package/dist/extensions/Blocks/Recommendation/control.d.ts +35 -0
  28. package/dist/extensions/Blocks/Recommendation/control.js +305 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +12 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +12 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +12 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +12 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +12 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +12 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +12 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +12 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +12 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +12 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +12 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +12 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +12 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +12 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +12 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +12 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +12 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +12 -0
  65. package/dist/extensions/Blocks/Recommendation/extension.js +29 -0
  66. package/dist/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  67. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  68. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  69. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +72 -0
  70. package/dist/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  71. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  72. package/dist/extensions/Blocks/Recommendation/template.d.ts +43 -0
  73. package/dist/extensions/Blocks/Recommendation/template.js +314 -0
  74. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  75. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  76. package/dist/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +4 -0
  77. package/dist/extensions/Blocks/common-control.d.ts +87 -0
  78. package/dist/extensions/Blocks/common-control.js +184 -0
  79. package/dist/extensions/DynamicContent/extension.d.ts +2 -0
  80. package/dist/guido.css +1 -1
  81. package/dist/mock/api/validator.d.ts +2 -0
  82. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +293 -97
  83. package/dist/services/recommendationApi.d.ts +6 -0
  84. package/dist/services/recommendationApi.js +43 -0
  85. package/dist/{src/stores → stores}/editor.d.ts +21 -0
  86. package/dist/stores/editor.js +2 -1
  87. package/dist/{src/utils → utils}/genericUtil.d.ts +1 -0
  88. package/dist/utils/genericUtil.js +8 -7
  89. package/package.json +3 -8
  90. package/dist/package.json.js +0 -7
  91. /package/dist/{src/@types → @types}/events.d.ts +0 -0
  92. /package/dist/{src/@types → @types}/save-as-template.d.ts +0 -0
  93. /package/dist/{src/App.vue.d.ts → App.vue.d.ts} +0 -0
  94. /package/dist/{src/components → components}/Guido.vue.d.ts +0 -0
  95. /package/dist/{src/components → components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  96. /package/dist/{src/components → components}/organisms/base/Toaster.vue.d.ts +0 -0
  97. /package/dist/{src/components → components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  98. /package/dist/{src/components → components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  99. /package/dist/{src/components → components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  100. /package/dist/{src/components → components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  101. /package/dist/{src/components → components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  102. /package/dist/{src/components → components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  103. /package/dist/{src/components → components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  104. /package/dist/{src/components → components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  105. /package/dist/{src/components → components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  106. /package/dist/{src/components/organisms/header/LeftSlot.vue.d.ts → components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts} +0 -0
  107. /package/dist/{src/components/organisms/header/MiddleSlot.vue.d.ts → components/organisms/extensions/recommendation/Filters.vue.d.ts} +0 -0
  108. /package/dist/{src/components → components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  109. /package/dist/{src/components/organisms/header/ViewOptions.vue.d.ts → components/organisms/header/LeftSlot.vue.d.ts} +0 -0
  110. /package/dist/{src/components/organisms/header/version-history/RestoreButton.vue.d.ts → components/organisms/header/MiddleSlot.vue.d.ts} +0 -0
  111. /package/dist/{src/components → components}/organisms/header/RightSlot.vue.d.ts +0 -0
  112. /package/dist/{src/components/organisms/header/version-history → components/organisms/header}/ViewOptions.vue.d.ts +0 -0
  113. /package/dist/{src/components/organisms/onboarding/AMPOnboarding.vue.d.ts → components/organisms/header/version-history/RestoreButton.vue.d.ts} +0 -0
  114. /package/dist/{src/components → components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  115. /package/dist/{src/components → components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  116. /package/dist/{src/components/organisms/onboarding/GenericOnboarding.vue.d.ts → components/organisms/header/version-history/ViewOptions.vue.d.ts} +0 -0
  117. /package/dist/{src/components/organisms/onboarding/NewVersionPopup.vue.d.ts → components/organisms/onboarding/AMPOnboarding.vue.d.ts} +0 -0
  118. /package/dist/{src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts → components/organisms/onboarding/GenericOnboarding.vue.d.ts} +0 -0
  119. /package/dist/{src/components/organisms/onboarding/TextBlockOnboarding.vue.d.ts → components/organisms/onboarding/NewVersionPopup.vue.d.ts} +0 -0
  120. /package/dist/{src/components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts → components/organisms/onboarding/OnboardingWrapper.vue.d.ts} +0 -0
  121. /package/dist/{src/components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts → components/organisms/onboarding/TextBlockOnboarding.vue.d.ts} +0 -0
  122. /package/dist/{src/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts → components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts} +0 -0
  123. /package/dist/{src/components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts → components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts} +0 -0
  124. /package/dist/{src/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts → components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts} +0 -0
  125. /package/dist/{src/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts → components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts} +0 -0
  126. /package/dist/{src/components → components}/wrappers/WpDrawer.vue.d.ts +0 -0
  127. /package/dist/{src/components → components}/wrappers/WpModal.vue.d.ts +0 -0
  128. /package/dist/{src/composables → composables}/useActionsApi.d.ts +0 -0
  129. /package/dist/{src/composables → composables}/useApiExample.d.ts +0 -0
  130. /package/dist/{src/composables → composables}/useCodeEditorApi.d.ts +0 -0
  131. /package/dist/{src/composables → composables}/useConfig.d.ts +0 -0
  132. /package/dist/{src/composables → composables}/useCustomInterfaceAppearance.d.ts +0 -0
  133. /package/dist/{src/composables → composables}/useDebounce.d.ts +0 -0
  134. /package/dist/{src/composables → composables}/useExport.d.ts +0 -0
  135. /package/dist/{src/composables → composables}/useGuidoActions.d.ts +0 -0
  136. /package/dist/{src/composables → composables}/useHtmlCompiler.d.ts +0 -0
  137. /package/dist/{src/composables → composables}/useHtmlValidator.d.ts +0 -0
  138. /package/dist/{src/composables → composables}/useHttp.d.ts +0 -0
  139. /package/dist/{src/composables → composables}/usePartner.d.ts +0 -0
  140. /package/dist/{src/composables → composables}/usePreviewMode.d.ts +0 -0
  141. /package/dist/{src/composables → composables}/useProvideInject.d.ts +0 -0
  142. /package/dist/{src/composables → composables}/useRecommendation.d.ts +0 -0
  143. /package/dist/{src/composables → composables}/useResponsivePreview.d.ts +0 -0
  144. /package/dist/{src/composables → composables}/useSave.d.ts +0 -0
  145. /package/dist/{src/composables → composables}/useStripo.d.ts +0 -0
  146. /package/dist/{src/composables → composables}/useStripoEventHandler.d.ts +0 -0
  147. /package/dist/{src/composables → composables}/useToaster.d.ts +0 -0
  148. /package/dist/{src/composables → composables}/useTranslations.d.ts +0 -0
  149. /package/dist/{src/composables → composables}/useValidation.d.ts +0 -0
  150. /package/dist/{src/composables → composables}/useVersionHistoryApi.d.ts +0 -0
  151. /package/dist/{src/composables → composables}/validators/saveAsTemplate.d.ts +0 -0
  152. /package/dist/{src/config → config}/compiler/htmlCompilerRules.d.ts +0 -0
  153. /package/dist/{src/config → config}/compiler/outlookCompilerRules.d.ts +0 -0
  154. /package/dist/{src/config → config}/compiler/recommendationCompilerRules.d.ts +0 -0
  155. /package/dist/{src/config → config}/compiler/socialCompilerRules.d.ts +0 -0
  156. /package/dist/{src/config → config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  157. /package/dist/{src/config → config}/migrator/checkboxMigrator.d.ts +0 -0
  158. /package/dist/{src/config → config}/migrator/couponBlockMigrator.d.ts +0 -0
  159. /package/dist/{src/config → config}/migrator/index.d.ts +0 -0
  160. /package/dist/{src/config → config}/migrator/radioButtonMigrator.d.ts +0 -0
  161. /package/dist/{src/config → config}/migrator/unsubscribeMigrator.d.ts +0 -0
  162. /package/dist/{src/enums → enums}/defaults.d.ts +0 -0
  163. /package/dist/{src/enums → enums}/displayConditions.d.ts +0 -0
  164. /package/dist/{src/enums → enums}/html-validator.d.ts +0 -0
  165. /package/dist/{src/enums → enums}/onboarding.d.ts +0 -0
  166. /package/dist/{src/enums → enums}/preview.d.ts +0 -0
  167. /package/dist/{src/enums → enums}/recommendation.d.ts +0 -0
  168. /package/dist/{src/enums → enums}/toaster.d.ts +0 -0
  169. /package/dist/{src/enums → enums}/unsubscribe.d.ts +0 -0
  170. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/block.d.ts +0 -0
  171. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/control.d.ts +0 -0
  172. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  173. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  174. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  175. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/template.d.ts +0 -0
  176. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  177. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  178. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  179. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  180. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  181. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/block.d.ts +0 -0
  182. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/control.d.ts +0 -0
  183. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/extension.d.ts +0 -0
  184. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  185. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  186. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/template.d.ts +0 -0
  187. /package/dist/{src/extensions/Blocks/Unsubscribe → extensions/Blocks/Recommendation}/extension.d.ts +0 -0
  188. /package/dist/{src/extensions/Blocks/Unsubscribe → extensions/Blocks/Recommendation}/settingsPanel.d.ts +0 -0
  189. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/block.d.ts +0 -0
  190. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/control.d.ts +0 -0
  191. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/elements/preview.d.ts +0 -0
  192. /package/dist/{src/extensions/Blocks/_Boilerplate → extensions/Blocks/Unsubscribe}/extension.d.ts +0 -0
  193. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -0
  194. /package/dist/{src/extensions/Blocks/_Boilerplate → extensions/Blocks/Unsubscribe}/settingsPanel.d.ts +0 -0
  195. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/tagRegistry.d.ts +0 -0
  196. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/template.d.ts +0 -0
  197. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/utils/constants.d.ts +0 -0
  198. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/utils/utils.d.ts +0 -0
  199. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  200. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  201. /package/dist/{src/extensions/DynamicContent → extensions/Blocks/_Boilerplate}/extension.d.ts +0 -0
  202. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  203. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  204. /package/dist/{src/extensions → extensions}/DynamicContent/dynamic-content-modal.d.ts +0 -0
  205. /package/dist/{src/extensions → extensions}/DynamicContent/dynamic-content.d.ts +0 -0
  206. /package/dist/{src/library.d.ts → library.d.ts} +0 -0
  207. /package/dist/{src/main.d.ts → main.d.ts} +0 -0
  208. /package/dist/{src/mock → mock}/api/auth.d.ts +0 -0
  209. /package/dist/{src/mock → mock}/api/custom-fonts.d.ts +0 -0
  210. /package/dist/{src/mock → mock}/api/default-template.d.ts +0 -0
  211. /package/dist/{src/mock/api/template-library.d.ts → mock/api/recommendation.d.ts} +0 -0
  212. /package/dist/{src/mock/api/unsubscribe.d.ts → mock/api/template-library.d.ts} +0 -0
  213. /package/dist/{src/mock/api/user-modal-state.d.ts → mock/api/unsubscribe.d.ts} +0 -0
  214. /package/dist/{src/mock/api/validator.d.ts → mock/api/user-modal-state.d.ts} +0 -0
  215. /package/dist/{src/mock → mock}/browser.d.ts +0 -0
  216. /package/dist/{src/mock → mock}/handlers.d.ts +0 -0
  217. /package/dist/{src/services → services}/onboardingApi.d.ts +0 -0
  218. /package/dist/{src/services → services}/stripoApi.d.ts +0 -0
  219. /package/dist/{src/services → services}/templateLibraryApi.d.ts +0 -0
  220. /package/dist/{src/services → services}/unsubscribeApi.d.ts +0 -0
  221. /package/dist/{src/stores → stores}/config.d.ts +0 -0
  222. /package/dist/{src/stores → stores}/dynamic-content.d.ts +0 -0
  223. /package/dist/{src/stores → stores}/onboarding.d.ts +0 -0
  224. /package/dist/{src/stores → stores}/preview.d.ts +0 -0
  225. /package/dist/{src/stores → stores}/recommendation.d.ts +0 -0
  226. /package/dist/{src/stores → stores}/save-as-template.d.ts +0 -0
  227. /package/dist/{src/stores → stores}/toaster.d.ts +0 -0
  228. /package/dist/{src/stores → stores}/unsubscribe.d.ts +0 -0
  229. /package/dist/{src/stores → stores}/version-history.d.ts +0 -0
  230. /package/dist/{src/utils → utils}/arrayUtil.d.ts +0 -0
  231. /package/dist/{src/utils → utils}/base64.d.ts +0 -0
  232. /package/dist/{src/utils → utils}/dateUtil.d.ts +0 -0
  233. /package/dist/{src/utils → utils}/htmlCompiler.d.ts +0 -0
  234. /package/dist/{src/utils → utils}/templatePreparation.d.ts +0 -0
  235. /package/dist/{src/utils → utils}/tooltipUtils.d.ts +0 -0
@@ -0,0 +1,203 @@
1
+ var b = Object.defineProperty;
2
+ var y = (i, e, t) => e in i ? b(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
+ var p = (i, e, t) => y(i, typeof e != "symbol" ? e + "" : e, t);
4
+ import h, { getDefaultProducts as x, prepareProductRows as C } from "../../extensions/Blocks/Recommendation/template.js";
5
+ class w {
6
+ constructor() {
7
+ p(this, "parser");
8
+ this.parser = new DOMParser();
9
+ }
10
+ migrate(e) {
11
+ try {
12
+ const t = this.parser.parseFromString(e, "text/html"), r = t.querySelectorAll(
13
+ 'td.ins-recommendation-v3-block-1, td.product-block[esd-handler-name*="EmailRecommendationV3"]'
14
+ );
15
+ return r.length === 0 ? e : (r.forEach((o) => {
16
+ const n = o.getAttribute("id"), s = this.extractBgColor(o), c = this.extractTitle(o), a = this.extractProductRows(o), u = h.replace("{-{-TITLE-}-}", c).replace("{-{-PRODUCT_ROWS-}-}", a), l = this.parser.parseFromString(
17
+ `<table id="tempDoc"><tbody><tr>${u}</tr></tbody></table>`,
18
+ "text/html"
19
+ ).querySelector(".ins-recommendation-v3-block-v2");
20
+ l && o.parentNode && (n && l.setAttribute("id", n), console.debug("BG Color", s), s && l.setAttribute("bgcolor", s), o.parentNode.replaceChild(l, o));
21
+ }), t.documentElement.outerHTML);
22
+ } catch (t) {
23
+ return console.error("RecommendationMigrator failed:", t), e;
24
+ }
25
+ }
26
+ /**
27
+ * Extracts background color from old block
28
+ *
29
+ * Checks for background color in the following priority order:
30
+ * 1. bgcolor attribute: `<td bgcolor="#f9f9f9">`
31
+ * 2. style attribute: `<td style="background-color: #f9f9f9;">`
32
+ * @example
33
+ * // From bgcolor attribute
34
+ * <td bgcolor="#ffffff"> → "#ffffff"
35
+ *
36
+ * // From style attribute
37
+ * <td style="background-color: rgb(255, 255, 255);"> → "rgb(255, 255, 255)"
38
+ *
39
+ * // No background color
40
+ * <td> → ""
41
+ * @param block - The old recommendation block element
42
+ * @returns The background color value (hex, rgb, rgba, named color) or empty string
43
+ */
44
+ extractBgColor(e) {
45
+ const t = e.getAttribute("bgcolor");
46
+ if (console.debug("bg block", e), console.debug("bg attr", t), t)
47
+ return t.trim();
48
+ const r = e.getAttribute("style");
49
+ if (console.debug("bg style", r), r) {
50
+ const o = r.match(/background-color\s*:\s*([^;]+)/i);
51
+ if (o && o[1])
52
+ return o[1].trim();
53
+ }
54
+ return "";
55
+ }
56
+ /**
57
+ * Extracts title from old block
58
+ *
59
+ * Old structure:
60
+ * <td class="ext-recommendation-title" align="right">
61
+ * <p style="color: #93c47d; font-weight: bold; font-style: italic; font-size: 28px;">
62
+ * This is amazing recommendation
63
+ * </p>
64
+ * </td>
65
+ *
66
+ * New structure (output):
67
+ * <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r" align="center">
68
+ * <p path="1" style="font-size: 28px; color: #333333;">
69
+ * <strong path="1,0">Title Text</strong>
70
+ * </p>
71
+ * </td>
72
+ */
73
+ extractTitle(e) {
74
+ var l, d;
75
+ const t = e.querySelector(".ext-recommendation-title");
76
+ if (!t)
77
+ return this.buildTitleBlock({
78
+ text: "You May Also Like!",
79
+ isBold: !0,
80
+ isItalic: !1,
81
+ align: "center",
82
+ styles: "font-size: 28px; color: #333333;"
83
+ });
84
+ const r = t.querySelector("p");
85
+ if (!r) {
86
+ const m = ((l = t.textContent) == null ? void 0 : l.trim()) || "You May Also Like!", f = t.getAttribute("align") || "center";
87
+ return this.buildTitleBlock({
88
+ text: m,
89
+ isBold: !0,
90
+ isItalic: !1,
91
+ align: f,
92
+ styles: "font-size: 28px; color: #333333;"
93
+ });
94
+ }
95
+ const o = ((d = r.textContent) == null ? void 0 : d.trim()) || "You May Also Like!", n = t.getAttribute("align") || r.getAttribute("align") || "center", s = r.getAttribute("style") || "", c = /font-weight\s*:\s*bold/i.test(s) || !!r.querySelector("b, strong"), a = /font-style\s*:\s*italic/i.test(s) || !!r.querySelector("i, em"), u = this.removeStyleProperties(s, ["font-weight", "font-style"]), g = this.convertInlineToBlock(u);
96
+ return this.buildTitleBlock({
97
+ text: o,
98
+ isBold: c,
99
+ isItalic: a,
100
+ align: n,
101
+ styles: g
102
+ });
103
+ }
104
+ /**
105
+ * Extracts product configuration from old block and generates new product rows
106
+ *
107
+ * Strategy:
108
+ * 1. Extract product count and layout configuration from old block
109
+ * 2. Use prepareProductRows() to generate new HTML structure with default product data
110
+ *
111
+ * The migrator uses default/placeholder product data from getDefaultProducts()
112
+ * to populate the new block structure.
113
+ */
114
+ extractProductRows(e) {
115
+ const t = this.extractProductConfig(e);
116
+ if (!t)
117
+ return console.warn("[RecommendationMigrator] No product config found, using defaults"), this.generateProductRows(6, 3);
118
+ const { totalCount: r, rowCount: o } = t;
119
+ return this.generateProductRows(r, o);
120
+ }
121
+ /**
122
+ * Extracts product configuration from old block
123
+ *
124
+ * Parses esd-dev-product-config attribute:
125
+ * {"rowCount":3,"totalCount":6,"orientation":"vertical",...}
126
+ */
127
+ extractProductConfig(e) {
128
+ const t = e.getAttribute("esd-dev-product-config");
129
+ if (!t)
130
+ return null;
131
+ try {
132
+ const r = t.replace(/&quot;/g, '"').replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">"), o = JSON.parse(r);
133
+ return {
134
+ totalCount: o.totalCount ?? 6,
135
+ rowCount: o.rowCount ?? 3
136
+ };
137
+ } catch (r) {
138
+ return console.error("[RecommendationMigrator] Failed to parse product config:", r), null;
139
+ }
140
+ }
141
+ /**
142
+ * Generates product rows using prepareProductRows with default product data
143
+ *
144
+ * Process:
145
+ * 1. Get default products from getDefaultProducts()
146
+ * 2. Create array of products (repeat defaults if needed to reach totalCount)
147
+ * 3. Call prepareProductRows() to generate HTML structure
148
+ *
149
+ * The generated HTML will contain placeholder/default product data
150
+ * which can be replaced with real data at runtime.
151
+ * @param totalCount - Total number of products (e.g., 6)
152
+ * @param productsPerRow - Products per row (e.g., 3)
153
+ */
154
+ generateProductRows(e, t) {
155
+ const r = x(), o = [];
156
+ for (let n = 0; n < e; n++) {
157
+ const s = r[n % r.length];
158
+ o.push({ ...s });
159
+ }
160
+ return C(o, t);
161
+ }
162
+ /**
163
+ * Builds title block with proper structure
164
+ */
165
+ buildTitleBlock(e) {
166
+ let t = e.text;
167
+ e.isBold && e.isItalic ? t = `<strong path="1,0"><em path="1,0,0">${t}</em></strong>` : e.isBold ? t = `<strong path="1,0">${t}</strong>` : e.isItalic && (t = `<em path="1,0">${t}</em>`);
168
+ const r = e.align ? ` align="${e.align}"` : "", o = e.styles ? ` style="${e.styles}"` : "";
169
+ return `
170
+ <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r"${r}>
171
+ <p path="1"${o}>
172
+ ${t}
173
+ </p>
174
+ </td>
175
+ `;
176
+ }
177
+ /**
178
+ * Removes specified style properties from a style string
179
+ * Helper from CheckboxMigrator
180
+ */
181
+ removeStyleProperties(e, t) {
182
+ return e ? t.reduce((o, n) => {
183
+ const s = new RegExp(`${n}\\s*:\\s*[^;]*;?`, "gi");
184
+ return o.replace(s, "");
185
+ }, e).replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim() : "";
186
+ }
187
+ /**
188
+ * Converts inline display to block display
189
+ * Helper from CheckboxMigrator
190
+ */
191
+ convertInlineToBlock(e) {
192
+ if (!e)
193
+ return "";
194
+ let t = e.replace(/display\s*:\s*inline/gi, "display: block");
195
+ return /display\s*:/i.test(t) || (t = t ? `${t}; display: block` : "display: block"), t.replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim();
196
+ }
197
+ }
198
+ function P(i) {
199
+ return new w().migrate(i);
200
+ }
201
+ export {
202
+ P as migrateRecommendation
203
+ };
@@ -0,0 +1,16 @@
1
+ import type { TextValueObject } from '@@/Types/generic';
2
+ import type { RecommendationFeedItem } from '@@/Types/recommendation';
3
+ export declare const URLS: {
4
+ RECOMMENDATION_API_URL: string;
5
+ };
6
+ export declare const RecommendationFeedSourceMaps: RecommendationFeedItem[];
7
+ export declare const PriceAttributes: string[];
8
+ export declare const currencyLocationMaps: TextValueObject[];
9
+ export declare const currencyOperators: TextValueObject[];
10
+ export declare const currencyDecimalCounts: TextValueObject[];
11
+ export declare const operatorOptionsForStrings: TextValueObject[];
12
+ export declare const operatorOptionsForArrayOfStrings: TextValueObject[];
13
+ export declare const operatorOptionsForNumbers: TextValueObject[];
14
+ export declare const operatorOptionsForDates: TextValueObject[];
15
+ export declare const operatorOptionsForBooleans: TextValueObject[];
16
+ export declare const getOperatorOptions: (type?: string) => TextValueObject[];
@@ -0,0 +1,80 @@
1
+ const s = {
2
+ RECOMMENDATION_API_URL: "http://recommendationv2.api.useinsider.com"
3
+ }, i = [
4
+ { id: 11, key: "similarViewed", name: "Viewed Together", path: "viewed-together" },
5
+ { id: 12, key: "similarBought", name: "Purchased Together", path: "purchased-together" },
6
+ { id: 13, key: "userBased", name: "User Based", path: "user-based" },
7
+ { id: 36, key: "highestDiscounted", name: "Highest Discounted Items", path: "highest-discounted" },
8
+ { id: 38, key: "manualMerchandising", name: "Manual Merchandising", path: "manual-merchandising" },
9
+ { id: 39, key: "newArrivals", name: "New Arrivals", path: "new-arrivals" },
10
+ { id: 40, key: "trendingProducts", name: "Trending Products", path: "trending" },
11
+ { id: 46, key: "mostValuableOfPartner", name: "Most Valuable Products", path: "most-valuable" },
12
+ { id: 61, key: "mostPopular", name: "Most Popular Items", path: "most-popular" },
13
+ { id: 62, key: "mostPurchased", name: "Top Sellers", path: "top-sellers" }
14
+ ], u = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], l = [
15
+ { text: "after the amount", value: "1" },
16
+ { text: "before the amount", value: "0" }
17
+ ], c = [
18
+ { text: "dot(.)", value: "." },
19
+ { text: "comma(,)", value: "," }
20
+ ], d = [
21
+ { text: "0", value: "0" },
22
+ { text: "1", value: "1" },
23
+ { text: "2", value: "2" },
24
+ { text: "3", value: "3" },
25
+ { text: "4", value: "4" },
26
+ { text: "5", value: "5" }
27
+ ], e = [
28
+ { text: "is exactly", value: "=" },
29
+ { text: "contains", value: "~" },
30
+ { text: "does not contain", value: "!~" },
31
+ { text: "any of", value: "||" }
32
+ ], a = [
33
+ { text: "is exactly", value: "=" },
34
+ { text: "is not exactly", value: "!==" },
35
+ { text: "contains", value: "~" },
36
+ { text: "does not contain", value: "!~" },
37
+ { text: "any of", value: "||" }
38
+ ], r = [
39
+ { text: "is equal to", value: "=" },
40
+ { text: "is greater than", value: ">" },
41
+ { text: "is less than", value: "<" }
42
+ ], o = [
43
+ { text: "is equal to", value: "=" },
44
+ { text: "after", value: ">" },
45
+ { text: "before", value: "<" }
46
+ ], n = [
47
+ { text: "true", value: "==" },
48
+ { text: "false", value: "!=" }
49
+ ], p = (t) => {
50
+ if (!t)
51
+ return e;
52
+ switch (t) {
53
+ case "Boolean":
54
+ return n;
55
+ case "Date":
56
+ return o;
57
+ case "Number":
58
+ return r;
59
+ case "String":
60
+ return e;
61
+ case "Strings":
62
+ return a;
63
+ default:
64
+ return e;
65
+ }
66
+ };
67
+ export {
68
+ u as PriceAttributes,
69
+ i as RecommendationFeedSourceMaps,
70
+ s as URLS,
71
+ d as currencyDecimalCounts,
72
+ l as currencyLocationMaps,
73
+ c as currencyOperators,
74
+ p as getOperatorOptions,
75
+ a as operatorOptionsForArrayOfStrings,
76
+ n as operatorOptionsForBooleans,
77
+ o as operatorOptionsForDates,
78
+ r as operatorOptionsForNumbers,
79
+ e as operatorOptionsForStrings
80
+ };
@@ -12,12 +12,12 @@ const e = {
12
12
  <td align="left" width="70%" style="vertical-align: top;">
13
13
  <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
14
14
  <tbody>
15
- <${t.BLOCK_TEXT}>
16
- {-{-TITLE-}-}
17
- </${t.BLOCK_TEXT}>
18
- <${t.BLOCK_TEXT}>
19
- {-{-DESCRIPTION-}-}
20
- </${t.BLOCK_TEXT}>
15
+ <${t.BLOCK_TEXT}>
16
+ {-{-TITLE-}-}
17
+ </${t.BLOCK_TEXT}>
18
+ <${t.BLOCK_TEXT}>
19
+ {-{-DESCRIPTION-}-}
20
+ </${t.BLOCK_TEXT}>
21
21
  </tbody>
22
22
  </table>
23
23
  </td>
@@ -0,0 +1,11 @@
1
+ import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
2
+ export declare const BLOCK_ID = "recommendation-block";
3
+ export declare class RecommendationBlock extends Block {
4
+ constructor();
5
+ getId(): string;
6
+ getIcon(): string;
7
+ getBlockCompositionType(): BlockCompositionType;
8
+ getName(): string;
9
+ getDescription(): string;
10
+ getTemplate(): string;
11
+ }
@@ -0,0 +1,30 @@
1
+ import { Block as e, BlockCompositionType as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { getDefaultTemplate as o } from "./template.js";
3
+ const n = "recommendation-block";
4
+ class m extends e {
5
+ constructor() {
6
+ super();
7
+ }
8
+ getId() {
9
+ return n;
10
+ }
11
+ getIcon() {
12
+ return "recommendation-icon";
13
+ }
14
+ getBlockCompositionType() {
15
+ return t.CONTAINER;
16
+ }
17
+ getName() {
18
+ return this.api.translate("Recommendation Block");
19
+ }
20
+ getDescription() {
21
+ return this.api.translate("Recommendation Block Title Description");
22
+ }
23
+ getTemplate() {
24
+ return o();
25
+ }
26
+ }
27
+ export {
28
+ n as BLOCK_ID,
29
+ m as RecommendationBlock
30
+ };
@@ -0,0 +1,65 @@
1
+ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
+ import { CommonControl } from '../common-control';
3
+ export declare const COMPOSITION_CONTROL_BLOCK_ID = "ui-elements-recommendation-card-composition";
4
+ export interface CardCompositionItem {
5
+ key: string;
6
+ label: string;
7
+ }
8
+ export declare class RecommendationCardCompositionControl extends CommonControl {
9
+ private currentComposition;
10
+ private currentStyling;
11
+ getId(): string;
12
+ getTemplate(): string;
13
+ _getTextColor(label: string, name: string): string;
14
+ _getFontFamily(label: string, name: string): string;
15
+ /**
16
+ * Generate styling controls for Product Name element
17
+ */
18
+ private _getProductNameStylingControls;
19
+ /**
20
+ * Generate styling controls for Product Price element
21
+ */
22
+ private _getProductPriceStylingControls;
23
+ /**
24
+ * Generate styling controls for Product Original Price element
25
+ */
26
+ private _getProductOriginalPriceStylingControls;
27
+ /**
28
+ * Generate styling controls for Product Button element
29
+ */
30
+ private _getProductButtonStylingControls;
31
+ onRender(): void;
32
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
33
+ /**
34
+ * Initialize the composition order from the block or use defaults
35
+ */
36
+ private _initializeComposition;
37
+ /**
38
+ * Apply the reordered composition to the block's HTML structure
39
+ */
40
+ private _applyCompositionToBlock;
41
+ /**
42
+ * Initialize styling from stored block attributes
43
+ */
44
+ private _initializeStyling;
45
+ /**
46
+ * Load default styling values and populate controls
47
+ */
48
+ private _loadDefaultStyling;
49
+ /**
50
+ * Populate control values with current styling
51
+ */
52
+ private _populateControlsWithStyling;
53
+ /**
54
+ * Update styling object for a specific element and property
55
+ */
56
+ private _updateElementStyling;
57
+ /**
58
+ * Persist current styling to block attributes
59
+ */
60
+ private _persistStyling;
61
+ /**
62
+ * Apply styling to a specific element in the DOM
63
+ */
64
+ private _applyStylingToElement;
65
+ }