@useinsider/guido 3.18.2-beta.eedafd2 → 3.18.2-beta.f42547e

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/README.md +0 -1
  2. package/dist/@types/config/schemas.js +26 -28
  3. package/dist/components/Guido.vue.js +6 -6
  4. package/dist/components/Guido.vue2.js +70 -72
  5. package/dist/components/organisms/AutoSaveController.vue2.js +8 -9
  6. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +13 -11
  7. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +70 -51
  8. package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +23 -37
  9. package/dist/components/organisms/header/EditorActions.vue.js +2 -2
  10. package/dist/components/organisms/header/EditorActions.vue2.js +56 -86
  11. package/dist/components/organisms/header/LeftSlot.vue.js +5 -5
  12. package/dist/components/organisms/header/LeftSlot.vue2.js +12 -16
  13. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +20 -18
  14. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +21 -0
  15. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +47 -0
  16. package/dist/components/wrappers/WpDrawer.vue.js +7 -9
  17. package/dist/components/wrappers/WpDrawer.vue2.js +1 -1
  18. package/dist/composables/useCustomInterfaceAppearance.js +56 -46
  19. package/dist/composables/useHtmlCompiler.js +26 -37
  20. package/dist/composables/useHtmlValidator.js +84 -81
  21. package/dist/composables/useRecommendation.js +40 -35
  22. package/dist/composables/useSave.js +45 -90
  23. package/dist/composables/useStripo.js +30 -30
  24. package/dist/composables/validators/useCouponBlockValidator.js +21 -24
  25. package/dist/composables/validators/useUnsubscribeBlockValidator.js +27 -34
  26. package/dist/enums/extensions/recommendationBlock.js +38 -31
  27. package/dist/extensions/Blocks/Recommendation/block.js +43 -39
  28. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +21 -20
  29. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +40 -35
  30. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +84 -52
  31. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +74 -74
  32. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +181 -89
  33. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +26 -16
  34. package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +24 -0
  35. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +21 -12
  36. package/dist/guido.css +1 -1
  37. package/dist/src/@types/config/schemas.d.ts +0 -4
  38. package/dist/src/components/Guido.vue.d.ts +1 -17
  39. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -17
  40. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -17
  41. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -17
  42. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +3 -4
  43. package/dist/src/composables/useConfig.d.ts +0 -2
  44. package/dist/src/composables/useHtmlValidator.d.ts +0 -21
  45. package/dist/src/composables/useSave.d.ts +1 -6
  46. package/dist/src/composables/validators/useCouponBlockValidator.d.ts +0 -3
  47. package/dist/src/composables/validators/useUnsubscribeBlockValidator.d.ts +0 -10
  48. package/dist/src/enums/extensions/recommendationBlock.d.ts +2 -0
  49. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +1 -0
  50. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  51. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +2 -0
  52. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +9 -0
  53. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +7 -2
  54. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +73 -3
  55. package/dist/src/extensions/Blocks/Recommendation/utils/strategyCommit.d.ts +14 -0
  56. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +4 -0
  57. package/dist/src/stores/config.d.ts +0 -30
  58. package/dist/src/stores/onboarding.d.ts +377 -0
  59. package/dist/src/utils/templatePreparation.d.ts +0 -30
  60. package/dist/static/styles/components/recommendation-strategy.css.js +34 -4
  61. package/dist/static/styles/components/skeleton.css.js +23 -0
  62. package/dist/stores/config.js +22 -39
  63. package/dist/stores/onboarding.js +41 -36
  64. package/dist/utils/genericUtil.js +61 -64
  65. package/dist/utils/templatePreparation.js +49 -52
  66. package/package.json +1 -1
  67. package/dist/components/organisms/validation/ValidationErrorDrawer.vue.js +0 -20
  68. package/dist/components/organisms/validation/ValidationErrorDrawer.vue2.js +0 -48
  69. package/dist/composables/useSaveValidation.js +0 -279
  70. package/dist/composables/useSaveValidationRollout.js +0 -9
  71. package/dist/enums/save-validation.js +0 -4
  72. package/dist/src/@types/save-validation.d.ts +0 -19
  73. package/dist/src/composables/useSaveValidation.d.ts +0 -6
  74. package/dist/src/composables/useSaveValidationRollout.d.ts +0 -3
  75. package/dist/src/enums/save-validation.d.ts +0 -27
  76. package/dist/src/stores/save-validation.d.ts +0 -22
  77. package/dist/src/utils/liquidDynamicContent.d.ts +0 -20
  78. package/dist/stores/save-validation.js +0 -30
  79. package/dist/utils/liquidDynamicContent.js +0 -15
  80. /package/dist/src/components/organisms/{validation/ValidationErrorDrawer.vue.d.ts → onboarding/RecommendationStrategyOnboarding.vue.d.ts} +0 -0
