@useinsider/guido 1.0.3-beta.df46976 → 1.0.3-beta.dfb1fcf

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 (257) hide show
  1. package/README.md +140 -3
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/Guido.vue2.js +79 -73
  4. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  5. package/dist/components/organisms/header/LeftSlot.vue2.js +16 -15
  6. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  7. package/dist/components/organisms/header/RightSlot.vue2.js +23 -22
  8. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +21 -20
  9. package/dist/composables/useBlocksConfig.js +49 -0
  10. package/dist/composables/useGuidoActions.js +19 -9
  11. package/dist/composables/useStripo.js +53 -57
  12. package/dist/config/compiler/unsubscribeCompilerRules.js +33 -28
  13. package/dist/config/migrator/index.js +7 -6
  14. package/dist/config/migrator/recommendationMigrator.js +293 -0
  15. package/dist/enums/date.js +4 -14
  16. package/dist/enums/defaults.js +16 -9
  17. package/dist/enums/onboarding.js +2 -1
  18. package/dist/enums/unsubscribe.js +27 -25
  19. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  20. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  21. package/dist/extensions/Blocks/Recommendation/block.js +6 -3
  22. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +193 -0
  23. package/dist/extensions/Blocks/Recommendation/constants.js +14 -0
  24. package/dist/extensions/Blocks/Recommendation/control.js +109 -65
  25. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  26. package/dist/extensions/Blocks/Recommendation/controls/index.js +272 -0
  27. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  28. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/priceHideControl.js +60 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.js +160 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  35. package/dist/extensions/Blocks/Recommendation/extension.js +18 -7
  36. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +159 -21
  37. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  38. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +184 -0
  39. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +189 -0
  40. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +209 -0
  41. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  42. package/dist/extensions/Blocks/common-control.js +125 -43
  43. package/dist/extensions/Blocks/controlFactories.js +234 -0
  44. package/dist/extensions/DynamicContent/dynamic-content-modal.js +25 -19
  45. package/dist/extensions/DynamicContent/dynamic-content.js +128 -33
  46. package/dist/guido.css +1 -1
  47. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +312 -100
  48. package/dist/package.json.js +7 -0
  49. package/dist/services/stripoApi.js +1 -1
  50. package/dist/{@types → src/@types}/generic.d.ts +41 -6
  51. package/dist/{components → src/components}/Guido.vue.d.ts +3 -2
  52. package/dist/src/composables/useBlocksConfig.d.ts +11 -0
  53. package/dist/{composables → src/composables}/useGuidoActions.d.ts +9 -0
  54. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
  55. package/dist/src/enums/date.d.ts +4 -0
  56. package/dist/src/enums/onboarding.d.ts +2 -0
  57. package/dist/{extensions → src/extensions}/Blocks/Recommendation/block.d.ts +1 -0
  58. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +79 -0
  59. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +91 -0
  60. package/dist/{extensions → src/extensions}/Blocks/Recommendation/control.d.ts +11 -2
  61. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  62. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +71 -0
  63. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  64. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  65. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  66. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  67. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  68. package/dist/src/extensions/Blocks/Recommendation/controls/priceHideControl.d.ts +16 -0
  69. package/dist/src/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.d.ts +50 -0
  70. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  71. package/dist/{extensions → src/extensions}/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  72. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  73. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +16 -0
  74. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +52 -0
  75. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  76. package/dist/{extensions → src/extensions}/Blocks/common-control.d.ts +21 -0
  77. package/dist/src/extensions/Blocks/controlFactories.d.ts +95 -0
  78. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +13 -0
  79. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +66 -0
  80. package/dist/{stores → src/stores}/config.d.ts +9 -2
  81. package/dist/{stores → src/stores}/dynamic-content.d.ts +3 -3
  82. package/dist/{stores → src/stores}/editor.d.ts +1 -1
  83. package/dist/{stores → src/stores}/onboarding.d.ts +1 -1
  84. package/dist/{stores → src/stores}/preview.d.ts +1 -1
  85. package/dist/{stores → src/stores}/recommendation.d.ts +1 -1
  86. package/dist/{stores → src/stores}/save-as-template.d.ts +1 -1
  87. package/dist/{stores → src/stores}/toaster.d.ts +1 -1
  88. package/dist/{stores → src/stores}/unsubscribe.d.ts +1 -1
  89. package/dist/{stores → src/stores}/version-history.d.ts +1 -1
  90. package/dist/src/utils/dateUtil.d.ts +22 -0
  91. package/dist/src/utils/environmentUtil.d.ts +5 -0
  92. package/dist/{utils → src/utils}/genericUtil.d.ts +1 -0
  93. package/dist/static/styles/components/narrow-panel.css.js +10 -0
  94. package/dist/static/styles/components/wide-panel.css.js +0 -4
  95. package/dist/static/styles/customEditorStyle.css.js +19 -0
  96. package/dist/stores/config.js +5 -5
  97. package/dist/stores/dynamic-content.js +2 -2
  98. package/dist/stores/editor.js +1 -1
  99. package/dist/stores/onboarding.js +27 -27
  100. package/dist/stores/preview.js +1 -1
  101. package/dist/stores/recommendation.js +3 -3
  102. package/dist/stores/save-as-template.js +2 -2
  103. package/dist/stores/toaster.js +1 -1
  104. package/dist/stores/unsubscribe.js +1 -1
  105. package/dist/stores/version-history.js +4 -4
  106. package/dist/utils/dateUtil.js +33 -7
  107. package/dist/utils/environmentUtil.js +4 -0
  108. package/dist/utils/genericUtil.js +20 -9
  109. package/package.json +7 -2
  110. package/dist/enums/date.d.ts +0 -13
  111. package/dist/enums/onboarding.d.ts +0 -1
  112. package/dist/extensions/Blocks/Recommendation/template.d.ts +0 -6
  113. package/dist/extensions/Blocks/Recommendation/template.js +0 -200
  114. package/dist/extensions/DynamicContent/dynamic-content-modal.d.ts +0 -6
  115. package/dist/extensions/DynamicContent/dynamic-content.d.ts +0 -16
  116. package/dist/utils/dateUtil.d.ts +0 -2
  117. package/dist/{@types → src/@types}/events.d.ts +0 -0
  118. package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
  119. package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  120. package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  121. package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
  122. package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  123. package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  124. package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  125. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  126. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  127. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  128. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  129. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  130. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  131. package/dist/{components → src/components}/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -0
  132. package/dist/{components → src/components}/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +0 -0
  133. package/dist/{components → src/components}/organisms/extensions/recommendation/Filters.vue.d.ts +0 -0
  134. package/dist/{components → src/components}/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +0 -0
  135. package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  136. package/dist/{components → src/components}/organisms/header/LeftSlot.vue.d.ts +0 -0
  137. package/dist/{components → src/components}/organisms/header/MiddleSlot.vue.d.ts +0 -0
  138. package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
  139. package/dist/{components → src/components}/organisms/header/ViewOptions.vue.d.ts +0 -0
  140. package/dist/{components → src/components}/organisms/header/version-history/RestoreButton.vue.d.ts +0 -0
  141. package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  142. package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  143. package/dist/{components → src/components}/organisms/header/version-history/ViewOptions.vue.d.ts +0 -0
  144. package/dist/{components → src/components}/organisms/onboarding/AMPOnboarding.vue.d.ts +0 -0
  145. package/dist/{components → src/components}/organisms/onboarding/GenericOnboarding.vue.d.ts +0 -0
  146. package/dist/{components → src/components}/organisms/onboarding/NewVersionPopup.vue.d.ts +0 -0
  147. package/dist/{components → src/components}/organisms/onboarding/OnboardingWrapper.vue.d.ts +0 -0
  148. package/dist/{components → src/components}/organisms/onboarding/TextBlockOnboarding.vue.d.ts +0 -0
  149. package/dist/{components → src/components}/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +0 -0
  150. package/dist/{components → src/components}/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +0 -0
  151. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +0 -0
  152. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +0 -0
  153. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +0 -0
  154. package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +0 -0
  155. package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +0 -0
  156. package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +1 -1
  157. /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
  158. /package/dist/{composables → src/composables}/useApiExample.d.ts +0 -0
  159. /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
  160. /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
  161. /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
  162. /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
  163. /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
  164. /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
  165. /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
  166. /package/dist/{composables → src/composables}/useHttp.d.ts +0 -0
  167. /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
  168. /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
  169. /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
  170. /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
  171. /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
  172. /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
  173. /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
  174. /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
  175. /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
  176. /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
  177. /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
  178. /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
  179. /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
  180. /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
  181. /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
  182. /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
  183. /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
  184. /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  185. /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
  186. /package/dist/{config → src/config}/migrator/couponBlockMigrator.d.ts +0 -0
  187. /package/dist/{config → src/config}/migrator/index.d.ts +0 -0
  188. /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
  189. /package/dist/{config → src/config}/migrator/unsubscribeMigrator.d.ts +0 -0
  190. /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
  191. /package/dist/{enums → src/enums}/displayConditions.d.ts +0 -0
  192. /package/dist/{enums → src/enums}/extensions/recommendationBlock.d.ts +0 -0
  193. /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
  194. /package/dist/{enums → src/enums}/preview.d.ts +0 -0
  195. /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
  196. /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
  197. /package/dist/{enums → src/enums}/unsubscribe.d.ts +0 -0
  198. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +0 -0
  199. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
  200. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  201. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  202. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  203. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/template.d.ts +0 -0
  204. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  205. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  206. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  207. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  208. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  209. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +0 -0
  210. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
  211. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/extension.d.ts +0 -0
  212. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  213. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  214. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +0 -0
  215. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/extension.d.ts +0 -0
  216. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/iconsRegistry.d.ts +0 -0
  217. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/settingsPanel.d.ts +0 -0
  218. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/filterUtil.d.ts +0 -0
  219. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/block.d.ts +0 -0
  220. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/control.d.ts +0 -0
  221. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/elements/preview.d.ts +0 -0
  222. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/extension.d.ts +0 -0
  223. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -0
  224. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/settingsPanel.d.ts +0 -0
  225. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/tagRegistry.d.ts +0 -0
  226. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/template.d.ts +0 -0
  227. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/constants.d.ts +0 -0
  228. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/utils.d.ts +0 -0
  229. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  230. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  231. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/extension.d.ts +0 -0
  232. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  233. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/settingsPanel.d.ts +0 -0
  234. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  235. /package/dist/{extensions → src/extensions}/DynamicContent/extension.d.ts +0 -0
  236. /package/dist/{library.d.ts → src/library.d.ts} +0 -0
  237. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  238. /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
  239. /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
  240. /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
  241. /package/dist/{mock → src/mock}/api/recommendation.d.ts +0 -0
  242. /package/dist/{mock → src/mock}/api/template-library.d.ts +0 -0
  243. /package/dist/{mock → src/mock}/api/unsubscribe.d.ts +0 -0
  244. /package/dist/{mock → src/mock}/api/user-modal-state.d.ts +0 -0
  245. /package/dist/{mock → src/mock}/api/validator.d.ts +0 -0
  246. /package/dist/{mock → src/mock}/browser.d.ts +0 -0
  247. /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
  248. /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
  249. /package/dist/{services → src/services}/recommendationApi.d.ts +0 -0
  250. /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
  251. /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
  252. /package/dist/{services → src/services}/unsubscribeApi.d.ts +0 -0
  253. /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
  254. /package/dist/{utils → src/utils}/base64.d.ts +0 -0
  255. /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
  256. /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
  257. /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
