@useinsider/guido 2.0.0-beta.087a24f → 2.0.0-beta.0941bcd

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 (284) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +55 -39
  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 +10 -14
  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/header/EditorActions.vue.js +21 -0
  20. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  21. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  22. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  23. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -5
  24. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  25. package/dist/components/organisms/header/LeftSlot.vue2.js +11 -12
  26. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  27. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  28. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  29. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  30. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  31. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  32. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  33. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  34. package/dist/composables/useActionsApi.js +33 -30
  35. package/dist/composables/useConfig.js +29 -27
  36. package/dist/composables/useSave.js +13 -11
  37. package/dist/composables/useStripo.js +42 -40
  38. package/dist/config/migrator/index.js +8 -9
  39. package/dist/config/migrator/recommendationMigrator.js +2 -2
  40. package/dist/enums/academy.js +8 -0
  41. package/dist/enums/onboarding.js +1 -2
  42. package/dist/enums/unsubscribe.js +20 -21
  43. package/dist/extensions/Blocks/CouponBlock/constants.js +4 -0
  44. package/dist/extensions/Blocks/CouponBlock/controls/index.js +29 -0
  45. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -4
  46. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +20 -14
  47. package/dist/extensions/Blocks/CouponBlock/template.js +22 -11
  48. package/dist/extensions/Blocks/Items/block.js +40 -39
  49. package/dist/extensions/Blocks/Items/controls/cardComposition.js +62 -50
  50. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +26 -28
  51. package/dist/extensions/Blocks/Items/controls/settingsControl.js +127 -132
  52. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -2
  53. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +48 -58
  54. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +58 -48
  55. package/dist/extensions/Blocks/Items/store/items-block.js +2 -2
  56. package/dist/extensions/Blocks/Items/template.js +123 -296
  57. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +20 -11
  58. package/dist/extensions/Blocks/Recommendation/block.js +40 -6
  59. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  60. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  61. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +64 -0
  62. package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
  63. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +96 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +110 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +204 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +205 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +74 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +118 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +71 -0
  76. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +286 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  84. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  85. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  86. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  87. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  88. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  89. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  90. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  91. package/dist/extensions/Blocks/Recommendation/services/configService.js +239 -0
  92. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  93. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +41 -36
  94. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +233 -0
  95. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  96. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +69 -0
  97. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  98. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +174 -0
  99. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  100. package/dist/extensions/Blocks/Recommendation/templates/utils.js +121 -0
  101. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  102. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  103. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  104. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  105. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  106. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  107. package/dist/extensions/Blocks/common-control.js +55 -67
  108. package/dist/extensions/Blocks/controlFactories.js +162 -117
  109. package/dist/guido.css +1 -1
  110. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +229 -176
  111. package/dist/package.json.js +7 -0
  112. package/dist/services/recommendationApi.js +10 -9
  113. package/dist/services/stripoApi.js +6 -10
  114. package/dist/src/@types/config/index.d.ts +2 -2
  115. package/dist/src/@types/config/schemas.d.ts +30 -0
  116. package/dist/src/@types/config/types.d.ts +7 -1
  117. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  118. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  119. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  120. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  121. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  122. package/dist/src/composables/useActionsApi.d.ts +1 -0
  123. package/dist/src/composables/useConfig.d.ts +8 -0
  124. package/dist/src/enums/academy.d.ts +12 -0
  125. package/dist/src/enums/onboarding.d.ts +0 -1
  126. package/dist/src/enums/unsubscribe.d.ts +0 -1
  127. package/dist/src/extensions/Blocks/CouponBlock/constants.d.ts +14 -0
  128. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +108 -0
  129. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
  130. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  131. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +4 -0
  132. package/dist/src/extensions/Blocks/Items/template.d.ts +1 -20
  133. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +34 -0
  134. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  135. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  136. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  137. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  138. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
  139. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -0
  140. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  141. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  142. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  143. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  144. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  145. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  146. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  147. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +45 -0
  148. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  149. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +57 -0
  150. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  151. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
  152. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  153. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +214 -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 +16 -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/omnibusPrice/index.d.ts +100 -0
  161. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  162. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  163. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  165. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  166. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  167. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  168. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +17 -16
  169. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  170. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  171. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  172. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  173. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  174. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  175. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  176. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +54 -0
  177. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  178. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +154 -0
  179. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  180. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  181. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  182. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  183. package/dist/src/extensions/Blocks/common-control.d.ts +9 -14
  184. package/dist/src/extensions/Blocks/controlFactories.d.ts +30 -7
  185. package/dist/src/stores/config.d.ts +164 -1
  186. package/dist/src/stores/editor.d.ts +21 -0
  187. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  188. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  189. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  190. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  191. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  192. package/dist/static/styles/components/button.css.js +1 -1
  193. package/dist/static/styles/components/wide-panel.css.js +1 -5
  194. package/dist/static/styles/customEditorStyle.css.js +38 -2
  195. package/dist/stores/config.js +7 -0
  196. package/dist/stores/editor.js +1 -0
  197. package/dist/utils/templatePreparation.js +17 -17
  198. package/package.json +1 -1
  199. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  200. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  201. package/dist/config/migrator/itemsBlockMigrator.js +0 -283
  202. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +0 -172
  203. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  204. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  205. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  206. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  207. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  208. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  209. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  210. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  211. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  212. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  213. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  214. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  215. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  216. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  217. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  218. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  219. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  220. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  221. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  222. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  223. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  224. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  225. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  226. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  227. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  228. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  229. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  230. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  231. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  232. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  233. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  234. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  235. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  236. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  237. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  238. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  239. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  240. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  241. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  242. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  243. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +0 -6
  244. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -71
  245. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  246. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  247. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  248. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  249. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  250. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  251. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  252. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  253. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  254. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  255. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  256. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  257. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  258. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  259. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  260. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  261. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  262. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  263. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  264. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  265. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  266. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  267. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  268. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  269. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  270. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  271. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  272. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  273. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  274. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  275. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  276. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  277. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  278. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  279. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  280. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  281. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  282. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  283. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  284. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -1,117 +1,173 @@