@@ -104,7 +104,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
104
104
  autosave: boolean;
105
105
  allowlistEnabled: boolean;
106
106
  linkTrackingIds: boolean;
107
- allowSaveWithErrors: boolean;
108
107
  reusableRecommendationStrategy: boolean;
109
108
  };
110
109
  blocks: {
@@ -246,7 +245,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
246
245
  autosave: boolean;
247
246
  allowlistEnabled: boolean;
248
247
  linkTrackingIds: boolean;
249
- allowSaveWithErrors: boolean;
250
248
  reusableRecommendationStrategy: boolean;
251
249
  };
252
250
  blocks: {
@@ -388,7 +386,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
388
386
  autosave: boolean;
389
387
  allowlistEnabled: boolean;
390
388
  linkTrackingIds: boolean;
391
- allowSaveWithErrors: boolean;
392
389
  reusableRecommendationStrategy: boolean;
393
390
  };
394
391
  blocks: {
@@ -530,7 +527,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
530
527
  autosave: boolean;
531
528
  allowlistEnabled: boolean;
532
529
  linkTrackingIds: boolean;
533
- allowSaveWithErrors: boolean;
534
530
  reusableRecommendationStrategy: boolean;
535
531
  };
536
532
  blocks: {
@@ -672,7 +668,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
672
668
  autosave: boolean;
673
669
  allowlistEnabled: boolean;
674
670
  linkTrackingIds: boolean;
675
- allowSaveWithErrors: boolean;
676
671
  reusableRecommendationStrategy: boolean;
677
672
  };
678
673
  blocks: {
@@ -814,7 +809,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
814
809
  autosave: boolean;
815
810
  allowlistEnabled: boolean;
816
811
  linkTrackingIds: boolean;
817
- allowSaveWithErrors: boolean;
818
812
  reusableRecommendationStrategy: boolean;
819
813
  };
820
814
  blocks: {
@@ -956,7 +950,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
956
950
  autosave: boolean;
957
951
  allowlistEnabled: boolean;
958
952
  linkTrackingIds: boolean;
959
- allowSaveWithErrors: boolean;
960
953
  reusableRecommendationStrategy: boolean;
961
954
  };
962
955
  blocks: {
@@ -1098,7 +1091,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1098
1091
  autosave: boolean;
1099
1092
  allowlistEnabled: boolean;
1100
1093
  linkTrackingIds: boolean;
1101
- allowSaveWithErrors: boolean;
1102
1094
  reusableRecommendationStrategy: boolean;
1103
1095
  };
1104
1096
  blocks: {
@@ -1240,7 +1232,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1240
1232
  autosave: boolean;
1241
1233
  allowlistEnabled: boolean;
1242
1234
  linkTrackingIds: boolean;
1243
- allowSaveWithErrors: boolean;
1244
1235
  reusableRecommendationStrategy: boolean;
1245
1236
  };
1246
1237
  blocks: {
@@ -1382,7 +1373,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1382
1373
  autosave: boolean;
1383
1374
  allowlistEnabled: boolean;
1384
1375
  linkTrackingIds: boolean;
1385
- allowSaveWithErrors: boolean;
1386
1376
  reusableRecommendationStrategy: boolean;
1387
1377
  };
