@useinsider/guido 1.0.3-beta.8feea14 → 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 (475) 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/index.js +9 -7
  40. package/dist/config/migrator/recommendationMigrator.js +293 -0
  41. package/dist/config/migrator/unsubscribeMigrator.js +124 -0
  42. package/dist/enums/date.js +6 -0
  43. package/dist/enums/defaults.js +20 -9
  44. package/dist/enums/extensions/recommendationBlock.js +80 -0
  45. package/dist/enums/onboarding.js +7 -2
  46. package/dist/enums/unsubscribe.js +46 -7
  47. package/dist/extensions/Blocks/Checkbox/block.js +5 -2
  48. package/dist/extensions/Blocks/Checkbox/control.js +54 -51
  49. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  50. package/dist/extensions/Blocks/Checkbox/template.js +14 -9
  51. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  52. package/dist/extensions/Blocks/Items/block.js +67 -0
  53. package/dist/extensions/Blocks/Items/controls/button/link.js +68 -0
  54. package/dist/extensions/Blocks/Items/controls/cardComposition.js +193 -0
  55. package/dist/extensions/Blocks/Items/controls/image/link.js +68 -0
  56. package/dist/extensions/Blocks/Items/controls/index.js +217 -0
  57. package/dist/extensions/Blocks/Items/controls/name/trimming.js +70 -0
  58. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +107 -0
  59. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +123 -0
  60. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +76 -0
  61. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +61 -0
  62. package/dist/extensions/Blocks/Items/controls/settingsControl.js +316 -0
  63. package/dist/extensions/Blocks/Items/enums/controlEnums.js +5 -0
  64. package/dist/extensions/Blocks/Items/enums/productEnums.js +273 -0
  65. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +77 -0
  66. package/dist/extensions/Blocks/Items/extension.js +19 -0
  67. package/dist/extensions/Blocks/Items/iconsRegistry.js +32 -0
  68. package/dist/extensions/Blocks/Items/items.css.js +23 -0
  69. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +62 -0
  70. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +60 -0
  71. package/dist/extensions/Blocks/Items/settingsPanel.js +131 -0
  72. package/dist/extensions/Blocks/Items/store/items-block.js +71 -0
  73. package/dist/extensions/Blocks/Items/template.js +193 -0
  74. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +17 -0
  75. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +28 -0
  76. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +67 -0
  77. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +44 -0
  78. package/dist/extensions/Blocks/RadioButton/block.js +5 -2
  79. package/dist/extensions/Blocks/RadioButton/control.js +45 -42
  80. package/dist/extensions/Blocks/RadioButton/template.js +24 -15
  81. package/dist/extensions/Blocks/Recommendation/block.js +30 -0
  82. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  83. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  84. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  85. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  86. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  87. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  88. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  89. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  90. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  91. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  92. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  93. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  94. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  95. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  96. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  97. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  98. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  99. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  100. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  101. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  102. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  103. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  104. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  105. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  106. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  107. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  108. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  109. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  110. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  111. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  112. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  113. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  114. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  115. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  116. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  117. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  118. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  119. package/dist/extensions/Blocks/Recommendation/extension.js +45 -0
  120. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  121. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  122. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -0
  123. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  124. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  125. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  126. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  127. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  128. package/dist/extensions/Blocks/Unsubscribe/block.js +131 -0
  129. package/dist/extensions/Blocks/Unsubscribe/control.js +167 -0
  130. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +42 -0
  131. package/dist/extensions/Blocks/Unsubscribe/extension.js +21 -0
  132. package/dist/extensions/Blocks/Unsubscribe/iconsRegistry.js +21 -0
  133. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +35 -0
  134. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +42 -0
  135. package/dist/extensions/Blocks/Unsubscribe/tagRegistry.js +10 -0
  136. package/dist/extensions/Blocks/Unsubscribe/template.js +22 -0
  137. package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +11 -0
  138. package/dist/extensions/Blocks/Unsubscribe/utils/utils.js +6 -0
  139. package/dist/extensions/Blocks/common-control.js +248 -0
  140. package/dist/extensions/Blocks/controlFactories.js +223 -0
  141. package/dist/extensions/DynamicContent/dynamic-content-modal.js +25 -19
  142. package/dist/extensions/DynamicContent/dynamic-content.js +128 -33
  143. package/dist/guido.css +1 -1
  144. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +358 -94
  145. package/dist/node_modules/lodash-es/_DataView.js +6 -0
  146. package/dist/node_modules/lodash-es/_Promise.js +6 -0
  147. package/dist/node_modules/lodash-es/_Set.js +6 -0
  148. package/dist/node_modules/lodash-es/_SetCache.js +13 -0
  149. package/dist/node_modules/lodash-es/_WeakMap.js +6 -0
  150. package/dist/node_modules/lodash-es/_arrayFilter.js +10 -0
  151. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +13 -12
  152. package/dist/node_modules/lodash-es/_arrayMap.js +8 -0
  153. package/dist/node_modules/lodash-es/_arrayPush.js +8 -0
  154. package/dist/node_modules/lodash-es/_arraySome.js +9 -0
  155. package/dist/node_modules/lodash-es/_baseEach.js +6 -0
  156. package/dist/node_modules/lodash-es/_baseFlatten.js +13 -0
  157. package/dist/node_modules/lodash-es/_baseForOwn.js +8 -0
  158. package/dist/node_modules/lodash-es/_baseGet.js +11 -0
  159. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  160. package/dist/node_modules/lodash-es/_baseHasIn.js +6 -0
  161. package/dist/node_modules/lodash-es/_baseIsEqual.js +8 -0
  162. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +32 -0
  163. package/dist/node_modules/lodash-es/_baseIsMatch.js +29 -0
  164. package/dist/node_modules/lodash-es/_baseIteratee.js +11 -0
  165. package/dist/node_modules/lodash-es/_baseKeys.js +14 -0
  166. package/dist/node_modules/lodash-es/_baseMap.js +11 -0
  167. package/dist/node_modules/lodash-es/_baseMatches.js +12 -0
  168. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  169. package/dist/node_modules/lodash-es/_baseProperty.js +8 -0
  170. package/dist/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  171. package/dist/node_modules/lodash-es/_baseRange.js +9 -0
  172. package/dist/node_modules/lodash-es/_baseToString.js +18 -0
  173. package/dist/node_modules/lodash-es/_baseTrim.js +8 -0
  174. package/dist/node_modules/lodash-es/_cacheHas.js +6 -0
  175. package/dist/node_modules/lodash-es/_castPath.js +10 -0
  176. package/dist/node_modules/lodash-es/_createBaseEach.js +15 -0
  177. package/dist/node_modules/lodash-es/_createRange.js +11 -0
  178. package/dist/node_modules/lodash-es/_equalArrays.js +40 -0
  179. package/dist/node_modules/lodash-es/_equalByTag.js +45 -0
  180. package/dist/node_modules/lodash-es/_equalObjects.js +36 -0
  181. package/dist/node_modules/lodash-es/_getAllKeys.js +9 -0
  182. package/dist/node_modules/lodash-es/_getMatchData.js +12 -0
  183. package/dist/node_modules/lodash-es/_getSymbols.js +10 -0
  184. package/dist/node_modules/lodash-es/_getTag.js +28 -0
  185. package/dist/node_modules/lodash-es/_hasPath.js +19 -0
  186. package/dist/node_modules/lodash-es/_isFlattenable.js +10 -0
  187. package/dist/node_modules/lodash-es/_isKey.js +12 -0
  188. package/dist/node_modules/lodash-es/_isStrictComparable.js +7 -0
  189. package/dist/node_modules/lodash-es/_mapToArray.js +9 -0
  190. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  191. package/dist/node_modules/lodash-es/_memoizeCapped.js +11 -0
  192. package/dist/node_modules/lodash-es/_nativeKeys.js +5 -0
  193. package/dist/node_modules/lodash-es/_setCacheAdd.js +7 -0
  194. package/dist/node_modules/lodash-es/_setCacheHas.js +6 -0
  195. package/dist/node_modules/lodash-es/_setToArray.js +9 -0
  196. package/dist/node_modules/lodash-es/_stringToPath.js +10 -0
  197. package/dist/node_modules/lodash-es/_toKey.js +10 -0
  198. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +9 -0
  199. package/dist/node_modules/lodash-es/flatMap.js +8 -0
  200. package/dist/node_modules/lodash-es/get.js +8 -0
  201. package/dist/node_modules/lodash-es/hasIn.js +8 -0
  202. package/dist/node_modules/lodash-es/isSymbol.js +9 -0
  203. package/dist/node_modules/lodash-es/keys.js +9 -0
  204. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  205. package/dist/node_modules/lodash-es/map.js +11 -0
  206. package/dist/node_modules/lodash-es/property.js +10 -0
  207. package/dist/node_modules/lodash-es/range.js +5 -0
  208. package/dist/node_modules/lodash-es/stubArray.js +6 -0
  209. package/dist/node_modules/lodash-es/toFinite.js +14 -0
  210. package/dist/node_modules/lodash-es/toNumber.js +22 -0
  211. package/dist/node_modules/lodash-es/toString.js +7 -0
  212. package/dist/package.json.js +7 -0
  213. package/dist/services/recommendationApi.js +37 -0
  214. package/dist/services/stripoApi.js +1 -1
  215. package/dist/services/unsubscribeApi.js +16 -0
  216. package/dist/src/@types/generic.d.ts +98 -0
  217. package/dist/{components → src/components}/Guido.vue.d.ts +5 -3
  218. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  219. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +16 -0
  220. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +4 -0
  221. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +4 -0
  222. package/dist/src/components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +2 -0
  223. package/dist/src/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +2 -0
  224. package/dist/src/components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +2 -0
  225. package/dist/src/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +2 -0
  226. package/dist/src/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +2 -0
  227. package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +6 -4
  228. package/dist/src/composables/useBlocksConfig.d.ts +11 -0
  229. package/dist/{composables → src/composables}/useGuidoActions.d.ts +9 -0
  230. package/dist/src/config/compiler/itemsCompilerRules.d.ts +2 -0
  231. package/dist/src/config/migrator/index.d.ts +1 -0
  232. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
  233. package/dist/src/config/migrator/unsubscribeMigrator.d.ts +1 -0
  234. package/dist/src/enums/date.d.ts +4 -0
  235. package/dist/src/enums/extensions/recommendationBlock.d.ts +16 -0
  236. package/dist/src/enums/onboarding.d.ts +6 -0
  237. package/dist/src/enums/unsubscribe.d.ts +38 -0
  238. package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +1 -0
  239. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +6 -0
  240. package/dist/src/extensions/Blocks/Items/block.d.ts +27 -0
  241. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +14 -0
  242. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +33 -0
  243. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +14 -0
  244. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +501 -0
  245. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +14 -0
  246. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +19 -0
  247. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +21 -0
  248. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +14 -0
  249. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +13 -0
  250. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +48 -0
  251. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +61 -0
  252. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +162 -0
  253. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +50 -0
  254. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +4 -0
  255. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +41 -0
  256. package/dist/src/extensions/Blocks/Items/template.d.ts +24 -0
  257. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +23 -0
  258. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +32 -0
  259. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +44 -0
  260. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +8 -0
  261. package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +1 -0
  262. package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +1 -1
  263. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +11 -0
  264. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  265. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +51 -0
  266. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  267. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  268. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  269. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  270. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  271. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  272. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  273. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  274. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  275. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  276. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  277. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  278. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  279. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  280. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  281. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  282. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  283. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  284. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  285. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  286. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  287. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  288. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  289. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  290. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  291. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  292. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  293. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  294. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  295. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  296. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  297. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  298. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  299. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  300. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  301. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  302. package/dist/src/extensions/Blocks/Recommendation/settingsPanel.d.ts +4 -0
  303. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  304. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  305. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +16 -0
  306. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  307. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  308. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +32 -0
  309. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +29 -0
  310. package/dist/src/extensions/Blocks/Unsubscribe/elements/preview.d.ts +11 -0
  311. package/dist/src/extensions/Blocks/Unsubscribe/extension.d.ts +2 -0
  312. package/dist/src/extensions/Blocks/Unsubscribe/iconsRegistry.d.ts +4 -0
  313. package/dist/src/extensions/Blocks/Unsubscribe/settingsPanel.d.ts +4 -0
  314. package/dist/src/extensions/Blocks/Unsubscribe/tagRegistry.d.ts +4 -0
  315. package/dist/src/extensions/Blocks/Unsubscribe/template.d.ts +12 -0
  316. package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +9 -0
  317. package/dist/src/extensions/Blocks/Unsubscribe/utils/utils.d.ts +7 -0
  318. package/dist/src/extensions/Blocks/_Boilerplate/extension.d.ts +2 -0
  319. package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +4 -0
  320. package/dist/src/extensions/Blocks/common-control.d.ts +124 -0
  321. package/dist/src/extensions/Blocks/controlFactories.d.ts +312 -0
  322. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +13 -0
  323. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +66 -0
  324. package/dist/src/extensions/DynamicContent/extension.d.ts +2 -0
  325. package/dist/src/mock/api/validator.d.ts +2 -0
  326. package/dist/src/services/recommendationApi.d.ts +6 -0
  327. package/dist/src/services/unsubscribeApi.d.ts +4 -0
  328. package/dist/src/stores/config.d.ts +104 -0
  329. package/dist/{stores → src/stores}/dynamic-content.d.ts +3 -3
  330. package/dist/{stores → src/stores}/editor.d.ts +22 -1
  331. package/dist/{stores → src/stores}/onboarding.d.ts +335 -1
  332. package/dist/{stores → src/stores}/preview.d.ts +1 -1
  333. package/dist/{stores → src/stores}/recommendation.d.ts +1 -1
  334. package/dist/{stores → src/stores}/save-as-template.d.ts +1 -1
  335. package/dist/{stores → src/stores}/toaster.d.ts +1 -1
  336. package/dist/src/stores/unsubscribe.d.ts +256 -0
  337. package/dist/{stores → src/stores}/version-history.d.ts +1 -1
  338. package/dist/src/utils/dateUtil.d.ts +22 -0
  339. package/dist/src/utils/environmentUtil.d.ts +5 -0
  340. package/dist/{utils → src/utils}/genericUtil.d.ts +2 -0
  341. package/dist/src/utils/pairProductVariables.d.ts +7 -0
  342. package/dist/static/styles/components/narrow-panel.css.js +10 -0
  343. package/dist/static/styles/customEditorStyle.css.js +5 -0
  344. package/dist/stores/config.js +17 -0
  345. package/dist/stores/dynamic-content.js +2 -2
  346. package/dist/stores/editor.js +3 -2
  347. package/dist/stores/onboarding.js +44 -36
  348. package/dist/stores/preview.js +1 -1
  349. package/dist/stores/recommendation.js +3 -3
  350. package/dist/stores/save-as-template.js +2 -2
  351. package/dist/stores/toaster.js +1 -1
  352. package/dist/stores/unsubscribe.js +126 -6
  353. package/dist/stores/version-history.js +4 -4
  354. package/dist/utils/dateUtil.js +24 -3
  355. package/dist/utils/environmentUtil.js +4 -0
  356. package/dist/utils/genericUtil.js +17 -6
  357. package/dist/utils/pairProductVariables.js +136 -0
  358. package/dist/utils/templatePreparation.js +17 -16
  359. package/package.json +9 -4
  360. package/dist/@types/generic.d.ts +0 -49
  361. package/dist/config/migrator/index.d.ts +0 -1
  362. package/dist/enums/onboarding.d.ts +0 -1
  363. package/dist/enums/unsubscribe.d.ts +0 -15
  364. package/dist/extensions/Blocks/Checkbox/template.d.ts +0 -6
  365. package/dist/extensions/DynamicContent/dynamic-content-modal.d.ts +0 -6
  366. package/dist/extensions/DynamicContent/dynamic-content.d.ts +0 -16
  367. package/dist/stores/unsubscribe.d.ts +0 -8
  368. package/dist/utils/dateUtil.d.ts +0 -1
  369. package/dist/{@types → src/@types}/events.d.ts +0 -0
  370. package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
  371. package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  372. package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  373. package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
  374. package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  375. package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  376. package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  377. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  378. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  379. package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  380. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  381. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  382. package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  383. package/dist/{components/organisms/header/LeftSlot.vue.d.ts → src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts} +0 -0
  384. package/dist/{components/organisms/header/MiddleSlot.vue.d.ts → src/components/organisms/extensions/recommendation/Filters.vue.d.ts} +0 -0
  385. package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  386. package/dist/{components/organisms/header/ViewOptions.vue.d.ts → src/components/organisms/header/LeftSlot.vue.d.ts} +0 -0
  387. package/dist/{components/organisms/header/version-history/RestoreButton.vue.d.ts → src/components/organisms/header/MiddleSlot.vue.d.ts} +0 -0
  388. package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
  389. package/dist/{components/organisms/header/version-history → src/components/organisms/header}/ViewOptions.vue.d.ts +0 -0
  390. package/dist/{components/organisms/onboarding/AMPOnboarding.vue.d.ts → src/components/organisms/header/version-history/RestoreButton.vue.d.ts} +0 -0
  391. package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  392. package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  393. package/dist/{components/organisms/onboarding/GenericOnboarding.vue.d.ts → src/components/organisms/header/version-history/ViewOptions.vue.d.ts} +0 -0
  394. package/dist/{components/organisms/onboarding/NewVersionPopup.vue.d.ts → src/components/organisms/onboarding/AMPOnboarding.vue.d.ts} +0 -0
  395. package/dist/{components/organisms/onboarding/OnboardingWrapper.vue.d.ts → src/components/organisms/onboarding/GenericOnboarding.vue.d.ts} +0 -0
  396. package/dist/{components/organisms/onboarding/TextBlockOnboarding.vue.d.ts → src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts} +0 -0
  397. package/dist/{components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts → src/components/organisms/onboarding/TextBlockOnboarding.vue.d.ts} +0 -0
  398. package/dist/{components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts → src/components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts} +0 -0
  399. package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +1 -1
  400. /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
  401. /package/dist/{composables → src/composables}/useApiExample.d.ts +0 -0
  402. /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
  403. /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
  404. /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
  405. /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
  406. /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
  407. /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
  408. /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
  409. /package/dist/{composables → src/composables}/useHttp.d.ts +0 -0
  410. /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
  411. /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
  412. /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
  413. /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
  414. /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
  415. /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
  416. /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
  417. /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
  418. /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
  419. /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
  420. /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
  421. /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
  422. /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
  423. /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
  424. /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
  425. /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
  426. /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
  427. /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  428. /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
  429. /package/dist/{config → src/config}/migrator/couponBlockMigrator.d.ts +0 -0
  430. /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
  431. /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
  432. /package/dist/{enums → src/enums}/displayConditions.d.ts +0 -0
  433. /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
  434. /package/dist/{enums → src/enums}/preview.d.ts +0 -0
  435. /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
  436. /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
  437. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
  438. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  439. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  440. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  441. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  442. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  443. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  444. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  445. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  446. /package/dist/{extensions/Blocks/RadioButton → src/extensions/Blocks/Items}/extension.d.ts +0 -0
  447. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/Items}/settingsPanel.d.ts +0 -0
  448. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
  449. /package/dist/{extensions/Blocks/_Boilerplate → src/extensions/Blocks/RadioButton}/extension.d.ts +0 -0
  450. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  451. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  452. /package/dist/{extensions/DynamicContent → src/extensions/Blocks/Recommendation}/extension.d.ts +0 -0
  453. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  454. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  455. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  456. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  457. /package/dist/{library.d.ts → src/library.d.ts} +0 -0
  458. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  459. /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
  460. /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
  461. /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
  462. /package/dist/{mock/api/template-library.d.ts → src/mock/api/recommendation.d.ts} +0 -0
  463. /package/dist/{mock/api/unsubscribe.d.ts → src/mock/api/template-library.d.ts} +0 -0
  464. /package/dist/{mock/api/user-modal-state.d.ts → src/mock/api/unsubscribe.d.ts} +0 -0
  465. /package/dist/{mock/api/validator.d.ts → src/mock/api/user-modal-state.d.ts} +0 -0
  466. /package/dist/{mock → src/mock}/browser.d.ts +0 -0
  467. /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
  468. /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
  469. /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
  470. /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
  471. /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
  472. /package/dist/{utils → src/utils}/base64.d.ts +0 -0
  473. /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
  474. /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
  475. /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
