@useinsider/guido 1.0.3-beta.8eea45e → 1.0.3-beta.901ea7e

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 (509) hide show
  1. package/README.md +144 -3
  2. package/dist/components/Guido.vue.js +11 -9
  3. package/dist/components/Guido.vue2.js +81 -69
  4. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +28 -0
  5. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +38 -0
  6. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +17 -0
  7. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +37 -0
  8. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +20 -0
  9. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +44 -0
  10. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +17 -0
  11. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +27 -0
  12. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  13. package/dist/components/organisms/header/LeftSlot.vue2.js +16 -15
  14. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  15. package/dist/components/organisms/header/RightSlot.vue2.js +23 -22
  16. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +21 -0
  17. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +99 -0
  18. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  19. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +30 -17
  20. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -10
  21. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +23 -20
  22. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.js +18 -0
  23. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue2.js +16 -0
  24. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +24 -0
  25. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +64 -0
  26. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +18 -0
  27. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +107 -0
  28. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +18 -0
  29. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue2.js +12 -0
  30. package/dist/components/wrappers/WpDrawer.vue.js +6 -4
  31. package/dist/composables/useActionsApi.js +1 -1
  32. package/dist/composables/useBlocksConfig.js +48 -0
  33. package/dist/composables/useGuidoActions.js +19 -9
  34. package/dist/composables/useHtmlCompiler.js +15 -13
  35. package/dist/composables/useHtmlValidator.js +36 -35
  36. package/dist/composables/useStripo.js +59 -55
  37. package/dist/config/compiler/itemsCompilerRules.js +14 -0
  38. package/dist/config/compiler/unsubscribeCompilerRules.js +47 -29
  39. package/dist/config/migrator/couponBlockMigrator.js +32 -32
  40. package/dist/config/migrator/index.js +8 -6
  41. package/dist/config/migrator/recommendationMigrator.js +293 -0
  42. package/dist/config/migrator/unsubscribeMigrator.js +124 -0
  43. package/dist/enums/date.js +6 -0
  44. package/dist/enums/defaults.js +20 -9
  45. package/dist/enums/extensions/recommendationBlock.js +80 -0
  46. package/dist/enums/onboarding.js +7 -2
  47. package/dist/enums/unsubscribe.js +46 -7
  48. package/dist/extensions/Blocks/Checkbox/block.js +18 -24
  49. package/dist/extensions/Blocks/Checkbox/control.js +54 -65
  50. package/dist/extensions/Blocks/Checkbox/extension.js +5 -16
  51. package/dist/extensions/Blocks/Checkbox/iconsRegistry.js +18 -0
  52. package/dist/extensions/Blocks/Checkbox/settingsPanel.js +12 -25
  53. package/dist/extensions/Blocks/Checkbox/template.js +15 -21
  54. package/dist/extensions/Blocks/CouponBlock/block.js +14 -24
  55. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -16
  56. package/dist/extensions/Blocks/CouponBlock/iconsRegistry.js +33 -0
  57. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +16 -29
  58. package/dist/extensions/Blocks/CouponBlock/template.js +1 -3
  59. package/dist/extensions/Blocks/Items/block.js +67 -0
  60. package/dist/extensions/Blocks/Items/controls/button/link.js +68 -0
  61. package/dist/extensions/Blocks/Items/controls/cardComposition.js +193 -0
  62. package/dist/extensions/Blocks/Items/controls/image/link.js +68 -0
  63. package/dist/extensions/Blocks/Items/controls/index.js +217 -0
  64. package/dist/extensions/Blocks/Items/controls/name/trimming.js +70 -0
  65. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +107 -0
  66. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +123 -0
  67. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +76 -0
  68. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +61 -0
  69. package/dist/extensions/Blocks/Items/controls/settingsControl.js +316 -0
  70. package/dist/extensions/Blocks/Items/enums/controlEnums.js +5 -0
  71. package/dist/extensions/Blocks/Items/enums/productEnums.js +273 -0
  72. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +77 -0
  73. package/dist/extensions/Blocks/Items/extension.js +19 -0
  74. package/dist/extensions/Blocks/Items/iconsRegistry.js +32 -0
  75. package/dist/extensions/Blocks/Items/items.css.js +23 -0
  76. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +62 -0
  77. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +60 -0
  78. package/dist/extensions/Blocks/Items/settingsPanel.js +131 -0
  79. package/dist/extensions/Blocks/Items/store/items-block.js +71 -0
  80. package/dist/extensions/Blocks/Items/template.js +193 -0
  81. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +17 -0
  82. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +28 -0
  83. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +67 -0
  84. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +44 -0
  85. package/dist/extensions/Blocks/RadioButton/block.js +16 -22
  86. package/dist/extensions/Blocks/RadioButton/control.js +41 -52
  87. package/dist/extensions/Blocks/RadioButton/extension.js +4 -15
  88. package/dist/extensions/Blocks/RadioButton/iconsRegistry.js +14 -0
  89. package/dist/extensions/Blocks/RadioButton/settingsPanel.js +13 -26
  90. package/dist/extensions/Blocks/RadioButton/template.js +27 -29
  91. package/dist/extensions/Blocks/Recommendation/block.js +30 -0
  92. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  93. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  94. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  95. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  96. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  97. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  98. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  99. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  100. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  101. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  102. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  103. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  104. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  105. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  106. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  107. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  108. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  109. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  110. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  111. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  112. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  113. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  114. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  115. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  116. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  117. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  118. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  119. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  120. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  121. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  122. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  123. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  124. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  125. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  126. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  127. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  128. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  129. package/dist/extensions/Blocks/Recommendation/extension.js +45 -0
  130. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  131. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  132. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -0
  133. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  134. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  135. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  136. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  137. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  138. package/dist/extensions/Blocks/Unsubscribe/block.js +131 -0
  139. package/dist/extensions/Blocks/Unsubscribe/control.js +167 -0
  140. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +42 -0
  141. package/dist/extensions/Blocks/Unsubscribe/extension.js +21 -0
  142. package/dist/extensions/Blocks/Unsubscribe/iconsRegistry.js +21 -0
  143. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +35 -0
  144. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +42 -0
  145. package/dist/extensions/Blocks/Unsubscribe/tagRegistry.js +10 -0
  146. package/dist/extensions/Blocks/Unsubscribe/template.js +22 -0
  147. package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +11 -0
  148. package/dist/extensions/Blocks/Unsubscribe/utils/utils.js +6 -0
  149. package/dist/extensions/Blocks/common-control.js +248 -0
  150. package/dist/extensions/Blocks/controlFactories.js +223 -0
  151. package/dist/extensions/DynamicContent/dynamic-content-modal.js +25 -19
  152. package/dist/extensions/DynamicContent/dynamic-content.js +125 -44
  153. package/dist/extensions/DynamicContent/extension.js +6 -18
  154. package/dist/guido.css +1 -1
  155. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +911 -0
  156. package/dist/node_modules/lodash-es/_DataView.js +6 -0
  157. package/dist/node_modules/lodash-es/_Promise.js +6 -0
  158. package/dist/node_modules/lodash-es/_Set.js +6 -0
  159. package/dist/node_modules/lodash-es/_SetCache.js +13 -0
  160. package/dist/node_modules/lodash-es/_WeakMap.js +6 -0
  161. package/dist/node_modules/lodash-es/_arrayFilter.js +10 -0
  162. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +13 -12
  163. package/dist/node_modules/lodash-es/_arrayMap.js +8 -0
  164. package/dist/node_modules/lodash-es/_arrayPush.js +8 -0
  165. package/dist/node_modules/lodash-es/_arraySome.js +9 -0
  166. package/dist/node_modules/lodash-es/_baseEach.js +6 -0
  167. package/dist/node_modules/lodash-es/_baseFlatten.js +13 -0
  168. package/dist/node_modules/lodash-es/_baseForOwn.js +8 -0
  169. package/dist/node_modules/lodash-es/_baseGet.js +11 -0
  170. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  171. package/dist/node_modules/lodash-es/_baseHasIn.js +6 -0
  172. package/dist/node_modules/lodash-es/_baseIsEqual.js +8 -0
  173. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +32 -0
  174. package/dist/node_modules/lodash-es/_baseIsMatch.js +29 -0
  175. package/dist/node_modules/lodash-es/_baseIteratee.js +11 -0
  176. package/dist/node_modules/lodash-es/_baseKeys.js +14 -0
  177. package/dist/node_modules/lodash-es/_baseMap.js +11 -0
  178. package/dist/node_modules/lodash-es/_baseMatches.js +12 -0
  179. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  180. package/dist/node_modules/lodash-es/_baseProperty.js +8 -0
  181. package/dist/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  182. package/dist/node_modules/lodash-es/_baseRange.js +9 -0
  183. package/dist/node_modules/lodash-es/_baseToString.js +18 -0
  184. package/dist/node_modules/lodash-es/_baseTrim.js +8 -0
  185. package/dist/node_modules/lodash-es/_cacheHas.js +6 -0
  186. package/dist/node_modules/lodash-es/_castPath.js +10 -0
  187. package/dist/node_modules/lodash-es/_createBaseEach.js +15 -0
  188. package/dist/node_modules/lodash-es/_createRange.js +11 -0
  189. package/dist/node_modules/lodash-es/_equalArrays.js +40 -0
  190. package/dist/node_modules/lodash-es/_equalByTag.js +45 -0
  191. package/dist/node_modules/lodash-es/_equalObjects.js +36 -0
  192. package/dist/node_modules/lodash-es/_getAllKeys.js +9 -0
  193. package/dist/node_modules/lodash-es/_getMatchData.js +12 -0
  194. package/dist/node_modules/lodash-es/_getSymbols.js +10 -0
  195. package/dist/node_modules/lodash-es/_getTag.js +28 -0
  196. package/dist/node_modules/lodash-es/_hasPath.js +19 -0
  197. package/dist/node_modules/lodash-es/_isFlattenable.js +10 -0
  198. package/dist/node_modules/lodash-es/_isKey.js +12 -0
  199. package/dist/node_modules/lodash-es/_isStrictComparable.js +7 -0
  200. package/dist/node_modules/lodash-es/_mapToArray.js +9 -0
  201. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  202. package/dist/node_modules/lodash-es/_memoizeCapped.js +11 -0
  203. package/dist/node_modules/lodash-es/_nativeKeys.js +5 -0
  204. package/dist/node_modules/lodash-es/_setCacheAdd.js +7 -0
  205. package/dist/node_modules/lodash-es/_setCacheHas.js +6 -0
  206. package/dist/node_modules/lodash-es/_setToArray.js +9 -0
  207. package/dist/node_modules/lodash-es/_stringToPath.js +10 -0
  208. package/dist/node_modules/lodash-es/_toKey.js +10 -0
  209. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +9 -0
  210. package/dist/node_modules/lodash-es/flatMap.js +8 -0
  211. package/dist/node_modules/lodash-es/get.js +8 -0
  212. package/dist/node_modules/lodash-es/hasIn.js +8 -0
  213. package/dist/node_modules/lodash-es/isSymbol.js +9 -0
  214. package/dist/node_modules/lodash-es/keys.js +9 -0
  215. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  216. package/dist/node_modules/lodash-es/map.js +11 -0
  217. package/dist/node_modules/lodash-es/property.js +10 -0
  218. package/dist/node_modules/lodash-es/range.js +5 -0
  219. package/dist/node_modules/lodash-es/stubArray.js +6 -0
  220. package/dist/node_modules/lodash-es/toFinite.js +14 -0
  221. package/dist/node_modules/lodash-es/toNumber.js +22 -0
  222. package/dist/node_modules/lodash-es/toString.js +7 -0
  223. package/dist/package.json.js +7 -0
  224. package/dist/services/recommendationApi.js +37 -0
  225. package/dist/services/stripoApi.js +1 -1
  226. package/dist/services/unsubscribeApi.js +16 -0
  227. package/dist/src/@types/generic.d.ts +98 -0
  228. package/dist/{components → src/components}/Guido.vue.d.ts +5 -3
  229. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  230. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +16 -0
  231. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +4 -0
  232. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +4 -0
  233. package/dist/src/components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +2 -0
  234. package/dist/src/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +2 -0
  235. package/dist/src/components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +2 -0
  236. package/dist/src/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +2 -0
  237. package/dist/src/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +2 -0
  238. package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +6 -4
  239. package/dist/src/composables/useBlocksConfig.d.ts +11 -0
  240. package/dist/{composables → src/composables}/useGuidoActions.d.ts +9 -0
  241. package/dist/src/config/compiler/itemsCompilerRules.d.ts +2 -0
  242. package/dist/src/config/migrator/index.d.ts +1 -0
  243. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
  244. package/dist/src/config/migrator/unsubscribeMigrator.d.ts +1 -0
  245. package/dist/src/enums/date.d.ts +4 -0
  246. package/dist/src/enums/extensions/recommendationBlock.d.ts +16 -0
  247. package/dist/src/enums/onboarding.d.ts +6 -0
  248. package/dist/src/enums/unsubscribe.d.ts +38 -0
  249. package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +2 -0
  250. package/dist/src/extensions/Blocks/Checkbox/iconsRegistry.d.ts +4 -0
  251. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +6 -0
  252. package/dist/{extensions → src/extensions}/Blocks/CouponBlock/block.d.ts +1 -0
  253. package/dist/src/extensions/Blocks/CouponBlock/iconsRegistry.d.ts +4 -0
  254. package/dist/src/extensions/Blocks/Items/block.d.ts +27 -0
  255. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +14 -0
  256. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +33 -0
  257. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +14 -0
  258. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +501 -0
  259. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +14 -0
  260. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +19 -0
  261. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +21 -0
  262. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +14 -0
  263. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +13 -0
  264. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +48 -0
  265. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +61 -0
  266. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +162 -0
  267. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +50 -0
  268. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +4 -0
  269. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +41 -0
  270. package/dist/src/extensions/Blocks/Items/template.d.ts +24 -0
  271. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +23 -0
  272. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +32 -0
  273. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +44 -0
  274. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +8 -0
  275. package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +2 -0
  276. package/dist/src/extensions/Blocks/RadioButton/iconsRegistry.d.ts +4 -0
  277. package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +1 -1
  278. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +11 -0
  279. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  280. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +51 -0
  281. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  282. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  283. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  284. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  285. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  286. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  287. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  288. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  289. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  290. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  291. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  292. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  293. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  294. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  295. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  296. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  297. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  298. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  299. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  300. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  301. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  302. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  303. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  304. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  305. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  306. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  307. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  308. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  309. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  310. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  311. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  312. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  313. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  314. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  315. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  316. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  317. package/dist/src/extensions/Blocks/Recommendation/settingsPanel.d.ts +4 -0
  318. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  319. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  320. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +16 -0
  321. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  322. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  323. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +32 -0
  324. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +29 -0
  325. package/dist/src/extensions/Blocks/Unsubscribe/elements/preview.d.ts +11 -0
  326. package/dist/src/extensions/Blocks/Unsubscribe/extension.d.ts +2 -0
  327. package/dist/src/extensions/Blocks/Unsubscribe/iconsRegistry.d.ts +4 -0
  328. package/dist/src/extensions/Blocks/Unsubscribe/settingsPanel.d.ts +4 -0
  329. package/dist/src/extensions/Blocks/Unsubscribe/tagRegistry.d.ts +4 -0
  330. package/dist/src/extensions/Blocks/Unsubscribe/template.d.ts +12 -0
  331. package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +9 -0
  332. package/dist/src/extensions/Blocks/Unsubscribe/utils/utils.d.ts +7 -0
  333. package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +1 -0
  334. package/dist/src/extensions/Blocks/_Boilerplate/extension.d.ts +2 -0
  335. package/dist/src/extensions/Blocks/_Boilerplate/iconsRegistry.d.ts +4 -0
  336. package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +4 -0
  337. package/dist/src/extensions/Blocks/common-control.d.ts +124 -0
  338. package/dist/src/extensions/Blocks/controlFactories.d.ts +312 -0
  339. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +13 -0
  340. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +66 -0
  341. package/dist/src/extensions/DynamicContent/extension.d.ts +2 -0
  342. package/dist/src/mock/api/validator.d.ts +2 -0
  343. package/dist/src/services/recommendationApi.d.ts +6 -0
  344. package/dist/src/services/unsubscribeApi.d.ts +4 -0
  345. package/dist/src/stores/config.d.ts +104 -0
  346. package/dist/{stores → src/stores}/dynamic-content.d.ts +3 -3
  347. package/dist/{stores → src/stores}/editor.d.ts +22 -1
  348. package/dist/{stores → src/stores}/onboarding.d.ts +335 -1
  349. package/dist/{stores → src/stores}/preview.d.ts +1 -1
  350. package/dist/{stores → src/stores}/recommendation.d.ts +1 -1
  351. package/dist/{stores → src/stores}/save-as-template.d.ts +1 -1
  352. package/dist/{stores → src/stores}/toaster.d.ts +1 -1
  353. package/dist/src/stores/unsubscribe.d.ts +256 -0
  354. package/dist/{stores → src/stores}/version-history.d.ts +1 -1
  355. package/dist/src/utils/dateUtil.d.ts +22 -0
  356. package/dist/src/utils/environmentUtil.d.ts +5 -0
  357. package/dist/{utils → src/utils}/genericUtil.d.ts +2 -0
  358. package/dist/src/utils/pairProductVariables.d.ts +7 -0
  359. package/dist/static/styles/components/narrow-panel.css.js +10 -0
  360. package/dist/static/styles/customEditorStyle.css.js +5 -0
  361. package/dist/stores/config.js +17 -0
  362. package/dist/stores/dynamic-content.js +2 -2
  363. package/dist/stores/editor.js +3 -2
  364. package/dist/stores/onboarding.js +44 -36
  365. package/dist/stores/preview.js +1 -1
  366. package/dist/stores/recommendation.js +3 -3
  367. package/dist/stores/save-as-template.js +2 -2
  368. package/dist/stores/toaster.js +1 -1
  369. package/dist/stores/unsubscribe.js +126 -6
  370. package/dist/stores/version-history.js +4 -4
  371. package/dist/utils/dateUtil.js +24 -3
  372. package/dist/utils/environmentUtil.js +4 -0
  373. package/dist/utils/genericUtil.js +17 -6
  374. package/dist/utils/pairProductVariables.js +136 -0
  375. package/dist/utils/templatePreparation.js +17 -16
  376. package/package.json +9 -4
  377. package/dist/@types/generic.d.ts +0 -49
  378. package/dist/config/migrator/index.d.ts +0 -1
  379. package/dist/enums/onboarding.d.ts +0 -1
  380. package/dist/enums/unsubscribe.d.ts +0 -15
  381. package/dist/extensions/Blocks/Checkbox/template.d.ts +0 -6
  382. package/dist/extensions/DynamicContent/dynamic-content-modal.d.ts +0 -6
  383. package/dist/extensions/DynamicContent/dynamic-content.d.ts +0 -16
  384. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/Extension.js +0 -75
  385. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ExtensionBuilder.js +0 -77
  386. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/Block.js +0 -123
  387. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js +0 -7
  388. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js +0 -7
  389. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockName.js +0 -12
  390. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js +0 -7
  391. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js +0 -119
  392. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js +0 -7
  393. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js +0 -7
  394. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js +0 -7
  395. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/Popover.js +0 -12
  396. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js +0 -7
  397. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js +0 -7
  398. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js +0 -7
  399. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementsAttributes.js +0 -24
  400. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/Control.js +0 -24
  401. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelRegistry.js +0 -11
  402. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelTab.js +0 -33
  403. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/modifications/ModificationDescription.js +0 -22
  404. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElement.js +0 -40
  405. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElementTagRegistry.js +0 -5
  406. package/dist/static/assets/icons/coupon.svg.js +0 -4
  407. package/dist/stores/unsubscribe.d.ts +0 -8
  408. package/dist/utils/dateUtil.d.ts +0 -1
  409. package/dist/{@types → src/@types}/events.d.ts +0 -0
  410. package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
  411. package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  412. package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  413. package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
  414. package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  415. package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  416. package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  417. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  418. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  419. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  420. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  421. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  422. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  423. package/dist/{components/organisms/header/LeftSlot.vue.d.ts → src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts} +0 -0
  424. package/dist/{components/organisms/header/MiddleSlot.vue.d.ts → src/components/organisms/extensions/recommendation/Filters.vue.d.ts} +0 -0
  425. package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  426. package/dist/{components/organisms/header/ViewOptions.vue.d.ts → src/components/organisms/header/LeftSlot.vue.d.ts} +0 -0
  427. package/dist/{components/organisms/header/version-history/RestoreButton.vue.d.ts → src/components/organisms/header/MiddleSlot.vue.d.ts} +0 -0
  428. package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
  429. package/dist/{components/organisms/header/version-history → src/components/organisms/header}/ViewOptions.vue.d.ts +0 -0
  430. package/dist/{components/organisms/onboarding/AMPOnboarding.vue.d.ts → src/components/organisms/header/version-history/RestoreButton.vue.d.ts} +0 -0
  431. package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  432. package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  433. package/dist/{components/organisms/onboarding/GenericOnboarding.vue.d.ts → src/components/organisms/header/version-history/ViewOptions.vue.d.ts} +0 -0
  434. package/dist/{components/organisms/onboarding/NewVersionPopup.vue.d.ts → src/components/organisms/onboarding/AMPOnboarding.vue.d.ts} +0 -0
  435. package/dist/{components/organisms/onboarding/OnboardingWrapper.vue.d.ts → src/components/organisms/onboarding/GenericOnboarding.vue.d.ts} +0 -0
  436. package/dist/{components/organisms/onboarding/TextBlockOnboarding.vue.d.ts → src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts} +0 -0
  437. package/dist/{components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts → src/components/organisms/onboarding/TextBlockOnboarding.vue.d.ts} +0 -0
  438. package/dist/{components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts → src/components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts} +0 -0
  439. package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +1 -1
  440. /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
  441. /package/dist/{composables → src/composables}/useApiExample.d.ts +0 -0
  442. /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
  443. /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
  444. /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
  445. /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
  446. /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
  447. /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
  448. /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
  449. /package/dist/{composables → src/composables}/useHttp.d.ts +0 -0
  450. /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
  451. /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
  452. /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
  453. /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
  454. /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
  455. /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
  456. /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
  457. /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
  458. /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
  459. /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
  460. /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
  461. /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
  462. /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
  463. /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
  464. /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
  465. /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
  466. /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
  467. /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  468. /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
  469. /package/dist/{config → src/config}/migrator/couponBlockMigrator.d.ts +0 -0
  470. /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
  471. /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
  472. /package/dist/{enums → src/enums}/displayConditions.d.ts +0 -0
  473. /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
  474. /package/dist/{enums → src/enums}/preview.d.ts +0 -0
  475. /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
  476. /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
  477. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
  478. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  479. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  480. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  481. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  482. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  483. /package/dist/{extensions/Blocks/RadioButton → src/extensions/Blocks/Items}/extension.d.ts +0 -0
  484. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/Items}/settingsPanel.d.ts +0 -0
  485. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
  486. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/RadioButton}/extension.d.ts +0 -0
  487. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  488. /package/dist/{extensions/DynamicContent → src/extensions/Blocks/Recommendation}/extension.d.ts +0 -0
  489. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  490. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  491. /package/dist/{library.d.ts → src/library.d.ts} +0 -0
  492. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  493. /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
  494. /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
  495. /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
  496. /package/dist/{mock/api/template-library.d.ts → src/mock/api/recommendation.d.ts} +0 -0
  497. /package/dist/{mock/api/unsubscribe.d.ts → src/mock/api/template-library.d.ts} +0 -0
  498. /package/dist/{mock/api/user-modal-state.d.ts → src/mock/api/unsubscribe.d.ts} +0 -0
  499. /package/dist/{mock/api/validator.d.ts → src/mock/api/user-modal-state.d.ts} +0 -0
  500. /package/dist/{mock → src/mock}/browser.d.ts +0 -0
  501. /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
  502. /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
  503. /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
  504. /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
  505. /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
  506. /package/dist/{utils → src/utils}/base64.d.ts +0 -0
  507. /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
  508. /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
  509. /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
