@useinsider/guido 2.0.0 → 2.1.0-beta.038f431

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 (320) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +72 -54
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +15 -17
  5. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  6. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +6 -6
  7. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  8. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +6 -6
  9. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  11. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  12. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +16 -15
  13. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  14. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  15. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +12 -11
  16. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  17. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  18. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  19. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  20. package/dist/components/organisms/header/EditorActions.vue.js +21 -0
  21. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  22. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  23. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  24. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -5
  25. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  26. package/dist/components/organisms/header/LeftSlot.vue2.js +27 -23
  27. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  28. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  29. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  30. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  31. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  32. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  33. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  34. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  35. package/dist/composables/useActionsApi.js +33 -30
  36. package/dist/composables/useConfig.js +29 -27
  37. package/dist/composables/useSave.js +13 -11
  38. package/dist/composables/useStripo.js +57 -56
  39. package/dist/config/migrator/index.js +9 -8
  40. package/dist/config/migrator/itemsBlockMigrator.js +334 -0
  41. package/dist/config/migrator/recommendationMigrator.js +2 -2
  42. package/dist/enums/academy.js +8 -0
  43. package/dist/enums/onboarding.js +1 -2
  44. package/dist/enums/unsubscribe.js +20 -21
  45. package/dist/extensions/Blocks/CouponBlock/constants.js +4 -0
  46. package/dist/extensions/Blocks/CouponBlock/controls/index.js +29 -0
  47. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -4
  48. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +20 -14
  49. package/dist/extensions/Blocks/CouponBlock/template.js +22 -11
  50. package/dist/extensions/Blocks/Items/block.js +36 -40
  51. package/dist/extensions/Blocks/Items/controls/button/link.js +22 -29
  52. package/dist/extensions/Blocks/Items/controls/cardComposition.js +79 -50
  53. package/dist/extensions/Blocks/Items/controls/image/link.js +23 -30
  54. package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
  55. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +19 -17
  56. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +31 -29
  57. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +44 -38
  58. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +21 -19
  59. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +29 -27
  60. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +93 -0
  61. package/dist/extensions/Blocks/Items/controls/settingsControl.js +158 -137
  62. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  63. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  64. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +4 -5
  65. package/dist/extensions/Blocks/Items/extension.js +11 -9
  66. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  67. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  68. package/dist/extensions/Blocks/Items/settingsPanel.js +27 -26
  69. package/dist/extensions/Blocks/Items/store/items-block.js +11 -7
  70. package/dist/extensions/Blocks/Items/template.js +389 -141
  71. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  72. package/dist/extensions/Blocks/Recommendation/block.js +130 -9
  73. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  74. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  75. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +65 -0
  76. package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
  77. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  84. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  85. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  86. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +217 -0
  87. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  88. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +110 -0
  89. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  90. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +286 -0
  91. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  92. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  93. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  94. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  95. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  96. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  97. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  98. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  99. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  100. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  101. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  102. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  103. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  104. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  105. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  106. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  107. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +230 -193
  108. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +233 -0
  109. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  110. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +69 -0
  111. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  112. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +174 -0
  113. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  114. package/dist/extensions/Blocks/Recommendation/templates/utils.js +122 -0
  115. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  116. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  117. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  118. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  119. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  120. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  121. package/dist/extensions/Blocks/common-control.js +30 -32
  122. package/dist/extensions/Blocks/controlFactories.js +171 -118
  123. package/dist/guido.css +1 -1
  124. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +428 -295
  125. package/dist/package.json.js +1 -1
  126. package/dist/services/recommendationApi.js +10 -9
  127. package/dist/services/stripoApi.js +6 -10
  128. package/dist/src/@types/config/index.d.ts +2 -2
  129. package/dist/src/@types/config/schemas.d.ts +36 -2
  130. package/dist/src/@types/config/types.d.ts +7 -1
  131. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  132. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  133. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  134. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  135. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  136. package/dist/src/composables/useActionsApi.d.ts +1 -0
  137. package/dist/src/composables/useConfig.d.ts +10 -0
  138. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  139. package/dist/src/enums/academy.d.ts +12 -0
  140. package/dist/src/enums/onboarding.d.ts +0 -1
  141. package/dist/src/enums/unsubscribe.d.ts +0 -1
  142. package/dist/src/extensions/Blocks/CouponBlock/constants.d.ts +14 -0
  143. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +108 -0
  144. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
  145. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -2
  146. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +9 -0
  147. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -2
  148. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  149. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +18 -0
  150. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  151. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  152. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  153. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  154. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
  155. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  156. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +76 -0
  157. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  158. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  159. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  160. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  161. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  162. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
  163. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  165. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  166. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  167. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  168. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  169. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  170. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  171. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  172. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  173. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  174. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +68 -0
  175. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  176. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
  177. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  178. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +214 -0
  179. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  180. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  181. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  182. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  183. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  184. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  185. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  186. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  187. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  188. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  189. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  190. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  191. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  192. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  193. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  194. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  195. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  196. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  197. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  198. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +131 -468
  199. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  200. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  201. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  202. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  203. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  204. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  205. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  206. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +57 -0
  207. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  208. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +160 -0
  209. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  210. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  211. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  212. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  213. package/dist/src/extensions/Blocks/common-control.d.ts +10 -11
  214. package/dist/src/extensions/Blocks/controlFactories.d.ts +30 -7
  215. package/dist/src/stores/config.d.ts +181 -1
  216. package/dist/src/stores/editor.d.ts +21 -0
  217. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  218. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  219. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  220. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  221. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  222. package/dist/static/styles/components/button.css.js +1 -1
  223. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  224. package/dist/static/styles/components/wide-panel.css.js +1 -5
  225. package/dist/static/styles/customEditorStyle.css.js +38 -2
  226. package/dist/stores/config.js +7 -0
  227. package/dist/stores/editor.js +1 -0
  228. package/dist/utils/pairProductVariables.js +61 -58
  229. package/dist/utils/templatePreparation.js +17 -17
  230. package/package.json +3 -3
  231. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  232. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  233. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  234. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  235. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  236. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  237. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  238. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  239. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  240. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  241. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  242. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  243. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  244. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  245. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  246. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  247. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  248. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  249. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  250. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  251. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  252. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  253. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  254. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  255. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  256. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  257. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  258. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  259. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  260. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  261. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  262. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  263. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  264. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  265. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  266. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  267. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  268. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  269. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  270. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  271. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  272. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  273. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  274. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  275. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  276. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  277. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  278. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  279. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  280. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  281. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  282. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  283. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  284. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  285. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  286. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  287. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  288. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  289. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  290. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  291. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  292. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  293. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  294. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  295. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  296. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  297. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  298. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  299. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  300. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  301. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  302. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  303. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  304. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  305. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  306. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  307. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  308. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  309. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  310. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  311. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  312. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  313. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  314. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  315. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  316. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  317. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  318. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  319. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  320. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -1,28 +0,0 @@
