@useinsider/guido 3.20.1 → 3.21.0

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 (56) hide show
  1. package/dist/components/Guido.vue.js +1 -1
  2. package/dist/components/Guido.vue2.js +65 -64
  3. package/dist/components/organisms/AutoSaveController.vue2.js +10 -9
  4. package/dist/components/organisms/header/EditorActions.vue.js +4 -4
  5. package/dist/components/organisms/header/EditorActions.vue2.js +53 -51
  6. package/dist/components/organisms/validation/ValidationErrorDrawer.vue.js +3 -3
  7. package/dist/components/organisms/validation/ValidationErrorDrawer.vue2.js +23 -22
  8. package/dist/composables/useAutoSave.js +46 -44
  9. package/dist/composables/useLegacyStrategyConversion.js +16 -16
  10. package/dist/composables/useSave.js +26 -23
  11. package/dist/composables/useSaveValidation.js +113 -114
  12. package/dist/composables/useSaveValidationRollout.js +17 -6
  13. package/dist/composables/useStripo.js +4 -3
  14. package/dist/extensions/Blocks/Items/block.js +43 -42
  15. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +296 -223
  16. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +221 -203
  17. package/dist/extensions/Blocks/Recommendation/utils/blockRefresh.js +19 -0
  18. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +51 -36
  19. package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +31 -35
  20. package/dist/extensions/Blocks/Unsubscribe/block.js +70 -75
  21. package/dist/guido.css +1 -1
  22. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +271 -192
  23. package/dist/package.json.js +1 -1
  24. package/dist/services/settingsApi.js +11 -0
  25. package/dist/src/components/Guido.vue.d.ts +1 -1
  26. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  27. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  28. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  29. package/dist/src/composables/useAutoSave.d.ts +4 -1
  30. package/dist/src/composables/useSaveValidationRollout.d.ts +1 -0
  31. package/dist/src/extensions/Blocks/Checkbox/controls/blockBackground/index.d.ts +1 -0
  32. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +8 -0
  33. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +40 -0
  34. package/dist/src/extensions/Blocks/RadioButton/controls/blockBackground/index.d.ts +1 -0
  35. package/dist/src/extensions/Blocks/Recommendation/controls/blockBackground/index.d.ts +1 -0
  36. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +11 -0
  37. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +7 -0
  38. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +2 -0
  39. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +18 -3
  40. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +7 -0
  41. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +7 -0
  42. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +7 -0
  43. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +7 -0
  44. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +7 -0
  45. package/dist/src/extensions/Blocks/Recommendation/controls/title/index.d.ts +7 -0
  46. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +9 -1
  47. package/dist/src/extensions/Blocks/Recommendation/utils/blockRefresh.d.ts +17 -0
  48. package/dist/src/extensions/Blocks/Recommendation/utils/nodeConfigWriter.d.ts +7 -0
  49. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +1 -6
  50. package/dist/src/extensions/Blocks/_Boilerplate/controls/blockBackground/index.d.ts +1 -0
  51. package/dist/src/extensions/Blocks/controlFactories.d.ts +22 -0
  52. package/dist/src/services/settingsApi.d.ts +6 -0
  53. package/dist/src/stores/setup-settings.d.ts +4 -0
  54. package/dist/static/styles/components/button.css.js +5 -0
  55. package/dist/stores/setup-settings.js +10 -0
  56. package/package.json +4 -4
@@ -30,6 +30,7 @@ export declare const CustomAttributeControls: {
30
30
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
31
31
  getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
32
32
  isVisible(_node: ImmutableHtmlNode): boolean;
33
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
33
34
  };
34
35
  };
35
36
  readonly color: {
@@ -42,6 +43,7 @@ export declare const CustomAttributeControls: {
42
43
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
43
44
  getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
44
45
  isVisible(_node: ImmutableHtmlNode): boolean;
46
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
45
47
  };
46
48
  };
47
49
  readonly size: {
@@ -54,6 +56,7 @@ export declare const CustomAttributeControls: {
54
56
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
55
57
  getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
56
58
  isVisible(_node: ImmutableHtmlNode): boolean;
59
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
57
60
  };
58
61
  };
59
62
  readonly style: {
@@ -66,6 +69,7 @@ export declare const CustomAttributeControls: {
66
69
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
67
70
  getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
68
71
  isVisible(_node: ImmutableHtmlNode): boolean;
72
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
69
73
  };
70
74
  };
71
75
  readonly fontFamily: {
@@ -78,6 +82,7 @@ export declare const CustomAttributeControls: {
78
82
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
79
83
  getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
80
84
  isVisible(_node: ImmutableHtmlNode): boolean;
85
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
81
86
  };
82
87
  };