package/README.md CHANGED
@@ -52,6 +52,7 @@ npm install @useinsider/guido
52
52
  ref="guidoEditor"
53
53
  :template-id="templateId"
54
54
  :user-id="userId"
55
+ :migration-date="migrationDate"
55
56
  :guido-config="guidoConfig"
56
57
  :html="initialHtml"
57
58
  :css="initialCss"
@@ -74,16 +75,19 @@ export default {
74
75
  return {
75
76
  templateId: 'template-123',
76
77
  userId: 'user-456',
78
+ migrationDate: 1699488000,
77
79
  initialHtml: '<p>Initial HTML content</p>',
78
80
  initialCss: 'p { color: #333; }',
79
81
  guidoConfig: {
80
82
  translationsPath: 'window.trans.en',
81
83
  htmlCompilerRules: [],
82
84
  ignoreDefaultHtmlCompilerRules: false,
85
+ backButtonLabel?: "Back to Design",
83
86
  features: {
84
87
  dynamicContent: true,
85
88
  saveAsTemplate: true,
86
- versionHistory: true
89
+ versionHistory: true,
90
+ testMessage: true
87
91
  }
88
92
  },
89
93
  dynamicContentModalVisible: false
@@ -145,6 +149,7 @@ export default {
145
149
  | `templateId` | `string` | ✅ | - | Unique identifier for the email template |
146
150
  | `userId` | `string` | ✅ | - | Unique identifier for the user |
147
151
  | `guidoConfig` | `GuidoConfig` | ✅ | - | Configuration object for the editor |
152
+ | `migrationDate` | `number` | ✅ | - | Stripo migration date in Unix timestamp (seconds). Retrieved from backend `/partner-settings` endpoint as `migrationDate`. Used for onboarding process |
148
153
  | `partnerName` | `string` | ⚪ | From URL host | Partner identifier |
149
154
  | `productType` | `string` | ⚪ | From URL path | Product type identifier |
150
155
  | `username` | `string` | ⚪ | `'Guido User'` | Display name for the user |
@@ -161,6 +166,8 @@ export default {
161
166
  | `save:complete` | `Omit<Template, 'forceRecreate'>` | Fired when template is successfully saved |
162
167
  | `on-change` | void | It Fires once for managing leave modal etc. |
163
168
  | `ready` | void | Fired when the editor is ready and template is loaded |
169
+ | `onboarding-finished` | void | Fired when the onboarding popup is dismissed or completed, allowing parent applications to track onboarding state |
170
+ | `test-email:click` | - | Fired when user clicks the test email button in the header |
164
171
 
165
172
  ### Guido Exposed Methods
166
173
  ```typescript
@@ -190,6 +197,12 @@ interface GuidoConfig {
190
197
  dynamicContent: boolean;
191
198
  saveAsTemplate: boolean;
192
199
  versionHistory: boolean;
200
+ testMessage: boolean;
201
+ displayConditions: boolean;
202
+ };
203
+ blocks?: {
204
+ excludeDefaults?: GuidoBlockType[];
205
+ includeCustoms?: GuidoCustomBlockType[];
193
206
  };
194
207
  }
195
208
  ```
@@ -204,6 +217,10 @@ interface GuidoConfig {
204
217
  | `features.dynamicContent` | `boolean` | `true` | Enable dynamic content insertion feature |
205
218
  | `features.saveAsTemplate` | `boolean` | `true` | Enable save as template feature |
206
219
  | `features.versionHistory` | `boolean` | `true` | Enable version history feature |
220
+ | `features.displayConditions` | `boolean` | `true` | Enable display conditions |
221
+ | `blocks` | `BlocksConfig` | `{ excludeDefaults: [], includeCustoms: [] }` | Block configuration for excluding default blocks and including custom blocks. See [Blocks Configuration](#-blocks-configuration) section below |
222
+ | `blocks.excludeDefaults` | `GuidoBlockType[]` | `[]` | Array of default Stripo blocks to exclude from the editor |
223
+ | `blocks.includeCustoms` | `GuidoCustomBlockType[]` | `[]` | Array of custom blocks to include in the editor |
207
224
 
208
225
  ```typescript
209
226
  interface DynamicContent {
@@ -220,6 +237,128 @@ interface DynamicContent {
220
237
  | `text` | `string` | '' | Visible value of the dynamic content |
221
238
  | `fallback?` | `string` | '' | Fallback value of the dynamic content. Optional |
222
239
 
240
+ ## 🧱 Blocks Configuration
241
+
242
+ Guido allows you to customize which blocks are available in the editor. You can exclude default Stripo blocks and selectively include custom blocks to create tailored editing experiences for different product types.
243
+
244
+ ### Block Types
245
+
246
+ #### Default Blocks (GuidoBlockType)
247
+
248
+ These are the standard Stripo email editor blocks that can be excluded:
249
+
250
+ ```typescript
251
+ type GuidoBlockType =
252
+ | 'amp-accordion' // AMP accordion component
253
+ | 'amp-carousel' // AMP image carousel
254
+ | 'amp-form-controls' // AMP form elements
255
+ | 'banner-block' // Banner/hero section
256
+ | 'button-block' // Call-to-action buttons
257
+ | 'html-block' // Custom HTML
258
+ | 'image-block' // Image elements
259
+ | 'menu-block' // Navigation menu
260
+ | 'social-block' // Social media links
261
+ | 'spacer-block' // Vertical spacing
262
+ | 'text-block' // Text content
263
+ | 'timer-block' // Countdown timer
264
+ | 'video-block' // Video embeds
265
+ ```
266
+
267
+ #### Custom Blocks (GuidoCustomBlockType)
268
+
269
+ These are custom blocks that can be selectively included:
270
+
271
+ ```typescript
272
+ type GuidoCustomBlockType =
273
+ | 'dynamic-content' // Dynamic content merge tags
274
+ | 'checkbox-block' // Checkbox form input
275
+ | 'radio-button-block' // Radio button form input
276
+ | 'recommendation-block' // Product recommendations
277
+ | 'unsubscribe-block' // Unsubscribe link
278
+ | 'coupon-block' // Coupon/promo code
279
+ | 'items-block' // Cart items display
280
+ ```
281
+
282
+ ### Configuration Examples
283
+
284
+ #### Example 1: Exclude Specific Default Blocks
285
+
286
+ Disable button, image, and video blocks while keeping all custom blocks:
287
+
288
+ ```typescript
289
+ const guidoConfig = {
290
+ translationsPath: 'window.trans.en',
291
+ features: {
292
+ dynamicContent: true,
293
+ saveAsTemplate: true,
294
+ versionHistory: true,
295
+ testMessage: true
296
+ },
297
+ blocks: {
298
+ excludeDefaults: ['button-block', 'image-block', 'video-block']
299
+ }
300
+ };
301
+ ```
302
+
303
+ **Result:**
304
+ - Button, Image, Video blocks disabled
305
+ - All other default blocks enabled
306
+ - All custom blocks are disabled.
307
+
308
+ #### Example 2: Include Only Specific Custom Blocks
309
+
310
+ Enable only coupon and recommendation blocks:
311
+
312
+ ```typescript
313
+ const guidoConfig = {
314
+ translationsPath: 'window.trans.en',
315
+ features: {
316
+ dynamicContent: true,
317
+ saveAsTemplate: true,
318
+ versionHistory: true,
319
+ testMessage: true
320
+ },
321
+ blocks: {
322
+ includeCustoms: ['coupon-block', 'recommendation-block']
323
+ }
324
+ };
325
+ ```
326
+
327
+ **Result:**
328
+ - All default blocks enabled
329
+ - Only Coupon and Recommendation extensions enabled.
330
+ - Other custom blocks are disabled
331
+
332
+ ### Default Behavior
333
+
334
+ When `blocks` is not provided or is `undefined`:
335
+
336
+ ```typescript
337
+ const guidoConfig = {
338
+ translationsPath: 'window.trans.en',
339
+ features: {
340
+ dynamicContent: true,
341
+ saveAsTemplate: true,
342
+ versionHistory: true,
343
+ testMessage: true
344
+ },
345
+ // No blocks config
346
+ };
347
+ ```
348
+
349
+ **Result:**
350
+ - All 13 default Stripo blocks enabled
351
+ - All custom blocks are disabled.
352
+
353
+ ### Block Configuration Interface
354
+
355
+ ```typescript
356
+ interface BlocksConfig {
357
+ excludeDefaults?: GuidoBlockType[];
358
+ includeCustoms?: GuidoCustomBlockType[];
359
+ }
360
+ ```
361
+
223
362
  ### TypeScript Types
224
363
 
225
364
  The library exports the following TypeScript types:
@@ -314,7 +453,8 @@ const guidoConfig = {
314
453
  features: {
315
454
  dynamicContent: true,
316
455
  saveAsTemplate: true,
317
- versionHistory: false // Disable version history
456
+ versionHistory: false, // Disable version history
457
+ testMessage: true
318
458
  },
319
459
  htmlCompilerRules: [
320
460
  {
@@ -347,7 +487,8 @@ const guidoConfig = {
347
487
  features: {
348
488
  dynamicContent: true,
349
489
  saveAsTemplate: true,
350
- versionHistory: true
490
+ versionHistory: true,
491
+ testMessage: true
351
492
  },
352
493
  ignoreDefaultHtmlCompilerRules: true, // Skip all default rules
353
494
  htmlCompilerRules: [
@@ -1,18 +1,20 @@
1
- import o from "./Guido.vue2.js";
1
+ import i from "./Guido.vue2.js";
2
2
  /* empty css */
3
- import i from "../_virtual/_plugin-vue2_normalizer.js";
3
+ import a from "../_virtual/_plugin-vue2_normalizer.js";
4
4
  var t = function() {
5
- var a = this, r = a._self._c, e = a._self._setupProxy;
6
- return r("div", { staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : a._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? a._e() : r(e.OnboardingWrapper), r(e.LoadingWrapper)], 1);
7
- }, s = [], d = /* @__PURE__ */ i(
8
- o,
5
+ var o = this, r = o._self._c, e = o._self._setupProxy;
6
+ return r("div", { staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(_) {
7
+ return e.emit("onboarding:finished");
8
+ } } }), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
9
+ }, n = [], s = /* @__PURE__ */ a(
10
+ i,
9
11
  t,
10
- s,
12
+ n,
11
13
  !1,
12
14
  null,
13
- "aca05338"
15
+ "23c413c9"
14
16
  );
15
- const v = d.exports;
17
+ const v = s.exports;
16
18
  export {
17
19
  v as default
18
20
  };
@@ -1,19 +1,23 @@
1
- import { defineComponent as H, defineAsyncComponent as E, ref as R, computed as G, watch as U, onMounted as x, onUnmounted as F } from "vue";
2
- import { provideGuidoActions as M } from "../composables/useGuidoActions.js";
3
- import { usePartner as z } from "../composables/usePartner.js";
4
- import { useStripo as B } from "../composables/useStripo.js";
5
- import { migrate as P } from "../config/migrator/index.js";
6
- import { DefaultUsername as K, DefaultMessageType as O, DefaultGuidoConfig as j } from "../enums/defaults.js";
7
- import q from "./organisms/base/Toaster.vue.js";
8
- import J from "./organisms/header/HeaderWrapper.vue.js";
9
- import Q from "./organisms/LoadingWrapper.vue.js";
10
- import V from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
11
- import { useStripoApi as X } from "../services/stripoApi.js";
12
- import { useDynamicContentStore as Y } from "../stores/dynamic-content.js";
13
- import { useEditorStore as Z } from "../stores/editor.js";
14
- import { usePreviewStore as $ } from "../stores/preview.js";
15
- import ee from "../node_modules/lodash-es/merge.js";
16
- const ye = /* @__PURE__ */ H({
1
+ import { defineComponent as O, defineAsyncComponent as I, ref as z, computed as U, watch as B, onMounted as K, onUnmounted as j } from "vue";
2
+ import { provideGuidoActions as q } from "../composables/useGuidoActions.js";
3
+ import { usePartner as J } from "../composables/usePartner.js";
4
+ import { useStripo as Q } from "../composables/useStripo.js";
5
+ import { migrate as L } from "../config/migrator/index.js";
6
+ import { DefaultUsername as V, DefaultMessageType as X, DefaultGuidoConfig as Y } from "../enums/defaults.js";
7
+ import Z from "./organisms/base/Toaster.vue.js";
8
+ import $ from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
9
+ import ee from "./organisms/header/HeaderWrapper.vue.js";
10
+ import oe from "./organisms/LoadingWrapper.vue.js";
11
+ import te from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
12
+ import ne from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
13
+ import { useStripoApi as re } from "../services/stripoApi.js";
14
+ import { useConfigStore as ie } from "../stores/config.js";
15
+ import { useDynamicContentStore as se } from "../stores/dynamic-content.js";
16
+ import { useEditorStore as ae } from "../stores/editor.js";
17
+ import { usePreviewStore as ce } from "../stores/preview.js";
18
+ import { useUnsubscribeStore as me } from "../stores/unsubscribe.js";
19
+ import de from "../node_modules/lodash-es/merge.js";
20
+ const Ue = /* @__PURE__ */ O({
17
21
  __name: "Guido",
18
22
  props: {
19
23
  templateId: null,
@@ -24,49 +28,50 @@ const ye = /* @__PURE__ */ H({
24
28
  username: null,
25
29
  html: null,
26
30
  css: null,
27
- preselectedDynamicContentList: null,
28
- guidoConfig: null
31
+ guidoConfig: null,
32
+ templateConfig: null
29
33
  },
30
- emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready"],
31
- setup(I, { expose: L, emit: o }) {
32
- const r = I, _ = E(
34
+ emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
35
+ setup(W, { expose: _, emit: o }) {
36
+ const u = W, A = I(
33
37
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
34
- ), W = E(
38
+ ), N = I(
35
39
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
36
- ), d = R(), a = Y(), m = Z(), k = $(), t = G(() => m.hasChanges), i = r.preselectedDynamicContentList || [], { getPartnerName: l, getProductType: u, isTestPartner: A } = z(), p = () => {
40
+ ), p = z(), i = se(), g = me(), f = ie(), s = ae(), F = ce(), n = U(() => s.hasChanges), { getPartnerName: y, getProductType: v, isTestPartner: H } = J(), b = () => {
37
41
  var e;
38
- return (e = d.value) == null ? void 0 : e.handleSave(!0);
42
+ return (e = p.value) == null ? void 0 : e.handleSave(!0);
39
43
  }, {
40
- templateId: g,
41
- userId: f,
42
- guidoConfig: y,
43
- html: n = "",
44
- css: v = "",
45
- partnerName: s = l(),
46
- productType: c = u(),
47
- messageType: C = O,
48
- username: h = K
49
- } = r;
50
- window.GuidoConfig = ee(j, y), window.GuidoConfig.partner = {
51
- partnerName: s,
52
- productType: c,
53
- messageType: C
54
- };
55
- const { initPlugin: w } = B({
56
- emailId: g,
57
- userId: f,
58
- username: h,
59
- partnerName: s,
60
- productType: c,
61
- preselectedDynamicContentList: i,
44
+ templateId: a,
45
+ userId: C,
46
+ guidoConfig: h,
47
+ templateConfig: t,
48
+ html: r = "",
49
+ css: S = "",
50
+ partnerName: c = y(),
51
+ productType: m = v(),
52
+ messageType: w = X,
53
+ username: D = V
54
+ } = u, d = (t == null ? void 0 : t.preselectedDynamicContentList) || [];
55
+ s.templateId = a, window.GuidoConfig = de(Y, h), window.GuidoConfig.partner = {
56
+ partnerName: c,
57
+ productType: m,
58
+ messageType: w
59
+ }, f.templateConfig = t;
60
+ const { initPlugin: E } = Q({
61
+ emailId: a,
62
+ userId: C,
63
+ username: D,
64
+ partnerName: c,
65
+ productType: m,
66
+ preselectedDynamicContentList: d,
62
67
  onReady: () => {
63
68
  console.debug("guido:ready"), o("ready");
64
69
  }
65
- }), { getDefaultTemplate: S } = X(), N = G(() => {
70
+ }), { getDefaultTemplate: T } = re(), R = U(() => {
66
71
  var e;
67
72
  return !((e = window.GuidoConfig) != null && e.useHeader);
68
73
  });
69
- M({
74
+ q({
70
75
  onBack: () => {
71
76
  console.debug("guido:back"), o("back");
72
77
  },
@@ -75,48 +80,55 @@ const ye = /* @__PURE__ */ H({
75
80
  },
76
81
  onSaveComplete: (e) => {
77
82
  console.debug("guido:save:complete", e), o("save:complete", e);
83
+ },
84
+ onTestEmailClick: () => {
85
+ console.debug("guido:test-email:click"), o("test-email:click");
78
86
  }
79
87
  });
80
- const b = (e) => {
81
- console.debug("dynamic-content:close", e), a.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
82
- }, D = () => {
88
+ const P = (e) => {
89
+ console.debug("dynamic-content:close", e), i.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
90
+ }, k = () => {
83
91
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
84
92
  };
85
- return U(() => t.value, () => {
86
- o("on-change", t.value);
87
- }), x(async () => {
93
+ B(() => n.value, () => {
94
+ o("on-change", n.value);
95
+ });
96
+ const l = (e) => {
97
+ const G = e, { attribute: x, position: M } = G.detail;
98
+ console.debug("dynamic-content:open", G.detail), o("dynamic-content:open", x, M);
99
+ };
100
+ return K(async () => {
88
101
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
89
102
  try {
103
+ g.selectedUnsubscribePages = (t == null ? void 0 : t.selectedUnsubscribePages) || [];
90
104
  let e = {
91
- html: n && P(n),
92
- css: v,
105
+ html: r && await L(r),
106
+ css: S,
93
107
  forceRecreate: !0
94
108
  // TODO: It should be false for old templates. We will communicate with Stripo
95
109
  };
96
- e.html || (e = await S(), e.html = P(e.html)), await w(e), a.selectedDynamicContentList = i;
110
+ e.html || (e = await T(), e.html = await L(e.html)), await E(e), i.selectedDynamicContentList = d;
97
111
  } catch (e) {
98
112
  console.error("Failed to initialize Stripo editor:", e);
99
113
  }
100
- document.addEventListener("dynamic-content:open", (e) => {
101
- const T = e;
102
- console.debug("dynamic-content:open", T.detail), o("dynamic-content:open", T.detail);
103
- });
104
- }), F(() => {
114
+ document.addEventListener("dynamic-content:open", l);
115
+ }), j(() => {
116
+ document.removeEventListener("dynamic-content:open", l);
105
117
  try {
106
118
  window.UIEditor.removeEditor();
107
119
  } catch {
108
120
  console.debug("Failed to remove Stripo editor: No editor found");
109
121
  }
110
- }), L({
122
+ }), _({
111
123
  dynamicContent: {
112
- insert: b,
113
- close: D
124
+ insert: P,
125
+ close: k
114
126
  },
115
- hasChanges: t,
116
- saveSilent: p
117
- }), { __sfc: !0, PreviewContainer: _, OnboardingWrapper: W, headerWrapperRef: d, dynamicContentStore: a, props: r, editorStore: m, previewStore: k, hasChanges: t, preselectedDynamicContentList: i, getPartnerName: l, getProductType: u, isTestPartner: A, saveSilent: p, templateId: g, userId: f, guidoConfig: y, html: n, css: v, partnerName: s, productType: c, messageType: C, username: h, emit: o, initPlugin: w, getDefaultTemplate: S, noHeader: N, insertDynamicContent: b, closeDynamicContent: D, Toaster: q, HeaderWrapper: J, LoadingWrapper: Q, SaveAsTemplateDrawer: V };
127
+ hasChanges: n,
128
+ saveSilent: b
129
+ }), { __sfc: !0, PreviewContainer: A, OnboardingWrapper: N, headerWrapperRef: p, dynamicContentStore: i, unsubscribeStore: g, props: u, configStore: f, editorStore: s, previewStore: F, hasChanges: n, getPartnerName: y, getProductType: v, isTestPartner: H, saveSilent: b, templateId: a, userId: C, guidoConfig: h, templateConfig: t, html: r, css: S, partnerName: c, productType: m, messageType: w, username: D, preselectedDynamicContentList: d, emit: o, initPlugin: E, getDefaultTemplate: T, noHeader: R, insertDynamicContent: P, closeDynamicContent: k, handleDynamicContentOpen: l, Toaster: Z, FilterSelectionDrawer: $, HeaderWrapper: ee, LoadingWrapper: oe, SaveAsTemplateDrawer: te, UnsubscribeWrapper: ne };
118
130
  }
119
131
  });
120
132
  export {
121
- ye as default
133
+ Ue as default
122
134
  };
@@ -0,0 +1,28 @@
1
+ import r from "./FilterItem.vue2.js";
2
+ /* empty css */
3
+ import i from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var l = function() {
5
+ var a = this, e = a._self._c, t = a._self._setupProxy;
6
+ return e("div", { staticClass: "d-f f-d-c w-1 gap-16" }, [e("div", { staticClass: "d-f a-i-c j-c-s-b pt-4", class: { "bor-t-s-s bor-t-w-1 bor-t-c-50": a.index === 0 } }, [e("p", [a._v(" " + a._s(t.trans("newsletter.filter")) + " " + a._s(a.index + 1) + " ")]), e(t.InButtonV2, { attrs: { id: "guido__delete-filter-group-button", "left-icon": "line-delete", styling: "text", type: "danger", "label-text-status": !1 }, on: { click: function(s) {
7
+ return t.emit("delete-filter", t.props.filter);
8
+ } } })], 1), e("div", { staticClass: "w-1 d-f a-i-s j-c-s-b gap-16" }, [e(t.InSelect, { staticClass: "w-2", attrs: { "disabled-status": "", "search-status": "", "button-status": !1, "label-text": t.trans("action-builder.filter-type"), options: t.filterTypeOptions, value: [t.filterTypeOptions[0]] } }), e(t.InSelect, { staticClass: "w-2", attrs: { id: "filter-item-input--attribute-type", "search-status": "", "static-position": "bottom right", "button-status": !1, "label-text": t.trans("condition.attribute"), options: t.store.getFilterList, value: [t.selectedAttributeType] }, on: { select: function(s) {
9
+ return t.updateFilter({ text: "attribute", value: s.value });
10
+ } } })], 1), e("div", { staticClass: "w-1 d-f a-i-s j-c-s-b gap-16" }, [e(t.InSelect, { staticClass: "w-2", attrs: { "button-status": !1, "label-text": t.trans("condition.operator"), options: t.getOperatorOptions(t.selectedAttributeType.type), value: [t.selectedOperatorType] }, on: { select: function(s) {
11
+ return t.updateFilter({ text: "operator", value: s.value });
12
+ } } }), e(t.InBasicTextInput, { staticClass: "w-2", attrs: { id: "filter-item-input--value", name: "imageUrl", type: "text", "character-counter-status": !1, "label-text": t.trans("condition.value"), "max-character-length": 25, "placeholder-text": t.trans("condition.enter-value-placeholder"), "tooltip-status": !1, value: decodeURIComponent(t.props.filter.value) }, on: { input: function(s) {
13
+ t.updateFilter({ text: "value", value: encodeURIComponent(s) });
14
+ } } })], 1), t.props.hasLogicAdapter ? e("div", { staticClass: "w-1 d-f a-i-c j-c-c p-r bor-b-s-s bor-b-w-1 bor-b-c-50 mt-4" }, [e(t.LogicAdapter, { staticClass: "p-a", attrs: { logic: t.props.filter.innerGroupOperator }, on: { change: function(s) {
15
+ return t.updateFilter({ text: "innerGroupOperator", value: s });
16
+ } } })], 1) : a._e()]);
17
+ }, n = [], o = /* @__PURE__ */ i(
18
+ r,
19
+ l,
20
+ n,
21
+ !1,
22
+ null,
23
+ "6562e38c"
24
+ );
25
+ const f = o.exports;
26
+ export {
27
+ f as default
28
+ };
@@ -0,0 +1,38 @@
1
+ import { defineComponent as f, computed as i } from "vue";
2
+ import { useTranslations as v } from "../../../../composables/useTranslations.js";
3
+ import { getOperatorOptions as a } from "../../../../enums/extensions/recommendationBlock.js";
4
+ import { useRecommendationExtensionStore as x } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
+ import { InButtonV2 as y, InSelect as F, InBasicTextInput as T } from "@useinsider/design-system-vue";
6
+ import _ from "./LogicAdapter.vue.js";
7
+ import { useDebounceFn as b } from "../../../../node_modules/@vueuse/shared/index.js";
8
+ const h = /* @__PURE__ */ f({
9
+ __name: "FilterItem",
10
+ props: {
11
+ filter: null,
12
+ index: null,
13
+ hasLogicAdapter: { type: Boolean }
14
+ },
15
+ emits: ["delete-filter"],
16
+ setup(p, { emit: u }) {
17
+ const e = p, n = v(), r = x(), m = [
18
+ {
19
+ text: n("email-editor.standard-filter"),
20
+ value: "standardFilter"
21
+ }
22
+ ], s = i(() => e.filter.attribute || ""), l = i(() => r.getFilterList.find((t) => t.value === s.value) || { text: "", value: "", type: "" }), c = i(() => {
23
+ var t;
24
+ return a((t = l.value) == null ? void 0 : t.type).find((o) => o.value === e.filter.operator);
25
+ }), d = b((t) => {
26
+ console.debug("updateFilter: ", t);
27
+ const o = {
28
+ ...e.filter,
29
+ [t.text]: t.value
30
+ };
31
+ r.updateFilter(o);
32
+ }, 500);
33
+ return { __sfc: !0, trans: n, store: r, props: e, filterTypeOptions: m, attributeType: s, selectedAttributeType: l, selectedOperatorType: c, emit: u, updateFilter: d, getOperatorOptions: a, InBasicTextInput: T, InSelect: F, InButtonV2: y, LogicAdapter: _ };
34
+ }
35
+ });
36
+ export {
37
+ h as default
38
+ };
@@ -0,0 +1,17 @@
1
+ import o from "./FilterSelectionDrawer.vue2.js";
2
+ import n from "../../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var l = function() {
4
+ var e = this, r = e._self._c, t = e._self._setupProxy;
5
+ return r(t.WpDrawer, { attrs: { id: "recommendation-filter-drawer", "title-text": "Filter Selection", "footer-button-group-options": t.footerButtonGroupOptions, status: t.store.filterSelectionDrawerStatus }, on: { cancelOrBackButtonEvent: t.closeModal, onCloseEvent: t.closeModal, primaryButtonEvent: t.applyFilter } }, [r(t.Filters)], 1);
6
+ }, s = [], a = /* @__PURE__ */ n(
7
+ o,
8
+ l,
9
+ s,
10
+ !1,
11
+ null,
12
+ null
13
+ );
14
+ const p = a.exports;
15
+ export {
16
+ p as default
17
+ };
@@ -0,0 +1,37 @@
1
+ import { defineComponent as n, ref as a, computed as l } from "vue";
2
+ import i from "../../../wrappers/WpDrawer.vue.js";
3
+ import { useTranslations as p } from "../../../../composables/useTranslations.js";
4
+ import { useRecommendationExtensionStore as c } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
+ import u from "./Filters.vue.js";
6
+ const b = /* @__PURE__ */ n({
7
+ __name: "FilterSelectionDrawer",
8
+ setup(m) {
9
+ const t = p(), o = c(), e = a(!1), s = l(() => ({
10
+ primaryButton: {
11
+ styling: "solid",
12
+ type: "primary",
13
+ labelText: t(
14
+ e.value ? "unsubscription-preference.selecting-type" : "products.select-and-continue"
15
+ ),
16
+ loadingStatus: e.value,
17
+ disabledStatus: !1
18
+ },
19
+ cancelOrBackButton: {
20
+ styling: "ghost",
21
+ type: "secondary",
22
+ labelText: t("products.cancel"),
23
+ disabledStatus: e.value
24
+ }
25
+ })), r = () => {
26
+ o.filterSelectionDrawerStatus = !1;
27
+ };
28
+ return { __sfc: !0, trans: t, store: o, isApplying: e, footerButtonGroupOptions: s, closeModal: r, applyFilter: () => {
29
+ e.value = !0, setTimeout(() => {
30
+ console.debug("Filter applied!"), r(), o.generateFilterQuery();
31
+ }, 2e3);
32
+ }, WpDrawer: i, Filters: u };
33
+ }
34
+ });
35
+ export {
36
+ b as default
37
+ };
@@ -0,0 +1,20 @@
1
+ import s from "./Filters.vue2.js";
2
+ /* empty css */
3
+ import a from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var o = function() {
5
+ var i = this, e = i._self._c, t = i._self._setupProxy;
6
+ return e("div", { staticClass: "d-f f-d-c gap-16" }, [e("div", { staticClass: "d-f a-i-c j-c-s-b gap-16" }, [e(t.InSegments, { staticClass: "f-g-1 w-1", attrs: { id: "guido__filter-group-segments", "segment-list": t.filterGroupList, selected: t.selectedFilterGroup, "with-icon": !1 }, on: { click: t.changeFilterGroup } }), e(t.InButtonV2, { staticClass: "w-20-s f-g-1", attrs: { id: "guido__add-filter-group-button", "left-icon": "line-plus-netural", type: "secondary", "disabled-status": t.isMaxFilterGroupCount, "label-text": t.trans("smart-recommender.add-filter-group"), "tooltip-text": t.isMaxFilterGroupCount ? t.trans("email-editor.add-filter-tooltip") : "" }, on: { click: t.handleAddFilterGroup } })], 1), e("div", { staticClass: "d-f a-i-c j-c-s-b gap-16" }, [e("div", { staticClass: "d-f a-i-c" }, [t.selectedFilterGroup > 1 ? e(t.LogicAdapter, { staticClass: "mr-2" }) : i._e(), e("p", [i._v(" " + i._s(t.trans("email-editor.filter-group")) + " " + i._s(t.selectedFilterGroup) + " ")])], 1), t.hasRemoveFilterButton ? e(t.InButtonV2, { attrs: { id: "guido__delete-filter-group-button", "left-icon": "line-delete", styling: "text", type: "danger", "label-text-status": !1 }, on: { click: t.handleDeleteFilterGroup } }) : i._e()], 1), e("div", { staticClass: "d-f a-i-c j-c-s-b f-d-c" }, i._l(t.selectedFilterGroupFilters, function(l, r) {
7
+ return e(t.FilterItem, { key: r, attrs: { filter: l, "has-logic-adapter": t.hasLogicAdapter && r !== t.selectedFilterGroupFilters.length - 1, index: r }, on: { "delete-filter": t.handleDeleteFilter } });
8
+ }), 1), e("div", { staticClass: "d-f a-i-c j-c-c mt-3" }, [e(t.InButtonV2, { staticClass: "w-11-s", attrs: { id: "filter-group--add-filter-button", "left-icon": "line-plus-netural", type: "subtle-primary", "label-text": t.trans("smart-recommender.add-filter-condition") }, on: { click: t.handleAddFilter } })], 1)]);
9
+ }, d = [], n = /* @__PURE__ */ a(
10
+ s,
11
+ o,
12
+ d,
13
+ !1,
14
+ null,
15
+ "1ccb6d4a"
16
+ );
17
+ const _ = n.exports;
18
+ export {
19
+ _ as default
20
+ };
@@ -0,0 +1,44 @@
1
+ import { defineComponent as m, computed as o, ref as h } from "vue";
2
+ import { useTranslations as G } from "../../../../composables/useTranslations.js";
3
+ import { useRecommendationExtensionStore as g } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
4
+ import { InButtonV2 as v, InSegments as f } from "@useinsider/design-system-vue";
5
+ import _ from "./FilterItem.vue.js";
6
+ import A from "./LogicAdapter.vue.js";
7
+ const E = /* @__PURE__ */ m({
8
+ __name: "Filters",
9
+ setup(R) {
10
+ const i = G(), l = g(), u = o(() => l.getFilterGroupCount), t = o(() => Array.from({ length: u.value }, (e, a) => ({
11
+ text: (a + 1).toString(),
12
+ value: a + 1
13
+ }))), r = h(1), s = (e) => {
14
+ r.value = e;
15
+ }, d = () => {
16
+ const e = t.value.length + 1;
17
+ console.debug("handleAddFilterGroup", e), t.value.push({
18
+ text: e.toString(),
19
+ value: e
20
+ }), l.addFilterGroup(e);
21
+ }, p = o(() => t.value.length >= 3), n = o(() => l.getSelectedFilterGroup(r.value)), c = o(() => n.value.length > 1), F = o(() => t.value.length > 1);
22
+ return { __sfc: !0, MAX_FILTER_GROUP_COUNT: 3, trans: i, store: l, filterGroupCount: u, filterGroupList: t, selectedFilterGroup: r, changeFilterGroup: s, handleAddFilterGroup: d, isMaxFilterGroupCount: p, selectedFilterGroupFilters: n, hasLogicAdapter: c, hasRemoveFilterButton: F, handleAddFilter: () => {
23
+ l.addFilter({
24
+ type: "standardFilter",
25
+ attribute: "",
26
+ operatorReplace: "",
27
+ operator: "",
28
+ innerGroupOperator: "*",
29
+ outerGroupOperator: "*",
30
+ filterNumber: n.value.length + 1,
31
+ filterGroup: r.value,
32
+ isValid: !1,
33
+ value: ""
34
+ }), console.debug("handleAddFilter");
35
+ }, handleDeleteFilter: (e) => {
36
+ console.debug("handleDeleteFilter: ", e), l.deleteFilter(e);
37
+ }, handleDeleteFilterGroup: () => {
38
+ t.value.length !== 1 && (console.debug("handleDeleteFilterGroup"), t.value.splice(r.value - 1, 1), r.value > 1 && r.value--);
39
+ }, InSegments: f, InButtonV2: v, FilterItem: _, LogicAdapter: A };
40
+ }
41
+ });
42
+ export {
43
+ E as default
44
+ };