1388
1378
  blocks: {
@@ -1524,7 +1514,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1524
1514
  autosave: boolean;
1525
1515
  allowlistEnabled: boolean;
1526
1516
  linkTrackingIds: boolean;
1527
- allowSaveWithErrors: boolean;
1528
1517
  reusableRecommendationStrategy: boolean;
1529
1518
  };
1530
1519
  blocks: {
@@ -1666,7 +1655,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1666
1655
  autosave: boolean;
1667
1656
  allowlistEnabled: boolean;
1668
1657
  linkTrackingIds: boolean;
1669
- allowSaveWithErrors: boolean;
1670
1658
  reusableRecommendationStrategy: boolean;
1671
1659
  };
1672
1660
  blocks: {
@@ -1808,7 +1796,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1808
1796
  autosave: boolean;
1809
1797
  allowlistEnabled: boolean;
1810
1798
  linkTrackingIds: boolean;
1811
- allowSaveWithErrors: boolean;
1812
1799
  reusableRecommendationStrategy: boolean;
1813
1800
  };
1814
1801
  blocks: {
@@ -1950,7 +1937,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1950
1937
  autosave: boolean;
1951
1938
  allowlistEnabled: boolean;
1952
1939
  linkTrackingIds: boolean;
1953
- allowSaveWithErrors: boolean;
1954
1940
  reusableRecommendationStrategy: boolean;
1955
1941
  };
1956
1942
  blocks: {
@@ -2092,7 +2078,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2092
2078
  autosave: boolean;
2093
2079
  allowlistEnabled: boolean;
2094
2080
  linkTrackingIds: boolean;
2095
- allowSaveWithErrors: boolean;
2096
2081
  reusableRecommendationStrategy: boolean;
2097
2082
  };
2098
2083
  blocks: {
@@ -2136,18 +2121,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2136
2121
  };
2137
2122
  } | null;
2138
2123
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
2139
- /**
2140
- * Transactional campaigns keep the hard save block. Reactive getter, so
2141
- * consumers stay safe in setup where a raw config read snapshots null (SD-147945).
2142
- */
2143
- isTransactional(): boolean;
2144
- /**
2145
- * Soft-save policy: may the editor persist a template with validation errors?
2146
- * Default true (host sets features.allowSaveWithErrors=false for transactional +
2147
- * unsub). Reactive getter defaulting true — reading via isFeatureEnabled would
2148
- * floor to false pre-init and momentarily hide the soft-save option (SD-147430).
2149
- */
2150
- allowSaveWithErrors(): boolean;
2151
2124
  /**
2152
2125
  * Get the username
2153
2126
  */
@@ -2246,7 +2219,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2246
2219
  autosave: boolean;
2247
2220
  allowlistEnabled: boolean;
2248
2221
  linkTrackingIds: boolean;
2249
- allowSaveWithErrors: boolean;
2250
2222
  reusableRecommendationStrategy: boolean;
2251
2223
  };
2252
2224
  blocks: {
@@ -2388,7 +2360,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2388
2360
  autosave: boolean;
2389
2361
  allowlistEnabled: boolean;
2390
2362
  linkTrackingIds: boolean;
2391
- allowSaveWithErrors: boolean;
2392
2363
  reusableRecommendationStrategy: boolean;
2393
2364
  };
2394
2365
  blocks: {
@@ -2532,7 +2503,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2532
2503
  autosave: boolean;
2533
2504
  allowlistEnabled: boolean;
2534
2505
  linkTrackingIds: boolean;
2535
- allowSaveWithErrors: boolean;
2536
2506
  reusableRecommendationStrategy: boolean;
2537
2507
  };
2538
2508
  blocks: {
@@ -128,6 +128,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
128
128
  backButtonText?: string | undefined;
129
129
  }[];
130
130
  };
