@useinsider/guido 2.1.0-beta.411f2a9 → 2.1.0-beta.425dfd0

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 (36) hide show
  1. package/dist/config/migrator/itemsBlockMigrator.js +123 -140
  2. package/dist/extensions/Blocks/Items/block.js +28 -19
  3. package/dist/extensions/Blocks/Items/controls/button/link.js +31 -19
  4. package/dist/extensions/Blocks/Items/controls/cardComposition.js +81 -97
  5. package/dist/extensions/Blocks/Items/controls/image/link.js +31 -19
  6. package/dist/extensions/Blocks/Items/controls/name/trimming.js +40 -28
  7. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +46 -34
  8. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +50 -45
  9. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +51 -40
  10. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +35 -23
  11. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +57 -45
  12. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +62 -42
  13. package/dist/extensions/Blocks/Items/controls/settingsControl.js +191 -184
  14. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -0
  15. package/dist/extensions/Blocks/Items/extension.js +9 -8
  16. package/dist/extensions/Blocks/Items/store/items-block.js +79 -0
  17. package/dist/extensions/Blocks/Items/template.js +175 -181
  18. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  19. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +3 -3
  20. package/dist/extensions/Blocks/common-control.js +92 -91
  21. package/dist/src/extensions/Blocks/Items/block.d.ts +1 -0
  22. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +1 -0
  23. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +1 -0
  24. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +1 -0
  25. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +1 -0
  26. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +1 -0
  27. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +1 -0
  28. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +1 -0
  29. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +1 -0
  30. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -0
  31. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +5 -0
  32. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +12 -10
  33. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +45 -0
  34. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +1 -2
  35. package/dist/src/extensions/Blocks/common-control.d.ts +5 -4
  36. package/package.json +1 -1
@@ -3,10 +3,12 @@ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
3
3
  import { CommonControl } from '../../common-control';
4
4
  export declare const CONTROL_BLOCK_ID = "ui-elements-items-block";