83
88
  readonly background: {
@@ -90,6 +95,7 @@ export declare const CustomAttributeControls: {
90
95
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
91
96
  getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
92
97
  isVisible(_node: ImmutableHtmlNode): boolean;
98
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
93
99
  };
94
100
  };
95
101
  readonly paddings: {
@@ -102,6 +108,7 @@ export declare const CustomAttributeControls: {
102
108
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
103
109
  getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
104
110
  isVisible(_node: ImmutableHtmlNode): boolean;
111
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
105
112
  };
106
113
  };
107
114
  readonly textTrim: typeof CustomAttributeTextTrimControl;
@@ -18,6 +18,7 @@ export declare const ImageControls: {
18
18
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
19
19
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
20
20
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
21
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
21
22
  };
22
23
  };
23
24
  readonly margins: {
@@ -30,6 +31,7 @@ export declare const ImageControls: {
30
31
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
31
32
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
32
33
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
34
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
33
35
  };
34
36
  };
35
37
  };
@@ -22,6 +22,11 @@ export declare class RecommendationBlockControl extends CommonControl {
22
22
  private storeUnsubscription;
23
23
  private pendingNodeConfigWrite;
24
24
  private pendingConfigFlushTimer;
25
+ private trackedBlockId;
26
+ private fetchedConfigVersion;
27
+ private hasUnrenderedProducts;
28
+ private panelGeneration;
29
+ private isPanelAlive;
25
30
  private algorithmControl;
26
31
  private localeControl;
27
32
  private currencyControl;
@@ -73,6 +78,7 @@ export declare class RecommendationBlockControl extends CommonControl {
73
78
  /** Whether the deferred write would move the node's strategyId — see the caller (SD-149916). */
74
79
  private _isPendingStrategyIdChange;
75
80
  private _capturePendingNodeConfigWrite;
81
+ private _getNodeConfigUpdates;
76
82
  /**
77
83
  * Accumulates the pending write into `documentModifier` without applying, so the
78
84
  * caller's apply() commits config and re-render as ONE undo entry.
@@ -93,8 +99,8 @@ export declare class RecommendationBlockControl extends CommonControl {
93
99
  private _clearConfigFlush;
94
100
  /**
95
101
  * Writes the deferred change standalone when the batch it was staged into never
96
- * committed. Always targets the LIVE node — the captured one is an immutable
97
- * snapshot the intervening re-render staled, and saveConfig swallows that failure.
102
+ * committed. Always targets a LIVE node — a captured one is an immutable snapshot
103
+ * the intervening re-render staled, and saveConfig swallows that failure.
98
104
  */
99
105
  private _flushPendingNodeConfig;
100
106
  private _syncNodeConfigToStore;
@@ -108,6 +114,7 @@ export declare class RecommendationBlockControl extends CommonControl {
108
114
  * Marks the block as initialized to prevent redundant fetches on re-selection.
109
115
  */
110
116
  private _fetchBlockData;
117
+ private _isPanelOn;
111
118
  /**
112
119
  * Applies smart defaults for newly dropped blocks.
113
120
  *
@@ -127,6 +134,14 @@ export declare class RecommendationBlockControl extends CommonControl {
127
134
  * Debounced product fetch to prevent rapid API calls during config changes
128
135
  */
129
136
  private _debouncedFetchProducts;
137
+ /**
138
+ * Lands what the panel still owes its block before it stops watching it: the config now, the
139
+ * products through a block-scoped refresh. Never throws — it runs from Stripo's teardown.
140
+ */
141
+ private _finishBlockOutsidePanel;
142
+ private _trackedBlockSnapshot;
143
+ private _refreshOutsidePanel;
144
+ private _getBlockConfigVersion;
130
145
  /**
131
146
  * Debounced content update when products arrive from API.
132
147
  *
@@ -144,7 +159,7 @@ export declare class RecommendationBlockControl extends CommonControl {
144
159
  /**
145
160
  * Listen to store changes that require product refresh or regeneration.
146
161
  *
147
- * Uses configVersion counter (incremented only by patchCurrentBlockConfig)
162
+ * Uses the block's configVersion counter (bumped by patchCurrentBlockConfig and legacy conversion)
148
163
  * to distinguish user-initiated config changes from internal mutations
149
164
  * (e.g., fetchRecommendationCreateData setting preferred currency).
150
165
  *
@@ -19,6 +19,7 @@ export declare const NameControls: {
19
19
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
20
20
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
21
21
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
22
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
22
23
  };
23
24
  };
24
25
  readonly color: {
@@ -31,6 +32,7 @@ export declare const NameControls: {
31
32
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
32
33
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
33
34
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
35
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
34
36
  };
35
37
  };
36
38
  readonly size: {
@@ -43,6 +45,7 @@ export declare const NameControls: {
43
45
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
44
46
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
45
47
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
48
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
46
49
  };
47
50
  };
48
51
  readonly style: {
@@ -55,6 +58,7 @@ export declare const NameControls: {
55
58
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
56
59
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
57
60
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
61
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
58
62
  };
59
63
  };
60
64
  readonly fontFamily: {
@@ -67,6 +71,7 @@ export declare const NameControls: {
67
71
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
68
72
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
69
73
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
74
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
70
75
  };
71
76
  };
72
77
  readonly background: {
@@ -79,6 +84,7 @@ export declare const NameControls: {
79
84
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
80
85
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
81
86
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
87
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
82
88
  };
83
89
  };
84
90
  readonly paddings: {
@@ -91,6 +97,7 @@ export declare const NameControls: {
91
97
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
92
98
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
93
99
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
100
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
94
101
  };
95
102
  };
96
103
  readonly textTrim: typeof NameTextTrimControl;
@@ -18,6 +18,7 @@ export declare const OldPriceControls: {
18
18
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
19
19
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
20
20
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
21
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
21
22
  };
22
23
  };
23
24
  readonly color: {
@@ -30,6 +31,7 @@ export declare const OldPriceControls: {
30
31
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
31
32
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
32
33
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
34
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
33
35
  };
34
36
  };
35
37
  readonly size: {
@@ -42,6 +44,7 @@ export declare const OldPriceControls: {
42
44
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
43
45
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
44
46
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
47
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
45
48
  };
46
49
  };
47
50
  readonly style: {
@@ -54,6 +57,7 @@ export declare const OldPriceControls: {
54
57
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
55
58
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
56
59
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
60
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
57
61
  };
58
62
  };
59
63
  readonly fontFamily: {
@@ -66,6 +70,7 @@ export declare const OldPriceControls: {
66
70
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
67
71
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
68
72
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
73
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
69
74
  };
70
75
  };
71
76
  readonly background: {
@@ -78,6 +83,7 @@ export declare const OldPriceControls: {
78
83
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
79
84
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
80
85
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
86
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
81
87
  };
82
88
  };
83
89
  readonly paddings: {
@@ -90,6 +96,7 @@ export declare const OldPriceControls: {
90
96
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
91
97
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
92
98
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
99
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
93
100
  };
94
101
  };
95
102
  };
@@ -21,6 +21,7 @@ export declare const OmnibusDiscountControls: {
21
21
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
22
22
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
23
23
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
24
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
24
25
  };
25
26
  };
26
27
  readonly color: {
@@ -33,6 +34,7 @@ export declare const OmnibusDiscountControls: {
33
34
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
34
35
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
35
36
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
37
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
36
38
  };
37
39
  };
38
40
  readonly size: {
@@ -45,6 +47,7 @@ export declare const OmnibusDiscountControls: {
45
47
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
46
48
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
47
49
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
50
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
48
51
  };
49
52
  };
50
53
  readonly style: {
@@ -57,6 +60,7 @@ export declare const OmnibusDiscountControls: {
57
60
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
58
61
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
59
62
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
63
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
60
64
  };
61
65
  };
62
66
  readonly fontFamily: {
@@ -69,6 +73,7 @@ export declare const OmnibusDiscountControls: {
69
73
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
70
74
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
71
75
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
76
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
72
77
  };
73
78
  };
74
79
  readonly background: {
@@ -81,6 +86,7 @@ export declare const OmnibusDiscountControls: {
81
86
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
82
87
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
83
88
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
89
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
84
90
  };
85
91
  };
86
92
  readonly paddings: {
@@ -93,6 +99,7 @@ export declare const OmnibusDiscountControls: {
93
99
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
94
100
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
95
101
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
102
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
96
103
  };
97
104
  };
98
105
  readonly textBefore: typeof OmnibusDiscountTextBeforeControl;
@@ -21,6 +21,7 @@ export declare const OmnibusPriceControls: {
21
21
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
22
22
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
23
23
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
24
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
24
25
  };
25
26
  };
26
27
  readonly color: {
@@ -33,6 +34,7 @@ export declare const OmnibusPriceControls: {
33
34
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
34
35
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
35
36
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
37
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
36
38
  };
37
39
  };
38
40
  readonly size: {
@@ -45,6 +47,7 @@ export declare const OmnibusPriceControls: {
45
47
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
46
48
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
47
49
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
50
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
48
51
  };
49
52
  };
50
53
  readonly style: {
@@ -57,6 +60,7 @@ export declare const OmnibusPriceControls: {
57
60
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
58
61
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
59
62
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
63
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
60
64
  };
61
65
  };
62
66
  readonly fontFamily: {
@@ -69,6 +73,7 @@ export declare const OmnibusPriceControls: {
69
73
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
70
74
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
71
75
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
76
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
72
77
  };
73
78
  };
74
79
  readonly background: {
@@ -81,6 +86,7 @@ export declare const OmnibusPriceControls: {
81
86
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
82
87
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
83
88
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
89
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
84
90
  };
85
91
  };
86
92
  readonly paddings: {
@@ -93,6 +99,7 @@ export declare const OmnibusPriceControls: {
93
99
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
94
100
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
95
101
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
102
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
96
103
  };
97
104
  };
98
105
  readonly textBefore: typeof OmnibusPriceTextBeforeControl;
@@ -18,6 +18,7 @@ export declare const PriceControls: {
18
18
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
19
19
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
20
20
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
21
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
21
22
  };
22
23
  };
23
24
  readonly color: {
@@ -30,6 +31,7 @@ export declare const PriceControls: {
30
31
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
31
32
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
32
33
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
34
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
33
35
  };
34
36
  };
35
37
  readonly size: {
@@ -42,6 +44,7 @@ export declare const PriceControls: {
42
44
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
43
45
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
44
46
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
47
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
45
48
  };
46
49
  };
47
50
  readonly style: {
@@ -54,6 +57,7 @@ export declare const PriceControls: {
54
57
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
55
58
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
56
59
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
60
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
57
61
  };
58
62
  };
59
63
  readonly fontFamily: {
@@ -66,6 +70,7 @@ export declare const PriceControls: {
66
70
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
67
71
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
68
72
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
73
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
69
74
  };
70
75
  };
71
76
  readonly background: {
@@ -78,6 +83,7 @@ export declare const PriceControls: {
78
83
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
79
84
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
80
85
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
86
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
81
87
  };
82
88
  };
83
89
  readonly paddings: {
@@ -90,6 +96,7 @@ export declare const PriceControls: {
90
96
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
91
97
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
92
98
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
99
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
93
100
  };
94
101
  };
95
102
  };
@@ -9,6 +9,7 @@ export declare const TitleControls: {
9
9
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
10
10
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
11
11
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
12
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
12
13
  };
13
14
  };
14
15
  readonly color: {
@@ -21,6 +22,7 @@ export declare const TitleControls: {
21
22
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
22
23
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
23
24
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
25
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
24
26
  };
25
27
  };
26
28
  readonly size: {
@@ -33,6 +35,7 @@ export declare const TitleControls: {
33
35
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
34
36
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
35
37
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
38
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
36
39
  };
37
40
  };
38
41
  readonly style: {
@@ -45,6 +48,7 @@ export declare const TitleControls: {
45
48
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
46
49
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
47
50
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
51
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
48
52
  };
49
53
  };
50
54
  readonly fontFamily: {
@@ -57,6 +61,7 @@ export declare const TitleControls: {
57
61
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
58
62
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
59
63
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
64
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
60
65
  };
61
66
  };
62
67
  readonly background: {
@@ -69,6 +74,7 @@ export declare const TitleControls: {
69
74
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
70
75
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
71
76
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
77
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
72
78
  };
73
79
  };
74
80
  readonly paddings: {
@@ -81,6 +87,7 @@ export declare const TitleControls: {
81
87
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
82
88
  getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
83
89
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
90
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
84
91
  };
85
92
  };
86
93
  };
@@ -1,4 +1,5 @@
1
1
  import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationCampaignUrlValue, RecommendationProduct, RrsMigrationPayload, RrsMigrationTarget, RrsStrategy } from '@@/Types/recommendation';
2
+ export declare const disposeStrategyPageReturnListeners: () => void;
2
3
  export interface PerBlockConfigs {
3
4
  cardsInRow: number;
4
5
  currencySettings: {
@@ -54,6 +55,8 @@ interface PerBlockState {
54
55
  */
55
56
  syncedConfigFingerprint: string | null;
56
57
  legacyConversionLoading: boolean;
58
+ configVersion: number;
59
+ adoptedSizeVersion: number;
57
60
  }
58
61
  /**
59
62
  * Persisted-config subset used by `seedBlockUrlConfig` to reconstruct
@@ -618,7 +621,12 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
618
621
  */
619
622
  invalidBlockFields(): string[];
620
623
  fetchRecommendationProducts(): Promise<void>;
621
- _doFetchProducts(): Promise<void>;
624
+ /**
625
+ * Fetches one block's products whether or not it is selected: the panel teardown and the
626
+ * strategy drawer refresh the block they were handed after the user may have moved on.
627
+ */
628
+ fetchRecommendationProductsForBlock(blockId: number): Promise<void>;
629
+ _doFetchProducts(targetBlockId?: number): Promise<void>;
622
630
  /**
623
631
  * Block-scoped counterpart of `fetchRecommendationProducts`, which only serves the selected block:
624
632
  * the legacy conversion and the duplicate refresh must reach a block that may no longer be selected.
@@ -0,0 +1,17 @@
1
+ import type { PerBlockConfigs } from '../store/recommendation';
2
+ import type { PartialNodeConfig } from '../types/nodeConfig';
3
+ interface BlockRefreshOptions {
4
+ pickUpdates: (configs: PerBlockConfigs) => PartialNodeConfig;
5
+ description: string;
6
+ fetch?: boolean;
7
+ }
8
+ /**
9
+ * Fetches one block's products and commits them with its config straight to the document, for
10
+ * callers the settings panel can no longer serve (deselect, block switch, host-rendered strategy UI).
11
+ * @param options.pickUpdates - the config keys this caller owns on the node
12
+ * @param options.description - labels the undo entry
13
+ * @param options.fetch - false when the block's products already landed and only need rendering
14
+ * @returns whether the write reached a node
15
+ */
16
+ export declare function refreshBlockOutsidePanel(blockId: number, { pickUpdates, description, fetch }: BlockRefreshOptions): Promise<boolean>;
17
+ export {};
@@ -13,6 +13,13 @@ interface ConfigWriterApi {
13
13
  * itself is torn down.
14
14
  */
15
15
  export declare function registerNodeConfigWriter(api: ConfigWriterApi): void;
16
+ export declare function hasEditedConfigChange(node: ImmutableHtmlNode, updates: PartialNodeConfig): boolean;
17
+ /**
18
+ * Writes a config change to the block's node on its own, found by id — never through a
19
+ * panel-held node, which may already belong to the block the user switched to.
20
+ * @returns whether the block's node was found
21
+ */
22
+ export declare function writeBlockConfigOutsidePanel(blockId: number, updates: PartialNodeConfig, description: string): boolean;
16
23
  /** Reads the persisted config of every node carrying a block id (two while a duplicate still shares it). */
17
24
  export declare function readBlockNodeConfigs(blockId: number): RecommendationNodeConfig[];
18
25
  /**
@@ -1,9 +1,8 @@
1
1
  import type { ImmutableHtmlElementNode, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
2
  import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
3
3
  export declare const UNSUBSCRIBE_BLOCK_ID = "unsubscribe-block";
4
+ export declare const disposeUnsubscribeListeners: () => void;
4
5
  export declare class UnsubscribeBlock extends Block {
5
- private selectEventListener;
6
- private cancelEventListener;
7
6
  private currentNode?;
8
7
  private linkStateByBlockId;
9
8
  private guardAttemptsByBlockId;
@@ -20,7 +19,6 @@ export declare class UnsubscribeBlock extends Block {
20
19
  onDocumentInit(): void;
21
20
  onDocumentChanged(node: ImmutableHtmlNode): void;
22
21
  onDelete(node: ImmutableHtmlElementNode): void;
23
- onDestroy(): void;
24
22
  /**
25
23
  * Guarantees a plain-text node before the link's wrapper inside the <p>.
26
24
  * Without it the only caret position left of the link is inside the anchor,
@@ -44,11 +42,8 @@ export declare class UnsubscribeBlock extends Block {
44
42
  private _generateNextBlockId;
45
43
  private _warnLinkRemoved;
46
44
  private _setupSelectEventListener;
47
- private _removeSelectEventListener;
48
45
  private _setupCancelEventListener;
49
- private _removeCancelEventListener;
50
46
  private _handleCancel;
51
- private _removeEventListeners;
52
47
  private _updateBlock;
53
48
  private _getMergeTag;
54
49
  private _openDrawer;
@@ -10,5 +10,6 @@ export declare const BlockBackgroundControl: {
10
10
  api: import("@stripoinc/ui-editor-extensions").ControlApi;
11
11
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
12
12
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
13
+ getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
13
14
  };
14
15
  };