@useinsider/guido 2.1.0-beta.efb0c6b → 2.1.0-beta.f42da92

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 (315) hide show
  1. package/dist/@types/config/schemas.js +17 -17
  2. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  3. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +6 -6
  4. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  5. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +6 -6
  6. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  7. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  8. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +16 -15
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  11. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  12. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +12 -11
  13. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  14. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  15. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  16. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  17. package/dist/components/organisms/header/EditorActions.vue.js +21 -0
  18. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  19. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  20. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  21. package/dist/components/organisms/header/HeaderWrapper.vue.js +10 -9
  22. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  23. package/dist/components/organisms/header/LeftSlot.vue2.js +27 -23
  24. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  25. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  26. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  27. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  28. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  29. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  30. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  31. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  32. package/dist/composables/useActionsApi.js +37 -32
  33. package/dist/composables/useHtmlValidator.js +114 -104
  34. package/dist/composables/useRecommendation.js +54 -21
  35. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  36. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  37. package/dist/config/migrator/index.js +9 -8
  38. package/dist/config/migrator/itemsBlockMigrator.js +351 -0
  39. package/dist/config/migrator/recommendationMigrator.js +2 -2
  40. package/dist/enums/academy.js +8 -0
  41. package/dist/enums/extensions/recommendationBlock.js +1 -1
  42. package/dist/enums/onboarding.js +1 -2
  43. package/dist/enums/recommendation.js +16 -15
  44. package/dist/enums/unsubscribe.js +20 -21
  45. package/dist/extensions/Blocks/Items/block.js +28 -41
  46. package/dist/extensions/Blocks/Items/controls/button/link.js +18 -37
  47. package/dist/extensions/Blocks/Items/controls/cardComposition.js +164 -96
  48. package/dist/extensions/Blocks/Items/controls/image/link.js +16 -35
  49. package/dist/extensions/Blocks/Items/controls/name/trimming.js +30 -42
  50. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -45
  51. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +56 -59
  52. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +45 -48
  53. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -34
  54. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +47 -57
  55. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +75 -0
  56. package/dist/extensions/Blocks/Items/controls/settingsControl.js +198 -184
  57. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  58. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  59. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +3 -6
  60. package/dist/extensions/Blocks/Items/extension.js +7 -6
  61. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  62. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  63. package/dist/extensions/Blocks/Items/settingsPanel.js +28 -32
  64. package/dist/extensions/Blocks/Items/template.js +397 -143
  65. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  66. package/dist/extensions/Blocks/Recommendation/block.js +133 -9
  67. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  68. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  69. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
  70. package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
  71. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  76. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  84. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
  85. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  86. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  87. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  88. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  89. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  90. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  91. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  92. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  93. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  94. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  95. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  96. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  97. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  98. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  99. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  100. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  101. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  102. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
  103. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  104. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  105. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  106. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  107. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  108. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  109. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  110. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  111. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  112. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  113. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  114. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  115. package/dist/extensions/Blocks/common-control.js +104 -106
  116. package/dist/extensions/Blocks/controlFactories.js +162 -120
  117. package/dist/guido.css +1 -1
  118. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +426 -296
  119. package/dist/package.json.js +1 -1
  120. package/dist/services/recommendationApi.js +11 -8
  121. package/dist/services/templateLibraryApi.js +16 -13
  122. package/dist/src/@types/config/schemas.d.ts +2 -2
  123. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  124. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  125. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  126. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  127. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  128. package/dist/src/composables/useActionsApi.d.ts +1 -0
  129. package/dist/src/composables/useRecommendation.d.ts +1 -0
  130. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  131. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  132. package/dist/src/enums/academy.d.ts +12 -0
  133. package/dist/src/enums/onboarding.d.ts +0 -1
  134. package/dist/src/enums/unsubscribe.d.ts +0 -1
  135. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  136. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -3
  137. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +13 -4
  138. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -3
  139. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  140. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  141. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  142. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  143. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  144. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -2
  145. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +13 -0
  146. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -16
  147. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  148. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  149. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  150. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  151. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +77 -0
  152. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  153. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  154. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  155. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  156. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  157. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
  158. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
  159. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  160. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  161. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  162. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  163. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  165. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  166. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  167. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  168. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  169. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
  170. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  171. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  172. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  173. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
  174. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  175. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  176. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  177. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  178. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  179. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  180. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  181. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  182. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  183. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  184. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  185. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  186. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  187. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  188. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  189. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  190. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  191. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  192. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  193. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  194. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  195. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  196. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  197. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  198. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
  199. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  200. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  201. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  202. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  203. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  204. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
  205. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  206. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  207. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  208. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  209. package/dist/src/extensions/Blocks/common-control.d.ts +10 -12
  210. package/dist/src/stores/editor.d.ts +21 -0
  211. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  212. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  213. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  214. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  215. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  216. package/dist/static/styles/components/notification.css.js +1 -0
  217. package/dist/static/styles/components/version-history.css.js +10 -2
  218. package/dist/static/styles/components/wide-panel.css.js +18 -6
  219. package/dist/static/styles/customEditorStyle.css.js +39 -2
  220. package/dist/stores/editor.js +1 -0
  221. package/dist/utils/pairProductVariables.js +74 -70
  222. package/dist/utils/templatePreparation.js +19 -18
  223. package/package.json +3 -3
  224. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  225. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  226. package/dist/extensions/Blocks/Items/store/items-block.js +0 -75
  227. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  228. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  229. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  230. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  231. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  232. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  233. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  234. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  235. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  236. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  237. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  238. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  239. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  240. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  241. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  242. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  243. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  244. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  245. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  246. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  247. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  248. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  249. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  250. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  251. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  252. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  253. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  254. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  255. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  256. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  257. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  258. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  259. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  260. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  261. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  262. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  263. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  264. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  265. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  266. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  267. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  268. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  269. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  270. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  271. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -43
  272. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  273. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  274. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  275. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  276. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  277. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  278. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  279. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  280. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  281. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  282. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  283. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  284. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  285. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  286. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  287. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  288. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  289. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  290. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  291. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  292. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  293. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  294. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  295. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  296. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  297. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  298. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  299. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  300. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  301. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  302. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  303. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  304. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  305. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  306. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  307. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  308. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  309. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  310. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  311. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  312. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  313. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  314. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  315. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -0,0 +1,121 @@
