@useinsider/guido 2.1.0-beta.febc521 → 2.1.0-beta.ff9b498
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 +39 -1
- 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/header/HeaderWrapper.vue.js +9 -9
- package/dist/composables/useActionsApi.js +15 -13
- package/dist/composables/useBlocksConfig.js +26 -16
- package/dist/composables/useSave.js +16 -12
- package/dist/composables/useStripo.js +58 -54
- package/dist/composables/useStripoEventHandler.js +27 -12
- package/dist/composables/useSyncModuleExtractor.js +33 -0
- package/dist/config/migrator/itemsBlockMigrator.js +138 -117
- package/dist/enums/defaults.js +8 -4
- package/dist/enums/unsubscribe.js +25 -21
- 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/cardCompositionControl.js +153 -69
- package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
- package/dist/extensions/Blocks/Recommendation/control.js +91 -61
- package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
- package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -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/spacingControl.js +188 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
- package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
- package/dist/extensions/Blocks/common-control.js +91 -92
- 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 +158 -95
- package/dist/package.json.js +1 -1
- package/dist/services/stripoApi.js +50 -14
- package/dist/src/@types/config/schemas.d.ts +10 -2
- package/dist/src/@types/events.d.ts +34 -2
- package/dist/src/composables/useConfig.d.ts +4 -0
- package/dist/src/composables/useSyncModuleExtractor.d.ts +4 -0
- package/dist/src/enums/defaults.d.ts +4 -0
- package/dist/src/enums/unsubscribe.d.ts +3 -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/cardCompositionControl.d.ts +50 -3
- package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
- package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -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/spacingControl.d.ts +60 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -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/mock/api/settings.d.ts +2 -0
- package/dist/src/services/stripoApi.d.ts +5 -0
- package/dist/src/stores/config.d.ts +36 -0
- package/dist/src/stores/editor.d.ts +23 -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 +13 -0
- package/dist/stores/editor.js +2 -1
- package/package.json +2 -2
- package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
- 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/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
- 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
|
@@ -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<{
|
|
@@ -1,6 +1,38 @@
|
|
|
1
|
-
export type StripoEventType = 'save' | 'export' | 'close' | 'autosave' | 'publish' | 'export:requested' | 'export:ready';
|
|
1
|
+
export type StripoEventType = 'save' | 'export' | 'close' | 'autosave' | 'publish' | 'export:requested' | 'export:ready' | 'module_updated' | 'module_dropped';
|
|
2
|
+
export interface ModuleUpdatedParams {
|
|
3
|
+
target: string;
|
|
4
|
+
blockType: string;
|
|
5
|
+
moduleId: number;
|
|
6
|
+
moduleCategory: string | null;
|
|
7
|
+
syncModule: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ModuleDroppedParams {
|
|
10
|
+
target: string;
|
|
11
|
+
blockType: string;
|
|
12
|
+
moduleId: number;
|
|
13
|
+
syncModule: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SyncModuleUnsubscribePayload {
|
|
16
|
+
stripoModuleId: string;
|
|
17
|
+
unsubscriptionPreferencePages: number[];
|
|
18
|
+
type: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SyncModuleResponse {
|
|
21
|
+
id: number;
|
|
22
|
+
stripoId: number;
|
|
23
|
+
unsubscriptionPreferencePages: UnsubscriptionPreferencePage[];
|
|
24
|
+
}
|
|
25
|
+
export interface UnsubscriptionPreferencePage {
|
|
26
|
+
id: number;
|
|
27
|
+
name: string;
|
|
28
|
+
type: number;
|
|
29
|
+
status: number;
|
|
30
|
+
isVisible: number;
|
|
31
|
+
thumbnail: string;
|
|
32
|
+
createdAt: string;
|
|
33
|
+
}
|
|
2
34
|
export interface EventHandler {
|
|
3
|
-
(params: Record<string,
|
|
35
|
+
(params: Record<string, unknown>): void | Promise<void>;
|
|
4
36
|
}
|
|
5
37
|
export interface EventHandlers {
|
|
6
38
|
[eventType: string]: EventHandler;
|
|
@@ -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;
|
|
@@ -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
|
+
};
|
|
@@ -25,6 +25,9 @@ export declare const PAGE_TYPES: {
|
|
|
25
25
|
SUBSCRIPTION_PREFERENCE_CONFIRMATION: number;
|
|
26
26
|
RESUBSCRIBE: number;
|
|
27
27
|
};
|
|
28
|
+
export declare const UNSUBSCRIBE_SYNC_MODULE_TYPES: {
|
|
29
|
+
[x: number]: string;
|
|
30
|
+
};
|
|
28
31
|
export declare const TYPE_COLLECTIONS: {
|
|
29
32
|
[x: number]: number[];
|
|
30
33
|
};
|
|
@@ -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
|
|
@@ -7,22 +7,69 @@ export interface CardCompositionItem {
|
|
|
7
7
|
visible: boolean;
|
|
8
8
|
}
|
|
9
9
|
export declare class RecommendationCardCompositionControl extends CommonControl {
|
|
10
|
-
private currentComposition;
|
|
11
|
-
private currentVisibility;
|
|
12
10
|
getId(): string;
|
|
13
11
|
getTemplate(): string;
|
|
14
12
|
onRender(): void;
|
|
15
13
|
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
16
14
|
/**
|
|
17
|
-
*
|
|
15
|
+
* Creates the HTML content for an orderable item with label and toggle
|
|
16
|
+
*/
|
|
17
|
+
private _createItemContent;
|
|
18
|
+
/**
|
|
19
|
+
* Registers event listeners for composition and visibility changes
|
|
20
|
+
*/
|
|
21
|
+
private _registerValueChangeListeners;
|
|
22
|
+
/**
|
|
23
|
+
* Initializes composition order and visibility state from the current node
|
|
18
24
|
*/
|
|
19
25
|
private _initializeComposition;
|
|
26
|
+
/**
|
|
27
|
+
* Reads composition order from node's data-card-composition attribute
|
|
28
|
+
* Falls back to default order if attribute is not present
|
|
29
|
+
*/
|
|
30
|
+
private _readCompositionFromNode;
|
|
31
|
+
/**
|
|
32
|
+
* Builds visibility values object from the visibility map
|
|
33
|
+
*/
|
|
34
|
+
private _buildVisibilityValues;
|
|
35
|
+
/**
|
|
36
|
+
* Read visibility state from individual row elements' data-visibility attributes
|
|
37
|
+
* This ensures toggles reflect the actual DOM state
|
|
38
|
+
*/
|
|
39
|
+
private _readVisibilityFromRows;
|
|
40
|
+
/**
|
|
41
|
+
* Returns default visibility values for all items
|
|
42
|
+
*/
|
|
43
|
+
private _getDefaultVisibilities;
|
|
44
|
+
/**
|
|
45
|
+
* Extracts visibility values from DOM nodes
|
|
46
|
+
*/
|
|
47
|
+
private _extractVisibilityFromRows;
|
|
48
|
+
/**
|
|
49
|
+
* Parses visibility value from string to boolean
|
|
50
|
+
* Accepts "1", "true" as true, everything else as false
|
|
51
|
+
*/
|
|
52
|
+
private _parseVisibilityValue;
|
|
53
|
+
/**
|
|
54
|
+
* Merges extracted visibilities with default values for missing keys
|
|
55
|
+
*/
|
|
56
|
+
private _mergeWithDefaults;
|
|
20
57
|
/**
|
|
21
58
|
* Apply the reordered composition to the block's HTML structure
|
|
59
|
+
* Updates the data-card-composition attribute and reorders product attributes
|
|
22
60
|
*/
|
|
23
61
|
private _applyCompositionToBlock;
|
|
62
|
+
/**
|
|
63
|
+
* Reorders attribute rows within each product row based on composition order
|
|
64
|
+
*/
|
|
65
|
+
private _reorderProductAttributes;
|
|
66
|
+
/**
|
|
67
|
+
* Builds HTML string with attributes ordered according to composition
|
|
68
|
+
*/
|
|
69
|
+
private _buildCompositionHtml;
|
|
24
70
|
/**
|
|
25
71
|
* Apply visibility changes to the block's HTML structure
|
|
72
|
+
* Updates display style and data-visibility attribute for all matching rows
|
|
26
73
|
*/
|
|
27
74
|
private _applyVisibilityToBlock;
|
|
28
75
|
}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attribute type constants used in templates
|
|
3
|
+
* These are used as keys in ElementRenderer and composition arrays
|
|
4
|
+
*/
|
|
5
|
+
export declare const ATTR_PRODUCT_IMAGE = "productImage";
|
|
6
|
+
export declare const ATTR_PRODUCT_NAME = "productName";
|
|
7
|
+
export declare const ATTR_PRODUCT_PRICE = "productPrice";
|
|
8
|
+
export declare const ATTR_PRODUCT_OLD_PRICE = "productOldPrice";
|
|
9
|
+
export declare const ATTR_PRODUCT_OMNIBUS_PRICE = "productOmnibusPrice";
|
|
10
|
+
export declare const ATTR_PRODUCT_OMNIBUS_DISCOUNT = "productOmnibusDiscount";
|
|
11
|
+
export declare const ATTR_PRODUCT_BUTTON = "productButton";
|
|
1
12
|
/**
|
|
2
13
|
* Block IDs used in the Recommendation Extension
|
|
3
14
|
* These IDs are used in the esd-extension-block-id attribute to identify specific blocks
|
|
@@ -7,6 +18,8 @@ export declare enum RecommendationBlockId {
|
|
|
7
18
|
NAME = "recommendation-block-name",
|
|
8
19
|
PRICE = "recommendation-block-price",
|
|
9
20
|
OLD_PRICE = "recommendation-block-old-price",
|
|
21
|
+
OMNIBUS_PRICE = "recommendation-block-omnibus-price",
|
|
22
|
+
OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount",
|
|
10
23
|
IMAGE = "recommendation-block-image"
|
|
11
24
|
}
|
|
12
25
|
/**
|
|
@@ -32,6 +45,7 @@ export declare enum RecommendationControlId {
|
|
|
32
45
|
NAME_PADDINGS = "recommendation-block-name-paddings-control",
|
|
33
46
|
NAME_SIZE = "recommendation-block-name-size-control",
|
|
34
47
|
NAME_STYLE = "recommendation-block-name-style-control",
|
|
48
|
+
NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control",
|
|
35
49
|
PRICE_ALIGN = "recommendation-block-price-align-control",
|
|
36
50
|
PRICE_BACKGROUND = "recommendation-block-price-background-control",
|
|
37
51
|
PRICE_COLOR = "recommendation-block-price-color-control",
|
|
@@ -46,6 +60,24 @@ export declare enum RecommendationControlId {
|
|
|
46
60
|
OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control",
|
|
47
61
|
OLD_PRICE_SIZE = "recommendation-block-old-price-size-control",
|
|
48
62
|
OLD_PRICE_STYLE = "recommendation-block-old-price-style-control",
|
|
63
|
+
OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control",
|
|
64
|
+
OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control",
|
|
65
|
+
OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control",
|
|
66
|
+
OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control",
|
|
67
|
+
OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control",
|
|
68
|
+
OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control",
|
|
69
|
+
OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control",
|
|
70
|
+
OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control",
|
|
71
|
+
OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control",
|
|
72
|
+
OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control",
|
|
73
|
+
OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control",
|
|
74
|
+
OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control",
|
|
75
|
+
OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control",
|
|
76
|
+
OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control",
|
|
77
|
+
OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control",
|
|
78
|
+
OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control",
|
|
79
|
+
OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control",
|
|
80
|
+
OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control",
|
|
49
81
|
IMAGE_SIZE = "recommendation-block-image-size-control",
|
|
50
82
|
IMAGE_MARGINS = "recommendation-block-image-margins-control"
|
|
51
83
|
}
|
|
@@ -17,8 +17,6 @@ export declare class RecommendationBlockControl extends CommonControl {
|
|
|
17
17
|
_getProductLayout(): string;
|
|
18
18
|
_getFilterStatus(): string;
|
|
19
19
|
_getShuffleProducts(): string;
|
|
20
|
-
_getResponsive(): string;
|
|
21
|
-
_onFilterChange(value: boolean): void;
|
|
22
20
|
_onFilterSelectClick(): void;
|
|
23
21
|
_onDataChange(item: string, value: string | number | string[]): void;
|
|
24
22
|
/**
|
|
@@ -26,6 +24,11 @@ export declare class RecommendationBlockControl extends CommonControl {
|
|
|
26
24
|
*/
|
|
27
25
|
_getCardComposition(): string[];
|
|
28
26
|
_regenerateProductRows(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Reapply spacing values after product regeneration
|
|
29
|
+
* This ensures spacing persists when products are regenerated
|
|
30
|
+
*/
|
|
31
|
+
_reapplySpacing(): void;
|
|
29
32
|
_debouncedRegenerateProductRows: import("@vueuse/shared").PromisifyFn<() => void>;
|
|
30
33
|
_onCurrencyConfigChange(item: string, value: string | number): void;
|
|
31
34
|
_onCurrencyChange(value: string): void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
|
+
import { CommonControl } from '../../common-control';
|
|
3
|
+
export declare const CARD_BACKGROUND_COLOR_CONTROL_ID = "recommendation-card-background-color-control";
|
|
4
|
+
/**
|
|
5
|
+
* Control for managing recommendation card background color
|
|
6
|
+
* This control is displayed in the Styles tab
|
|
7
|
+
*/
|
|
8
|
+
export declare class CardBackgroundColorControl extends CommonControl {
|
|
9
|
+
getId(): string;
|
|
10
|
+
getTemplate(): string;
|
|
11
|
+
onRender(): void;
|
|
12
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
13
|
+
_setFormValues(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Reads the current background color from the first product card wrapper
|
|
16
|
+
* @returns The background color value or 'transparent' if not found
|
|
17
|
+
*/
|
|
18
|
+
_getCurrentCardBackgroundColor(): string;
|
|
19
|
+
/**
|
|
20
|
+
* Handles card background color changes
|
|
21
|
+
* Applies the color to all product card wrapper elements
|
|
22
|
+
*/
|
|
23
|
+
_onCardBackgroundColorChange(color: string): void;
|
|
24
|
+
_listenToFormUpdates(): void;
|
|
25
|
+
}
|