@@ -0,0 +1,184 @@
1
+ import { BlockType as e, BlockAttr as o } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationBlockId as s, ATTR_PRODUCT_BUTTON as r, ATTR_PRODUCT_OMNIBUS_DISCOUNT as c, ATTR_PRODUCT_OMNIBUS_PRICE as p, ATTR_PRODUCT_OLD_PRICE as i, ATTR_PRODUCT_PRICE as d, ATTR_PRODUCT_NAME as T, ATTR_PRODUCT_IMAGE as b, ATTR_DATA_PRICE_INLINE as _ } from "../constants.js";
3
+ import { generateTemplate as O, prepareProductRows as u, spacer as C, DEFAULTS as f, getDefaultProducts as R } from "./templateUtils.js";
4
+ import { DEFAULT_CARD_COMPOSITION as A, DEFAULT_CARD_VISIBILITY as h } from "./templateUtils.js";
5
+ const g = `
6
+ <td
7
+ align="left"
8
+ class="ins-recommendation-v3-block-v2 es-p20"
9
+ ${_}="0">
10
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
11
+ <tr>
12
+ <td align="center">
13
+ <table
14
+ class="container"
15
+ width="100%"
16
+ cellpadding="0"
17
+ cellspacing="0"
18
+ border="0">
19
+ <tbody>
20
+ <tr>
21
+ <td>
22
+ <table
23
+ width="100%"
24
+ cellpadding="0"
25
+ cellspacing="0"
26
+ border="0">
27
+ <tbody>
28
+ <${e.BLOCK_TEXT}
29
+ class="es-p10t es-p10b es-p20l es-p20r"
30
+ align="center">
31
+ <p path="1" style="font-size: 28px; color: #333333;">
32
+ <strong path="1,0">{-{-TITLE-}-}</strong>
33
+ </p>
34
+ </${e.BLOCK_TEXT}>
35
+ </tbody>
36
+ </table>
37
+ </td>
38
+ </tr>
39
+ ${C}
40
+ <tr>
41
+ <td>
42
+ <table
43
+ class="ins-recommendation-product-container"
44
+ width="100%"
45
+ cellpadding="0"
46
+ cellspacing="0"
47
+ border="0"
48
+ >
49
+ {-{-PRODUCT_ROWS-}-}
50
+ </table>
51
+ </td>
52
+ </tr>
53
+ </tbody>
54
+ </table>
55
+ </td>
56
+ </tr>
57
+ </table>
58
+ </td>
59
+ `, n = {
60
+ [b]: (t) => `
61
+ <${e.BLOCK_IMAGE}
62
+ ${o.BLOCK_IMAGE.src}="${t.image_url}"
63
+ ${o.BLOCK_IMAGE.alt}="${t.name}"
64
+ ${o.BLOCK_IMAGE.href}="#"
65
+ class="product-image"
66
+ align="center"
67
+ style="max-width: 100%; height: auto; margin: 0 auto;"
68
+ esd-extension-block-id="${s.IMAGE}">
69
+ </${e.BLOCK_IMAGE}>
70
+ `,
71
+ [T]: (t) => `
72
+ <${e.BLOCK_TEXT}
73
+ class="product-name es-p10t es-p10b es-p15l es-p15r"
74
+ align="center"
75
+ esd-extension-block-id="${s.NAME}">
76
+ <p path="1" contenteditable="false" style="font-size: 16px; color: #333333;">
77
+ <strong path="1,0">${t.name}</strong>
78
+ </p>
79
+ </${e.BLOCK_TEXT}>
80
+ `,
81
+ [d]: () => `
82
+ <${e.BLOCK_TEXT}
83
+ class="product-price es-p15l es-p15r"
84
+ align="center"
85
+ esd-extension-block-id="${s.PRICE}">
86
+ <p path="1" contenteditable="false" style="font-size: 16px; color: #333333;">
87
+ <strong path="1,0">18,00 TRY</strong>
88
+ </p>
89
+ </${e.BLOCK_TEXT}>
90
+ `,
91
+ [i]: () => `
92
+ <${e.BLOCK_TEXT}
93
+ class="product-old-price es-p15l es-p15r"
94
+ align="center"
95
+ esd-extension-block-id="${s.OLD_PRICE}">
96
+ <p path="1" contenteditable="false" style="font-size: 14px; color: #999999;">
97
+ <s path="1,0">20,00 TRY</s>
98
+ </p>
99
+ </${e.BLOCK_TEXT}>
100
+ `,
101
+ [p]: () => `
102
+ <${e.BLOCK_TEXT}
103
+ class="product-omnibus-price es-p15l es-p15r"
104
+ align="center"
105
+ data-text-before="Lowest 30-day price: "
106
+ data-text-after=""
107
+ esd-extension-block-id="${s.OMNIBUS_PRICE}">
108
+ <p path="1" contenteditable="false" style="font-size: 12px; color: #666666;">
109
+ <span class="omnibus-text-before">Lowest 30-day price: </span>
110
+ <span class="omnibus-price-value">17,00 TRY</span>
111
+ <span class="omnibus-text-after"></span>
112
+ </p>
113
+ </${e.BLOCK_TEXT}>
114
+ `,
115
+ [c]: () => `
116
+ <${e.BLOCK_TEXT}
117
+ class="product-omnibus-discount es-p15l es-p15r"
118
+ align="center"
119
+ data-text-before=""
120
+ data-text-after=""
121
+ esd-extension-block-id="${s.OMNIBUS_DISCOUNT}">
122
+ <p path="1" contenteditable="false" style="font-size: 12px; color: #666666;">
123
+ <span class="omnibus-text-before"></span>
124
+ <span class="omnibus-discount-value">-6%</span>
125
+ <span class="omnibus-text-after"></span>
126
+ </p>
127
+ </${e.BLOCK_TEXT}>
128
+ `,
129
+ [r]: () => `
130
+ <${e.BLOCK_BUTTON}
131
+ ${o.BLOCK_BUTTON.href}="#"
132
+ class="product-button es-p10t es-p10b"
133
+ align="center"
134
+ esd-extension-block-id="${s.BUTTON}">
135
+ <span class="es-button-border">
136
+ <a
137
+ href="#"
138
+ class="es-button buy-button"
139
+ target="_blank"
140
+ style="
141
+ display: inline-block;
142
+ width: 90%;
143
+ max-width: 150px;
144
+ padding: 12px 20px;
145
+ background-color: #ffffff;
146
+ color: #333333;
147
+ text-decoration: none;
148
+ border: 2px solid #cccccc;
149
+ font-size: 16px;
150
+ box-sizing: border-box;
151
+ ">
152
+ Buy
153
+ </a>
154
+ </span>
155
+ </${e.BLOCK_BUTTON}>
156
+ `
157
+ };
158
+ function x() {
159
+ const t = R();
160
+ return O(
161
+ g,
162
+ t,
163
+ 3,
164
+ n,
165
+ f.TITLE
166
+ );
167
+ }
168
+ function $(t, a, l) {
169
+ return u(
170
+ t,
171
+ a,
172
+ n,
173
+ l
174
+ );
175
+ }
176
+ export {
177
+ f as DEFAULTS,
178
+ A as DEFAULT_CARD_COMPOSITION,
179
+ h as DEFAULT_CARD_VISIBILITY,
180
+ g as default,
181
+ R as getDefaultProducts,
182
+ x as getDefaultTemplate,
183
+ $ as prepareProductRows
184
+ };
@@ -0,0 +1,189 @@
1
+ import { ATTR_PRODUCT_BUTTON as o, ATTR_PRODUCT_OMNIBUS_DISCOUNT as a, ATTR_PRODUCT_OMNIBUS_PRICE as s, ATTR_PRODUCT_OLD_PRICE as l, ATTR_PRODUCT_PRICE as r, ATTR_PRODUCT_NAME as c, ATTR_PRODUCT_IMAGE as d } from "../constants.js";
2
+ import { prepareProductRows as i } from "./templateUtils.js";
3
+ import { DEFAULTS as f, getDefaultProducts as k } from "./templateUtils.js";
4
+ const g = `
5
+ <td
6
+ align="left"
7
+ esd-extension-block-id="recommendation-block"
8
+ esd-handler-name="esd-extension-RecommendationBlock"
9
+ class="ins-recommendation-v3-block-v2 es-p20 esd-recommendation-block esd-extension-block esd-container-frame"
10
+ data-price-inline="0">
11
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
12
+ <tr>
13
+ <td align="center">
14
+ <table
15
+ class="container"
16
+ width="100%"
17
+ cellpadding="0"
18
+ cellspacing="0"
19
+ border="0">
20
+ <tbody>
21
+ <tr>
22
+ <td>
23
+ <table
24
+ width="100%"
25
+ cellpadding="0"
26
+ cellspacing="0"
27
+ border="0">
28
+ <tbody>
29
+ <tr>
30
+ {-{-TITLE-}-}
31
+ </tr>
32
+ </tbody>
33
+ </table>
34
+ </td>
35
+ </tr>
36
+ <tr>
37
+ <td class="spacer" style="height: 20px;"></td>
38
+ </tr>
39
+ <tr>
40
+ <td>
41
+ <table
42
+ class="ins-recommendation-product-container"
43
+ width="100%"
44
+ cellpadding="0"
45
+ cellspacing="0"
46
+ border="0"
47
+ >
48
+ {-{-PRODUCT_ROWS-}-}
49
+ </table>
50
+ </td>
51
+ </tr>
52
+ </tbody>
53
+ </table>
54
+ </td>
55
+ </tr>
56
+ </table>
57
+ </td>
58
+ `, p = {
59
+ [d]: (t) => `
60
+ <tr>
61
+ <td
62
+ class="esd-block-image product-image"
63
+ esd-extension-block-id="recommendation-block-image"
64
+ align="center"
65
+ style="font-size: 0px;">
66
+ <a target="_blank" href="${t.url}">
67
+ <img
68
+ src="${t.image_url}"
69
+ alt="${t.name}"
70
+ width="120"
71
+ style="display: block; max-width: 100%; height: auto;"
72
+ class="adapt-img">
73
+ </a>
74
+ </td>
75
+ </tr>
76
+ `,
77
+ [c]: (t) => `
78
+ <tr>
79
+ <td
80
+ class="esd-block-text product-name"
81
+ esd-extension-block-id="recommendation-block-name"
82
+ align="center">
83
+ <p
84
+ path="1"
85
+ contenteditable="false"
86
+ style="font-size: 16px; color: #333333; font-weight: 600; text-align: center;">
87
+ <strong path="1,0">${t.name}</strong>
88
+ </p>
89
+ </td>
90
+ </tr>
91
+ `,
92
+ [r]: () => `
93
+ <tr>
94
+ <td
95
+ class="esd-block-text product-price"
96
+ esd-extension-block-id="recommendation-block-price"
97
+ align="center">
98
+ <p
99
+ path="1"
100
+ contenteditable="false"
101
+ style="font-size: 16px; color: #333333; font-weight: bold; text-align: center;">
102
+ <strong path="1,0">18,00 TRY</strong>
103
+ </p>
104
+ </td>
105
+ </tr>
106
+ `,
107
+ [l]: () => `
108
+ <tr>
109
+ <td
110
+ class="esd-block-text product-old-price"
111
+ esd-extension-block-id="recommendation-block-old-price"
112
+ align="center">
113
+ <p
114
+ path="1"
115
+ contenteditable="false"
116
+ style="font-size: 14px; color: #999999; text-decoration: line-through; text-align: center;">
117
+ <s path="1,0">20,00 TRY</s>
118
+ </p>
119
+ </td>
120
+ </tr>
121
+ `,
122
+ [s]: () => `
123
+ <tr>
124
+ <td
125
+ class="esd-block-text product-omnibus-price"
126
+ esd-extension-block-id="recommendation-block-omnibus-price"
127
+ data-text-before="Lowest 30-day price: "
128
+ data-text-after=""
129
+ align="center">
130
+ <p
131
+ path="1"
132
+ contenteditable="false"
133
+ style="font-size: 14px; color: #666666; text-align: center;"><span
134
+ class="omnibus-text-before">Lowest 30-day price: </span><span
135
+ class="omnibus-price-value">17,00 TRY</span><span
136
+ class="omnibus-text-after"></span></p>
137
+ </td>
138
+ </tr>
139
+ `,
140
+ [a]: () => `
141
+ <tr>
142
+ <td
143
+ class="esd-block-text product-omnibus-discount"
144
+ esd-extension-block-id="recommendation-block-omnibus-discount"
145
+ data-text-before=""
146
+ data-text-after=""
147
+ align="center">
148
+ <p
149
+ path="1"
150
+ contenteditable="false"
151
+ style="font-size: 14px; color: #666666; text-align: center;"><span
152
+ class="omnibus-text-before"></span><span
153
+ class="omnibus-discount-value">-6%</span><span
154
+ class="omnibus-text-after"></span></p>
155
+ </td>
156
+ </tr>
157
+ `,
158
+ [o]: (t) => `
159
+ <tr>
160
+ <td
161
+ class="esd-block-button product-button"
162
+ esd-extension-block-id="recommendation-block-button"
163
+ align="center">
164
+ <span class="es-button-border" style="display: block;">
165
+ <a
166
+ href="${t.url}"
167
+ target="_blank"
168
+ class="es-button">
169
+ {-{-PRODUCT_BUTTON_TEXT-}-}
170
+ </a>
171
+ </span>
172
+ </td>
173
+ </tr>
174
+ `
175
+ };
176
+ function u(t, e, n) {
177
+ return i(
178
+ t,
179
+ e,
180
+ p,
181
+ n
182
+ );
183
+ }
184
+ export {
185
+ f as DEFAULTS,
186
+ g as default,
187
+ k as getDefaultProducts,
188
+ u as prepareProductRows
189
+ };
@@ -0,0 +1,209 @@
1
+ import { ATTR_PRODUCT_IMAGE as h, ATTR_PRODUCT_NAME as C, ATTR_PRODUCT_OLD_PRICE as D, ATTR_PRODUCT_PRICE as b, ATTR_PRODUCT_OMNIBUS_PRICE as P, ATTR_PRODUCT_OMNIBUS_DISCOUNT as U, ATTR_PRODUCT_BUTTON as N } from "../constants.js";
2
+ const E = {
3
+ TITLE: "You May Also Like!"
4
+ }, I = `
5
+ <tr>
6
+ <td class="spacer" style="height: 10px;"></td>
7
+ </tr>
8
+ `, A = `
9
+ <tr class="recommendation-product-row">
10
+ <td>
11
+ <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
12
+ {-{-PRODUCTS-}-}
13
+ </table>
14
+ </td>
15
+ </tr>
16
+ `, o = `
17
+ <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
18
+ <table
19
+ width="100%"
20
+ height="100%"
21
+ cellpadding="0"
22
+ cellspacing="0"
23
+ border="0"
24
+ class="product-card-wrapper">
25
+ <tr>
26
+ <td
27
+ class="product-attribute-cell"
28
+ valign="top">
29
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
30
+ <tbody>
31
+ {-{-PRODUCT_CONTENT-}-}
32
+ </tbody>
33
+ </table>
34
+ </td>
35
+ </tr>
36
+ </table>
37
+ </td>
38
+ `, Y = [
39
+ h,
40
+ C,
41
+ D,
42
+ b,
43
+ P,
44
+ U,
45
+ N
46
+ ], S = {
47
+ [h]: !0,
48
+ [C]: !0,
49
+ [b]: !0,
50
+ [D]: !0,
51
+ [P]: !1,
52
+ [U]: !1,
53
+ [N]: !0
54
+ };
55
+ function M() {
56
+ return [
57
+ {
58
+ name: "Product Name",
59
+ image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
60
+ price: { USD: 18 },
61
+ original_price: { USD: 20 },
62
+ discount: { USD: 2 },
63
+ url: "https://example.com/product/1",
64
+ item_id: "1",
65
+ in_stock: 1,
66
+ locale: "en",
67
+ product_attributes: {},
68
+ category: []
69
+ },
70
+ {
71
+ name: "Belt",
72
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
73
+ price: { TRY: 55 },
74
+ original_price: { TRY: 65 },
75
+ discount: { TRY: 10 },
76
+ url: "https://example.com/product/2",
77
+ item_id: "2",
78
+ in_stock: 1,
79
+ locale: "tr",
80
+ product_attributes: {},
81
+ category: []
82
+ },
83
+ {
84
+ name: "Beanie",
85
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
86
+ price: { TRY: 18 },
87
+ original_price: { TRY: 20 },
88
+ discount: { TRY: 2 },
89
+ url: "https://example.com/product/3",
90
+ item_id: "3",
91
+ in_stock: 1,
92
+ locale: "tr",
93
+ product_attributes: {},
94
+ category: []
95
+ },
96
+ {
97
+ name: "Album",
98
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
99
+ price: { TRY: 15 },
100
+ original_price: { TRY: 15 },
101
+ discount: { TRY: 0 },
102
+ url: "https://example.com/product/4",
103
+ item_id: "4",
104
+ in_stock: 1,
105
+ locale: "tr",
106
+ product_attributes: {},
107
+ category: []
108
+ },
109
+ {
110
+ name: "Flying Ninja with a very long product name",
111
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
112
+ price: { TRY: 12 },
113
+ original_price: { TRY: 15 },
114
+ discount: { TRY: 3 },
115
+ url: "https://example.com/product/5",
116
+ item_id: "5",
117
+ in_stock: 1,
118
+ locale: "tr",
119
+ product_attributes: {},
120
+ category: []
121
+ },
122
+ {
123
+ name: "Single",
124
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
125
+ price: { TRY: 22555 },
126
+ original_price: { TRY: 33989 },
127
+ discount: { TRY: 11434 },
128
+ url: "https://example.com/product/6",
129
+ item_id: "6",
130
+ in_stock: 1,
131
+ locale: "tr",
132
+ product_attributes: {},
133
+ category: []
134
+ }
135
+ ];
136
+ }
137
+ function f(a, r, e, l = Y) {
138
+ const s = (100 / r).toFixed(2), p = [];
139
+ for (let i = 0; i < a.length; i += r)
140
+ p.push(a.slice(i, i + r));
141
+ let c = "";
142
+ return p.forEach((i, w) => {
143
+ w > 0 && (c += I);
144
+ let n = "", u = "", d = "", T = "", m = "", _ = "", g = "";
145
+ i.forEach((t) => {
146
+ n += o.replace(
147
+ "{-{-PRODUCT_CONTENT-}-}",
148
+ e.productImage(t)
149
+ ), u += o.replace(
150
+ "{-{-PRODUCT_CONTENT-}-}",
151
+ e.productName(t)
152
+ ), d += o.replace(
153
+ "{-{-PRODUCT_CONTENT-}-}",
154
+ e.productPrice(t)
155
+ ), T += o.replace(
156
+ "{-{-PRODUCT_CONTENT-}-}",
157
+ e.productOldPrice(t)
158
+ ), m += o.replace(
159
+ "{-{-PRODUCT_CONTENT-}-}",
160
+ e.productOmnibusPrice(t)
161
+ ), _ += o.replace(
162
+ "{-{-PRODUCT_CONTENT-}-}",
163
+ e.productOmnibusDiscount(t)
164
+ ), g += o.replace(
165
+ "{-{-PRODUCT_CONTENT-}-}",
166
+ e.productButton(t)
167
+ );
168
+ });
169
+ const R = {
170
+ productImage: n,
171
+ productName: u,
172
+ productPrice: d,
173
+ productOldPrice: T,
174
+ productOmnibusPrice: m,
175
+ productOmnibusDiscount: _,
176
+ productButton: g
177
+ }, y = l.filter((t) => !!R[t]).map((t) => {
178
+ const O = S[t] ?? !0;
179
+ return `
180
+ <tr class="recommendation-attribute-row"
181
+ data-attribute-type="${t}"
182
+ data-visibility="${O ? "1" : "0"}"${O ? "" : ' style="display: none;"'}>
183
+ ${R[t]}
184
+ </tr>
185
+ `;
186
+ }).join("");
187
+ c += A.replace("{-{-PRODUCTS-}-}", y);
188
+ }), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${s}%`);
189
+ }
190
+ function j(a, r, e, l, s = E.TITLE, p) {
191
+ const c = f(
192
+ r,
193
+ e,
194
+ l,
195
+ p
196
+ );
197
+ return a.replace("{-{-TITLE-}-}", s).replace("{-{-PRODUCT_ROWS-}-}", c);
198
+ }
199
+ export {
200
+ E as DEFAULTS,
201
+ Y as DEFAULT_CARD_COMPOSITION,
202
+ S as DEFAULT_CARD_VISIBILITY,
203
+ j as generateTemplate,
204
+ M as getDefaultProducts,
205
+ f as prepareProductRows,
206
+ o as productCardWrapper,
207
+ A as productRow,
208
+ I as spacer
209
+ };
@@ -0,0 +1,25 @@
1
+ function a(n) {
2
+ return "getInnerHTML" in n && typeof n.getInnerHTML == "function" ? n.getInnerHTML() : "innerHTML" in n ? n.innerHTML : "";
3
+ }
4
+ function H(n, t) {
5
+ if (!n)
6
+ return t;
7
+ const r = a(n);
8
+ if (!r || r.trim() === "" || !/<(strong|em|u|s|b|i)\b/i.test(r))
9
+ return t;
10
+ const i = [], s = [];
11
+ let o = r.trim();
12
+ for (; ; ) {
13
+ const u = o.match(/^<(strong|em|u|s|b|i)(\s[^>]*)?>(.*)$/is);
14
+ if (!u)
15
+ break;
16
+ const [, e, f = "", g] = u, c = new RegExp(`</${e}>$`, "i");
17
+ if (!c.test(g))
18
+ break;
19
+ i.push(`<${e}${f}>`), s.unshift(`</${e}>`), o = g.replace(c, "").trim();
20
+ }
21
+ return i.length > 0 ? i.join("") + t + s.join("") : t;
22
+ }
23
+ export {
24
+ H as preserveTextStyles
25
+ };