131
+ recommendationStrategyOnboarding: {
132
+ cardIndex: number;
133
+ isActive: boolean;
134
+ config: {
135
+ classes: string;
136
+ position: string;
137
+ left?: string | undefined;
138
+ right?: string | undefined;
139
+ top?: string | undefined;
140
+ bottom?: string | undefined;
141
+ title: string;
142
+ description: string;
143
+ imageSource: string;
144
+ backButtonClick: () => void;
145
+ nextButtonType: string;
146
+ nextButtonText: string;
147
+ nextButtonClick: () => void;
148
+ backButtonType?: string | undefined;
149
+ backButtonText?: string | undefined;
150
+ }[];
151
+ };
131
152
  };
132
153
  userModalState: {
133
154
  Guido?: {
@@ -137,6 +158,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
137
158
  versionHistoryOnboarding?: boolean | undefined;
138
159
  ampOnboarding?: boolean | undefined;
139
160
  itemsOnboarding?: boolean | undefined;
161
+ recommendationStrategyOnboarding?: boolean | undefined;
140
162
  } | undefined;
141
163
  };
142
164
  isFetched: boolean;
@@ -289,6 +311,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
289
311
  backButtonText?: string | undefined;
290
312
  }[];
291
313
  };
314
+ recommendationStrategyOnboarding: {
315
+ cardIndex: number;
316
+ isActive: boolean;
317
+ config: {
318
+ classes: string;
319
+ position: string;
320
+ left?: string | undefined;
321
+ right?: string | undefined;
322
+ top?: string | undefined;
323
+ bottom?: string | undefined;
324
+ title: string;
325
+ description: string;
326
+ imageSource: string;
327
+ backButtonClick: () => void;
328
+ nextButtonType: string;
329
+ nextButtonText: string;
330
+ nextButtonClick: () => void;
331
+ backButtonType?: string | undefined;
332
+ backButtonText?: string | undefined;
333
+ }[];
334
+ };
292
335
  };
293
336
  userModalState: {
294
337
  Guido?: {
@@ -298,6 +341,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
298
341
  versionHistoryOnboarding?: boolean | undefined;
299
342
  ampOnboarding?: boolean | undefined;
300
343
  itemsOnboarding?: boolean | undefined;
344
+ recommendationStrategyOnboarding?: boolean | undefined;
301
345
  } | undefined;
302
346
  };
303
347
  isFetched: boolean;
@@ -430,6 +474,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
430
474
  backButtonText?: string | undefined;
431
475
  }[];
432
476
  };
477
+ recommendationStrategyOnboarding: {
478
+ cardIndex: number;
479
+ isActive: boolean;
480
+ config: {
481
+ classes: string;
482
+ position: string;
483
+ left?: string | undefined;
484
+ right?: string | undefined;
485
+ top?: string | undefined;
486
+ bottom?: string | undefined;
487
+ title: string;
488
+ description: string;
489
+ imageSource: string;
490
+ backButtonClick: () => void;
491
+ nextButtonType: string;
492
+ nextButtonText: string;
493
+ nextButtonClick: () => void;
494
+ backButtonType?: string | undefined;
495
+ backButtonText?: string | undefined;
496
+ }[];
497
+ };
433
498
  };
434
499
  userModalState: {
435
500
  Guido?: {
@@ -439,6 +504,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
439
504
  versionHistoryOnboarding?: boolean | undefined;
440
505
  ampOnboarding?: boolean | undefined;
441
506
  itemsOnboarding?: boolean | undefined;
507
+ recommendationStrategyOnboarding?: boolean | undefined;
442
508
  } | undefined;
443
509
  };
444
510
  isFetched: boolean;
@@ -587,6 +653,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
587
653
  backButtonText?: string | undefined;
588
654
  }[];
589
655
  };
656
+ recommendationStrategyOnboarding: {
657
+ cardIndex: number;
658
+ isActive: boolean;
659
+ config: {
660
+ classes: string;
661
+ position: string;
662
+ left?: string | undefined;
663
+ right?: string | undefined;
664
+ top?: string | undefined;
665
+ bottom?: string | undefined;
666
+ title: string;
667
+ description: string;
668
+ imageSource: string;
669
+ backButtonClick: () => void;
670
+ nextButtonType: string;
671
+ nextButtonText: string;
672
+ nextButtonClick: () => void;
673
+ backButtonType?: string | undefined;
674
+ backButtonText?: string | undefined;
675
+ }[];
676
+ };
590
677
  };
