@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.
- package/dist/components/organisms/header/EditorActions.vue.js +1 -1
- package/dist/components/organisms/header/EditorActions.vue2.js +39 -47
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +28 -30
- package/dist/composables/useHtmlValidator.js +111 -106
- package/dist/composables/useHttp.js +59 -66
- package/dist/config/compiler/itemsCompilerRules.js +25 -4
- package/dist/config/compiler/utils/itemsCompilerUtils.js +28 -0
- package/dist/config/migrator/index.js +9 -8
- package/dist/config/migrator/itemsBlockMigrator.js +47 -45
- package/dist/config/migrator/productNameLinkMigrator.js +27 -0
- package/dist/extensions/Blocks/Items/block.js +30 -30
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +16 -16
- package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +26 -22
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +36 -35
- package/dist/extensions/Blocks/Items/template.js +228 -263
- package/dist/extensions/Blocks/Items/utils/nameNode.js +4 -0
- package/dist/guido.css +1 -1
- package/dist/{composables → src/composables}/useHttp.d.ts +0 -6
- package/dist/src/config/compiler/utils/itemsCompilerUtils.d.ts +12 -0
- package/dist/src/config/migrator/productNameLinkMigrator.d.ts +1 -0
- package/dist/{extensions → src/extensions}/Blocks/Items/block.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/utils/nameNode.d.ts +9 -0
- package/dist/src/utils/unwrapProductNameLink.d.ts +15 -0
- package/dist/utils/pairProductVariables.js +75 -72
- package/dist/utils/unwrapProductNameLink.js +37 -0
- package/package.json +1 -1
- /package/dist/{@types → src/@types}/config/defaults.d.ts +0 -0
- /package/dist/{@types → src/@types}/config/index.d.ts +0 -0
- /package/dist/{@types → src/@types}/config/schemas.d.ts +0 -0
- /package/dist/{@types → src/@types}/config/types.d.ts +0 -0
- /package/dist/{@types → src/@types}/config/validator.d.ts +0 -0
- /package/dist/{@types → src/@types}/events.d.ts +0 -0
- /package/dist/{@types → src/@types}/extensions/block.d.ts +0 -0
- /package/dist/{@types → src/@types}/generic.d.ts +0 -0
- /package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
- /package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
- /package/dist/{components → src/components}/Guido.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/AutoSaveController.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/extensions/recommendation/Filters.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/AutoSaveToggle.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/EditorActions.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/EditorToolbar.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/LeftSlot.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/MiddleSlot.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/MigrationConfirmModal.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/ViewOptions.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/version-history/RestoreButton.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/header/version-history/ViewOptions.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/onboarding/AMPOnboarding.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/onboarding/GenericOnboarding.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/onboarding/NewVersionPopup.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/onboarding/OnboardingWrapper.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/onboarding/TextBlockOnboarding.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +0 -0
- /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +0 -0
- /package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +0 -0
- /package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +0 -0
- /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
- /package/dist/{composables → src/composables}/useAllowlist.d.ts +0 -0
- /package/dist/{composables → src/composables}/useAutoSave.d.ts +0 -0
- /package/dist/{composables → src/composables}/useBlocksConfig.d.ts +0 -0
- /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
- /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
- /package/dist/{composables → src/composables}/useCortexBlueprintBridge.d.ts +0 -0
- /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
- /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
- /package/dist/{composables → src/composables}/useEmailTemplateApplier.d.ts +0 -0
- /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
- /package/dist/{composables → src/composables}/useFullStoryBridge.d.ts +0 -0
- /package/dist/{composables → src/composables}/useGuidoActions.d.ts +0 -0
- /package/dist/{composables → src/composables}/useGuidoStateBridge.d.ts +0 -0
- /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
- /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
- /package/dist/{composables → src/composables}/useModuleDynamicContentRepair.d.ts +0 -0
- /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
- /package/dist/{composables → src/composables}/usePreviewInteractionGuard.d.ts +0 -0
- /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
- /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
- /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
- /package/dist/{composables → src/composables}/useRecommendationPreview.d.ts +0 -0
- /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
- /package/dist/{composables → src/composables}/useRibbonOffset.d.ts +0 -0
- /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
- /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
- /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
- /package/dist/{composables → src/composables}/useStripoNotifications.d.ts +0 -0
- /package/dist/{composables → src/composables}/useSyncModuleExtractor.d.ts +0 -0
- /package/dist/{composables → src/composables}/useTimerClone.d.ts +0 -0
- /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
- /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
- /package/dist/{composables → src/composables}/useUserRole.d.ts +0 -0
- /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
- /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
- /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
- /package/dist/{composables → src/composables}/validators/useCouponBlockValidator.d.ts +0 -0
- /package/dist/{composables → src/composables}/validators/useLiquidValidator.d.ts +0 -0
- /package/dist/{composables → src/composables}/validators/useUnsubscribeBlockValidator.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/itemsCompilerRules.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/liquidCompilerRules.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/utils/recommendationCompilerUtils.d.ts +0 -0
- /package/dist/{config → src/config}/compiler/utils/recommendationIgnoreUtils.d.ts +0 -0
- /package/dist/{config → src/config}/i18n/en/index.d.ts +0 -0
- /package/dist/{config → src/config}/i18n/index.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/couponBlockMigrator.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/index.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/itemsBlockMigrator.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendation/compositionMapper.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendation/extractors.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendation/htmlBuilder.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendation/parseLegacyConfig.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendation/settingsMapper.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendation/themeMapper.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendation/types.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/recommendationMigrator.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/socialIconMigrator.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/textBlockMigration.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/unsubscribeMigrator.d.ts +0 -0
- /package/dist/{enums → src/enums}/academy.d.ts +0 -0
- /package/dist/{enums → src/enums}/block.d.ts +0 -0
- /package/dist/{enums → src/enums}/date.d.ts +0 -0
- /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
- /package/dist/{enums → src/enums}/extensions/recommendationBlock.d.ts +0 -0
- /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
- /package/dist/{enums → src/enums}/onboarding.d.ts +0 -0
- /package/dist/{enums → src/enums}/preview.d.ts +0 -0
- /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
- /package/dist/{enums → src/enums}/roles.d.ts +0 -0
- /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
- /package/dist/{enums → src/enums}/unsubscribe.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Checkbox/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/block.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/constants.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/controls/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/button/link.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/cardComposition.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/image/link.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/name/trimming.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/currencyLocation.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/currencySymbol.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/formattedPrice.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/hideDiscount.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/priceOrientation.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/singlePrice.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/controls/settingsControl.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/enums/controlEnums.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/enums/productEnums.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/enums/settingsEnums.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/RadioButton/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/block.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/blockIds.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/controlIds.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/layout.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/selectors.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/blockBackground/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/button/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/customAttribute/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/customAttribute/textTrim.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/image/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/currency.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/filters.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/layoutOrientation.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/locale.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/pricePlacement.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/productCount.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/utils.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/name/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/price/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/shared/textTrimCssRules.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/spacing/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/syncInfoMessage.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/services/configService.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/services/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/store/recommendation.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/migration.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/elementRenderer.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/migration.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/utils.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/types/index.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/types/nodeConfig.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/useRecommendationBlockWarning.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/captureStyleTemplates.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/filterUtil.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/partnerCustomizations.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/priceFormatter.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/recommendationBlockCount.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/tagName.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/validation/filterSchema.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/validation/requiredFields.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/block.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/control.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/elements/preview.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/tagRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/constants.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/utils.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/common-control.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/controlFactories.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content-modal.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/DynamicContent/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/ModulesTabIcons/extension.d.ts +0 -0
- /package/dist/{library.d.ts → src/library.d.ts} +0 -0
- /package/dist/{main.d.ts → src/main.d.ts} +0 -0
- /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/recommendation.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/settings.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/template-library.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/unsubscribe.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/user-modal-state.d.ts +0 -0
- /package/dist/{mock → src/mock}/api/validator.d.ts +0 -0
- /package/dist/{mock → src/mock}/browser.d.ts +0 -0
- /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
- /package/dist/{services → src/services}/allowlistApi.d.ts +0 -0
- /package/dist/{services → src/services}/blankTemplate.d.ts +0 -0
- /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
- /package/dist/{services → src/services}/recommendationApi.d.ts +0 -0
- /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
- /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
- /package/dist/{services → src/services}/unsubscribeApi.d.ts +0 -0
- /package/dist/{stores → src/stores}/autosave.d.ts +0 -0
- /package/dist/{stores → src/stores}/config.d.ts +0 -0
- /package/dist/{stores → src/stores}/dynamic-content.d.ts +0 -0
- /package/dist/{stores → src/stores}/editor.d.ts +0 -0
- /package/dist/{stores → src/stores}/guido-email-editor.d.ts +0 -0
- /package/dist/{stores → src/stores}/onboarding.d.ts +0 -0
- /package/dist/{stores → src/stores}/preview.d.ts +0 -0
- /package/dist/{stores → src/stores}/recommendation.d.ts +0 -0
- /package/dist/{stores → src/stores}/save-as-template.d.ts +0 -0
- /package/dist/{stores → src/stores}/template.d.ts +0 -0
- /package/dist/{stores → src/stores}/toaster.d.ts +0 -0
- /package/dist/{stores → src/stores}/unsubscribe.d.ts +0 -0
- /package/dist/{stores → src/stores}/version-history.d.ts +0 -0
- /package/dist/{utils → src/utils}/ampErrorFilter.d.ts +0 -0
- /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
- /package/dist/{utils → src/utils}/base64.d.ts +0 -0
- /package/dist/{utils → src/utils}/dateUtil.d.ts +0 -0
- /package/dist/{utils → src/utils}/dynamicContentConverter.d.ts +0 -0
- /package/dist/{utils → src/utils}/environmentUtil.d.ts +0 -0
- /package/dist/{utils → src/utils}/genericUtil.d.ts +0 -0
- /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
- /package/dist/{utils → src/utils}/htmlEscape.d.ts +0 -0
- /package/dist/{utils → src/utils}/migrationBannerHtml.d.ts +0 -0
- /package/dist/{utils → src/utils}/pairProductVariables.d.ts +0 -0
- /package/dist/{utils → src/utils}/preserveTextStyles.d.ts +0 -0
- /package/dist/{utils → src/utils}/stripFontTags.d.ts +0 -0
- /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
- /package/dist/{utils → src/utils}/timeUtil.d.ts +0 -0
- /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
- /package/dist/{utils → src/utils}/urlSchemes.d.ts +0 -0
|
@@ -1,93 +1,86 @@
|
|
|
1
|
-
import { getCsrfToken as
|
|
2
|
-
import { ref as
|
|
3
|
-
const
|
|
4
|
-
const
|
|
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":
|
|
11
|
+
"X-CSRF-TOKEN": H()
|
|
12
12
|
},
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
if (
|
|
16
|
-
return
|
|
17
|
-
const
|
|
18
|
-
return
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
39
|
-
const
|
|
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
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
|
50
|
-
const
|
|
51
|
-
return
|
|
52
|
-
data:
|
|
53
|
-
status:
|
|
54
|
-
statusText:
|
|
55
|
-
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 (
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
60
|
-
return await
|
|
61
|
-
throw
|
|
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
|
|
59
|
+
return await E();
|
|
66
60
|
} finally {
|
|
67
|
-
|
|
61
|
+
h.value = !1, u.value = null;
|
|
68
62
|
}
|
|
69
|
-
},
|
|
70
|
-
|
|
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:
|
|
77
|
-
error:
|
|
78
|
-
hasError:
|
|
70
|
+
loading: g,
|
|
71
|
+
error: T(() => a.value),
|
|
72
|
+
hasError: y,
|
|
79
73
|
// Methods
|
|
80
|
-
request:
|
|
81
|
-
get:
|
|
82
|
-
post:
|
|
83
|
-
put:
|
|
84
|
-
patch:
|
|
85
|
-
delete:
|
|
86
|
-
cancel:
|
|
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
|
-
|
|
92
|
-
F as useHttp
|
|
85
|
+
k as useHttp
|
|
93
86
|
};
|
|
@@ -1,14 +1,35 @@
|
|
|
1
|
-
import { pairProductVariables as
|
|
2
|
-
|
|
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:
|
|
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
|
-
|
|
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("<!--{%", "{%").replaceAll("%}-->", "%}");
|
|
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 {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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 = (
|
|
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
|
|
95
|
-
u && u[
|
|
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
|
|
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
|
|
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),
|
|
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>${
|
|
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
|
-
}),
|
|
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
|
-
),
|
|
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,
|
|
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:
|
|
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,
|
|
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
|
|
244
|
-
u && u[
|
|
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
|
|
250
|
-
e === "before" ?
|
|
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,
|
|
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
|
|
329
|
+
let c = !1;
|
|
330
330
|
return r.querySelectorAll(".ins-product-td").forEach((a) => {
|
|
331
|
-
|
|
332
|
-
return;
|
|
331
|
+
a.hasAttribute("width") && (a.removeAttribute("width"), c = !0);
|
|
333
332
|
const i = a.getAttribute("esd-ext-config");
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
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__",
|
|
366
|
-
let a =
|
|
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*(>|>)\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*(!=|!=)\s*\1_originalprice_\d+\s*%\}/g,
|
|
372
374
|
""
|
|
373
|
-
), a = a.replace(/\{%\s*endif\s*%\}/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, (
|
|
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
|
|
392
|
-
const [, n, e,
|
|
393
|
+
return c;
|
|
394
|
+
const [, n, e, l] = i, u = V[n];
|
|
393
395
|
if (!u)
|
|
394
|
-
return console.warn(`Unknown variable prefix: ${n}`),
|
|
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}`),
|
|
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}`),
|
|
402
|
+
return console.warn(`No data found for: ${_}.${u}`), c;
|
|
401
403
|
if (b) {
|
|
402
|
-
const f = parseInt(
|
|
403
|
-
return Array.isArray(m) && m[f] ? m[f] : (console.warn(`Array value not found: ${_}.${u}.${d}[${f}]`),
|
|
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}`),
|
|
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
|
|
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
|
|
2
|
-
import { useOnboardingStore as
|
|
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
|
|
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
|
|
8
|
-
const
|
|
9
|
-
class
|
|
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
|
|
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
|
-
|
|
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:
|
|
35
|
-
itemsType:
|
|
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(
|
|
49
|
-
const t = this.api.getDocumentModifier(),
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
if (!
|
|
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 =
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
74
|
-
const t =
|
|
73
|
+
onDocumentChanged(e) {
|
|
74
|
+
const t = l(e);
|
|
75
75
|
if (!t)
|
|
76
76
|
return;
|
|
77
|
-
const
|
|
78
|
-
if (
|
|
77
|
+
const o = t.getNodeConfig();
|
|
78
|
+
if (o && Object.keys(o).length > 0)
|
|
79
79
|
return;
|
|
80
|
-
const r = u(
|
|
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(
|
|
95
|
-
const
|
|
96
|
-
|
|
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
|
-
|
|
101
|
-
|
|
100
|
+
p as BLOCK_ID,
|
|
101
|
+
O as ItemsBlock
|
|
102
102
|
};
|