@useinsider/guido 2.0.0-beta.afc5689 → 2.0.0-beta.b0493eb
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/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/components/organisms/header/LeftSlot.vue.js +12 -12
- package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
- package/dist/config/migrator/index.js +8 -9
- package/dist/config/migrator/recommendationMigrator.js +2 -2
- package/dist/extensions/Blocks/Items/block.js +40 -39
- package/dist/extensions/Blocks/Items/controls/button/link.js +29 -22
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +62 -50
- package/dist/extensions/Blocks/Items/controls/image/link.js +30 -23
- 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 +136 -145
- 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/settingsPanel.js +4 -4
- 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 +44 -17
- package/dist/extensions/Blocks/Recommendation/block.js +40 -6
- package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +64 -0
- package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
- package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
- package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
- package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +108 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +110 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +207 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +148 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +74 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +124 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +124 -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 +222 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
- package/dist/extensions/Blocks/Recommendation/services/configService.js +239 -0
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +39 -34
- package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +181 -0
- package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +71 -0
- package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +116 -0
- package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +211 -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/types/nodeConfig.js +6 -0
- package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
- package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
- package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
- package/dist/extensions/Blocks/common-control.js +53 -64
- package/dist/extensions/Blocks/controlFactories.js +130 -106
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +221 -173
- package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +2 -0
- package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +2 -0
- 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/block.d.ts +34 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
- package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -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 +36 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +45 -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 +62 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +100 -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 +83 -0
- package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
- package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
- package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +17 -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/types/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +154 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +8 -13
- 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,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node Type Guards and Tag Name Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe utilities for working with ImmutableHtmlNode.
|
|
5
|
+
* Handles both standard DOM properties and Stripo's custom methods.
|
|
6
|
+
*/
|
|
7
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
8
|
+
/** Interface for nodes with standard tagName property */
|
|
9
|
+
interface NodeWithTagName {
|
|
10
|
+
tagName: string;
|
|
11
|
+
}
|
|
12
|
+
/** Interface for nodes with getStyle method */
|
|
13
|
+
export interface NodeWithGetStyle {
|
|
14
|
+
getStyle: (property: string) => string | null | undefined;
|
|
15
|
+
}
|
|
16
|
+
/** Interface for nodes with parent method */
|
|
17
|
+
export interface NodeWithParent {
|
|
18
|
+
parent: () => ImmutableHtmlNode | null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Type guard to check if a node has getStyle method
|
|
22
|
+
* @param node - The node to check
|
|
23
|
+
*/
|
|
24
|
+
export declare function hasGetStyle(node: unknown): node is NodeWithGetStyle;
|
|
25
|
+
/**
|
|
26
|
+
* Type guard to check if a node has parent method
|
|
27
|
+
* @param node - The node to check
|
|
28
|
+
*/
|
|
29
|
+
export declare function hasParent(node: unknown): node is NodeWithParent;
|
|
30
|
+
/**
|
|
31
|
+
* Type guard to check if a node is a TD element
|
|
32
|
+
* @param node - The node to check
|
|
33
|
+
*/
|
|
34
|
+
export declare function isTdNode(node: unknown): node is ImmutableHtmlNode & NodeWithTagName;
|
|
35
|
+
/**
|
|
36
|
+
* Safely retrieves a style value from a node
|
|
37
|
+
* @param node - The node to get the style from
|
|
38
|
+
* @param property - The CSS property name
|
|
39
|
+
* @returns The style value or null if not accessible
|
|
40
|
+
*/
|
|
41
|
+
export declare function safeGetStyle(node: ImmutableHtmlNode | null, property: string): string | null | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Safely retrieves the parent element of a node
|
|
44
|
+
* @param node - The node to get the parent from
|
|
45
|
+
* @returns The parent node or null if not accessible
|
|
46
|
+
*/
|
|
47
|
+
export declare function safeGetParent(node: ImmutableHtmlNode | null): ImmutableHtmlNode | null;
|
|
48
|
+
/**
|
|
49
|
+
* Safely retrieves the tag name from a node.
|
|
50
|
+
* Handles both standard DOM tagName property and Stripo's getTagName() method.
|
|
51
|
+
* @param node - The node to get the tag name from
|
|
52
|
+
* @param defaultValue - Default value if tag name cannot be determined (default: 'UNKNOWN')
|
|
53
|
+
* @returns The uppercase tag name
|
|
54
|
+
*/
|
|
55
|
+
export declare function getTagName(node: ImmutableHtmlNode | null | undefined, defaultValue?: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Checks if a tag name represents a table cell element.
|
|
58
|
+
* Includes standard TD and Stripo's custom block types (BLOCK_IMAGE, BLOCK_BUTTON).
|
|
59
|
+
* @param tagName - The tag name to check (case-insensitive)
|
|
60
|
+
* @returns True if the tag represents a table cell
|
|
61
|
+
*/
|
|
62
|
+
export declare function isTableCellTag(tagName: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Checks if a node is a table cell element.
|
|
65
|
+
* Combines getTagName and isTableCellTag for convenience.
|
|
66
|
+
* @param node - The node to check
|
|
67
|
+
* @returns True if the node is a table cell element
|
|
68
|
+
*/
|
|
69
|
+
export declare function isTableCellNode(node: ImmutableHtmlNode | null | undefined): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Gets the appropriate CSS display value for showing a table element.
|
|
72
|
+
* Table cells use 'table-cell', table rows use 'table-row'.
|
|
73
|
+
* @param node - The table element node
|
|
74
|
+
* @returns The CSS display value ('table-cell' or 'table-row')
|
|
75
|
+
*/
|
|
76
|
+
export declare function getTableDisplayValue(node: ImmutableHtmlNode | null | undefined): 'table-cell' | 'table-row';
|
|
77
|
+
export {};
|
|
@@ -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 }: {
|
|
@@ -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.b0493eb",
|
|
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
|
-
};
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { ModificationDescription as _ } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
2
|
-
import { DefaultConfigValues as e, SETTINGS_ENUMS as n, ItemInCartOptions as g } from "../enums/settingsEnums.js";
|
|
3
|
-
function d() {
|
|
4
|
-
return String(Date.now() + Math.floor(Math.random() * 1e3));
|
|
5
|
-
}
|
|
6
|
-
function f() {
|
|
7
|
-
return {
|
|
8
|
-
initialized: !0,
|
|
9
|
-
blockInstanceId: d(),
|
|
10
|
-
source: n.ITEMS_TYPE.CART_ITEMS,
|
|
11
|
-
type: n.ITEMS_TYPE.CART_ITEMS,
|
|
12
|
-
itemsSelectValue: e.cartItemsSelectControlValue,
|
|
13
|
-
orientation: n.ORIENTATION.VERTICAL,
|
|
14
|
-
nameTrimming: e.productNameTrimmingControlValue === "1",
|
|
15
|
-
nameControlEnabled: e.productNameControlEnabled === "1",
|
|
16
|
-
priceHideDiscount: e.productPriceHideDiscountControlValue === "1",
|
|
17
|
-
priceFormatted: e.productPriceFormattedControlValue === "1",
|
|
18
|
-
priceCurrencySymbol: e.productPriceCurrencySymbolControlValue,
|
|
19
|
-
priceCurrencyLocation: e.productPriceCurrencyLocationControlValue,
|
|
20
|
-
priceControlOpened: e.productPriceControlOpened === "1",
|
|
21
|
-
priceOrientation: "horizontal",
|
|
22
|
-
quantityControlEnabled: e.productQuantityControlEnabled === "1",
|
|
23
|
-
buttonLink: e.productButtonLinkControlValue,
|
|
24
|
-
imageLink: e.productImageLinkControlValue,
|
|
25
|
-
buttonLabel: "Buy",
|
|
26
|
-
imageVisible: e.productImageVisible === "1",
|
|
27
|
-
nameVisible: e.productNameVisible === "1",
|
|
28
|
-
quantityVisible: e.productQuantityVisible === "1",
|
|
29
|
-
priceVisible: e.productPriceVisible === "1",
|
|
30
|
-
originalPriceVisible: e.productOriginalPriceVisible === "1",
|
|
31
|
-
buttonVisible: e.productButtonVisible === "1"
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function s(r) {
|
|
35
|
-
if (!r)
|
|
36
|
-
return null;
|
|
37
|
-
const t = r.closest(".items-block-v2");
|
|
38
|
-
return t || r.closest(".esd-cart-items-block");
|
|
39
|
-
}
|
|
40
|
-
function m(r) {
|
|
41
|
-
return r ? {
|
|
42
|
-
CartItems: n.ITEMS_TYPE.CART_ITEMS,
|
|
43
|
-
BrowsedItems: n.ITEMS_TYPE.BROWSED_ITEMS,
|
|
44
|
-
PurchasedItems: n.ITEMS_TYPE.PURCHASED_ITEMS,
|
|
45
|
-
// Also handle already correct formats
|
|
46
|
-
CART_ITEMS: n.ITEMS_TYPE.CART_ITEMS,
|
|
47
|
-
BROWSED_ITEMS: n.ITEMS_TYPE.BROWSED_ITEMS,
|
|
48
|
-
PURCHASED_ITEMS: n.ITEMS_TYPE.PURCHASED_ITEMS
|
|
49
|
-
}[r] || n.ITEMS_TYPE.CART_ITEMS : n.ITEMS_TYPE.CART_ITEMS;
|
|
50
|
-
}
|
|
51
|
-
function C(r, t) {
|
|
52
|
-
if (!r)
|
|
53
|
-
return e.cartItemsSelectControlValue;
|
|
54
|
-
if (r.includes("{{"))
|
|
55
|
-
return r;
|
|
56
|
-
if (/^\d+$/.test(r)) {
|
|
57
|
-
const i = parseInt(r) - 1, o = g[t];
|
|
58
|
-
if (o && o[i])
|
|
59
|
-
return o[i].value;
|
|
60
|
-
}
|
|
61
|
-
return e.cartItemsSelectControlValue;
|
|
62
|
-
}
|
|
63
|
-
function I(r) {
|
|
64
|
-
const t = r.querySelector("esd-config-block");
|
|
65
|
-
if (!t)
|
|
66
|
-
return null;
|
|
67
|
-
const i = (c, a) => c == null ? a : c === "1" || c === "true", o = (c, a) => c || a, l = t.getAttribute("data-type"), u = m(l), p = t.getAttribute("data-cart_items_select_control_value"), b = C(p, u);
|
|
68
|
-
return {
|
|
69
|
-
initialized: i(t.getAttribute("data-initialized"), !1),
|
|
70
|
-
blockInstanceId: o(
|
|
71
|
-
t.getAttribute("data-block-instance-id"),
|
|
72
|
-
d()
|
|
73
|
-
),
|
|
74
|
-
source: u,
|
|
75
|
-
type: u,
|
|
76
|
-
itemsSelectValue: b,
|
|
77
|
-
orientation: t.getAttribute("data-card_orientation_control_value") || n.ORIENTATION.VERTICAL,
|
|
78
|
-
nameTrimming: i(
|
|
79
|
-
t.getAttribute("data-product_name_trimming"),
|
|
80
|
-
!0
|
|
81
|
-
),
|
|
82
|
-
nameControlEnabled: i(
|
|
83
|
-
t.getAttribute("data-product_name_control_enabled"),
|
|
84
|
-
!0
|
|
85
|
-
),
|
|
86
|
-
priceHideDiscount: i(
|
|
87
|
-
t.getAttribute("data-product_price_hide_discount"),
|
|
88
|
-
!0
|
|
89
|
-
),
|
|
90
|
-
priceFormatted: i(
|
|
91
|
-
t.getAttribute("data-product_price_formatted"),
|
|
92
|
-
!0
|
|
93
|
-
),
|
|
94
|
-
priceCurrencySymbol: o(
|
|
95
|
-
t.getAttribute("data-product_price_currency_symbol"),
|
|
96
|
-
e.productPriceCurrencySymbolControlValue
|
|
97
|
-
),
|
|
98
|
-
priceCurrencyLocation: o(
|
|
99
|
-
t.getAttribute("data-product_price_currency_location"),
|
|
100
|
-
e.productPriceCurrencyLocationControlValue
|
|
101
|
-
),
|
|
102
|
-
priceControlOpened: i(
|
|
103
|
-
t.getAttribute("data-product_price_control_opened"),
|
|
104
|
-
!0
|
|
105
|
-
),
|
|
106
|
-
priceOrientation: t.getAttribute("data-product_original_price_control_orientation") || "horizontal",
|
|
107
|
-
quantityControlEnabled: i(
|
|
108
|
-
t.getAttribute("data-product_quantity_control_enabled"),
|
|
109
|
-
!0
|
|
110
|
-
),
|
|
111
|
-
buttonLink: o(
|
|
112
|
-
t.getAttribute("data-product_button_link"),
|
|
113
|
-
e.productButtonLinkControlValue
|
|
114
|
-
),
|
|
115
|
-
imageLink: o(
|
|
116
|
-
t.getAttribute("data-product_image_link"),
|
|
117
|
-
e.productImageLinkControlValue
|
|
118
|
-
),
|
|
119
|
-
buttonLabel: o(
|
|
120
|
-
t.getAttribute("data-product_button_control_label"),
|
|
121
|
-
"Buy"
|
|
122
|
-
),
|
|
123
|
-
imageVisible: i(
|
|
124
|
-
t.getAttribute("data-product_image_visible"),
|
|
125
|
-
!0
|
|
126
|
-
),
|
|
127
|
-
nameVisible: i(
|
|
128
|
-
t.getAttribute("data-product_name_visible"),
|
|
129
|
-
!0
|
|
130
|
-
),
|
|
131
|
-
quantityVisible: i(
|
|
132
|
-
t.getAttribute("data-product_quantity_visible"),
|
|
133
|
-
!0
|
|
134
|
-
),
|
|
135
|
-
priceVisible: i(
|
|
136
|
-
t.getAttribute("data-product_price_visible"),
|
|
137
|
-
!0
|
|
138
|
-
),
|
|
139
|
-
originalPriceVisible: i(
|
|
140
|
-
t.getAttribute("data-product_original_price_control_enabled"),
|
|
141
|
-
!0
|
|
142
|
-
),
|
|
143
|
-
buttonVisible: i(
|
|
144
|
-
t.getAttribute("data-product_button_visible"),
|
|
145
|
-
!0
|
|
146
|
-
)
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
function S(r) {
|
|
150
|
-
const t = s(r);
|
|
151
|
-
if (!t)
|
|
152
|
-
return null;
|
|
153
|
-
const i = t.getNodeConfig();
|
|
154
|
-
if (i && i.initialized)
|
|
155
|
-
return i;
|
|
156
|
-
const o = I(t);
|
|
157
|
-
return o || null;
|
|
158
|
-
}
|
|
159
|
-
function y(r, t, i) {
|
|
160
|
-
const o = s(r);
|
|
161
|
-
if (!o)
|
|
162
|
-
return;
|
|
163
|
-
const u = { ...o.getNodeConfig() || {}, ...i };
|
|
164
|
-
t.getDocumentModifier().modifyHtml(o).setNodeConfig(u).apply(new _("Update Items block configuration"));
|
|
165
|
-
}
|
|
166
|
-
export {
|
|
167
|
-
d as generateBlockInstanceId,
|
|
168
|
-
f as getDefaultItemsBlockConfig,
|
|
169
|
-
S as getItemsBlockConfig,
|
|
170
|
-
s as getItemsBlockContainer,
|
|
171
|
-
y as setItemsBlockConfig
|
|
172
|
-
};
|