@useinsider/guido 2.1.0-beta.febc521 → 2.1.0-beta.ff20f87
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/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/config/compiler/recommendationCompilerRules.js +45 -39
- package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
- package/dist/config/migrator/itemsBlockMigrator.js +138 -117
- 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/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 +1 -0
- 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/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
package/dist/package.json.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useHttp as c } from "../composables/useHttp.js";
|
|
2
|
-
import { URLS as
|
|
3
|
-
const
|
|
2
|
+
import { URLS as m } from "../enums/extensions/recommendationBlock.js";
|
|
3
|
+
const f = () => {
|
|
4
4
|
const { get: o } = c();
|
|
5
5
|
return {
|
|
6
6
|
fetchRecommendationCreateData: async () => {
|
|
@@ -18,14 +18,17 @@ const R = () => {
|
|
|
18
18
|
throw console.error("fetchRecommendationFilters error:", e), e;
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
|
-
fetchRecommendationProducts: async (e,
|
|
21
|
+
fetchRecommendationProducts: async (e, a) => {
|
|
22
|
+
var n;
|
|
22
23
|
try {
|
|
23
|
-
const t = decodeURIComponent(new URLSearchParams(Object.entries(
|
|
24
|
+
const t = decodeURIComponent(new URLSearchParams(Object.entries(a)).toString());
|
|
24
25
|
console.debug("🏁 Recommendation API Query:", t);
|
|
25
|
-
const
|
|
26
|
-
|
|
26
|
+
const { get: s } = c({
|
|
27
|
+
headers: {}
|
|
28
|
+
}), r = await s(
|
|
29
|
+
`${m.RECOMMENDATION_API_URL}/v2/${e}?${t}`
|
|
27
30
|
);
|
|
28
|
-
return (r == null ? void 0 : r.data) ?? [];
|
|
31
|
+
return ((n = r == null ? void 0 : r.data) == null ? void 0 : n.data) ?? [];
|
|
29
32
|
} catch (t) {
|
|
30
33
|
throw console.error("fetchRecommendationProducts error:", t), t;
|
|
31
34
|
}
|
|
@@ -33,5 +36,5 @@ const R = () => {
|
|
|
33
36
|
};
|
|
34
37
|
};
|
|
35
38
|
export {
|
|
36
|
-
|
|
39
|
+
f as useRecommendationApi
|
|
37
40
|
};
|
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import { useHttp as
|
|
2
|
-
import { useToaster as
|
|
3
|
-
import { MAX_DEFAULT_TEMPLATE_ID as
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { useHttp as l } from "../composables/useHttp.js";
|
|
2
|
+
import { useToaster as u } from "../composables/useToaster.js";
|
|
3
|
+
import { MAX_DEFAULT_TEMPLATE_ID as d } from "../enums/defaults.js";
|
|
4
|
+
import f from "../static/templates/empty/index.html.js";
|
|
5
|
+
import g from "../static/templates/empty/style.css.js";
|
|
6
|
+
const D = () => {
|
|
7
|
+
const { get: o } = l(), { handleError: a } = u();
|
|
6
8
|
return {
|
|
7
9
|
getToken: async () => {
|
|
8
10
|
try {
|
|
9
|
-
const t = Number(localStorage.getItem("ins-guido-test-instance")), { data: e } = await
|
|
11
|
+
const t = Number(localStorage.getItem("ins-guido-test-instance")), { data: e } = await o(`/stripo/get-user-token?test=${t}`);
|
|
10
12
|
return e.body.token;
|
|
11
13
|
} catch (t) {
|
|
12
|
-
return
|
|
14
|
+
return a(t, "Failed to fetch token"), "";
|
|
13
15
|
}
|
|
14
16
|
},
|
|
15
17
|
getCustomFonts: async () => {
|
|
16
18
|
try {
|
|
17
|
-
const { data: t = [] } = await
|
|
19
|
+
const { data: t = [] } = await o("/stripo/get-partner-custom-fonts");
|
|
18
20
|
return t.map((e) => ({
|
|
19
21
|
...e,
|
|
20
22
|
active: !0
|
|
21
23
|
}));
|
|
22
24
|
} catch (t) {
|
|
23
|
-
return
|
|
25
|
+
return a(t, "Failed to fetch custom fonts"), [];
|
|
24
26
|
}
|
|
25
27
|
},
|
|
26
28
|
getDefaultTemplate: async () => {
|
|
27
29
|
const t = {
|
|
28
|
-
html:
|
|
29
|
-
css:
|
|
30
|
+
html: f,
|
|
31
|
+
css: g
|
|
30
32
|
};
|
|
31
33
|
try {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
const e = new URLSearchParams(window.location.search), c = e.get("default-template"), p = e.get("master"), s = c ? parseInt(c) : 0, m = s >= 1 && s <= d ? s : 0;
|
|
35
|
+
if (!m && !p)
|
|
36
|
+
return t;
|
|
37
|
+
const i = `/stripo/default-template/${m}`, { data: n } = await o(i), r = typeof n == "string" ? JSON.parse(n) : n;
|
|
38
|
+
return !r || typeof r != "object" || !("html" in r) || !("css" in r) ? t : r;
|
|
36
39
|
} catch (e) {
|
|
37
|
-
return
|
|
40
|
+
return a(e, "Failed to fetch default template"), t;
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
};
|
|
41
44
|
};
|
|
42
45
|
export {
|
|
43
|
-
|
|
46
|
+
D as useStripoApi
|
|
44
47
|
};
|
|
@@ -3,29 +3,30 @@ import { useHttp as f } from "../composables/useHttp.js";
|
|
|
3
3
|
import { useToaster as w } from "../composables/useToaster.js";
|
|
4
4
|
import { useTranslations as b } from "../composables/useTranslations.js";
|
|
5
5
|
import { EditorType as h } from "../enums/defaults.js";
|
|
6
|
-
import {
|
|
6
|
+
import { useRecommendationExtensionStore as C } from "../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
7
|
+
import { useSaveAsTemplateStore as v } from "../stores/save-as-template.js";
|
|
7
8
|
import { base64EncodeWithSpecialChars as a } from "../utils/base64.js";
|
|
8
|
-
import { useTemplatePreparation as
|
|
9
|
-
const
|
|
10
|
-
const { get:
|
|
9
|
+
import { useTemplatePreparation as S } from "../utils/templatePreparation.js";
|
|
10
|
+
const R = () => {
|
|
11
|
+
const { get: n, post: c } = f(), { handleError: o, showToaster: i } = w(), { config: l } = T(), p = b();
|
|
11
12
|
return {
|
|
12
13
|
getCategories: async () => {
|
|
13
14
|
try {
|
|
14
|
-
const { data: e = [] } = await
|
|
15
|
+
const { data: e = [] } = await n("/newsletter/template-library/get-template-categories");
|
|
15
16
|
return e;
|
|
16
17
|
} catch (e) {
|
|
17
18
|
return o(e, "Failed to fetch template categories"), [];
|
|
18
19
|
}
|
|
19
20
|
},
|
|
20
21
|
checkTemplateNameAvailability: async (e) => {
|
|
21
|
-
const { data: { status: t = !1 } } = await
|
|
22
|
+
const { data: { status: t = !1 } } = await n(
|
|
22
23
|
`/newsletter/template-library/template-name-exists?name=${e}`
|
|
23
24
|
);
|
|
24
25
|
return !t;
|
|
25
26
|
},
|
|
26
27
|
createCategory: async (e) => {
|
|
27
28
|
try {
|
|
28
|
-
const { data: { id: t } } = await
|
|
29
|
+
const { data: { id: t } } = await c(
|
|
29
30
|
"/newsletter/template-library/create-category",
|
|
30
31
|
{ name: e }
|
|
31
32
|
);
|
|
@@ -37,7 +38,7 @@ const L = () => {
|
|
|
37
38
|
createTemplate: async () => {
|
|
38
39
|
var e, t, g, y;
|
|
39
40
|
try {
|
|
40
|
-
const { prepareTemplateDetails:
|
|
41
|
+
const { prepareTemplateDetails: m } = S(), r = v(), s = await m(), u = {
|
|
41
42
|
name: r.getTemplateName,
|
|
42
43
|
categories: r.getSelectedCategoryIds,
|
|
43
44
|
productId: ((t = (e = l.value) == null ? void 0 : e.partner) == null ? void 0 : t.productType) || 0,
|
|
@@ -47,7 +48,9 @@ const L = () => {
|
|
|
47
48
|
css: a(s.css),
|
|
48
49
|
unsubscriptionPreferencePageStatus: !1,
|
|
49
50
|
unsubscriptionPreferencePages: [],
|
|
50
|
-
recommendationCampaignUrls: a(
|
|
51
|
+
recommendationCampaignUrls: a(
|
|
52
|
+
C().recommendationCampaignUrls
|
|
53
|
+
),
|
|
51
54
|
recommendationConfigs: a({}),
|
|
52
55
|
isGuido: !0,
|
|
53
56
|
stripoConfig: a({
|
|
@@ -55,7 +58,7 @@ const L = () => {
|
|
|
55
58
|
html: s.rawHtml,
|
|
56
59
|
css: s.css
|
|
57
60
|
})
|
|
58
|
-
}, { data: { type: d } } = await
|
|
61
|
+
}, { data: { type: d } } = await c(
|
|
59
62
|
"/newsletter/template-library/create-template",
|
|
60
63
|
u
|
|
61
64
|
);
|
|
@@ -76,12 +79,12 @@ const L = () => {
|
|
|
76
79
|
),
|
|
77
80
|
type: "success"
|
|
78
81
|
});
|
|
79
|
-
} catch (
|
|
80
|
-
o(
|
|
82
|
+
} catch (m) {
|
|
83
|
+
o(m, "Failed to create template");
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
86
|
};
|
|
84
87
|
};
|
|
85
88
|
export {
|
|
86
|
-
|
|
89
|
+
R as useTemplateLibraryApi
|
|
87
90
|
};
|
|
@@ -116,7 +116,7 @@ export declare const EditorSchema: v.ObjectSchema<{
|
|
|
116
116
|
/** Locale for the editor UI */
|
|
117
117
|
readonly locale: v.OptionalSchema<v.StringSchema<undefined>, "en">;
|
|
118
118
|
/** Path to translations object */
|
|
119
|
-
readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans.
|
|
119
|
+
readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans[Object.keys(window.trans)[0]]">;
|
|
120
120
|
/** Migration date for template compatibility */
|
|
121
121
|
readonly migrationDate: v.OptionalSchema<v.NumberSchema<undefined>, 1759696858>;
|
|
122
122
|
/** Email header settings */
|
|
@@ -129,6 +129,10 @@ export declare const EditorSchema: v.ObjectSchema<{
|
|
|
129
129
|
readonly senderName: "";
|
|
130
130
|
readonly subject: "";
|
|
131
131
|
}>;
|
|
132
|
+
/** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
|
|
133
|
+
readonly savedModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "savedModules">;
|
|
134
|
+
/** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
|
|
135
|
+
readonly defaultModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "defaultModules">;
|
|
132
136
|
}, undefined>;
|
|
133
137
|
/**
|
|
134
138
|
* UI configuration - visual elements and layout
|
|
@@ -428,7 +432,7 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
|
|
|
428
432
|
/** Locale for the editor UI */
|
|
429
433
|
readonly locale: v.OptionalSchema<v.StringSchema<undefined>, "en">;
|
|
430
434
|
/** Path to translations object */
|
|
431
|
-
readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans.
|
|
435
|
+
readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans[Object.keys(window.trans)[0]]">;
|
|
432
436
|
/** Migration date for template compatibility */
|
|
433
437
|
readonly migrationDate: v.OptionalSchema<v.NumberSchema<undefined>, 1759696858>;
|
|
434
438
|
/** Email header settings */
|
|
@@ -441,6 +445,10 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
|
|
|
441
445
|
readonly senderName: "";
|
|
442
446
|
readonly subject: "";
|
|
443
447
|
}>;
|
|
448
|
+
/** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
|
|
449
|
+
readonly savedModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "savedModules">;
|
|
450
|
+
/** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
|
|
451
|
+
readonly defaultModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "defaultModules">;
|
|
444
452
|
}, undefined>, {}>;
|
|
445
453
|
/** UI configuration */
|
|
446
454
|
readonly ui: v.OptionalSchema<v.ObjectSchema<{
|
|
@@ -33,8 +33,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_WithDefaults<
|
|
|
33
33
|
descriptionStatus: boolean;
|
|
34
34
|
descriptionText: string;
|
|
35
35
|
}>>>, {
|
|
36
|
-
className: string;
|
|
37
36
|
size: "small" | "medium" | "large";
|
|
37
|
+
className: string;
|
|
38
38
|
closeOnOutsideClick: boolean;
|
|
39
39
|
descriptionStatus: boolean;
|
|
40
40
|
descriptionText: string;
|
|
@@ -41,6 +41,8 @@ export declare const useConfig: () => {
|
|
|
41
41
|
senderName: string;
|
|
42
42
|
subject: string;
|
|
43
43
|
};
|
|
44
|
+
savedModulesFolderName: string;
|
|
45
|
+
defaultModulesFolderName: string;
|
|
44
46
|
};
|
|
45
47
|
ui: {
|
|
46
48
|
showHeader: boolean;
|
|
@@ -130,6 +132,8 @@ export declare const useConfig: () => {
|
|
|
130
132
|
senderName: string;
|
|
131
133
|
subject: string;
|
|
132
134
|
};
|
|
135
|
+
savedModulesFolderName: string;
|
|
136
|
+
defaultModulesFolderName: string;
|
|
133
137
|
} | null>;
|
|
134
138
|
ui: import("vue").ComputedRef<{
|
|
135
139
|
showHeader: boolean;
|
|
@@ -15,5 +15,6 @@ interface CampaignData extends CardWidthParams {
|
|
|
15
15
|
export declare const useRecommendation: () => {
|
|
16
16
|
calculateCardWidth: ({ mobileLeftPadding, mobileRightPadding, cardsInRow, unresponsive, }: CardWidthParams) => number;
|
|
17
17
|
getRecommendationCampaignData: (id: string) => CampaignData;
|
|
18
|
+
buildCampaignUrl: (campaignId: string) => string;
|
|
18
19
|
};
|
|
19
20
|
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats a price template variable with the correct currency alignment.
|
|
3
|
+
* @param campaignId - The recommendation block campaign ID
|
|
4
|
+
* @param productIndex - Zero-based product index
|
|
5
|
+
* @param attribute - Price attribute name (e.g., 'price', 'original_price')
|
|
6
|
+
* @param alignment - Currency alignment from block config: 'before' or 'after'
|
|
7
|
+
* @returns Formatted price string with currency variable in correct position
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatPriceVariable(campaignId: string, productIndex: number, attribute: string, alignment: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Transforms recommendation block HTML by replacing product data with
|
|
12
|
+
* template variables.
|
|
13
|
+
* Preserves the full document structure (DOCTYPE, html, head, body).
|
|
14
|
+
* @param html - The raw template HTML
|
|
15
|
+
* @returns HTML with template variables replacing product data
|
|
16
|
+
*/
|
|
17
|
+
export declare function prepareRecommendationBlocks(html: string): string;
|
|
@@ -9,3 +9,7 @@ export declare const TemplateTypes: {
|
|
|
9
9
|
export declare const EditorType: number;
|
|
10
10
|
export declare const MAX_DEFAULT_TEMPLATE_ID = 13;
|
|
11
11
|
export declare const ProductIds: Record<string, number>;
|
|
12
|
+
export declare const ModuleFolderDefaults: {
|
|
13
|
+
readonly SAVED_MODULES: "savedModules";
|
|
14
|
+
readonly DEFAULT_MODULES: "defaultModules";
|
|
15
|
+
};
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.BUTTON_LINK;
|
|
5
5
|
export declare class ButtonLinkControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
@@ -2,7 +2,6 @@ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
|
2
2
|
import { CommonControl } from '../../common-control';
|
|
3
3
|
export declare const COMPOSITION_CONTROL_BLOCK_ID = "ui-elements-items-card-composition-block";
|
|
4
4
|
export declare class ItemsBlockCardCompositionControl extends CommonControl {
|
|
5
|
-
private store;
|
|
6
5
|
private visibilityState;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
@@ -19,10 +18,11 @@ export declare class ItemsBlockCardCompositionControl extends CommonControl {
|
|
|
19
18
|
* If itemsType is not BROWSED_ITEMS, show quantity
|
|
20
19
|
* If itemsType is BROWSED_ITEMS, hide quantity
|
|
21
20
|
* and mark it as '0'
|
|
21
|
+
* @param syncOnly - If true, only sync local state and UI without modifying the document
|
|
22
22
|
*/
|
|
23
|
-
_handleBrowsedItemsQuantity(): void;
|
|
24
|
-
_applyVisibilityStyles(): void;
|
|
25
|
-
_updateVisibilityAttribute(elementName: string, isVisible: boolean): void;
|
|
23
|
+
_handleBrowsedItemsQuantity(syncOnly?: boolean): void;
|
|
24
|
+
_applyVisibilityStyles(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
25
|
+
_updateVisibilityAttribute(elementName: string, isVisible: boolean, modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
26
26
|
_listenToFormUpdates(): void;
|
|
27
27
|
_onProductImageChange(value: boolean): void;
|
|
28
28
|
_onProductNameChange(value: boolean): void;
|
|
@@ -37,6 +37,6 @@ export declare class ItemsBlockCardCompositionControl extends CommonControl {
|
|
|
37
37
|
* - When price is hidden, original price cell expands to 100%
|
|
38
38
|
* - When both are visible, they share 50% each
|
|
39
39
|
*/
|
|
40
|
-
_updatePriceCellWidthsForVerticalLayout(): void;
|
|
40
|
+
_updatePriceCellWidthsForVerticalLayout(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
41
41
|
_onProductButtonChange(value: boolean): void;
|
|
42
42
|
}
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.IMAGE_LINK;
|
|
5
5
|
export declare class ImageLinkControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.NAME_TRIMMING;
|
|
5
5
|
export declare class NameTrimmingControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_CURRENCY_LOCATION;
|
|
5
5
|
export declare class PriceCurrencyLocationControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_CURRENCY_SYMBOL;
|
|
5
5
|
export declare class PriceCurrencySymbolControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
private originalPriceContents;
|
|
8
7
|
getId(): string;
|
|
9
8
|
getTemplate(): string;
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_FORMATTED_PRICE;
|
|
5
5
|
export declare class PriceFormattedPriceControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_HIDE_DISCOUNT;
|
|
5
5
|
export declare class PriceHideDiscountControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_ORIENTATION;
|
|
5
5
|
export declare class PriceOrientationControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
@@ -3,15 +3,10 @@ import { CommonControl } from '../../../common-control';
|
|
|
3
3
|
import { ItemsBlockControlId } from '../../enums/controlEnums';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_SINGLE_PRICE;
|
|
5
5
|
export declare class PriceSinglePriceControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
10
9
|
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
11
|
-
/**
|
|
12
|
-
* Syncs single price state from nodeConfig.
|
|
13
|
-
*/
|
|
14
|
-
private _syncSinglePriceFromNodeConfig;
|
|
15
10
|
_onSinglePriceChange(value: boolean): void;
|
|
16
11
|
private _updatePriceBlock;
|
|
17
12
|
_getSinglePrice(): string;
|
|
@@ -3,12 +3,10 @@ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
|
3
3
|
import { CommonControl } from '../../common-control';
|
|
4
4
|
export declare const CONTROL_BLOCK_ID = "ui-elements-items-block";
|
|
5
5
|
export declare class ItemsBlockControl extends CommonControl {
|
|
6
|
-
private store;
|
|
7
6
|
getId(): string;
|
|
8
7
|
getTemplate(): string;
|
|
9
8
|
onRender(): void;
|
|
10
9
|
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
11
|
-
onDestroy(): void;
|
|
12
10
|
_getItemsType(): string;
|
|
13
11
|
_getOrientation(): string;
|
|
14
12
|
_getItemInCart(): string;
|
|
@@ -18,7 +16,7 @@ export declare class ItemsBlockControl extends CommonControl {
|
|
|
18
16
|
_initializeSelectItems(): void;
|
|
19
17
|
_listenToFormUpdates(): void;
|
|
20
18
|
_renderTemplate(): void;
|
|
21
|
-
_getTemplateData(): {
|
|
19
|
+
_getTemplateData(itemsTypeOverride?: ProductType, itemIdOverride?: string): {
|
|
22
20
|
imageSrc: string;
|
|
23
21
|
name: string;
|
|
24
22
|
price: string;
|
|
@@ -26,15 +24,15 @@ export declare class ItemsBlockControl extends CommonControl {
|
|
|
26
24
|
quantity: string;
|
|
27
25
|
button: string;
|
|
28
26
|
};
|
|
29
|
-
_updateImageSrc(imageSrc: string): void;
|
|
30
|
-
_updateName(name: string): void;
|
|
31
|
-
_updatePrice(price: string): void;
|
|
32
|
-
_updateOriginalPrice(originalPrice: string): void;
|
|
33
|
-
_updateQuantity(quantity: string): void;
|
|
34
|
-
_reOrderTemplate(): void;
|
|
35
|
-
_updateDataTypeAttributes(itemsType: ProductType): void;
|
|
36
|
-
_updateDataNumberAttributes(itemId: string): void;
|
|
37
|
-
_reFillTemplate(): void;
|
|
27
|
+
_updateImageSrc(imageSrc: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
28
|
+
_updateName(name: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
29
|
+
_updatePrice(price: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
30
|
+
_updateOriginalPrice(originalPrice: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
31
|
+
_updateQuantity(quantity: string, itemsTypeOverride: ProductType | undefined, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
32
|
+
_reOrderTemplate(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
33
|
+
_updateDataTypeAttributes(itemsType: ProductType, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
34
|
+
_updateDataNumberAttributes(itemId: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
|
|
35
|
+
_reFillTemplate(itemsType?: ProductType): void;
|
|
38
36
|
_recalculateTrimming(): void;
|
|
39
37
|
private _getParagraphFromBlock;
|
|
40
38
|
private _escapeRegex;
|
|
@@ -66,8 +66,9 @@ export declare function getItemsBlockConfig(currentNode: ImmutableHtmlNode | und
|
|
|
66
66
|
* @param currentNode - The current node from the control
|
|
67
67
|
* @param api - The API object (ControlApi or BlockApi)
|
|
68
68
|
* @param config - The configuration to set (partial update supported)
|
|
69
|
+
* @param modifier - Optional document modifier for batching updates
|
|
69
70
|
*/
|
|
70
|
-
export declare function setItemsBlockConfig(currentNode: ImmutableHtmlNode | undefined, api: ControlApi | BlockApi, config: Partial<ItemsBlockConfig>): void;
|
|
71
|
+
export declare function setItemsBlockConfig(currentNode: ImmutableHtmlNode | undefined, api: ControlApi | BlockApi, config: Partial<ItemsBlockConfig>, modifier?: ReturnType<typeof api.getDocumentModifier>): void;
|
|
71
72
|
/**
|
|
72
73
|
* Gets the block instance ID from the node config.
|
|
73
74
|
* @param currentNode - The current node from the control
|
|
@@ -1,11 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recommendation Block
|
|
3
|
+
*
|
|
4
|
+
* Main block class for the Recommendation extension.
|
|
5
|
+
* Handles block lifecycle including configuration initialization and migration.
|
|
6
|
+
* Supports multiple block instances with unique recommendation-id attributes.
|
|
7
|
+
*/
|
|
8
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
1
9
|
import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
|
|
2
10
|
export declare const BLOCK_ID = "recommendation-block";
|
|
3
11
|
export declare class RecommendationBlock extends Block {
|
|
12
|
+
/**
|
|
13
|
+
* Stores the ID generated in getTemplate() so onCreated() can reuse it.
|
|
14
|
+
* This avoids generating a new (different) ID in onCreated().
|
|
15
|
+
*/
|
|
16
|
+
private _pendingBlockId;
|
|
4
17
|
constructor();
|
|
5
18
|
getId(): string;
|
|
6
19
|
getIcon(): string;
|
|
7
20
|
getBlockCompositionType(): BlockCompositionType;
|
|
8
21
|
getName(): string;
|
|
9
22
|
getDescription(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the template HTML for a new recommendation block.
|
|
25
|
+
* Generates a unique recommendation ID and embeds the instance class
|
|
26
|
+
* (ins-recommendation-v3-block-{id}) directly in the template HTML.
|
|
27
|
+
* This is necessary because Stripo's Angular rendering manages the class
|
|
28
|
+
* attribute and overwrites dynamically added classes via setAttribute.
|
|
29
|
+
*/
|
|
10
30
|
getTemplate(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Called when a new block is dropped into the template
|
|
33
|
+
*
|
|
34
|
+
* Uses the ID from getTemplate() (which already embedded the instance class)
|
|
35
|
+
* and assigns the recommendation-id attribute + initializes configuration.
|
|
36
|
+
* @param node - The newly created block node
|
|
37
|
+
*/
|
|
38
|
+
onCreated(node: ImmutableHtmlNode): void;
|
|
39
|
+
/**
|
|
40
|
+
* Called when the document changes or template is loaded
|
|
41
|
+
*
|
|
42
|
+
* Handles migration from legacy templates that don't have node config
|
|
43
|
+
* and assigns recommendation-id to legacy blocks that lack one.
|
|
44
|
+
* @param node - The block node that may need migration
|
|
45
|
+
*/
|
|
46
|
+
onDocumentChanged(node: ImmutableHtmlNode): void;
|
|
47
|
+
/**
|
|
48
|
+
* Called when a block is deleted from the template
|
|
49
|
+
*
|
|
50
|
+
* Cleans up the per-block state from the Pinia store.
|
|
51
|
+
* @param node - The block node being deleted
|
|
52
|
+
*/
|
|
53
|
+
onDelete(node: ImmutableHtmlNode): void;
|
|
54
|
+
/**
|
|
55
|
+
* Generates the next unique recommendation ID by scanning all existing blocks
|
|
56
|
+
* in the document and finding the maximum existing ID + 1.
|
|
57
|
+
*/
|
|
58
|
+
private _generateNextId;
|
|
59
|
+
/**
|
|
60
|
+
* Assigns a recommendation-id attribute to the block element.
|
|
61
|
+
* The instance class (ins-recommendation-v3-block-{id}) is embedded in the template
|
|
62
|
+
* HTML by getTemplate(), since Stripo's Angular rendering overwrites dynamically
|
|
63
|
+
* added classes via setAttribute.
|
|
64
|
+
*/
|
|
65
|
+
private _assignRecommendationId;
|
|
66
|
+
/**
|
|
67
|
+
* Gets the recommendation-id from a block node
|
|
68
|
+
*/
|
|
69
|
+
private _getRecommendationId;
|
|
70
|
+
/**
|
|
71
|
+
* Gets the block element (the element with BLOCK_CLASS)
|
|
72
|
+
*/
|
|
73
|
+
private _getBlockElement;
|
|
74
|
+
/**
|
|
75
|
+
* Migrate configuration from legacy format
|
|
76
|
+
*/
|
|
77
|
+
private _migrateFromLegacy;
|
|
11
78
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block IDs used in the Recommendation Extension
|
|
3
|
+
* These IDs are used in the esd-extension-block-id attribute to identify specific blocks
|
|
4
|
+
*/
|
|
5
|
+
export declare enum RecommendationBlockId {
|
|
6
|
+
BUTTON = "recommendation-block-button",
|
|
7
|
+
NAME = "recommendation-block-name",
|
|
8
|
+
PRICE = "recommendation-block-price",
|
|
9
|
+
OLD_PRICE = "recommendation-block-old-price",
|
|
10
|
+
OMNIBUS_PRICE = "recommendation-block-omnibus-price",
|
|
11
|
+
OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount",
|
|
12
|
+
IMAGE = "recommendation-block-image"
|
|
13
|
+
}
|
package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts}
RENAMED
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Block IDs used in the Recommendation Extension
|
|
3
|
-
* These IDs are used in the esd-extension-block-id attribute to identify specific blocks
|
|
4
|
-
*/
|
|
5
|
-
export declare enum RecommendationBlockId {
|
|
6
|
-
BUTTON = "recommendation-block-button",
|
|
7
|
-
NAME = "recommendation-block-name",
|
|
8
|
-
PRICE = "recommendation-block-price",
|
|
9
|
-
OLD_PRICE = "recommendation-block-old-price",
|
|
10
|
-
IMAGE = "recommendation-block-image"
|
|
11
|
-
}
|
|
12
1
|
/**
|
|
13
2
|
* Control IDs used in the Recommendation Extension
|
|
14
3
|
* These IDs are returned by the getId() method of each control
|
|
@@ -32,6 +21,7 @@ export declare enum RecommendationControlId {
|
|
|
32
21
|
NAME_PADDINGS = "recommendation-block-name-paddings-control",
|
|
33
22
|
NAME_SIZE = "recommendation-block-name-size-control",
|
|
34
23
|
NAME_STYLE = "recommendation-block-name-style-control",
|
|
24
|
+
NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control",
|
|
35
25
|
PRICE_ALIGN = "recommendation-block-price-align-control",
|
|
36
26
|
PRICE_BACKGROUND = "recommendation-block-price-background-control",
|
|
37
27
|
PRICE_COLOR = "recommendation-block-price-color-control",
|
|
@@ -46,6 +36,24 @@ export declare enum RecommendationControlId {
|
|
|
46
36
|
OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control",
|
|
47
37
|
OLD_PRICE_SIZE = "recommendation-block-old-price-size-control",
|
|
48
38
|
OLD_PRICE_STYLE = "recommendation-block-old-price-style-control",
|
|
39
|
+
OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control",
|
|
40
|
+
OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control",
|
|
41
|
+
OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control",
|
|
42
|
+
OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control",
|
|
43
|
+
OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control",
|
|
44
|
+
OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control",
|
|
45
|
+
OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control",
|
|
46
|
+
OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control",
|
|
47
|
+
OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control",
|
|
48
|
+
OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control",
|
|
49
|
+
OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control",
|
|
50
|
+
OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control",
|
|
51
|
+
OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control",
|
|
52
|
+
OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control",
|
|
53
|
+
OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control",
|
|
54
|
+
OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control",
|
|
55
|
+
OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control",
|
|
56
|
+
OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control",
|
|
49
57
|
IMAGE_SIZE = "recommendation-block-image-size-control",
|
|
50
58
|
IMAGE_MARGINS = "recommendation-block-image-margins-control"
|
|
51
59
|
}
|