@useinsider/guido 2.0.0-beta.1ba7e26 → 2.0.0-beta.1c331b8
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/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
- package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
- package/dist/composables/useStripo.js +40 -40
- package/dist/config/migrator/index.js +8 -9
- package/dist/config/migrator/recommendationMigrator.js +2 -2
- package/dist/extensions/Blocks/CouponBlock/constants.js +4 -0
- package/dist/extensions/Blocks/CouponBlock/controls/index.js +29 -0
- package/dist/extensions/Blocks/CouponBlock/extension.js +5 -4
- package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +20 -14
- package/dist/extensions/Blocks/CouponBlock/template.js +22 -11
- package/dist/extensions/Blocks/Items/block.js +40 -39
- package/dist/extensions/Blocks/Items/controls/button/link.js +11 -11
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +62 -50
- package/dist/extensions/Blocks/Items/controls/image/link.js +8 -8
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +15 -13
- package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +1 -1
- package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +1 -1
- package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +17 -15
- package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +15 -15
- package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +27 -29
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +127 -132
- package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -2
- package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +48 -58
- package/dist/extensions/Blocks/Items/layouts/vertical.html.js +58 -48
- package/dist/extensions/Blocks/Items/store/items-block.js +2 -2
- package/dist/extensions/Blocks/Items/template.js +125 -312
- package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +20 -11
- package/dist/extensions/Blocks/Recommendation/block.js +1 -1
- 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/layout.js +7 -0
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +11 -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 +238 -0
- package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
- package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +104 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +86 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +134 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +134 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +64 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +124 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +60 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +112 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -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 +216 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +5 -0
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +28 -25
- package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +157 -0
- package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +72 -0
- package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +173 -0
- package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +186 -0
- package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +251 -0
- package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +62 -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/common-control.js +53 -64
- package/dist/extensions/Blocks/controlFactories.js +162 -117
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +116 -120
- 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/CouponBlock/constants.d.ts +14 -0
- package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +108 -0
- package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +4 -0
- package/dist/src/extensions/Blocks/Items/template.d.ts +1 -20
- 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/index.d.ts +12 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +17 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +19 -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/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 +34 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +17 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +16 -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 +43 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +40 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +81 -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 +16 -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/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/price/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +72 -0
- package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +16 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +8 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +18 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +45 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → vertical/migration.d.ts} +11 -4
- package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +8 -13
- package/dist/src/extensions/Blocks/controlFactories.d.ts +30 -7
- package/dist/src/stores/config.d.ts +17 -0
- package/dist/static/styles/components/wide-panel.css.js +0 -4
- package/dist/static/styles/customEditorStyle.css.js +38 -2
- package/package.json +1 -1
- package/dist/config/migrator/itemsBlockMigrator.js +0 -283
- package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +0 -172
- 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/config/migrator/itemsBlockMigrator.d.ts +0 -6
- package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -71
- package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
- package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
- package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for preserving text styling when updating innerHTML
|
|
3
|
+
*/
|
|
4
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
5
|
+
/**
|
|
6
|
+
* Preserves existing style tags when updating text content
|
|
7
|
+
*
|
|
8
|
+
* When users apply text styles (bold, italic, etc.) in Stripo, the editor wraps
|
|
9
|
+
* content in tags like <strong>, <em>, <u>, <s>. This function extracts those
|
|
10
|
+
* style tags from the original HTML and re-applies them to the new text content.
|
|
11
|
+
* @example
|
|
12
|
+
* // Original: <span class="omnibus-text-before"><strong>Lowest price: </strong></span>
|
|
13
|
+
* // After calling preserveTextStyles(element, 'Best price: ')
|
|
14
|
+
* // Result: <strong>Best price: </strong>
|
|
15
|
+
* @param element - The DOM element or ImmutableHtmlNode containing the styled text
|
|
16
|
+
* @param newText - The new text content to insert
|
|
17
|
+
* @returns The new text wrapped in the original style tags
|
|
18
|
+
*/
|
|
19
|
+
export declare function preserveTextStyles(element: ImmutableHtmlNode | Element, newText: string): string;
|
|
@@ -56,30 +56,25 @@ export declare abstract class CommonControl extends Control {
|
|
|
56
56
|
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
57
57
|
onDestroy(): void;
|
|
58
58
|
/**
|
|
59
|
-
* Gets the
|
|
60
|
-
* @returns The container element or null if not found
|
|
61
|
-
*/
|
|
62
|
-
protected getItemsBlockContainer(): ImmutableHtmlElementNode | null;
|
|
63
|
-
/**
|
|
64
|
-
* Gets the config block element from the current node (legacy support).
|
|
65
|
-
* @deprecated Use getNodeConfig() from nodeConfigUtils instead for Stripo V2
|
|
59
|
+
* Gets the config block element from the current node.
|
|
66
60
|
* @returns The config block element or null if not found
|
|
67
61
|
*/
|
|
68
62
|
protected getConfigBlock(): ImmutableHtmlElementNode | null;
|
|
69
63
|
/**
|
|
70
|
-
* Gets the current block instance ID from the
|
|
64
|
+
* Gets the current block instance ID from the config block.
|
|
65
|
+
* @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
|
|
71
66
|
* @returns The block instance ID or null if not found
|
|
72
67
|
*/
|
|
73
|
-
protected getBlockInstanceId(): string | null;
|
|
68
|
+
protected getBlockInstanceId(blockInstanceIdAttribute?: string): string | null;
|
|
74
69
|
/**
|
|
75
70
|
* Handles block instance change detection and syncing.
|
|
76
|
-
* This is a helper method for controls that need to sync
|
|
77
|
-
*
|
|
78
|
-
* @param syncFunction - Function to call when block instance changes (to sync from node config)
|
|
71
|
+
* This is a helper method for controls that need to sync attributes when switching between block instances.
|
|
72
|
+
* @param syncFunction - Function to call when block instance changes (to sync from attributes)
|
|
79
73
|
* @param updateUI - Function to call to update the UI (called both on change and when same block)
|
|
74
|
+
* @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
|
|
80
75
|
* @returns true if block instance changed, false otherwise
|
|
81
76
|
*/
|
|
82
|
-
protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void): boolean;
|
|
77
|
+
protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void, blockInstanceIdAttribute?: string): boolean;
|
|
83
78
|
_GuLabel({ text, name, position }: LabelProps): string;
|
|
84
79
|
_GuToggle(name: string): string;
|
|
85
80
|
_GuSelectItem({ text, value }: {
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
13
13
|
/**
|
|
14
14
|
* Factory function to create text align controls for different block elements
|
|
15
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
15
16
|
*/
|
|
16
|
-
export declare function createTextAlignControl(controlId: string, targetBlockId
|
|
17
|
+
export declare function createTextAlignControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
17
18
|
new (): {
|
|
18
19
|
getId(): string;
|
|
19
20
|
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
@@ -27,8 +28,9 @@ export declare function createTextAlignControl(controlId: string, targetBlockId:
|
|
|
27
28
|
};
|
|
28
29
|
/**
|
|
29
30
|
* Factory function to create text color controls for different block elements
|
|
31
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
30
32
|
*/
|
|
31
|
-
export declare function createTextColorControl(controlId: string, targetBlockId
|
|
33
|
+
export declare function createTextColorControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
32
34
|
new (): {
|
|
33
35
|
getId(): string;
|
|
34
36
|
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
@@ -42,8 +44,9 @@ export declare function createTextColorControl(controlId: string, targetBlockId:
|
|
|
42
44
|
};
|
|
43
45
|
/**
|
|
44
46
|
* Factory function to create text size controls for different block elements
|
|
47
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
45
48
|
*/
|
|
46
|
-
export declare function createTextSizeControl(controlId: string, targetBlockId
|
|
49
|
+
export declare function createTextSizeControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
47
50
|
new (): {
|
|
48
51
|
getId(): string;
|
|
49
52
|
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
@@ -57,8 +60,9 @@ export declare function createTextSizeControl(controlId: string, targetBlockId:
|
|
|
57
60
|
};
|
|
58
61
|
/**
|
|
59
62
|
* Factory function to create text style controls for different block elements
|
|
63
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
60
64
|
*/
|
|
61
|
-
export declare function createTextStyleControl(controlId: string, targetBlockId
|
|
65
|
+
export declare function createTextStyleControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
62
66
|
new (): {
|
|
63
67
|
getId(): string;
|
|
64
68
|
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
@@ -72,8 +76,9 @@ export declare function createTextStyleControl(controlId: string, targetBlockId:
|
|
|
72
76
|
};
|
|
73
77
|
/**
|
|
74
78
|
* Factory function to create text font family controls for different block elements
|
|
79
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
75
80
|
*/
|
|
76
|
-
export declare function createTextFontFamilyControl(controlId: string, targetBlockId
|
|
81
|
+
export declare function createTextFontFamilyControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
77
82
|
new (): {
|
|
78
83
|
getId(): string;
|
|
79
84
|
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
@@ -87,8 +92,9 @@ export declare function createTextFontFamilyControl(controlId: string, targetBlo
|
|
|
87
92
|
};
|
|
88
93
|
/**
|
|
89
94
|
* Factory function to create text background color controls for different block elements
|
|
95
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
90
96
|
*/
|
|
91
|
-
export declare function createTextBackgroundColorControl(controlId: string, targetBlockId
|
|
97
|
+
export declare function createTextBackgroundColorControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
92
98
|
new (): {
|
|
93
99
|
getId(): string;
|
|
94
100
|
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
@@ -102,8 +108,25 @@ export declare function createTextBackgroundColorControl(controlId: string, targ
|
|
|
102
108
|
};
|
|
103
109
|
/**
|
|
104
110
|
* Factory function to create paddings controls for different block elements
|
|
111
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
105
112
|
*/
|
|
106
|
-
export declare function createPaddingsControl(controlId: string, targetBlockId
|
|
113
|
+
export declare function createPaddingsControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
114
|
+
new (): {
|
|
115
|
+
getId(): string;
|
|
116
|
+
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
117
|
+
getParentControlId(): string;
|
|
118
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
119
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
120
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
121
|
+
getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
122
|
+
isVisible(_node: ImmutableHtmlNode): boolean;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Factory function to create text line spacing controls for different block elements
|
|
127
|
+
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
128
|
+
*/
|
|
129
|
+
export declare function createTextLineSpacingControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
|
|
107
130
|
new (): {
|
|
108
131
|
getId(): string;
|
|
109
132
|
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
@@ -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;
|
|
@@ -6,10 +6,6 @@ ue-main-editor-container[panel-position=SETTINGS_BLOCKS] ue-wide-panel {
|
|
|
6
6
|
right: calc(100% - calc(var(--ue-spacing-step, 5px) * 3) - 425px);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
ue-main-tabs-panel-component .fixed-panel-header {
|
|
10
|
-
display: none;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
9
|
/* Remove with this writing task DT-28355 */
|
|
14
10
|
ue-description a {
|
|
15
11
|
display: none;
|
|
@@ -19,10 +19,46 @@ const n = `.esd-x,
|
|
|
19
19
|
box-shadow: none;
|
|
20
20
|
}
|
|
21
21
|
.ins-product-cart ue-node-actions,
|
|
22
|
-
|
|
23
|
-
.ins-recommendation-v3-block-v2 .product-
|
|
22
|
+
/* Horizontal layout - hide for info, image, and button cells */
|
|
23
|
+
.ins-recommendation-v3-block-v2 .product-info-cell ue-node-actions,
|
|
24
|
+
.ins-recommendation-v3-block-v2 .product-info-cell ue-node-panel,
|
|
25
|
+
.ins-recommendation-v3-block-v2 .product-image-cell ue-node-actions,
|
|
26
|
+
.ins-recommendation-v3-block-v2 .product-image-cell ue-node-panel,
|
|
27
|
+
.ins-recommendation-v3-block-v2 .button-cell ue-node-actions,
|
|
28
|
+
.ins-recommendation-v3-block-v2 .button-cell ue-node-panel,
|
|
29
|
+
/* Vertical layout - hide for product-card-segment inner cells */
|
|
30
|
+
.ins-recommendation-v3-block-v2 .product-card-segment ue-node-actions,
|
|
31
|
+
.ins-recommendation-v3-block-v2 .product-card-segment ue-node-panel,
|
|
32
|
+
/* Hide for specific product attribute cells in both layouts */
|
|
33
|
+
.ins-recommendation-v3-block-v2 .product-image ue-node-actions,
|
|
34
|
+
.ins-recommendation-v3-block-v2 .product-image ue-node-panel,
|
|
35
|
+
.ins-recommendation-v3-block-v2 .product-name ue-node-actions,
|
|
36
|
+
.ins-recommendation-v3-block-v2 .product-name ue-node-panel,
|
|
37
|
+
.ins-recommendation-v3-block-v2 .product-price ue-node-actions,
|
|
38
|
+
.ins-recommendation-v3-block-v2 .product-price ue-node-panel,
|
|
39
|
+
.ins-recommendation-v3-block-v2 .product-old-price ue-node-actions,
|
|
40
|
+
.ins-recommendation-v3-block-v2 .product-old-price ue-node-panel,
|
|
41
|
+
.ins-recommendation-v3-block-v2 .product-omnibus-price ue-node-actions,
|
|
42
|
+
.ins-recommendation-v3-block-v2 .product-omnibus-price ue-node-panel,
|
|
43
|
+
.ins-recommendation-v3-block-v2 .product-omnibus-discount ue-node-actions,
|
|
44
|
+
.ins-recommendation-v3-block-v2 .product-omnibus-discount ue-node-panel,
|
|
45
|
+
.ins-recommendation-v3-block-v2 .product-button ue-node-actions,
|
|
46
|
+
.ins-recommendation-v3-block-v2 .product-button ue-node-panel {
|
|
24
47
|
display: none !important;
|
|
25
48
|
}
|
|
49
|
+
|
|
50
|
+
/* Apply to the table cell (td) with text-trim-enabled class */
|
|
51
|
+
.text-trim-enabled {
|
|
52
|
+
max-width: 0 !important;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.text-trim-enabled p {
|
|
56
|
+
overflow: hidden !important;
|
|
57
|
+
text-overflow: ellipsis !important;
|
|
58
|
+
white-space: nowrap !important;
|
|
59
|
+
margin: 0 !important;
|
|
60
|
+
display: block !important;
|
|
61
|
+
}
|
|
26
62
|
`;
|
|
27
63
|
export {
|
|
28
64
|
n as default
|
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.1c331b8",
|
|
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",
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
var B = Object.defineProperty;
|
|
2
|
-
var q = (o, t, r) => t in o ? B(o, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : o[t] = r;
|
|
3
|
-
var A = (o, t, r) => q(o, typeof t != "symbol" ? t + "" : t, r);
|
|
4
|
-
import { productPairs as L } from "../../extensions/Blocks/Items/enums/productEnums.js";
|
|
5
|
-
import { ItemInCartOptions as I, DefaultConfigValues as m, SETTINGS_ENUMS as l } from "../../extensions/Blocks/Items/enums/settingsEnums.js";
|
|
6
|
-
import { getDefaultTemplate as K } from "../../extensions/Blocks/Items/template.js";
|
|
7
|
-
const V = {
|
|
8
|
-
ins_apr_img: {
|
|
9
|
-
pairsKey: "imageSrc",
|
|
10
|
-
defaultKey: "DEFAULT",
|
|
11
|
-
isArray: !0
|
|
12
|
-
},
|
|
13
|
-
ins_apr_name: {
|
|
14
|
-
pairsKey: "name",
|
|
15
|
-
defaultKey: "DEFAULT",
|
|
16
|
-
isArray: !0
|
|
17
|
-
},
|
|
18
|
-
ins_apr_url: {
|
|
19
|
-
pairsKey: "button",
|
|
20
|
-
defaultKey: "DEFAULT_HREF",
|
|
21
|
-
isArray: !1
|
|
22
|
-
},
|
|
23
|
-
ins_apr_formattedprice: {
|
|
24
|
-
pairsKey: "price",
|
|
25
|
-
defaultKey: "DEFAULT_PRICE_FORMATTED",
|
|
26
|
-
isArray: !1
|
|
27
|
-
},
|
|
28
|
-
ins_apr_productcurrency: {
|
|
29
|
-
pairsKey: "price",
|
|
30
|
-
defaultKey: "DEFAULT_CURRENCY",
|
|
31
|
-
isArray: !1
|
|
32
|
-
},
|
|
33
|
-
ins_apr_quantity: {
|
|
34
|
-
pairsKey: "quantity",
|
|
35
|
-
defaultKey: "DEFAULT",
|
|
36
|
-
isArray: !1
|
|
37
|
-
},
|
|
38
|
-
ins_apr_price: {
|
|
39
|
-
pairsKey: "price",
|
|
40
|
-
defaultKey: "DEFAULT_PRICE",
|
|
41
|
-
isArray: !1
|
|
42
|
-
},
|
|
43
|
-
ins_apr_originalprice: {
|
|
44
|
-
pairsKey: "originalPrice",
|
|
45
|
-
defaultKey: "DEFAULT_PRICE",
|
|
46
|
-
isArray: !1
|
|
47
|
-
},
|
|
48
|
-
ins_apr_originalformattedprice: {
|
|
49
|
-
pairsKey: "originalPrice",
|
|
50
|
-
defaultKey: "DEFAULT_PRICE_FORMATTED",
|
|
51
|
-
isArray: !1
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
function U() {
|
|
55
|
-
return String(Date.now() + Math.floor(Math.random() * 1e3));
|
|
56
|
-
}
|
|
57
|
-
function F(o) {
|
|
58
|
-
return o ? {
|
|
59
|
-
CartItems: l.ITEMS_TYPE.CART_ITEMS,
|
|
60
|
-
BrowsedItems: l.ITEMS_TYPE.BROWSED_ITEMS,
|
|
61
|
-
PurchasedItems: l.ITEMS_TYPE.PURCHASED_ITEMS,
|
|
62
|
-
CART_ITEMS: l.ITEMS_TYPE.CART_ITEMS,
|
|
63
|
-
BROWSED_ITEMS: l.ITEMS_TYPE.BROWSED_ITEMS,
|
|
64
|
-
PURCHASED_ITEMS: l.ITEMS_TYPE.PURCHASED_ITEMS
|
|
65
|
-
}[o] || l.ITEMS_TYPE.CART_ITEMS : l.ITEMS_TYPE.CART_ITEMS;
|
|
66
|
-
}
|
|
67
|
-
function D(o) {
|
|
68
|
-
const t = (e, a) => e == null ? a : e === "1" || e === "true", r = (e, a) => e || a, c = o["data-type"] || o["data-source"], n = F(c);
|
|
69
|
-
let i = o["data-cart_items_select_control_value"] || m.cartItemsSelectControlValue;
|
|
70
|
-
if (i && !i.includes("{{") && /^\d+$/.test(i)) {
|
|
71
|
-
const e = parseInt(i) - 1, a = I[n];
|
|
72
|
-
a && a[e] && (i = a[e].value);
|
|
73
|
-
}
|
|
74
|
-
return {
|
|
75
|
-
initialized: !0,
|
|
76
|
-
blockInstanceId: r(o["data-block-instance-id"], U()),
|
|
77
|
-
source: n,
|
|
78
|
-
type: n,
|
|
79
|
-
itemsSelectValue: i,
|
|
80
|
-
orientation: o["data-card_orientation_control_value"] || l.ORIENTATION.VERTICAL,
|
|
81
|
-
nameTrimming: t(o["data-product_name_trimming"], !0),
|
|
82
|
-
nameControlEnabled: t(o["data-product_name_control_enabled"], !0),
|
|
83
|
-
priceHideDiscount: t(o["data-product_price_hide_discount"], !1),
|
|
84
|
-
priceFormatted: t(o["data-product_price_formatted"], !0),
|
|
85
|
-
priceCurrencySymbol: r(
|
|
86
|
-
o["data-product_price_currency_symbol"],
|
|
87
|
-
m.productPriceCurrencySymbolControlValue
|
|
88
|
-
),
|
|
89
|
-
priceCurrencyLocation: r(
|
|
90
|
-
o["data-product_price_currency_location"],
|
|
91
|
-
m.productPriceCurrencyLocationControlValue
|
|
92
|
-
),
|
|
93
|
-
priceControlOpened: t(o["data-product_price_control_opened"], !0),
|
|
94
|
-
priceOrientation: o["data-product_original_price_control_orientation"] || "horizontal",
|
|
95
|
-
quantityControlEnabled: t(o["data-product_quantity_control_enabled"], !0),
|
|
96
|
-
buttonLink: r(o["data-product_button_link"], m.productButtonLinkControlValue),
|
|
97
|
-
imageLink: r(o["data-product_image_link"], m.productImageLinkControlValue),
|
|
98
|
-
buttonLabel: r(o["data-product_button_control_label"], "Buy"),
|
|
99
|
-
imageVisible: t(o["data-product_image_visible"], !0),
|
|
100
|
-
nameVisible: t(o["data-product_name_visible"], !0),
|
|
101
|
-
quantityVisible: t(o["data-product_quantity_visible"], !0),
|
|
102
|
-
priceVisible: t(o["data-product_price_visible"], !0),
|
|
103
|
-
originalPriceVisible: t(o["data-product_original_price_control_enabled"], !0),
|
|
104
|
-
buttonVisible: t(o["data-product_button_visible"], !0)
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
class w {
|
|
108
|
-
constructor() {
|
|
109
|
-
A(this, "parser");
|
|
110
|
-
A(this, "DATA_TYPE", "CART_ITEMS");
|
|
111
|
-
this.parser = new DOMParser();
|
|
112
|
-
}
|
|
113
|
-
migrate(t) {
|
|
114
|
-
try {
|
|
115
|
-
let r = this.removeJinjaConditionals(t);
|
|
116
|
-
r = this.replaceTemplateVariables(r);
|
|
117
|
-
const c = this.parser.parseFromString(r, "text/html"), n = c.querySelectorAll("td.esd-cart-items-block");
|
|
118
|
-
return n.length === 0 ? (console.warn('ItemsBlockMigrator: No blocks found with selector "td.esd-cart-items-block"'), r) : (n.forEach((i) => {
|
|
119
|
-
const e = this.extractConfiguration(i), a = K({
|
|
120
|
-
orientation: e.orientation,
|
|
121
|
-
itemsType: e.itemsType,
|
|
122
|
-
itemId: e.itemId,
|
|
123
|
-
currencySymbol: e.currencySymbol,
|
|
124
|
-
currencyLocation: e.currencyLocation,
|
|
125
|
-
formattedPrice: e.formattedPrice,
|
|
126
|
-
configBlockAttributes: e.configBlockAttributes,
|
|
127
|
-
migrate: !0,
|
|
128
|
-
nameStyles: e.nameStyles,
|
|
129
|
-
buttonStyles: e.buttonStyles,
|
|
130
|
-
priceStyles: e.priceStyles,
|
|
131
|
-
originalPriceStyles: e.originalPriceStyles,
|
|
132
|
-
quantityStyles: e.quantityStyles,
|
|
133
|
-
nodeConfig: D(e.configBlockAttributes)
|
|
134
|
-
}), u = this.parser.parseFromString(
|
|
135
|
-
`<table><tbody><tr>${a}</tr></tbody></table>`,
|
|
136
|
-
"text/html"
|
|
137
|
-
).querySelector("td");
|
|
138
|
-
if (u && i.parentNode) {
|
|
139
|
-
const s = D(e.configBlockAttributes);
|
|
140
|
-
u.setAttribute("esd-ext-config", JSON.stringify(s));
|
|
141
|
-
const p = u.querySelector("esd-config-block");
|
|
142
|
-
p && p.remove(), i.parentNode.replaceChild(u, i);
|
|
143
|
-
}
|
|
144
|
-
}), c.documentElement.outerHTML);
|
|
145
|
-
} catch (r) {
|
|
146
|
-
return console.error("ItemsBlockMigrator failed:", r), t;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Extracts configuration from legacy HTML block
|
|
151
|
-
* Parses data attributes and structure to determine:
|
|
152
|
-
* - orientation, itemsType, itemNumber, currency settings, esd-config-block attributes
|
|
153
|
-
* - UI styles from product elements (name, price, button, quantity, etc.)
|
|
154
|
-
*/
|
|
155
|
-
extractConfiguration(t) {
|
|
156
|
-
var E, C, P;
|
|
157
|
-
const r = ((E = t.querySelector("[data-type]")) == null ? void 0 : E.getAttribute("data-type")) || "CART_ITEMS", c = ((C = t.querySelector("[data-number]")) == null ? void 0 : C.getAttribute("data-number")) || "1", n = parseInt(c) - 1, i = I[r], e = ((P = i == null ? void 0 : i[n]) == null ? void 0 : P.value) || i[0].value, a = t.querySelector('[product-attr="price"]'), _ = (a == null ? void 0 : a.getAttribute("data-currency_symbol")) || void 0, s = ((a == null ? void 0 : a.getAttribute("data-curency")) || "before") === "after" ? "1" : "0", p = (a == null ? void 0 : a.getAttribute("data-formated")) !== "false", y = this.extractConfigBlockAttributes(t, r), f = y["data-product_original_price_control_orientation"] === "vertical" ? "vertical" : "horizontal", d = t.querySelector('a[product-attr="name"]'), v = (d == null ? void 0 : d.getAttribute("style")) || void 0, b = t.querySelector('a[product-attr="button"]'), M = (b == null ? void 0 : b.getAttribute("style")) || void 0, h = (a == null ? void 0 : a.getAttribute("style")) || void 0, S = t.querySelector('[product-attr="originalPrice"]'), R = (S == null ? void 0 : S.getAttribute("style")) || void 0, T = t.querySelector('[product-attr="quantity"]'), k = (T == null ? void 0 : T.getAttribute("style")) || void 0;
|
|
158
|
-
return {
|
|
159
|
-
orientation: f,
|
|
160
|
-
itemsType: r,
|
|
161
|
-
itemId: e,
|
|
162
|
-
currencySymbol: _,
|
|
163
|
-
currencyLocation: s,
|
|
164
|
-
formattedPrice: p,
|
|
165
|
-
configBlockAttributes: y,
|
|
166
|
-
nameStyles: v,
|
|
167
|
-
buttonStyles: M,
|
|
168
|
-
priceStyles: h,
|
|
169
|
-
originalPriceStyles: R,
|
|
170
|
-
quantityStyles: k
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Extracts all data-* attributes from the esd-config-block element
|
|
175
|
-
* Returns a key-value mapping of all configuration attributes
|
|
176
|
-
* @param block - The block element containing the esd-config-block
|
|
177
|
-
* @param itemsType - The type of items (CART_ITEMS, BROWSED_ITEMS, PURCHASED_ITEMS)
|
|
178
|
-
*/
|
|
179
|
-
extractConfigBlockAttributes(t, r) {
|
|
180
|
-
const c = t.querySelector("esd-config-block"), n = {};
|
|
181
|
-
if (!c)
|
|
182
|
-
return this.getDefaultConfigBlockAttributes();
|
|
183
|
-
if (Array.from(c.attributes).forEach((e) => {
|
|
184
|
-
e.name.startsWith("data-") && (n[e.name] = e.value);
|
|
185
|
-
}), n["data-cart_items_select_control_value"]) {
|
|
186
|
-
const e = n["data-cart_items_select_control_value"];
|
|
187
|
-
if (/^\d+$/.test(e)) {
|
|
188
|
-
const a = parseInt(e) - 1, _ = I[r];
|
|
189
|
-
_ && _[a] && (n["data-cart_items_select_control_value"] = _[a].value);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (n["data-product_price_control_curency"]) {
|
|
193
|
-
const e = n["data-product_price_control_curency"];
|
|
194
|
-
e === "before" ? n["data-product_price_control_curency"] = "0" : e === "after" && (n["data-product_price_control_curency"] = "1");
|
|
195
|
-
}
|
|
196
|
-
(!n["data-product_price_currency_symbol"] || n["data-product_price_currency_symbol"].trim() === "") && (n["data-product_price_currency_symbol"] = "USD");
|
|
197
|
-
const i = { ...this.getDefaultConfigBlockAttributes(), ...n };
|
|
198
|
-
return i["data-type"] = r, i["data-source"] = r, i;
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Returns default esd-config-block attributes based on the old template structure
|
|
202
|
-
* These serve as fallbacks when attributes are missing
|
|
203
|
-
*/
|
|
204
|
-
getDefaultConfigBlockAttributes() {
|
|
205
|
-
return {
|
|
206
|
-
"data-type": "CART_ITEMS",
|
|
207
|
-
"data-product_image_control_opened": "false",
|
|
208
|
-
"data-product_image_control_image-width": "250",
|
|
209
|
-
"data-product_image_control_image-height": "250",
|
|
210
|
-
"data-product_image_control_align_button": "true",
|
|
211
|
-
"data-product_image_control_padding_mobile": "true",
|
|
212
|
-
"data-product_name_control_opened": "false",
|
|
213
|
-
"data-product_quantity_control_opened": "true",
|
|
214
|
-
// DONE
|
|
215
|
-
"data-product_quantity_control_enabled": "false",
|
|
216
|
-
"data-product_name_control_font_font_size": "20",
|
|
217
|
-
"data-product_price_control_opened": "false",
|
|
218
|
-
"data-product_price_control_font_font_size": "20",
|
|
219
|
-
"data-product_price_control_color": "#060606",
|
|
220
|
-
"data-product_price_control_curency": "0",
|
|
221
|
-
"data-product_price_currency_symbol": "USD",
|
|
222
|
-
"data-product_original_price_control_opened": "false",
|
|
223
|
-
"data-product_original_price_control_font_font_size": "19",
|
|
224
|
-
"data-product_original_price_control_align_align_desktop": "center",
|
|
225
|
-
"data-product_original_price_control_orientation": "vertical",
|
|
226
|
-
"data-product_button_control_opened": "true",
|
|
227
|
-
"data-product_button_control_label": "Comprar",
|
|
228
|
-
// DONE
|
|
229
|
-
"data-product_button_control_font_font_size": "17",
|
|
230
|
-
"data-product_button_control_color": "#ffffff",
|
|
231
|
-
"data-product_button_control_background": "#010101",
|
|
232
|
-
"data-product_button_control_atw": "false",
|
|
233
|
-
"data-product_original_price_control_enabled": "false"
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Removes Jinja2 conditional statements from HTML
|
|
238
|
-
* - Removes {% if ins_apr_total_product_kind > N %}
|
|
239
|
-
* - Removes {% if ins_apr_price_N != ins_apr_originalprice_N %}
|
|
240
|
-
* - Removes {% endif %}
|
|
241
|
-
*/
|
|
242
|
-
removeJinjaConditionals(t) {
|
|
243
|
-
let r = t.replace(/\{%\s*if\s+ins_apr_total_product_kind\s*(>|>)\s*\d+\s*%\}/g, "");
|
|
244
|
-
return r = r.replace(/\{%\s*if\s+ins_apr_price_\d+\s*(!=|!=)\s*ins_apr_originalprice_\d+\s*%\}/g, ""), r = r.replace(/\{%\s*endif\s*%\}/g, ""), r = r.replace(/\n\s*\n\s*\n/g, `
|
|
245
|
-
|
|
246
|
-
`), r;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Replaces template variables with default values from productPairs
|
|
250
|
-
*
|
|
251
|
-
* Examples:
|
|
252
|
-
* - {{ins_apr_img_1}} → https://s3.../ins_apr_img_1.jpeg (array-based, uses index 0)
|
|
253
|
-
* - {{ins_apr_name_2}} → 'Set of Sprite Yoga Straps' (array-based, uses index 1)
|
|
254
|
-
* - {{ins_apr_formattedprice_1}} → '1,100.00' (single value, ignores index)
|
|
255
|
-
* - {{ins_apr_url_3}} → '#!' (single value, ignores index)
|
|
256
|
-
*/
|
|
257
|
-
replaceTemplateVariables(t) {
|
|
258
|
-
const { PAIRS_FOR_EXTENSION: r } = L;
|
|
259
|
-
return t.replace(/{{([^}]+)}}/g, (c, n) => {
|
|
260
|
-
const i = n.match(/^(ins_apr_[a-z]+)_(\d+)$/);
|
|
261
|
-
if (!i)
|
|
262
|
-
return c;
|
|
263
|
-
const [, e, a] = i, _ = V[e];
|
|
264
|
-
if (!_)
|
|
265
|
-
return console.warn(`Unknown variable mapping for: ${e}`), c;
|
|
266
|
-
const { pairsKey: u, defaultKey: s, isArray: p } = _, y = r[u][this.DATA_TYPE];
|
|
267
|
-
if (!y)
|
|
268
|
-
return console.warn(`No data found for: ${u}.${this.DATA_TYPE}`), c;
|
|
269
|
-
if (p) {
|
|
270
|
-
const f = parseInt(a) - 1, d = y[s];
|
|
271
|
-
return Array.isArray(d) && d[f] ? d[f] : (console.warn(`Array value not found: ${u}.${this.DATA_TYPE}.${s}[${f}]`), c);
|
|
272
|
-
}
|
|
273
|
-
const g = y[s];
|
|
274
|
-
return g !== void 0 ? String(g) : (console.warn(`Default value not found: ${u}.${this.DATA_TYPE}.${s}`), c);
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
function $(o) {
|
|
279
|
-
return new w().migrate(o);
|
|
280
|
-
}
|
|
281
|
-
export {
|
|
282
|
-
$ as migrateItemsBlock
|
|
283
|
-
};
|