@useinsider/guido 1.0.3-beta.df46976 → 1.0.3-beta.dfb1fcf
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/README.md +140 -3
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +79 -73
- package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
- package/dist/components/organisms/header/LeftSlot.vue2.js +16 -15
- package/dist/components/organisms/header/RightSlot.vue.js +11 -11
- package/dist/components/organisms/header/RightSlot.vue2.js +23 -22
- package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +21 -20
- package/dist/composables/useBlocksConfig.js +49 -0
- package/dist/composables/useGuidoActions.js +19 -9
- package/dist/composables/useStripo.js +53 -57
- package/dist/config/compiler/unsubscribeCompilerRules.js +33 -28
- package/dist/config/migrator/index.js +7 -6
- package/dist/config/migrator/recommendationMigrator.js +293 -0
- package/dist/enums/date.js +4 -14
- package/dist/enums/defaults.js +16 -9
- package/dist/enums/onboarding.js +2 -1
- package/dist/enums/unsubscribe.js +27 -25
- package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
- package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
- package/dist/extensions/Blocks/Recommendation/block.js +6 -3
- package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +193 -0
- package/dist/extensions/Blocks/Recommendation/constants.js +14 -0
- package/dist/extensions/Blocks/Recommendation/control.js +109 -65
- package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
- package/dist/extensions/Blocks/Recommendation/controls/index.js +272 -0
- package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/priceHideControl.js +60 -0
- package/dist/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.js +160 -0
- package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +18 -7
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +159 -21
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +184 -0
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +189 -0
- package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +209 -0
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
- package/dist/extensions/Blocks/common-control.js +125 -43
- package/dist/extensions/Blocks/controlFactories.js +234 -0
- package/dist/extensions/DynamicContent/dynamic-content-modal.js +25 -19
- package/dist/extensions/DynamicContent/dynamic-content.js +128 -33
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +312 -100
- package/dist/package.json.js +7 -0
- package/dist/services/stripoApi.js +1 -1
- package/dist/{@types → src/@types}/generic.d.ts +41 -6
- package/dist/{components → src/components}/Guido.vue.d.ts +3 -2
- package/dist/src/composables/useBlocksConfig.d.ts +11 -0
- package/dist/{composables → src/composables}/useGuidoActions.d.ts +9 -0
- package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
- package/dist/src/enums/date.d.ts +4 -0
- package/dist/src/enums/onboarding.d.ts +2 -0
- package/dist/{extensions → src/extensions}/Blocks/Recommendation/block.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +79 -0
- package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +91 -0
- package/dist/{extensions → src/extensions}/Blocks/Recommendation/control.d.ts +11 -2
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +71 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/priceHideControl.d.ts +16 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.d.ts +50 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
- package/dist/{extensions → src/extensions}/Blocks/Recommendation/store/recommendation.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +16 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +52 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
- package/dist/{extensions → src/extensions}/Blocks/common-control.d.ts +21 -0
- package/dist/src/extensions/Blocks/controlFactories.d.ts +95 -0
- package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +13 -0
- package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +66 -0
- package/dist/{stores → src/stores}/config.d.ts +9 -2
- package/dist/{stores → src/stores}/dynamic-content.d.ts +3 -3
- package/dist/{stores → src/stores}/editor.d.ts +1 -1
- package/dist/{stores → src/stores}/onboarding.d.ts +1 -1
- package/dist/{stores → src/stores}/preview.d.ts +1 -1
- package/dist/{stores → src/stores}/recommendation.d.ts +1 -1
- package/dist/{stores → src/stores}/save-as-template.d.ts +1 -1
- package/dist/{stores → src/stores}/toaster.d.ts +1 -1
- package/dist/{stores → src/stores}/unsubscribe.d.ts +1 -1
- package/dist/{stores → src/stores}/version-history.d.ts +1 -1
- package/dist/src/utils/dateUtil.d.ts +22 -0
- package/dist/src/utils/environmentUtil.d.ts +5 -0
- package/dist/{utils → src/utils}/genericUtil.d.ts +1 -0
- package/dist/static/styles/components/narrow-panel.css.js +10 -0
- package/dist/static/styles/components/wide-panel.css.js +0 -4
- package/dist/static/styles/customEditorStyle.css.js +19 -0
- package/dist/stores/config.js +5 -5
- package/dist/stores/dynamic-content.js +2 -2
- package/dist/stores/editor.js +1 -1
- package/dist/stores/onboarding.js +27 -27
- package/dist/stores/preview.js +1 -1
- package/dist/stores/recommendation.js +3 -3
- package/dist/stores/save-as-template.js +2 -2
- package/dist/stores/toaster.js +1 -1
- package/dist/stores/unsubscribe.js +1 -1
- package/dist/stores/version-history.js +4 -4
- package/dist/utils/dateUtil.js +33 -7
- package/dist/utils/environmentUtil.js +4 -0
- package/dist/utils/genericUtil.js +20 -9
- package/package.json +7 -2
- package/dist/enums/date.d.ts +0 -13
- package/dist/enums/onboarding.d.ts +0 -1
- package/dist/extensions/Blocks/Recommendation/template.d.ts +0 -6
- package/dist/extensions/Blocks/Recommendation/template.js +0 -200
- package/dist/extensions/DynamicContent/dynamic-content-modal.d.ts +0 -6
- package/dist/extensions/DynamicContent/dynamic-content.d.ts +0 -16
- package/dist/utils/dateUtil.d.ts +0 -2
- package/dist/{@types → src/@types}/events.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}/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/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/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/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/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 +1 -1
- /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
- /package/dist/{composables → src/composables}/useApiExample.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}/useCustomInterfaceAppearance.d.ts +0 -0
- /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
- /package/dist/{composables → src/composables}/useExport.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}/useHttp.d.ts +0 -0
- /package/dist/{composables → src/composables}/usePartner.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}/useResponsivePreview.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}/useToaster.d.ts +0 -0
- /package/dist/{composables → src/composables}/useTranslations.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/{config → src/config}/compiler/htmlCompilerRules.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}/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/radioButtonMigrator.d.ts +0 -0
- /package/dist/{config → src/config}/migrator/unsubscribeMigrator.d.ts +0 -0
- /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
- /package/dist/{enums → src/enums}/displayConditions.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}/preview.d.ts +0 -0
- /package/dist/{enums → src/enums}/recommendation.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/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/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/extension.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/iconsRegistry.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/settingsPanel.d.ts +0 -0
- /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/filterUtil.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}/DynamicContent/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/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}/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/{utils → src/utils}/arrayUtil.d.ts +0 -0
- /package/dist/{utils → src/utils}/base64.d.ts +0 -0
- /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
- /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
- /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
|
+
import { CommonControl } from '../../common-control';
|
|
3
|
+
export declare const SPACING_CONTROL_ID = "recommendation-spacing-control";
|
|
4
|
+
/**
|
|
5
|
+
* Control for managing spacing between product cards
|
|
6
|
+
* - Column spacing: horizontal gap between cards in the same row
|
|
7
|
+
* - Row spacing: vertical gap between different rows
|
|
8
|
+
*/
|
|
9
|
+
export declare class SpacingControl extends CommonControl {
|
|
10
|
+
getId(): string;
|
|
11
|
+
getTemplate(): string;
|
|
12
|
+
onRender(): void;
|
|
13
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
14
|
+
/**
|
|
15
|
+
* Reads spacing values from data attributes or returns defaults
|
|
16
|
+
*/
|
|
17
|
+
_setFormValues(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Gets stored column spacing from the first product card wrapper's parent element's padding
|
|
20
|
+
* Reads the actual padding value instead of relying on data attributes
|
|
21
|
+
*
|
|
22
|
+
* The padding is applied as "0 {halfSpacing}px" on the parent TD element,
|
|
23
|
+
* so we need to extract the horizontal padding value and multiply by 2 to get total spacing.
|
|
24
|
+
*/
|
|
25
|
+
_getStoredColumnSpacing(): number;
|
|
26
|
+
/**
|
|
27
|
+
* Gets stored row spacing from the first spacer element's height style
|
|
28
|
+
* Reads the actual height value instead of relying on data attributes
|
|
29
|
+
*/
|
|
30
|
+
_getStoredRowSpacing(): number;
|
|
31
|
+
/**
|
|
32
|
+
* Handles column spacing changes
|
|
33
|
+
* Applies horizontal padding to all product card wrappers
|
|
34
|
+
*/
|
|
35
|
+
_onColumnSpacingChange(spacing: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* Handles row spacing changes
|
|
38
|
+
* Applies height to all spacer elements between product rows
|
|
39
|
+
*/
|
|
40
|
+
_onRowSpacingChange(spacing: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* Stores column spacing value in block data attribute
|
|
43
|
+
*/
|
|
44
|
+
_storeColumnSpacing(spacing: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* Stores row spacing value in block data attribute
|
|
47
|
+
*/
|
|
48
|
+
_storeRowSpacing(spacing: number): void;
|
|
49
|
+
_listenToFormUpdates(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Debounced version of _onColumnSpacingChange
|
|
52
|
+
* Prevents excessive DOM updates when user rapidly adjusts the counter
|
|
53
|
+
*/
|
|
54
|
+
_debouncedOnColumnSpacingChange: import("@vueuse/shared").PromisifyFn<(spacing: number) => void>;
|
|
55
|
+
/**
|
|
56
|
+
* Debounced version of _onRowSpacingChange
|
|
57
|
+
* Prevents excessive DOM updates when user rapidly adjusts the counter
|
|
58
|
+
*/
|
|
59
|
+
_debouncedOnRowSpacingChange: import("@vueuse/shared").PromisifyFn<(spacing: number) => void>;
|
|
60
|
+
}
|
|
@@ -34,7 +34,7 @@ interface StoreState {
|
|
|
34
34
|
filterList: FiltersResponse;
|
|
35
35
|
filterGroup: number;
|
|
36
36
|
}
|
|
37
|
-
export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"
|
|
37
|
+
export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"guidoRecommendationExtension", StoreState, {
|
|
38
38
|
hasFilters: (state: {
|
|
39
39
|
recommendationCampaignUrls: Record<string, string>;
|
|
40
40
|
recommendationConfigs: {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RecommendationProduct } from '@@/Types/recommendation';
|
|
2
|
+
import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY } from './templateUtils';
|
|
3
|
+
declare const blockTemplate = "\n <td\n align=\"left\"\n class=\"ins-recommendation-v3-block-v2 es-p20\"\n data-price-inline=\"0\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <BLOCK_TEXT\n class=\"es-p10t es-p10b es-p20l es-p20r\"\n align=\"center\">\n <p path=\"1\" style=\"font-size: 28px; color: #333333;\">\n <strong path=\"1,0\">{-{-TITLE-}-}</strong>\n </p>\n </BLOCK_TEXT>\n </tbody>\n </table>\n </td>\n </tr>\n \n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
|
|
4
|
+
export declare function getDefaultTemplate(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Generates a custom template with specified products and layout
|
|
7
|
+
* @param products - Array of products to display
|
|
8
|
+
* @param productsPerRow - Number of products per row
|
|
9
|
+
* @param title - Optional title for the block
|
|
10
|
+
* @param composition - Optional array defining order of card elements
|
|
11
|
+
* @returns Complete HTML template
|
|
12
|
+
*/
|
|
13
|
+
export declare function generateBlockTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
|
|
14
|
+
export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
|
|
15
|
+
export { DEFAULTS, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY, getDefaultProducts, };
|
|
16
|
+
export default blockTemplate;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RecommendationProduct } from '@@/Types/recommendation';
|
|
2
|
+
import { DEFAULTS, getDefaultProducts } from './templateUtils';
|
|
3
|
+
declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"recommendation-block\"\n esd-handler-name=\"esd-extension-RecommendationBlock\"\n class=\"ins-recommendation-v3-block-v2 es-p20 esd-recommendation-block esd-extension-block esd-container-frame\"\n data-price-inline=\"0\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
|
|
4
|
+
export declare function getMigrationTemplate(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Generates a custom migration template with specified products and layout
|
|
7
|
+
* @param products - Array of products to display
|
|
8
|
+
* @param productsPerRow - Number of products per row
|
|
9
|
+
* @param title - Optional title for the block
|
|
10
|
+
* @param composition - Optional array defining order of card elements
|
|
11
|
+
* @returns Complete HTML template
|
|
12
|
+
*/
|
|
13
|
+
export declare function generateMigrationTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
|
|
14
|
+
export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
|
|
15
|
+
export { DEFAULTS, getDefaultProducts };
|
|
16
|
+
export default migrationTemplate;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { RecommendationProduct } from '@@/Types/recommendation';
|
|
2
|
+
import { ATTR_PRODUCT_IMAGE, ATTR_PRODUCT_NAME, ATTR_PRODUCT_PRICE, ATTR_PRODUCT_OLD_PRICE, ATTR_PRODUCT_OMNIBUS_PRICE, ATTR_PRODUCT_OMNIBUS_DISCOUNT, ATTR_PRODUCT_BUTTON } from '../constants';
|
|
3
|
+
export interface ElementRenderer {
|
|
4
|
+
[ATTR_PRODUCT_IMAGE]: (product: RecommendationProduct) => string;
|
|
5
|
+
[ATTR_PRODUCT_NAME]: (product: RecommendationProduct) => string;
|
|
6
|
+
[ATTR_PRODUCT_PRICE]: (product: RecommendationProduct) => string;
|
|
7
|
+
[ATTR_PRODUCT_OLD_PRICE]: (product: RecommendationProduct) => string;
|
|
8
|
+
[ATTR_PRODUCT_OMNIBUS_PRICE]: (product: RecommendationProduct) => string;
|
|
9
|
+
[ATTR_PRODUCT_OMNIBUS_DISCOUNT]: (product: RecommendationProduct) => string;
|
|
10
|
+
[ATTR_PRODUCT_BUTTON]: (product: RecommendationProduct) => string;
|
|
11
|
+
}
|
|
12
|
+
export interface TemplateConfig {
|
|
13
|
+
spacer: string;
|
|
14
|
+
blockTemplate: string;
|
|
15
|
+
productRow: string;
|
|
16
|
+
productCardWrapper: string;
|
|
17
|
+
elementRenderer: ElementRenderer;
|
|
18
|
+
}
|
|
19
|
+
export declare const DEFAULTS: {
|
|
20
|
+
TITLE: string;
|
|
21
|
+
DESCRIPTION: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const spacer = "\n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n";
|
|
24
|
+
export declare const productRow = "\n <tr class=\"recommendation-product-row\">\n <td>\n <table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n {-{-PRODUCTS-}-}\n </table>\n </td>\n </tr>\n";
|
|
25
|
+
export declare const productCardWrapper = "\n <td width=\"{-{-COLUMN_WIDTH-}-}\" style=\"padding: 0 5px;\" valign=\"top\" height=\"100%\">\n <table\n width=\"100%\"\n height=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n class=\"product-card-wrapper\">\n <tr>\n <td\n class=\"product-attribute-cell\"\n valign=\"top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n {-{-PRODUCT_CONTENT-}-}\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
|
|
26
|
+
export declare const DEFAULT_CARD_COMPOSITION: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Default visibility settings for card composition elements
|
|
29
|
+
* Omnibus Price and Omnibus Discount are hidden by default
|
|
30
|
+
*/
|
|
31
|
+
export declare const DEFAULT_CARD_VISIBILITY: Record<string, boolean>;
|
|
32
|
+
export declare function getDefaultProducts(): RecommendationProduct[];
|
|
33
|
+
/**
|
|
34
|
+
* Core template generation logic that works with any element renderer
|
|
35
|
+
* @param products - Array of products to display
|
|
36
|
+
* @param productsPerRow - Number of products per row
|
|
37
|
+
* @param elementRenderer - Object with methods to render each product element
|
|
38
|
+
* @param composition - Optional array defining order of card elements
|
|
39
|
+
* @returns HTML string for product rows
|
|
40
|
+
*/
|
|
41
|
+
export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
|
|
42
|
+
/**
|
|
43
|
+
* Generates complete HTML template with dynamic products and layout
|
|
44
|
+
* @param blockTemplate - The base block template string
|
|
45
|
+
* @param products - Array of products to display
|
|
46
|
+
* @param productsPerRow - Number of products per row
|
|
47
|
+
* @param elementRenderer - Element renderer for generating product HTML
|
|
48
|
+
* @param title - Title for the block
|
|
49
|
+
* @param composition - Optional array defining order of card elements
|
|
50
|
+
* @returns Complete HTML template
|
|
51
|
+
*/
|
|
52
|
+
export declare function generateTemplate(blockTemplate: string, products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, title?: string, composition?: string[]): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for preserving text styling when updating innerHTML
|
|
3
|
+
*/
|
|
4
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
5
|
+
/**
|
|
6
|
+
* Preserves existing style tags when updating text content
|
|
7
|
+
*
|
|
8
|
+
* When users apply text styles (bold, italic, etc.) in Stripo, the editor wraps
|
|
9
|
+
* content in tags like <strong>, <em>, <u>, <s>. This function extracts those
|
|
10
|
+
* style tags from the original HTML and re-applies them to the new text content.
|
|
11
|
+
* @example
|
|
12
|
+
* // Original: <span class="omnibus-text-before"><strong>Lowest price: </strong></span>
|
|
13
|
+
* // After calling preserveTextStyles(element, 'Best price: ')
|
|
14
|
+
* // Result: <strong>Best price: </strong>
|
|
15
|
+
* @param element - The DOM element or ImmutableHtmlNode containing the styled text
|
|
16
|
+
* @param newText - The new text content to insert
|
|
17
|
+
* @returns The new text wrapped in the original style tags
|
|
18
|
+
*/
|
|
19
|
+
export declare function preserveTextStyles(element: ImmutableHtmlNode | Element, newText: string): string;
|
|
@@ -62,5 +62,26 @@ export declare abstract class CommonControl extends Control {
|
|
|
62
62
|
*/
|
|
63
63
|
_GuIconButton({ name, icon, className }: IconButtonProps): string;
|
|
64
64
|
_GuTwoColumns(children: string[]): string;
|
|
65
|
+
/**
|
|
66
|
+
* Creates an orderable (sortable) list control
|
|
67
|
+
* @param name - The control name for value binding
|
|
68
|
+
* @param items - Array of item keys/values
|
|
69
|
+
* @param itemLabels - Optional array of objects with key and label properties for display
|
|
70
|
+
* @returns HTML string for the orderable control
|
|
71
|
+
*/
|
|
72
|
+
_GuOrderable(name: string, items: {
|
|
73
|
+
key: string;
|
|
74
|
+
label: string;
|
|
75
|
+
content: string;
|
|
76
|
+
}[]): string;
|
|
77
|
+
_GuNestedControl(id: string, content: string): string;
|
|
78
|
+
_GuExpandable(label: string, content: string): string;
|
|
79
|
+
_GuColorPicker(name: string): string;
|
|
80
|
+
_GuFontFamily(name: string, placeholder?: string): string;
|
|
81
|
+
_GuRadioButtons(name: string, buttons: {
|
|
82
|
+
text: string;
|
|
83
|
+
value: string;
|
|
84
|
+
}[]): string;
|
|
85
|
+
_GuCheckbox(name: string, caption: string): string;
|
|
65
86
|
}
|
|
66
87
|
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reusable Control Factory Functions
|
|
3
|
+
*
|
|
4
|
+
* These factory functions can be used by any extension block to generate
|
|
5
|
+
* controls dynamically, reducing code duplication across the codebase.
|
|
6
|
+
*
|
|
7
|
+
* Note: TypeScript's type inference has limitations with dynamically generated classes.
|
|
8
|
+
* The eslint-disable comment above suppresses warnings that would otherwise require
|
|
9
|
+
* extensive type assertions throughout the file. The generated controls are type-safe
|
|
10
|
+
* at runtime and follow the exact same patterns as manually-written control classes.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Factory function to create text align controls for different block elements
|
|
14
|
+
*/
|
|
15
|
+
export declare function createTextAlignControl(controlId: string, targetBlockId: string, containerSelector: string): any;
|
|
16
|
+
/**
|
|
17
|
+
* Factory function to create text color controls for different block elements
|
|
18
|
+
*/
|
|
19
|
+
export declare function createTextColorControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
20
|
+
/**
|
|
21
|
+
* Factory function to create text size controls for different block elements
|
|
22
|
+
*/
|
|
23
|
+
export declare function createTextSizeControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
24
|
+
/**
|
|
25
|
+
* Factory function to create text style controls for different block elements
|
|
26
|
+
*/
|
|
27
|
+
export declare function createTextStyleControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
28
|
+
/**
|
|
29
|
+
* Factory function to create text font family controls for different block elements
|
|
30
|
+
*/
|
|
31
|
+
export declare function createTextFontFamilyControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
32
|
+
/**
|
|
33
|
+
* Factory function to create text background color controls for different block elements
|
|
34
|
+
*/
|
|
35
|
+
export declare function createTextBackgroundColorControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
36
|
+
/**
|
|
37
|
+
* Factory function to create paddings controls for different block elements
|
|
38
|
+
*/
|
|
39
|
+
export declare function createPaddingsControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
40
|
+
/**
|
|
41
|
+
* Factory function to create text line spacing controls for different block elements
|
|
42
|
+
*/
|
|
43
|
+
export declare function createTextLineSpacingControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
44
|
+
/**
|
|
45
|
+
* Factory function to create button align controls for different block elements
|
|
46
|
+
*/
|
|
47
|
+
export declare function createButtonAlignControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
48
|
+
/**
|
|
49
|
+
* Factory function to create button color controls for different block elements
|
|
50
|
+
*/
|
|
51
|
+
export declare function createButtonColorControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
52
|
+
/**
|
|
53
|
+
* Factory function to create button border controls for different block elements
|
|
54
|
+
*/
|
|
55
|
+
export declare function createButtonBorderControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
56
|
+
/**
|
|
57
|
+
* Factory function to create button border radius controls for different block elements
|
|
58
|
+
*/
|
|
59
|
+
export declare function createButtonBorderRadiusControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
60
|
+
/**
|
|
61
|
+
* Factory function to create button font family controls for different block elements
|
|
62
|
+
*/
|
|
63
|
+
export declare function createButtonFontFamilyControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
64
|
+
/**
|
|
65
|
+
* Factory function to create button margins controls for different block elements
|
|
66
|
+
*/
|
|
67
|
+
export declare function createButtonMarginsControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
68
|
+
/**
|
|
69
|
+
* Factory function to create button paddings controls for different block elements
|
|
70
|
+
*/
|
|
71
|
+
export declare function createButtonPaddingsControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
72
|
+
/**
|
|
73
|
+
* Factory function to create button text controls for different block elements
|
|
74
|
+
*/
|
|
75
|
+
export declare function createButtonTextControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
76
|
+
/**
|
|
77
|
+
* Factory function to create button text size controls for different block elements
|
|
78
|
+
*/
|
|
79
|
+
export declare function createButtonTextSizeControl(controlId: string, targetBlockId: string, containerSelector?: string): any;
|
|
80
|
+
/**
|
|
81
|
+
* Factory function to create button text style and font color controls for different block elements
|
|
82
|
+
*/
|
|
83
|
+
export declare function createButtonTextStyleAndFontColorControl(controlId: string, targetBlockId: string, containerSelector: string): any;
|
|
84
|
+
/**
|
|
85
|
+
* Factory function to create button fit to container controls for different block elements
|
|
86
|
+
*/
|
|
87
|
+
export declare function createButtonFitToContainerControl(controlId: string, targetBlockId: string, containerSelector: string): any;
|
|
88
|
+
/**
|
|
89
|
+
* Factory function to create image size controls for different block elements
|
|
90
|
+
*/
|
|
91
|
+
export declare function createImageSizeControl(controlId: string, targetBlockId: string, containerSelector: string): any;
|
|
92
|
+
/**
|
|
93
|
+
* Factory function to create image margins controls for different block elements
|
|
94
|
+
*/
|
|
95
|
+
export declare function createImageMarginsControl(controlId: string, targetBlockId: string, containerSelector: string): any;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DynamicContent, PositionData } from '@@/Types/generic';
|
|
2
|
+
export declare class ExternalMergeTagsLibrary {
|
|
3
|
+
selectedDynamicContent: DynamicContent | null;
|
|
4
|
+
dataSelectCallback: (data: DynamicContent) => void;
|
|
5
|
+
private closeDynamicContentHandler;
|
|
6
|
+
/**
|
|
7
|
+
* Opens the merge tags library modal
|
|
8
|
+
* @param dynamicContent - Currently selected dynamic content (if any)
|
|
9
|
+
* @param onDataSelectCallback - Callback invoked when user selects a merge tag
|
|
10
|
+
* @param position - Optional position data to place the modal
|
|
11
|
+
*/
|
|
12
|
+
openMergeTagsLibrary(dynamicContent: DynamicContent, onDataSelectCallback: (data: DynamicContent) => void, position?: PositionData): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { MergeTag } from '@@/Types/generic';
|
|
2
|
+
import { UIElementType, UIElement, UIElementTagRegistry } from '@stripoinc/ui-editor-extensions';
|
|
3
|
+
export declare class DynamicContentTagRegistry extends UIElementTagRegistry {
|
|
4
|
+
registerUiElements(uiElementsTagsMap: Record<UIElementType, string>): void;
|
|
5
|
+
}
|
|
6
|
+
export declare class DynamicContentUiElementExtension extends UIElement {
|
|
7
|
+
private mergeTagsButton;
|
|
8
|
+
private mergeTagsLibrary;
|
|
9
|
+
private clickListener;
|
|
10
|
+
private lastClickedElement;
|
|
11
|
+
private lastClickedFrame;
|
|
12
|
+
private mousedownListener;
|
|
13
|
+
getId(): string;
|
|
14
|
+
onRender(container: HTMLElement): void;
|
|
15
|
+
onDestroy(): void;
|
|
16
|
+
_onClick(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Called when Stripo detects merge tag interactions
|
|
19
|
+
* This is the key method that receives notifications about merge tag clicks
|
|
20
|
+
* @param name - Attribute name (e.g., 'mergeTag')
|
|
21
|
+
* @param value - MergeTag object with label, value, selStart, selEnd, etc.
|
|
22
|
+
*/
|
|
23
|
+
onAttributeUpdated(name: string, value: MergeTag | null | undefined): void;
|
|
24
|
+
openMergeTagLibrary(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Opens the dynamic content library for external apps
|
|
27
|
+
* Dispatches event with dynamic content data and position
|
|
28
|
+
*/
|
|
29
|
+
private _openDynamicContentLibrary;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the button's position on the screen
|
|
32
|
+
* Used to position the modal or anything else near the button
|
|
33
|
+
*/
|
|
34
|
+
private _getButtonPosition;
|
|
35
|
+
/**
|
|
36
|
+
* Sets up coordinate tracking for merge tag clicks in the iframe
|
|
37
|
+
* Workaround from Stripo intercepting click events - tracks mousedown events instead
|
|
38
|
+
*/
|
|
39
|
+
private _setupCoordinateTracking;
|
|
40
|
+
/**
|
|
41
|
+
* Gets the editor iframe element
|
|
42
|
+
*/
|
|
43
|
+
private _getEditorFrame;
|
|
44
|
+
/**
|
|
45
|
+
* Finds merge tag element in the element tree
|
|
46
|
+
*/
|
|
47
|
+
private _findMergeTagElement;
|
|
48
|
+
/**
|
|
49
|
+
* Gets the position of the last clicked element, calculated on-demand
|
|
50
|
+
* This ensures we always use the correct element's position even with rapid clicks
|
|
51
|
+
*/
|
|
52
|
+
private _getLastClickedPosition;
|
|
53
|
+
/**
|
|
54
|
+
* Calculates absolute position of element relative to page
|
|
55
|
+
*/
|
|
56
|
+
private _calculateAbsolutePosition;
|
|
57
|
+
/**
|
|
58
|
+
* Cleans up the coordinate tracking event listener
|
|
59
|
+
*/
|
|
60
|
+
private _cleanupCoordinateTracking;
|
|
61
|
+
/**
|
|
62
|
+
* Returns the HTML template for the "Add Dynamic Content" button
|
|
63
|
+
* This button is placed in the merge tags selector UI
|
|
64
|
+
*/
|
|
65
|
+
getTemplate(): string;
|
|
66
|
+
}
|
|
@@ -3,7 +3,7 @@ interface StoreState {
|
|
|
3
3
|
guidoConfig: GuidoConfig;
|
|
4
4
|
templateConfig?: TemplateConfig;
|
|
5
5
|
}
|
|
6
|
-
export declare const useConfigStore: import("pinia").StoreDefinition<"
|
|
6
|
+
export declare const useConfigStore: import("pinia").StoreDefinition<"guidoConfig", StoreState, {
|
|
7
7
|
getVariationId: (state: {
|
|
8
8
|
guidoConfig: {
|
|
9
9
|
translationsPath: string;
|
|
@@ -77,17 +77,24 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"config", S
|
|
|
77
77
|
dynamicContent?: boolean | undefined;
|
|
78
78
|
saveAsTemplate?: boolean | undefined;
|
|
79
79
|
versionHistory?: boolean | undefined;
|
|
80
|
+
testMessage?: boolean | undefined;
|
|
81
|
+
displayConditions?: boolean | undefined;
|
|
80
82
|
} | undefined;
|
|
83
|
+
blocks?: {
|
|
84
|
+
excludeDefaults?: import("@@/Types/generic").GuidoBlockType[] | undefined;
|
|
85
|
+
includeCustoms?: import("@@/Types/generic").GuidoCustomBlockType[] | undefined;
|
|
86
|
+
} | undefined;
|
|
87
|
+
backButtonLabel?: string | undefined;
|
|
81
88
|
};
|
|
82
89
|
templateConfig?: {
|
|
83
90
|
preselectedDynamicContentList?: {
|
|
84
91
|
value: string;
|
|
85
|
-
text: string;
|
|
86
92
|
fallback?: string | undefined;
|
|
87
93
|
format?: {
|
|
88
94
|
key: string;
|
|
89
95
|
value: string;
|
|
90
96
|
} | undefined;
|
|
97
|
+
text: string;
|
|
91
98
|
}[] | undefined;
|
|
92
99
|
selectedUnsubscribePages?: number[] | undefined;
|
|
93
100
|
variationId?: string | undefined;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import type { DynamicContent } from '@@/Types/generic';
|
|
2
|
-
export declare const useDynamicContentStore: import("pinia").StoreDefinition<"
|
|
2
|
+
export declare const useDynamicContentStore: import("pinia").StoreDefinition<"guidoDynamicContent", {
|
|
3
3
|
selectedDynamicContent: DynamicContent;
|
|
4
4
|
selectedDynamicContentList: DynamicContent[];
|
|
5
5
|
}, {
|
|
6
6
|
getSelectedDynamicContentList: (state: {
|
|
7
7
|
selectedDynamicContent: {
|
|
8
8
|
value: string;
|
|
9
|
-
text: string;
|
|
10
9
|
fallback?: string | undefined;
|
|
11
10
|
format?: {
|
|
12
11
|
key: string;
|
|
13
12
|
value: string;
|
|
14
13
|
} | undefined;
|
|
14
|
+
text: string;
|
|
15
15
|
};
|
|
16
16
|
selectedDynamicContentList: {
|
|
17
17
|
value: string;
|
|
18
|
-
text: string;
|
|
19
18
|
fallback?: string | undefined;
|
|
20
19
|
format?: {
|
|
21
20
|
key: string;
|
|
22
21
|
value: string;
|
|
23
22
|
} | undefined;
|
|
23
|
+
text: string;
|
|
24
24
|
}[];
|
|
25
25
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
26
26
|
selectedDynamicContent: DynamicContent;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { OnboardingCardConfig, OnboardingType, OnboardingStoreState } from '@@/Types/onboarding';
|
|
2
|
-
export declare const useOnboardingStore: import("pinia").StoreDefinition<"
|
|
2
|
+
export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoOnboarding", OnboardingStoreState, {
|
|
3
3
|
getOnboarding: (state: {
|
|
4
4
|
onboardings: {
|
|
5
5
|
newVersionPopup: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PreviewState, EmailFormat } from '@@/Types/preview';
|
|
2
|
-
export declare const usePreviewStore: import("pinia").StoreDefinition<"
|
|
2
|
+
export declare const usePreviewStore: import("pinia").StoreDefinition<"guidoPreview", PreviewState, {
|
|
3
3
|
isAMPModeEnabled: (state: {
|
|
4
4
|
emailFormat: EmailFormat;
|
|
5
5
|
ampHtml: string;
|
|
@@ -6,5 +6,5 @@ type RecommendationConfig = {
|
|
|
6
6
|
interface StoreState {
|
|
7
7
|
recommendationConfigs: RecommendationConfig[];
|
|
8
8
|
}
|
|
9
|
-
export declare const useRecommendationStore: import("pinia").StoreDefinition<"
|
|
9
|
+
export declare const useRecommendationStore: import("pinia").StoreDefinition<"guidoRecommendation", StoreState, {}, {}>;
|
|
10
10
|
export {};
|
|
@@ -17,7 +17,7 @@ interface StoreState {
|
|
|
17
17
|
message: number;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
export declare const useSaveAsTemplateStore: import("pinia").StoreDefinition<"
|
|
20
|
+
export declare const useSaveAsTemplateStore: import("pinia").StoreDefinition<"guidoSaveAsTemplate", StoreState, {
|
|
21
21
|
getTemplateName: (state: {
|
|
22
22
|
templateName: string;
|
|
23
23
|
categories: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ToasterState, ToasterOptions } from '@@/Types/toaster';
|
|
2
|
-
export declare const useToasterStore: import("pinia").StoreDefinition<"
|
|
2
|
+
export declare const useToasterStore: import("pinia").StoreDefinition<"guidoToaster", ToasterState, {
|
|
3
3
|
shouldAutoHide: (s: {
|
|
4
4
|
status: boolean;
|
|
5
5
|
type: import("@@/Types/toaster").ToasterType;
|
|
@@ -11,7 +11,7 @@ interface StoreState {
|
|
|
11
11
|
isGlobalUnsubscribeDisabled: boolean;
|
|
12
12
|
isSubscriptionPreferencesCenterDisabled: boolean;
|
|
13
13
|
}
|
|
14
|
-
export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"
|
|
14
|
+
export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guidoUnsubscribe", StoreState, {
|
|
15
15
|
getSelectedCollection: (state: {
|
|
16
16
|
templates: {
|
|
17
17
|
id: number;
|
|
@@ -2,7 +2,7 @@ import type { VersionHistoryState } from '@@/Types/version-history-api';
|
|
|
2
2
|
export interface StoreState extends VersionHistoryState {
|
|
3
3
|
editorVisualMode: 'desktop' | 'mobile';
|
|
4
4
|
}
|
|
5
|
-
export declare const useVersionHistoryStore: import("pinia").StoreDefinition<"
|
|
5
|
+
export declare const useVersionHistoryStore: import("pinia").StoreDefinition<"guidoVersionHistory", StoreState, {
|
|
6
6
|
hasPreviousPatch: (state: {
|
|
7
7
|
editorVisualMode: "desktop" | "mobile";
|
|
8
8
|
previousPatch: {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Locale List:
|
|
3
|
+
* en-US -> MM/DD/YYYY
|
|
4
|
+
* en-GB -> DD/MM/YYYY
|
|
5
|
+
* tr-TR -> DD.MM.YYYY
|
|
6
|
+
*/
|
|
7
|
+
export declare const convertToDateObject: (date: string | number | Date | null | undefined) => Date;
|
|
8
|
+
export declare const locale: () => string;
|
|
9
|
+
export declare const localTz: string;
|
|
10
|
+
export declare const timezone: () => string;
|
|
11
|
+
export declare const hour12: () => boolean;
|
|
12
|
+
export declare const dateFormat: () => string;
|
|
13
|
+
/**
|
|
14
|
+
* @example 04/22/2024
|
|
15
|
+
* @param date - The date or timestamp input
|
|
16
|
+
* @param specificLocale - Locale to use for formatting
|
|
17
|
+
* @param tz - Timezone [window.l10n.timezone]
|
|
18
|
+
* @returns Formatted date string
|
|
19
|
+
*/
|
|
20
|
+
export declare const formatShortDate: (date: string | number | Date, specificLocale?: string, tz?: string) => string;
|
|
21
|
+
export declare const formatPatchDate: (timestamp: number) => string;
|
|
22
|
+
export declare const isAfterDate: (timestamp: number) => boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DynamicContent, MergeTag } from '@@/Types/generic';
|
|
2
|
+
export declare const mergeTagToDynamicContent: (mergeTag: MergeTag) => DynamicContent;
|
|
2
3
|
export declare const dynamicContentToMergeTags: (dynamicContentList: DynamicContent[]) => MergeTag[];
|
|
3
4
|
export declare const getCsrfToken: () => string;
|
|
4
5
|
/**
|
|
@@ -32,6 +32,16 @@ ue-stripe-thumb:hover:not(.disabled),
|
|
|
32
32
|
padding: 0 16px 16px;
|
|
33
33
|
grid-row-gap: 16px;
|
|
34
34
|
}
|
|
35
|
+
|
|
36
|
+
/* TODO: will be removed after we find another way to hide stripo custom modules */
|
|
37
|
+
#moduleTab_tab1,
|
|
38
|
+
button[aria-label="Default Modules"],
|
|
39
|
+
button[aria-controls="moduleTab_tab1_content"],
|
|
40
|
+
#moduleTab_tab2,
|
|
41
|
+
button[aria-label="Pre-Built AMP"],
|
|
42
|
+
button[aria-controls="moduleTab_tab2_content"] {
|
|
43
|
+
display: none !important;
|
|
44
|
+
}
|
|
35
45
|
`;
|
|
36
46
|
export {
|
|
37
47
|
o as default
|
|
@@ -6,10 +6,6 @@ ue-main-editor-container[panel-position=SETTINGS_BLOCKS] ue-wide-panel {
|
|
|
6
6
|
right: calc(100% - calc(var(--ue-spacing-step, 5px) * 3) - 425px);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
ue-main-tabs-panel-component .fixed-panel-header {
|
|
10
|
-
display: none;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
9
|
/* Remove with this writing task DT-28355 */
|
|
14
10
|
ue-description a {
|
|
15
11
|
display: none;
|
|
@@ -18,6 +18,25 @@ const n = `.esd-x,
|
|
|
18
18
|
border-radius: 0;
|
|
19
19
|
box-shadow: none;
|
|
20
20
|
}
|
|
21
|
+
|
|
22
|
+
/* Hide block actions for product attributes */
|
|
23
|
+
.ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-actions,
|
|
24
|
+
.ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-panel {
|
|
25
|
+
display: none !important;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Apply to the table cell (td) with text-trim-enabled class */
|
|
29
|
+
.text-trim-enabled {
|
|
30
|
+
max-width: 0 !important;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.text-trim-enabled p {
|
|
34
|
+
overflow: hidden !important;
|
|
35
|
+
text-overflow: ellipsis !important;
|
|
36
|
+
white-space: nowrap !important;
|
|
37
|
+
margin: 0 !important;
|
|
38
|
+
display: block !important;
|
|
39
|
+
}
|
|
21
40
|
`;
|
|
22
41
|
export {
|
|
23
42
|
n as default
|
package/dist/stores/config.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DefaultGuidoConfig as
|
|
2
|
-
import { defineStore as
|
|
3
|
-
const
|
|
1
|
+
import { DefaultGuidoConfig as i } from "../enums/defaults.js";
|
|
2
|
+
import { defineStore as e } from "pinia";
|
|
3
|
+
const n = e("guidoConfig", {
|
|
4
4
|
state: () => ({
|
|
5
|
-
guidoConfig:
|
|
5
|
+
guidoConfig: i,
|
|
6
6
|
templateConfig: {}
|
|
7
7
|
}),
|
|
8
8
|
getters: {
|
|
@@ -13,5 +13,5 @@ const r = i("config", {
|
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
15
|
export {
|
|
16
|
-
|
|
16
|
+
n as useConfigStore
|
|
17
17
|
};
|