@useinsider/guido 1.0.3-beta.3cb36f8 → 1.0.3-beta.3e280d4

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 (342) hide show
  1. package/dist/components/Guido.vue.js +7 -7
  2. package/dist/components/Guido.vue2.js +74 -68
  3. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +28 -0
  4. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +38 -0
  5. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +17 -0
  6. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +37 -0
  7. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +20 -0
  8. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +44 -0
  9. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +17 -0
  10. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +27 -0
  11. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.js +18 -0
  12. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue2.js +16 -0
  13. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +24 -0
  14. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +64 -0
  15. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +18 -0
  16. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +107 -0
  17. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +18 -0
  18. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue2.js +12 -0
  19. package/dist/components/wrappers/WpDrawer.vue.js +6 -4
  20. package/dist/composables/useStripo.js +59 -48
  21. package/dist/config/compiler/unsubscribeCompilerRules.js +42 -29
  22. package/dist/config/migrator/couponBlockMigrator.js +67 -0
  23. package/dist/config/migrator/index.js +9 -6
  24. package/dist/config/migrator/recommendationMigrator.js +203 -0
  25. package/dist/config/migrator/unsubscribeMigrator.js +124 -0
  26. package/dist/enums/defaults.js +6 -3
  27. package/dist/enums/extensions/recommendationBlock.js +80 -0
  28. package/dist/enums/unsubscribe.js +43 -6
  29. package/dist/extensions/Blocks/Checkbox/block.js +15 -24
  30. package/dist/extensions/Blocks/Checkbox/control.js +55 -67
  31. package/dist/extensions/Blocks/Checkbox/extension.js +5 -16
  32. package/dist/extensions/Blocks/Checkbox/iconsRegistry.js +18 -0
  33. package/dist/extensions/Blocks/Checkbox/settingsPanel.js +12 -25
  34. package/dist/extensions/Blocks/Checkbox/template.js +5 -16
  35. package/dist/extensions/Blocks/CouponBlock/block.js +33 -0
  36. package/dist/extensions/Blocks/CouponBlock/extension.js +8 -0
  37. package/dist/extensions/Blocks/CouponBlock/iconsRegistry.js +33 -0
  38. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +24 -0
  39. package/dist/extensions/Blocks/CouponBlock/template.js +18 -0
  40. package/dist/extensions/Blocks/RadioButton/block.js +13 -22
  41. package/dist/extensions/Blocks/RadioButton/control.js +40 -52
  42. package/dist/extensions/Blocks/RadioButton/extension.js +4 -15
  43. package/dist/extensions/Blocks/RadioButton/iconsRegistry.js +14 -0
  44. package/dist/extensions/Blocks/RadioButton/settingsPanel.js +13 -26
  45. package/dist/extensions/Blocks/RadioButton/template.js +13 -24
  46. package/dist/extensions/Blocks/Recommendation/block.js +30 -0
  47. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +335 -0
  48. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  49. package/dist/extensions/Blocks/Recommendation/control.js +305 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  76. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  84. package/dist/extensions/Blocks/Recommendation/extension.js +45 -0
  85. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  86. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  87. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -0
  88. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  89. package/dist/extensions/Blocks/Recommendation/template.js +365 -0
  90. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  91. package/dist/extensions/Blocks/Unsubscribe/block.js +131 -0
  92. package/dist/extensions/Blocks/Unsubscribe/control.js +167 -0
  93. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +42 -0
  94. package/dist/extensions/Blocks/Unsubscribe/extension.js +21 -0
  95. package/dist/extensions/Blocks/Unsubscribe/iconsRegistry.js +21 -0
  96. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +35 -0
  97. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +42 -0
  98. package/dist/extensions/Blocks/Unsubscribe/tagRegistry.js +10 -0
  99. package/dist/extensions/Blocks/Unsubscribe/template.js +22 -0
  100. package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +11 -0
  101. package/dist/extensions/Blocks/Unsubscribe/utils/utils.js +6 -0
  102. package/dist/extensions/Blocks/common-control.js +184 -0
  103. package/dist/extensions/DynamicContent/dynamic-content.js +31 -45
  104. package/dist/extensions/DynamicContent/extension.js +6 -18
  105. package/dist/guido.css +1 -1
  106. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +866 -0
  107. package/dist/package.json.js +7 -0
  108. package/dist/services/recommendationApi.js +43 -0
  109. package/dist/services/unsubscribeApi.js +16 -0
  110. package/dist/{@types → src/@types}/generic.d.ts +13 -0
  111. package/dist/{components → src/components}/Guido.vue.d.ts +2 -2
  112. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  113. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +16 -0
  114. package/dist/src/components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +2 -0
  115. package/dist/src/components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +2 -0
  116. package/dist/src/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +2 -0
  117. package/dist/src/components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +2 -0
  118. package/dist/src/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +2 -0
  119. package/dist/src/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +2 -0
  120. package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +6 -4
  121. package/dist/src/config/migrator/couponBlockMigrator.d.ts +1 -0
  122. package/dist/src/config/migrator/index.d.ts +1 -0
  123. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
  124. package/dist/src/config/migrator/unsubscribeMigrator.d.ts +1 -0
  125. package/dist/src/enums/extensions/recommendationBlock.d.ts +16 -0
  126. package/dist/src/enums/unsubscribe.d.ts +38 -0
  127. package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +1 -0
  128. package/dist/src/extensions/Blocks/Checkbox/iconsRegistry.d.ts +4 -0
  129. package/dist/src/extensions/Blocks/CouponBlock/block.d.ts +12 -0
  130. package/dist/src/extensions/Blocks/CouponBlock/iconsRegistry.d.ts +4 -0
  131. package/dist/src/extensions/Blocks/CouponBlock/settingsPanel.d.ts +4 -0
  132. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +3 -0
  133. package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +1 -0
  134. package/dist/src/extensions/Blocks/RadioButton/iconsRegistry.d.ts +4 -0
  135. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +11 -0
  136. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +65 -0
  137. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +51 -0
  138. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  139. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  140. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  141. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  142. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  143. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  144. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  145. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  146. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  147. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  148. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  149. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  150. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  151. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  152. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  153. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  154. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  155. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  156. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  157. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  158. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  159. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  160. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  161. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  162. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  163. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  165. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  166. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  167. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  168. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  169. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  170. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  171. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  172. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  173. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  174. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  175. package/dist/src/extensions/Blocks/Recommendation/template.d.ts +43 -0
  176. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  177. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +32 -0
  178. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +29 -0
  179. package/dist/src/extensions/Blocks/Unsubscribe/elements/preview.d.ts +11 -0
  180. package/dist/src/extensions/Blocks/Unsubscribe/extension.d.ts +2 -0
  181. package/dist/src/extensions/Blocks/Unsubscribe/iconsRegistry.d.ts +4 -0
  182. package/dist/src/extensions/Blocks/Unsubscribe/settingsPanel.d.ts +4 -0
  183. package/dist/src/extensions/Blocks/Unsubscribe/tagRegistry.d.ts +4 -0
  184. package/dist/src/extensions/Blocks/Unsubscribe/template.d.ts +12 -0
  185. package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +9 -0
  186. package/dist/src/extensions/Blocks/Unsubscribe/utils/utils.d.ts +7 -0
  187. package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +1 -0
  188. package/dist/src/extensions/Blocks/_Boilerplate/extension.d.ts +2 -0
  189. package/dist/src/extensions/Blocks/_Boilerplate/iconsRegistry.d.ts +4 -0
  190. package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +4 -0
  191. package/dist/src/extensions/Blocks/common-control.d.ts +87 -0
  192. package/dist/src/extensions/DynamicContent/extension.d.ts +2 -0
  193. package/dist/src/mock/api/validator.d.ts +2 -0
  194. package/dist/src/services/recommendationApi.d.ts +6 -0
  195. package/dist/src/services/unsubscribeApi.d.ts +4 -0
  196. package/dist/src/stores/config.d.ts +96 -0
  197. package/dist/{stores → src/stores}/editor.d.ts +21 -0
  198. package/dist/src/stores/unsubscribe.d.ts +256 -0
  199. package/dist/{utils → src/utils}/genericUtil.d.ts +1 -0
  200. package/dist/static/styles/customEditorStyle.css.js +5 -0
  201. package/dist/stores/config.js +17 -0
  202. package/dist/stores/editor.js +2 -1
  203. package/dist/stores/unsubscribe.js +126 -6
  204. package/dist/utils/genericUtil.js +8 -7
  205. package/dist/utils/templatePreparation.js +17 -16
  206. package/package.json +8 -3
  207. package/dist/config/migrator/index.d.ts +0 -1
  208. package/dist/enums/unsubscribe.d.ts +0 -15
  209. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/Extension.js +0 -75
  210. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ExtensionBuilder.js +0 -77
  211. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/Block.js +0 -123
  212. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js +0 -7
  213. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js +0 -7
  214. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockName.js +0 -12
  215. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js +0 -7
  216. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js +0 -119
  217. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js +0 -7
  218. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js +0 -7
  219. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js +0 -7
  220. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/Popover.js +0 -12
  221. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js +0 -7
  222. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js +0 -7
  223. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js +0 -7
  224. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementsAttributes.js +0 -24
  225. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/Control.js +0 -24
  226. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelRegistry.js +0 -11
  227. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelTab.js +0 -33
  228. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/modifications/ModificationDescription.js +0 -22
  229. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElement.js +0 -40
  230. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElementTagRegistry.js +0 -5
  231. package/dist/stores/unsubscribe.d.ts +0 -8
  232. /package/dist/{@types → src/@types}/events.d.ts +0 -0
  233. /package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
  234. /package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  235. /package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  236. /package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
  237. /package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  238. /package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  239. /package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  240. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  241. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  242. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  243. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  244. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  245. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  246. /package/dist/{components/organisms/header/LeftSlot.vue.d.ts → src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts} +0 -0
  247. /package/dist/{components/organisms/header/MiddleSlot.vue.d.ts → src/components/organisms/extensions/recommendation/Filters.vue.d.ts} +0 -0
  248. /package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  249. /package/dist/{components/organisms/header/ViewOptions.vue.d.ts → src/components/organisms/header/LeftSlot.vue.d.ts} +0 -0
  250. /package/dist/{components/organisms/header/version-history/RestoreButton.vue.d.ts → src/components/organisms/header/MiddleSlot.vue.d.ts} +0 -0
  251. /package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
  252. /package/dist/{components/organisms/header/version-history → src/components/organisms/header}/ViewOptions.vue.d.ts +0 -0
  253. /package/dist/{components/organisms/onboarding/AMPOnboarding.vue.d.ts → src/components/organisms/header/version-history/RestoreButton.vue.d.ts} +0 -0
  254. /package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  255. /package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  256. /package/dist/{components/organisms/onboarding/GenericOnboarding.vue.d.ts → src/components/organisms/header/version-history/ViewOptions.vue.d.ts} +0 -0
  257. /package/dist/{components/organisms/onboarding/NewVersionPopup.vue.d.ts → src/components/organisms/onboarding/AMPOnboarding.vue.d.ts} +0 -0
  258. /package/dist/{components/organisms/onboarding/OnboardingWrapper.vue.d.ts → src/components/organisms/onboarding/GenericOnboarding.vue.d.ts} +0 -0
  259. /package/dist/{components/organisms/onboarding/TextBlockOnboarding.vue.d.ts → src/components/organisms/onboarding/NewVersionPopup.vue.d.ts} +0 -0
  260. /package/dist/{components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts → src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts} +0 -0
  261. /package/dist/{components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts → src/components/organisms/onboarding/TextBlockOnboarding.vue.d.ts} +0 -0
  262. /package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +0 -0
  263. /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
  264. /package/dist/{composables → src/composables}/useApiExample.d.ts +0 -0
  265. /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
  266. /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
  267. /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
  268. /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
  269. /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
  270. /package/dist/{composables → src/composables}/useGuidoActions.d.ts +0 -0
  271. /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
  272. /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
  273. /package/dist/{composables → src/composables}/useHttp.d.ts +0 -0
  274. /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
  275. /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
  276. /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
  277. /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
  278. /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
  279. /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
  280. /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
  281. /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
  282. /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
  283. /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
  284. /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
  285. /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
  286. /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
  287. /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
  288. /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
  289. /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
  290. /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
  291. /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  292. /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
  293. /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
  294. /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
  295. /package/dist/{enums → src/enums}/displayConditions.d.ts +0 -0
  296. /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
  297. /package/dist/{enums → src/enums}/onboarding.d.ts +0 -0
  298. /package/dist/{enums → src/enums}/preview.d.ts +0 -0
  299. /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
  300. /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
  301. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
  302. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  303. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  304. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/template.d.ts +0 -0
  305. /package/dist/{extensions/Blocks/RadioButton → src/extensions/Blocks/CouponBlock}/extension.d.ts +0 -0
  306. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
  307. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/RadioButton}/extension.d.ts +0 -0
  308. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  309. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +0 -0
  310. /package/dist/{extensions/DynamicContent → src/extensions/Blocks/Recommendation}/extension.d.ts +0 -0
  311. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/Recommendation}/settingsPanel.d.ts +0 -0
  312. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  313. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  314. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content-modal.d.ts +0 -0
  315. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content.d.ts +0 -0
  316. /package/dist/{library.d.ts → src/library.d.ts} +0 -0
  317. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  318. /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
  319. /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
  320. /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
  321. /package/dist/{mock/api/template-library.d.ts → src/mock/api/recommendation.d.ts} +0 -0
  322. /package/dist/{mock/api/unsubscribe.d.ts → src/mock/api/template-library.d.ts} +0 -0
  323. /package/dist/{mock/api/user-modal-state.d.ts → src/mock/api/unsubscribe.d.ts} +0 -0
  324. /package/dist/{mock/api/validator.d.ts → src/mock/api/user-modal-state.d.ts} +0 -0
  325. /package/dist/{mock → src/mock}/browser.d.ts +0 -0
  326. /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
  327. /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
  328. /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
  329. /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
  330. /package/dist/{stores → src/stores}/dynamic-content.d.ts +0 -0
  331. /package/dist/{stores → src/stores}/onboarding.d.ts +0 -0
  332. /package/dist/{stores → src/stores}/preview.d.ts +0 -0
  333. /package/dist/{stores → src/stores}/recommendation.d.ts +0 -0
  334. /package/dist/{stores → src/stores}/save-as-template.d.ts +0 -0
  335. /package/dist/{stores → src/stores}/toaster.d.ts +0 -0
  336. /package/dist/{stores → src/stores}/version-history.d.ts +0 -0
  337. /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
  338. /package/dist/{utils → src/utils}/base64.d.ts +0 -0
  339. /package/dist/{utils → src/utils}/dateUtil.d.ts +0 -0
  340. /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
  341. /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
  342. /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