5
5
  export declare class ItemsBlockControl extends CommonControl {
6
+ private store;
6
7
  getId(): string;
7
8
  getTemplate(): string;
8
9
  onRender(): void;
9
10
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
11
+ onDestroy(): void;
10
12
  _getItemsType(): string;
11
13
  _getOrientation(): string;
12
14
  _getItemInCart(): string;
@@ -16,7 +18,7 @@ export declare class ItemsBlockControl extends CommonControl {
16
18
  _initializeSelectItems(): void;
17
19
  _listenToFormUpdates(): void;
18
20
  _renderTemplate(): void;
19
- _getTemplateData(itemsTypeOverride?: ProductType): {
21
+ _getTemplateData(): {
20
22
  imageSrc: string;
21
23
  name: string;
22
24
  price: string;
@@ -24,15 +26,15 @@ export declare class ItemsBlockControl extends CommonControl {
24
26
  quantity: string;
25
27
  button: string;
26
28
  };
27
- _updateImageSrc(imageSrc: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
28
- _updateName(name: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
29
- _updatePrice(price: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
30
- _updateOriginalPrice(originalPrice: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
31
- _updateQuantity(quantity: string, itemsTypeOverride: ProductType | undefined, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
32
- _reOrderTemplate(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
33
- _updateDataTypeAttributes(itemsType: ProductType, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
34
- _updateDataNumberAttributes(itemId: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
35
- _reFillTemplate(itemsType?: ProductType): void;
29
+ _updateImageSrc(imageSrc: string): void;
30
+ _updateName(name: string): void;
31
+ _updatePrice(price: string): void;
32
+ _updateOriginalPrice(originalPrice: string): void;
33
+ _updateQuantity(quantity: string): void;
34
+ _reOrderTemplate(): void;
35
+ _updateDataTypeAttributes(itemsType: ProductType): void;
36
+ _updateDataNumberAttributes(itemId: string): void;
37
+ _reFillTemplate(): void;
36
38
  _recalculateTrimming(): void;
37
39
  private _getParagraphFromBlock;
38
40
  private _escapeRegex;
@@ -0,0 +1,45 @@
1
+ import type { OrientationType, ProductType } from '@@/Types/extensions/items';
2
+ interface ItemsBlockState {
3
+ itemsType: ProductType;
4
+ itemIds: string;
5
+ imageLink: string;
6
+ buttonLink: string;
7
+ orientation: OrientationType;
8
+ nameTrimming: boolean;
9
+ hideDiscount: boolean;
10
+ currencySymbol: string;
11
+ currencyLocation: string;
12
+ formattedPrice: boolean;
13
+ singlePrice: boolean;
14
+ priceOrientation: 'vertical' | 'horizontal';
15
+ templateData: {
16
+ imageSrc: string;
17
+ name: string;
18
+ price: string;
19
+ originalPrice: string;
20
+ quantity: string;
21
+ button: string;
22
+ };
23
+ }
24
+ export declare const useItemsBlockStore: import("pinia").StoreDefinition<"guidoItemsBlock", ItemsBlockState, {}, {
25
+ setItemsType(itemsType: ProductType): void;
26
+ setItemIds(itemIds: string): void;
27
+ setImageLink(imageLink: string): void;
28
+ setButtonLink(buttonLink: string): void;
29
+ setOrientation(orientation: OrientationType): void;
30
+ setNameTrimming(nameTrimming: boolean): void;
31
+ setHideDiscount(hideDiscount: boolean): void;
32
+ setCurrencySymbol(currencySymbol: string): void;
33
+ setCurrencyLocation(currencyLocation: string): void;
34
+ setFormattedPrice(formattedPrice: boolean): void;
35
+ setSinglePrice(singlePrice: boolean): void;
36
+ setPriceOrientation(priceOrientation: "vertical" | "horizontal"): void;
37
+ setTemplateData(templateData: ItemsBlockState["templateData"]): void;
38
+ updateFromAttributes(attributes: {
39
+ itemsType?: string;
40
+ itemIds?: string;
41
+ orientation?: string;
42
+ }): void;
43
+ reset(): void;
44
+ }>;
45
+ export {};
@@ -66,9 +66,8 @@ export declare function getItemsBlockConfig(currentNode: ImmutableHtmlNode | und
66
66
  * @param currentNode - The current node from the control
67
67
  * @param api - The API object (ControlApi or BlockApi)
68
68
  * @param config - The configuration to set (partial update supported)
69
- * @param modifier - Optional document modifier for batching updates
70
69
  */
71
- export declare function setItemsBlockConfig(currentNode: ImmutableHtmlNode | undefined, api: ControlApi | BlockApi, config: Partial<ItemsBlockConfig>, modifier?: ReturnType<typeof api.getDocumentModifier>): void;
70
+ export declare function setItemsBlockConfig(currentNode: ImmutableHtmlNode | undefined, api: ControlApi | BlockApi, config: Partial<ItemsBlockConfig>): void;
72
71
  /**
73
72
  * Gets the block instance ID from the node config.
74
73
  * @param currentNode - The current node from the control
@@ -66,13 +66,14 @@ export declare abstract class CommonControl extends Control {
66
66
  */
67
67
  protected getBlockInstanceId(): string | null;
68
68
  /**
69
- * Handles block instance change detection and UI updates.
70
- * This is a helper method for controls that need to update UI when switching between block instances.
69
+ * Handles block instance change detection and syncing.
70
+ * This is a helper method for controls that need to sync config when switching between block instances.
71
71
  * Uses Stripo V2 nodeConfig API for block instance tracking.
72
- * @param updateUI - Function to call to update the UI (called on every update)
72
+ * @param syncFunction - Function to call when block instance changes (to sync from node config)
73
+ * @param updateUI - Function to call to update the UI (called both on change and when same block)
73
74
  * @returns true if block instance changed, false otherwise
74
75
  */
75
- protected handleBlockInstanceChange(updateUI: () => void): boolean;
76
+ protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void): boolean;
76
77
  _GuLabel({ text, name }: LabelProps): string;
77
78
  _GuToggle(name: string): string;
78
79
  _GuSelectItem({ text, value }: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.1.0-beta.411f2a9",
3
+ "version": "2.1.0-beta.425dfd0",
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",