1
- import { SettingsPanelRegistry as N, SettingsPanelTab as _, SettingsTab as E, ContainerControls as S, TextControls as L } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
1
+ import { SettingsPanelRegistry as S, SettingsPanelTab as I, SettingsTab as T, ContainerControls as E, TextControls as C } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
2
  import { BLOCK_ID as R } from "./block.js";
3
- import { COMPOSITION_CONTROL_BLOCK_ID as C } from "./cardCompositionControl.js";
4
- import { RecommendationBlockId as I, RecommendationControlId as T } from "./constants.js";
5
- import { CONTROL_BLOCK_ID as e } from "./control.js";
6
- class G extends N {
3
+ import { RecommendationBlockId as N } from "./constants/blockIds.js";
4
+ import { RecommendationControlId as _ } from "./constants/controlIds.js";
5
+ import { CONTROL_BLOCK_ID as L } from "./controls/main/index.js";
6
+ import "./store/recommendation.js";
7
+ import "./controls/name/index.js";
8
+ import "./controls/price/index.js";
9
+ import "./controls/oldPrice/index.js";
10
+ import "./controls/omnibusPrice/index.js";
11
+ import "./controls/omnibusDiscount/index.js";
12
+ import "./controls/button/index.js";
13
+ import "./controls/image/index.js";
14
+ import { SPACING_CONTROL_ID as U } from "./controls/spacing/index.js";
15
+ import { CARD_BACKGROUND_COLOR_CONTROL_ID as B } from "./controls/cardBackground/index.js";
16
+ import { LAYOUT_CONTROL_ID as D } from "./controls/layout/index.js";
17
+ import { COMPOSITION_CONTROL_BLOCK_ID as A } from "./controls/cardComposition/index.js";
18
+ class s extends S {
7
19
  registerBlockControls(O) {
8
20
  O[R] = [
9
- new _(
10
- E.SETTINGS,
21
+ new I(
22
+ T.SETTINGS,
11
23
  [
12
- e,
13
- S.EXTERNAL_INDENTS
24
+ L,
25
+ E.EXTERNAL_INDENTS
14
26
  ]
15
27
  ),
16
- new _(
17
- E.STYLES,
28
+ new I(
29
+ T.STYLES,
18
30
  [
19
- L.TEXT_BLOCK_BACKGROUND_COLOR
31
+ C.TEXT_BLOCK_BACKGROUND_COLOR,
32
+ B,
33
+ D,
34
+ U
20
35
  ]
21
36
  ),
22
- new _(
37
+ new I(
23
38
  "Card Composition",
24
39
  [
25
- C
40
+ A
26
41
  ]
27
42
  ).withLabel("Card Composition")
28
- ], O[I.NAME] = [
29
- new _(
30
- E.SETTINGS,
43
+ ], O[N.NAME] = [
44
+ new I(
45
+ T.SETTINGS,
31
46
  [
32
- T.NAME_BACKGROUND,
33
- T.NAME_COLOR,
34
- T.NAME_SIZE,
35
- T.NAME_STYLE,
36
- T.NAME_FONT_FAMILY
47
+ _.NAME_STYLE,
48
+ _.NAME_ALIGN,
49
+ _.NAME_TEXT_TRIM,
50
+ _.NAME_PADDINGS
37
51
  ]
38
52
  ),
39
- new _(
40
- E.STYLES,
53
+ new I(
54
+ T.STYLES,
41
55
  [
42
- T.NAME_ALIGN,
43
- T.NAME_PADDINGS
56
+ _.NAME_BACKGROUND,
57
+ _.NAME_FONT_FAMILY,
58
+ _.NAME_SIZE,
59
+ _.NAME_COLOR
44
60
  ]
45
61
  )
46
- ], O[I.PRICE] = [
47
- new _(
48
- E.SETTINGS,
62
+ ], O[N.PRICE] = [
63
+ new I(
64
+ T.SETTINGS,
49
65
  [
50
- T.PRICE_BACKGROUND,
51
- T.PRICE_COLOR,
52
- T.PRICE_SIZE,
53
- T.PRICE_STYLE,
54
- T.PRICE_FONT_FAMILY
66
+ _.PRICE_STYLE,
67
+ _.PRICE_ALIGN,
68
+ _.PRICE_PADDINGS
55
69
  ]
56
70
  ),
57
- new _(
58
- E.STYLES,
71
+ new I(
72
+ T.STYLES,
59
73
  [
60
- T.PRICE_ALIGN,
61
- T.PRICE_PADDINGS
74
+ _.PRICE_BACKGROUND,
75
+ _.PRICE_FONT_FAMILY,
76
+ _.PRICE_SIZE,
77
+ _.PRICE_COLOR
62
78
  ]
63
79
  )
64
- ], O[I.OLD_PRICE] = [
65
- new _(
66
- E.SETTINGS,
80
+ ], O[N.OLD_PRICE] = [
81
+ new I(
82
+ T.SETTINGS,
67
83
  [
68
- T.OLD_PRICE_BACKGROUND,
69
- T.OLD_PRICE_COLOR,
70
- T.OLD_PRICE_SIZE,
71
- T.OLD_PRICE_STYLE,
72
- T.OLD_PRICE_FONT_FAMILY
84
+ _.OLD_PRICE_STYLE,
85
+ _.OLD_PRICE_ALIGN,
86
+ _.OLD_PRICE_PADDINGS
73
87
  ]
74
88
  ),
75
- new _(
76
- E.STYLES,
89
+ new I(
90
+ T.STYLES,
77
91
  [
78
- T.OLD_PRICE_ALIGN,
79
- T.OLD_PRICE_PADDINGS
92
+ _.OLD_PRICE_BACKGROUND,
93
+ _.OLD_PRICE_FONT_FAMILY,
94
+ _.OLD_PRICE_SIZE,
95
+ _.OLD_PRICE_COLOR
80
96
  ]
81
97
  )
82
- ], O[I.BUTTON] = [
83
- new _(
84
- E.SETTINGS,
98
+ ], O[N.OMNIBUS_PRICE] = [
99
+ new I(
100
+ T.SETTINGS,
85
101
  [
86
- T.BUTTON_TEXT,
87
- T.BUTTON_ALIGN,
88
- T.BUTTON_MARGINS,
89
- T.BUTTON_PADDINGS
102
+ _.OMNIBUS_PRICE_TEXT_BEFORE,
103
+ _.OMNIBUS_PRICE_TEXT_AFTER,
104
+ _.OMNIBUS_PRICE_STYLE,
105
+ _.OMNIBUS_PRICE_ALIGN,
106
+ _.OMNIBUS_PRICE_PADDINGS
90
107
  ]
91
108
  ),
92
- new _(
93
- E.STYLES,
109
+ new I(
110
+ T.STYLES,
94
111
  [
95
- T.BUTTON_COLOR,
96
- T.BUTTON_FONT_FAMILY,
97
- T.BUTTON_TEXT_SIZE,
98
- T.BUTTON_TEXT_STYLE_AND_FONT_COLOR,
99
- T.BUTTON_FIT_TO_CONTENT,
100
- T.BUTTON_BORDER_RADIUS,
101
- T.BUTTON_BORDER
112
+ _.OMNIBUS_PRICE_BACKGROUND,
113
+ _.OMNIBUS_PRICE_FONT_FAMILY,
114
+ _.OMNIBUS_PRICE_SIZE,
115
+ _.OMNIBUS_PRICE_COLOR
102
116
  ]
103
117
  )
104
- ], O[I.IMAGE] = [
105
- new _(
106
- E.SETTINGS,
118
+ ], O[N.OMNIBUS_DISCOUNT] = [
119
+ new I(
120
+ T.SETTINGS,
107
121
  [
108
- T.IMAGE_SIZE,
109
- T.IMAGE_MARGINS
122
+ _.OMNIBUS_DISCOUNT_TEXT_BEFORE,
123
+ _.OMNIBUS_DISCOUNT_TEXT_AFTER,
124
+ _.OMNIBUS_DISCOUNT_STYLE,
125
+ _.OMNIBUS_DISCOUNT_ALIGN,
126
+ _.OMNIBUS_DISCOUNT_PADDINGS
127
+ ]
128
+ ),
129
+ new I(
130
+ T.STYLES,
131
+ [
132
+ _.OMNIBUS_DISCOUNT_BACKGROUND,
133
+ _.OMNIBUS_DISCOUNT_FONT_FAMILY,
134
+ _.OMNIBUS_DISCOUNT_SIZE,
135
+ _.OMNIBUS_DISCOUNT_COLOR
136
+ ]
137
+ )
138
+ ], O[N.BUTTON] = [
139
+ new I(
140
+ T.SETTINGS,
141
+ [
142
+ _.BUTTON_TEXT,
143
+ _.BUTTON_ALIGN,
144
+ _.BUTTON_PADDINGS,
145
+ _.BUTTON_MARGINS
146
+ ]
147
+ ),
148
+ new I(
149
+ T.STYLES,
150
+ [
151
+ _.BUTTON_COLOR,
152
+ _.BUTTON_FONT_FAMILY,
153
+ _.BUTTON_TEXT_SIZE,
154
+ _.BUTTON_TEXT_STYLE_AND_FONT_COLOR,
155
+ _.BUTTON_FIT_TO_CONTENT,
156
+ _.BUTTON_BORDER_RADIUS,
157
+ _.BUTTON_BORDER
158
+ ]
159
+ )
160
+ ], O[N.IMAGE] = [
161
+ new I(
162
+ T.SETTINGS,
163
+ [
164
+ _.IMAGE_SIZE,
165
+ _.IMAGE_MARGINS
110
166
  ]
111
167
  )
112
168
  ];
113
169
  }
114
170
  }
115
171
  export {
116
- G as SettingsPanel
172
+ s as SettingsPanel
117
173
  };
@@ -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 = () => ({
1
+ import { RecommendationFeedSourceMaps as l, PriceAttributes as p } from "../../../../enums/extensions/recommendationBlock.js";
2
+ import { useRecommendationApi as m } from "../../../../services/recommendationApi.js";
3
+ import { useConfigStore as f } from "../../../../stores/config.js";
4
+ import { defineStore as d } from "pinia";
5
+ import { DEFAULT_CARDS_IN_ROW as g } from "../constants/layout.js";
6
+ import { generateCompleteFilterQuery as c } from "../utils/filterUtil.js";
7
+ const s = m(), h = () => ({
7
8
  recommendationCampaignUrls: {},
8
9
  recommendationProducts: [],
9
10
  recommendationConfigs: {
10
- cardsInRow: 3,
11
+ cardsInRow: g,
11
12
  currencySettings: {
12
13
  name: "USD",
13
14
  value: "USD",
@@ -118,14 +119,14 @@ const a = l(), d = () => ({
118
119
  productIds: ["22", "12"],
119
120
  id: 1,
120
121
  language: "tr_TR",
121
- orientation: "vertical",
122
+ orientation: "grid",
122
123
  recommendedProducts: [],
123
124
  sendProductRequestFlag: !1,
124
125
  shuffleProducts: !1,
125
126
  strategy: "mostPopular",
126
127
  textTrimming: !0,
127
128
  unresponsive: !1,
128
- size: "9"
129
+ size: "6"
129
130
  },
130
131
  activePredictiveAlgorithms: [],
131
132
  languages: {},
@@ -134,8 +135,8 @@ const a = l(), d = () => ({
134
135
  filterSelectionDrawerStatus: !1,
135
136
  filterList: {},
136
137
  filterGroup: 1
137
- }), y = p("guidoRecommendationExtension", {
138
- state: () => d(),
138
+ }), R = d("guidoRecommendationExtension", {
139
+ state: () => h(),
139
140
  getters: {
140
141
  hasFilters: (e) => !!e.recommendationConfigs.filters.length,
141
142
  getFilterGroupCount: (e) => {
@@ -145,7 +146,7 @@ const a = l(), d = () => ({
145
146
  getActivePredictiveAlgorithms: (e) => {
146
147
  const t = [];
147
148
  return e.activePredictiveAlgorithms.forEach((r) => {
148
- t.push(...n.filter((i) => i.id === r));
149
+ t.push(...l.filter((i) => i.id === r));
149
150
  }), t.map((r) => ({
150
151
  text: r.name,
151
152
  value: r.key
@@ -160,7 +161,7 @@ const a = l(), d = () => ({
160
161
  value: t.text
161
162
  })),
162
163
  getFilterList: (e) => Object.values(e.filterList).map((t) => {
163
- const r = t.type === "defaultAttribute", i = u.includes(t.attributeName);
164
+ const r = t.type === "defaultAttribute", i = p.includes(t.attributeName);
164
165
  let o = r ? t.attributeName : `product_attributes.${t.attributeName}`;
165
166
  return o = i ? `${o}.${e.recommendationConfigs.currencySettings.value}` : o, {
166
167
  text: t.displayName,
@@ -178,13 +179,13 @@ const a = l(), d = () => ({
178
179
  activePredictiveAlgorithms: e,
179
180
  languages: t,
180
181
  currencies: r
181
- } = await a.fetchRecommendationCreateData();
182
+ } = await s.fetchRecommendationCreateData();
182
183
  this.activePredictiveAlgorithms = e, this.languages = t;
183
184
  const [i] = r;
184
185
  this.recommendationConfigs.currencySettings.name = i.text, this.recommendationConfigs.currencySettings.value = i.value, this.currencyList = r, this.filterStatus = !!this.recommendationConfigs.filters.length;
185
186
  },
186
187
  async fetchRecommendationFilters() {
187
- const e = await a.fetchRecommendationFilters();
188
+ const e = await s.fetchRecommendationFilters();
188
189
  this.filterList = e;
189
190
  },
190
191
  addFilterGroup(e) {
@@ -224,13 +225,15 @@ const a = l(), d = () => ({
224
225
  }
225
226
  },
226
227
  addFilter(e) {
227
- const t = [...this.recommendationConfigs.filters], r = t.findLastIndex((i) => i.filterGroup === e.filterGroup);
228
- r !== -1 ? t.splice(r + 1, 0, {
228
+ const t = [...this.recommendationConfigs.filters], i = t.filter(
229
+ (a) => a.filterGroup === e.filterGroup
230
+ ).length + 1, o = t.findLastIndex((a) => a.filterGroup === e.filterGroup);
231
+ o !== -1 ? t.splice(o + 1, 0, {
229
232
  ...e,
230
- filterNumber: r + 2
233
+ filterNumber: i
231
234
  }) : t.push({
232
235
  ...e,
233
- filterNumber: 1
236
+ filterNumber: i
234
237
  }), this.$patch({
235
238
  recommendationConfigs: {
236
239
  filters: t
@@ -238,30 +241,32 @@ const a = l(), d = () => ({
238
241
  });
239
242
  },
240
243
  generateFilterQuery() {
241
- return m(this.recommendationConfigs.filters);
244
+ return c(this.recommendationConfigs.filters);
242
245
  },
243
246
  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
- }
247
+ var u;
248
+ const e = this.recommendationConfigs.filters.filter((n) => n.isValid), t = c(e), r = ((u = l.find((n) => n.key === this.recommendationConfigs.strategy)) == null ? void 0 : u.path) || "", i = f(), o = {
249
+ // Note: {itemId} and {campaignId} are template placeholders replaced at runtime
250
+ locale: this.recommendationConfigs.language,
251
+ currency: this.recommendationConfigs.currencySettings.value,
252
+ partnerName: i.partnerName,
253
+ productId: this.recommendationConfigs.strategy === "manualMerchandising" ? this.recommendationConfigs.productIds.join(",") : "{itemId}",
254
+ size: this.recommendationConfigs.size,
255
+ details: !0,
256
+ campaignId: "{campaignId}",
257
+ filter: t
258
+ };
259
+ this.recommendationConfigs.shuffleProducts && (o.shuffle = !0);
260
+ const a = await s.fetchRecommendationProducts(
261
+ r,
262
+ o
258
263
  );
259
264
  this.$patch({
260
- recommendationProducts: i
265
+ recommendationProducts: a
261
266
  });
262
267
  }
263
268
  }
264
269
  });
265
270
  export {
266
- y as useRecommendationExtensionStore
271
+ R as useRecommendationExtensionStore
267
272
  };
@@ -0,0 +1,233 @@
1
+ import { RecommendationBlockId as s } from "../../constants/blockIds.js";
2
+ import { ATTR_PRODUCT_BUTTON as b, ATTR_PRODUCT_OMNIBUS_DISCOUNT as u, ATTR_PRODUCT_OMNIBUS_PRICE as m, ATTR_PRODUCT_OLD_PRICE as h, ATTR_PRODUCT_PRICE as y, ATTR_PRODUCT_NAME as f, ATTR_PRODUCT_IMAGE as x } from "../../constants/selectors.js";
3
+ import { useRecommendationExtensionStore as T } from "../../store/recommendation.js";
4
+ import { formatPrice as _ } from "../../utils/priceFormatter.js";
5
+ import { sanitizeImageUrl as $ } from "../utils.js";
6
+ const o = "0 5px", a = "attribute-cell";
7
+ function p() {
8
+ const t = T(), { currencySettings: e } = t.recommendationConfigs;
9
+ return {
10
+ code: e.value,
11
+ symbol: e.symbol,
12
+ alignment: e.alignment === "0" ? "before" : "after",
13
+ decimalCount: parseInt(e.decimalCount) || 2,
14
+ decimalSeparator: e.decimalSeparator,
15
+ thousandSeparator: e.thousandSeparator
16
+ };
17
+ }
18
+ function r(t, e = "price") {
19
+ const n = p(), l = t[e], i = (l == null ? void 0 : l[n.code]) ?? Object.values(l ?? {})[0] ?? 0;
20
+ return _({
21
+ price: i,
22
+ currency: n
23
+ });
24
+ }
25
+ const P = {
26
+ [x]: (t) => `
27
+ <td class="${a}" style="padding: ${o}; height: 100%;" valign="top">
28
+ <table
29
+ class="product-card-segment"
30
+ width="100%"
31
+ height="100%"
32
+ cellpadding="0"
33
+ cellspacing="0"
34
+ border="0">
35
+ <tbody>
36
+ <tr valign="top">
37
+ <td
38
+ class="esd-block-image product-image"
39
+ align="center"
40
+ esd-extension-block-id="${s.IMAGE}">
41
+ <div style="position: relative; width: 100%; padding-bottom: 100%; overflow: hidden;">
42
+ <a
43
+ target="_blank"
44
+ href="${t.url}"
45
+ style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;">
46
+ <img
47
+ src="${$(t.image_url)}"
48
+ alt="${t.name}"
49
+ style="max-width: 100%; max-height: 100%; object-fit: contain; display: block;"
50
+ class="adapt-img">
51
+ </a>
52
+ </div>
53
+ </td>
54
+ </tr>
55
+ </tbody>
56
+ </table>
57
+ </td>
58
+ `,
59
+ [f]: (t) => `
60
+ <td class="${a}" style="padding: ${o}; height: 100%;" valign="middle">
61
+ <table
62
+ class="product-card-segment"
63
+ width="100%"
64
+ height="100%"
65
+ cellpadding="0"
66
+ cellspacing="0"
67
+ border="0"
68
+ style="table-layout: fixed;">
69
+ <tbody>
70
+ <tr valign="top">
71
+ <td
72
+ class="esd-block-text product-name es-p10t es-p10b es-p15l es-p15r"
73
+ align="center"
74
+ esd-extension-block-id="${s.NAME}">
75
+ <p contenteditable="false" style="font-size: 16px; color: #333333;">
76
+ <strong>${t.name}</strong>
77
+ </p>
78
+ </td>
79
+ </tr>
80
+ </tbody>
81
+ </table>
82
+ </td>
83
+ `,
84
+ [y]: (t) => `
85
+ <td class="${a}" style="padding: ${o}; height: 100%;" valign="top">
86
+ <table
87
+ class="product-card-segment"
88
+ width="100%"
89
+ height="100%"
90
+ cellpadding="0"
91
+ cellspacing="0"
92
+ border="0">
93
+ <tbody>
94
+ <tr valign="top">
95
+ <td
96
+ class="esd-block-text product-price es-p15l es-p15r"
97
+ align="center"
98
+ esd-extension-block-id="${s.PRICE}">
99
+ <p contenteditable="false" style="font-size: 16px; color: #333333;">
100
+ <strong>${r(t, "price")}</strong>
101
+ </p>
102
+ </td>
103
+ </tr>
104
+ </tbody>
105
+ </table>
106
+ </td>
107
+ `,
108
+ [h]: (t) => `
109
+ <td class="${a}" style="padding: ${o}; height: 100%;" valign="top">
110
+ <table
111
+ class="product-card-segment"
112
+ width="100%"
113
+ height="100%"
114
+ cellpadding="0"
115
+ cellspacing="0"
116
+ border="0">
117
+ <tbody>
118
+ <tr valign="top">
119
+ <td
120
+ class="esd-block-text product-old-price es-p15l es-p15r"
121
+ align="center"
122
+ esd-extension-block-id="${s.OLD_PRICE}">
123
+ <p contenteditable="false" style="font-size: 14px; color: #999999;">
124
+ <strong>${r(t, "original_price")}</strong>
125
+ </p>
126
+ </td>
127
+ </tr>
128
+ </tbody>
129
+ </table>
130
+ </td>
131
+ `,
132
+ [m]: (t) => `
133
+ <td class="${a}" style="padding: ${o}; height: 100%;" valign="top">
134
+ <table
135
+ class="product-card-segment"
136
+ width="100%"
137
+ height="100%"
138
+ cellpadding="0"
139
+ cellspacing="0"
140
+ border="0">
141
+ <tbody>
142
+ <tr valign="top">
143
+ <td
144
+ class="esd-block-text product-omnibus-price es-p15l es-p15r"
145
+ align="center"
146
+ data-text-before="Lowest 30-day price: "
147
+ data-text-after=""
148
+ esd-extension-block-id="${s.OMNIBUS_PRICE}">
149
+ <p style="font-size: 12px; color: #666666;">
150
+ <span class="omnibus-text-before">Lowest 30-day price: </span>
151
+ <span class="omnibus-price-value">${r(t, "original_price")}</span>
152
+ <span class="omnibus-text-after"></span>
153
+ </p>
154
+ </td>
155
+ </tr>
156
+ </tbody>
157
+ </table>
158
+ </td>
159
+ `,
160
+ [u]: (t) => {
161
+ var d, c;
162
+ const e = p(), n = ((d = t.original_price) == null ? void 0 : d[e.code]) ?? Object.values(t.original_price ?? {})[0] ?? 0, l = ((c = t.price) == null ? void 0 : c[e.code]) ?? Object.values(t.price ?? {})[0] ?? 0, i = n > 0 ? Math.round((n - l) / n * 100) : 0, g = i > 0 ? `-${i}%` : "0%";
163
+ return `
164
+ <td class="${a}" style="padding: ${o}; height: 100%;" valign="top">
165
+ <table
166
+ class="product-card-segment"
167
+ width="100%"
168
+ height="100%"
169
+ cellpadding="0"
170
+ cellspacing="0"
171
+ border="0">
172
+ <tbody>
173
+ <tr valign="top">
174
+ <td
175
+ class="esd-block-text product-omnibus-discount es-p15l es-p15r"
176
+ align="center"
177
+ data-text-before=""
178
+ data-text-after=""
179
+ esd-extension-block-id="${s.OMNIBUS_DISCOUNT}">
180
+ <p style="font-size: 12px; color: #666666;">
181
+ <span class="omnibus-text-before"></span>
182
+ <span class="omnibus-discount-value">${g}</span>
183
+ <span class="omnibus-text-after"></span>
184
+ </p>
185
+ </td>
186
+ </tr>
187
+ </tbody>
188
+ </table>
189
+ </td>
190
+ `;
191
+ },
192
+ [b]: () => `
193
+ <td class="${a}" style="padding: ${o}; height: 100%;" valign="top">
194
+ <table
195
+ class="product-card-segment"
196
+ width="100%"
197
+ height="100%"
198
+ cellpadding="0"
199
+ cellspacing="0"
200
+ border="0">
201
+ <tbody>
202
+ <tr valign="top">
203
+ <td
204
+ class="esd-block-button product-button es-p10t es-p10b"
205
+ align="center"
206
+ esd-extension-block-id="${s.BUTTON}">
207
+ <span
208
+ class="es-button-border"
209
+ style="
210
+ border-width: 1px;
211
+ background: rgb(217, 234, 211);
212
+ border-color: rgb(106, 168, 79);
213
+ ">
214
+ <a
215
+ href="#"
216
+ class="es-button buy-button"
217
+ target="_blank"
218
+ style="color: rgb(56, 118, 29); background: rgb(217, 234, 211);">
219
+ Buy
220
+ </a>
221
+ </span>
222
+ </td>
223
+ </tr>
224
+ </tbody>
225
+ </table>
226
+ </td>
227
+ `
228
+ };
229
+ export {
230
+ a as ATTRIBUTE_CELL_CLASS,
231
+ o as DEFAULT_CELL_PADDING,
232
+ P as verticalElementRenderer
233
+ };