@useinsider/guido 2.0.0-beta.d170da6 → 2.0.0-beta.dbde199
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 +2 -0
- package/dist/@types/config/schemas.js +3 -1
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +15 -17
- package/dist/composables/useStripo.js +40 -40
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +13 -4
- package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +12 -6
- package/dist/extensions/Blocks/Recommendation/constants.js +8 -7
- package/dist/extensions/Blocks/Recommendation/control.js +19 -4
- package/dist/extensions/Blocks/Recommendation/controls/index.js +123 -96
- package/dist/extensions/Blocks/Recommendation/controls/priceHideControl.js +60 -0
- package/dist/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.js +160 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +17 -15
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +41 -33
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +15 -12
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +8 -8
- package/dist/extensions/Blocks/controlFactories.js +70 -70
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +364 -286
- package/dist/package.json.js +1 -1
- package/dist/services/stripoApi.js +6 -10
- package/dist/src/@types/config/schemas.d.ts +4 -0
- package/dist/src/composables/useConfig.d.ts +2 -0
- package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +4 -0
- package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +9 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +62 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/priceHideControl.d.ts +16 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.d.ts +50 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +1 -1
- package/dist/src/stores/config.d.ts +17 -0
- package/package.json +3 -3
package/dist/package.json.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useHttp as m } from "../composables/useHttp.js";
|
|
2
|
-
import { useToaster as
|
|
3
|
-
import { MAX_DEFAULT_TEMPLATE_ID as
|
|
2
|
+
import { useToaster as i } from "../composables/useToaster.js";
|
|
3
|
+
import { MAX_DEFAULT_TEMPLATE_ID as p } from "../enums/defaults.js";
|
|
4
4
|
const y = () => {
|
|
5
|
-
const { get: r } = m(), { handleError: o } =
|
|
5
|
+
const { get: r } = m(), { handleError: o } = i();
|
|
6
6
|
return {
|
|
7
7
|
getToken: async () => {
|
|
8
8
|
try {
|
|
@@ -26,17 +26,13 @@ const y = () => {
|
|
|
26
26
|
getDefaultTemplate: async () => {
|
|
27
27
|
const t = {
|
|
28
28
|
html: "",
|
|
29
|
-
css: ""
|
|
30
|
-
forceRecreate: !0
|
|
29
|
+
css: ""
|
|
31
30
|
};
|
|
32
31
|
try {
|
|
33
|
-
const c = new URLSearchParams(window.location.search).get("default-template"), s = c ? parseInt(c) : 0, l = s >= 1 && s <=
|
|
32
|
+
const c = new URLSearchParams(window.location.search).get("default-template"), s = c ? parseInt(c) : 0, l = s >= 1 && s <= p ? s : 0, { data: n } = await r(
|
|
34
33
|
`/stripo/default-template/${l}`
|
|
35
34
|
), a = typeof n == "string" ? JSON.parse(n) : n;
|
|
36
|
-
return !a || typeof a != "object" || !("html" in a) || !("css" in a) ? t :
|
|
37
|
-
...a,
|
|
38
|
-
forceRecreate: !0
|
|
39
|
-
};
|
|
35
|
+
return !a || typeof a != "object" || !("html" in a) || !("css" in a) ? t : a;
|
|
40
36
|
} catch (e) {
|
|
41
37
|
return o(e, "Failed to fetch default template"), t;
|
|
42
38
|
}
|
|
@@ -90,6 +90,8 @@ export declare const TemplateSchema: v.ObjectSchema<{
|
|
|
90
90
|
}, undefined>, undefined>, readonly []>;
|
|
91
91
|
/** Selected unsubscribe page IDs */
|
|
92
92
|
readonly selectedUnsubscribePages: v.OptionalSchema<v.ArraySchema<v.NumberSchema<undefined>, undefined>, readonly []>;
|
|
93
|
+
/** Force recreate template in Stripo storage (use true when updating externally modified templates) */
|
|
94
|
+
readonly forceRecreate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
|
|
93
95
|
}, undefined>;
|
|
94
96
|
/**
|
|
95
97
|
* Email header configuration (sender name and subject)
|
|
@@ -400,6 +402,8 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
|
|
|
400
402
|
}, undefined>, undefined>, readonly []>;
|
|
401
403
|
/** Selected unsubscribe page IDs */
|
|
402
404
|
readonly selectedUnsubscribePages: v.OptionalSchema<v.ArraySchema<v.NumberSchema<undefined>, undefined>, readonly []>;
|
|
405
|
+
/** Force recreate template in Stripo storage (use true when updating externally modified templates) */
|
|
406
|
+
readonly forceRecreate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
|
|
403
407
|
}, undefined>, {}>;
|
|
404
408
|
/** Editor settings */
|
|
405
409
|
readonly editor: v.OptionalSchema<v.ObjectSchema<{
|
|
@@ -31,6 +31,7 @@ export declare const useConfig: () => {
|
|
|
31
31
|
} | undefined;
|
|
32
32
|
}[];
|
|
33
33
|
selectedUnsubscribePages: number[];
|
|
34
|
+
forceRecreate: boolean;
|
|
34
35
|
};
|
|
35
36
|
editor: {
|
|
36
37
|
locale: string;
|
|
@@ -116,6 +117,7 @@ export declare const useConfig: () => {
|
|
|
116
117
|
} | undefined;
|
|
117
118
|
}[];
|
|
118
119
|
selectedUnsubscribePages: number[];
|
|
120
|
+
forceRecreate: boolean;
|
|
119
121
|
} | null>;
|
|
120
122
|
editor: import("vue").ComputedRef<{
|
|
121
123
|
locale: string;
|
|
@@ -28,6 +28,10 @@ export declare class RecommendationCardCompositionControl extends CommonControl
|
|
|
28
28
|
* Falls back to default order if attribute is not present
|
|
29
29
|
*/
|
|
30
30
|
private _readCompositionFromNode;
|
|
31
|
+
/**
|
|
32
|
+
* Gets default composition order
|
|
33
|
+
*/
|
|
34
|
+
private _getDefaultComposition;
|
|
31
35
|
/**
|
|
32
36
|
* Builds visibility values object from the visibility map
|
|
33
37
|
*/
|
|
@@ -9,6 +9,7 @@ export declare const ATTR_PRODUCT_OLD_PRICE = "productOldPrice";
|
|
|
9
9
|
export declare const ATTR_PRODUCT_OMNIBUS_PRICE = "productOmnibusPrice";
|
|
10
10
|
export declare const ATTR_PRODUCT_OMNIBUS_DISCOUNT = "productOmnibusDiscount";
|
|
11
11
|
export declare const ATTR_PRODUCT_BUTTON = "productButton";
|
|
12
|
+
export declare const ATTR_DATA_PRICE_INLINE = "data-price-inline";
|
|
12
13
|
/**
|
|
13
14
|
* Block IDs used in the Recommendation Extension
|
|
14
15
|
* These IDs are used in the esd-extension-block-id attribute to identify specific blocks
|
|
@@ -42,6 +43,7 @@ export declare enum RecommendationControlId {
|
|
|
42
43
|
NAME_BACKGROUND = "recommendation-block-name-background-control",
|
|
43
44
|
NAME_COLOR = "recommendation-block-name-color-control",
|
|
44
45
|
NAME_FONT_FAMILY = "recommendation-block-name-font-family-control",
|
|
46
|
+
NAME_LINE_SPACING = "recommendation-block-name-line-spacing-control",
|
|
45
47
|
NAME_PADDINGS = "recommendation-block-name-paddings-control",
|
|
46
48
|
NAME_SIZE = "recommendation-block-name-size-control",
|
|
47
49
|
NAME_STYLE = "recommendation-block-name-style-control",
|
|
@@ -50,6 +52,8 @@ export declare enum RecommendationControlId {
|
|
|
50
52
|
PRICE_BACKGROUND = "recommendation-block-price-background-control",
|
|
51
53
|
PRICE_COLOR = "recommendation-block-price-color-control",
|
|
52
54
|
PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control",
|
|
55
|
+
PRICE_HIDE_IF_SAME = "recommendation-block-price-hide-if-same-control",
|
|
56
|
+
PRICE_LINE_SPACING = "recommendation-block-price-line-spacing-control",
|
|
53
57
|
PRICE_PADDINGS = "recommendation-block-price-paddings-control",
|
|
54
58
|
PRICE_SIZE = "recommendation-block-price-size-control",
|
|
55
59
|
PRICE_STYLE = "recommendation-block-price-style-control",
|
|
@@ -57,6 +61,7 @@ export declare enum RecommendationControlId {
|
|
|
57
61
|
OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control",
|
|
58
62
|
OLD_PRICE_COLOR = "recommendation-block-old-price-color-control",
|
|
59
63
|
OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control",
|
|
64
|
+
OLD_PRICE_LINE_SPACING = "recommendation-block-old-price-line-spacing-control",
|
|
60
65
|
OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control",
|
|
61
66
|
OLD_PRICE_SIZE = "recommendation-block-old-price-size-control",
|
|
62
67
|
OLD_PRICE_STYLE = "recommendation-block-old-price-style-control",
|
|
@@ -64,6 +69,7 @@ export declare enum RecommendationControlId {
|
|
|
64
69
|
OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control",
|
|
65
70
|
OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control",
|
|
66
71
|
OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control",
|
|
72
|
+
OMNIBUS_PRICE_LINE_SPACING = "recommendation-block-omnibus-price-line-spacing-control",
|
|
67
73
|
OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control",
|
|
68
74
|
OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control",
|
|
69
75
|
OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control",
|
|
@@ -73,11 +79,13 @@ export declare enum RecommendationControlId {
|
|
|
73
79
|
OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control",
|
|
74
80
|
OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control",
|
|
75
81
|
OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control",
|
|
82
|
+
OMNIBUS_DISCOUNT_LINE_SPACING = "recommendation-block-omnibus-discount-line-spacing-control",
|
|
76
83
|
OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control",
|
|
77
84
|
OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control",
|
|
78
85
|
OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control",
|
|
79
86
|
OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control",
|
|
80
87
|
OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control",
|
|
81
88
|
IMAGE_SIZE = "recommendation-block-image-size-control",
|
|
82
|
-
IMAGE_MARGINS = "recommendation-block-image-margins-control"
|
|
89
|
+
IMAGE_MARGINS = "recommendation-block-image-margins-control",
|
|
90
|
+
PRICE_INLINE_LAYOUT = "recommendation-block-price-inline-layout-control"
|
|
83
91
|
}
|
|
@@ -91,6 +91,18 @@ export declare const NamePaddingsControl: {
|
|
|
91
91
|
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
92
92
|
};
|
|
93
93
|
};
|
|
94
|
+
export declare const NameLineSpacingControl: {
|
|
95
|
+
new (): {
|
|
96
|
+
getId(): string;
|
|
97
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
98
|
+
getParentControlId(): string;
|
|
99
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
100
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
101
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
102
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
103
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
94
106
|
export { NameTextTrimControl } from './nameTextTrimControl';
|
|
95
107
|
export declare const PriceAlignControl: {
|
|
96
108
|
new (): {
|
|
@@ -176,6 +188,19 @@ export declare const PricePaddingsControl: {
|
|
|
176
188
|
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
177
189
|
};
|
|
178
190
|
};
|
|
191
|
+
export declare const PriceLineSpacingControl: {
|
|
192
|
+
new (): {
|
|
193
|
+
getId(): string;
|
|
194
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
195
|
+
getParentControlId(): string;
|
|
196
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
197
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
198
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
199
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
200
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
export { PriceHideControl } from './priceHideControl';
|
|
179
204
|
export declare const OldPriceAlignControl: {
|
|
180
205
|
new (): {
|
|
181
206
|
getId(): string;
|
|
@@ -260,6 +285,18 @@ export declare const OldPricePaddingsControl: {
|
|
|
260
285
|
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
261
286
|
};
|
|
262
287
|
};
|
|
288
|
+
export declare const OldPriceLineSpacingControl: {
|
|
289
|
+
new (): {
|
|
290
|
+
getId(): string;
|
|
291
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
292
|
+
getParentControlId(): string;
|
|
293
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
294
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
295
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
296
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
297
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
298
|
+
};
|
|
299
|
+
};
|
|
263
300
|
export declare const OmnibusPriceAlignControl: {
|
|
264
301
|
new (): {
|
|
265
302
|
getId(): string;
|
|
@@ -344,6 +381,18 @@ export declare const OmnibusPricePaddingsControl: {
|
|
|
344
381
|
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
345
382
|
};
|
|
346
383
|
};
|
|
384
|
+
export declare const OmnibusPriceLineSpacingControl: {
|
|
385
|
+
new (): {
|
|
386
|
+
getId(): string;
|
|
387
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
388
|
+
getParentControlId(): string;
|
|
389
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
390
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
391
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
392
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
393
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
394
|
+
};
|
|
395
|
+
};
|
|
347
396
|
export { OmnibusPriceTextBeforeControl } from './omnibusPriceTextBeforeControl';
|
|
348
397
|
export { OmnibusPriceTextAfterControl } from './omnibusPriceTextAfterControl';
|
|
349
398
|
export declare const OmnibusDiscountAlignControl: {
|
|
@@ -430,6 +479,18 @@ export declare const OmnibusDiscountPaddingsControl: {
|
|
|
430
479
|
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
431
480
|
};
|
|
432
481
|
};
|
|
482
|
+
export declare const OmnibusDiscountLineSpacingControl: {
|
|
483
|
+
new (): {
|
|
484
|
+
getId(): string;
|
|
485
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
486
|
+
getParentControlId(): string;
|
|
487
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
488
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
489
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
490
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
491
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
492
|
+
};
|
|
493
|
+
};
|
|
433
494
|
export { OmnibusDiscountTextBeforeControl } from './omnibusDiscountTextBeforeControl';
|
|
434
495
|
export { OmnibusDiscountTextAfterControl } from './omnibusDiscountTextAfterControl';
|
|
435
496
|
export declare const ButtonAlignControl: {
|
|
@@ -590,3 +651,4 @@ export declare const ImageMarginsControl: {
|
|
|
590
651
|
};
|
|
591
652
|
export { CardBackgroundColorControl } from './cardBackgroundColorControl';
|
|
592
653
|
export { SpacingControl } from './spacingControl';
|
|
654
|
+
export { PriceInlineLayoutControl } from './priceInlineLayoutControl';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
|
+
import { CommonControl } from '../../common-control';
|
|
3
|
+
/**
|
|
4
|
+
* Control for hiding the price when it's the same as the discounted price
|
|
5
|
+
* When enabled, adds an attribute hide-price="true" to the recommendation block container
|
|
6
|
+
*/
|
|
7
|
+
export declare class PriceHideControl extends CommonControl {
|
|
8
|
+
getId(): string;
|
|
9
|
+
getTemplate(): string;
|
|
10
|
+
onRender(): void;
|
|
11
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
12
|
+
_setFormValues(): void;
|
|
13
|
+
_getCurrentHideState(): boolean;
|
|
14
|
+
_onHidePriceChange(enabled: boolean): void;
|
|
15
|
+
_listenToFormUpdates(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
|
+
import { CommonControl } from '../../common-control';
|
|
3
|
+
import { RecommendationControlId } from '../constants';
|
|
4
|
+
export declare const PRICE_INLINE_LAYOUT_CONTROL_ID = RecommendationControlId.PRICE_INLINE_LAYOUT;
|
|
5
|
+
/**
|
|
6
|
+
* Price Inline Layout Control
|
|
7
|
+
*
|
|
8
|
+
* Provides a toggle to switch between inline and separate row layouts for Price and Old Price.
|
|
9
|
+
* - Toggle OFF (default): Price and Old Price in separate rows
|
|
10
|
+
* - Toggle ON: Price and Old Price side by side in the same row (inline)
|
|
11
|
+
*
|
|
12
|
+
* Uses DOM manipulation (not regeneration) to restructure the existing elements,
|
|
13
|
+
* preserving all styles and content.
|
|
14
|
+
*/
|
|
15
|
+
export declare class PriceInlineLayoutControl extends CommonControl {
|
|
16
|
+
getId(): string;
|
|
17
|
+
getTemplate(): string;
|
|
18
|
+
onRender(): void;
|
|
19
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
20
|
+
/**
|
|
21
|
+
* Reads the current price inline state from the block's data attribute
|
|
22
|
+
* and updates the toggle UI
|
|
23
|
+
* Note: Toggle ON = separate rows (next line), Toggle OFF = inline (same row)
|
|
24
|
+
*/
|
|
25
|
+
private _initializePriceInlineState;
|
|
26
|
+
/**
|
|
27
|
+
* Reads the price inline state from the block wrapper's data attribute
|
|
28
|
+
*/
|
|
29
|
+
private _readPriceInlineState;
|
|
30
|
+
/**
|
|
31
|
+
* Registers listener for toggle changes
|
|
32
|
+
*/
|
|
33
|
+
private _registerValueChangeListener;
|
|
34
|
+
/**
|
|
35
|
+
* Applies the price inline layout by restructuring the DOM
|
|
36
|
+
* When enabling inline: Merges Old Price content into Price row (side by side)
|
|
37
|
+
* When disabling inline: Separates them back into individual rows
|
|
38
|
+
*/
|
|
39
|
+
private _applyPriceInlineLayout;
|
|
40
|
+
/**
|
|
41
|
+
* Merges Old Price content into the same row as Price (inline layout)
|
|
42
|
+
* Creates a structure where both prices are side by side in one row
|
|
43
|
+
*/
|
|
44
|
+
private _mergeOldPriceIntoPrice;
|
|
45
|
+
/**
|
|
46
|
+
* Separates Old Price from Price row back into individual rows
|
|
47
|
+
* Restores the original separate row structure
|
|
48
|
+
*/
|
|
49
|
+
private _separateOldPriceFromPrice;
|
|
50
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RecommendationProduct } from '@@/Types/recommendation';
|
|
2
2
|
import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY } from './templateUtils';
|
|
3
|
-
declare const blockTemplate = "\n <td
|
|
3
|
+
declare const blockTemplate = "\n <td\n align=\"left\"\n class=\"ins-recommendation-v3-block-v2 es-p20\"\n data-price-inline=\"0\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <BLOCK_TEXT\n class=\"es-p10t es-p10b es-p20l es-p20r\"\n align=\"center\">\n <p path=\"1\" style=\"font-size: 28px; color: #333333;\">\n <strong path=\"1,0\">{-{-TITLE-}-}</strong>\n </p>\n </BLOCK_TEXT>\n </tbody>\n </table>\n </td>\n </tr>\n \n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
|
|
4
4
|
export declare function getDefaultTemplate(): string;
|
|
5
5
|
/**
|
|
6
6
|
* Generates a custom template with specified products and layout
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RecommendationProduct } from '@@/Types/recommendation';
|
|
2
2
|
import { DEFAULTS, getDefaultProducts } from './templateUtils';
|
|
3
|
-
declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"recommendation-block\"\n esd-handler-name=\"esd-extension-RecommendationBlock\"\n class=\"ins-recommendation-v3-block-v2 esd-
|
|
3
|
+
declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"recommendation-block\"\n esd-handler-name=\"esd-extension-RecommendationBlock\"\n class=\"ins-recommendation-v3-block-v2 es-p20 esd-recommendation-block esd-extension-block esd-container-frame\"\n data-price-inline=\"0\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
|
|
4
4
|
export declare function getMigrationTemplate(): string;
|
|
5
5
|
/**
|
|
6
6
|
* Generates a custom migration template with specified products and layout
|
|
@@ -36,6 +36,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
36
36
|
} | undefined;
|
|
37
37
|
}[];
|
|
38
38
|
selectedUnsubscribePages: number[];
|
|
39
|
+
forceRecreate: boolean;
|
|
39
40
|
};
|
|
40
41
|
editor: {
|
|
41
42
|
locale: string;
|
|
@@ -127,6 +128,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
127
128
|
} | undefined;
|
|
128
129
|
}[];
|
|
129
130
|
selectedUnsubscribePages: number[];
|
|
131
|
+
forceRecreate: boolean;
|
|
130
132
|
};
|
|
131
133
|
editor: {
|
|
132
134
|
locale: string;
|
|
@@ -218,6 +220,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
218
220
|
} | undefined;
|
|
219
221
|
}[];
|
|
220
222
|
selectedUnsubscribePages: number[];
|
|
223
|
+
forceRecreate: boolean;
|
|
221
224
|
};
|
|
222
225
|
editor: {
|
|
223
226
|
locale: string;
|
|
@@ -309,6 +312,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
309
312
|
} | undefined;
|
|
310
313
|
}[];
|
|
311
314
|
selectedUnsubscribePages: number[];
|
|
315
|
+
forceRecreate: boolean;
|
|
312
316
|
};
|
|
313
317
|
editor: {
|
|
314
318
|
locale: string;
|
|
@@ -400,6 +404,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
400
404
|
} | undefined;
|
|
401
405
|
}[];
|
|
402
406
|
selectedUnsubscribePages: number[];
|
|
407
|
+
forceRecreate: boolean;
|
|
403
408
|
};
|
|
404
409
|
editor: {
|
|
405
410
|
locale: string;
|
|
@@ -491,6 +496,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
491
496
|
} | undefined;
|
|
492
497
|
}[];
|
|
493
498
|
selectedUnsubscribePages: number[];
|
|
499
|
+
forceRecreate: boolean;
|
|
494
500
|
};
|
|
495
501
|
editor: {
|
|
496
502
|
locale: string;
|
|
@@ -582,6 +588,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
582
588
|
} | undefined;
|
|
583
589
|
}[];
|
|
584
590
|
selectedUnsubscribePages: number[];
|
|
591
|
+
forceRecreate: boolean;
|
|
585
592
|
};
|
|
586
593
|
editor: {
|
|
587
594
|
locale: string;
|
|
@@ -673,6 +680,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
673
680
|
} | undefined;
|
|
674
681
|
}[];
|
|
675
682
|
selectedUnsubscribePages: number[];
|
|
683
|
+
forceRecreate: boolean;
|
|
676
684
|
};
|
|
677
685
|
editor: {
|
|
678
686
|
locale: string;
|
|
@@ -764,6 +772,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
764
772
|
} | undefined;
|
|
765
773
|
}[];
|
|
766
774
|
selectedUnsubscribePages: number[];
|
|
775
|
+
forceRecreate: boolean;
|
|
767
776
|
};
|
|
768
777
|
editor: {
|
|
769
778
|
locale: string;
|
|
@@ -855,6 +864,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
855
864
|
} | undefined;
|
|
856
865
|
}[];
|
|
857
866
|
selectedUnsubscribePages: number[];
|
|
867
|
+
forceRecreate: boolean;
|
|
858
868
|
};
|
|
859
869
|
editor: {
|
|
860
870
|
locale: string;
|
|
@@ -946,6 +956,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
946
956
|
} | undefined;
|
|
947
957
|
}[];
|
|
948
958
|
selectedUnsubscribePages: number[];
|
|
959
|
+
forceRecreate: boolean;
|
|
949
960
|
};
|
|
950
961
|
editor: {
|
|
951
962
|
locale: string;
|
|
@@ -1037,6 +1048,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1037
1048
|
} | undefined;
|
|
1038
1049
|
}[];
|
|
1039
1050
|
selectedUnsubscribePages: number[];
|
|
1051
|
+
forceRecreate: boolean;
|
|
1040
1052
|
};
|
|
1041
1053
|
editor: {
|
|
1042
1054
|
locale: string;
|
|
@@ -1128,6 +1140,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1128
1140
|
} | undefined;
|
|
1129
1141
|
}[];
|
|
1130
1142
|
selectedUnsubscribePages: number[];
|
|
1143
|
+
forceRecreate: boolean;
|
|
1131
1144
|
};
|
|
1132
1145
|
editor: {
|
|
1133
1146
|
locale: string;
|
|
@@ -1219,6 +1232,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1219
1232
|
} | undefined;
|
|
1220
1233
|
}[];
|
|
1221
1234
|
selectedUnsubscribePages: number[];
|
|
1235
|
+
forceRecreate: boolean;
|
|
1222
1236
|
};
|
|
1223
1237
|
editor: {
|
|
1224
1238
|
locale: string;
|
|
@@ -1310,6 +1324,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1310
1324
|
} | undefined;
|
|
1311
1325
|
}[];
|
|
1312
1326
|
selectedUnsubscribePages: number[];
|
|
1327
|
+
forceRecreate: boolean;
|
|
1313
1328
|
};
|
|
1314
1329
|
editor: {
|
|
1315
1330
|
locale: string;
|
|
@@ -1401,6 +1416,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1401
1416
|
} | undefined;
|
|
1402
1417
|
}[];
|
|
1403
1418
|
selectedUnsubscribePages: number[];
|
|
1419
|
+
forceRecreate: boolean;
|
|
1404
1420
|
};
|
|
1405
1421
|
editor: {
|
|
1406
1422
|
locale: string;
|
|
@@ -1492,6 +1508,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1492
1508
|
} | undefined;
|
|
1493
1509
|
}[];
|
|
1494
1510
|
selectedUnsubscribePages: number[];
|
|
1511
|
+
forceRecreate: boolean;
|
|
1495
1512
|
};
|
|
1496
1513
|
editor: {
|
|
1497
1514
|
locale: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.dbde199",
|
|
4
4
|
"description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
|
|
5
5
|
"main": "./dist/guido.umd.cjs",
|
|
6
6
|
"module": "./dist/library.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"author": "",
|
|
32
32
|
"license": "ISC",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@stripoinc/ui-editor-extensions": "3.
|
|
34
|
+
"@stripoinc/ui-editor-extensions": "3.5.0",
|
|
35
35
|
"@useinsider/design-system-vue": "0.14.20",
|
|
36
36
|
"@vueuse/core": "11.3.0",
|
|
37
37
|
"lodash-es": "4.17.21",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
"guido": {
|
|
87
87
|
"stripo": {
|
|
88
|
-
"version": "2.
|
|
88
|
+
"version": "2.52.0"
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
}
|