@useinsider/guido 2.1.0 → 2.2.0-beta.39b37ff

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 (283) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +71 -66
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/base/Toaster.vue.js +4 -4
  6. package/dist/components/organisms/base/Toaster.vue2.js +12 -9
  7. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
  8. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
  9. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  10. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  11. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +1 -1
  12. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +19 -19
  13. package/dist/composables/useActionsApi.js +15 -13
  14. package/dist/composables/useBlocksConfig.js +26 -16
  15. package/dist/composables/useHtmlValidator.js +114 -104
  16. package/dist/composables/useRecommendation.js +54 -21
  17. package/dist/composables/useStripo.js +25 -23
  18. package/dist/composables/useVersionHistoryApi.js +1 -1
  19. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  20. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  21. package/dist/config/i18n/en/index.js +11 -0
  22. package/dist/config/i18n/en/labels.json.js +7 -0
  23. package/dist/config/i18n/en/toasters.json.js +56 -0
  24. package/dist/config/i18n/en/tooltips.json.js +82 -0
  25. package/dist/config/i18n/index.js +7 -0
  26. package/dist/config/migrator/itemsBlockMigrator.js +142 -120
  27. package/dist/config/migrator/recommendationMigrator.js +2 -2
  28. package/dist/enums/defaults.js +8 -4
  29. package/dist/enums/extensions/recommendationBlock.js +1 -1
  30. package/dist/enums/recommendation.js +16 -15
  31. package/dist/extensions/Blocks/Items/block.js +19 -28
  32. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  33. package/dist/extensions/Blocks/Items/controls/cardComposition.js +137 -89
  34. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  35. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  36. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  37. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  38. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  39. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  40. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  41. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  42. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  43. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  44. package/dist/extensions/Blocks/Items/extension.js +8 -9
  45. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  46. package/dist/extensions/Blocks/Items/template.js +181 -175
  47. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  48. package/dist/extensions/Blocks/Recommendation/block.js +133 -9
  49. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  50. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  51. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
  52. package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
  53. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  76. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  79. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  80. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  81. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  82. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  83. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  84. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
  85. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  86. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  87. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  88. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  89. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  90. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  91. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  92. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  93. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  94. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  95. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  96. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  97. package/dist/extensions/Blocks/Unsubscribe/block.js +29 -29
  98. package/dist/extensions/Blocks/Unsubscribe/control.js +12 -9
  99. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +13 -11
  100. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +31 -1
  101. package/dist/extensions/Blocks/common-control.js +91 -92
  102. package/dist/extensions/Blocks/controlFactories.js +125 -93
  103. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  104. package/dist/guido.css +1 -1
  105. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +317 -198
  106. package/dist/package.json.js +1 -1
  107. package/dist/services/recommendationApi.js +11 -8
  108. package/dist/services/stripoApi.js +20 -17
  109. package/dist/services/templateLibraryApi.js +16 -13
  110. package/dist/src/@types/config/schemas.d.ts +10 -2
  111. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  112. package/dist/src/composables/useConfig.d.ts +4 -0
  113. package/dist/src/composables/useRecommendation.d.ts +1 -0
  114. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  115. package/dist/src/config/i18n/en/index.d.ts +1 -0
  116. package/dist/src/config/i18n/index.d.ts +16 -0
  117. package/dist/src/enums/defaults.d.ts +4 -0
  118. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  119. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  120. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  121. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  122. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  123. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  124. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  125. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  126. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  127. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  128. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  129. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  130. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  131. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  132. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  133. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  134. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  135. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  136. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
  137. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
  138. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  139. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  140. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  141. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  142. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  143. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  144. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  145. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  146. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  147. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  148. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
  149. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  150. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  151. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  152. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
  153. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  154. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  155. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  156. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  157. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  158. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  159. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  160. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  161. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  162. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  163. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  165. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  166. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  167. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  168. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  169. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  170. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  171. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  172. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  173. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  174. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  175. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  176. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  177. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
  178. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  179. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  180. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  181. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  182. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  183. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
  184. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  185. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  186. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  187. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  188. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +1 -0
  189. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  190. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  191. package/dist/src/stores/config.d.ts +36 -0
  192. package/dist/static/styles/components/notification.css.js +19 -0
  193. package/dist/static/styles/components/tools.css.js +6 -2
  194. package/dist/static/styles/components/version-history.css.js +10 -2
  195. package/dist/static/styles/components/wide-panel.css.js +18 -6
  196. package/dist/static/styles/customEditorStyle.css.js +39 -2
  197. package/dist/static/styles/variables.css.js +2 -0
  198. package/dist/static/templates/empty/index.html.js +74 -0
  199. package/dist/static/templates/empty/style.css.js +779 -0
  200. package/dist/stores/unsubscribe.js +37 -34
  201. package/dist/utils/pairProductVariables.js +57 -56
  202. package/dist/utils/templatePreparation.js +15 -14
  203. package/package.json +2 -2
  204. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  205. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  206. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  207. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  208. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  209. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  210. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  211. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  212. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  213. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  214. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  215. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  216. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  217. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  218. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  219. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  220. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  221. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  222. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  223. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  224. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  225. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  226. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  227. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  228. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  229. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  230. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  231. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  232. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  233. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  234. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  235. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  236. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  237. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  238. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  239. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  240. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  241. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  242. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  243. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  244. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  245. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  246. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  247. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  248. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  249. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  250. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  251. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  252. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  253. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  254. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  255. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  256. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  257. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  258. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  259. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  260. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  261. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  262. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  263. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  264. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  265. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  266. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  267. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  268. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  269. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  270. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  271. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  272. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  273. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  274. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  275. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  276. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  277. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  278. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  279. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  280. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  281. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  282. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  283. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
