@useinsider/guido 3.12.0-beta.b73c720 → 3.12.0-beta.bec0e55

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 (80) hide show
  1. package/dist/@types/config/schemas.js +8 -13
  2. package/dist/components/Guido.vue.js +6 -6
  3. package/dist/components/Guido.vue2.js +49 -50
  4. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +1 -1
  5. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +8 -8
  6. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  7. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue2.js +10 -10
  8. package/dist/composables/usePreviewInteractionGuard.js +36 -11
  9. package/dist/composables/useRecommendation.js +51 -82
  10. package/dist/composables/useRecommendationPreview.js +61 -60
  11. package/dist/config/migrator/recommendationMigrator.js +4 -7
  12. package/dist/enums/date.js +3 -4
  13. package/dist/enums/extensions/recommendationBlock.js +22 -28
  14. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  15. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +11 -12
  16. package/dist/extensions/Blocks/Recommendation/controls/blockBackground/index.js +10 -0
  17. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +109 -123
  18. package/dist/extensions/Blocks/Recommendation/extension.js +23 -21
  19. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +1 -1
  20. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +41 -40
  21. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +102 -256
  22. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +12 -24
  23. package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +3 -2
  24. package/dist/extensions/Blocks/controlFactories.js +125 -75
  25. package/dist/guido.css +1 -1
  26. package/dist/services/recommendationApi.js +27 -65
  27. package/dist/src/@types/config/schemas.d.ts +0 -10
  28. package/dist/src/composables/useConfig.d.ts +0 -2
  29. package/dist/src/composables/usePreviewInteractionGuard.d.ts +1 -1
  30. package/dist/src/composables/useRecommendation.d.ts +0 -2
  31. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -10
  32. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +1 -0
  33. package/dist/src/extensions/Blocks/Recommendation/controls/blockBackground/index.d.ts +14 -0
  34. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +1 -0
  35. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +1 -3
  36. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -606
  37. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -7
  38. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +1 -3
  39. package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +1 -0
  40. package/dist/src/extensions/Blocks/controlFactories.d.ts +36 -0
  41. package/dist/src/services/recommendationApi.d.ts +1 -7
  42. package/dist/src/stores/config.d.ts +0 -18
  43. package/dist/src/utils/genericUtil.d.ts +0 -9
  44. package/dist/src/utils/urlSchemes.d.ts +6 -0
  45. package/dist/static/styles/base.css.js +0 -15
  46. package/dist/utils/dateUtil.js +10 -23
  47. package/dist/utils/genericUtil.js +1 -10
  48. package/dist/utils/templatePreparation.js +58 -62
  49. package/dist/utils/urlSchemes.js +4 -0
  50. package/package.json +1 -1
  51. package/dist/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue.js +0 -36
  52. package/dist/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue2.js +0 -244
  53. package/dist/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue.js +0 -18
  54. package/dist/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue2.js +0 -42
  55. package/dist/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue.js +0 -20
  56. package/dist/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue2.js +0 -18
  57. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue.js +0 -20
  58. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue2.js +0 -60
  59. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue.js +0 -19
  60. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue2.js +0 -19
  61. package/dist/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue.js +0 -22
  62. package/dist/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue2.js +0 -29
  63. package/dist/composables/useStrategyFilters.js +0 -16
  64. package/dist/enums/extensions/filteringV2.js +0 -8
  65. package/dist/enums/extensions/strategyDetail.js +0 -148
  66. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +0 -146
  67. package/dist/extensions/Blocks/Recommendation/utils/strategyHumanizer.js +0 -97
  68. package/dist/extensions/Blocks/Recommendation/utils/strategySummary.js +0 -10
  69. package/dist/src/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue.d.ts +0 -2
  70. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue.d.ts +0 -43
  71. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue.d.ts +0 -29
  72. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue.d.ts +0 -40
  73. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue.d.ts +0 -38
  74. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue.d.ts +0 -51
  75. package/dist/src/composables/useStrategyFilters.d.ts +0 -24
  76. package/dist/src/enums/extensions/filteringV2.d.ts +0 -72
  77. package/dist/src/enums/extensions/strategyDetail.d.ts +0 -90
  78. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +0 -61
  79. package/dist/src/extensions/Blocks/Recommendation/utils/strategyHumanizer.d.ts +0 -50
  80. package/dist/src/extensions/Blocks/Recommendation/utils/strategySummary.d.ts +0 -34