@@ -1,38 +1,46 @@
1
- var E = Object.defineProperty;
2
- var c = (r, s, t) => s in r ? E(r, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[s] = t;
3
- var a = (r, s, t) => c(r, typeof s != "symbol" ? s + "" : s, t);
4
- import { useHttp as d } from "../../../composables/useHttp.js";
5
- import { Control as l, UIElementType as n, UEAttr as e, ModificationDescription as L } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
- const p = "ui-elements-radio-button", o = "select", { get: m } = d();
7
- class b extends l {
1
+ var d = Object.defineProperty;
2
+ var l = (r, n, t) => n in r ? d(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
+ var o = (r, n, t) => l(r, typeof n != "symbol" ? n + "" : n, t);
4
+ import { useHttp as L } from "../../../composables/useHttp.js";
5
+ import { DEFAULT_UNSUBSCRIBE_GROUP as c } from "../../../enums/unsubscribe.js";
6
+ import { Control as p, UIElementType as i, UEAttr as e, ModificationDescription as h } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
+ const m = "ui-elements-radio-button", u = "select", { get: $ } = L();
8
+ class S extends p {
8
9
  constructor() {
9
10
  super(...arguments);
10
- a(this, "currentNode");
11
- a(this, "selectedUnsubGroup");
12
- a(this, "unsubList", []);
11
+ o(this, "currentNode");
12
+ o(this, "selectedUnsubGroup");
13
+ o(this, "unsubList", []);
13
14
  }
14
15
  getId() {
15
- return p;
16
+ return m;
16
17
  }
17
18
  _setFormValues() {
19
+ if (this.selectedUnsubGroup = "", this.currentNode && "getAttribute" in this.currentNode) {
20
+ const t = this.currentNode.getAttribute("id");
21
+ if (t) {
22
+ const s = t === c.sendGridId ? t : Number(t);
23
+ s && (this.selectedUnsubGroup = s);
24
+ }
25
+ }
18
26
  this.api.updateValues({
19
- [o]: ""
27
+ [u]: this.selectedUnsubGroup
20
28
  });
21
29
  }
22
- _getLabel(t, i = `${Math.random()}`) {
30
+ _getLabel(t, s = `${Math.random()}`) {
23
31
  return `
24
- <${n.LABEL}
32
+ <${i.LABEL}
25
33
  ${e.LABEL.text}="${t}"
26
- ${e.LABEL.name}="${i}">
27
- </${n.LABEL}>
34
+ ${e.LABEL.name}="${s}">
35
+ </${i.LABEL}>
28
36
  `;
29
37
  }
30
- _getSelectItem(t, i) {
38
+ _getSelectItem(t, s) {
31
39
  return `
32
- <${n.SELECT_ITEM}
40
+ <${i.SELECT_ITEM}
33
41
  ${e.SELECT_ITEM.text}="${t}"
34
- ${e.SELECT_ITEM.value}="${i}">
35
- </${n.SELECT_ITEM}>`;
42
+ ${e.SELECT_ITEM.value}="${s}">
43
+ </${i.SELECT_ITEM}>`;
36
44
  }
37
45
  _getSelect() {
38
46
  return this.unsubList.map((t) => this._getSelectItem(t.name, t.sendGridId)).join("");
@@ -41,50 +49,45 @@ class b extends l {
41
49
  return `
42
50
  <div class="checkbox-controls-container">
43
51
  <div class="checkbox-select-container container two-columns stretch">
44
- <${n.LABEL}
52
+ <${i.LABEL}
45
53
  ${e.LABEL.text}="${this.api.translate("Unsubscribe Group")}"
46
54
  ${e.LABEL.name}="${Math.random()}">
47
- </${n.LABEL}>
55
+ </${i.LABEL}>
48
56
 
49
- <${n.SELECTPICKER}
50
- ${e.SELECTPICKER.name}="${o}"
57
+ <${i.SELECTPICKER}
58
+ ${e.SELECTPICKER.name}="${u}"
51
59
  ${e.SELECTPICKER.placeholder}="${this.api.translate("Select Unsubscribe Group")}">
52
60
  ${this._getSelect()}
53
- </${n.SELECTPICKER}>
61
+ </${i.SELECTPICKER}>
54
62
  </div>
55
63
  </div>
56
64
  `;
57
65
  }
58
66
  _onSelectChange(t) {
59
- this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", t.toString()).apply(new L(`Updated text to ${t}`));
67
+ this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", t.toString()).apply(new h(`Updated text to ${t}`));
60
68
  }
61
69
  _listenToFormUpdates() {
62
- this.api.onValueChanged(o, (t) => this._onSelectChange(t));
70
+ this.api.onValueChanged(u, (t) => this._onSelectChange(t));
63
71
  }
64
72
  onTemplateNodeUpdated(t) {
65
- if (this.currentNode = t, "getAttribute" in t) {
66
- const i = Number(t.getAttribute("id"));
67
- i && (this.selectedUnsubGroup = i, this.api.updateValues({
68
- [o]: this.selectedUnsubGroup
69
- }));
70
- }
73
+ this.currentNode = t, this._setFormValues();
71
74
  }
72
75
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
73
76
  async onRender() {
74
- const t = await m(
77
+ const t = await $(
75
78
  "/unsubscribe-groups/unsubscribe-list"
76
- ), i = t.data.map((u) => ({
77
- [e.SELECT_ITEM.text]: u.name,
78
- [e.SELECT_ITEM.value]: u.sendGridId
79
+ ), s = [c, ...t.data], E = s.map((a) => ({
80
+ [e.SELECT_ITEM.text]: a.name,
81
+ [e.SELECT_ITEM.value]: a.sendGridId
79
82
  }));
80
- this.unsubList = t.data, this.api.setUIEAttribute(
81
- o,
83
+ this.unsubList = s, this.api.setUIEAttribute(
84
+ u,
82
85
  e.SELECTPICKER.items,
83
- i
86
+ E
84
87
  ), this._setFormValues(), this._listenToFormUpdates();
85
88
  }
86
89
  }
87
90
  export {
88
- p as CONTROL_BLOCK_ID,
89
- b as RadioButtonControl
91
+ m as CONTROL_BLOCK_ID,
92
+ S as RadioButtonControl
90
93
  };
@@ -5,19 +5,19 @@ const e = {
5
5
  YES: "Yes",
6
6
  NO: "No"
7
7
  }, d = `
8
- <td align="left" class="radio-button-v2 esd-block-radio es-p10t es-p10b es-p30r es-p30l">
8
+ <td align="left" class="radio-button radio-button-v2 esd-block-radio es-p10t es-p10b es-p30r es-p30l">
9
9
  <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
10
10
  <tbody>
11
11
  <tr>
12
12
  <td align="left" width="70%" style="vertical-align: top;">
13
13
  <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
14
14
  <tbody>
15
- <${t.BLOCK_TEXT}>
16
- {-{-TITLE-}-}
17
- </${t.BLOCK_TEXT}>
18
- <${t.BLOCK_TEXT}>
19
- {-{-DESCRIPTION-}-}
20
- </${t.BLOCK_TEXT}>
15
+ <${t.BLOCK_TEXT}>
16
+ {-{-TITLE-}-}
17
+ </${t.BLOCK_TEXT}>
18
+ <${t.BLOCK_TEXT}>
19
+ {-{-DESCRIPTION-}-}
20
+ </${t.BLOCK_TEXT}>
21
21
  </tbody>
22
22
  </table>
23
23
  </td>
@@ -75,12 +75,21 @@ const e = {
75
75
  </tbody>
76
76
  </table>
77
77
  </td>
78
- `, l = `
79
- <td
80
- align="left"
81
- esd-extension-block-id="radio-button-block"
78
+ `, a = `
79
+ <td
80
+ align="left"
81
+ esd-extension-block-id="radio-button-block"
82
82
  esd-handler-name="esd-extension-RadioButtonBlock"
83
- class="radio-button-v2 esd-block-ra esd-radio-button-block esd-extension-block es-p10t es-p10b es-p30r es-p30l"
83
+ class="
84
+ radio-button
85
+ radio-button-v2
86
+ esd-block-ra
87
+ esd-radio-button-block
88
+ esd-extension-block
89
+ es-p10t
90
+ es-p10b
91
+ es-p30r
92
+ es-p30l"
84
93
  >
85
94
  <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
86
95
  <tbody>
@@ -140,10 +149,10 @@ const e = {
140
149
  </table>
141
150
  </td>
142
151
  `;
143
- function a() {
152
+ function l() {
144
153
  return d.replace("{-{-TITLE-}-}", `<p path="1">${e.TITLE}</p>`).replace("{-{-DESCRIPTION-}-}", `<p path="1">${e.DESCRIPTION}</p>`).replace("{-{-YES-}-}", `<p path="1">${e.YES}</p>`).replace("{-{-NO-}-}", `<p path="1">${e.NO}</p>`);
145
154
  }
146
155
  export {
147
- l as default,
148
- a as getDefaultTemplate
156
+ a as default,
157
+ l as getDefaultTemplate
149
158
  };
@@ -0,0 +1,30 @@
1
+ import { Block as e, BlockCompositionType as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { getDefaultTemplate as o } from "./templates/blockTemplate.js";
3
+ const n = "recommendation-block";
4
+ class m extends e {
5
+ constructor() {
6
+ super();
7
+ }
8
+ getId() {
9
+ return n;
10
+ }
11
+ getIcon() {
12
+ return "recommendation-icon";
13
+ }
14
+ getBlockCompositionType() {
15
+ return t.CONTAINER;
16
+ }
17
+ getName() {
18
+ return this.api.translate("Recommendation Block");
19
+ }
20
+ getDescription() {
21
+ return this.api.translate("Recommendation Block Title Description");
22
+ }
23
+ getTemplate() {
24
+ return o();
25
+ }
26
+ }
27
+ export {
28
+ n as BLOCK_ID,
29
+ m as RecommendationBlock
30
+ };
@@ -0,0 +1,103 @@
1
+ var m = Object.defineProperty;
2
+ var y = (n, o, i) => o in n ? m(n, o, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[o] = i;
3
+ var a = (n, o, i) => y(n, typeof o != "symbol" ? o + "" : o, i);
4
+ import { ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as b } from "../common-control.js";
6
+ const h = "ui-elements-recommendation-card-composition", s = [
7
+ { key: "productImage", label: "Product Image", visible: !0 },
8
+ { key: "productName", label: "Product Name", visible: !0 },
9
+ { key: "productPrice", label: "Product Price", visible: !0 },
10
+ { key: "productOriginalPrice", label: "Product Original Price", visible: !0 },
11
+ { key: "productButton", label: "Product Button", visible: !0 }
12
+ ];
13
+ class g extends b {
14
+ constructor() {
15
+ super(...arguments);
16
+ a(this, "currentComposition", []);
17
+ a(this, "currentVisibility", {});
18
+ }
19
+ getId() {
20
+ return h;
21
+ }
22
+ getTemplate() {
23
+ const i = s.map((e) => ({
24
+ key: e.key,
25
+ label: e.label,
26
+ content: `
27
+ <div style="display: flex; align-items: center; justify-content: space-between;
28
+ padding: 8px; gap: 8px;">
29
+ <span style="flex: 1;">${e.label}</span>
30
+ ${this._GuToggle(`visibility_${e.key}`)}
31
+ </div>
32
+ `
33
+ }));
34
+ return `
35
+ <div class="container">
36
+ ${this._GuLabel({ text: "Card Element Order & Visibility" })}
37
+ ${this._GuOrderable("cardComposition", i)}
38
+ </div>
39
+ `;
40
+ }
41
+ onRender() {
42
+ this._initializeComposition(), this.api.onValueChanged("cardComposition", (i) => {
43
+ this.currentComposition = i, this._applyCompositionToBlock(i);
44
+ }), s.forEach((i) => {
45
+ this.api.onValueChanged(`visibility_${i.key}`, (e) => {
46
+ this.currentVisibility[i.key] = e, this._applyVisibilityToBlock();
47
+ });
48
+ });
49
+ }
50
+ onTemplateNodeUpdated(i) {
51
+ super.onTemplateNodeUpdated(i), this._initializeComposition();
52
+ }
53
+ /**
54
+ * Initialize the composition order and visibility from the block or use defaults
55
+ */
56
+ _initializeComposition() {
57
+ var p;
58
+ const i = (p = this.currentNode) == null ? void 0 : p.querySelector(".ins-recommendation-v3-block-v2");
59
+ let e = null, l = null;
60
+ if (i && "getAttribute" in i && (e = i.getAttribute("data-card-composition"), l = i.getAttribute("data-card-visibility")), e) {
61
+ const t = e.split(",").filter(Boolean), r = s.map((c) => c.key);
62
+ t.every((c) => r.includes(c)) && t.length > 0 ? this.currentComposition = t : this.currentComposition = r;
63
+ } else
64
+ this.currentComposition = s.map((t) => t.key);
65
+ if (l)
66
+ try {
67
+ const t = JSON.parse(l);
68
+ this.currentVisibility = t;
69
+ } catch {
70
+ this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
71
+ }
72
+ else
73
+ this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
74
+ const d = {
75
+ cardComposition: this.currentComposition
76
+ };
77
+ s.forEach((t) => {
78
+ d[`visibility_${t.key}`] = this.currentVisibility[t.key] ?? !0;
79
+ }), this.api.updateValues(d);
80
+ }
81
+ /**
82
+ * Apply the reordered composition to the block's HTML structure
83
+ */
84
+ _applyCompositionToBlock(i) {
85
+ if (!this.currentNode)
86
+ return;
87
+ const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
88
+ e && this.api.getDocumentModifier().modifyHtml(e).setAttribute("data-card-composition", i.join(",")).apply(new u("Stored card composition order"));
89
+ }
90
+ /**
91
+ * Apply visibility changes to the block's HTML structure
92
+ */
93
+ _applyVisibilityToBlock() {
94
+ if (!this.currentNode)
95
+ return;
96
+ const i = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
97
+ i && this.api.getDocumentModifier().modifyHtml(i).setAttribute("data-card-visibility", JSON.stringify(this.currentVisibility)).apply(new u("Stored card visibility settings"));
98
+ }
99
+ }
100
+ export {
101
+ h as COMPOSITION_CONTROL_BLOCK_ID,
102
+ g as RecommendationCardCompositionControl
103
+ };
@@ -0,0 +1,5 @@
1
+ var o = /* @__PURE__ */ ((c) => (c.BUTTON = "recommendation-block-button", c.NAME = "recommendation-block-name", c.PRICE = "recommendation-block-price", c.OLD_PRICE = "recommendation-block-old-price", c.IMAGE = "recommendation-block-image", c))(o || {}), r = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c))(r || {});
2
+ export {
3
+ o as RecommendationBlockId,
4
+ r as RecommendationControlId
5
+ };
@@ -0,0 +1,306 @@
1
+ var _ = Object.defineProperty;
2
+ var R = (s, n, e) => n in s ? _(s, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[n] = e;
3
+ var r = (s, n, e) => R(s, typeof n != "symbol" ? n + "" : n, e);
4
+ import { currencyDecimalCounts as l, currencyOperators as c, currencyLocationMaps as h } from "../../../enums/extensions/recommendationBlock.js";
5
+ import { UEAttr as m, ModificationDescription as S } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
+ import { CommonControl as g } from "../common-control.js";
7
+ import { useRecommendationExtensionStore as O } from "./store/recommendation.js";
8
+ import { prepareProductRows as p } from "./templates/blockTemplate.js";
9
+ import { DEFAULT_CARD_COMPOSITION as C, getDefaultProducts as E } from "./templates/templateUtils.js";
10
+ import { useDebounceFn as U } from "../../../node_modules/@vueuse/shared/index.js";
11
+ const L = "ui-elements-recommendation-block", t = {
12
+ ALGORITHM: "strategy",
13
+ PRODUCT_IDS: "productIds",
14
+ LOCALE: "language",
15
+ CURRENCY: "value",
16
+ CURRENCY_LOCATION: "alignment",
17
+ CURRENCY_SYMBOL: "symbol",
18
+ CURRENCY_THOUSAND_SEPARATOR: "thousandSeparator",
19
+ CURRENCY_DECIMAL_SEPARATOR: "decimalSeparator",
20
+ CURRENCY_DECIMAL_COUNT: "decimalCount",
21
+ FILTERS: "filterStatus",
22
+ PRODUCT_COUNT: "size",
23
+ PRODUCT_IN_ROW: "cardsInRow",
24
+ SHUFFLE_PRODUCTS: "shuffleProducts",
25
+ RESPONSIVE: "unresponsive"
26
+ };
27
+ class b extends g {
28
+ constructor() {
29
+ super(...arguments);
30
+ r(this, "store", O());
31
+ r(this, "storeUnsubscription", () => {
32
+ });
33
+ r(this, "addFilterListener", () => {
34
+ });
35
+ r(this, "addFilterButton", null);
36
+ r(this, "_debouncedRegenerateProductRows", U(() => {
37
+ this._regenerateProductRows();
38
+ }, 500));
39
+ }
40
+ getId() {
41
+ return L;
42
+ }
43
+ getTemplate() {
44
+ return `
45
+ <div class="recommendation-controls-container">
46
+ ${this._getAlgorithms()}
47
+ ${this._getLanguages()}
48
+ ${this._getCurrency()}
49
+ ${this._getFilterStatus()}
50
+ ${this._getProductLayout()}
51
+ ${this._getShuffleProducts()}
52
+ ${this._getResponsive()}
53
+ </div>
54
+ `;
55
+ }
56
+ async onRender() {
57
+ await Promise.all([
58
+ this.store.fetchRecommendationFilters(),
59
+ this.store.fetchRecommendationCreateData(),
60
+ this.store.fetchRecommendationProducts()
61
+ // TODO: We need to change the location. It's just for testing
62
+ ]), this._listenStateUpdates(), this._initializeSelectItems(), this._setFormValues(), this._listenToFormUpdates();
63
+ }
64
+ onDestroy() {
65
+ var e;
66
+ (e = this.addFilterButton) == null || e.removeEventListener("click", this.addFilterListener), this.storeUnsubscription();
67
+ }
68
+ _setFormValues() {
69
+ const e = this.store.recommendationConfigs;
70
+ this._setProductIdsVisibility(), this.api.updateValues({
71
+ [t.ALGORITHM]: e.strategy,
72
+ [t.PRODUCT_IDS]: e.productIds.join(","),
73
+ [t.CURRENCY]: e.currencySettings.value,
74
+ [t.LOCALE]: e.language,
75
+ [t.CURRENCY_LOCATION]: e.currencySettings.alignment,
76
+ [t.CURRENCY_SYMBOL]: e.currencySettings.symbol,
77
+ [t.CURRENCY_THOUSAND_SEPARATOR]: e.currencySettings.thousandSeparator,
78
+ [t.CURRENCY_DECIMAL_SEPARATOR]: e.currencySettings.decimalSeparator,
79
+ [t.CURRENCY_DECIMAL_COUNT]: e.currencySettings.decimalCount,
80
+ [t.PRODUCT_COUNT]: e.size,
81
+ [t.PRODUCT_IN_ROW]: e.cardsInRow,
82
+ [t.SHUFFLE_PRODUCTS]: e.shuffleProducts,
83
+ [t.RESPONSIVE]: !e.unresponsive
84
+ });
85
+ }
86
+ _initializeSelectItems() {
87
+ const { store: e } = this, o = e.getActivePredictiveAlgorithms, i = e.getLanguages, a = {
88
+ [t.ALGORITHM]: o,
89
+ [t.LOCALE]: i,
90
+ [t.CURRENCY]: e.currencyList,
91
+ [t.CURRENCY_LOCATION]: h,
92
+ [t.CURRENCY_SYMBOL]: e.getCurrencySymbolList,
93
+ [t.CURRENCY_THOUSAND_SEPARATOR]: c,
94
+ [t.CURRENCY_DECIMAL_SEPARATOR]: c,
95
+ [t.CURRENCY_DECIMAL_COUNT]: l,
96
+ [t.PRODUCT_COUNT]: Number(e.recommendationConfigs.size),
97
+ [t.PRODUCT_IN_ROW]: e.recommendationConfigs.cardsInRow,
98
+ [t.SHUFFLE_PRODUCTS]: e.recommendationConfigs.shuffleProducts,
99
+ [t.RESPONSIVE]: !e.recommendationConfigs.unresponsive
100
+ };
101
+ Object.entries(a).forEach(([u, d]) => {
102
+ this.api.setUIEAttribute(u, m.SELECTPICKER.items, d);
103
+ });
104
+ }
105
+ _getAlgorithms() {
106
+ return `
107
+ ${this._GuTwoColumns([
108
+ this._GuLabel({ text: "Recommendation Algorithm" }),
109
+ this._GuSelect({
110
+ name: t.ALGORITHM,
111
+ placeholder: "Select Recommendation Algorithm",
112
+ options: this.store.getActivePredictiveAlgorithms
113
+ }),
114
+ this._GuLabel({ text: "Product Ids", name: `${t.PRODUCT_IDS}_label` }),
115
+ this._GuTextInput({
116
+ name: t.PRODUCT_IDS,
117
+ placeholder: "Enter Product Ids",
118
+ className: "es-180w"
119
+ })
120
+ ])}
121
+ `;
122
+ }
123
+ _getLanguages() {
124
+ return `
125
+ ${this._GuTwoColumns([
126
+ this._GuLabel({ text: "Recommendation Locale" }),
127
+ this._GuSelect({
128
+ name: t.LOCALE,
129
+ placeholder: "Select Recommendation Locale",
130
+ options: this.store.getLanguages
131
+ })
132
+ ])}
133
+ `;
134
+ }
135
+ _getCurrency() {
136
+ return `
137
+ ${this._GuTwoColumns([
138
+ this._GuLabel({ text: "Currency" }),
139
+ this._GuSelect({
140
+ name: t.CURRENCY,
141
+ placeholder: "Select Currency",
142
+ options: this.store.currencyList
143
+ }),
144
+ this._GuLabel({ text: "Currency Location" }),
145
+ this._GuSelect({
146
+ name: t.CURRENCY_LOCATION,
147
+ placeholder: "Select Currency Location",
148
+ options: h
149
+ }),
150
+ this._GuLabel({ text: "Currency Symbol" }),
151
+ this._GuSelect({
152
+ name: t.CURRENCY_SYMBOL,
153
+ placeholder: "Select Currency Symbol",
154
+ options: this.store.getCurrencySymbolList
155
+ }),
156
+ this._GuLabel({ text: "Thousand Separator" }),
157
+ this._GuSelect({
158
+ name: t.CURRENCY_THOUSAND_SEPARATOR,
159
+ placeholder: "Select Thousand Separator",
160
+ options: c
161
+ }),
162
+ this._GuLabel({ text: "Decimal Separator" }),
163
+ this._GuSelect({
164
+ name: t.CURRENCY_DECIMAL_SEPARATOR,
165
+ placeholder: "Select Decimal Separator",
166
+ options: c
167
+ }),
168
+ this._GuLabel({ text: "Decimal Count" }),
169
+ this._GuSelect({
170
+ name: t.CURRENCY_DECIMAL_COUNT,
171
+ placeholder: "Select Decimal Count",
172
+ options: l
173
+ })
174
+ ])}
175
+ `;
176
+ }
177
+ _getProductLayout() {
178
+ return `
179
+ ${this._GuTwoColumns([
180
+ this._GuLabel({ text: "Number of Products" }),
181
+ this._GuCounter({ name: t.PRODUCT_COUNT, maxValue: 9 }),
182
+ this._GuLabel({ text: "Products in One Row" }),
183
+ this._GuCounter({ name: t.PRODUCT_IN_ROW, maxValue: 4 })
184
+ ])}
185
+ `;
186
+ }
187
+ _getFilterStatus() {
188
+ return `
189
+ ${this._GuTwoColumns([
190
+ this._GuLabel({ text: "Filters" }),
191
+ this._GuButton({
192
+ name: t.FILTERS,
193
+ label: "Add Filter",
194
+ id: "guido__btn-add-filter"
195
+ })
196
+ ])}
197
+ `;
198
+ }
199
+ _getShuffleProducts() {
200
+ return `
201
+ ${this._GuTwoColumns([
202
+ this._GuLabel({ text: "Shuffle Recommended Products" }),
203
+ this._GuToggle(t.SHUFFLE_PRODUCTS)
204
+ ])}
205
+ `;
206
+ }
207
+ _getResponsive() {
208
+ return `
209
+ ${this._GuTwoColumns([
210
+ this._GuLabel({ text: "Responsive Block" }),
211
+ this._GuToggle(t.RESPONSIVE)
212
+ ])}
213
+ `;
214
+ }
215
+ _onFilterChange(e) {
216
+ this.currentNode && this.store.$patch({
217
+ filterStatus: e,
218
+ filterSelectionDrawerStatus: e
219
+ });
220
+ }
221
+ _onFilterSelectClick() {
222
+ this.store.$patch({
223
+ filterSelectionDrawerStatus: !0
224
+ });
225
+ }
226
+ _onDataChange(e, o) {
227
+ this.currentNode && (this.store.$patch({
228
+ recommendationConfigs: {
229
+ [e]: o
230
+ }
231
+ }), this._debouncedRegenerateProductRows());
232
+ }
233
+ /**
234
+ * Get the current card composition from block data attribute or use default
235
+ */
236
+ _getCardComposition() {
237
+ if (!this.currentNode)
238
+ return C;
239
+ const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
240
+ if (!e || !("getAttribute" in e))
241
+ return C;
242
+ const o = e.getAttribute("data-card-composition");
243
+ return o ? o.split(",").filter(Boolean) : C;
244
+ }
245
+ _regenerateProductRows() {
246
+ if (!this.currentNode || !("querySelector" in this.currentNode))
247
+ return;
248
+ const e = this.currentNode.querySelector(".ins-recommendation-product-container");
249
+ if (!e) {
250
+ console.error("Could not find container table for product rows");
251
+ return;
252
+ }
253
+ const o = this.store.recommendationProducts.length > 0 ? this.store.recommendationProducts : E(), { cardsInRow: i } = this.store.recommendationConfigs, a = this._getCardComposition(), u = p(o, i, a);
254
+ this.api.getDocumentModifier().modifyHtml(e).setInnerHtml(u).apply(new S("Updated product"));
255
+ }
256
+ _onCurrencyConfigChange(e, o) {
257
+ this.currentNode && this.store.$patch({
258
+ recommendationConfigs: {
259
+ currencySettings: {
260
+ [e]: o
261
+ }
262
+ }
263
+ });
264
+ }
265
+ _onCurrencyChange(e) {
266
+ const [, o] = e.split(".");
267
+ this.store.$patch({
268
+ recommendationConfigs: {
269
+ currencySettings: {
270
+ name: o,
271
+ value: o
272
+ }
273
+ }
274
+ });
275
+ }
276
+ _setProductIdsVisibility() {
277
+ const { recommendationConfigs: e } = this.store, o = e.strategy === "manualMerchandising";
278
+ this.api.setVisibility(t.PRODUCT_IDS, o), this.api.setVisibility(`${t.PRODUCT_IDS}_label`, o);
279
+ }
280
+ _listenToFormUpdates() {
281
+ var o;
282
+ this.api.onValueChanged(t.ALGORITHM, (i) => {
283
+ this._onDataChange(t.ALGORITHM, i), this._setProductIdsVisibility();
284
+ }), this.api.onValueChanged(t.PRODUCT_IDS, (i) => this._onDataChange(t.PRODUCT_IDS, i.split(",") || [])), this.api.onValueChanged(t.LOCALE, (i) => this._onDataChange(t.LOCALE, i)), this.api.onValueChanged(t.CURRENCY, (i) => this._onCurrencyChange(i)), [
285
+ t.CURRENCY_LOCATION,
286
+ t.CURRENCY_SYMBOL,
287
+ t.CURRENCY_THOUSAND_SEPARATOR,
288
+ t.CURRENCY_DECIMAL_SEPARATOR,
289
+ t.CURRENCY_DECIMAL_COUNT
290
+ ].forEach((i) => {
291
+ this.api.onValueChanged(i, (a) => this._onCurrencyConfigChange(i, a));
292
+ }), this.api.onValueChanged(t.PRODUCT_COUNT, (i) => this._onDataChange(t.PRODUCT_COUNT, i.toString())), this.api.onValueChanged(t.PRODUCT_IN_ROW, (i) => this._onDataChange(t.PRODUCT_IN_ROW, i)), this.api.onValueChanged(t.SHUFFLE_PRODUCTS, (i) => this._onDataChange(t.SHUFFLE_PRODUCTS, i)), this.api.onValueChanged(t.RESPONSIVE, (i) => this._onDataChange(t.RESPONSIVE, i)), this.addFilterListener = this._onFilterSelectClick.bind(this), this.addFilterButton = this.getContainer().querySelector("#guido__btn-add-filter"), (o = this.addFilterButton) == null || o.addEventListener("click", this.addFilterListener);
293
+ }
294
+ _listenStateUpdates() {
295
+ this.storeUnsubscription = this.store.$subscribe((e) => {
296
+ if ("payload" in e) {
297
+ const o = e.payload.recommendationConfigs;
298
+ o && (this.api.updateValues(o), this.store.fetchRecommendationProducts());
299
+ }
300
+ });
301
+ }
302
+ }
303
+ export {
304
+ L as CONTROL_BLOCK_ID,
305
+ b as RecommendationBlockControl
306
+ };
@@ -0,0 +1,13 @@
1
+ import { ButtonAlignBuiltInControl as t } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
+ class c extends t {
4
+ getId() {
5
+ return e.BUTTON_ALIGN;
6
+ }
7
+ getTargetNodes(o) {
8
+ return o.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
+ }
10
+ }
11
+ export {
12
+ c as ButtonAlignControl
13
+ };