@useinsider/guido 2.1.0-beta.e13d291 → 2.1.0-beta.e2d48fe

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 (152) hide show
  1. package/dist/config/migrator/itemsBlockMigrator.js +140 -123
  2. package/dist/config/migrator/recommendationMigrator.js +2 -2
  3. package/dist/extensions/Blocks/Items/block.js +19 -28
  4. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  5. package/dist/extensions/Blocks/Items/controls/cardComposition.js +124 -85
  6. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  7. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  8. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +34 -46
  9. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +45 -50
  10. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +40 -51
  11. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -35
  12. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  13. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -62
  14. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  15. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  16. package/dist/extensions/Blocks/Items/extension.js +8 -9
  17. package/dist/extensions/Blocks/Items/template.js +181 -175
  18. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  19. package/dist/extensions/Blocks/Recommendation/block.js +6 -40
  20. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +187 -0
  21. package/dist/extensions/Blocks/Recommendation/constants.js +13 -0
  22. package/dist/extensions/Blocks/Recommendation/control.js +336 -0
  23. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  24. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  25. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  26. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscount/textAfter.js → omnibusDiscountTextAfterControl.js} +14 -16
  27. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscount/textBefore.js → omnibusDiscountTextBeforeControl.js} +14 -16
  28. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPrice/textAfter.js → omnibusPriceTextAfterControl.js} +14 -16
  29. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPrice/textBefore.js → omnibusPriceTextBeforeControl.js} +12 -14
  30. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  31. package/dist/extensions/Blocks/Recommendation/extension.js +17 -40
  32. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +3 -19
  33. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +4 -13
  34. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +10 -21
  35. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +36 -41
  36. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +181 -0
  37. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +189 -0
  38. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +209 -0
  39. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  40. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +16 -27
  41. package/dist/extensions/Blocks/common-control.js +91 -92
  42. package/dist/extensions/Blocks/controlFactories.js +93 -125
  43. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +169 -223
  44. package/dist/package.json.js +1 -1
  45. package/dist/services/recommendationApi.js +9 -10
  46. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  47. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  48. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  49. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  50. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  51. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  52. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  53. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  54. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  55. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  56. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  57. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  58. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  59. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  60. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -34
  61. package/dist/src/extensions/Blocks/Recommendation/{controls/cardComposition/index.d.ts → cardCompositionControl.d.ts} +3 -23
  62. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +24 -0
  63. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +38 -0
  64. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +589 -21
  65. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  66. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +16 -17
  67. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  68. package/dist/src/extensions/Blocks/Recommendation/templates/{grid/migration.d.ts → migrationTemplate.d.ts} +4 -11
  69. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +52 -0
  70. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  71. package/dist/static/styles/customEditorStyle.css.js +2 -25
  72. package/package.json +2 -2
  73. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  74. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  75. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  76. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +0 -64
  77. package/dist/extensions/Blocks/Recommendation/constants/layout.js +0 -20
  78. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -19
  79. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  80. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -80
  81. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -232
  82. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  83. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -96
  84. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +0 -110
  85. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +0 -204
  86. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +0 -54
  87. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -205
  88. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +0 -74
  89. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +0 -118
  90. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +0 -71
  91. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +0 -286
  92. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  93. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -76
  94. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  95. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  96. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  97. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  98. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -222
  99. package/dist/extensions/Blocks/Recommendation/services/configService.js +0 -239
  100. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +0 -233
  101. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +0 -251
  102. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +0 -69
  103. package/dist/extensions/Blocks/Recommendation/templates/index.js +0 -12
  104. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +0 -174
  105. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +0 -73
  106. package/dist/extensions/Blocks/Recommendation/templates/utils.js +0 -121
  107. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +0 -6
  108. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +0 -29
  109. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +0 -46
  110. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  111. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  112. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -49
  113. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -13
  114. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +0 -35
  115. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -31
  116. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  117. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -31
  118. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  119. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -37
  120. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -29
  121. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +0 -45
  122. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +0 -22
  123. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -57
  124. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +0 -24
  125. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -42
  126. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -23
  127. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +0 -214
  128. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  129. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -16
  130. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  131. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  132. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  133. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  134. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  135. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  136. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  137. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  138. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -83
  139. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +0 -151
  140. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +0 -6
  141. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +0 -20
  142. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +0 -33
  143. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +0 -39
  144. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +0 -8
  145. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +0 -25
  146. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +0 -18
  147. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +0 -54
  148. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +0 -7
  149. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -154
  150. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +0 -33
  151. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +0 -113
  152. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +0 -77