1
- import { configAttributes as i } from "../enums/productEnums.js";
2
- import { getConfigBlock as c, attributeToBoolean as u, attributeToString as a } from "./configBlockUtils.js";
3
- function l(r, t) {
4
- const e = c(r);
5
- if (!e)
6
- return;
7
- const o = e.getAttribute(i[t.attributeName]), n = t.converter(o);
8
- t.storeSetter(n);
9
- }
10
- function b(r, t, e = !1) {
11
- return {
12
- attributeName: r,
13
- storeSetter: t,
14
- converter: (o) => u(o, e)
15
- };
16
- }
17
- function s(r, t, e = "") {
18
- return {
19
- attributeName: r,
20
- storeSetter: t,
21
- converter: (o) => a(o, e)
22
- };
23
- }
24
- export {
25
- b as createBooleanSyncConfig,
26
- s as createStringSyncConfig,
27
- l as syncAttributeFromConfigBlock
28
- };
@@ -1,76 +0,0 @@
1
- import { useItemsBlockStore as e } from "../store/items-block.js";
2
- import { syncAttributeFromConfigBlock as r, createBooleanSyncConfig as i, createStringSyncConfig as s } from "./syncAttributeFromConfigBlock.js";
3
- function m(t) {
4
- const o = e(), n = i(
5
- "PRODUCT_NAME_TRIMMING",
6
- (c) => o.setNameTrimming(c),
7
- !1
8
- );
9
- r(t, n);
10
- }
11
- function f(t) {
12
- const o = e(), n = i(
13
- "PRODUCT_PRICE_HIDE_DISCOUNT",
14
- (c) => o.setHideDiscount(c),
15
- !1
16
- );
17
- r(t, n);
18
- }
19
- function R(t) {
20
- const o = e(), n = i(
21
- "PRODUCT_PRICE_FORMATTED",
22
- (c) => o.setFormattedPrice(c),
23
- !0
24
- );
25
- r(t, n);
26
- }
27
- function O(t) {
28
- const o = e(), n = s(
29
- "PRODUCT_PRICE_CURRENCY_SYMBOL",
30
- (c) => o.setCurrencySymbol(c),
31
- ""
32
- );
33
- r(t, n);
34
- }
35
- function _(t) {
36
- const o = e(), n = s(
37
- "PRODUCT_PRICE_CURRENCY_LOCATION",
38
- (c) => o.setCurrencyLocation(c),
39
- "0"
40
- );
41
- r(t, n);
42
- }
43
- function I(t) {
44
- const o = e(), n = s(
45
- "PRODUCT_BUTTON_LINK",
46
- (c) => o.setButtonLink(c),
47
- ""
48
- );
49
- r(t, n);
50
- }
51
- function T(t) {
52
- const o = e(), n = s(
53
- "PRODUCT_IMAGE_LINK",
54
- (c) => o.setImageLink(c),
55
- ""
56
- );
57
- r(t, n);
58
- }
59
- function y(t) {
60
- const o = e(), n = s(
61
- "PRODUCT_ORIGINAL_PRICE_CONTROL_ORIENTATION",
62
- (c) => o.setPriceOrientation(c),
63
- "horizontal"
64
- );
65
- r(t, n);
66
- }
67
- export {
68
- I as syncButtonLinkFromAttributes,
69
- _ as syncCurrencyLocationFromAttributes,
70
- O as syncCurrencySymbolFromAttributes,
71
- R as syncFormattedPriceFromAttributes,
72
- f as syncHideDiscountFromAttributes,
73
- T as syncImageLinkFromAttributes,
74
- m as syncNameTrimmingFromAttributes,
75
- y as syncPriceOrientationFromAttributes
76
- };
@@ -1,46 +0,0 @@
1
- import { ModificationDescription as p } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { configAttributes as t } from "../enums/productEnums.js";
3
- import { DefaultConfigValues as i } from "../enums/settingsEnums.js";
4
- import { useItemsBlockStore as s } from "../store/items-block.js";
5
- import { getConfigBlock as P } from "./configBlockUtils.js";
6
- function M(n, O) {
7
- const e = P(n);
8
- if (!e)
9
- return;
10
- const c = s(), {
11
- itemsType: r,
12
- itemIds: C,
13
- orientation: T,
14
- nameTrimming: _,
15
- hideDiscount: E,
16
- formattedPrice: R,
17
- currencySymbol: N,
18
- currencyLocation: m,
19
- priceOrientation: I,
20
- buttonLink: a,
21
- imageLink: f
22
- } = c, u = {
23
- "data-source": r,
24
- [t.TYPE]: r,
25
- [t.ITEMS_INDEX_SELECT_CONTROL_VALUE]: C,
26
- [t.ORIENTATION]: T,
27
- [t.PRODUCT_NAME_TRIMMING]: _ ? "1" : "0",
28
- [t.PRODUCT_PRICE_HIDE_DISCOUNT]: E ? "1" : "0",
29
- [t.PRODUCT_PRICE_FORMATTED]: R ? "1" : "0",
30
- [t.PRODUCT_PRICE_CURRENCY_SYMBOL]: N || "",
31
- [t.PRODUCT_PRICE_CURRENCY_LOCATION]: m || "0",
32
- [t.PRODUCT_ORIGINAL_PRICE_CONTROL_ORIENTATION]: I || "horizontal",
33
- [t.PRODUCT_BUTTON_LINK]: a || "",
34
- [t.PRODUCT_IMAGE_LINK]: f || "",
35
- [t.NAME_CONTROL_ENABLED]: i.productNameControlEnabled,
36
- [t.QUANTITY_CONTROL_ENABLED]: i.productQuantityControlEnabled,
37
- [t.PRICE_CONTROL_OPENED]: i.productPriceControlOpened
38
- };
39
- let o = O.getDocumentModifier().modifyHtml(e);
40
- Object.entries(u).forEach(([D, l]) => {
41
- o = o.setAttribute(D, l);
42
- }), o.apply(new p("Update config block attributes from control"));
43
- }
44
- export {
45
- M as updateConfigBlockAttributes
46
- };
@@ -1,103 +0,0 @@
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
- };
@@ -1,5 +0,0 @@
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
- };
@@ -1,306 +0,0 @@
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
- };
@@ -1,13 +0,0 @@
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
- };
@@ -1,13 +0,0 @@
1
- import { ButtonBorderBuiltInControl 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 s extends t {
4
- getId() {
5
- return e.BUTTON_BORDER;
6
- }
7
- getTargetNodes(o) {
8
- return o.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- s as ButtonBorderControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonBorderRadiusBuiltInControl 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 i extends t {
4
- getId() {
5
- return e.BUTTON_BORDER_RADIUS;
6
- }
7
- getTargetNodes(o) {
8
- return o.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- i as ButtonBorderRadiusControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonColorBuiltInControl 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_COLOR;
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 ButtonColorControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonFitToContainerBuiltInControl as o } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class s extends o {
4
- getId() {
5
- return e.BUTTON_FIT_TO_CONTENT;
6
- }
7
- getTargetNodes(t) {
8
- return t.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- s as ButtonFitToContentControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonFontFamilyBuiltInControl as o } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class s extends o {
4
- getId() {
5
- return e.BUTTON_FONT_FAMILY;
6
- }
7
- getTargetNodes(t) {
8
- return t.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- s as ButtonFontFamilyControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonMarginsBuiltInControl as o } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class m extends o {
4
- getId() {
5
- return e.BUTTON_MARGINS;
6
- }
7
- getTargetNodes(t) {
8
- return t.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- m as ButtonMarginsControl
13
- };