591
678
  userModalState: {
592
679
  Guido?: {
@@ -596,6 +683,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
596
683
  versionHistoryOnboarding?: boolean | undefined;
597
684
  ampOnboarding?: boolean | undefined;
598
685
  itemsOnboarding?: boolean | undefined;
686
+ recommendationStrategyOnboarding?: boolean | undefined;
599
687
  } | undefined;
600
688
  };
601
689
  isFetched: boolean;
@@ -744,6 +832,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
744
832
  backButtonText?: string | undefined;
745
833
  }[];
746
834
  };
835
+ recommendationStrategyOnboarding: {
836
+ cardIndex: number;
837
+ isActive: boolean;
838
+ config: {
839
+ classes: string;
840
+ position: string;
841
+ left?: string | undefined;
842
+ right?: string | undefined;
843
+ top?: string | undefined;
844
+ bottom?: string | undefined;
845
+ title: string;
846
+ description: string;
847
+ imageSource: string;
848
+ backButtonClick: () => void;
849
+ nextButtonType: string;
850
+ nextButtonText: string;
851
+ nextButtonClick: () => void;
852
+ backButtonType?: string | undefined;
853
+ backButtonText?: string | undefined;
854
+ }[];
855
+ };
747
856
  };
748
857
  userModalState: {
749
858
  Guido?: {
@@ -753,6 +862,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
753
862
  versionHistoryOnboarding?: boolean | undefined;
754
863
  ampOnboarding?: boolean | undefined;
755
864
  itemsOnboarding?: boolean | undefined;
865
+ recommendationStrategyOnboarding?: boolean | undefined;
756
866
  } | undefined;
757
867
  };
758
868
  isFetched: boolean;
@@ -901,6 +1011,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
901
1011
  backButtonText?: string | undefined;
902
1012
  }[];
903
1013
  };
1014
+ recommendationStrategyOnboarding: {
1015
+ cardIndex: number;
1016
+ isActive: boolean;
1017
+ config: {
1018
+ classes: string;
1019
+ position: string;
1020
+ left?: string | undefined;
1021
+ right?: string | undefined;
1022
+ top?: string | undefined;
1023
+ bottom?: string | undefined;
1024
+ title: string;
1025
+ description: string;
1026
+ imageSource: string;
1027
+ backButtonClick: () => void;
1028
+ nextButtonType: string;
1029
+ nextButtonText: string;
1030
+ nextButtonClick: () => void;
1031
+ backButtonType?: string | undefined;
1032
+ backButtonText?: string | undefined;
1033
+ }[];
1034
+ };
904
1035
  };
905
1036
  userModalState: {
906
1037
  Guido?: {
@@ -910,6 +1041,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
910
1041
  versionHistoryOnboarding?: boolean | undefined;
911
1042
  ampOnboarding?: boolean | undefined;
912
1043
  itemsOnboarding?: boolean | undefined;
1044
+ recommendationStrategyOnboarding?: boolean | undefined;
913
1045
  } | undefined;
914
1046
  };
915
1047
  isFetched: boolean;
@@ -1058,6 +1190,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1058
1190
  backButtonText?: string | undefined;
1059
1191
  }[];
1060
1192
  };
1193
+ recommendationStrategyOnboarding: {
1194
+ cardIndex: number;
1195
+ isActive: boolean;
1196
+ config: {
1197
+ classes: string;
1198
+ position: string;
1199
+ left?: string | undefined;
1200
+ right?: string | undefined;
1201
+ top?: string | undefined;
1202
+ bottom?: string | undefined;
1203
+ title: string;
1204
+ description: string;
1205
+ imageSource: string;
1206
+ backButtonClick: () => void;
1207
+ nextButtonType: string;
1208
+ nextButtonText: string;
1209
+ nextButtonClick: () => void;
1210
+ backButtonType?: string | undefined;
1211
+ backButtonText?: string | undefined;
1212
+ }[];
1213
+ };
1061
1214
  };