1
+ import { useRecommendation as _ } from "../../../composables/useRecommendation.js";
2
+ function b(e, u, r, o) {
3
+ const n = `{{${e}_${u}_${r}}}`, t = `{{${e}_${u}_currency}}`;
4
+ return o === "before" ? `${t} ${n}` : `${n} ${t}`;
5
+ }
6
+ function p(e, u, r, o, n) {
7
+ switch (u) {
8
+ case "productImage": {
9
+ const t = e.querySelector("img");
10
+ t && (t.setAttribute("src", `{{${r}_${o}_image_url}}`), t.setAttribute("alt", `{{${r}_${o}_name}}`));
11
+ const c = e.querySelector("a");
12
+ c && c.setAttribute("href", `{{${r}_${o}_url}}`);
13
+ break;
14
+ }
15
+ case "productName": {
16
+ const t = e.querySelector("p");
17
+ if (t) {
18
+ const c = t.querySelector("strong") || t;
19
+ c.textContent = `{{${r}_${o}_name}}`;
20
+ }
21
+ break;
22
+ }
23
+ case "productPrice": {
24
+ const t = e.querySelector("p");
25
+ if (t) {
26
+ const c = t.querySelector("strong") || t;
27
+ c.textContent = b(r, o, "price", n);
28
+ }
29
+ break;
30
+ }
31
+ case "productOldPrice": {
32
+ const t = e.querySelector("p");
33
+ if (t) {
34
+ const c = t.querySelector("strong") || t;
35
+ c.textContent = b(
36
+ r,
37
+ o,
38
+ "original_price",
39
+ n
40
+ ), t.setAttribute("product-attr", "discount");
41
+ }
42
+ break;
43
+ }
44
+ case "productButton": {
45
+ const t = e.querySelector("a");
46
+ t && t.setAttribute("href", `{{${r}_${o}_url}}`);
47
+ break;
48
+ }
49
+ case "productOmnibusPrice": {
50
+ const t = e.querySelector(".omnibus-price-value");
51
+ if (t) {
52
+ t.textContent = `{{${r}_${o}_omnibus_price}}`;
53
+ const c = t.closest("p");
54
+ c && (c.setAttribute("product-attr", "omnibus_price"), c.setAttribute("composition", "true"));
55
+ }
56
+ break;
57
+ }
58
+ case "productOmnibusDiscount": {
59
+ const t = e.querySelector(".omnibus-discount-value");
60
+ if (t) {
61
+ t.textContent = `{{${r}_${o}_omnibus_discount}}`;
62
+ const c = t.closest("p");
63
+ c && (c.setAttribute("product-attr", "omnibus_discount"), c.setAttribute("composition", "true"));
64
+ }
65
+ break;
66
+ }
67
+ }
68
+ }
69
+ function $(e, u, r) {
70
+ e.querySelectorAll(".recommendation-product-row").forEach((n, t) => {
71
+ n.querySelectorAll("[data-attribute-type]").forEach((s) => {
72
+ const i = s.getAttribute("data-attribute-type") || "", a = s.querySelectorAll(".attribute-cell");
73
+ a.length > 0 ? a.forEach((l) => {
74
+ p(l, i, u, t, r);
75
+ }) : p(s, i, u, t, r);
76
+ });
77
+ });
78
+ }
79
+ function S(e, u, r) {
80
+ const o = e.querySelectorAll(".recommendation-product-row");
81
+ if (!o.length)
82
+ return;
83
+ const [n] = o, t = n.querySelector("[data-attribute-type]"), c = t ? t.querySelectorAll(".attribute-cell").length : 1;
84
+ o.forEach((s, i) => {
85
+ s.querySelectorAll("[data-attribute-type]").forEach((l) => {
86
+ const f = l.getAttribute("data-attribute-type") || "";
87
+ l.querySelectorAll(".attribute-cell").forEach((y, m) => {
88
+ const A = i * c + m;
89
+ p(y, f, u, A, r);
90
+ });
91
+ });
92
+ });
93
+ }
94
+ function q(e, u, r) {
95
+ e.querySelectorAll(".ins-recommendation-product-container").forEach((n) => {
96
+ S(n, u, r);
97
+ });
98
+ }
99
+ function d(e, u) {
100
+ const r = e.getAttribute("data-layout") || "grid", o = e.getAttribute("currency-alignment") || "after";
101
+ r === "list" ? $(e, u, o) : q(e, u, o);
102
+ }
103
+ function h(e, u) {
104
+ const r = e.match(/<!DOCTYPE[^>]*>/i);
105
+ return (r ? `${r[0]}
106
+ ` : "") + u.documentElement.outerHTML;
107
+ }
108
+ function w(e) {
109
+ const u = e.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(u, "text/html"), o = r.querySelectorAll(".ins-recommendation-v3-block-v2");
110
+ if (!o.length)
111
+ return e;
112
+ const { buildCampaignUrl: n } = _();
113
+ return o.forEach((c) => {
114
+ const s = c.getAttribute("recommendation-id");
115
+ s && (n(s), d(c, s));
116
+ }), h(u, r).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
117
+ }
118
+ export {
119
+ b as formatPriceVariable,
120
+ w as prepareRecommendationBlocks
121
+ };
@@ -1,12 +1,13 @@
1
- import { migrateCheckbox as m } from "./checkboxMigrator.js";
1
+ import { migrateCheckbox as t } from "./checkboxMigrator.js";
2
2
  import { migrateCouponBlock as o } from "./couponBlockMigrator.js";
