@useinsider/guido 3.14.0-beta.2bae355 → 3.14.0-beta.38ef0be

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 (337) hide show
  1. package/dist/components/organisms/header/EditorActions.vue.js +1 -1
  2. package/dist/components/organisms/header/EditorActions.vue2.js +39 -47
  3. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +28 -30
  4. package/dist/composables/useHtmlValidator.js +111 -106
  5. package/dist/composables/useHttp.js +59 -66
  6. package/dist/config/compiler/itemsCompilerRules.js +25 -4
  7. package/dist/config/compiler/utils/itemsCompilerUtils.js +28 -0
  8. package/dist/config/migrator/index.js +9 -8
  9. package/dist/config/migrator/itemsBlockMigrator.js +47 -45
  10. package/dist/config/migrator/productNameLinkMigrator.js +27 -0
  11. package/dist/extensions/Blocks/Items/block.js +30 -30
  12. package/dist/extensions/Blocks/Items/controls/name/trimming.js +16 -16
  13. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +26 -22
  14. package/dist/extensions/Blocks/Items/controls/settingsControl.js +36 -35
  15. package/dist/extensions/Blocks/Items/template.js +228 -263
  16. package/dist/extensions/Blocks/Items/utils/nameNode.js +4 -0
  17. package/dist/guido.css +1 -1
  18. package/dist/{composables → src/composables}/useHttp.d.ts +0 -6
  19. package/dist/src/config/compiler/utils/itemsCompilerUtils.d.ts +12 -0
  20. package/dist/src/config/migrator/productNameLinkMigrator.d.ts +1 -0
  21. package/dist/{extensions → src/extensions}/Blocks/Items/block.d.ts +1 -1
  22. package/dist/src/extensions/Blocks/Items/utils/nameNode.d.ts +9 -0
  23. package/dist/src/utils/unwrapProductNameLink.d.ts +15 -0
  24. package/dist/utils/pairProductVariables.js +75 -72
  25. package/dist/utils/unwrapProductNameLink.js +37 -0
  26. package/package.json +1 -1
  27. /package/dist/{@types → src/@types}/config/defaults.d.ts +0 -0
  28. /package/dist/{@types → src/@types}/config/index.d.ts +0 -0
  29. /package/dist/{@types → src/@types}/config/schemas.d.ts +0 -0
  30. /package/dist/{@types → src/@types}/config/types.d.ts +0 -0
  31. /package/dist/{@types → src/@types}/config/validator.d.ts +0 -0
  32. /package/dist/{@types → src/@types}/events.d.ts +0 -0
  33. /package/dist/{@types → src/@types}/extensions/block.d.ts +0 -0
  34. /package/dist/{@types → src/@types}/generic.d.ts +0 -0
  35. /package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
  36. /package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  37. /package/dist/{components → src/components}/Guido.vue.d.ts +0 -0
  38. /package/dist/{components → src/components}/organisms/AutoSaveController.vue.d.ts +0 -0
  39. /package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  40. /package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
  41. /package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  42. /package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  43. /package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  44. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +0 -0
  45. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  46. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  47. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  48. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  49. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  50. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  51. /package/dist/{components → src/components}/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -0
  52. /package/dist/{components → src/components}/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +0 -0
  53. /package/dist/{components → src/components}/organisms/extensions/recommendation/Filters.vue.d.ts +0 -0
  54. /package/dist/{components → src/components}/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +0 -0
  55. /package/dist/{components → src/components}/organisms/header/AutoSaveToggle.vue.d.ts +0 -0
  56. /package/dist/{components → src/components}/organisms/header/EditorActions.vue.d.ts +0 -0
  57. /package/dist/{components → src/components}/organisms/header/EditorToolbar.vue.d.ts +0 -0
  58. /package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  59. /package/dist/{components → src/components}/organisms/header/LeftSlot.vue.d.ts +0 -0
  60. /package/dist/{components → src/components}/organisms/header/MiddleSlot.vue.d.ts +0 -0
  61. /package/dist/{components → src/components}/organisms/header/MigrationConfirmModal.vue.d.ts +0 -0
  62. /package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
  63. /package/dist/{components → src/components}/organisms/header/ViewOptions.vue.d.ts +0 -0
  64. /package/dist/{components → src/components}/organisms/header/version-history/RestoreButton.vue.d.ts +0 -0
  65. /package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  66. /package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  67. /package/dist/{components → src/components}/organisms/header/version-history/ViewOptions.vue.d.ts +0 -0
  68. /package/dist/{components → src/components}/organisms/onboarding/AMPOnboarding.vue.d.ts +0 -0
  69. /package/dist/{components → src/components}/organisms/onboarding/GenericOnboarding.vue.d.ts +0 -0
  70. /package/dist/{components → src/components}/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -0
  71. /package/dist/{components → src/components}/organisms/onboarding/NewVersionPopup.vue.d.ts +0 -0
  72. /package/dist/{components → src/components}/organisms/onboarding/OnboardingWrapper.vue.d.ts +0 -0
  73. /package/dist/{components → src/components}/organisms/onboarding/TextBlockOnboarding.vue.d.ts +0 -0
  74. /package/dist/{components → src/components}/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +0 -0
  75. /package/dist/{components → src/components}/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +0 -0
  76. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +0 -0
  77. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +0 -0
  78. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +0 -0
  79. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +0 -0
  80. /package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +0 -0
  81. /package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +0 -0
  82. /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
  83. /package/dist/{composables → src/composables}/useAllowlist.d.ts +0 -0
  84. /package/dist/{composables → src/composables}/useAutoSave.d.ts +0 -0
  85. /package/dist/{composables → src/composables}/useBlocksConfig.d.ts +0 -0
  86. /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
  87. /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
  88. /package/dist/{composables → src/composables}/useCortexBlueprintBridge.d.ts +0 -0
  89. /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
  90. /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
  91. /package/dist/{composables → src/composables}/useEmailTemplateApplier.d.ts +0 -0
  92. /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
  93. /package/dist/{composables → src/composables}/useFullStoryBridge.d.ts +0 -0
  94. /package/dist/{composables → src/composables}/useGuidoActions.d.ts +0 -0
  95. /package/dist/{composables → src/composables}/useGuidoStateBridge.d.ts +0 -0
  96. /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
  97. /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
  98. /package/dist/{composables → src/composables}/useModuleDynamicContentRepair.d.ts +0 -0
  99. /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
  100. /package/dist/{composables → src/composables}/usePreviewInteractionGuard.d.ts +0 -0
  101. /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
  102. /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
  103. /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
  104. /package/dist/{composables → src/composables}/useRecommendationPreview.d.ts +0 -0
  105. /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
  106. /package/dist/{composables → src/composables}/useRibbonOffset.d.ts +0 -0
  107. /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
  108. /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
  109. /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
  110. /package/dist/{composables → src/composables}/useStripoNotifications.d.ts +0 -0
  111. /package/dist/{composables → src/composables}/useSyncModuleExtractor.d.ts +0 -0
  112. /package/dist/{composables → src/composables}/useTimerClone.d.ts +0 -0
  113. /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
  114. /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
  115. /package/dist/{composables → src/composables}/useUserRole.d.ts +0 -0
  116. /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
  117. /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
  118. /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
  119. /package/dist/{composables → src/composables}/validators/useCouponBlockValidator.d.ts +0 -0
  120. /package/dist/{composables → src/composables}/validators/useLiquidValidator.d.ts +0 -0
  121. /package/dist/{composables → src/composables}/validators/useUnsubscribeBlockValidator.d.ts +0 -0
  122. /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
  123. /package/dist/{config → src/config}/compiler/itemsCompilerRules.d.ts +0 -0
  124. /package/dist/{config → src/config}/compiler/liquidCompilerRules.d.ts +0 -0
  125. /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
  126. /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
  127. /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
  128. /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  129. /package/dist/{config → src/config}/compiler/utils/recommendationCompilerUtils.d.ts +0 -0
  130. /package/dist/{config → src/config}/compiler/utils/recommendationIgnoreUtils.d.ts +0 -0
  131. /package/dist/{config → src/config}/i18n/en/index.d.ts +0 -0
  132. /package/dist/{config → src/config}/i18n/index.d.ts +0 -0
  133. /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
  134. /package/dist/{config → src/config}/migrator/couponBlockMigrator.d.ts +0 -0
  135. /package/dist/{config → src/config}/migrator/index.d.ts +0 -0
  136. /package/dist/{config → src/config}/migrator/itemsBlockMigrator.d.ts +0 -0
  137. /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
  138. /package/dist/{config → src/config}/migrator/recommendation/compositionMapper.d.ts +0 -0
  139. /package/dist/{config → src/config}/migrator/recommendation/extractors.d.ts +0 -0
  140. /package/dist/{config → src/config}/migrator/recommendation/htmlBuilder.d.ts +0 -0
  141. /package/dist/{config → src/config}/migrator/recommendation/parseLegacyConfig.d.ts +0 -0
  142. /package/dist/{config → src/config}/migrator/recommendation/settingsMapper.d.ts +0 -0
  143. /package/dist/{config → src/config}/migrator/recommendation/themeMapper.d.ts +0 -0
  144. /package/dist/{config → src/config}/migrator/recommendation/types.d.ts +0 -0
  145. /package/dist/{config → src/config}/migrator/recommendationMigrator.d.ts +0 -0
  146. /package/dist/{config → src/config}/migrator/socialIconMigrator.d.ts +0 -0
  147. /package/dist/{config → src/config}/migrator/textBlockMigration.d.ts +0 -0
  148. /package/dist/{config → src/config}/migrator/unsubscribeMigrator.d.ts +0 -0
  149. /package/dist/{enums → src/enums}/academy.d.ts +0 -0
  150. /package/dist/{enums → src/enums}/block.d.ts +0 -0
  151. /package/dist/{enums → src/enums}/date.d.ts +0 -0
  152. /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
  153. /package/dist/{enums → src/enums}/extensions/recommendationBlock.d.ts +0 -0
  154. /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
  155. /package/dist/{enums → src/enums}/onboarding.d.ts +0 -0
  156. /package/dist/{enums → src/enums}/preview.d.ts +0 -0
  157. /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
  158. /package/dist/{enums → src/enums}/roles.d.ts +0 -0
  159. /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
  160. /package/dist/{enums → src/enums}/unsubscribe.d.ts +0 -0
  161. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +0 -0
  162. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
  163. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  164. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  165. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  166. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/template.d.ts +0 -0
  167. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  168. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/constants.d.ts +0 -0
  169. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/controls/index.d.ts +0 -0
  170. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  171. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  172. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  173. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  174. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/button/link.d.ts +0 -0
  175. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/cardComposition.d.ts +0 -0
  176. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/image/link.d.ts +0 -0
  177. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/index.d.ts +0 -0
  178. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/name/trimming.d.ts +0 -0
  179. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/currencyLocation.d.ts +0 -0
  180. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/currencySymbol.d.ts +0 -0
  181. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/formattedPrice.d.ts +0 -0
  182. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/hideDiscount.d.ts +0 -0
  183. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/priceOrientation.d.ts +0 -0
  184. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/singlePrice.d.ts +0 -0
  185. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/settingsControl.d.ts +0 -0
  186. /package/dist/{extensions → src/extensions}/Blocks/Items/enums/controlEnums.d.ts +0 -0
  187. /package/dist/{extensions → src/extensions}/Blocks/Items/enums/productEnums.d.ts +0 -0
  188. /package/dist/{extensions → src/extensions}/Blocks/Items/enums/settingsEnums.d.ts +0 -0
  189. /package/dist/{extensions → src/extensions}/Blocks/Items/extension.d.ts +0 -0
  190. /package/dist/{extensions → src/extensions}/Blocks/Items/iconsRegistry.d.ts +0 -0
  191. /package/dist/{extensions → src/extensions}/Blocks/Items/settingsPanel.d.ts +0 -0
  192. /package/dist/{extensions → src/extensions}/Blocks/Items/template.d.ts +0 -0
  193. /package/dist/{extensions → src/extensions}/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -0
  194. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +0 -0
  195. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
  196. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/extension.d.ts +0 -0
  197. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  198. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  199. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +0 -0
  200. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/block.d.ts +0 -0
  201. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/blockIds.d.ts +0 -0
  202. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/controlIds.d.ts +0 -0
  203. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -0
  204. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/index.d.ts +0 -0
  205. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/layout.d.ts +0 -0
  206. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/selectors.d.ts +0 -0
  207. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/blockBackground/index.d.ts +0 -0
  208. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/button/index.d.ts +0 -0
  209. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -0
  210. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -0
  211. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/customAttribute/index.d.ts +0 -0
  212. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/customAttribute/textTrim.d.ts +0 -0
  213. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/image/index.d.ts +0 -0
  214. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/index.d.ts +0 -0
  215. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -0
  216. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/currency.d.ts +0 -0
  217. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/filters.d.ts +0 -0
  218. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/index.d.ts +0 -0
  219. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/layoutOrientation.d.ts +0 -0
  220. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/locale.d.ts +0 -0
  221. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/pricePlacement.d.ts +0 -0
  222. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/productCount.d.ts +0 -0
  223. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -0
  224. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -0
  225. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/utils.d.ts +0 -0
  226. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +0 -0
  227. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/name/index.d.ts +0 -0
  228. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -0
  229. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -0
  230. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -0
  231. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -0
  232. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -0
  233. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -0
  234. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -0
  235. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -0
  236. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/price/index.d.ts +0 -0
  237. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/shared/textTrimCssRules.d.ts +0 -0
  238. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/spacing/index.d.ts +0 -0
  239. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/syncInfoMessage.d.ts +0 -0
  240. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/extension.d.ts +0 -0
  241. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/iconsRegistry.d.ts +0 -0
  242. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/services/configService.d.ts +0 -0
  243. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/services/index.d.ts +0 -0
  244. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/settingsPanel.d.ts +0 -0
  245. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/store/recommendation.d.ts +0 -0
  246. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +0 -0
  247. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/migration.d.ts +0 -0
  248. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/template.d.ts +0 -0
  249. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/index.d.ts +0 -0
  250. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/elementRenderer.d.ts +0 -0
  251. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/migration.d.ts +0 -0
  252. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/template.d.ts +0 -0
  253. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/utils.d.ts +0 -0
  254. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/types/index.d.ts +0 -0
  255. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/types/nodeConfig.d.ts +0 -0
  256. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/useRecommendationBlockWarning.d.ts +0 -0
  257. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/captureStyleTemplates.d.ts +0 -0
  258. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/filterUtil.d.ts +0 -0
  259. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +0 -0
  260. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/partnerCustomizations.d.ts +0 -0
  261. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/priceFormatter.d.ts +0 -0
  262. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/recommendationBlockCount.d.ts +0 -0
  263. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/tagName.d.ts +0 -0
  264. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/validation/filterSchema.d.ts +0 -0
  265. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/validation/requiredFields.d.ts +0 -0
  266. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/block.d.ts +0 -0
  267. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/control.d.ts +0 -0
  268. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/elements/preview.d.ts +0 -0
  269. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/extension.d.ts +0 -0
  270. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -0
  271. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/settingsPanel.d.ts +0 -0
  272. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/tagRegistry.d.ts +0 -0
  273. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/template.d.ts +0 -0
  274. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/constants.d.ts +0 -0
  275. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/utils.d.ts +0 -0
  276. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  277. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  278. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/extension.d.ts +0 -0
  279. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  280. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/settingsPanel.d.ts +0 -0
  281. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  282. /package/dist/{extensions → src/extensions}/Blocks/common-control.d.ts +0 -0
  283. /package/dist/{extensions → src/extensions}/Blocks/controlFactories.d.ts +0 -0
  284. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content-modal.d.ts +0 -0
  285. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content.d.ts +0 -0
  286. /package/dist/{extensions → src/extensions}/DynamicContent/extension.d.ts +0 -0
  287. /package/dist/{extensions → src/extensions}/ModulesTabIcons/extension.d.ts +0 -0
  288. /package/dist/{library.d.ts → src/library.d.ts} +0 -0
  289. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  290. /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
  291. /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
  292. /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
  293. /package/dist/{mock → src/mock}/api/recommendation.d.ts +0 -0
  294. /package/dist/{mock → src/mock}/api/settings.d.ts +0 -0
  295. /package/dist/{mock → src/mock}/api/template-library.d.ts +0 -0
  296. /package/dist/{mock → src/mock}/api/unsubscribe.d.ts +0 -0
  297. /package/dist/{mock → src/mock}/api/user-modal-state.d.ts +0 -0
  298. /package/dist/{mock → src/mock}/api/validator.d.ts +0 -0
  299. /package/dist/{mock → src/mock}/browser.d.ts +0 -0
  300. /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
  301. /package/dist/{services → src/services}/allowlistApi.d.ts +0 -0
  302. /package/dist/{services → src/services}/blankTemplate.d.ts +0 -0
  303. /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
  304. /package/dist/{services → src/services}/recommendationApi.d.ts +0 -0
  305. /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
  306. /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
  307. /package/dist/{services → src/services}/unsubscribeApi.d.ts +0 -0
  308. /package/dist/{stores → src/stores}/autosave.d.ts +0 -0
  309. /package/dist/{stores → src/stores}/config.d.ts +0 -0
  310. /package/dist/{stores → src/stores}/dynamic-content.d.ts +0 -0
  311. /package/dist/{stores → src/stores}/editor.d.ts +0 -0
  312. /package/dist/{stores → src/stores}/guido-email-editor.d.ts +0 -0
  313. /package/dist/{stores → src/stores}/onboarding.d.ts +0 -0
  314. /package/dist/{stores → src/stores}/preview.d.ts +0 -0
  315. /package/dist/{stores → src/stores}/recommendation.d.ts +0 -0
  316. /package/dist/{stores → src/stores}/save-as-template.d.ts +0 -0
  317. /package/dist/{stores → src/stores}/template.d.ts +0 -0
  318. /package/dist/{stores → src/stores}/toaster.d.ts +0 -0
  319. /package/dist/{stores → src/stores}/unsubscribe.d.ts +0 -0
  320. /package/dist/{stores → src/stores}/version-history.d.ts +0 -0
  321. /package/dist/{utils → src/utils}/ampErrorFilter.d.ts +0 -0
  322. /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
  323. /package/dist/{utils → src/utils}/base64.d.ts +0 -0
  324. /package/dist/{utils → src/utils}/dateUtil.d.ts +0 -0
  325. /package/dist/{utils → src/utils}/dynamicContentConverter.d.ts +0 -0
  326. /package/dist/{utils → src/utils}/environmentUtil.d.ts +0 -0
  327. /package/dist/{utils → src/utils}/genericUtil.d.ts +0 -0
  328. /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
  329. /package/dist/{utils → src/utils}/htmlEscape.d.ts +0 -0
  330. /package/dist/{utils → src/utils}/migrationBannerHtml.d.ts +0 -0
  331. /package/dist/{utils → src/utils}/pairProductVariables.d.ts +0 -0
  332. /package/dist/{utils → src/utils}/preserveTextStyles.d.ts +0 -0
  333. /package/dist/{utils → src/utils}/stripFontTags.d.ts +0 -0
  334. /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
  335. /package/dist/{utils → src/utils}/timeUtil.d.ts +0 -0
  336. /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
  337. /package/dist/{utils → src/utils}/urlSchemes.d.ts +0 -0