1062
1215
  userModalState: {
1063
1216
  Guido?: {
@@ -1067,6 +1220,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1067
1220
  versionHistoryOnboarding?: boolean | undefined;
1068
1221
  ampOnboarding?: boolean | undefined;
1069
1222
  itemsOnboarding?: boolean | undefined;
1223
+ recommendationStrategyOnboarding?: boolean | undefined;
1070
1224
  } | undefined;
1071
1225
  };
1072
1226
  isFetched: boolean;
@@ -1215,6 +1369,206 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1215
1369
  backButtonText?: string | undefined;
1216
1370
  }[];
1217
1371
  };
1372
+ recommendationStrategyOnboarding: {
1373
+ cardIndex: number;
1374
+ isActive: boolean;
1375
+ config: {
1376
+ classes: string;
1377
+ position: string;
1378
+ left?: string | undefined;
1379
+ right?: string | undefined;
1380
+ top?: string | undefined;
1381
+ bottom?: string | undefined;
1382
+ title: string;
1383
+ description: string;
1384
+ imageSource: string;
1385
+ backButtonClick: () => void;
1386
+ nextButtonType: string;
1387
+ nextButtonText: string;
1388
+ nextButtonClick: () => void;
1389
+ backButtonType?: string | undefined;
1390
+ backButtonText?: string | undefined;
1391
+ }[];
1392
+ };
1393
+ };
1394
+ userModalState: {
1395
+ Guido?: {
1396
+ newVersionPopup?: boolean | undefined;
1397
+ genericOnboarding?: boolean | undefined;
1398
+ textBlockOnboarding?: boolean | undefined;
1399
+ versionHistoryOnboarding?: boolean | undefined;
1400
+ ampOnboarding?: boolean | undefined;
1401
+ itemsOnboarding?: boolean | undefined;
1402
+ recommendationStrategyOnboarding?: boolean | undefined;
1403
+ } | undefined;
1404
+ };
1405
+ isFetched: boolean;
1406
+ } & import("pinia").PiniaCustomStateProperties<OnboardingStoreState>) => {
1407
+ classes: string;
1408
+ position: string;
1409
+ left?: string | undefined;
1410
+ right?: string | undefined;
1411
+ top?: string | undefined;
1412
+ bottom?: string | undefined;
1413
+ title: string;
1414
+ description: string;
1415
+ imageSource: string;
1416
+ backButtonClick: () => void;
1417
+ nextButtonType: string;
1418
+ nextButtonText: string;
1419
+ nextButtonClick: () => void;
1420
+ backButtonType?: string | undefined;
1421
+ backButtonText?: string | undefined;
1422
+ };
1423
+ getRecommendationStrategyCurrentCard: (state: {
1424
+ onboardings: {
1425
+ newVersionPopup: {
1426
+ cardIndex: number;
1427
+ isActive: boolean;
1428
+ config: {
1429
+ classes: string;
1430
+ position: string;
1431
+ left?: string | undefined;
1432
+ right?: string | undefined;
1433
+ top?: string | undefined;
1434
+ bottom?: string | undefined;
1435
+ title: string;
1436
+ description: string;
1437
+ imageSource: string;
1438
+ backButtonClick: () => void;
1439
+ nextButtonType: string;
1440
+ nextButtonText: string;
1441
+ nextButtonClick: () => void;
1442
+ backButtonType?: string | undefined;
1443
+ backButtonText?: string | undefined;
1444
+ }[];
1445
+ };
1446
+ genericOnboarding: {
1447
+ cardIndex: number;
1448
+ isActive: boolean;
1449
+ config: {
1450
+ classes: string;
1451
+ position: string;
1452
+ left?: string | undefined;
1453
+ right?: string | undefined;
1454
+ top?: string | undefined;
1455
+ bottom?: string | undefined;
1456
+ title: string;
1457
+ description: string;
1458
+ imageSource: string;
1459
+ backButtonClick: () => void;
1460
+ nextButtonType: string;
1461
+ nextButtonText: string;
1462
+ nextButtonClick: () => void;
1463
+ backButtonType?: string | undefined;
1464
+ backButtonText?: string | undefined;
1465
+ }[];
1466
+ };
1467
+ textBlockOnboarding: {
1468
+ cardIndex: number;
1469
+ isActive: boolean;
1470
+ config: {
1471
+ classes: string;
1472
+ position: string;
1473
+ left?: string | undefined;
1474
+ right?: string | undefined;
1475
+ top?: string | undefined;
1476
+ bottom?: string | undefined;
1477
+ title: string;
1478
+ description: string;
1479
+ imageSource: string;
1480
+ backButtonClick: () => void;
1481
+ nextButtonType: string;
1482
+ nextButtonText: string;
1483
+ nextButtonClick: () => void;
1484
+ backButtonType?: string | undefined;
1485
+ backButtonText?: string | undefined;
1486
+ }[];
1487
+ };
1488
+ versionHistoryOnboarding: {
1489
+ cardIndex: number;
1490
+ isActive: boolean;
1491
+ config: {
1492
+ classes: string;
1493
+ position: string;
1494
+ left?: string | undefined;
1495
+ right?: string | undefined;
1496
+ top?: string | undefined;
1497
+ bottom?: string | undefined;
1498
+ title: string;
1499
+ description: string;
1500
+ imageSource: string;
1501
+ backButtonClick: () => void;
1502
+ nextButtonType: string;
1503
+ nextButtonText: string;
1504
+ nextButtonClick: () => void;
1505
+ backButtonType?: string | undefined;
1506
+ backButtonText?: string | undefined;
1507
+ }[];
1508
+ };
1509
+ ampOnboarding: {
1510
+ cardIndex: number;
1511
+ isActive: boolean;
1512
+ config: {
1513
+ classes: string;
1514
+ position: string;
1515
+ left?: string | undefined;
1516
+ right?: string | undefined;
1517
+ top?: string | undefined;
1518
+ bottom?: string | undefined;
1519
+ title: string;
1520
+ description: string;
1521
+ imageSource: string;
1522
+ backButtonClick: () => void;
1523
+ nextButtonType: string;
1524
+ nextButtonText: string;
1525
+ nextButtonClick: () => void;
1526
+ backButtonType?: string | undefined;
1527
+ backButtonText?: string | undefined;
1528
+ }[];
1529
+ };
1530
+ itemsOnboarding: {
1531
+ cardIndex: number;
1532
+ isActive: boolean;
1533
+ config: {
1534
+ classes: string;
1535
+ position: string;
1536
+ left?: string | undefined;
1537
+ right?: string | undefined;
1538
+ top?: string | undefined;
1539
+ bottom?: string | undefined;
1540
+ title: string;
1541
+ description: string;
1542
+ imageSource: string;
1543
+ backButtonClick: () => void;
1544
+ nextButtonType: string;
1545
+ nextButtonText: string;
1546
+ nextButtonClick: () => void;
1547
+ backButtonType?: string | undefined;
1548
+ backButtonText?: string | undefined;
1549
+ }[];
1550
+ };
1551
+ recommendationStrategyOnboarding: {
1552
+ cardIndex: number;
1553
+ isActive: boolean;
1554
+ config: {
1555
+ classes: string;
1556
+ position: string;
1557
+ left?: string | undefined;
1558
+ right?: string | undefined;
1559
+ top?: string | undefined;
1560
+ bottom?: string | undefined;
1561
+ title: string;
1562
+ description: string;
1563
+ imageSource: string;
1564
+ backButtonClick: () => void;
1565
+ nextButtonType: string;
1566
+ nextButtonText: string;
1567
+ nextButtonClick: () => void;
1568
+ backButtonType?: string | undefined;
1569
+ backButtonText?: string | undefined;
1570
+ }[];
1571
+ };
1218
1572
  };
1219
1573
  userModalState: {
1220
1574
  Guido?: {
@@ -1224,6 +1578,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1224
1578
  versionHistoryOnboarding?: boolean | undefined;
1225
1579
  ampOnboarding?: boolean | undefined;
1226
1580
  itemsOnboarding?: boolean | undefined;
1581
+ recommendationStrategyOnboarding?: boolean | undefined;
1227
1582
  } | undefined;
1228
1583
  };
1229
1584
  isFetched: boolean;
@@ -1372,6 +1727,27 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1372
1727
  backButtonText?: string | undefined;
1373
1728
  }[];
1374
1729
  };