@@ -0,0 +1,365 @@
1
+ import { BlockType as t, BlockAttr as n } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationBlockId as l } from "./constants.js";
3
+ const C = {
4
+ TITLE: "You May Also Like!"
5
+ }, _ = `
6
+ <tr>
7
+ <td class="spacer" style="height: 20px;"></td>
8
+ </tr>
9
+ `, E = `
10
+ <td align="left" class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20">
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
+ <${t.BLOCK_TEXT}
30
+ class="es-p10t es-p10b es-p20l es-p20r"
31
+ align="center">
32
+ <p path="1" style="font-size: 28px; color: #333333;">
33
+ <strong path="1,0">{-{-TITLE-}-}</strong>
34
+ </p>
35
+ </${t.BLOCK_TEXT}>
36
+ </tbody>
37
+ </table>
38
+ </td>
39
+ </tr>
40
+ ${_}
41
+ <tr>
42
+ <td>
43
+ <table
44
+ class="ins-recommendation-product-container"
45
+ width="100%"
46
+ cellpadding="0"
47
+ cellspacing="0"
48
+ border="0"
49
+ >
50
+ {-{-PRODUCT_ROWS-}-}
51
+ </table>
52
+ </td>
53
+ </tr>
54
+ </tbody>
55
+ </table>
56
+ </td>
57
+ </tr>
58
+ </table>
59
+ </td>
60
+ `, y = `
61
+ <tr>
62
+ <td>
63
+ <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
64
+ {-{-PRODUCTS-}-}
65
+ </table>
66
+ </td>
67
+ </tr>
68
+ `, c = `
69
+ <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
70
+ <table
71
+ width="100%"
72
+ height="100%"
73
+ cellpadding="0"
74
+ cellspacing="0"
75
+ border="0"
76
+ class="product-card-wrapper"
77
+ style="background-color: #f8f8f8;">
78
+ <tr>
79
+ {-{-PRODUCT_CONTENT-}-}
80
+ </tr>
81
+ </table>
82
+ </td>
83
+ `, w = `
84
+ <td
85
+ class="product-image-cell"
86
+ valign="top">
87
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
88
+ <tbody>
89
+ <${t.BLOCK_IMAGE}
90
+ ${n.BLOCK_IMAGE.src}="{-{-PRODUCT_IMAGE-}-}"
91
+ ${n.BLOCK_IMAGE.alt}="{-{-PRODUCT_NAME-}-}"
92
+ ${n.BLOCK_IMAGE.href}="#"
93
+ class="product-image"
94
+ align="center"
95
+ esd-extension-block-id="${l.IMAGE}">
96
+ </${t.BLOCK_TEXT}>
97
+ </tbody>
98
+ </table>
99
+ </td>
100
+ `, B = `
101
+ <td
102
+ class="product-name-cell"
103
+ valign="top">
104
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
105
+ <tbody>
106
+ <${t.BLOCK_TEXT}
107
+ class="product-name es-p15t es-p15b es-p10l es-p10r"
108
+ align="center"
109
+ esd-extension-block-id="${l.NAME}">
110
+ <p
111
+ path="1"
112
+ contenteditable="false"
113
+ style="font-size: 16px; color: #333333;">
114
+ <strong path="1,0">{-{-PRODUCT_NAME-}-}</strong>
115
+ </p>
116
+ </${t.BLOCK_TEXT}>
117
+ </tbody>
118
+ </table>
119
+ </td>
120
+ `, P = `
121
+ <td
122
+ class="product-price-cell"
123
+ valign="top">
124
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
125
+ <tbody>
126
+ <${t.BLOCK_TEXT}
127
+ class="product-price"
128
+ align="center"
129
+ esd-extension-block-id="${l.PRICE}">
130
+ <p
131
+ path="1"
132
+ contenteditable="false"
133
+ style="font-size: 16px; color: #333333;">
134
+ <strong path="1,0">18,00 TRY</strong>
135
+ </p>
136
+ </${t.BLOCK_TEXT}>
137
+ </tbody>
138
+ </table>
139
+ </td>
140
+ `, N = `
141
+ <td
142
+ class="product-old-price-cell"
143
+ valign="top">
144
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
145
+ <tbody>
146
+ <${t.BLOCK_TEXT}
147
+ class="product-old-price"
148
+ align="center"
149
+ esd-extension-block-id="${l.OLD_PRICE}">
150
+ <p
151
+ path="1"
152
+ contenteditable="false"
153
+ style="font-size: 14px; color: #999999;">
154
+ <s path="1,0">20,00 TRY</s>
155
+ </p>
156
+ </${t.BLOCK_TEXT}>
157
+ </tbody>
158
+ </table>
159
+ </td>
160
+ `, D = `
161
+ <td
162
+ class="button-cell"
163
+ valign="top">
164
+ <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
165
+ <tbody>
166
+ <${t.BLOCK_BUTTON}
167
+ ${n.BLOCK_BUTTON.href}="#"
168
+ class="product-name es-p5t"
169
+ align="center"
170
+ esd-extension-block-id="${l.BUTTON}">
171
+ Buy
172
+ </${t.BLOCK_BUTTON}>
173
+ </tbody>
174
+ </table>
175
+ </td>
176
+ `, x = `
177
+ <td
178
+ align="left"
179
+ esd-extension-block-id="recommendation-block"
180
+ esd-handler-name="esd-extension-RecommendationBlock"
181
+ class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20"
182
+ >
183
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
184
+ <tr>
185
+ <td align="center">
186
+ <table
187
+ class="container"
188
+ width="100%"
189
+ cellpadding="0"
190
+ cellspacing="0"
191
+ border="0">
192
+ <tbody>
193
+ <tr>
194
+ <td>
195
+ <table
196
+ width="100%"
197
+ cellpadding="0"
198
+ cellspacing="0"
199
+ border="0">
200
+ <tbody>
201
+ <tr>
202
+ {-{-TITLE-}-}
203
+ </tr>
204
+ </tbody>
205
+ </table>
206
+ </td>
207
+ </tr>
208
+ <tr>
209
+ <td class="spacer" style="height: 20px;"></td>
210
+ </tr>
211
+ <tr>
212
+ <td>
213
+ <table
214
+ class="ins-recommendation-product-container"
215
+ width="100%"
216
+ cellpadding="0"
217
+ cellspacing="0"
218
+ border="0"
219
+ >
220
+ {-{-PRODUCT_ROWS-}-}
221
+ </table>
222
+ </td>
223
+ </tr>
224
+ </tbody>
225
+ </table>
226
+ </td>
227
+ </tr>
228
+ </table>
229
+ </td>
230
+ `, U = [
231
+ "productImage",
232
+ "productName",
233
+ "productOldPrice",
234
+ "productPrice",
235
+ "productButton"
236
+ ];
237
+ function f(r, a, i = U) {
238
+ const h = (100 / a).toFixed(2), p = [];
239
+ for (let o = 0; o < r.length; o += a)
240
+ p.push(r.slice(o, o + a));
241
+ let d = "";
242
+ return p.forEach((o, O) => {
243
+ O > 0 && (d += _);
244
+ let s = "", g = "", u = "", m = "", T = "";
245
+ o.forEach((e) => {
246
+ s += c.replace(
247
+ "{-{-PRODUCT_CONTENT-}-}",
248
+ w.replace("{-{-PRODUCT_IMAGE-}-}", e.image_url).replace("{-{-PRODUCT_NAME-}-}", e.name)
249
+ ), g += c.replace(
250
+ "{-{-PRODUCT_CONTENT-}-}",
251
+ B.replace("{-{-PRODUCT_NAME-}-}", e.name)
252
+ ), u += c.replace(
253
+ "{-{-PRODUCT_CONTENT-}-}",
254
+ P
255
+ ), m += c.replace(
256
+ "{-{-PRODUCT_CONTENT-}-}",
257
+ N
258
+ ), T += c.replace(
259
+ "{-{-PRODUCT_CONTENT-}-}",
260
+ D
261
+ );
262
+ });
263
+ const b = {
264
+ productImage: s,
265
+ productName: g,
266
+ productPrice: u,
267
+ productOldPrice: m,
268
+ productButton: T
269
+ }, R = i.filter((e) => b[e]).map((e) => `<tr>${b[e]}</tr>`).join("");
270
+ d += y.replace("{-{-PRODUCTS-}-}", R);
271
+ }), d.replaceAll("{-{-COLUMN_WIDTH-}-}", `${h}%`);
272
+ }
273
+ function k() {
274
+ return [
275
+ {
276
+ name: "Product Name",
277
+ image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
278
+ price: { USD: 18 },
279
+ original_price: { USD: 20 },
280
+ discount: { USD: 2 },
281
+ url: "https://example.com/product/1",
282
+ item_id: "1",
283
+ in_stock: 1,
284
+ locale: "en",
285
+ product_attributes: {},
286
+ category: []
287
+ },
288
+ {
289
+ name: "Belt",
290
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
291
+ price: { TRY: 55 },
292
+ original_price: { TRY: 65 },
293
+ discount: { TRY: 10 },
294
+ url: "https://example.com/product/2",
295
+ item_id: "2",
296
+ in_stock: 1,
297
+ locale: "tr",
298
+ product_attributes: {},
299
+ category: []
300
+ },
301
+ {
302
+ name: "Beanie",
303
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
304
+ price: { TRY: 18 },
305
+ original_price: { TRY: 20 },
306
+ discount: { TRY: 2 },
307
+ url: "https://example.com/product/3",
308
+ item_id: "3",
309
+ in_stock: 1,
310
+ locale: "tr",
311
+ product_attributes: {},
312
+ category: []
313
+ },
314
+ {
315
+ name: "Album",
316
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
317
+ price: { TRY: 15 },
318
+ original_price: { TRY: 15 },
319
+ discount: { TRY: 0 },
320
+ url: "https://example.com/product/4",
321
+ item_id: "4",
322
+ in_stock: 1,
323
+ locale: "tr",
324
+ product_attributes: {},
325
+ category: []
326
+ },
327
+ {
328
+ name: "Flying Ninja with a very long product name",
329
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
330
+ price: { TRY: 12 },
331
+ original_price: { TRY: 15 },
332
+ discount: { TRY: 3 },
333
+ url: "https://example.com/product/5",
334
+ item_id: "5",
335
+ in_stock: 1,
336
+ locale: "tr",
337
+ product_attributes: {},
338
+ category: []
339
+ },
340
+ {
341
+ name: "Single",
342
+ image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
343
+ price: { TRY: 22555 },
344
+ original_price: { TRY: 33989 },
345
+ discount: { TRY: 11434 },
346
+ url: "https://example.com/product/6",
347
+ item_id: "6",
348
+ in_stock: 1,
349
+ locale: "tr",
350
+ product_attributes: {},
351
+ category: []
352
+ }
353
+ ];
354
+ }
355
+ function I() {
356
+ const r = k(), i = f(r, 3);
357
+ return E.replace("{-{-TITLE-}-}", C.TITLE).replace("{-{-PRODUCT_ROWS-}-}", i);
358
+ }
359
+ export {
360
+ U as DEFAULT_CARD_COMPOSITION,
361
+ x as default,
362
+ k as getDefaultProducts,
363
+ I as getDefaultTemplate,
364
+ f as prepareProductRows
365
+ };
@@ -0,0 +1,28 @@
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
+ };
@@ -0,0 +1,131 @@
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
+ };
@@ -0,0 +1,167 @@
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
+ };