@useinsider/guido 1.0.3-beta.fc5a751 → 1.0.3-beta.ff71e68

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 (343) hide show
  1. package/README.md +3 -144
  2. package/dist/@types/generic.d.ts +49 -0
  3. package/dist/{src/components → components}/Guido.vue.d.ts +3 -5
  4. package/dist/components/Guido.vue.js +9 -11
  5. package/dist/components/Guido.vue2.js +69 -81
  6. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  7. package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
  8. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  9. package/dist/components/organisms/header/RightSlot.vue2.js +22 -23
  10. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  11. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +17 -30
  12. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +10 -12
  13. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -19
  14. package/dist/{src/components → components}/wrappers/WpDrawer.vue.d.ts +4 -6
  15. package/dist/components/wrappers/WpDrawer.vue.js +4 -6
  16. package/dist/{src/composables → composables}/useGuidoActions.d.ts +0 -9
  17. package/dist/composables/useGuidoActions.js +9 -19
  18. package/dist/composables/useStripo.js +53 -53
  19. package/dist/config/compiler/unsubscribeCompilerRules.js +29 -47
  20. package/dist/config/migrator/index.d.ts +1 -0
  21. package/dist/config/migrator/index.js +7 -9
  22. package/dist/enums/defaults.js +9 -20
  23. package/dist/enums/onboarding.d.ts +1 -0
  24. package/dist/enums/onboarding.js +1 -2
  25. package/dist/enums/unsubscribe.d.ts +15 -0
  26. package/dist/enums/unsubscribe.js +7 -46
  27. package/dist/extensions/Blocks/Checkbox/control.js +31 -35
  28. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  29. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  30. package/dist/extensions/Blocks/RadioButton/control.js +31 -35
  31. package/dist/extensions/Blocks/RadioButton/template.js +6 -6
  32. package/dist/extensions/DynamicContent/dynamic-content-modal.d.ts +6 -0
  33. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  34. package/dist/extensions/DynamicContent/dynamic-content.d.ts +16 -0
  35. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  36. package/dist/guido.css +1 -1
  37. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +93 -312
  38. package/dist/services/stripoApi.js +1 -1
  39. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  40. package/dist/static/styles/customEditorStyle.css.js +0 -5
  41. package/dist/{src/stores → stores}/dynamic-content.d.ts +3 -3
  42. package/dist/stores/dynamic-content.js +2 -2
  43. package/dist/{src/stores → stores}/editor.d.ts +1 -22
  44. package/dist/stores/editor.js +2 -3
  45. package/dist/{src/stores → stores}/onboarding.d.ts +1 -1
  46. package/dist/stores/onboarding.js +27 -27
  47. package/dist/{src/stores → stores}/preview.d.ts +1 -1
  48. package/dist/stores/preview.js +1 -1
  49. package/dist/{src/stores → stores}/recommendation.d.ts +1 -1
  50. package/dist/stores/recommendation.js +3 -3
  51. package/dist/{src/stores → stores}/save-as-template.d.ts +1 -1
  52. package/dist/stores/save-as-template.js +2 -2
  53. package/dist/{src/stores → stores}/toaster.d.ts +1 -1
  54. package/dist/stores/toaster.js +1 -1
  55. package/dist/stores/unsubscribe.d.ts +8 -0
  56. package/dist/stores/unsubscribe.js +6 -126
  57. package/dist/{src/stores → stores}/version-history.d.ts +1 -1
  58. package/dist/stores/version-history.js +4 -4
  59. package/dist/utils/dateUtil.d.ts +1 -0
  60. package/dist/utils/dateUtil.js +3 -24
  61. package/dist/{src/utils → utils}/genericUtil.d.ts +0 -2
  62. package/dist/utils/genericUtil.js +11 -23
  63. package/dist/utils/templatePreparation.js +16 -17
  64. package/package.json +4 -9
  65. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +0 -28
  66. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +0 -38
  67. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +0 -17
  68. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +0 -37
  69. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +0 -20
  70. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +0 -44
  71. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +0 -17
  72. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +0 -27
  73. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.js +0 -18
  74. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue2.js +0 -16
  75. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +0 -24
  76. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +0 -64
  77. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +0 -18
  78. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +0 -107
  79. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +0 -18
  80. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue2.js +0 -12
  81. package/dist/composables/useBlocksConfig.js +0 -49
  82. package/dist/config/migrator/recommendationMigrator.js +0 -293
  83. package/dist/config/migrator/unsubscribeMigrator.js +0 -124
  84. package/dist/enums/date.js +0 -6
  85. package/dist/enums/extensions/recommendationBlock.js +0 -80
  86. package/dist/extensions/Blocks/Recommendation/block.js +0 -30
  87. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  88. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  89. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  90. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  91. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  92. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  93. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  94. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  95. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  96. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  97. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  98. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  99. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  100. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  101. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  102. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  103. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  104. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  105. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  106. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  107. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  108. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  109. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  110. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  111. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  112. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  113. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  114. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  115. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  122. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  123. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  124. package/dist/extensions/Blocks/Recommendation/extension.js +0 -45
  125. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +0 -51
  126. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +0 -19
  127. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +0 -117
  128. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +0 -266
  129. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  130. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  131. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  132. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +0 -28
  133. package/dist/extensions/Blocks/Unsubscribe/block.js +0 -131
  134. package/dist/extensions/Blocks/Unsubscribe/control.js +0 -167
  135. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +0 -42
  136. package/dist/extensions/Blocks/Unsubscribe/extension.js +0 -21
  137. package/dist/extensions/Blocks/Unsubscribe/iconsRegistry.js +0 -21
  138. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +0 -35
  139. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +0 -42
  140. package/dist/extensions/Blocks/Unsubscribe/tagRegistry.js +0 -10
  141. package/dist/extensions/Blocks/Unsubscribe/template.js +0 -22
  142. package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +0 -11
  143. package/dist/extensions/Blocks/Unsubscribe/utils/utils.js +0 -6
  144. package/dist/extensions/Blocks/common-control.js +0 -184
  145. package/dist/package.json.js +0 -7
  146. package/dist/services/recommendationApi.js +0 -43
  147. package/dist/services/unsubscribeApi.js +0 -16
  148. package/dist/src/@types/generic.d.ts +0 -98
  149. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -19
  150. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +0 -16
  151. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +0 -4
  152. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +0 -4
  153. package/dist/src/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +0 -2
  154. package/dist/src/components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +0 -2
  155. package/dist/src/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +0 -2
  156. package/dist/src/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +0 -2
  157. package/dist/src/composables/useBlocksConfig.d.ts +0 -11
  158. package/dist/src/config/migrator/index.d.ts +0 -1
  159. package/dist/src/config/migrator/recommendationMigrator.d.ts +0 -1
  160. package/dist/src/config/migrator/unsubscribeMigrator.d.ts +0 -1
  161. package/dist/src/enums/date.d.ts +0 -4
  162. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -16
  163. package/dist/src/enums/onboarding.d.ts +0 -2
  164. package/dist/src/enums/unsubscribe.d.ts +0 -38
  165. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -11
  166. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  167. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -51
  168. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  169. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  170. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  171. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  172. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  173. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  174. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  175. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  176. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  177. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  178. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  179. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  180. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  181. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  182. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  183. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  184. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  185. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  186. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  187. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  188. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  189. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  190. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  191. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  192. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  193. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  194. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  195. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  196. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  197. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  198. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  199. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  200. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  201. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  202. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  203. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +0 -4
  204. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +0 -555
  205. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  206. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +0 -16
  207. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  208. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +0 -7
  209. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +0 -32
  210. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +0 -29
  211. package/dist/src/extensions/Blocks/Unsubscribe/elements/preview.d.ts +0 -11
  212. package/dist/src/extensions/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -4
  213. package/dist/src/extensions/Blocks/Unsubscribe/settingsPanel.d.ts +0 -4
  214. package/dist/src/extensions/Blocks/Unsubscribe/tagRegistry.d.ts +0 -4
  215. package/dist/src/extensions/Blocks/Unsubscribe/template.d.ts +0 -12
  216. package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +0 -9
  217. package/dist/src/extensions/Blocks/Unsubscribe/utils/utils.d.ts +0 -7
  218. package/dist/src/extensions/Blocks/_Boilerplate/extension.d.ts +0 -2
  219. package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +0 -4
  220. package/dist/src/extensions/Blocks/common-control.d.ts +0 -87
  221. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +0 -13
  222. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +0 -66
  223. package/dist/src/extensions/DynamicContent/extension.d.ts +0 -2
  224. package/dist/src/mock/api/recommendation.d.ts +0 -2
  225. package/dist/src/services/recommendationApi.d.ts +0 -6
  226. package/dist/src/services/unsubscribeApi.d.ts +0 -4
  227. package/dist/src/stores/config.d.ts +0 -104
  228. package/dist/src/stores/unsubscribe.d.ts +0 -256
  229. package/dist/src/utils/dateUtil.d.ts +0 -22
  230. package/dist/src/utils/environmentUtil.d.ts +0 -5
  231. package/dist/stores/config.js +0 -17
  232. package/dist/utils/environmentUtil.js +0 -4
  233. package/dist/{src/@types → @types}/events.d.ts +0 -0
  234. package/dist/{src/@types → @types}/save-as-template.d.ts +0 -0
  235. package/dist/{src/App.vue.d.ts → App.vue.d.ts} +0 -0
  236. package/dist/{src/components → components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  237. package/dist/{src/components → components}/organisms/base/Toaster.vue.d.ts +0 -0
  238. package/dist/{src/components → components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  239. package/dist/{src/components → components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  240. package/dist/{src/components → components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  241. package/dist/{src/components → components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  242. package/dist/{src/components → components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  243. package/dist/{src/components → components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  244. package/dist/{src/components → components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  245. package/dist/{src/components → components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  246. package/dist/{src/components → components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  247. package/dist/{src/components → components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  248. package/dist/{src/components → components}/organisms/header/LeftSlot.vue.d.ts +0 -0
  249. package/dist/{src/components → components}/organisms/header/MiddleSlot.vue.d.ts +0 -0
  250. package/dist/{src/components → components}/organisms/header/RightSlot.vue.d.ts +0 -0
  251. package/dist/{src/components → components}/organisms/header/ViewOptions.vue.d.ts +0 -0
  252. package/dist/{src/components → components}/organisms/header/version-history/RestoreButton.vue.d.ts +0 -0
  253. package/dist/{src/components → components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  254. package/dist/{src/components → components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  255. package/dist/{src/components → components}/organisms/header/version-history/ViewOptions.vue.d.ts +0 -0
  256. package/dist/{src/components → components}/organisms/onboarding/AMPOnboarding.vue.d.ts +0 -0
  257. package/dist/{src/components → components}/organisms/onboarding/GenericOnboarding.vue.d.ts +0 -0
  258. package/dist/{src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts → components/organisms/onboarding/NewVersionPopup.vue.d.ts} +0 -0
  259. package/dist/{src/components/organisms/extensions/recommendation/Filters.vue.d.ts → components/organisms/onboarding/OnboardingWrapper.vue.d.ts} +0 -0
  260. package/dist/{src/components → components}/organisms/onboarding/TextBlockOnboarding.vue.d.ts +0 -0
  261. package/dist/{src/components → components}/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +0 -0
  262. package/dist/{src/components → components}/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +0 -0
  263. package/dist/{src/components → components}/wrappers/WpModal.vue.d.ts +1 -1
  264. /package/dist/{src/composables → composables}/useActionsApi.d.ts +0 -0
  265. /package/dist/{src/composables → composables}/useApiExample.d.ts +0 -0
  266. /package/dist/{src/composables → composables}/useCodeEditorApi.d.ts +0 -0
  267. /package/dist/{src/composables → composables}/useConfig.d.ts +0 -0
  268. /package/dist/{src/composables → composables}/useCustomInterfaceAppearance.d.ts +0 -0
  269. /package/dist/{src/composables → composables}/useDebounce.d.ts +0 -0
  270. /package/dist/{src/composables → composables}/useExport.d.ts +0 -0
  271. /package/dist/{src/composables → composables}/useHtmlCompiler.d.ts +0 -0
  272. /package/dist/{src/composables → composables}/useHtmlValidator.d.ts +0 -0
  273. /package/dist/{src/composables → composables}/useHttp.d.ts +0 -0
  274. /package/dist/{src/composables → composables}/usePartner.d.ts +0 -0
  275. /package/dist/{src/composables → composables}/usePreviewMode.d.ts +0 -0
  276. /package/dist/{src/composables → composables}/useProvideInject.d.ts +0 -0
  277. /package/dist/{src/composables → composables}/useRecommendation.d.ts +0 -0
  278. /package/dist/{src/composables → composables}/useResponsivePreview.d.ts +0 -0
  279. /package/dist/{src/composables → composables}/useSave.d.ts +0 -0
  280. /package/dist/{src/composables → composables}/useStripo.d.ts +0 -0
  281. /package/dist/{src/composables → composables}/useStripoEventHandler.d.ts +0 -0
  282. /package/dist/{src/composables → composables}/useToaster.d.ts +0 -0
  283. /package/dist/{src/composables → composables}/useTranslations.d.ts +0 -0
  284. /package/dist/{src/composables → composables}/useValidation.d.ts +0 -0
  285. /package/dist/{src/composables → composables}/useVersionHistoryApi.d.ts +0 -0
  286. /package/dist/{src/composables → composables}/validators/saveAsTemplate.d.ts +0 -0
  287. /package/dist/{src/config → config}/compiler/htmlCompilerRules.d.ts +0 -0
  288. /package/dist/{src/config → config}/compiler/outlookCompilerRules.d.ts +0 -0
  289. /package/dist/{src/config → config}/compiler/recommendationCompilerRules.d.ts +0 -0
  290. /package/dist/{src/config → config}/compiler/socialCompilerRules.d.ts +0 -0
  291. /package/dist/{src/config → config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  292. /package/dist/{src/config → config}/migrator/checkboxMigrator.d.ts +0 -0
  293. /package/dist/{src/config → config}/migrator/couponBlockMigrator.d.ts +0 -0
  294. /package/dist/{src/config → config}/migrator/radioButtonMigrator.d.ts +0 -0
  295. /package/dist/{src/enums → enums}/defaults.d.ts +0 -0
  296. /package/dist/{src/enums → enums}/displayConditions.d.ts +0 -0
  297. /package/dist/{src/enums → enums}/html-validator.d.ts +0 -0
  298. /package/dist/{src/enums → enums}/preview.d.ts +0 -0
  299. /package/dist/{src/enums → enums}/recommendation.d.ts +0 -0
  300. /package/dist/{src/enums → enums}/toaster.d.ts +0 -0
  301. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/block.d.ts +0 -0
  302. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/control.d.ts +0 -0
  303. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  304. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  305. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  306. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/template.d.ts +0 -0
  307. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  308. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  309. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  310. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  311. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  312. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/block.d.ts +0 -0
  313. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/control.d.ts +0 -0
  314. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/extension.d.ts +0 -0
  315. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  316. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  317. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/template.d.ts +0 -0
  318. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  319. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  320. /package/dist/{src/extensions/Blocks/Recommendation → extensions/Blocks/_Boilerplate}/extension.d.ts +0 -0
  321. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  322. /package/dist/{src/extensions/Blocks/Recommendation → extensions/Blocks/_Boilerplate}/settingsPanel.d.ts +0 -0
  323. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  324. /package/dist/{src/extensions/Blocks/Unsubscribe → extensions/DynamicContent}/extension.d.ts +0 -0
  325. /package/dist/{src/library.d.ts → library.d.ts} +0 -0
  326. /package/dist/{src/main.d.ts → main.d.ts} +0 -0
  327. /package/dist/{src/mock → mock}/api/auth.d.ts +0 -0
  328. /package/dist/{src/mock → mock}/api/custom-fonts.d.ts +0 -0
  329. /package/dist/{src/mock → mock}/api/default-template.d.ts +0 -0
  330. /package/dist/{src/mock → mock}/api/template-library.d.ts +0 -0
  331. /package/dist/{src/mock → mock}/api/unsubscribe.d.ts +0 -0
  332. /package/dist/{src/mock → mock}/api/user-modal-state.d.ts +0 -0
  333. /package/dist/{src/mock → mock}/api/validator.d.ts +0 -0
  334. /package/dist/{src/mock → mock}/browser.d.ts +0 -0
  335. /package/dist/{src/mock → mock}/handlers.d.ts +0 -0
  336. /package/dist/{src/services → services}/onboardingApi.d.ts +0 -0
  337. /package/dist/{src/services → services}/stripoApi.d.ts +0 -0
  338. /package/dist/{src/services → services}/templateLibraryApi.d.ts +0 -0
  339. /package/dist/{src/utils → utils}/arrayUtil.d.ts +0 -0
  340. /package/dist/{src/utils → utils}/base64.d.ts +0 -0
  341. /package/dist/{src/utils → utils}/htmlCompiler.d.ts +0 -0
  342. /package/dist/{src/utils → utils}/templatePreparation.d.ts +0 -0
  343. /package/dist/{src/utils → utils}/tooltipUtils.d.ts +0 -0
@@ -1,180 +0,0 @@
1
- const R = {
2
- TITLE: "You May Also Like!"
3
- }, O = `
4
- <tr>
5
- <td class="spacer" style="height: 20px;"></td>
6
- </tr>
7
- `, w = `
8
- <tr>
9
- <td>
10
- <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
11
- {-{-PRODUCTS-}-}
12
- </table>
13
- </td>
14
- </tr>
15
- `, i = `
16
- <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
17
- <table
18
- width="100%"
19
- height="100%"
20
- cellpadding="0"
21
- cellspacing="0"
22
- border="0"
23
- class="product-card-wrapper">
24
- <tr>
25
- <td
26
- class="product-attribute-cell"
27
- valign="top">
28
- <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
29
- <tbody>
30
- {-{-PRODUCT_CONTENT-}-}
31
- </tbody>
32
- </table>
33
- </td>
34
- </tr>
35
- </table>
36
- </td>
37
- `, b = [
38
- "productImage",
39
- "productName",
40
- "productOldPrice",
41
- "productPrice",
42
- "productButton"
43
- ];
44
- function C() {
45
- return [
46
- {
47
- name: "Product Name",
48
- image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
49
- price: { USD: 18 },
50
- original_price: { USD: 20 },
51
- discount: { USD: 2 },
52
- url: "https://example.com/product/1",
53
- item_id: "1",
54
- in_stock: 1,
55
- locale: "en",
56
- product_attributes: {},
57
- category: []
58
- },
59
- {
60
- name: "Belt",
61
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
62
- price: { TRY: 55 },
63
- original_price: { TRY: 65 },
64
- discount: { TRY: 10 },
65
- url: "https://example.com/product/2",
66
- item_id: "2",
67
- in_stock: 1,
68
- locale: "tr",
69
- product_attributes: {},
70
- category: []
71
- },
72
- {
73
- name: "Beanie",
74
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
75
- price: { TRY: 18 },
76
- original_price: { TRY: 20 },
77
- discount: { TRY: 2 },
78
- url: "https://example.com/product/3",
79
- item_id: "3",
80
- in_stock: 1,
81
- locale: "tr",
82
- product_attributes: {},
83
- category: []
84
- },
85
- {
86
- name: "Album",
87
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
88
- price: { TRY: 15 },
89
- original_price: { TRY: 15 },
90
- discount: { TRY: 0 },
91
- url: "https://example.com/product/4",
92
- item_id: "4",
93
- in_stock: 1,
94
- locale: "tr",
95
- product_attributes: {},
96
- category: []
97
- },
98
- {
99
- name: "Flying Ninja with a very long product name",
100
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
101
- price: { TRY: 12 },
102
- original_price: { TRY: 15 },
103
- discount: { TRY: 3 },
104
- url: "https://example.com/product/5",
105
- item_id: "5",
106
- in_stock: 1,
107
- locale: "tr",
108
- product_attributes: {},
109
- category: []
110
- },
111
- {
112
- name: "Single",
113
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
114
- price: { TRY: 22555 },
115
- original_price: { TRY: 33989 },
116
- discount: { TRY: 11434 },
117
- url: "https://example.com/product/6",
118
- item_id: "6",
119
- in_stock: 1,
120
- locale: "tr",
121
- product_attributes: {},
122
- category: []
123
- }
124
- ];
125
- }
126
- function N(p, r, e, l = b) {
127
- const n = (100 / r).toFixed(2), a = [];
128
- for (let o = 0; o < p.length; o += r)
129
- a.push(p.slice(o, o + r));
130
- let c = "";
131
- return a.forEach((o, _) => {
132
- _ > 0 && (c += O);
133
- let s = "", u = "", d = "", m = "", g = "";
134
- o.forEach((t) => {
135
- s += i.replace(
136
- "{-{-PRODUCT_CONTENT-}-}",
137
- e.productImage(t)
138
- ), u += i.replace(
139
- "{-{-PRODUCT_CONTENT-}-}",
140
- e.productName(t)
141
- ), d += i.replace(
142
- "{-{-PRODUCT_CONTENT-}-}",
143
- e.productPrice(t)
144
- ), m += i.replace(
145
- "{-{-PRODUCT_CONTENT-}-}",
146
- e.productOldPrice(t)
147
- ), g += i.replace(
148
- "{-{-PRODUCT_CONTENT-}-}",
149
- e.productButton(t)
150
- );
151
- });
152
- const T = {
153
- productImage: s,
154
- productName: u,
155
- productPrice: d,
156
- productOldPrice: m,
157
- productButton: g
158
- }, h = l.filter((t) => !!T[t]).map((t) => `<tr>${T[t]}</tr>`).join("");
159
- c += w.replace("{-{-PRODUCTS-}-}", h);
160
- }), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${n}%`);
161
- }
162
- function P(p, r, e, l, n = R.TITLE, a) {
163
- const c = N(
164
- r,
165
- e,
166
- l,
167
- a
168
- );
169
- return p.replace("{-{-TITLE-}-}", n).replace("{-{-PRODUCT_ROWS-}-}", c);
170
- }
171
- export {
172
- R as DEFAULTS,
173
- b as DEFAULT_CARD_COMPOSITION,
174
- P as generateTemplate,
175
- C as getDefaultProducts,
176
- N as prepareProductRows,
177
- i as productCardWrapper,
178
- w as productRow,
179
- O as spacer
180
- };
@@ -1,28 +0,0 @@
1
- function l(t) {
2
- if (t.length === 0)
3
- return "";
4
- const o = t.sort((r, e) => r.filterNumber - e.filterNumber), n = o.map((r) => `[${r.attribute}][${r.operatorReplace}][${r.value}]`), [s, ...p] = n;
5
- let u = s;
6
- for (let r = 0; r < p.length; r++) {
7
- const e = o[r + 1].innerGroupOperator;
8
- u += `${e}${p[r]}`;
9
- }
10
- return `(${u})`;
11
- }
12
- function m(t) {
13
- if (!t || t.length === 0)
14
- return "";
15
- const o = t.reduce((r, e) => (r[e.filterGroup] || (r[e.filterGroup] = []), r[e.filterGroup].push(e), r), {}), n = Object.keys(o).map(Number).sort((r, e) => r - e), s = n.map((r) => {
16
- const e = o[r];
17
- return l(e);
18
- }), [p, ...u] = s;
19
- let i = p;
20
- for (let r = 0; r < u.length; r++) {
21
- const e = n[r + 1], c = o[e][0].outerGroupOperator;
22
- i += `${c}${u[r]}`;
23
- }
24
- return console.debug("🎉 Complete query generated:", i), i.trim();
25
- }
26
- export {
27
- m as generateCompleteFilterQuery
28
- };
@@ -1,131 +0,0 @@
1
- var _ = Object.defineProperty;
2
- var d = (n, i, e) => i in n ? _(n, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[i] = e;
3
- var u = (n, i, e) => d(n, typeof i != "symbol" ? i + "" : i, e);
4
- import { PAGE_TYPES as E } from "../../../enums/unsubscribe.js";
5
- import { useUnsubscribeStore as c } from "../../../stores/unsubscribe.js";
6
- import { Block as S, BlockCompositionType as h, ModificationDescription as b } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- import { getDefaultTemplate as L } from "./template.js";
8
- import { UNSUBSCRIBE_EVENTS as a, DATA_ATTRIBUTES as o } from "./utils/constants.js";
9
- import { parsePageList as m } from "./utils/utils.js";
10
- const v = "unsubscribe-block", g = 'a[data-unsubscribe-link="true"]', B = ".unsubscribe-block-v2", f = "{{ins-unsubscribe-link}}", C = {
11
- [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
12
- [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
13
- };
14
- class D extends S {
15
- constructor() {
16
- super();
17
- u(this, "selectEventListener", null);
18
- u(this, "cancelEventListener", null);
19
- u(this, "currentNode");
20
- }
21
- getId() {
22
- return v;
23
- }
24
- getIcon() {
25
- return "unsubscribe-icon";
26
- }
27
- getBlockCompositionType() {
28
- return h.BLOCK;
29
- }
30
- getName() {
31
- return this.api.translate("Unsubscribe Block");
32
- }
33
- getDescription() {
34
- return this.api.translate("Unsubscribe Block Description");
35
- }
36
- getTemplate() {
37
- return L();
38
- }
39
- onCreated(e) {
40
- "getAttribute" in e && e.getAttribute("data-migration") || (this.currentNode = e, this._resetStoreState(), this._setupSelectEventListener(), this._setupCancelEventListener(), this._checkExistingBlocks(), this._openDrawer());
41
- }
42
- onSelect(e) {
43
- this.currentNode = e, this._resetStoreState(), this._loadBlockState(e), this._setupSelectEventListener();
44
- }
45
- onDelete(e) {
46
- this._removeEventListeners(), this._removeBlockTemplatesFromStore(e), this._resetStoreState();
47
- }
48
- onDestroy() {
49
- this._removeEventListeners(), this.currentNode = void 0;
50
- }
51
- _setupSelectEventListener() {
52
- this._removeSelectEventListener(), this.selectEventListener = (e) => {
53
- const r = e, { collectionType: t, selectedPages: s } = r.detail;
54
- this._updateBlock(t, s.join(","));
55
- }, document.addEventListener(a.SELECT, this.selectEventListener);
56
- }
57
- _removeSelectEventListener() {
58
- this.selectEventListener && (document.removeEventListener(a.SELECT, this.selectEventListener), this.selectEventListener = null);
59
- }
60
- _setupCancelEventListener() {
61
- this._removeCancelEventListener(), this.cancelEventListener = () => {
62
- this._handleCancel();
63
- }, document.addEventListener(a.CANCEL, this.cancelEventListener);
64
- }
65
- _removeCancelEventListener() {
66
- this.cancelEventListener && (document.removeEventListener(a.CANCEL, this.cancelEventListener), this.cancelEventListener = null);
67
- }
68
- _handleCancel() {
69
- this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).delete().apply(new b("Removed unsubscribe block due to cancel"));
70
- }
71
- _removeEventListeners() {
72
- this._removeSelectEventListener(), this._removeCancelEventListener();
73
- }
74
- _updateBlock(e, r) {
75
- if (!this.currentNode || !("querySelector" in this.currentNode))
76
- return;
77
- const t = this.currentNode.querySelector(g);
78
- if (!t)
79
- return;
80
- const s = this._getMergeTag(e);
81
- this.api.getDocumentModifier().modifyHtml(t).setAttribute("href", s).apply(new b(`Updated unsubscribe link to ${s}`)), this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute(o.PAGE_TYPE, e.toString()).setAttribute(o.PAGE_LIST, r).apply(new b("Updated unsubscribe block metadata"));
82
- }
83
- _getMergeTag(e) {
84
- return C[e] ?? f;
85
- }
86
- _openDrawer() {
87
- try {
88
- const e = c();
89
- e.typeSelectionDrawerStatus = !0;
90
- } catch (e) {
91
- console.error("[UnsubscribeBlock] Failed to open drawer:", e);
92
- }
93
- }
94
- _checkExistingBlocks() {
95
- const e = c();
96
- e.isGlobalUnsubscribeDisabled = !1, e.isSubscriptionPreferencesCenterDisabled = !1, this.api.getDocumentRoot().querySelectorAll(B).forEach((t) => {
97
- if ("getAttribute" in t) {
98
- const s = t.getAttribute(o.PAGE_TYPE);
99
- if (s) {
100
- const l = Number(s);
101
- l === E.GLOBAL_UNSUBSCRIBE ? e.isGlobalUnsubscribeDisabled = !0 : l === E.SUBSCRIPTION_PREFERENCE_CENTER && (e.isSubscriptionPreferencesCenterDisabled = !0);
102
- }
103
- }
104
- });
105
- }
106
- _loadBlockState(e) {
107
- if (!("getAttribute" in e))
108
- return;
109
- const r = e.getAttribute(o.PAGE_TYPE), t = e.getAttribute(o.PAGE_LIST);
110
- if (!r || !t)
111
- return;
112
- const s = c(), l = Number(r), p = m(t);
113
- s.setCollectionWithoutAutoSelection(l), s.loadSelectedTemplates(p);
114
- }
115
- _resetStoreState() {
116
- c().$reset();
117
- }
118
- _removeBlockTemplatesFromStore(e) {
119
- if (!("getAttribute" in e))
120
- return;
121
- const r = e.getAttribute(o.PAGE_LIST);
122
- if (!r)
123
- return;
124
- const t = c(), s = m(r);
125
- t.removeUnsubscribePages(s);
126
- }
127
- }
128
- export {
129
- v as UNSUBSCRIBE_BLOCK_ID,
130
- D as UnsubscribeBlock
131
- };
@@ -1,167 +0,0 @@
1
- var h = Object.defineProperty;
2
- var d = (a, s, e) => s in a ? h(a, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[s] = e;
3
- var u = (a, s, e) => d(a, typeof s != "symbol" ? s + "" : s, e);
4
- import { useUnsubscribeStore as l } from "../../../stores/unsubscribe.js";
5
- import { Control as T, UEAttr as i, UIElementType as n } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
- import { DATA_ATTRIBUTES as p } from "./utils/constants.js";
7
- import { parsePageList as _ } from "./utils/utils.js";
8
- const g = "ui-elements-unsubscribe", r = {
9
- SELECT_BUTTON: "selectTemplateButton",
10
- PREV_BUTTON: "prevButton",
11
- NEXT_BUTTON: "nextButton",
12
- COUNTER_TEXT: "counterText",
13
- PREVIEW_IMAGE: "previewImage"
14
- };
15
- class N extends T {
16
- constructor() {
17
- super(...arguments);
18
- u(this, "currentPreviewIndex", 0);
19
- u(this, "currentNode");
20
- u(this, "currentPages");
21
- u(this, "valueChangeHandlers", []);
22
- u(this, "lastParsedAttribute");
23
- }
24
- getId() {
25
- return g;
26
- }
27
- getTemplate() {
28
- return `
29
- <div class="unsubscribe-controls-container container stretch widest-spacing">
30
- ${this._getPreview()}
31
- ${this._getButton()}
32
- </div>
33
- `;
34
- }
35
- onTemplateNodeUpdated(e) {
36
- if (this.currentNode = e, "getAttribute" in this.currentNode) {
37
- const t = this.currentNode.getAttribute(p.PAGE_LIST);
38
- t && (t !== this.lastParsedAttribute && (this.currentPages = _(t), this.lastParsedAttribute = t, this.currentPreviewIndex = 0), this._updatePreview(), this._updateCounter());
39
- }
40
- }
41
- onRender() {
42
- this._listenToFormUpdates(), this._updateCounter();
43
- }
44
- onDestroy() {
45
- this.valueChangeHandlers.forEach((e) => {
46
- typeof e == "function" && e();
47
- }), this.valueChangeHandlers = [], this.currentNode = void 0, this.currentPages = void 0, this.currentPreviewIndex = 0, this.lastParsedAttribute = void 0;
48
- }
49
- get totalTemplates() {
50
- var e;
51
- return ((e = this.currentPages) == null ? void 0 : e.length) ?? 0;
52
- }
53
- _listenToFormUpdates() {
54
- this.valueChangeHandlers.push(
55
- this.api.onValueChanged(r.SELECT_BUTTON, () => this._onButtonClick())
56
- ), this.valueChangeHandlers.push(
57
- this.api.onValueChanged(r.PREV_BUTTON, () => this._onPrevClick())
58
- ), this.valueChangeHandlers.push(
59
- this.api.onValueChanged(r.NEXT_BUTTON, () => this._onNextClick())
60
- );
61
- }
62
- _onButtonClick() {
63
- try {
64
- const e = l();
65
- e.activeType = e.getSelectedCollection[this.currentPreviewIndex], e.pageSelectionUpdateStatus = !0, e.pageSelectionDrawerStatus = !0;
66
- } catch (e) {
67
- console.error("[UnsubscribeControl] Failed to open drawer:", e);
68
- }
69
- }
70
- _onPrevClick() {
71
- this.currentPreviewIndex > 0 && (this.currentPreviewIndex--, this._updatePreview(), this._updateCounter());
72
- }
73
- _onNextClick() {
74
- this.currentPreviewIndex < this.totalTemplates - 1 && (this.currentPreviewIndex++, this._updatePreview(), this._updateCounter());
75
- }
76
- _updatePreview() {
77
- var e;
78
- if ((e = this.currentPages) != null && e.length)
79
- try {
80
- const t = this.currentPages[this.currentPreviewIndex], o = l().getThumbnailByTemplateId(t);
81
- if (!o) {
82
- console.warn("[UnsubscribeControl] No thumbnail found for page:", t);
83
- return;
84
- }
85
- this.api.updateValues({
86
- [r.PREVIEW_IMAGE]: o
87
- });
88
- } catch (t) {
89
- console.error("[UnsubscribeControl] Failed to update preview:", t);
90
- }
91
- }
92
- _updateCounter() {
93
- const e = this.currentPreviewIndex + 1, t = this.totalTemplates, c = this.currentPreviewIndex === 0, o = this.currentPreviewIndex >= t - 1;
94
- this.api.setUIEAttribute(r.PREV_BUTTON, i.BUTTON.disabled, c), this.api.setUIEAttribute(r.NEXT_BUTTON, i.BUTTON.disabled, o), this.api.setUIEAttribute(
95
- r.COUNTER_TEXT,
96
- i.LABEL.text,
97
- `${this.api.translate("Showing")} ${e} ${this.api.translate("of")} ${t}`
98
- );
99
- }
100
- _getPreview() {
101
- return `
102
- <div class="unsubscribe-preview-container">
103
- <div class="unsubscribe-preview-header">
104
- <div class="unsubscribe-preview-title">${this.api.translate("Unsubscribe Template")}</div>
105
- <div class="unsubscribe-preview-controls">
106
- ${this._getPrevButton()}
107
- ${this._getCounterText()}
108
- ${this._getNextButton()}
109
- </div>
110
- </div>
111
- <unsubscribe-preview name="${r.PREVIEW_IMAGE}"></unsubscribe-preview>
112
- </div>
113
- `;
114
- }
115
- _getButton() {
116
- return `
117
- <${n.BUTTON}
118
- id="${r.SELECT_BUTTON}"
119
- class="primary full-width"
120
- ${i.BUTTON.name}="${r.SELECT_BUTTON}"
121
- ${i.BUTTON.caption}="${this.api.translate("Select Template")}"
122
- >
123
- </${n.BUTTON}>
124
- `;
125
- }
126
- _getLabel(e, t) {
127
- return `
128
- <${n.LABEL}
129
- ${i.LABEL.text}="${e}"
130
- ${i.LABEL.name}="${t}"
131
- >
132
- </${n.LABEL}>
133
- `;
134
- }
135
- _getIconButton(e, t, c) {
136
- const o = c ? `${i.BUTTON.disabled}="true"` : "";
137
- return `
138
- <${n.BUTTON}
139
- id="${e}"
140
- class="flat-inline flat-white"
141
- ${i.BUTTON.name}="${e}"
142
- ${o}
143
- >
144
- <${n.ICON}
145
- src="${t}"
146
- class="icon-button"
147
- ></${n.ICON}>
148
- </${n.BUTTON}>
149
- `;
150
- }
151
- _getPrevButton() {
152
- const e = this.currentPreviewIndex === 0;
153
- return this._getIconButton(r.PREV_BUTTON, "arrow-back", e);
154
- }
155
- _getNextButton() {
156
- const e = this.currentPreviewIndex >= this.totalTemplates - 1;
157
- return this._getIconButton(r.NEXT_BUTTON, "arrow-right", e);
158
- }
159
- _getCounterText() {
160
- const t = `Showing ${this.currentPreviewIndex + 1} of ${this.totalTemplates}`;
161
- return this._getLabel(t, r.COUNTER_TEXT);
162
- }
163
- }
164
- export {
165
- g as UNSUBSCRIBE_CONTROL_ID,
166
- N as UnsubscribeControl
167
- };
@@ -1,42 +0,0 @@
1
- var r = Object.defineProperty;
2
- var n = (i, t, e) => t in i ? r(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
3
- var s = (i, t, e) => n(i, typeof t != "symbol" ? t + "" : t, e);
4
- import { UIElement as m } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- const E = "unsubscribe-preview", l = "img", c = "Unsubscribe page preview";
6
- class o extends m {
7
- constructor() {
8
- super(...arguments);
9
- s(this, "imgElement");
10
- }
11
- getId() {
12
- return E;
13
- }
14
- getTemplate() {
15
- return `
16
- <div class="unsubscribe-preview-image-container">
17
- <img
18
- src=""
19
- alt="${c}"
20
- class="unsubscribe-preview-image"
21
- />
22
- </div>
23
- `;
24
- }
25
- onRender(e) {
26
- this.imgElement = e.querySelector(l);
27
- }
28
- setValue(e) {
29
- this.imgElement && (this.imgElement.src = e);
30
- }
31
- getValue() {
32
- var e;
33
- return ((e = this.imgElement) == null ? void 0 : e.src) ?? "";
34
- }
35
- onDestroy() {
36
- this.imgElement = void 0;
37
- }
38
- }
39
- export {
40
- E as PREVIEW_UI_ELEMENT_ID,
41
- o as PreviewUIElement
42
- };
@@ -1,21 +0,0 @@
1
- import { ExtensionBuilder as e } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { UnsubscribeBlock as i } from "./block.js";
3
- import { UnsubscribeControl as t } from "./control.js";
4
- import { PreviewUIElement as o } from "./elements/preview.js";
5
- import { UnsubscribeIconsRegistry as r } from "./iconsRegistry.js";
6
- import { SettingsPanel as s } from "./settingsPanel.js";
7
- import n from "./styles.css.js";
8
- import { UnsubscribeTagRegistry as l } from "./tagRegistry.js";
9
- const f = new e().addBlock(i).withSettingsPanelRegistry(s).addControl(t).addUiElement(o).addStyles(n).withLocalization({
10
- en: {
11
- "Unsubscribe Block": "Unsubscribe Block",
12
- "Unsubscribe Block Description": "Add an unsubscribe link to your email",
13
- "Select Template": "Select Template",
14
- "Unsubscribe Template": "Unsubscribe Template",
15
- Showing: "Showing",
16
- of: "of"
17
- }
18
- }).withUiElementTagRegistry(l).withIconsRegistry(r).build();
19
- export {
20
- f as default
21
- };
@@ -1,21 +0,0 @@
1
- import { IconsRegistry as s } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- class i extends s {
3
- registerIconsSvg(C) {
4
- C["unsubscribe-icon"] = `
5
- <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
6
- <path d="M4.5 9C6.98528 9 9 11.0147 9 13.5C9 15.9853 6.98528 18 4.5 18C2.01472 18 0 15.9853 0 13.5C0
7
- 11.0147 2.01472 9 4.5 9ZM2.17383 12.5879C2.06286 12.8707 2 13.1778 2 13.5C2 14.8807 3.11929 16 4.5
8
- 16C4.82196 16 5.12848 15.936 5.41113 15.8252L2.17383 12.5879ZM4.5 11C4.17785 11 3.87068 11.0629 3.58789
9
- 11.1738L6.8252 14.4111C6.93604 14.1285 7 13.822 7 13.5C7 12.1193 5.88071 11 4.5 11ZM16 0C17.1046 0 18
10
- 0.895431 18 2L18 12C18 13.1046 17.1046 14 16 14H11C10.4477 14 10 13.5523 10 13C10 12.4477 10.4477 12 11
11
- 12H16L16 5.93262L9.49609 8.87305C9.35966 8.94801 9.20653 8.99125 9.04883 8.99805C9.03254 8.99891 9.01624
12
- 8.99895 9 8.99902C8.98344 8.99894 8.9668 8.99894 8.9502 8.99805C8.79257 8.99109 8.63925 8.9481 8.50293
13
- 8.87305L2 5.93262L2 8C2 8.55229 1.55228 9 1 9C0.447715 9 0 8.55229 0 8L0 2C0 0.895431 0.895431
14
- 9.69188e-09 2 0L16 0ZM2 3.80664L9 6.96973L16 3.80664V2L2 2L2 3.80664Z" fill="#666666"/>
15
- </svg>
16
- `;
17
- }
18
- }
19
- export {
20
- i as UnsubscribeIconsRegistry
21
- };
@@ -1,35 +0,0 @@
1
- import { SettingsPanelRegistry as e, SettingsPanelTab as N, SettingsTab as t, TextControls as O } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { UNSUBSCRIBE_BLOCK_ID as I } from "./block.js";
3
- import { UNSUBSCRIBE_CONTROL_ID as _ } from "./control.js";
4
- class R extends e {
5
- registerBlockControls(T) {
6
- T[I] = [
7
- new N(
8
- t.SETTINGS,
9
- [
10
- _,
11
- O.FORMAT,
12
- O.ALIGN,
13
- O.LINE_HEIGHT,
14
- O.DIRECTION,
15
- O.INTERNAL_INDENTS,
16
- O.HIDDEN_NODE
17
- ]
18
- ),
19
- new N(
20
- t.STYLES,
21
- [
22
- O.TEXT_BLOCK_BACKGROUND_COLOR,
23
- O.FONT_FAMILY,
24
- O.FONT_SIZE,
25
- O.FONT_COLOR,
26
- O.FONT_BACKGROUND_COLOR,
27
- O.LINKS_COLOR
28
- ]
29
- )
30
- ];
31
- }
32
- }
33
- export {
34
- R as SettingsPanel
35
- };
@@ -1,42 +0,0 @@
1
- const n = `/* Unsubscribe Extension Styles */
2
-
3
- .unsubscribe-preview-container {
4
- /* Container styling handled by parent classes */
5
- }
6
-
7
- .unsubscribe-preview-header {
8
- display: flex;
9
- justify-content: space-between;
10
- margin-bottom: 8px;
11
- }
12
-
13
- .unsubscribe-preview-title {
14
- font-weight: 500;
15
- }
16
-
17
- .unsubscribe-preview-controls {
18
- display: flex;
19
- gap: 2px;
20
- align-items: center;
21
- color: #666;
22
- }
23
-
24
- /* Preview image container and image */
25
- .unsubscribe-preview-image-container {
26
- width: 100%;
27
- max-height: 400px;
28
- overflow: hidden;
29
- display: flex;
30
- align-items: center;
31
- justify-content: center;
32
- }
33
-
34
- .unsubscribe-preview-image {
35
- object-fit: cover;
36
- width: 100%;
37
- height: auto;
38
- }
39
- `;
40
- export {
41
- n as default
42
- };
@@ -1,10 +0,0 @@
1
- import { UIElementTagRegistry as s } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { PREVIEW_UI_ELEMENT_ID as e } from "./elements/preview.js";
3
- class m extends s {
4
- registerUiElements(r) {
5
- r[e] = e;
6
- }
7
- }
8
- export {
9
- m as UnsubscribeTagRegistry
10
- };