@@ -1,93 +1,86 @@
1
- import { getCsrfToken as j } from "../utils/genericUtil.js";
2
- import { ref as v, computed as y } from "vue";
3
- const N = "TimeoutError", F = ($ = {}) => {
4
- const T = v(!1), a = v(null), f = v(null), P = y(() => T.value), R = y(() => a.value !== null), g = {
1
+ import { getCsrfToken as H } from "../utils/genericUtil.js";
2
+ import { ref as p, computed as T } from "vue";
3
+ const k = (b = {}) => {
4
+ const h = p(!1), a = p(null), u = p(null), g = T(() => h.value), y = T(() => a.value !== null), v = {
5
5
  baseURL: "",
6
6
  timeout: 1e4,
7
7
  retry: 0,
8
8
  retryDelay: 1e3,
9
9
  headers: {
10
10
  "Content-Type": "application/json",
11
- "X-CSRF-TOKEN": j()
11
+ "X-CSRF-TOKEN": H()
12
12
  },
13
- ...$
14
- }, x = (t, r) => {
15
- if (t.startsWith("http://") || t.startsWith("https://"))
16
- return t;
17
- const s = r || g.baseURL || "";
18
- return s.endsWith("/") && t.startsWith("/") ? `${s}${t.slice(1)}` : s.endsWith("/") || t.startsWith("/") ? `${s}${t}` : `${s}/${t}`;
19
- }, C = (t, r, s, h) => {
20
- let o;
21
- return { promise: new Promise((u, d) => {
22
- o = setTimeout(() => {
23
- const n = new Error(
24
- `Request timeout after ${t}ms: ${r} ${s.split("?")[0]}`
25
- );
26
- n.name = N, n.url = s, n.method = r, n.timeout = t, d(n), h.abort(n);
27
- }, t);
28
- }), clear: () => clearTimeout(o) };
29
- }, O = (t) => new Promise((r) => {
30
- setTimeout(r, t);
31
- }), l = async (t, r, s, h = {}) => {
32
- a.value = null, T.value = !0;
33
- const o = { ...g, ...h }, m = x(r, o.baseURL), u = {
34
- method: t,
35
- headers: { ...o.headers },
36
- ...o
13
+ ...b
14
+ }, w = (e, s) => {
15
+ if (e.startsWith("http://") || e.startsWith("https://"))
16
+ return e;
17
+ const t = s || v.baseURL || "";
18
+ return t.endsWith("/") && e.startsWith("/") ? `${t}${e.slice(1)}` : t.endsWith("/") || e.startsWith("/") ? `${t}${e}` : `${t}/${e}`;
19
+ }, P = (e) => new Promise((s, t) => {
20
+ setTimeout(() => {
21
+ t(new Error("Request timeout"));
22
+ }, e);
23
+ }), x = (e) => new Promise((s) => {
24
+ setTimeout(s, e);
25
+ }), i = async (e, s, t, D = {}) => {
26
+ a.value = null, h.value = !0, u.value = new AbortController();
27
+ const n = { ...v, ...D }, L = w(s, n.baseURL), c = {
28
+ method: e,
29
+ headers: { ...n.headers },
30
+ signal: u.value.signal,
31
+ ...n
37
32
  };
38
- s && ["POST", "PUT", "PATCH"].includes(t) && (s instanceof FormData ? (delete u.headers["Content-Type"], u.body = s) : u.body = JSON.stringify(s));
39
- const d = async (n = 0) => {
40
- const E = new AbortController();
41
- f.value = E;
42
- const w = { ...u, signal: E.signal }, b = o.timeout ? C(o.timeout, t, m, E) : null;
33
+ t && ["POST", "PUT", "PATCH"].includes(e) && (t instanceof FormData ? (delete c.headers["Content-Type"], c.body = t) : c.body = JSON.stringify(t));
34
+ const E = async (m = 0) => {
43
35
  try {
44
- const e = await (b ? Promise.race([fetch(m, w), b.promise]).finally(b.clear) : fetch(m, w));
45
- if (!e.ok) {
46
- const S = `HTTP Error: ${e.status} ${e.statusText}`, p = new Error(S);
47
- throw p.status = e.status, p.statusText = e.statusText, p.response = e, p;
36
+ const o = [fetch(L, c)];
37
+ n.timeout && o.push(P(n.timeout));
38
+ const r = await Promise.race(o);
39
+ if (!r.ok) {
40
+ const O = `HTTP Error: ${r.status} ${r.statusText}`, d = new Error(O);
41
+ throw d.status = r.status, d.statusText = r.statusText, d.response = r, d;
48
42
  }
49
- let i;
50
- const c = e.headers.get("content-type");
51
- return c != null && c.includes("application/json") ? i = await e.json() : c != null && c.includes("text/") ? i = await e.text() : i = await e.blob(), {
52
- data: i,
53
- status: e.status,
54
- statusText: e.statusText,
55
- headers: e.headers
43
+ let f;
44
+ const l = r.headers.get("content-type");
45
+ return l != null && l.includes("application/json") ? f = await r.json() : l != null && l.includes("text/") ? f = await r.text() : f = await r.blob(), {
46
+ data: f,
47
+ status: r.status,
48
+ statusText: r.statusText,
49
+ headers: r.headers
56
50
  };
57
- } catch (e) {
58
- const i = e instanceof Error && e.name === "AbortError";
59
- if (n < (o.retry || 0) && !i)
60
- return await O(o.retryDelay || 1e3), d(n + 1);
61
- throw e instanceof Error ? e.name === "AbortError" ? a.value = { message: "Request was cancelled" } : a.value = { message: e.message } : a.value = e, e;
51
+ } catch (o) {
52
+ const r = o instanceof Error && o.name === "AbortError";
53
+ if (m < (n.retry || 0) && !r)
54
+ return await x(n.retryDelay || 1e3), E(m + 1);
55
+ throw o instanceof Error ? o.name === "AbortError" ? a.value = { message: "Request was cancelled" } : a.value = { message: o.message } : a.value = o, o;
62
56
  }
63
57
  };
64
58
  try {
65
- return await d();
59
+ return await E();
66
60
  } finally {
67
- T.value = !1, f.value = null;
61
+ h.value = !1, u.value = null;
68
62
  }
69
- }, U = (t, r) => l("GET", t, void 0, r), A = (t, r, s) => l("POST", t, r, s), H = (t, r, s) => l("PUT", t, r, s), W = (t, r, s) => l("PATCH", t, r, s), D = (t, r) => l("DELETE", t, void 0, r), L = (t) => {
70
- f.value && f.value.abort(t);
63
+ }, C = (e, s) => i("GET", e, void 0, s), $ = (e, s, t) => i("POST", e, s, t), R = (e, s, t) => i("PUT", e, s, t), U = (e, s, t) => i("PATCH", e, s, t), A = (e, s) => i("DELETE", e, void 0, s), W = (e) => {
64
+ u.value && u.value.abort(e);
71
65
  }, q = () => {
72
66
  a.value = null;
73
67
  };
74
68
  return {
75
69
  // State
76
- loading: P,
77
- error: y(() => a.value),
78
- hasError: R,
70
+ loading: g,
71
+ error: T(() => a.value),
72
+ hasError: y,
79
73
  // Methods
80
- request: l,
81
- get: U,
82
- post: A,
83
- put: H,
84
- patch: W,
85
- delete: D,
86
- cancel: L,
74
+ request: i,
75
+ get: C,
76
+ post: $,
77
+ put: R,
78
+ patch: U,
79
+ delete: A,
80
+ cancel: W,
87
81
  clearError: q
88
82
  };
89
83
  };
90
84
  export {
91
- N as TIMEOUT_ERROR_NAME,
92
- F as useHttp
85
+ k as useHttp
93
86
  };
@@ -1,14 +1,35 @@
1
- import { pairProductVariables as r } from "../../utils/pairProductVariables.js";
2
- const t = [
1
+ import { pairProductVariables as o } from "../../utils/pairProductVariables.js";
2
+ import { wrapHiddenPriceTdsForOutlook as r, MSO_ITEMS_HIDE_START as e, MSO_ITEMS_HIDE_END as t } from "./utils/itemsCompilerUtils.js";
3
+ const a = [
3
4
  {
4
5
  id: "pair-product-variables",
5
6
  description: "Replace product default values with template variables",
6
7
  type: "custom",
7
- processor: r,
8
+ processor: o,
8
9
  priority: 60
9
10
  // After recommendation rules (priority 50-53)
11
+ },
12
+ {
13
+ id: "wrap-hidden-price-mso-conditional",
14
+ // SD-147597: Outlook ignores display:none on <td>, so the horizontal layout's
15
+ // hidden price fallback renders too — duplicate price. Mark the hidden td(s)
16
+ // with safe placeholder comments and collapse them inline for web-engine Outlook.
17
+ description: "Mark hidden Items price tds for Outlook conditional hiding",
18
+ type: "custom",
19
+ processor: r,
20
+ priority: 65
21
+ // After pair-product-variables (60), before outlook rules (70+)
22
+ },
23
+ {
24
+ id: "swap-items-mso-markers",
25
+ // Injecting the delicate `<!-- -->` ghost token LAST (after reco minify P99
26
+ // and reco swap P100) keeps it out of every whitespace/comment-mangling pass.
27
+ description: "Swap Items MSO markers into [if !mso] conditional comments",
28
+ type: "custom",
29
+ processor: (i) => i.replaceAll(`<!--${e}-->`, "<!--[if !mso]><!-- -->").replaceAll(`<!--${t}-->`, "<!--<![endif]-->"),
30
+ priority: 101
10
31
  }
11
32
  ];
12
33
  export {
13
- t as itemsCompilerRules
34
+ a as itemsCompilerRules
14
35
  };
@@ -0,0 +1,28 @@
1
+ const p = "MSO_ITEMS_HIDE_START", E = "MSO_ITEMS_HIDE_END", u = "mso-hide:all; max-height:0; overflow:hidden; font-size:0; line-height:0;", _ = ".ins-product-cart td.horizontal-price, .ins-product-cart td.vertical-price";
2
+ function T(t) {
3
+ if (!t.includes("vertical-price") || !t.includes("ins-product-cart"))
4
+ return t;
5
+ const i = t.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(i, "text/html");
6
+ let n = !1;
7
+ if (r.querySelectorAll(_).forEach((e) => {
8
+ var s, a;
9
+ const o = e.getAttribute("style") || "";
10
+ if (!/display\s*:\s*none/i.test(o))
11
+ return;
12
+ const c = e.previousSibling;
13
+ if (((c == null ? void 0 : c.nodeType) !== Node.COMMENT_NODE || c.data !== p) && ((s = e.parentNode) == null || s.insertBefore(r.createComment(p), e), (a = e.parentNode) == null || a.insertBefore(r.createComment(E), e.nextSibling)), !/mso-hide/i.test(o)) {
14
+ const d = o.trim().endsWith(";") ? " " : "; ";
15
+ e.setAttribute("style", `${o}${d}${u}`);
16
+ }
17
+ n = !0;
18
+ }), !n)
19
+ return t;
20
+ const l = i.match(/<!DOCTYPE[^>]*>/i);
21
+ return ((l ? `${l[0]}
22
+ ` : "") + r.documentElement.outerHTML).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
23
+ }
24
+ export {
25
+ E as MSO_ITEMS_HIDE_END,
26
+ p as MSO_ITEMS_HIDE_START,
27
+ T as wrapHiddenPriceTdsForOutlook
28
+ };
@@ -1,14 +1,15 @@
1
1
  import { migrateCheckbox as t } from "./checkboxMigrator.js";
2
2
  import { migrateCouponBlock as i } from "./couponBlockMigrator.js";
3
3
  import { migrateItemsBlock as e } from "./itemsBlockMigrator.js";
4
- import { migrateRadioButton as a } from "./radioButtonMigrator.js";
5
- import { migrateRecommendation as c } from "./recommendationMigrator.js";
6
- import { migrateSocialIcons as g } from "./socialIconMigrator.js";
7
- import { migrateUnsubscribe as n } from "./unsubscribeMigrator.js";
8
- const k = async (o, r = {}) => {
9
- let m = o;
10
- return m = t(m), m = a(m), m = await n(m), m = i(m), m = c(m, r), m = e(m), m = g(m), m;
4
+ import { migrateProductNameLink as a } from "./productNameLinkMigrator.js";
5
+ import { migrateRadioButton as c } from "./radioButtonMigrator.js";
6
+ import { migrateRecommendation as g } from "./recommendationMigrator.js";
7
+ import { migrateSocialIcons as n } from "./socialIconMigrator.js";
8
+ import { migrateUnsubscribe as p } from "./unsubscribeMigrator.js";
9
+ const x = async (r, o = {}) => {
10
+ let m = r;
11
+ return m = t(m), m = c(m), m = await p(m), m = i(m), m = g(m, o), m = e(m), m = a(m), m = n(m), m;
11
12
  };
12
13
  export {
13
- k as migrate
14
+ x as migrate
14
15
  };
@@ -88,11 +88,11 @@ function k(o) {
88
88
  }
89
89
  function h(o) {
90
90
  var e;
91
- const t = (c, u) => c == null ? u : c === "1" || c === "true", r = (c, u) => c || u, l = o["data-type"] || o["data-source"], a = k(l), i = I[a];
91
+ const t = (l, u) => l == null ? u : l === "1" || l === "true", r = (l, u) => l || u, c = o["data-type"] || o["data-source"], a = k(c), i = I[a];
92
92
  let n = o["data-cart_items_select_control_value"] || ((e = i == null ? void 0 : i[0]) == null ? void 0 : e.value) || g.cartItemsSelectControlValue;
93
93
  if (n && !n.includes("{{") && /^\d+$/.test(n)) {
94
- const c = parseInt(n) - 1, u = I[a];
95
- u && u[c] && (n = u[c].value);
94
+ const l = parseInt(n) - 1, u = I[a];
95
+ u && u[l] && (n = u[l].value);
96
96
  }
97
97
  return {
98
98
  initialized: !0,
@@ -148,7 +148,7 @@ function N(o, t) {
148
148
  };
149
149
  return r[o] || r.CART_ITEMS;
150
150
  }
151
- class z {
151
+ class H {
152
152
  constructor() {
153
153
  M(this, "parser");
154
154
  this.parser = new DOMParser();
@@ -159,13 +159,13 @@ class z {
159
159
  return this.backfillV2ProductTdAttributes(t);
160
160
  let r = this.removeJinjaConditionals(t);
161
161
  r = this.replaceTemplateVariables(r);
162
- const l = this.parser.parseFromString(r, "text/html"), a = l.querySelectorAll(
162
+ const c = this.parser.parseFromString(r, "text/html"), a = c.querySelectorAll(
163
163
  "td.esd-cart-items-block, td.esd-browsed-items-block, td.esd-purchased-items-block"
164
164
  );
165
165
  return q().$patch((n) => {
166
166
  n.migrations = { ...n.migrations, [w]: a.length };
167
167
  }), a.length === 0 ? (console.warn("ItemsBlockMigrator: No blocks found with items block selectors"), r) : (a.forEach((n) => {
168
- const e = this.extractConfiguration(n), c = F({
168
+ const e = this.extractConfiguration(n), l = F({
169
169
  orientation: e.orientation,
170
170
  itemsType: e.itemsType,
171
171
  itemId: e.itemId,
@@ -181,7 +181,7 @@ class z {
181
181
  quantityStyles: e.quantityStyles,
182
182
  nodeConfig: h(e.configBlockAttributes)
183
183
  }), s = this.parser.parseFromString(
184
- `<table><tbody><tr>${c}</tr></tbody></table>`,
184
+ `<table><tbody><tr>${l}</tr></tbody></table>`,
185
185
  "text/html"
186
186
  ).querySelector("td");
187
187
  if (s && n.parentNode) {
@@ -190,7 +190,7 @@ class z {
190
190
  const d = s.querySelector("esd-config-block");
191
191
  d && d.remove(), n.parentNode.replaceChild(s, n);
192
192
  }
193
- }), l.documentElement.outerHTML);
193
+ }), c.documentElement.outerHTML);
194
194
  } catch (r) {
195
195
  return console.error("ItemsBlockMigrator failed:", r), t;
196
196
  }
@@ -205,15 +205,15 @@ class z {
205
205
  var C, D, P;
206
206
  const r = k(
207
207
  ((C = t.querySelector("[data-type]")) == null ? void 0 : C.getAttribute("data-type")) ?? null
208
- ), l = ((D = t.querySelector("[data-number]")) == null ? void 0 : D.getAttribute("data-number")) || "1", a = parseInt(l) - 1, i = I[r], n = ((P = i == null ? void 0 : i[a]) == null ? void 0 : P.value) || i[0].value, e = t.querySelector('[product-attr="price"]'), c = (e == null ? void 0 : e.getAttribute("data-currency_symbol")) || "USD", s = ((e == null ? void 0 : e.getAttribute("data-curency")) || "before") === "after" ? "1" : "0", _ = (e == null ? void 0 : e.getAttribute("data-formated")) !== "false", d = this.extractConfigBlockAttributes(t, r, l), b = d["data-card_orientation_control_value"];
208
+ ), c = ((D = t.querySelector("[data-number]")) == null ? void 0 : D.getAttribute("data-number")) || "1", a = parseInt(c) - 1, i = I[r], n = ((P = i == null ? void 0 : i[a]) == null ? void 0 : P.value) || i[0].value, e = t.querySelector('[product-attr="price"]'), l = (e == null ? void 0 : e.getAttribute("data-currency_symbol")) || "USD", s = ((e == null ? void 0 : e.getAttribute("data-curency")) || "before") === "after" ? "1" : "0", _ = (e == null ? void 0 : e.getAttribute("data-formated")) !== "false", d = this.extractConfigBlockAttributes(t, r, c), b = d["data-card_orientation_control_value"];
209
209
  let S;
210
210
  b ? S = b === "horizontal" ? "horizontal" : "vertical" : S = t.querySelector('[colspan="2"]') !== null ? "vertical" : "horizontal";
211
- const y = t.querySelector('a[product-attr="name"]'), A = (y == null ? void 0 : y.getAttribute("style")) || void 0, f = t.querySelector('a[product-attr="button"]'), m = (f == null ? void 0 : f.getAttribute("style")) || void 0, R = (e == null ? void 0 : e.getAttribute("style")) || void 0, T = t.querySelector("p.original-price"), L = (T == null ? void 0 : T.getAttribute("style")) || void 0, E = t.querySelector('[product-attr="quantity"]'), B = (E == null ? void 0 : E.getAttribute("style")) || void 0;
211
+ const y = t.querySelector('a[product-attr="name"]'), A = (y == null ? void 0 : y.getAttribute("style")) || void 0, f = t.querySelector('a[product-attr="button"]'), m = (f == null ? void 0 : f.getAttribute("style")) || void 0, R = (e == null ? void 0 : e.getAttribute("style")) || void 0, E = t.querySelector("p.original-price"), L = (E == null ? void 0 : E.getAttribute("style")) || void 0, T = t.querySelector('[product-attr="quantity"]'), B = (T == null ? void 0 : T.getAttribute("style")) || void 0;
212
212
  return {
213
213
  orientation: S,
214
214
  itemsType: r,
215
215
  itemId: n,
216
- currencySymbol: c,
216
+ currencySymbol: l,
217
217
  currencyLocation: s,
218
218
  formattedPrice: _,
219
219
  configBlockAttributes: d,
@@ -231,7 +231,7 @@ class z {
231
231
  * @param itemsType - The type of items (CART_ITEMS, BROWSED_ITEMS, PURCHASED_ITEMS)
232
232
  * @param itemNumber - The item number (1-based index)
233
233
  */
234
- extractConfigBlockAttributes(t, r, l) {
234
+ extractConfigBlockAttributes(t, r, c) {
235
235
  const a = t.querySelector("esd-config-block"), i = {};
236
236
  if (!a)
237
237
  return this.getDefaultConfigBlockAttributes();
@@ -240,18 +240,18 @@ class z {
240
240
  }), i["data-cart_items_select_control_value"]) {
241
241
  const e = i["data-cart_items_select_control_value"];
242
242
  if (/^\d+$/.test(e)) {
243
- const c = parseInt(e) - 1, u = I[r];
244
- u && u[c] && (i["data-cart_items_select_control_value"] = u[c].value);
243
+ const l = parseInt(e) - 1, u = I[r];
244
+ u && u[l] && (i["data-cart_items_select_control_value"] = u[l].value);
245
245
  }
246
246
  }
247
247
  if (i["data-product_price_control_curency"]) {
248
248
  const e = i["data-product_price_control_curency"];
249
- let c = e;
250
- e === "before" ? c = "0" : e === "after" && (c = "1"), i["data-product_price_control_curency"] = c, i["data-product_price_currency_location"] = c;
249
+ let l = e;
250
+ e === "before" ? l = "0" : e === "after" && (l = "1"), i["data-product_price_control_curency"] = l, i["data-product_price_currency_location"] = l;
251
251
  }
252
252
  (!i["data-product_price_control_currency_symbol"] || i["data-product_price_control_currency_symbol"].trim() === "") && (i["data-product_price_control_currency_symbol"] = "USD");
253
253
  const n = { ...this.getDefaultConfigBlockAttributes(), ...i };
254
- return n["data-type"] = r, n["data-source"] = r, n["data-product_image_link"] = $(r, l), n["data-product_button_link"] = N(r, l), n;
254
+ return n["data-type"] = r, n["data-source"] = r, n["data-product_image_link"] = $(r, c), n["data-product_button_link"] = N(r, c), n;
255
255
  }
256
256
  /**
257
257
  * Returns default esd-config-block attributes based on the old template structure
@@ -301,7 +301,7 @@ class z {
301
301
  };
302
302
  }
303
303
  /**
304
- * Backfills data-type (and data-number) onto v2 `.ins-product-td` elements
304
+ * Backfills data-type (and data-number, data-nodup) onto v2 `.ins-product-td` elements
305
305
  * from their persisted `esd-ext-config` nodeConfig, and strips the legacy
306
306
  * static `width` that older builds baked onto the product-td.
307
307
  *
@@ -326,22 +326,24 @@ class z {
326
326
  if (!t.includes("ins-product-td") || !t.includes("esd-ext-config"))
327
327
  return t;
328
328
  const r = this.parser.parseFromString(t, "text/html");
329
- let l = !1;
329
+ let c = !1;
330
330
  return r.querySelectorAll(".ins-product-td").forEach((a) => {
331
- if (a.hasAttribute("width") && (a.removeAttribute("width"), l = !0), a.getAttribute("data-type"))
332
- return;
331
+ a.hasAttribute("width") && (a.removeAttribute("width"), c = !0);
333
332
  const i = a.getAttribute("esd-ext-config");
334
- if (i)
335
- try {
336
- const n = JSON.parse(i), e = n.type || n.source;
337
- if (!e)
338
- return;
339
- a.setAttribute("data-type", e), l = !0;
340
- const c = typeof n.itemsSelectValue == "string" ? n.itemsSelectValue.match(/\((\d+)\)/) : null;
341
- c && a.getAttribute("data-number") !== c[1] && a.setAttribute("data-number", c[1]);
342
- } catch {
343
- }
344
- }), l ? r.documentElement.outerHTML : t;
333
+ let n = null;
334
+ try {
335
+ n = i ? JSON.parse(i) : null;
336
+ } catch {
337
+ }
338
+ if (!n || (!a.getAttribute("data-nodup") && typeof n.priceHideDiscount == "boolean" && (a.setAttribute("data-nodup", String(n.priceHideDiscount)), c = !0), a.getAttribute("data-type")))
339
+ return;
340
+ const e = n.type || n.source;
341
+ if (!e)
342
+ return;
343
+ a.setAttribute("data-type", e), c = !0;
344
+ const l = typeof n.itemsSelectValue == "string" ? n.itemsSelectValue.match(/\((\d+)\)/) : null;
345
+ l && a.getAttribute("data-number") !== l[1] && a.setAttribute("data-number", l[1]);
346
+ }), c ? r.documentElement.outerHTML : t;
345
347
  }
346
348
  /**
347
349
  * Fast check for the presence of any items block (cart / browsed / purchased)
@@ -362,15 +364,15 @@ class z {
362
364
  * contains display condition Jinja scripts that should NOT be removed.
363
365
  */
364
366
  removeJinjaConditionals(t) {
365
- const r = "__ESD_DISPLAY_CONDITIONS_PLACEHOLDER__", l = t.match(/esd-custom-display-conditions="[^"]*"/);
366
- let a = l ? t.replace(l[0], r) : t;
367
+ const r = "__ESD_DISPLAY_CONDITIONS_PLACEHOLDER__", c = t.match(/esd-custom-display-conditions="[^"]*"/);
368
+ let a = c ? t.replace(c[0], r) : t;
367
369
  return a = a.replace(
368
370
  /\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_total_product_kind\s*(&gt;|>)\s*\d+\s*%\}/g,
369
371
  ""
370
372
  ), a = a.replace(
371
373
  /\{%\s*if\s+(ins_apr|browsed_item|purchased_item)_price_\d+\s*(!&#61;|!=)\s*\1_originalprice_\d+\s*%\}/g,
372
374
  ""
373
- ), a = a.replace(/\{%\s*endif\s*%\}/g, ""), l && (a = a.replace(r, l[0])), a = a.replace(/\n\s*\n\s*\n/g, `
375
+ ), a = a.replace(/\{%\s*endif\s*%\}/g, ""), c && (a = a.replace(r, c[0])), a = a.replace(/\n\s*\n\s*\n/g, `
374
376
 
375
377
  `), a;
376
378
  }
@@ -385,30 +387,30 @@ class z {
385
387
  */
386
388
  replaceTemplateVariables(t) {
387
389
  const { PAIRS_FOR_EXTENSION: r } = K;
388
- return t.replace(/{{([^}]+)}}/g, (l, a) => {
390
+ return t.replace(/{{([^}]+)}}/g, (c, a) => {
389
391
  const i = a.match(/^(ins_apr|browsed_item|purchased_item)_([a-z_]+)_(\d+)$/);
390
392
  if (!i)
391
- return l;
392
- const [, n, e, c] = i, u = V[n];
393
+ return c;
394
+ const [, n, e, l] = i, u = V[n];
393
395
  if (!u)
394
- return console.warn(`Unknown variable prefix: ${n}`), l;
396
+ return console.warn(`Unknown variable prefix: ${n}`), c;
395
397
  const s = x[e];
396
398
  if (!s)
397
- return console.warn(`Unknown variable suffix mapping for: ${e}`), l;
399
+ return console.warn(`Unknown variable suffix mapping for: ${e}`), c;
398
400
  const { pairsKey: _, defaultKey: d, isArray: b } = s, y = r[_][u];
399
401
  if (!y)
400
- return console.warn(`No data found for: ${_}.${u}`), l;
402
+ return console.warn(`No data found for: ${_}.${u}`), c;
401
403
  if (b) {
402
- const f = parseInt(c) - 1, m = y[d];
403
- return Array.isArray(m) && m[f] ? m[f] : (console.warn(`Array value not found: ${_}.${u}.${d}[${f}]`), l);
404
+ const f = parseInt(l) - 1, m = y[d];
405
+ return Array.isArray(m) && m[f] ? m[f] : (console.warn(`Array value not found: ${_}.${u}.${d}[${f}]`), c);
404
406
  }
405
407
  const A = y[d];
406
- return A !== void 0 ? String(A) : (console.warn(`Default value not found: ${_}.${u}.${d}`), l);
408
+ return A !== void 0 ? String(A) : (console.warn(`Default value not found: ${_}.${u}.${d}`), c);
407
409
  });
408
410
  }
409
411
  }
410
412
  function Q(o) {
411
- return new z().migrate(o);
413
+ return new H().migrate(o);
412
414
  }
413
415
  export {
414
416
  Q as migrateItemsBlock
@@ -0,0 +1,27 @@
1
+ var n = Object.defineProperty;
2
+ var a = (e, r, t) => r in e ? n(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
3
+ var o = (e, r, t) => a(e, typeof r != "symbol" ? r + "" : r, t);
4
+ import { unwrapProductNameLinks as i } from "../../utils/unwrapProductNameLink.js";
5
+ const c = /<a[^>]*product-attr="name"/i;
6
+ class s {
7
+ constructor() {
8
+ o(this, "parser");
9
+ this.parser = new DOMParser();
10
+ }
11
+ migrate(r) {
12
+ try {
13
+ if (!r.includes("items-block-v2") || !c.test(r))
14
+ return r;
15
+ const t = this.parser.parseFromString(r, "text/html");
16
+ return i(t), t.documentElement.outerHTML;
17
+ } catch (t) {
18
+ return console.error("ProductNameLinkMigrator failed:", t), r;
19
+ }
20
+ }
21
+ }
22
+ function d(e) {
23
+ return new s().migrate(e);
24
+ }
25
+ export {
26
+ d as migrateProductNameLink
27
+ };
@@ -1,14 +1,14 @@
1
- import { BlockId as g } from "../../../enums/block.js";
2
- import { useOnboardingStore as p } from "../../../stores/onboarding.js";
1
+ import { BlockId as f } from "../../../enums/block.js";
2
+ import { useOnboardingStore as g } from "../../../stores/onboarding.js";
3
3
  import { getMigrationBannerHtml as y } from "../../../utils/migrationBannerHtml.js";
4
4
  import { Block as I, BlockCompositionType as C, ModificationDescription as c } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { SETTINGS_ENUMS as l, DefaultConfigValues as m } from "./enums/settingsEnums.js";
5
+ import { SETTINGS_ENUMS as d, DefaultConfigValues as m } from "./enums/settingsEnums.js";
6
6
  import { getDefaultTemplate as b } from "./template.js";
7
- import { getItemsBlockContainer as d, getItemsBlockConfig as u, deriveItemNumber as h, getDefaultItemsBlockConfig as N } from "./utils/nodeConfigUtils.js";
8
- const f = g.Items;
9
- class P extends I {
7
+ import { getItemsBlockContainer as l, getItemsBlockConfig as u, deriveItemNumber as h, getDefaultItemsBlockConfig as N } from "./utils/nodeConfigUtils.js";
8
+ const p = f.Items;
9
+ class O extends I {
10
10
  getId() {
11
- return f;
11
+ return p;
12
12
  }
13
13
  getIcon() {
14
14
  return "items-icon";
@@ -24,15 +24,15 @@ class P extends I {
24
24
  }
25
25
  getSettingsPanelTitleHtml() {
26
26
  return y(
27
- f,
27
+ p,
28
28
  this.api.translate("Items"),
29
29
  this.api.translate("This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly.")
30
30
  );
31
31
  }
32
32
  getTemplate() {
33
33
  return b({
34
- orientation: l.ORIENTATION.VERTICAL,
35
- itemsType: l.ITEMS_TYPE.CART_ITEMS,
34
+ orientation: d.ORIENTATION.VERTICAL,
35
+ itemsType: d.ITEMS_TYPE.CART_ITEMS,
36
36
  itemId: "{{Abandoned Cart Item (1) Url}}",
37
37
  currencySymbol: m.productPriceCurrencySymbolControlValue,
38
38
  currencyLocation: m.productPriceCurrencyLocationControlValue,
@@ -45,23 +45,23 @@ class P extends I {
45
45
  canBeSavedAsModule() {
46
46
  return !0;
47
47
  }
48
- onCreated(o) {
49
- const t = this.api.getDocumentModifier(), i = this.api.getDocumentRootCssNode();
50
- i.querySelector('[product-attr="imageSrc"] img') || t.modifyCss(i).appendRule('[product-attr="imageSrc"] img {object-fit: contain;}');
51
- const e = d(o);
52
- if (!e)
48
+ onCreated(e) {
49
+ const t = this.api.getDocumentModifier(), o = this.api.getDocumentRootCssNode();
50
+ o.querySelector('[product-attr="imageSrc"] img') || t.modifyCss(o).appendRule('[product-attr="imageSrc"] img {object-fit: contain;}');
51
+ const i = l(e);
52
+ if (!i)
53
53
  return;
54
- const r = e.getNodeConfig(), s = r && Object.keys(r).length > 0, n = u(o);
54
+ const r = i.getNodeConfig(), s = r && Object.keys(r).length > 0, n = u(e);
55
55
  if (n != null && n.initialized)
56
56
  if (s)
57
- n.blockInstanceId || this.api.getDocumentModifier().modifyHtml(e).setNodeConfig({ ...n, blockInstanceId: String(Date.now()) }).apply(new c("Assign block instance ID to block"));
57
+ n.blockInstanceId || this.api.getDocumentModifier().modifyHtml(i).setNodeConfig({ ...n, blockInstanceId: String(Date.now()) }).apply(new c("Assign block instance ID to block"));
58
58
  else {
59
59
  const a = this.api.getDocumentModifier();
60
- a.modifyHtml(e).setNodeConfig(n), this._stampProductTdDomAttributes(e, n, a), a.apply(new c("Migrate legacy config to nodeConfig"));
60
+ a.modifyHtml(i).setNodeConfig(n), this._stampProductTdDomAttributes(i, n, a), a.apply(new c("Migrate legacy config to nodeConfig"));
61
61
  }
62
62
  else {
63
63
  const a = N();
64
- this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(a).apply(new c("Initialize Items block with default configuration")), p().startOnboarding("itemsOnboarding");
64
+ this.api.getDocumentModifier().modifyHtml(i).setNodeConfig(a).apply(new c("Initialize Items block with default configuration")), g().startOnboarding("itemsOnboarding");
65
65
  }
66
66
  }
67
67
  /**
@@ -70,33 +70,33 @@ class P extends I {
70
70
  * into nodeConfig, so without this a reused module would reset to defaults.
71
71
  * Guarded to the nodeConfig-empty case so it runs once and never loops.
72
72
  */
73
- onDocumentChanged(o) {
74
- const t = d(o);
73
+ onDocumentChanged(e) {
74
+ const t = l(e);
75
75
  if (!t)
76
76
  return;
77
- const i = t.getNodeConfig();
78
- if (i && Object.keys(i).length > 0)
77
+ const o = t.getNodeConfig();
78
+ if (o && Object.keys(o).length > 0)
79
79
  return;
80
- const r = u(o);
80
+ const r = u(e);
81
81
  if (!(r != null && r.initialized))
82
82
  return;
83
83
  const s = this.api.getDocumentModifier();
84
84
  s.modifyHtml(t).setNodeConfig(r), this._stampProductTdDomAttributes(t, r, s), s.apply(new c("Recover Items block config from saved module"));
85
85
  }
86
86
  /**
87
- * Bakes the compiler-read DOM attributes (`data-type`, `data-number`) onto the
87
+ * Bakes the compiler-read DOM attributes (`data-type`, `data-number`, `data-nodup`) onto the
88
88
  * `.ins-product-td` container from the recovered config. Required for saved modules:
89
89
  * `migrate()` (which backfills these) only runs at template load — never when a module
90
90
  * is dropped into a live editor — so this is the one place the namespace + index get
91
91
  * restored before export. The name `<a>` carries no data-type/data-number of its own and
92
92
  * relies on this td-level fallback in pairProductVariables.
93
93
  */
94
- _stampProductTdDomAttributes(o, t, i) {
95
- const e = h(t.itemsSelectValue, t.type);
96
- i.modifyHtml(o).setAttribute("data-type", t.type), i.modifyHtml(o).setAttribute("data-number", e);
94
+ _stampProductTdDomAttributes(e, t, o) {
95
+ const i = h(t.itemsSelectValue, t.type);
96
+ o.modifyHtml(e).setAttribute("data-type", t.type), o.modifyHtml(e).setAttribute("data-number", i), o.modifyHtml(e).setAttribute("data-nodup", String(t.priceHideDiscount));
97
97
  }
98
98
  }
99
99
  export {
100
- f as BLOCK_ID,
101
- P as ItemsBlock
100
+ p as BLOCK_ID,
101
+ O as ItemsBlock
102
102
  };