1730
+ recommendationStrategyOnboarding: {
1731
+ cardIndex: number;
1732
+ isActive: boolean;
1733
+ config: {
1734
+ classes: string;
1735
+ position: string;
1736
+ left?: string | undefined;
1737
+ right?: string | undefined;
1738
+ top?: string | undefined;
1739
+ bottom?: string | undefined;
1740
+ title: string;
1741
+ description: string;
1742
+ imageSource: string;
1743
+ backButtonClick: () => void;
1744
+ nextButtonType: string;
1745
+ nextButtonText: string;
1746
+ nextButtonClick: () => void;
1747
+ backButtonType?: string | undefined;
1748
+ backButtonText?: string | undefined;
1749
+ }[];
1750
+ };
1375
1751
  };
1376
1752
  userModalState: {
1377
1753
  Guido?: {
@@ -1381,6 +1757,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1381
1757
  versionHistoryOnboarding?: boolean | undefined;
1382
1758
  ampOnboarding?: boolean | undefined;
1383
1759
  itemsOnboarding?: boolean | undefined;
1760
+ recommendationStrategyOnboarding?: boolean | undefined;
1384
1761
  } | undefined;
1385
1762
  };
1386
1763
  isFetched: boolean;
@@ -15,36 +15,6 @@ import type { SavedTemplateDetails } from '@@/Types/stripo';
15
15
  * same source), so it is reliably present regardless of how the block was added.