3
- import { migrateRadioButton as i } from "./radioButtonMigrator.js";
4
- import { migrateRecommendation as e } from "./recommendationMigrator.js";
5
- import { migrateUnsubscribe as a } from "./unsubscribeMigrator.js";
6
- const s = async (t) => {
7
- let r = t;
8
- return r = m(r), r = i(r), r = await a(r), r = o(r), r = e(r), r;
3
+ import { migrateItemsBlock as i } from "./itemsBlockMigrator.js";
4
+ import { migrateRadioButton as e } from "./radioButtonMigrator.js";
5
+ import { migrateRecommendation as a } from "./recommendationMigrator.js";
6
+ import { migrateUnsubscribe as g } from "./unsubscribeMigrator.js";
7
+ const u = async (r) => {
8
+ let m = r;
9
+ return m = t(m), m = e(m), m = await g(m), m = o(m), m = a(m), m = i(m), m;
9
10
  };
10
11
  export {
11
- s as migrate
12
+ u as migrate
12
13
  };
@@ -0,0 +1,351 @@
1
+ var B = Object.defineProperty;
2
+ var U = (r, t, e) => t in r ? B(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
+ var M = (r, t, e) => U(r, typeof t != "symbol" ? t + "" : t, e);
4
+ import { productPairs as v } from "../../extensions/Blocks/Items/enums/productEnums.js";
5
+ import { ItemInCartOptions as E, DefaultConfigValues as g, SETTINGS_ENUMS as d } from "../../extensions/Blocks/Items/enums/settingsEnums.js";
6
+ import { getDefaultTemplate as K } from "../../extensions/Blocks/Items/template.js";
7
+ const w = {
8
+ img: {
9
+ pairsKey: "imageSrc",
10
+ defaultKey: "DEFAULT",
11
+ isArray: !0
12
+ },
13
+ name: {
14
+ pairsKey: "name",
15
+ defaultKey: "DEFAULT",
16
+ isArray: !0
17
+ },
18
+ url: {
19
+ pairsKey: "button",
20
+ defaultKey: "DEFAULT_HREF",
21
+ isArray: !1
22
+ },
23
+ formattedprice: {
24
+ pairsKey: "price",
25
+ defaultKey: "DEFAULT_PRICE_FORMATTED",
26
+ isArray: !1
27
+ },
28
+ productcurrency: {
29
+ pairsKey: "price",
30
+ defaultKey: "DEFAULT_CURRENCY",
31
+ isArray: !1
32
+ },
33
+ quantity: {
34
+ pairsKey: "quantity",
35
+ defaultKey: "DEFAULT",
36
+ isArray: !1
37
+ },
38
+ price: {
39
+ pairsKey: "price",
40
+ defaultKey: "DEFAULT_PRICE",
41
+ isArray: !1
42
+ },
43
+ originalprice: {
44
+ pairsKey: "originalPrice",
45
+ defaultKey: "DEFAULT_PRICE",
46
+ isArray: !1
47
+ },
48
+ originalformattedprice: {
49
+ pairsKey: "originalPrice",
50
+ defaultKey: "DEFAULT_PRICE_FORMATTED",
51
+ isArray: !1
52
+ },
53
+ single_price: {
54
+ pairsKey: "price",
55
+ defaultKey: "DEFAULT_SINGLE_PRICE",
56
+ isArray: !1
57
+ },
58
+ single_formattedprice: {
59
+ pairsKey: "price",
60
+ defaultKey: "DEFAULT_SINGLE_PRICE_FORMATTED",
61
+ isArray: !1
62
+ },
63
+ single_originalprice: {
64
+ pairsKey: "originalPrice",
65
+ defaultKey: "DEFAULT_SINGLE_PRICE",
66
+ isArray: !1
67
+ },
68
+ single_originalformattedprice: {
69
+ pairsKey: "originalPrice",
70
+ defaultKey: "DEFAULT_SINGLE_PRICE_FORMATTED",
71
+ isArray: !1
72
+ }
73
+ };
74
+ function F() {
75
+ return String(Date.now() + Math.floor(Math.random() * 1e3));
76
+ }
77
+ function q(r) {
78
+ return r ? {
79
+ CartItems: d.ITEMS_TYPE.CART_ITEMS,
80
+ BrowsedItems: d.ITEMS_TYPE.BROWSED_ITEMS,
81
+ PurchasedItems: d.ITEMS_TYPE.PURCHASED_ITEMS,
82
+ CART_ITEMS: d.ITEMS_TYPE.CART_ITEMS,
83
+ BROWSED_ITEMS: d.ITEMS_TYPE.BROWSED_ITEMS,
84
+ PURCHASED_ITEMS: d.ITEMS_TYPE.PURCHASED_ITEMS
85
+ }[r] || d.ITEMS_TYPE.CART_ITEMS : d.ITEMS_TYPE.CART_ITEMS;
86
+ }
87
+ function R(r) {
88
+ const t = (a, o) => a == null ? o : a === "1" || a === "true", e = (a, o) => a || o, i = r["data-type"] || r["data-source"], l = q(i);
89
+ let n = r["data-cart_items_select_control_value"] || g.cartItemsSelectControlValue;
90
+ if (n && !n.includes("{{") && /^\d+$/.test(n)) {
91
+ const a = parseInt(n) - 1, o = E[l];
92
+ o && o[a] && (n = o[a].value);
93
+ }
94
+ return {
95
+ initialized: !0,
96
+ blockInstanceId: e(r["data-block-instance-id"], F()),
97
+ source: l,
98
+ type: l,
99
+ itemsSelectValue: n,
100
+ orientation: r["data-card_orientation_control_value"] || d.ORIENTATION.VERTICAL,
101
+ nameTrimming: t(r["data-product_name_control_trim"], !0),
102
+ priceHideDiscount: t(r["data-product_price_control_nodup"], !0),
103
+ priceFormatted: t(r["data-product_price_control_formated"], !0),
104
+ priceSinglePrice: t(r["data-product_price_control_single_price"], !1),
105
+ priceCurrencySymbol: e(
106
+ r["data-product_price_control_currency_symbol"],
107
+ g.productPriceCurrencySymbolControlValue
108
+ ),
109
+ priceCurrencyLocation: e(
110
+ r["data-product_price_currency_location"],
111
+ g.productPriceCurrencyLocationControlValue
112
+ ),
113
+ priceOrientation: r["data-product_original_price_control_orientation"] || "horizontal",
114
+ quantityControlEnabled: t(r["data-product_quantity_control_enabled"], !0),
115
+ buttonLink: e(r["data-product_button_link"], g.productButtonLinkControlValue),
116
+ imageLink: e(r["data-product_image_link"], g.productImageLinkControlValue),
117
+ buttonLabel: e(r["data-product_button_control_label"], "Buy"),
118
+ buttonFullWidth: t(r["data-product_button_control_atw"], !0),
119
+ imageVisible: t(r["data-product_image_control_enabled"], !0),
120
+ nameVisible: t(r["data-product_name_control_enabled"], !0),
121
+ quantityVisible: t(r["data-product_quantity_control_enabled"], !0),
122
+ priceVisible: t(r["data-product_price_control_enabled"], !0),
123
+ originalPriceVisible: t(r["data-product_original_price_control_enabled"], !0),
124
+ buttonVisible: t(r["data-product_button_control_enabled"], !0)
125
+ };
126
+ }
127
+ const $ = {
128
+ ins_apr: "CART_ITEMS",
129
+ browsed_item: "BROWSED_ITEMS",
130
+ purchased_item: "PURCHASED_ITEMS"
131
+ };
132
+ function x(r, t) {
133
+ const e = {
134
+ CART_ITEMS: `{{Abandoned Cart Item (${t}) Image}}`,
135
+ BROWSED_ITEMS: `{{Browsed Item (${t}) Image}}`,
136
+ PURCHASED_ITEMS: `{{Purchased Item (${t}) Image}}`
137
+ };
138
+ return e[r] || e.CART_ITEMS;
139
+ }
140
+ function O(r, t) {
141
+ const e = {
142
+ CART_ITEMS: `{{Abandoned Cart Item (${t}) Url}}`,
143
+ BROWSED_ITEMS: `{{Browsed Item (${t}) Url}}`,
144
+ PURCHASED_ITEMS: `{{Purchased Item (${t}) Url}}`
145
+ };
146
+ return e[r] || e.CART_ITEMS;
147
+ }
148
+ class V {
149
+ constructor() {
150
+ M(this, "parser");
151
+ this.parser = new DOMParser();
152
+ }
153
+ migrate(t) {
154
+ try {
155
+ let e = this.removeJinjaConditionals(t);
156
+ e = this.replaceTemplateVariables(e);
157
+ const i = this.parser.parseFromString(e, "text/html"), l = i.querySelectorAll(
158
+ "td.esd-cart-items-block, td.esd-browsed-items-block, td.esd-purchased-items-block"
159
+ );
160
+ return l.length === 0 ? (console.warn("ItemsBlockMigrator: No blocks found with items block selectors"), e) : (l.forEach((n) => {
161
+ const a = this.extractConfiguration(n), o = K({
162
+ orientation: a.orientation,
163
+ itemsType: a.itemsType,
164
+ itemId: a.itemId,
165
+ currencySymbol: a.currencySymbol,
166
+ currencyLocation: a.currencyLocation,
167
+ formattedPrice: a.formattedPrice,
168
+ configBlockAttributes: a.configBlockAttributes,
169
+ migrate: !0,
170
+ nameStyles: a.nameStyles,
171
+ buttonStyles: a.buttonStyles,
172
+ priceStyles: a.priceStyles,
173
+ originalPriceStyles: a.originalPriceStyles,
174
+ quantityStyles: a.quantityStyles,
175
+ nodeConfig: R(a.configBlockAttributes)
176
+ }), c = this.parser.parseFromString(
177
+ `<table><tbody><tr>${o}</tr></tbody></table>`,
178
+ "text/html"
179
+ ).querySelector("td");
180
+ if (c && n.parentNode) {
181
+ const f = R(a.configBlockAttributes);
182
+ c.setAttribute("esd-ext-config", JSON.stringify(f));
183
+ const u = c.querySelector("esd-config-block");
184
+ u && u.remove(), n.parentNode.replaceChild(c, n);
185
+ }
186
+ }), i.documentElement.outerHTML);
187
+ } catch (e) {
188
+ return console.error("ItemsBlockMigrator failed:", e), t;
189
+ }
190
+ }
191
+ /**
192
+ * Extracts configuration from legacy HTML block
193
+ * Parses data attributes and structure to determine:
194
+ * - orientation, itemsType, itemNumber, currency settings, esd-config-block attributes
195
+ * - UI styles from product elements (name, price, button, quantity, etc.)
196
+ */
197
+ extractConfiguration(t) {
198
+ var C, D, P;
199
+ const e = ((C = t.querySelector("[data-type]")) == null ? void 0 : C.getAttribute("data-type")) || "CART_ITEMS", i = ((D = t.querySelector("[data-number]")) == null ? void 0 : D.getAttribute("data-number")) || "1", l = parseInt(i) - 1, n = E[e], a = ((P = n == null ? void 0 : n[l]) == null ? void 0 : P.value) || n[0].value, o = t.querySelector('[product-attr="price"]'), _ = (o == null ? void 0 : o.getAttribute("data-currency_symbol")) || "USD", f = ((o == null ? void 0 : o.getAttribute("data-curency")) || "before") === "after" ? "1" : "0", u = (o == null ? void 0 : o.getAttribute("data-formated")) !== "false", s = this.extractConfigBlockAttributes(t, e, i), b = s["data-card_orientation_control_value"];
200
+ let S;
201
+ b ? S = b === "horizontal" ? "horizontal" : "vertical" : S = t.querySelector('[colspan="2"]') !== null ? "vertical" : "horizontal";
202
+ const p = t.querySelector('a[product-attr="name"]'), T = (p == null ? void 0 : p.getAttribute("style")) || void 0, y = t.querySelector('a[product-attr="button"]'), m = (y == null ? void 0 : y.getAttribute("style")) || void 0, k = (o == null ? void 0 : o.getAttribute("style")) || void 0, I = t.querySelector("p.original-price"), h = (I == null ? void 0 : I.getAttribute("style")) || void 0, A = t.querySelector('[product-attr="quantity"]'), L = (A == null ? void 0 : A.getAttribute("style")) || void 0;
203
+ return {
204
+ orientation: S,
205
+ itemsType: e,
206
+ itemId: a,
207
+ currencySymbol: _,
208
+ currencyLocation: f,
209
+ formattedPrice: u,
210
+ configBlockAttributes: s,
211
+ nameStyles: T,
212
+ buttonStyles: m,
213
+ priceStyles: k,
214
+ originalPriceStyles: h,
215
+ quantityStyles: L
216
+ };
217
+ }
218
+ /**
219
+ * Extracts all data-* attributes from the esd-config-block element
220
+ * Returns a key-value mapping of all configuration attributes
221
+ * @param block - The block element containing the esd-config-block
222
+ * @param itemsType - The type of items (CART_ITEMS, BROWSED_ITEMS, PURCHASED_ITEMS)
223
+ * @param itemNumber - The item number (1-based index)
224
+ */
225
+ extractConfigBlockAttributes(t, e, i) {
226
+ const l = t.querySelector("esd-config-block"), n = {};
227
+ if (!l)
228
+ return this.getDefaultConfigBlockAttributes();
229
+ if (Array.from(l.attributes).forEach((o) => {
230
+ o.name.startsWith("data-") && (n[o.name] = o.value);
231
+ }), n["data-cart_items_select_control_value"]) {
232
+ const o = n["data-cart_items_select_control_value"];
233
+ if (/^\d+$/.test(o)) {
234
+ const _ = parseInt(o) - 1, c = E[e];
235
+ c && c[_] && (n["data-cart_items_select_control_value"] = c[_].value);
236
+ }
237
+ }
238
+ if (n["data-product_price_control_curency"]) {
239
+ const o = n["data-product_price_control_curency"];
240
+ let _ = o;
241
+ o === "before" ? _ = "0" : o === "after" && (_ = "1"), n["data-product_price_control_curency"] = _, n["data-product_price_currency_location"] = _;
242
+ }
243
+ (!n["data-product_price_control_currency_symbol"] || n["data-product_price_control_currency_symbol"].trim() === "") && (n["data-product_price_control_currency_symbol"] = "USD");
244
+ const a = { ...this.getDefaultConfigBlockAttributes(), ...n };
245
+ return a["data-type"] = e, a["data-source"] = e, a["data-product_image_link"] = x(e, i), a["data-product_button_link"] = O(e, i), a;
246
+ }
247
+ /**
248
+ * Returns default esd-config-block attributes based on the old template structure
249
+ * These serve as fallbacks when attributes are missing
250
+ */
251
+ getDefaultConfigBlockAttributes() {
252
+ return {
253
+ // Core settings
254
+ "data-type": "CART_ITEMS",
255
+ "data-card_orientation_control_value": "vertical",
256
+ // Image settings
257
+ "data-product_image_control_image-width": "70",
258
+ "data-product_image_control_image-height": "70",
259
+ "data-product_image_control_align_button": "true",
260
+ "data-product_image_control_padding_mobile": "true",
261
+ "data-product_image_link": "{{Abandoned Cart Item (1) Image}}",
262
+ "data-product_image_control_enabled": "true",
263
+ // Name settings
264
+ "data-product_name_control_enabled": "true",
265
+ "data-product_name_control_font_font_size": "20",
266
+ "data-product_name_control_trim": "1",
267
+ // Quantity settings
268
+ "data-product_quantity_control_enabled": "true",
269
+ // Price settings
270
+ "data-product_price_control_font_font_size": "20",
271
+ "data-product_price_control_color": "#060606",
272
+ "data-product_price_control_curency": "0",
273
+ "data-product_price_currency_location": "0",
274
+ "data-product_price_control_currency_symbol": "USD",
275
+ "data-product_price_control_formated": "1",
276
+ "data-product_price_control_nodup": "1",
277
+ "data-product_price_control_single_price": "false",
278
+ "data-product_price_control_enabled": "true",
279
+ // Original price settings
280
+ "data-product_original_price_control_font_font_size": "19",
281
+ "data-product_original_price_control_align_align_desktop": "center",
282
+ "data-product_original_price_control_orientation": "horizontal",
283
+ "data-product_original_price_control_enabled": "true",
284
+ // Button settings
285
+ "data-product_button_control_enabled": "true",
286
+ "data-product_button_control_label": "Buy",
287
+ "data-product_button_control_font_font_size": "17",
288
+ "data-product_button_control_color": "#ffffff",
289
+ "data-product_button_control_background": "#010101",
290
+ "data-product_button_control_atw": "true",
291
+ "data-product_button_link": "{{Abandoned Cart Item (1) Url}}"
292
+ };
293
+ }
294
+ /**
295
+ * Removes Jinja2 conditional statements from HTML
296
+ * Handles all items block types:
297
+ * - Cart Items: ins_apr_total_product_kind, ins_apr_price_N, ins_apr_originalprice_N
298
+ * - Browsed Items: browsed_item_total_product_kind, browsed_item_price_N, browsed_item_originalprice_N
299
+ * - Purchased Items: purchased_item_total_product_kind, purchased_item_price_N, purchased_item_originalprice_N
300
+ */
301
+ removeJinjaConditionals(t) {
302
+ let e = t.replace(
303
+ /\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_total_product_kind\s*(&gt;|>)\s*\d+\s*%\}/g,
304
+ ""
305
+ );
306
+ return e = e.replace(
307
+ /\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_price_\d+\s*(!&#61;|!=)\s*\1_originalprice_\d+\s*%\}/g,
308
+ ""
309
+ ), e = e.replace(/\{%\s*endif\s*%\}/g, ""), e = e.replace(/\n\s*\n\s*\n/g, `
310
+
311
+ `), e;
312
+ }
313
+ /**
314
+ * Replaces template variables with default values from productPairs
315
+ * Supports all block types by detecting prefix and using appropriate type:
316
+ *
317
+ * Examples:
318
+ * - {{ins_apr_img_1}} → https://s3.../img_1.jpeg (CART_ITEMS)
319
+ * - {{browsed_item_name_2}} → 'Set of Sprite Yoga Straps' (BROWSED_ITEMS)
320
+ * - {{purchased_item_formattedprice_5}} → '1,490.49' (PURCHASED_ITEMS)
321
+ */
322
+ replaceTemplateVariables(t) {
323
+ const { PAIRS_FOR_EXTENSION: e } = v;
324
+ return t.replace(/{{([^}]+)}}/g, (i, l) => {
325
+ const n = l.match(/^(ins_apr|browsed_item|purchased_item)_([a-z_]+)_(\d+)$/);
326
+ if (!n)
327
+ return i;
328
+ const [, a, o, _] = n, c = $[a];
329
+ if (!c)
330
+ return console.warn(`Unknown variable prefix: ${a}`), i;
331
+ const f = w[o];
332
+ if (!f)
333
+ return console.warn(`Unknown variable suffix mapping for: ${o}`), i;
334
+ const { pairsKey: u, defaultKey: s, isArray: b } = f, p = e[u][c];
335
+ if (!p)
336
+ return console.warn(`No data found for: ${u}.${c}`), i;
337
+ if (b) {
338
+ const y = parseInt(_) - 1, m = p[s];
339
+ return Array.isArray(m) && m[y] ? m[y] : (console.warn(`Array value not found: ${u}.${c}.${s}[${y}]`), i);
340
+ }
341
+ const T = p[s];
342
+ return T !== void 0 ? String(T) : (console.warn(`Default value not found: ${u}.${c}.${s}`), i);
343
+ });
344
+ }
345
+ }
346
+ function G(r) {
347
+ return new V().migrate(r);
348
+ }
349
+ export {
350
+ G as migrateItemsBlock
351
+ };
@@ -1,8 +1,8 @@
1
1
  var h = Object.defineProperty;
2
2
  var T = (A, e, t) => e in A ? h(A, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : A[e] = t;
3
3
  var m = (A, e, t) => T(A, typeof e != "symbol" ? e + "" : e, t);
4
- import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/migrationTemplate.js";
5
- import { getDefaultProducts as q } from "../../extensions/Blocks/Recommendation/templates/templateUtils.js";
4
+ import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/grid/migration.js";
5
+ import { getDefaultProducts as q } from "../../extensions/Blocks/Recommendation/templates/utils.js";
6
6
  class w {
7
7
  constructor() {
8
8
  m(this, "parser");
@@ -0,0 +1,8 @@
1
+ const e = "https://academy.insiderone.com/", o = {
2
+ EMAIL_EDITOR: `${e}/docs/email-drag-and-drop-editor`,
3
+ GLOBAL_UNSUBSCRIBE: `${e}/docs/global-unsubscribe-preference-center`,
4
+ AMP_FOR_EMAILS: `${e}/docs/amp-for-emails`
5
+ };
6
+ export {
7
+ o as ACADEMY_LINKS
8
+ };
@@ -1,5 +1,5 @@
1
1
  const s = {
2
- RECOMMENDATION_API_URL: "http://recommendationv2.api.useinsider.com"
2
+ RECOMMENDATION_API_URL: "https://recommendationv2.api.useinsider.com"
3
3
  }, i = [
4
4
  { id: 11, key: "similarViewed", name: "Viewed Together", path: "viewed-together" },
5
5
  { id: 12, key: "similarBought", name: "Purchased Together", path: "purchased-together" },
@@ -2,9 +2,8 @@ const e = [
2
2
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-0.ng-star-inserted",
3
3
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-1.ng-star-inserted",
4
4
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-2.ng-star-inserted"
5
- ], t = "ui-editor", n = 'button[role="tab"][aria-label="Card Composition"]', s = 'button[role="tab"][aria-label="Settings"]', o = ".in-ribbons-wrapper", a = "https://academy.useinsider.com/docs/email-drag-drop-editor";
5
+ ], t = "ui-editor", n = 'button[role="tab"][aria-label="Card Composition"]', s = 'button[role="tab"][aria-label="Settings"]', o = ".in-ribbons-wrapper";
6
6
  export {
7
- a as ACADEMY_LINK,
8
7
  n as CARD_COMPOSITION_TAB_SELECTOR,
9
8
  o as RIBBON_SELECTOR,
10
9
  e as SERVICE_HOVER_SELECTORS,
@@ -1,4 +1,4 @@
1
- const s = 20, e = 320, t = {
1
+ const e = 20, s = 320, t = "vertical", m = {
2
2
  CART_ABANDONMENT: {
3
3
  ins_apr_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_1.png",
4
4
  ins_apr_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_2.png",
@@ -15,7 +15,7 @@ const s = 20, e = 320, t = {
15
15
  DISCOUNT: "discount",
16
16
  OMNIBUS_DISCOUNT: "omnibus_discount",
17
17
  OMNIBUS_PRICE: "omnibus_price"
18
- }, m = {
18
+ }, _ = {
19
19
  IF: {
20
20
  discount: `{% if {${i.DISCOUNT}} != "0%" and {${i.DISCOUNT}} != "" %}`,
21
21
  omnibus_discount: `{% if {${i.DISCOUNT}} != "0%" and {${i.DISCOUNT}} != "" and {${i.OMNIBUS_DISCOUNT}} != "0%" and {${i.OMNIBUS_DISCOUNT}} != "" %}`,
@@ -23,17 +23,17 @@ const s = 20, e = 320, t = {
23
23
  },
24
24
  ELSE: "{% else %}",
25
25
  END_IF: "{% endif %}"
26
- }, _ = {
27
- ID: /ins-recommendation-v3-campaign-id="(.*?)"/gi,
28
- ATTRIBUTE_PARAGRAPH: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)">[\S\s]*?<\/p>/gm,
29
- ATTRIBUTE_PARAGRAPH_START_TAG: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)">/gm,
26
+ }, a = {
27
+ ID: /recommendation-id="(.*?)"/gi,
28
+ ATTRIBUTE_PARAGRAPH: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>[\S\s]*?<\/p>/gm,
29
+ ATTRIBUTE_PARAGRAPH_START_TAG: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>/gm,
30
30
  COMPOSITION: /composition="true"/gm,
31
31
  CUSTOM_FIELD: /{{[0-9]+_[0-8]_(discount|omnibus_discount|omnibus_price)}}/gm,
32
32
  CUSTOM_FIELD_INDEXES_PART: /{{[0-9]+_[0-8]_/gm,
33
33
  CUSTOM_FIELD_NAME_PART: /_(discount|omnibus_discount|omnibus_price)}}/gm
34
- }, a = {
35
- PARAGRAPH_END_TAG: "</p>"
36
34
  }, n = {
35
+ PARAGRAPH_END_TAG: "</p>"
36
+ }, o = {
37
37
  REGULAR_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:90px!important;",
38
38
  TRIMMED_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:18px!important;",
39
39
  ELLIPSIS: "text-overflow:ellipsis!important; white-space:nowrap!important;",
@@ -46,11 +46,12 @@ const s = 20, e = 320, t = {
46
46
  };
47
47
  export {
48
48
  i as ATTRIBUTES,
49
- m as CONDITIONS,
50
- n as CSS,
51
- t as DUMMY_IMAGE_MAPPINGS,
52
- s as DefaultPadding,
53
- a as HTML,
54
- e as MinDeviceViewport,
55
- _ as REGEX
49
+ _ as CONDITIONS,
50
+ o as CSS,
51
+ m as DUMMY_IMAGE_MAPPINGS,
52
+ e as DefaultPadding,
53
+ n as HTML,
54
+ s as MinDeviceViewport,
55
+ a as REGEX,
56
+ t as VerticalOrientation
56
57
  };
@@ -1,26 +1,26 @@
1
- import { useTranslations as n } from "../composables/useTranslations.js";
1
+ import { useTranslations as e } from "../composables/useTranslations.js";
2
2
  import { getEnvironmentPrefix as R } from "../utils/environmentUtil.js";
3
- const N = {
3
+ const I = {
4
4
  UNSUBSCRIBE_LINK_TYPE: 1,
5
5
  PREFERENCES_LINK_TYPE: 3
6
- }, I = {
6
+ }, r = {
7
7
  UNSUBSCRIBE_LINK_REGEX: /{{ins-unsubscribe-link}}/g,
8
8
  DATA_OGSB_BUTTON_CSS_REGEX: "\\[data-ogsb\\]\\s*\\.es-button\\.es-button-[0-9]+\\s*\\{(?:[^\\}]*)\\}",
9
9
  GLOBAL_UNSUBSCRIBE_LINK_REGEX: /{{ins-global-unsubscribe-link}}/g,
10
10
  PREFERENCES_UNSUBSCRIBE_LINK_REGEX: /{{ins-preferences-unsubscribe-link}}/g
11
- }, s = R(), i = {
11
+ }, s = R(), _ = {
12
12
  UNSUBSCRIBE_URL: `https://mail.${s}.com/user/v1/unsub`,
13
13
  PREFERENCES_URL: `https://mail.${s}.com/user/v1/prefs`
14
- }, _ = "iid", B = {
14
+ }, i = "iid", B = {
15
15
  name: "Global Unsubscribe",
16
16
  sendGridId: "G"
17
- }, t = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", C = "/email/unsubscribe-pages", E = {
17
+ }, C = "/email/unsubscribe-pages", E = {
18
18
  GLOBAL_UNSUBSCRIBE: 1,
19
19
  GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: 2,
20
20
  SUBSCRIPTION_PREFERENCE_CENTER: 3,
21
21
  SUBSCRIPTION_PREFERENCE_CONFIRMATION: 4,
22
22
  RESUBSCRIBE: 5
23
- }, c = {
23
+ }, t = {
24
24
  [E.GLOBAL_UNSUBSCRIBE]: [
25
25
  E.GLOBAL_UNSUBSCRIBE,
26
26
  E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE,
@@ -31,29 +31,28 @@ const N = {
31
31
  E.SUBSCRIPTION_PREFERENCE_CONFIRMATION
32
32
  ]
33
33
  }, U = () => {
34
- const e = n();
34
+ const n = e();
35
35
  return {
36
- [E.GLOBAL_UNSUBSCRIBE]: e("unsubscription-preference.type-global-unsubscribe"),
37
- [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: e("unsubscription-preference.type-global-unsubscription-confirmation"),
38
- [E.RESUBSCRIBE]: e("unsubscription-preference.type-resubscribe"),
39
- [E.SUBSCRIPTION_PREFERENCE_CENTER]: e("unsubscription-preference.type-subscription-preferences-center"),
40
- [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: e("unsubscription-preference.type-subscription-preferences-confirmation")
36
+ [E.GLOBAL_UNSUBSCRIBE]: n("unsubscription-preference.type-global-unsubscribe"),
37
+ [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: n("unsubscription-preference.type-global-unsubscription-confirmation"),
38
+ [E.RESUBSCRIBE]: n("unsubscription-preference.type-resubscribe"),
39
+ [E.SUBSCRIPTION_PREFERENCE_CENTER]: n("unsubscription-preference.type-subscription-preferences-center"),
40
+ [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: n("unsubscription-preference.type-subscription-preferences-confirmation")
41
41
  };
42
- }, o = {
42
+ }, c = {
43
43
  default: "{{ins-unsubscribe-link}}",
44
44
  [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
45
45
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
46
46
  };
47
47
  export {
48
- t as ACADEMY_LINK,
49
48
  B as DEFAULT_UNSUBSCRIBE_GROUP,
50
- _ as INSIDER_ID,
51
- I as LINK_REGEXES,
52
- N as LINK_TYPES,
53
- o as MERGE_TAGS,
49
+ i as INSIDER_ID,
50
+ r as LINK_REGEXES,
51
+ I as LINK_TYPES,
52
+ c as MERGE_TAGS,
54
53
  E as PAGE_TYPES,
55
- c as TYPE_COLLECTIONS,
54
+ t as TYPE_COLLECTIONS,
56
55
  C as UNSUBSCRIBE_PAGES_LINK,
57
- i as URLS,
56
+ _ as URLS,
58
57
  U as getTypeTranslations
59
58
  };