@@ -1,4 +1,4 @@
1
- const o = { stripo: { version: "2.52.0" } }, s = {
1
+ const o = { stripo: { version: "2.54.0" } }, s = {
2
2
  guido: o
3
3
  };
4
4
  export {
@@ -1,7 +1,7 @@
1
- import { useHttp as a } from "../composables/useHttp.js";
2
- import { URLS as s } from "../enums/extensions/recommendationBlock.js";
3
- const u = () => {
4
- const { get: o } = a();
1
+ import { useHttp as c } from "../composables/useHttp.js";
2
+ import { URLS as a } from "../enums/extensions/recommendationBlock.js";
3
+ const R = () => {
4
+ const { get: o } = c();
5
5
  return {
6
6
  fetchRecommendationCreateData: async () => {
7
7
  try {
@@ -18,15 +18,14 @@ const u = () => {
18
18
  throw console.error("fetchRecommendationFilters error:", e), e;
19
19
  }
20
20
  },
21
- fetchRecommendationProducts: async (e, c) => {
22
- var n;
21
+ fetchRecommendationProducts: async (e, n) => {
23
22
  try {
24
- const t = decodeURIComponent(new URLSearchParams(Object.entries(c)).toString());
23
+ const t = decodeURIComponent(new URLSearchParams(Object.entries(n)).toString());
25
24
  console.debug("🏁 Recommendation API Query:", t);
26
25
  const r = await o(
27
- `${s.RECOMMENDATION_API_URL}/v2/${e}?${t}`
26
+ `${a.RECOMMENDATION_API_URL}/v2/${e}?${t}`
28
27
  );
29
- return ((n = r == null ? void 0 : r.data) == null ? void 0 : n.data) ?? [];
28
+ return (r == null ? void 0 : r.data) ?? [];
30
29
  } catch (t) {
31
30
  throw console.error("fetchRecommendationProducts error:", t), t;
32
31
  }
@@ -34,5 +33,5 @@ const u = () => {
34
33
  };
35
34
  };
36
35
  export {
37
- u as useRecommendationApi
36
+ R as useRecommendationApi
38
37
  };
@@ -33,8 +33,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_WithDefaults<
33
33
  descriptionStatus: boolean;
34
34
  descriptionText: string;
35
35
  }>>>, {
36
- size: "small" | "medium" | "large";
37
36
  className: string;
37
+ size: "small" | "medium" | "large";
38
38
  closeOnOutsideClick: boolean;
39
39
  descriptionStatus: boolean;
40
40
  descriptionText: string;
@@ -23,5 +23,4 @@ export declare class ItemsBlock extends Block {
23
23
  getTemplate(): string;
24
24
  allowInnerBlocksDND(): boolean;
25
25
  onCreated(node: ImmutableHtmlNode): void;
26
- onSelect(node: ImmutableHtmlNode): void;
27
26
  }
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.BUTTON_LINK;
5
5
  export declare class ButtonLinkControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -2,7 +2,6 @@ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
2
  import { CommonControl } from '../../common-control';
3
3
  export declare const COMPOSITION_CONTROL_BLOCK_ID = "ui-elements-items-card-composition-block";
4
4
  export declare class ItemsBlockCardCompositionControl extends CommonControl {
5
- private store;
6
5
  private visibilityState;
7
6
  getId(): string;
8
7
  getTemplate(): string;
@@ -19,10 +18,11 @@ export declare class ItemsBlockCardCompositionControl extends CommonControl {
19
18
  * If itemsType is not BROWSED_ITEMS, show quantity
20
19
  * If itemsType is BROWSED_ITEMS, hide quantity
21
20
  * and mark it as '0'
21
+ * @param syncOnly - If true, only sync local state and UI without modifying the document
22
22
  */
23
- _handleBrowsedItemsQuantity(): void;
24
- _applyVisibilityStyles(): void;
25
- _updateVisibilityAttribute(elementName: string, isVisible: boolean): void;
23
+ _handleBrowsedItemsQuantity(syncOnly?: boolean): void;
24
+ _applyVisibilityStyles(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
25
+ _updateVisibilityAttribute(elementName: string, isVisible: boolean, modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
26
26
  _listenToFormUpdates(): void;
27
27
  _onProductImageChange(value: boolean): void;
28
28
  _onProductNameChange(value: boolean): void;
@@ -37,6 +37,6 @@ export declare class ItemsBlockCardCompositionControl extends CommonControl {
37
37
  * - When price is hidden, original price cell expands to 100%
38
38
  * - When both are visible, they share 50% each
39
39
  */
40
- _updatePriceCellWidthsForVerticalLayout(): void;
40
+ _updatePriceCellWidthsForVerticalLayout(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
41
41
  _onProductButtonChange(value: boolean): void;
42
42
  }
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.IMAGE_LINK;
5
5
  export declare class ImageLinkControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.NAME_TRIMMING;
5
5
  export declare class NameTrimmingControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_CURRENCY_LOCATION;
5
5
  export declare class PriceCurrencyLocationControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_CURRENCY_SYMBOL;
5
5
  export declare class PriceCurrencySymbolControl extends CommonControl {
6
- private store;
7
6
  private originalPriceContents;
8
7
  getId(): string;
9
8
  getTemplate(): string;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_FORMATTED_PRICE;
5
5
  export declare class PriceFormattedPriceControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_HIDE_DISCOUNT;
5
5
  export declare class PriceHideDiscountControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_ORIENTATION;
5
5
  export declare class PriceOrientationControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,15 +3,10 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_SINGLE_PRICE;
5
5
  export declare class PriceSinglePriceControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
10
9
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
11
- /**
12
- * Syncs single price state from nodeConfig.
13
- */
14
- private _syncSinglePriceFromNodeConfig;
15
10
  _onSinglePriceChange(value: boolean): void;
16
11
  private _updatePriceBlock;
17
12
  _getSinglePrice(): string;
@@ -3,12 +3,10 @@ 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;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
10
9
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
11
- onDestroy(): void;
12
10
  _getItemsType(): string;
13
11
  _getOrientation(): string;
14
12
  _getItemInCart(): string;
@@ -18,7 +16,7 @@ export declare class ItemsBlockControl extends CommonControl {
18
16
  _initializeSelectItems(): void;
19
17
  _listenToFormUpdates(): void;
20
18
  _renderTemplate(): void;
21
- _getTemplateData(): {
19
+ _getTemplateData(itemsTypeOverride?: ProductType, itemIdOverride?: string): {
22
20
  imageSrc: string;
23
21
  name: string;
24
22
  price: string;
@@ -26,15 +24,15 @@ export declare class ItemsBlockControl extends CommonControl {
26
24
  quantity: string;
27
25
  button: string;
28
26
  };
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;
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;
38
36
  _recalculateTrimming(): void;
39
37
  private _getParagraphFromBlock;
40
38
  private _escapeRegex;
@@ -66,8 +66,9 @@ 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
69
70
  */
70
- export declare function setItemsBlockConfig(currentNode: ImmutableHtmlNode | undefined, api: ControlApi | BlockApi, config: Partial<ItemsBlockConfig>): void;
71
+ export declare function setItemsBlockConfig(currentNode: ImmutableHtmlNode | undefined, api: ControlApi | BlockApi, config: Partial<ItemsBlockConfig>, modifier?: ReturnType<typeof api.getDocumentModifier>): void;
71
72
  /**
72
73
  * Gets the block instance ID from the node config.
73
74
  * @param currentNode - The current node from the control
@@ -1,10 +1,3 @@
1
- /**
2
- * Recommendation Block
3
- *
4
- * Main block class for the Recommendation extension.
5
- * Handles block lifecycle including configuration initialization and migration.
6
- */
7
- import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
8
1
  import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
9
2
  export declare const BLOCK_ID = "recommendation-block";
10
3
  export declare class RecommendationBlock extends Block {
@@ -15,31 +8,4 @@ export declare class RecommendationBlock extends Block {
15
8
  getName(): string;
16
9
  getDescription(): string;
17
10
  getTemplate(): string;
18
- /**
19
- * Called when a new block is dropped into the template
20
- *
21
- * Initializes the block with default configuration stored via node config.
22
- * This ensures the configuration persists with the template.
23
- * @param node - The newly created block node
24
- */
25
- onCreated(node: ImmutableHtmlNode): void;
26
- /**
27
- * Called when the document changes or template is loaded
28
- *
29
- * Handles migration from legacy templates that don't have node config.
30
- * Also handles config version upgrades for future migrations.
31
- * @param node - The block node that may need migration
32
- */
33
- onDocumentChanged(node: ImmutableHtmlNode): void;
34
- /**
35
- * Migrate configuration from legacy format
36
- *
37
- * Legacy templates may store configuration in:
38
- * - data-attributes (data-layout, data-card-composition, etc.)
39
- * - Pinia store (lost on reload - this is what we're fixing)
40
- *
41
- * This method reads what we can from the DOM and initializes proper node config.
42
- * @param node - The block node to migrate
43
- */
44
- private _migrateFromLegacy;
45
11
  }
@@ -1,5 +1,5 @@
1
1
  import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
- import { CommonControl } from '../../../common-control';
2
+ import { CommonControl } from '../common-control';
3
3
  export declare const COMPOSITION_CONTROL_BLOCK_ID = "ui-elements-recommendation-card-composition";
4
4
  export interface CardCompositionItem {
5
5
  key: string;
@@ -7,8 +7,6 @@ export interface CardCompositionItem {
7
7
  visible: boolean;
8
8
  }
9
9
  export declare class RecommendationCardCompositionControl extends CommonControl {
10
- private store;
11
- private unsubscribeOrientation;
12
10
  getId(): string;
13
11
  getTemplate(): string;
14
12
  onRender(): void;
@@ -59,12 +57,10 @@ export declare class RecommendationCardCompositionControl extends CommonControl
59
57
  /**
60
58
  * Apply the reordered composition to the block's HTML structure
61
59
  * Updates the data-card-composition attribute and reorders product attributes
62
- * Note: Reordering is only applied for grid layout
63
60
  */
64
61
  private _applyCompositionToBlock;
65
62
  /**
66
- * Reorders attribute rows within each product card based on composition order
67
- * Targets the tbody inside each product-attribute-cell to preserve card structure
63
+ * Reorders attribute rows within each product row based on composition order
68
64
  */
69
65
  private _reorderProductAttributes;
70
66
  /**
@@ -73,23 +69,7 @@ export declare class RecommendationCardCompositionControl extends CommonControl
73
69
  private _buildCompositionHtml;
74
70
  /**
75
71
  * Apply visibility changes to the block's HTML structure
76
- * Updates display style and data-visibility attribute for all matching elements
77
- * - <tr> elements: use display: none / table-row
78
- * - <td> elements: use display: none / table-cell
72
+ * Updates display style and data-visibility attribute for all matching rows
79
73
  */
80
74
  private _applyVisibilityToBlock;
81
- /**
82
- * Gets the current layout orientation from store or DOM
83
- */
84
- private _getCurrentLayout;
85
- /**
86
- * Updates orderable state based on layout orientation
87
- * Adds/removes disabled class to hide drag icons for list layout
88
- */
89
- private _updateOrderableState;
90
- /**
91
- * Subscribe to store orientation changes
92
- * Updates orderable state when layout changes via the layout control
93
- */
94
- private _subscribeToOrientationChanges;
95
75
  }
@@ -1,3 +1,27 @@
1
+ /**
2
+ * Attribute type constants used in templates
3
+ * These are used as keys in ElementRenderer and composition arrays
4
+ */
5
+ export declare const ATTR_PRODUCT_IMAGE = "productImage";
6
+ export declare const ATTR_PRODUCT_NAME = "productName";
7
+ export declare const ATTR_PRODUCT_PRICE = "productPrice";
8
+ export declare const ATTR_PRODUCT_OLD_PRICE = "productOldPrice";
9
+ export declare const ATTR_PRODUCT_OMNIBUS_PRICE = "productOmnibusPrice";
10
+ export declare const ATTR_PRODUCT_OMNIBUS_DISCOUNT = "productOmnibusDiscount";
11
+ export declare const ATTR_PRODUCT_BUTTON = "productButton";
12
+ /**
13
+ * Block IDs used in the Recommendation Extension
14
+ * These IDs are used in the esd-extension-block-id attribute to identify specific blocks
15
+ */
16
+ export declare enum RecommendationBlockId {
17
+ BUTTON = "recommendation-block-button",
18
+ NAME = "recommendation-block-name",
19
+ PRICE = "recommendation-block-price",
20
+ OLD_PRICE = "recommendation-block-old-price",
21
+ OMNIBUS_PRICE = "recommendation-block-omnibus-price",
22
+ OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount",
23
+ IMAGE = "recommendation-block-image"
24
+ }
1
25
  /**
2
26
  * Control IDs used in the Recommendation Extension
3
27
  * These IDs are returned by the getId() method of each control
@@ -0,0 +1,38 @@
1
+ import { CommonControl } from '../common-control';
2
+ export declare const CONTROL_BLOCK_ID = "ui-elements-recommendation-block";
3
+ export declare class RecommendationBlockControl extends CommonControl {
4
+ private store;
5
+ private storeUnsubscription;
6
+ private addFilterListener;
7
+ private addFilterButton;
8
+ getId(): string;
9
+ getTemplate(): string;
10
+ onRender(): Promise<void>;
11
+ onDestroy(): void;
12
+ _setFormValues(): void;
13
+ _initializeSelectItems(): void;
14
+ _getAlgorithms(): string;
15
+ _getLanguages(): string;
16
+ _getCurrency(): string;
17
+ _getProductLayout(): string;
18
+ _getFilterStatus(): string;
19
+ _getShuffleProducts(): string;
20
+ _onFilterSelectClick(): void;
21
+ _onDataChange(item: string, value: string | number | string[]): void;
22
+ /**
23
+ * Get the current card composition from block data attribute or use default
24
+ */
25
+ _getCardComposition(): string[];
26
+ _regenerateProductRows(): void;
27
+ /**
28
+ * Reapply spacing values after product regeneration
29
+ * This ensures spacing persists when products are regenerated
30
+ */
31
+ _reapplySpacing(): void;
32
+ _debouncedRegenerateProductRows: import("@vueuse/shared").PromisifyFn<() => void>;
33
+ _onCurrencyConfigChange(item: string, value: string | number): void;
34
+ _onCurrencyChange(value: string): void;
35
+ _setProductIdsVisibility(): void;
36
+ _listenToFormUpdates(): void;
37
+ _listenStateUpdates(): void;
38
+ }