@@ -1,13 +1,14 @@
1
- import { RecommendationFeedSourceMaps as n, PriceAttributes as u } from "../../../../enums/extensions/recommendationBlock.js";
2
- import { useRecommendationApi as l } from "../../../../services/recommendationApi.js";
3
- import { useConfigStore as c } from "../../../../stores/config.js";
4
- import { defineStore as p } from "pinia";
5
- import { generateCompleteFilterQuery as m } from "../utils/filterUtil.js";
6
- const a = l(), d = () => ({
7
- recommendationCampaignUrls: {},
8
- recommendationProducts: [],
9
- recommendationConfigs: {
10
- cardsInRow: 3,
1
+ import { RecommendationFeedSourceMaps as d, PriceAttributes as S } from "../../../../enums/extensions/recommendationBlock.js";
2
+ import { useRecommendationApi as p } from "../../../../services/recommendationApi.js";
3
+ import { useConfigStore as b } from "../../../../stores/config.js";
4
+ import { defineStore as I } from "pinia";
5
+ import { DEFAULT_CARDS_IN_ROW as R } from "../constants/layout.js";
6
+ import { getDefaultProducts as k } from "../templates/utils.js";
7
+ import { generateCompleteFilterQuery as f } from "../utils/filterUtil.js";
8
+ const m = p();
9
+ function h() {
10
+ return {
11
+ cardsInRow: R,
11
12
  currencySettings: {
12
13
  name: "USD",
13
14
  value: "USD",
@@ -17,178 +18,223 @@ const a = l(), d = () => ({
17
18
  decimalSeparator: ",",
18
19
  thousandSeparator: "."
19
20
  },
20
- filters: [
21
- {
22
- type: "standardFilter",
23
- attribute: "product_attributes.rating_star",
24
- operatorReplace: "=",
25
- operator: "=",
26
- innerGroupOperator: "*",
27
- outerGroupOperator: "*",
28
- value: "5",
29
- filterGroup: 1,
30
- filterNumber: 1,
31
- isValid: !0
32
- },
33
- {
34
- type: "standardFilter",
35
- attribute: "gender",
36
- operatorReplace: "=",
37
- operator: "=",
38
- innerGroupOperator: "|",
39
- outerGroupOperator: "*",
40
- value: "male",
41
- filterGroup: 1,
42
- filterNumber: 2,
43
- isValid: !0
44
- },
45
- {
46
- type: "standardFilter",
47
- attribute: "size",
48
- operatorReplace: "=",
49
- operator: "=",
50
- innerGroupOperator: "*",
51
- outerGroupOperator: "*",
52
- value: "L",
53
- filterGroup: 1,
54
- filterNumber: 3,
55
- isValid: !0
56
- },
57
- {
58
- type: "standardFilter",
59
- attribute: "price.USD",
60
- operatorReplace: ">",
61
- operator: ">",
62
- innerGroupOperator: "*",
63
- outerGroupOperator: "*",
64
- value: "20",
65
- filterGroup: 2,
66
- filterNumber: 1,
67
- isValid: !0
68
- },
69
- {
70
- type: "standardFilter",
71
- attribute: "url",
72
- operatorReplace: "~",
73
- operator: "~",
74
- innerGroupOperator: "|",
75
- outerGroupOperator: "*",
76
- value: "user",
77
- filterGroup: 2,
78
- filterNumber: 2,
79
- isValid: !0
80
- },
81
- {
82
- type: "standardFilter",
83
- attribute: "category",
84
- operatorReplace: "!~",
85
- operator: "!~",
86
- innerGroupOperator: "*",
87
- outerGroupOperator: "|",
88
- value: "t-shirt",
89
- filterGroup: 3,
90
- filterNumber: 1,
91
- isValid: !0
92
- },
93
- {
94
- type: "standardFilter",
95
- attribute: "omnibus_price.USD",
96
- operatorReplace: ">",
97
- operator: ">",
98
- innerGroupOperator: "*",
99
- outerGroupOperator: "|",
100
- value: "31",
101
- filterGroup: 3,
102
- filterNumber: 2,
103
- isValid: !0
104
- },
105
- {
106
- type: "standardFilter",
107
- attribute: "omnibus_discount.USD",
108
- operatorReplace: "<",
109
- operator: "%3C",
110
- innerGroupOperator: "|",
111
- outerGroupOperator: "|",
112
- value: "20",
113
- filterGroup: 3,
114
- filterNumber: 3,
115
- isValid: !0
116
- }
117
- ],
118
- productIds: ["22", "12"],
21
+ filters: [],
22
+ productIds: [],
119
23
  id: 1,
120
- language: "tr_TR",
121
- orientation: "vertical",
24
+ language: "en_US",
25
+ orientation: "grid",
122
26
  recommendedProducts: [],
123
27
  sendProductRequestFlag: !1,
124
28
  shuffleProducts: !1,
125
29
  strategy: "mostPopular",
126
30
  textTrimming: !0,
127
31
  unresponsive: !1,
128
- size: "9"
129
- },
32
+ size: "6"
33
+ };
34
+ }
35
+ function C() {
36
+ return {
37
+ recommendationConfigs: h(),
38
+ recommendationProducts: [],
39
+ filterStatus: !1,
40
+ filterSelectionDrawerStatus: !1,
41
+ filterGroup: 1,
42
+ isInitialized: !1
43
+ };
44
+ }
45
+ const y = () => ({
46
+ recommendationCampaignUrls: {},
130
47
  activePredictiveAlgorithms: [],
131
48
  languages: {},
132
49
  currencyList: [],
133
- filterStatus: !1,
134
- filterSelectionDrawerStatus: !1,
135
50
  filterList: {},
136
- filterGroup: 1
137
- }), y = p("guidoRecommendationExtension", {
138
- state: () => d(),
51
+ blockStates: {},
52
+ currentRecommendationId: null,
53
+ configVersion: 0
54
+ }), A = I("guidoRecommendationExtension", {
55
+ state: () => y(),
139
56
  getters: {
140
- hasFilters: (e) => !!e.recommendationConfigs.filters.length,
141
- getFilterGroupCount: (e) => {
142
- const { filters: t } = e.recommendationConfigs;
57
+ // ====================================================================
58
+ // Proxy Getters — Backward Compatible Access to Current Block State
59
+ // ====================================================================
60
+ /**
61
+ * Proxy getter: delegates to blockStates[currentRecommendationId].recommendationConfigs
62
+ * This allows all existing code that reads `store.recommendationConfigs` to work unchanged.
63
+ */
64
+ recommendationConfigs(t) {
65
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : h();
66
+ },
67
+ /**
68
+ * Proxy getter: delegates to blockStates[currentRecommendationId].recommendationProducts
69
+ */
70
+ recommendationProducts(t) {
71
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationProducts : [];
72
+ },
73
+ /**
74
+ * Proxy getter: delegates to blockStates[currentRecommendationId].filterSelectionDrawerStatus
75
+ */
76
+ filterSelectionDrawerStatus(t) {
77
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].filterSelectionDrawerStatus : !1;
78
+ },
79
+ /**
80
+ * Proxy getter: delegates to blockStates[currentRecommendationId].filterStatus
81
+ */
82
+ filterStatus(t) {
83
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].filterStatus : !1;
84
+ },
85
+ /**
86
+ * Proxy getter: delegates to blockStates[currentRecommendationId].filterGroup
87
+ */
88
+ filterGroup(t) {
89
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].filterGroup : 1;
90
+ },
91
+ // ====================================================================
92
+ // Existing Getters (now reading through proxy)
93
+ // ====================================================================
94
+ hasFilters() {
95
+ return !!this.recommendationConfigs.filters.length;
96
+ },
97
+ getFilterGroupCount() {
98
+ const { filters: t } = this.recommendationConfigs;
143
99
  return t.length && t[t.length - 1].filterGroup || 0;
144
100
  },
145
- getActivePredictiveAlgorithms: (e) => {
146
- const t = [];
147
- return e.activePredictiveAlgorithms.forEach((r) => {
148
- t.push(...n.filter((i) => i.id === r));
149
- }), t.map((r) => ({
150
- text: r.name,
151
- value: r.key
101
+ getActivePredictiveAlgorithms: (t) => {
102
+ const r = [];
103
+ return t.activePredictiveAlgorithms.forEach((e) => {
104
+ r.push(...d.filter((n) => n.id === e));
105
+ }), r.map((e) => ({
106
+ text: e.name,
107
+ value: e.key
152
108
  }));
153
109
  },
154
- getLanguages: (e) => Object.entries(e.languages).map(([t, r]) => ({
155
- text: r,
156
- value: t
110
+ getLanguages: (t) => Object.entries(t.languages).map(([r, e]) => ({
111
+ text: e,
112
+ value: r
157
113
  })),
158
- getCurrencySymbolList: (e) => e.currencyList.map((t) => ({
159
- text: t.text,
160
- value: t.text
114
+ getCurrencySymbolList: (t) => t.currencyList.map((r) => ({
115
+ text: r.text,
116
+ value: r.text
161
117
  })),
162
- getFilterList: (e) => Object.values(e.filterList).map((t) => {
163
- const r = t.type === "defaultAttribute", i = u.includes(t.attributeName);
164
- let o = r ? t.attributeName : `product_attributes.${t.attributeName}`;
165
- return o = i ? `${o}.${e.recommendationConfigs.currencySettings.value}` : o, {
166
- text: t.displayName,
167
- value: o,
168
- type: t.attributeType
169
- };
170
- }),
171
- getSelectedFilterGroup: (e) => (t) => [...e.recommendationConfigs.filters].filter((r) => r.filterGroup === t)
118
+ getFilterList() {
119
+ return Object.values(this.filterList).map((t) => {
120
+ const r = t.type === "defaultAttribute", e = S.includes(t.attributeName);
121
+ let n = r ? t.attributeName : `product_attributes.${t.attributeName}`;
122
+ return n = e ? `${n}.${this.recommendationConfigs.currencySettings.value}` : n, {
123
+ text: t.displayName,
124
+ value: n,
125
+ type: t.attributeType
126
+ };
127
+ });
128
+ },
129
+ getSelectedFilterGroup() {
130
+ return (t) => [...this.recommendationConfigs.filters].filter((r) => r.filterGroup === t);
131
+ }
172
132
  },
173
133
  actions: {
134
+ // ====================================================================
135
+ // Block Lifecycle Actions
136
+ // ====================================================================
137
+ /**
138
+ * Sets the currently active block ID.
139
+ * Creates a new entry in blockStates if one doesn't exist.
140
+ */
141
+ setCurrentBlock(t) {
142
+ this.blockStates[t] || (this.blockStates = {
143
+ ...this.blockStates,
144
+ [t]: C()
145
+ }), this.currentRecommendationId = t;
146
+ },
147
+ /**
148
+ * Removes a block's state from the store.
149
+ * Resets currentRecommendationId if it was the deleted block.
150
+ */
151
+ removeBlockState(t) {
152
+ const r = { ...this.blockStates };
153
+ if (delete r[t], this.blockStates = r, this.currentRecommendationId === t) {
154
+ const e = Object.keys(this.blockStates).map(Number);
155
+ this.currentRecommendationId = e.length > 0 ? e[0] : null;
156
+ }
157
+ },
158
+ /**
159
+ * Marks a block as initialized (initial API data has been fetched).
160
+ * Automatically cleaned up when removeBlockState deletes the block entry.
161
+ */
162
+ markBlockInitialized(t) {
163
+ this.blockStates[t] && (this.blockStates[t].isInitialized = !0);
164
+ },
165
+ /**
166
+ * Patches the current block's recommendationConfigs.
167
+ * Replaces `store.$patch({ recommendationConfigs: { ... } })` pattern.
168
+ */
169
+ patchCurrentBlockConfig(t, r = {}) {
170
+ if (this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])
171
+ return;
172
+ const e = this.blockStates[this.currentRecommendationId];
173
+ e.recommendationConfigs = {
174
+ ...e.recommendationConfigs,
175
+ ...t,
176
+ currencySettings: {
177
+ ...e.recommendationConfigs.currencySettings,
178
+ ...t.currencySettings || {}
179
+ }
180
+ };
181
+ const { triggerRefetch: n = !0 } = r;
182
+ n && this.configVersion++;
183
+ },
184
+ /**
185
+ * Opens the filter selection drawer for the current block.
186
+ * If no filters exist, initializes with a default empty filter
187
+ * so the user has a starting point for input.
188
+ */
189
+ openFilterDrawer() {
190
+ if (this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])
191
+ return;
192
+ const t = this.blockStates[this.currentRecommendationId];
193
+ t.recommendationConfigs.filters.length || (t.recommendationConfigs.filters = [{
194
+ type: "standardFilter",
195
+ attribute: "",
196
+ operatorReplace: "",
197
+ operator: "",
198
+ innerGroupOperator: "*",
199
+ outerGroupOperator: "*",
200
+ filterNumber: 1,
201
+ filterGroup: 1,
202
+ isValid: !1,
203
+ value: ""
204
+ }]), t.filterSelectionDrawerStatus = !0;
205
+ },
206
+ /**
207
+ * Closes the filter selection drawer for the current block
208
+ */
209
+ closeFilterDrawer() {
210
+ this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId] || (this.blockStates[this.currentRecommendationId].filterSelectionDrawerStatus = !1);
211
+ },
212
+ // ====================================================================
213
+ // Shared Data Fetching (fetched once, used by all blocks)
214
+ // ====================================================================
174
215
  async fetchRecommendationCreateData() {
175
216
  if (this.activePredictiveAlgorithms.length)
176
217
  return;
177
218
  const {
178
- activePredictiveAlgorithms: e,
179
- languages: t,
180
- currencies: r
181
- } = await a.fetchRecommendationCreateData();
182
- this.activePredictiveAlgorithms = e, this.languages = t;
183
- const [i] = r;
184
- this.recommendationConfigs.currencySettings.name = i.text, this.recommendationConfigs.currencySettings.value = i.value, this.currencyList = r, this.filterStatus = !!this.recommendationConfigs.filters.length;
219
+ activePredictiveAlgorithms: t,
220
+ languages: r,
221
+ currencies: e
222
+ } = await m.fetchRecommendationCreateData();
223
+ if (this.activePredictiveAlgorithms = t, this.languages = r, this.currentRecommendationId !== null && this.blockStates[this.currentRecommendationId]) {
224
+ const n = this.blockStates[this.currentRecommendationId];
225
+ n.filterStatus = !!n.recommendationConfigs.filters.length;
226
+ }
227
+ this.currencyList = e;
185
228
  },
186
229
  async fetchRecommendationFilters() {
187
- const e = await a.fetchRecommendationFilters();
188
- this.filterList = e;
230
+ const t = await m.fetchRecommendationFilters();
231
+ this.filterList = t;
189
232
  },
190
- addFilterGroup(e) {
191
- this.recommendationConfigs.filters.push({
233
+ // ====================================================================
234
+ // Per-Block Filter Actions
235
+ // ====================================================================
236
+ addFilterGroup(t) {
237
+ this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId] || this.blockStates[this.currentRecommendationId].recommendationConfigs.filters.push({
192
238
  type: "standardFilter",
193
239
  attribute: "",
194
240
  operatorReplace: "",
@@ -198,70 +244,71 @@ const a = l(), d = () => ({
198
244
  value: "",
199
245
  filterNumber: 1,
200
246
  isValid: !0,
201
- filterGroup: e
247
+ filterGroup: t
202
248
  });
203
249
  },
204
- updateFilter(e) {
205
- const t = this.recommendationConfigs.filters.findIndex((r) => r.filterNumber === e.filterNumber && r.filterGroup === e.filterGroup);
206
- if (t !== -1) {
207
- const r = [...this.recommendationConfigs.filters];
208
- r[t] = e, e.value.length && e.operator && e.attribute && e.innerGroupOperator && e.outerGroupOperator ? r[t].isValid = !0 : r[t].isValid = !1, this.$patch({
209
- recommendationConfigs: {
210
- filters: r
211
- }
212
- });
250
+ updateFilter(t) {
251
+ if (this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])
252
+ return;
253
+ const r = this.blockStates[this.currentRecommendationId], e = r.recommendationConfigs.filters.findIndex((n) => n.filterNumber === t.filterNumber && n.filterGroup === t.filterGroup);
254
+ if (e !== -1) {
255
+ const n = [...r.recommendationConfigs.filters];
256
+ n[e] = t, t.value.length && t.operator && t.attribute && t.innerGroupOperator && t.outerGroupOperator ? n[e].isValid = !0 : n[e].isValid = !1, r.recommendationConfigs.filters = n;
213
257
  }
214
258
  },
215
- deleteFilter(e) {
216
- const t = [...this.recommendationConfigs.filters].findIndex((r) => r.filterNumber === e.filterNumber && r.filterGroup === e.filterGroup);
217
- if (t !== -1) {
218
- const r = [...this.recommendationConfigs.filters];
219
- r.splice(t, 1), this.$patch({
220
- recommendationConfigs: {
221
- filters: r
222
- }
223
- });
259
+ deleteFilter(t) {
260
+ if (this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])
261
+ return;
262
+ const r = this.blockStates[this.currentRecommendationId], e = [...r.recommendationConfigs.filters].findIndex((n) => n.filterNumber === t.filterNumber && n.filterGroup === t.filterGroup);
263
+ if (e !== -1) {
264
+ const n = [...r.recommendationConfigs.filters];
265
+ n.splice(e, 1), r.recommendationConfigs.filters = n;
224
266
  }
225
267
  },
226
- addFilter(e) {
227
- const t = [...this.recommendationConfigs.filters], r = t.findLastIndex((i) => i.filterGroup === e.filterGroup);
228
- r !== -1 ? t.splice(r + 1, 0, {
229
- ...e,
230
- filterNumber: r + 2
231
- }) : t.push({
232
- ...e,
233
- filterNumber: 1
234
- }), this.$patch({
235
- recommendationConfigs: {
236
- filters: t
237
- }
238
- });
268
+ addFilter(t) {
269
+ if (this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])
270
+ return;
271
+ const r = this.blockStates[this.currentRecommendationId], e = [...r.recommendationConfigs.filters], o = e.filter(
272
+ (i) => i.filterGroup === t.filterGroup
273
+ ).length + 1, s = e.findLastIndex((i) => i.filterGroup === t.filterGroup);
274
+ s !== -1 ? e.splice(s + 1, 0, {
275
+ ...t,
276
+ filterNumber: o
277
+ }) : e.push({
278
+ ...t,
279
+ filterNumber: o
280
+ }), r.recommendationConfigs.filters = e;
239
281
  },
240
282
  generateFilterQuery() {
241
- return m(this.recommendationConfigs.filters);
283
+ return f(this.recommendationConfigs.filters);
242
284
  },
285
+ // ====================================================================
286
+ // Per-Block Product Fetching
287
+ // ====================================================================
243
288
  async fetchRecommendationProducts() {
244
- var o;
245
- const e = this.generateFilterQuery(), t = ((o = n.find((s) => s.key === this.recommendationConfigs.strategy)) == null ? void 0 : o.path) || "", r = c(), i = await a.fetchRecommendationProducts(
246
- t,
247
- {
248
- // TODO: Here will be optimized and filled carefully
249
- locale: this.recommendationConfigs.language,
250
- currency: this.recommendationConfigs.currencySettings.value,
251
- partnerName: r.partnerName,
252
- productId: this.recommendationConfigs.strategy === "manualMerchandising" ? this.recommendationConfigs.productIds.join(",") : "{itemId}",
253
- size: this.recommendationConfigs.size,
254
- details: !0,
255
- campaignId: "{campaignId}",
256
- filter: e
257
- }
258
- );
259
- this.$patch({
260
- recommendationProducts: i
261
- });
289
+ var u;
290
+ if (this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])
291
+ return;
292
+ const t = this.currentRecommendationId, r = this.blockStates[t], { recommendationConfigs: e } = r, n = e.filters.filter((l) => l.isValid), o = f(n), s = ((u = d.find((l) => l.key === e.strategy)) == null ? void 0 : u.path) || "", i = b(), c = {
293
+ locale: e.language,
294
+ currency: e.currencySettings.value,
295
+ partnerName: i.partnerName,
296
+ size: e.size,
297
+ details: !0,
298
+ campaignId: i.variationId
299
+ };
300
+ e.strategy === "manualMerchandising" ? c.productId = e.productIds.join(",") : e.strategy === "similarViewed" && (c.productId = "{itemId}"), o && (c.filter = o), e.shuffleProducts && (c.shuffle = !0);
301
+ const g = parseInt(e.size) || 6;
302
+ let a;
303
+ try {
304
+ a = await m.fetchRecommendationProducts(s, c);
305
+ } catch {
306
+ a = [];
307
+ }
308
+ this.blockStates[t] && (this.blockStates[t].recommendationProducts = a.length > 0 ? a : k(g));
262
309
  }
263
310
  }
264
311
  });
265
312
  export {
266
- y as useRecommendationExtensionStore
313
+ A as useRecommendationExtensionStore
267
314
  };