@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.
Files changed (217) hide show
  1. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  2. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  3. package/dist/components/organisms/header/LeftSlot.vue.js +12 -12
  4. package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
  5. package/dist/config/migrator/index.js +8 -9
  6. package/dist/config/migrator/recommendationMigrator.js +2 -2
  7. package/dist/extensions/Blocks/Items/block.js +40 -39
  8. package/dist/extensions/Blocks/Items/controls/button/link.js +29 -22
  9. package/dist/extensions/Blocks/Items/controls/cardComposition.js +62 -50
  10. package/dist/extensions/Blocks/Items/controls/image/link.js +30 -23
  11. package/dist/extensions/Blocks/Items/controls/name/trimming.js +15 -13
  12. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +1 -1
  13. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +1 -1
  14. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +17 -15
  15. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +15 -15
  16. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +27 -29
  17. package/dist/extensions/Blocks/Items/controls/settingsControl.js +136 -145
  18. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -2
  19. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +48 -58
  20. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +58 -48
  21. package/dist/extensions/Blocks/Items/settingsPanel.js +4 -4
  22. package/dist/extensions/Blocks/Items/store/items-block.js +2 -2
  23. package/dist/extensions/Blocks/Items/template.js +125 -312
  24. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +44 -17
  25. package/dist/extensions/Blocks/Recommendation/block.js +40 -6
  26. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  27. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  28. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +64 -0
  29. package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
  30. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +108 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +110 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +207 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +148 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +74 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +124 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +71 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +124 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  55. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  56. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  57. package/dist/extensions/Blocks/Recommendation/services/configService.js +239 -0
  58. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  59. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +39 -34
  60. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +181 -0
  61. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +71 -0
  62. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  63. package/dist/extensions/Blocks/Recommendation/templates/utils.js +116 -0
  64. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +211 -0
  65. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +251 -0
  66. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +62 -0
  67. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  68. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  69. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  70. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  71. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  72. package/dist/extensions/Blocks/common-control.js +53 -64
  73. package/dist/extensions/Blocks/controlFactories.js +130 -106
  74. package/dist/guido.css +1 -1
  75. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +221 -173
  76. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  77. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +2 -0
  78. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +2 -0
  79. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  80. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +4 -0
  81. package/dist/src/extensions/Blocks/Items/template.d.ts +1 -20
  82. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +34 -0
  83. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  84. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  85. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  86. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  87. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
  88. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -0
  89. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  90. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  91. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  92. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  93. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  94. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +36 -0
  95. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  96. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +45 -0
  97. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  98. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +62 -0
  99. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  100. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
  101. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  102. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +100 -0
  103. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +16 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  114. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  115. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  116. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  117. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +17 -16
  118. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +8 -0
  119. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +25 -0
  120. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +18 -0
  121. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  122. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +45 -0
  123. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +7 -0
  124. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → vertical/migration.d.ts} +11 -4
  125. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +33 -0
  126. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  127. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +154 -0
  128. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  129. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  130. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  131. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  132. package/dist/src/extensions/Blocks/common-control.d.ts +8 -13
  133. package/dist/static/styles/components/wide-panel.css.js +0 -4
  134. package/dist/static/styles/customEditorStyle.css.js +38 -2
  135. package/package.json +1 -1
  136. package/dist/config/migrator/itemsBlockMigrator.js +0 -283
  137. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +0 -172
  138. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  139. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  140. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  141. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  142. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  143. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  144. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  145. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  146. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  147. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  148. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  149. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  150. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  151. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  152. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  153. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  154. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  155. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  156. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  157. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  158. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  159. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  160. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  161. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  162. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  163. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  164. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  165. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  166. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  167. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  168. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  169. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  170. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  171. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  172. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  173. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  174. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  175. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  176. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  177. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  178. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +0 -6
  179. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -71
  180. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  181. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  182. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  183. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  184. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  185. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  186. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  187. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  188. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  189. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  190. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  191. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  192. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  193. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  194. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  195. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  196. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  197. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  198. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  199. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  200. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  201. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  202. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  203. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  204. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  205. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  206. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  207. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  208. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  209. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  210. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  211. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  212. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  213. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  214. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  215. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  216. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  217. 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 Items block container element from the current node.
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 node config (Stripo V2) or legacy config block.
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 config when switching between block instances.
77
- * Uses Stripo V2 nodeConfig API for block instance tracking.
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
- .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-actions,
23
- .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-panel {
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.afc5689",
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*(&gt;|>)\s*\d+\s*%\}/g, "");
244
- return r = r.replace(/\{%\s*if\s+ins_apr_price_\d+\s*(!&#61;|!=)\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
- };