@useinsider/guido 2.1.0 → 2.2.0-beta.39b37ff
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 +36 -0
- package/dist/@types/config/schemas.js +71 -66
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +69 -58
- package/dist/components/organisms/base/Toaster.vue.js +4 -4
- package/dist/components/organisms/base/Toaster.vue2.js +12 -9
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
- package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
- package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
- package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +1 -1
- package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +19 -19
- package/dist/composables/useActionsApi.js +15 -13
- package/dist/composables/useBlocksConfig.js +26 -16
- package/dist/composables/useHtmlValidator.js +114 -104
- package/dist/composables/useRecommendation.js +54 -21
- package/dist/composables/useStripo.js +25 -23
- package/dist/composables/useVersionHistoryApi.js +1 -1
- package/dist/config/compiler/recommendationCompilerRules.js +45 -39
- package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
- package/dist/config/i18n/en/index.js +11 -0
- package/dist/config/i18n/en/labels.json.js +7 -0
- package/dist/config/i18n/en/toasters.json.js +56 -0
- package/dist/config/i18n/en/tooltips.json.js +82 -0
- package/dist/config/i18n/index.js +7 -0
- package/dist/config/migrator/itemsBlockMigrator.js +142 -120
- package/dist/config/migrator/recommendationMigrator.js +2 -2
- package/dist/enums/defaults.js +8 -4
- package/dist/enums/extensions/recommendationBlock.js +1 -1
- package/dist/enums/recommendation.js +16 -15
- package/dist/extensions/Blocks/Items/block.js +19 -28
- package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +137 -89
- package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
- package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
- package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
- package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
- package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
- package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
- package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
- package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
- package/dist/extensions/Blocks/Items/extension.js +8 -9
- package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
- package/dist/extensions/Blocks/Items/template.js +181 -175
- package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
- package/dist/extensions/Blocks/Recommendation/block.js +133 -9
- package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
- package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
- package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
- package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
- package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
- package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
- package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
- package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
- package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
- package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
- package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
- package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
- package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
- package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
- package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
- package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
- package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
- package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
- package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
- package/dist/extensions/Blocks/Unsubscribe/block.js +29 -29
- package/dist/extensions/Blocks/Unsubscribe/control.js +12 -9
- package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +13 -11
- package/dist/extensions/Blocks/Unsubscribe/styles.css.js +31 -1
- package/dist/extensions/Blocks/common-control.js +91 -92
- package/dist/extensions/Blocks/controlFactories.js +125 -93
- package/dist/extensions/ModulesTabIcons/extension.js +17 -0
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +317 -198
- package/dist/package.json.js +1 -1
- package/dist/services/recommendationApi.js +11 -8
- package/dist/services/stripoApi.js +20 -17
- package/dist/services/templateLibraryApi.js +16 -13
- package/dist/src/@types/config/schemas.d.ts +10 -2
- package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
- package/dist/src/composables/useConfig.d.ts +4 -0
- package/dist/src/composables/useRecommendation.d.ts +1 -0
- package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
- package/dist/src/config/i18n/en/index.d.ts +1 -0
- package/dist/src/config/i18n/index.d.ts +16 -0
- package/dist/src/enums/defaults.d.ts +4 -0
- package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
- package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
- package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
- package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
- package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
- package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -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/omnibusPrice/index.d.ts +100 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.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/price/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
- package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
- package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
- package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
- package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
- package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
- package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
- package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +1 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
- package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
- package/dist/src/stores/config.d.ts +36 -0
- package/dist/static/styles/components/notification.css.js +19 -0
- package/dist/static/styles/components/tools.css.js +6 -2
- package/dist/static/styles/components/version-history.css.js +10 -2
- package/dist/static/styles/components/wide-panel.css.js +18 -6
- package/dist/static/styles/customEditorStyle.css.js +39 -2
- package/dist/static/styles/variables.css.js +2 -0
- package/dist/static/templates/empty/index.html.js +74 -0
- package/dist/static/templates/empty/style.css.js +779 -0
- package/dist/stores/unsubscribe.js +37 -34
- package/dist/utils/pairProductVariables.js +57 -56
- package/dist/utils/templatePreparation.js +15 -14
- package/package.json +2 -2
- package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
- package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
- package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
- package/dist/extensions/Blocks/Recommendation/control.js +0 -306
- package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
- package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
- package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
- package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
- package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
- package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
|
@@ -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
|
+
}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recommendation Block Extension
|
|
3
|
+
*
|
|
4
|
+
* This extension provides a product recommendation block for email templates.
|
|
5
|
+
* Controls are organized by element type in the ./controls directory.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Build and export the Recommendation extension
|
|
9
|
+
*/
|
|
1
10
|
declare const _default: import("@stripoinc/ui-editor-extensions").Extension;
|
|
2
11
|
export default _default;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recommendation Config Service
|
|
3
|
+
*
|
|
4
|
+
* Service for managing Recommendation block configuration via Stripo's node config API.
|
|
5
|
+
* This replaces the Pinia store for persistent configuration data.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Reads/writes config to/from node using `getNodeConfig`/`setNodeConfig`
|
|
9
|
+
* - Configuration persists with the template HTML
|
|
10
|
+
* - Each block has independent configuration (no global state)
|
|
11
|
+
* - Integrates with Stripo's undo/redo via `ModificationDescription`
|
|
12
|
+
*
|
|
13
|
+
* Usage pattern similar to legacy `blockConfigurationService`:
|
|
14
|
+
* @example
|
|
15
|
+
* // Read config
|
|
16
|
+
* const config = RecommendationConfigService.getConfig(node);
|
|
17
|
+
* // Update config
|
|
18
|
+
* RecommendationConfigService.updateConfig(api, node, { strategy: 'mostPopular' }, 'Changed algorithm');
|
|
19
|
+
* @see https://plugin.stripo.email/extensions/reference/blocks/Block
|
|
20
|
+
*/
|
|
21
|
+
import type { RecommendationNodeConfig, PartialNodeConfig } from '../types/nodeConfig';
|
|
22
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
23
|
+
import { ModificationDescription } from '@stripoinc/ui-editor-extensions';
|
|
24
|
+
/**
|
|
25
|
+
* Stripo Extension API interface for document modifications
|
|
26
|
+
* Extracted to allow type-safe usage without importing full Stripo types
|
|
27
|
+
*/
|
|
28
|
+
interface DocumentModifier {
|
|
29
|
+
modifyHtml: (node: ImmutableHtmlNode) => {
|
|
30
|
+
setNodeConfig: (config: Record<string, unknown>) => DocumentModifier;
|
|
31
|
+
setAttribute: (name: string, value: string) => DocumentModifier;
|
|
32
|
+
setStyle: (prop: string, value: string) => DocumentModifier;
|
|
33
|
+
setInnerHtml: (html: string) => DocumentModifier;
|
|
34
|
+
};
|
|
35
|
+
apply: (desc: ModificationDescription) => void;
|
|
36
|
+
}
|
|
37
|
+
interface DocumentModifierApi {
|
|
38
|
+
getDocumentModifier: () => DocumentModifier;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Service for managing Recommendation block configuration
|
|
42
|
+
*
|
|
43
|
+
* All methods are static for easy usage without instantiation.
|
|
44
|
+
* The service follows the same patterns as the legacy `blockConfigurationService`.
|
|
45
|
+
*/
|
|
46
|
+
export declare class RecommendationConfigService {
|
|
47
|
+
/**
|
|
48
|
+
* Get configuration from a node, with defaults for missing values
|
|
49
|
+
*
|
|
50
|
+
* This is the primary way to read configuration from a block.
|
|
51
|
+
* Always returns a complete config object with defaults merged in.
|
|
52
|
+
* @example
|
|
53
|
+
* const config = RecommendationConfigService.getConfig(this.currentNode);
|
|
54
|
+
* console.log(config.strategy); // 'mostPopular'
|
|
55
|
+
* @param node - The immutable HTML node to read config from
|
|
56
|
+
* @returns Complete configuration with defaults for missing values
|
|
57
|
+
*/
|
|
58
|
+
static getConfig(node: ImmutableHtmlNode | null | undefined): RecommendationNodeConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Check if a node has valid configuration stored
|
|
61
|
+
*
|
|
62
|
+
* Used for migration detection - returns false for legacy templates
|
|
63
|
+
* that need their configuration migrated.
|
|
64
|
+
* @param node - The immutable HTML node to check
|
|
65
|
+
* @returns True if node has valid config with version number
|
|
66
|
+
*/
|
|
67
|
+
static hasConfig(node: ImmutableHtmlNode | null | undefined): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Get the configuration version from a node
|
|
70
|
+
* @param node - The immutable HTML node to check
|
|
71
|
+
* @returns Config version number, or 0 if no config exists
|
|
72
|
+
*/
|
|
73
|
+
static getConfigVersion(node: ImmutableHtmlNode | null | undefined): number;
|
|
74
|
+
/**
|
|
75
|
+
* Update specific configuration values
|
|
76
|
+
*
|
|
77
|
+
* Merges the updates with existing config and persists to node.
|
|
78
|
+
* This is the primary way to update configuration from controls.
|
|
79
|
+
* @example
|
|
80
|
+
* RecommendationConfigService.updateConfig(
|
|
81
|
+
* this.api,
|
|
82
|
+
* this.currentNode,
|
|
83
|
+
* { strategy: 'complementaryItems' },
|
|
84
|
+
* 'Changed recommendation algorithm'
|
|
85
|
+
* );
|
|
86
|
+
* @param api - Stripo extension API with document modifier
|
|
87
|
+
* @param node - The immutable HTML node to update
|
|
88
|
+
* @param updates - Partial config with values to update
|
|
89
|
+
* @param description - Human-readable description for undo/redo
|
|
90
|
+
* @returns The new complete configuration
|
|
91
|
+
*/
|
|
92
|
+
static updateConfig(api: DocumentModifierApi, node: ImmutableHtmlNode, updates: PartialNodeConfig, description: string): RecommendationNodeConfig;
|
|
93
|
+
/**
|
|
94
|
+
* Initialize configuration for a new block
|
|
95
|
+
*
|
|
96
|
+
* Called when a block is first created (dropped into template).
|
|
97
|
+
* Can optionally merge in partial config from migration.
|
|
98
|
+
* @example
|
|
99
|
+
* // In Block.onCreated lifecycle
|
|
100
|
+
* RecommendationConfigService.initializeConfig(this.api, node);
|
|
101
|
+
* @param api - Stripo extension API with document modifier
|
|
102
|
+
* @param node - The immutable HTML node to initialize
|
|
103
|
+
* @param partialConfig - Optional partial config to merge with defaults
|
|
104
|
+
* @returns The initialized configuration
|
|
105
|
+
*/
|
|
106
|
+
static initializeConfig(api: DocumentModifierApi, node: ImmutableHtmlNode, partialConfig?: PartialNodeConfig): RecommendationNodeConfig;
|
|
107
|
+
/**
|
|
108
|
+
* Save complete configuration to a node
|
|
109
|
+
*
|
|
110
|
+
* Low-level method - prefer `updateConfig` or `initializeConfig` in most cases.
|
|
111
|
+
* @param api - Stripo extension API with document modifier
|
|
112
|
+
* @param node - The immutable HTML node to save to
|
|
113
|
+
* @param config - Complete configuration to save
|
|
114
|
+
* @param description - Human-readable description for undo/redo
|
|
115
|
+
*/
|
|
116
|
+
static saveConfig(api: DocumentModifierApi, node: ImmutableHtmlNode, config: RecommendationNodeConfig, description: string): void;
|
|
117
|
+
/**
|
|
118
|
+
* Migrate configuration from legacy data-attributes
|
|
119
|
+
*
|
|
120
|
+
* Reads existing data-attributes and creates a proper node config.
|
|
121
|
+
* Used when loading templates created before node config was implemented.
|
|
122
|
+
* @param api - Stripo extension API with document modifier
|
|
123
|
+
* @param node - The block node to migrate
|
|
124
|
+
* @returns The migrated configuration
|
|
125
|
+
*/
|
|
126
|
+
static migrateFromDataAttributes(api: DocumentModifierApi, node: ImmutableHtmlNode): RecommendationNodeConfig;
|
|
127
|
+
/**
|
|
128
|
+
* Check if configuration needs migration
|
|
129
|
+
* @param node - The block node to check
|
|
130
|
+
* @returns True if migration is needed
|
|
131
|
+
*/
|
|
132
|
+
static needsMigration(node: ImmutableHtmlNode | null | undefined): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Clone default config to avoid mutations
|
|
135
|
+
*/
|
|
136
|
+
private static cloneDefaults;
|
|
137
|
+
/**
|
|
138
|
+
* Merge partial config with defaults
|
|
139
|
+
*
|
|
140
|
+
* Deep merges nested objects like currency, omnibus settings.
|
|
141
|
+
*/
|
|
142
|
+
private static mergeWithDefaults;
|
|
143
|
+
/**
|
|
144
|
+
* Deep merge for nested objects
|
|
145
|
+
*
|
|
146
|
+
* Recursively merges source into target, preserving existing values
|
|
147
|
+
* that aren't explicitly overwritten.
|
|
148
|
+
*/
|
|
149
|
+
private static deepMerge;
|
|
150
|
+
}
|
|
151
|
+
export {};
|