16
16
  */
17
17
  export declare function getHtmlReferencedUnsubscribePages(html: string): number[];
18
- /**
19
- * Hydrates the recommendation extension store from the persisted `esd-ext-config`
20
- * JSON blob on each `.recommendation-block-v2` element in the raw editor HTML.
21
- *
22
- * Why this runs before `compileHtml`:
23
- * The HTML compiler's `prepareRecommendationBlocks` rule asks
24
- * `useRecommendation.buildCampaignUrl(id)` to assemble each block's API URL
25
- * from `blockStates[id].recommendationConfigs`. That Pinia entry is normally
26
- * populated by `RecommendationBlockControl._syncNodeConfigToStore`, which
27
- * only fires when the user *selects* the block. Saving without ever
28
- * selecting a migrated block would otherwise build the URL from empty/
29
- * default state and the campaign URL would not be saved.
30
- *
31
- * Why we read raw HTML, not compiled HTML:
32
- * Stripo's `compileEmail()` strips editor-only attributes (`esd-*`) from the
33
- * compiled output, so `esd-ext-config` is gone by the time the compiler
34
- * pipeline sees the HTML. The raw HTML from `getTemplateData()` preserves
35
- * the attribute as the migrator wrote it.
36
- *
37
- * Reference data pre-load:
38
- * When the template has recommendation blocks, this also pre-loads the
39
- * shared reference data (languages / currency list) so the save-time
40
- * required-fields validator can check each block's locale and currency
41
- * against the partner's real options. Best-effort — on a fetch failure the
42
- * validator degrades to its empty-list guard (`requiredFields.ts`) instead
43
- * of blocking the save or stranding the Save button.
44
- */
45
- declare function hydrateRecommendationStoreFromRawHtml(rawHtml: string): Promise<void>;
46
18
  export declare const useTemplatePreparation: () => {
47
19
  prepareTemplateDetails: () => Promise<Omit<SavedTemplateDetails, "metadata">>;
48
- hydrateRecommendationStore: typeof hydrateRecommendationStoreFromRawHtml;
49
20
  };
50
- export {};