@@ -1,4 +1,4 @@
1
- import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationProduct, RrsCampaign, RrsStrategy } from '@@/Types/recommendation';
1
+ import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationProduct } from '@@/Types/recommendation';
2
2
  export interface PerBlockConfigs {
3
3
  cardsInRow: number;
4
4
  currencySettings: {
@@ -21,8 +21,6 @@ export interface PerBlockConfigs {
21
21
  sendProductRequestFlag: boolean;
22
22
  shuffleProducts: boolean;
23
23
  strategy: string;
24
- /** RRS strategy id; empty string when no strategy is assigned */
25
- strategyId: string;
26
24
  textTrimming: boolean;
27
25
  unresponsive: boolean;
28
26
  size: string;
@@ -35,8 +33,6 @@ interface PerBlockState {
35
33
  recommendationProducts: RecommendationProduct[];
36
34
  filterStatus: boolean;
37
35
  filterSelectionDrawerStatus: boolean;
38
- /** Whether the RRS detail drawer is open for this block */
39
- strategyDetailDrawerStatus: boolean;
40
36
  filterGroup: number;
41
37
  /** Whether initial API data (filters, algorithms, products) has been fetched for this block */
42
38
  isInitialized: boolean;
@@ -51,8 +47,6 @@ interface PerBlockState {
51
47
  */
52
48
  export interface PerBlockUrlConfig {
53
49
  strategy: string;
54
- /** RRS strategy id; empty string when the block still uses an algorithm. */
55
- strategyId: string;
56
50
  language: string;
57
51
  size: string;
58
52
  productIds: string[];
@@ -70,23 +64,6 @@ interface StoreState {
70
64
  languages: Languages;
71
65
  currencyList: Currency[];
72
66
  filterList: FiltersResponse;
73
- /** Reusable Recommendation Strategies available to the EMAIL channel */
74
- strategies: RrsStrategy[];
75
- /** True while the strategy listing is in flight, so the panel can show a loading state */
76
- strategiesLoading: boolean;
77
- /** Campaigns using the strategy currently shown in the detail drawer */
78
- strategyCampaigns: RrsCampaign[];
79
- /** True while the campaign list is in flight */
80
- strategyCampaignsLoading: boolean;
81
- /** Strategy id `strategyCampaigns` was loaded for; null when nothing is loaded */
82
- strategyCampaignsFetchedFor: string | null;
83
- /**
84
- * Resolved recommendation-URL template per strategy id, with placeholders still
85
- * unsubstituted. `buildCampaignUrl` is synchronous, so the template has to be
86
- * cached here before it runs — an empty string records "asked, but the strategy
87
- * has no usable URL", which stops a broken id being retried on every compile.
88
- */
89
- strategyUrlTemplates: Record<string, string>;
90
67
  blockStates: Record<number, PerBlockState>;
91
68
  currentRecommendationId: number | null;
92
69
  configVersion: number;
@@ -105,54 +82,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
105
82
  value: string;
106
83
  }[];
107
84
  filterList: FiltersResponse;
108
- strategies: {
109
- strategy_id: number;
110
- name: string;
111
- algorithm: string;
112
- status: string;
113
- size: number;
114
- suitable_channels: string;
115
- updated_at: string;
116
- algorithm_used?: string | undefined;
117
- exclude_view?: (boolean | number) | undefined;
118
- exclude_purchase?: (boolean | number) | undefined;
119
- exclude_cart?: (boolean | number) | undefined;
120
- filters?: string | undefined;
121
- manual_merchandising_products?: string | undefined;
122
- mixed_strategies?: string | undefined;
123
- suitable_page_types?: (string | string[]) | undefined;
124
- base_product?: string | undefined;
125
- checkout_recommendation_cart_value?: (number | string) | undefined;
126
- shuffle?: (boolean | number) | undefined;
127
- attribute_affinity?: (boolean | number) | undefined;
128
- is_user_context_filter_optional?: (boolean | number) | undefined;
129
- last_updated_by?: string | undefined;
130
- created_at?: string | undefined;
131
- exclude_view_option?: string | undefined;
132
- exclude_view_duration?: number | undefined;
133
- exclude_view_duration_type?: string | undefined;
134
- exclude_view_item_count?: number | undefined;
135
- exclude_purchase_option?: string | undefined;
136
- exclude_purchase_duration?: number | undefined;
137
- exclude_purchase_duration_type?: string | undefined;
138
- exclude_purchase_item_count?: number | undefined;
139
- }[];
140
- strategiesLoading: boolean;
141
- strategyCampaigns: {
142
- id: string | number;
143
- name: string;
144
- status: string;
145
- variants: {
146
- id?: (number | string) | undefined;
147
- name: string;
148
- }[];
149
- channel: string;
150
- productAlias?: string | undefined;
151
- isPreventing?: boolean | undefined;
152
- }[];
153
- strategyCampaignsLoading: boolean;
154
- strategyCampaignsFetchedFor: string | null;
155
- strategyUrlTemplates: Record<string, string>;
156
85
  blockStates: Record<number, PerBlockState>;
157
86
  currentRecommendationId: number | null;
158
87
  configVersion: number;
@@ -169,54 +98,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
169
98
  value: string;
170
99
  }[];
171
100
  filterList: FiltersResponse;
172
- strategies: {
173
- strategy_id: number;
174
- name: string;
175
- algorithm: string;
176
- status: string;
177
- size: number;
178
- suitable_channels: string;
179
- updated_at: string;
180
- algorithm_used?: string | undefined;
181
- exclude_view?: (boolean | number) | undefined;
182
- exclude_purchase?: (boolean | number) | undefined;
183
- exclude_cart?: (boolean | number) | undefined;
184
- filters?: string | undefined;
185
- manual_merchandising_products?: string | undefined;
186
- mixed_strategies?: string | undefined;
187
- suitable_page_types?: (string | string[]) | undefined;
188
- base_product?: string | undefined;
189
- checkout_recommendation_cart_value?: (number | string) | undefined;
190
- shuffle?: (boolean | number) | undefined;
191
- attribute_affinity?: (boolean | number) | undefined;
192
- is_user_context_filter_optional?: (boolean | number) | undefined;
193
- last_updated_by?: string | undefined;
194
- created_at?: string | undefined;
195
- exclude_view_option?: string | undefined;
196
- exclude_view_duration?: number | undefined;
197
- exclude_view_duration_type?: string | undefined;
198
- exclude_view_item_count?: number | undefined;
199
- exclude_purchase_option?: string | undefined;
200
- exclude_purchase_duration?: number | undefined;
201
- exclude_purchase_duration_type?: string | undefined;
202
- exclude_purchase_item_count?: number | undefined;
203
- }[];
204
- strategiesLoading: boolean;
205
- strategyCampaigns: {
206
- id: string | number;
207
- name: string;
208
- status: string;
209
- variants: {
210
- id?: (number | string) | undefined;
211
- name: string;
212
- }[];
213
- channel: string;
214
- productAlias?: string | undefined;
215
- isPreventing?: boolean | undefined;
216
- }[];
217
- strategyCampaignsLoading: boolean;
218
- strategyCampaignsFetchedFor: string | null;
219
- strategyUrlTemplates: Record<string, string>;
220
101
  blockStates: Record<number, PerBlockState>;
221
102
  currentRecommendationId: number | null;
222
103
  configVersion: number;
@@ -233,118 +114,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
233
114
  value: string;
234
115
  }[];
235
116
  filterList: FiltersResponse;
236
- strategies: {
237
- strategy_id: number;
238
- name: string;
239
- algorithm: string;
240
- status: string;
241
- size: number;
242
- suitable_channels: string;
243
- updated_at: string;
244
- algorithm_used?: string | undefined;
245
- exclude_view?: (boolean | number) | undefined;
246
- exclude_purchase?: (boolean | number) | undefined;
247
- exclude_cart?: (boolean | number) | undefined;
248
- filters?: string | undefined;
249
- manual_merchandising_products?: string | undefined;
250
- mixed_strategies?: string | undefined;
251
- suitable_page_types?: (string | string[]) | undefined;
252
- base_product?: string | undefined;
253
- checkout_recommendation_cart_value?: (number | string) | undefined;
254
- shuffle?: (boolean | number) | undefined;
255
- attribute_affinity?: (boolean | number) | undefined;
256
- is_user_context_filter_optional?: (boolean | number) | undefined;
257
- last_updated_by?: string | undefined;
258
- created_at?: string | undefined;
259
- exclude_view_option?: string | undefined;
260
- exclude_view_duration?: number | undefined;
261
- exclude_view_duration_type?: string | undefined;
262
- exclude_view_item_count?: number | undefined;
263
- exclude_purchase_option?: string | undefined;
264
- exclude_purchase_duration?: number | undefined;
265
- exclude_purchase_duration_type?: string | undefined;
266
- exclude_purchase_item_count?: number | undefined;
267
- }[];
268
- strategiesLoading: boolean;
269
- strategyCampaigns: {
270
- id: string | number;
271
- name: string;
272
- status: string;
273
- variants: {
274
- id?: (number | string) | undefined;
275
- name: string;
276
- }[];
277
- channel: string;
278
- productAlias?: string | undefined;
279
- isPreventing?: boolean | undefined;
280
- }[];
281
- strategyCampaignsLoading: boolean;
282
- strategyCampaignsFetchedFor: string | null;
283
- strategyUrlTemplates: Record<string, string>;
284
- blockStates: Record<number, PerBlockState>;
285
- currentRecommendationId: number | null;
286
- configVersion: number;
287
- } & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
288
- /**
289
- * Proxy getter: delegates to blockStates[currentRecommendationId].strategyDetailDrawerStatus
290
- */
291
- strategyDetailDrawerStatus(state: {
292
- recommendationCampaignUrls: Record<string, string>;
293
- activePredictiveAlgorithms: number[];
294
- languages: Languages;
295
- currencyList: {
296
- text: string;
297
- value: string;
298
- }[];
299
- filterList: FiltersResponse;
300
- strategies: {
301
- strategy_id: number;
302
- name: string;
303
- algorithm: string;
304
- status: string;
305
- size: number;
306
- suitable_channels: string;
307
- updated_at: string;
308
- algorithm_used?: string | undefined;
309
- exclude_view?: (boolean | number) | undefined;
310
- exclude_purchase?: (boolean | number) | undefined;
311
- exclude_cart?: (boolean | number) | undefined;
312
- filters?: string | undefined;
313
- manual_merchandising_products?: string | undefined;
314
- mixed_strategies?: string | undefined;
315
- suitable_page_types?: (string | string[]) | undefined;
316
- base_product?: string | undefined;
317
- checkout_recommendation_cart_value?: (number | string) | undefined;
318
- shuffle?: (boolean | number) | undefined;
319
- attribute_affinity?: (boolean | number) | undefined;
320
- is_user_context_filter_optional?: (boolean | number) | undefined;
321
- last_updated_by?: string | undefined;
322
- created_at?: string | undefined;
323
- exclude_view_option?: string | undefined;
324
- exclude_view_duration?: number | undefined;
325
- exclude_view_duration_type?: string | undefined;
326
- exclude_view_item_count?: number | undefined;
327
- exclude_purchase_option?: string | undefined;
328
- exclude_purchase_duration?: number | undefined;
329
- exclude_purchase_duration_type?: string | undefined;
330
- exclude_purchase_item_count?: number | undefined;
331
- }[];
332
- strategiesLoading: boolean;
333
- strategyCampaigns: {
334
- id: string | number;
335
- name: string;
336
- status: string;
337
- variants: {
338
- id?: (number | string) | undefined;
339
- name: string;
340
- }[];
341
- channel: string;
342
- productAlias?: string | undefined;
343
- isPreventing?: boolean | undefined;
344
- }[];
345
- strategyCampaignsLoading: boolean;
346
- strategyCampaignsFetchedFor: string | null;
347
- strategyUrlTemplates: Record<string, string>;
348
117
  blockStates: Record<number, PerBlockState>;
349
118
  currentRecommendationId: number | null;
350
119
  configVersion: number;
@@ -361,54 +130,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
361
130
  value: string;
362
131
  }[];
363
132
  filterList: FiltersResponse;
364
- strategies: {
365
- strategy_id: number;
366
- name: string;
367
- algorithm: string;
368
- status: string;
369
- size: number;
370
- suitable_channels: string;
371
- updated_at: string;
372
- algorithm_used?: string | undefined;
373
- exclude_view?: (boolean | number) | undefined;
374
- exclude_purchase?: (boolean | number) | undefined;
375
- exclude_cart?: (boolean | number) | undefined;
376
- filters?: string | undefined;
377
- manual_merchandising_products?: string | undefined;
378
- mixed_strategies?: string | undefined;
379
- suitable_page_types?: (string | string[]) | undefined;
380
- base_product?: string | undefined;
381
- checkout_recommendation_cart_value?: (number | string) | undefined;
382
- shuffle?: (boolean | number) | undefined;
383
- attribute_affinity?: (boolean | number) | undefined;
384
- is_user_context_filter_optional?: (boolean | number) | undefined;
385
- last_updated_by?: string | undefined;
386
- created_at?: string | undefined;
387
- exclude_view_option?: string | undefined;
388
- exclude_view_duration?: number | undefined;
389
- exclude_view_duration_type?: string | undefined;
390
- exclude_view_item_count?: number | undefined;
391
- exclude_purchase_option?: string | undefined;
392
- exclude_purchase_duration?: number | undefined;
393
- exclude_purchase_duration_type?: string | undefined;
394
- exclude_purchase_item_count?: number | undefined;
395
- }[];
396
- strategiesLoading: boolean;
397
- strategyCampaigns: {
398
- id: string | number;
399
- name: string;
400
- status: string;
401
- variants: {
402
- id?: (number | string) | undefined;
403
- name: string;
404
- }[];
405
- channel: string;
406
- productAlias?: string | undefined;
407
- isPreventing?: boolean | undefined;
408
- }[];
409
- strategyCampaignsLoading: boolean;
410
- strategyCampaignsFetchedFor: string | null;
411
- strategyUrlTemplates: Record<string, string>;
412
133
  blockStates: Record<number, PerBlockState>;
413
134
  currentRecommendationId: number | null;
414
135
  configVersion: number;
@@ -425,54 +146,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
425
146
  value: string;
426
147
  }[];
427
148
  filterList: FiltersResponse;
428
- strategies: {
429
- strategy_id: number;
430
- name: string;
431
- algorithm: string;
432
- status: string;
433
- size: number;
434
- suitable_channels: string;
435
- updated_at: string;
436
- algorithm_used?: string | undefined;
437
- exclude_view?: (boolean | number) | undefined;
438
- exclude_purchase?: (boolean | number) | undefined;
439
- exclude_cart?: (boolean | number) | undefined;
440
- filters?: string | undefined;
441
- manual_merchandising_products?: string | undefined;
442
- mixed_strategies?: string | undefined;
443
- suitable_page_types?: (string | string[]) | undefined;
444
- base_product?: string | undefined;
445
- checkout_recommendation_cart_value?: (number | string) | undefined;
446
- shuffle?: (boolean | number) | undefined;
447
- attribute_affinity?: (boolean | number) | undefined;
448
- is_user_context_filter_optional?: (boolean | number) | undefined;
449
- last_updated_by?: string | undefined;
450
- created_at?: string | undefined;
451
- exclude_view_option?: string | undefined;
452
- exclude_view_duration?: number | undefined;
453
- exclude_view_duration_type?: string | undefined;
454
- exclude_view_item_count?: number | undefined;
455
- exclude_purchase_option?: string | undefined;
456
- exclude_purchase_duration?: number | undefined;
457
- exclude_purchase_duration_type?: string | undefined;
458
- exclude_purchase_item_count?: number | undefined;
459
- }[];
460
- strategiesLoading: boolean;
461
- strategyCampaigns: {
462
- id: string | number;
463
- name: string;
464
- status: string;
465
- variants: {
466
- id?: (number | string) | undefined;
467
- name: string;
468
- }[];
469
- channel: string;
470
- productAlias?: string | undefined;
471
- isPreventing?: boolean | undefined;
472
- }[];
473
- strategyCampaignsLoading: boolean;
474
- strategyCampaignsFetchedFor: string | null;
475
- strategyUrlTemplates: Record<string, string>;
476
149
  blockStates: Record<number, PerBlockState>;
477
150
  currentRecommendationId: number | null;
478
151
  configVersion: number;
@@ -490,54 +163,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
490
163
  value: string;
491
164
  }[];
492
165
  filterList: FiltersResponse;
493
- strategies: {
494
- strategy_id: number;
495
- name: string;
496
- algorithm: string;
497
- status: string;
498
- size: number;
499
- suitable_channels: string;
500
- updated_at: string;
501
- algorithm_used?: string | undefined;
502
- exclude_view?: (boolean | number) | undefined;
503
- exclude_purchase?: (boolean | number) | undefined;
504
- exclude_cart?: (boolean | number) | undefined;
505
- filters?: string | undefined;
506
- manual_merchandising_products?: string | undefined;
507
- mixed_strategies?: string | undefined;
508
- suitable_page_types?: (string | string[]) | undefined;
509
- base_product?: string | undefined;
510
- checkout_recommendation_cart_value?: (number | string) | undefined;
511
- shuffle?: (boolean | number) | undefined;
512
- attribute_affinity?: (boolean | number) | undefined;
513
- is_user_context_filter_optional?: (boolean | number) | undefined;
514
- last_updated_by?: string | undefined;
515
- created_at?: string | undefined;
516
- exclude_view_option?: string | undefined;
517
- exclude_view_duration?: number | undefined;
518
- exclude_view_duration_type?: string | undefined;
519
- exclude_view_item_count?: number | undefined;
520
- exclude_purchase_option?: string | undefined;
521
- exclude_purchase_duration?: number | undefined;
522
- exclude_purchase_duration_type?: string | undefined;
523
- exclude_purchase_item_count?: number | undefined;
524
- }[];
525
- strategiesLoading: boolean;
526
- strategyCampaigns: {
527
- id: string | number;
528
- name: string;
529
- status: string;
530
- variants: {
531
- id?: (number | string) | undefined;
532
- name: string;
533
- }[];
534
- channel: string;
535
- productAlias?: string | undefined;
536
- isPreventing?: boolean | undefined;
537
- }[];
538
- strategyCampaignsLoading: boolean;
539
- strategyCampaignsFetchedFor: string | null;
540
- strategyUrlTemplates: Record<string, string>;
541
166
  blockStates: Record<number, PerBlockState>;
542
167
  currentRecommendationId: number | null;
543
168
  configVersion: number;
@@ -545,99 +170,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
545
170
  text: string;
546
171
  value: string;
547
172
  }[];
548
- /**
549
- * Reusable Recommendation Strategies as dropdown options.
550
- *
551
- * Unlike algorithms, strategy ids come straight from Smart Recommender —
552
- * there is no local id→key table to join against.
553
- */
554
- getStrategyOptions: (state: {
555
- recommendationCampaignUrls: Record<string, string>;
556
- activePredictiveAlgorithms: number[];
557
- languages: Languages;
558
- currencyList: {
559
- text: string;
560
- value: string;
561
- }[];
562
- filterList: FiltersResponse;
563
- strategies: {
564
- strategy_id: number;
565
- name: string;
566
- algorithm: string;
567
- status: string;
568
- size: number;
569
- suitable_channels: string;
570
- updated_at: string;
571
- algorithm_used?: string | undefined;
572
- exclude_view?: (boolean | number) | undefined;
573
- exclude_purchase?: (boolean | number) | undefined;
574
- exclude_cart?: (boolean | number) | undefined;
575
- filters?: string | undefined;
576
- manual_merchandising_products?: string | undefined;
577
- mixed_strategies?: string | undefined;
578
- suitable_page_types?: (string | string[]) | undefined;
579
- base_product?: string | undefined;
580
- checkout_recommendation_cart_value?: (number | string) | undefined;
581
- shuffle?: (boolean | number) | undefined;
582
- attribute_affinity?: (boolean | number) | undefined;
583
- is_user_context_filter_optional?: (boolean | number) | undefined;
584
- last_updated_by?: string | undefined;
585
- created_at?: string | undefined;
586
- exclude_view_option?: string | undefined;
587
- exclude_view_duration?: number | undefined;
588
- exclude_view_duration_type?: string | undefined;
589
- exclude_view_item_count?: number | undefined;
590
- exclude_purchase_option?: string | undefined;
591
- exclude_purchase_duration?: number | undefined;
592
- exclude_purchase_duration_type?: string | undefined;
593
- exclude_purchase_item_count?: number | undefined;
594
- }[];
595
- strategiesLoading: boolean;
596
- strategyCampaigns: {
597
- id: string | number;
598
- name: string;
599
- status: string;
600
- variants: {
601
- id?: (number | string) | undefined;
602
- name: string;
603
- }[];
604
- channel: string;
605
- productAlias?: string | undefined;
606
- isPreventing?: boolean | undefined;
607
- }[];
608
- strategyCampaignsLoading: boolean;
609
- strategyCampaignsFetchedFor: string | null;
610
- strategyUrlTemplates: Record<string, string>;
611
- blockStates: Record<number, PerBlockState>;
612
- currentRecommendationId: number | null;
613
- configVersion: number;
614
- } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
615
- text: string;
616
- value: string;
617
- }[];
618
- /**
619
- * The current block's selected strategy, or null when none is selected
620
- * or the selected id is no longer in the listing.
621
- *
622
- * A null return with a non-empty `strategyId` means the strategy was
623
- * deleted in Smart Recommender after this block was configured — the
624
- * panel flags that rather than silently clearing the selection.
625
- */
626
- getSelectedStrategy(): RrsStrategy | null;
627
- /**
628
- * Whether the RRS feature is enabled for this editor.
629
- *
630
- * Read through a getter so `hasInvalidBlock` can pass the store straight to
631
- * the required-field descriptors, which need the flag to decide whether a
632
- * missing strategy blocks the save.
633
- */
634
- isRrsEnabled(): boolean;
635
- /**
636
- * True when a strategy id is set but absent from the fetched listing.
637
- *
638
- * Guarded on the listing having loaded — mid-fetch every id looks missing.
639
- */
640
- hasMissingStrategy(): boolean;
641
173
  getLanguages: (state: {
642
174
  recommendationCampaignUrls: Record<string, string>;
643
175
  activePredictiveAlgorithms: number[];
@@ -647,54 +179,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
647
179
  value: string;
648
180
  }[];
649
181
  filterList: FiltersResponse;
650
- strategies: {
651
- strategy_id: number;
652
- name: string;
653
- algorithm: string;
654
- status: string;
655
- size: number;
656
- suitable_channels: string;
657
- updated_at: string;
658
- algorithm_used?: string | undefined;
659
- exclude_view?: (boolean | number) | undefined;
660
- exclude_purchase?: (boolean | number) | undefined;
661
- exclude_cart?: (boolean | number) | undefined;
662
- filters?: string | undefined;
663
- manual_merchandising_products?: string | undefined;
664
- mixed_strategies?: string | undefined;
665
- suitable_page_types?: (string | string[]) | undefined;
666
- base_product?: string | undefined;
667
- checkout_recommendation_cart_value?: (number | string) | undefined;
668
- shuffle?: (boolean | number) | undefined;
669
- attribute_affinity?: (boolean | number) | undefined;
670
- is_user_context_filter_optional?: (boolean | number) | undefined;
671
- last_updated_by?: string | undefined;
672
- created_at?: string | undefined;
673
- exclude_view_option?: string | undefined;
674
- exclude_view_duration?: number | undefined;
675
- exclude_view_duration_type?: string | undefined;
676
- exclude_view_item_count?: number | undefined;
677
- exclude_purchase_option?: string | undefined;
678
- exclude_purchase_duration?: number | undefined;
679
- exclude_purchase_duration_type?: string | undefined;
680
- exclude_purchase_item_count?: number | undefined;
681
- }[];
682
- strategiesLoading: boolean;
683
- strategyCampaigns: {
684
- id: string | number;
685
- name: string;
686
- status: string;
687
- variants: {
688
- id?: (number | string) | undefined;
689
- name: string;
690
- }[];
691
- channel: string;
692
- productAlias?: string | undefined;
693
- isPreventing?: boolean | undefined;
694
- }[];
695
- strategyCampaignsLoading: boolean;
696
- strategyCampaignsFetchedFor: string | null;
697
- strategyUrlTemplates: Record<string, string>;
698
182
  blockStates: Record<number, PerBlockState>;
699
183
  currentRecommendationId: number | null;
700
184
  configVersion: number;
@@ -711,54 +195,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
711
195
  value: string;
712
196
  }[];
713
197
  filterList: FiltersResponse;
714
- strategies: {
715
- strategy_id: number;
716
- name: string;
717
- algorithm: string;
718
- status: string;
719
- size: number;
720
- suitable_channels: string;
721
- updated_at: string;
722
- algorithm_used?: string | undefined;
723
- exclude_view?: (boolean | number) | undefined;
724
- exclude_purchase?: (boolean | number) | undefined;
725
- exclude_cart?: (boolean | number) | undefined;
726
- filters?: string | undefined;
727
- manual_merchandising_products?: string | undefined;
728
- mixed_strategies?: string | undefined;
729
- suitable_page_types?: (string | string[]) | undefined;
730
- base_product?: string | undefined;
731
- checkout_recommendation_cart_value?: (number | string) | undefined;
732
- shuffle?: (boolean | number) | undefined;
733
- attribute_affinity?: (boolean | number) | undefined;
734
- is_user_context_filter_optional?: (boolean | number) | undefined;
735
- last_updated_by?: string | undefined;
736
- created_at?: string | undefined;
737
- exclude_view_option?: string | undefined;
738
- exclude_view_duration?: number | undefined;
739
- exclude_view_duration_type?: string | undefined;
740
- exclude_view_item_count?: number | undefined;
741
- exclude_purchase_option?: string | undefined;
742
- exclude_purchase_duration?: number | undefined;
743
- exclude_purchase_duration_type?: string | undefined;
744
- exclude_purchase_item_count?: number | undefined;
745
- }[];
746
- strategiesLoading: boolean;
747
- strategyCampaigns: {
748
- id: string | number;
749
- name: string;
750
- status: string;
751
- variants: {
752
- id?: (number | string) | undefined;
753
- name: string;
754
- }[];
755
- channel: string;
756
- productAlias?: string | undefined;
757
- isPreventing?: boolean | undefined;
758
- }[];
759
- strategyCampaignsLoading: boolean;
760
- strategyCampaignsFetchedFor: string | null;
761
- strategyUrlTemplates: Record<string, string>;
762
198
  blockStates: Record<number, PerBlockState>;
763
199
  currentRecommendationId: number | null;
764
200
  configVersion: number;
@@ -831,53 +267,12 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
831
267
  * Called after successful apply — discards the snapshot.
832
268
  */
833
269
  closeFilterDrawer(): void;
834
- /**
835
- * Opens the RRS detail drawer for the current block.
836
- *
837
- * Unlike the filter drawer this takes no snapshot — the drawer is
838
- * read-only, so there is nothing to revert on close.
839
- */
840
- openStrategyDrawer(): void;
841
- /**
842
- * Closes the RRS detail drawer for the current block and drops the campaign
843
- * list, so reopening on a different strategy never flashes stale rows.
844
- */
845
- closeStrategyDrawer(): void;
846
- /** Drops the campaign list and lets the next open refetch. */
847
- clearStrategyCampaigns(): void;
848
- /**
849
- * Resolve and cache a strategy's recommendation-URL template.
850
- *
851
- * Must be awaited before `buildCampaignUrl` runs for a strategy-driven block,
852
- * because that builder is synchronous and can only read what is already
853
- * cached. Safe to call repeatedly: a cached id (including one cached as the
854
- * empty string after a failure) short-circuits, and concurrent callers for
855
- * the same id share one request.
856
- */
857
- fetchStrategyUrlTemplate(strategyId: string): Promise<void>;
858
- /**
859
- * Fetch the campaigns a strategy is used in, for the drawer's second tab.
860
- *
861
- * Lazy and once-per-strategy: the caller invokes this only while the drawer is
862
- * open on that tab, and a repeat call for the same id is a no-op. A version
863
- * counter discards a response that arrives after the user switched strategies,
864
- * which would otherwise show one strategy's campaigns under another's name.
865
- */
866
- fetchStrategyCampaigns(strategyId: string): Promise<void>;
867
270
  /**
868
271
  * Cancels the filter selection drawer and reverts filters
869
272
  * to the snapshot taken when the drawer was opened.
870
273
  */
871
274
  cancelFilterDrawer(): void;
872
275
  fetchRecommendationCreateData(): Promise<void>;
873
- /**
874
- * Fetch the partner's Reusable Recommendation Strategies for the EMAIL channel.
875
- *
876
- * Same cache-guard + in-flight dedupe shape as fetchRecommendationCreateData.
877
- * A failure leaves `strategies` empty so the dropdown renders empty rather
878
- * than blocking the panel — the block keeps working on its algorithm.
879
- */
880
- fetchRecommendationStrategies(): Promise<void>;
881
276
  fetchRecommendationFilters(): Promise<void>;
882
277
  addFilterGroup(filterGroup: number): void;
883
278
  deleteFilterGroup(groupId: number): void;