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

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 (81) hide show
  1. package/README.md +1 -0
  2. package/dist/@types/config/schemas.js +28 -26
  3. package/dist/components/Guido.vue.js +6 -6
  4. package/dist/components/Guido.vue2.js +72 -70
  5. package/dist/components/organisms/AutoSaveController.vue2.js +9 -8
  6. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +11 -13
  7. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +52 -70
  8. package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +37 -23
  9. package/dist/components/organisms/header/EditorActions.vue.js +2 -2
  10. package/dist/components/organisms/header/EditorActions.vue2.js +86 -56
  11. package/dist/components/organisms/header/LeftSlot.vue.js +5 -5
  12. package/dist/components/organisms/header/LeftSlot.vue2.js +16 -12
  13. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -20
  14. package/dist/components/organisms/save-as-template/SaveAsTemplateDrawer.vue2.js +34 -34
  15. package/dist/components/organisms/validation/ValidationErrorDrawer.vue.js +20 -0
  16. package/dist/components/organisms/validation/ValidationErrorDrawer.vue2.js +48 -0
  17. package/dist/components/wrappers/WpDrawer.vue.js +9 -7
  18. package/dist/components/wrappers/WpDrawer.vue2.js +1 -1
  19. package/dist/composables/useCustomInterfaceAppearance.js +46 -56
  20. package/dist/composables/useHtmlCompiler.js +37 -26
  21. package/dist/composables/useHtmlValidator.js +81 -84
  22. package/dist/composables/useHttp.js +24 -22
  23. package/dist/composables/useRecommendation.js +35 -40
  24. package/dist/composables/useSave.js +90 -45
  25. package/dist/composables/useSaveValidation.js +279 -0
  26. package/dist/composables/useSaveValidationRollout.js +9 -0
  27. package/dist/composables/useStripo.js +30 -30
  28. package/dist/composables/validators/useCouponBlockValidator.js +24 -21
  29. package/dist/composables/validators/useUnsubscribeBlockValidator.js +34 -27
  30. package/dist/enums/extensions/recommendationBlock.js +31 -38
  31. package/dist/enums/save-validation.js +4 -0
  32. package/dist/extensions/Blocks/Recommendation/block.js +39 -43
  33. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +20 -21
  34. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +33 -38
  35. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +52 -84
  36. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +78 -168
  37. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +12 -21
  38. package/dist/guido.css +1 -1
  39. package/dist/services/templateLibraryApi.js +17 -14
  40. package/dist/src/@types/config/schemas.d.ts +4 -0
  41. package/dist/src/@types/save-validation.d.ts +19 -0
  42. package/dist/src/components/Guido.vue.d.ts +17 -1
  43. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +17 -1
  44. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +17 -1
  45. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +17 -1
  46. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +4 -3
  47. package/dist/src/composables/useConfig.d.ts +2 -0
  48. package/dist/src/composables/useHtmlValidator.d.ts +21 -0
  49. package/dist/src/composables/useSave.d.ts +6 -1
  50. package/dist/src/composables/useSaveValidation.d.ts +6 -0
  51. package/dist/src/composables/useSaveValidationRollout.d.ts +3 -0
  52. package/dist/src/composables/validators/useCouponBlockValidator.d.ts +3 -0
  53. package/dist/src/composables/validators/useUnsubscribeBlockValidator.d.ts +10 -0
  54. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -2
  55. package/dist/src/enums/save-validation.d.ts +27 -0
  56. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -1
  57. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  58. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -2
  59. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +0 -9
  60. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +3 -73
  61. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +0 -4
  62. package/dist/src/stores/config.d.ts +30 -0
  63. package/dist/src/stores/onboarding.d.ts +0 -377
  64. package/dist/src/stores/save-validation.d.ts +22 -0
  65. package/dist/src/utils/genericUtil.d.ts +6 -0
  66. package/dist/src/utils/liquidDynamicContent.d.ts +20 -0
  67. package/dist/src/utils/templatePreparation.d.ts +30 -0
  68. package/dist/static/styles/components/recommendation-strategy.css.js +4 -34
  69. package/dist/stores/config.js +39 -22
  70. package/dist/stores/onboarding.js +36 -41
  71. package/dist/stores/save-validation.js +30 -0
  72. package/dist/utils/genericUtil.js +63 -54
  73. package/dist/utils/liquidDynamicContent.js +15 -0
  74. package/dist/utils/templatePreparation.js +63 -59
  75. package/package.json +1 -1
  76. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +0 -21
  77. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +0 -47
  78. package/dist/extensions/Blocks/Recommendation/utils/strategyDetach.js +0 -19
  79. package/dist/src/extensions/Blocks/Recommendation/utils/strategyDetach.d.ts +0 -12
  80. package/dist/static/styles/components/skeleton.css.js +0 -23
  81. /package/dist/src/components/organisms/{onboarding/RecommendationStrategyOnboarding.vue.d.ts → validation/ValidationErrorDrawer.vue.d.ts} +0 -0
@@ -104,6 +104,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
104
104
  autosave: boolean;
105
105
  allowlistEnabled: boolean;
106
106
  linkTrackingIds: boolean;
107
+ allowSaveWithErrors: boolean;
107
108
  reusableRecommendationStrategy: boolean;
108
109
  };
109
110
  blocks: {
@@ -245,6 +246,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
245
246
  autosave: boolean;
246
247
  allowlistEnabled: boolean;
247
248
  linkTrackingIds: boolean;
249
+ allowSaveWithErrors: boolean;
248
250
  reusableRecommendationStrategy: boolean;
249
251
  };
250
252
  blocks: {
@@ -386,6 +388,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
386
388
  autosave: boolean;
387
389
  allowlistEnabled: boolean;
388
390
  linkTrackingIds: boolean;
391
+ allowSaveWithErrors: boolean;
389
392
  reusableRecommendationStrategy: boolean;
390
393
  };
391
394
  blocks: {
@@ -527,6 +530,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
527
530
  autosave: boolean;
528
531
  allowlistEnabled: boolean;
529
532
  linkTrackingIds: boolean;
533
+ allowSaveWithErrors: boolean;
530
534
  reusableRecommendationStrategy: boolean;
531
535
  };
532
536
  blocks: {
@@ -668,6 +672,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
668
672
  autosave: boolean;
669
673
  allowlistEnabled: boolean;
670
674
  linkTrackingIds: boolean;
675
+ allowSaveWithErrors: boolean;
671
676
  reusableRecommendationStrategy: boolean;
672
677
  };
673
678
  blocks: {
@@ -809,6 +814,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
809
814
  autosave: boolean;
810
815
  allowlistEnabled: boolean;
811
816
  linkTrackingIds: boolean;
817
+ allowSaveWithErrors: boolean;
812
818
  reusableRecommendationStrategy: boolean;
813
819
  };
814
820
  blocks: {
@@ -950,6 +956,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
950
956
  autosave: boolean;
951
957
  allowlistEnabled: boolean;
952
958
  linkTrackingIds: boolean;
959
+ allowSaveWithErrors: boolean;
953
960
  reusableRecommendationStrategy: boolean;
954
961
  };
955
962
  blocks: {
@@ -1091,6 +1098,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1091
1098
  autosave: boolean;
1092
1099
  allowlistEnabled: boolean;
1093
1100
  linkTrackingIds: boolean;
1101
+ allowSaveWithErrors: boolean;
1094
1102
  reusableRecommendationStrategy: boolean;
1095
1103
  };
1096
1104
  blocks: {
@@ -1232,6 +1240,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1232
1240
  autosave: boolean;
1233
1241
  allowlistEnabled: boolean;
1234
1242
  linkTrackingIds: boolean;
1243
+ allowSaveWithErrors: boolean;
1235
1244
  reusableRecommendationStrategy: boolean;
1236
1245
  };
1237
1246
  blocks: {
@@ -1373,6 +1382,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1373
1382
  autosave: boolean;
1374
1383
  allowlistEnabled: boolean;
1375
1384
  linkTrackingIds: boolean;
1385
+ allowSaveWithErrors: boolean;
1376
1386
  reusableRecommendationStrategy: boolean;
1377
1387
  };
1378
1388
  blocks: {
@@ -1514,6 +1524,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1514
1524
  autosave: boolean;
1515
1525
  allowlistEnabled: boolean;
1516
1526
  linkTrackingIds: boolean;
1527
+ allowSaveWithErrors: boolean;
1517
1528
  reusableRecommendationStrategy: boolean;
1518
1529
  };
1519
1530
  blocks: {
@@ -1655,6 +1666,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1655
1666
  autosave: boolean;
1656
1667
  allowlistEnabled: boolean;
1657
1668
  linkTrackingIds: boolean;
1669
+ allowSaveWithErrors: boolean;
1658
1670
  reusableRecommendationStrategy: boolean;
1659
1671
  };
1660
1672
  blocks: {
@@ -1796,6 +1808,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1796
1808
  autosave: boolean;
1797
1809
  allowlistEnabled: boolean;
1798
1810
  linkTrackingIds: boolean;
1811
+ allowSaveWithErrors: boolean;
1799
1812
  reusableRecommendationStrategy: boolean;
1800
1813
  };
1801
1814
  blocks: {
@@ -1937,6 +1950,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1937
1950
  autosave: boolean;
1938
1951
  allowlistEnabled: boolean;
1939
1952
  linkTrackingIds: boolean;
1953
+ allowSaveWithErrors: boolean;
1940
1954
  reusableRecommendationStrategy: boolean;
1941
1955
  };
1942
1956
  blocks: {
@@ -2078,6 +2092,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2078
2092
  autosave: boolean;
2079
2093
  allowlistEnabled: boolean;
2080
2094
  linkTrackingIds: boolean;
2095
+ allowSaveWithErrors: boolean;
2081
2096
  reusableRecommendationStrategy: boolean;
2082
2097
  };
2083
2098
  blocks: {
@@ -2121,6 +2136,18 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2121
2136
  };
2122
2137
  } | null;
2123
2138
  } & 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;
2124
2151
  /**
2125
2152
  * Get the username
2126
2153
  */
@@ -2219,6 +2246,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2219
2246
  autosave: boolean;
2220
2247
  allowlistEnabled: boolean;
2221
2248
  linkTrackingIds: boolean;
2249
+ allowSaveWithErrors: boolean;
2222
2250
  reusableRecommendationStrategy: boolean;
2223
2251
  };
2224
2252
  blocks: {
@@ -2360,6 +2388,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2360
2388
  autosave: boolean;
2361
2389
  allowlistEnabled: boolean;
2362
2390
  linkTrackingIds: boolean;
2391
+ allowSaveWithErrors: boolean;
2363
2392
  reusableRecommendationStrategy: boolean;
2364
2393
  };
2365
2394
  blocks: {
@@ -2503,6 +2532,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2503
2532
  autosave: boolean;
2504
2533
  allowlistEnabled: boolean;
2505
2534
  linkTrackingIds: boolean;
2535
+ allowSaveWithErrors: boolean;
2506
2536
  reusableRecommendationStrategy: boolean;
2507
2537
  };
2508
2538
  blocks: {
@@ -128,27 +128,6 @@ 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
- };
152
131
  };
153
132
  userModalState: {
154
133
  Guido?: {
@@ -158,7 +137,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
158
137
  versionHistoryOnboarding?: boolean | undefined;
159
138
  ampOnboarding?: boolean | undefined;
160
139
  itemsOnboarding?: boolean | undefined;
161
- recommendationStrategyOnboarding?: boolean | undefined;
162
140
  } | undefined;
163
141
  };
164
142
  isFetched: boolean;
@@ -311,27 +289,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
311
289
  backButtonText?: string | undefined;
312
290
  }[];
313
291
  };
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
- };
335
292
  };
336
293
  userModalState: {
337
294
  Guido?: {
@@ -341,7 +298,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
341
298
  versionHistoryOnboarding?: boolean | undefined;
342
299
  ampOnboarding?: boolean | undefined;
343
300
  itemsOnboarding?: boolean | undefined;
344
- recommendationStrategyOnboarding?: boolean | undefined;
345
301
  } | undefined;
346
302
  };
347
303
  isFetched: boolean;
@@ -474,27 +430,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
474
430
  backButtonText?: string | undefined;
475
431
  }[];
476
432
  };
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
- };
498
433
  };
499
434
  userModalState: {
500
435
  Guido?: {
@@ -504,7 +439,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
504
439
  versionHistoryOnboarding?: boolean | undefined;
505
440
  ampOnboarding?: boolean | undefined;
506
441
  itemsOnboarding?: boolean | undefined;
507
- recommendationStrategyOnboarding?: boolean | undefined;
508
442
  } | undefined;
509
443
  };
510
444
  isFetched: boolean;
@@ -653,27 +587,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
653
587
  backButtonText?: string | undefined;
654
588
  }[];
655
589
  };
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
- };
677
590
  };
678
591
  userModalState: {
679
592
  Guido?: {
@@ -683,7 +596,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
683
596
  versionHistoryOnboarding?: boolean | undefined;
684
597
  ampOnboarding?: boolean | undefined;
685
598
  itemsOnboarding?: boolean | undefined;
686
- recommendationStrategyOnboarding?: boolean | undefined;
687
599
  } | undefined;
688
600
  };
689
601
  isFetched: boolean;
@@ -832,27 +744,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
832
744
  backButtonText?: string | undefined;
833
745
  }[];
834
746
  };
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
- };
856
747
  };
857
748
  userModalState: {
858
749
  Guido?: {
@@ -862,7 +753,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
862
753
  versionHistoryOnboarding?: boolean | undefined;
863
754
  ampOnboarding?: boolean | undefined;
864
755
  itemsOnboarding?: boolean | undefined;
865
- recommendationStrategyOnboarding?: boolean | undefined;
866
756
  } | undefined;
867
757
  };
868
758
  isFetched: boolean;
@@ -1011,27 +901,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1011
901
  backButtonText?: string | undefined;
1012
902
  }[];
1013
903
  };
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
- };
1035
904
  };
1036
905
  userModalState: {
1037
906
  Guido?: {
@@ -1041,7 +910,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1041
910
  versionHistoryOnboarding?: boolean | undefined;
1042
911
  ampOnboarding?: boolean | undefined;
1043
912
  itemsOnboarding?: boolean | undefined;
1044
- recommendationStrategyOnboarding?: boolean | undefined;
1045
913
  } | undefined;
1046
914
  };
1047
915
  isFetched: boolean;
@@ -1190,27 +1058,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1190
1058
  backButtonText?: string | undefined;
1191
1059
  }[];
1192
1060
  };
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
- };
1214
1061
  };
1215
1062
  userModalState: {
1216
1063
  Guido?: {
@@ -1220,7 +1067,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1220
1067
  versionHistoryOnboarding?: boolean | undefined;
1221
1068
  ampOnboarding?: boolean | undefined;
1222
1069
  itemsOnboarding?: boolean | undefined;
1223
- recommendationStrategyOnboarding?: boolean | undefined;
1224
1070
  } | undefined;
1225
1071
  };
1226
1072
  isFetched: boolean;
@@ -1369,206 +1215,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1369
1215
  backButtonText?: string | undefined;
1370
1216
  }[];
1371
1217
  };
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
- };
1572
1218
  };
1573
1219
  userModalState: {
1574
1220
  Guido?: {
@@ -1578,7 +1224,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1578
1224
  versionHistoryOnboarding?: boolean | undefined;
1579
1225
  ampOnboarding?: boolean | undefined;
1580
1226
  itemsOnboarding?: boolean | undefined;
1581
- recommendationStrategyOnboarding?: boolean | undefined;
1582
1227
  } | undefined;
1583
1228
  };
1584
1229
  isFetched: boolean;
@@ -1727,27 +1372,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1727
1372
  backButtonText?: string | undefined;
1728
1373
  }[];
1729
1374
  };
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
- };
1751
1375
  };
1752
1376
  userModalState: {
1753
1377
  Guido?: {
@@ -1757,7 +1381,6 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
1757
1381
  versionHistoryOnboarding?: boolean | undefined;
1758
1382
  ampOnboarding?: boolean | undefined;
1759
1383
  itemsOnboarding?: boolean | undefined;
1760
- recommendationStrategyOnboarding?: boolean | undefined;
1761
1384
  } | undefined;
1762
1385
  };
1763
1386
  isFetched: boolean;
@@ -0,0 +1,22 @@
1
+ import type { SaveValidationError, SaveValidationIntent } from '@@/Types/save-validation';
2
+ interface SaveValidationState {
3
+ errors: SaveValidationError[];
4
+ isDrawerOpen: boolean;
5
+ intent: SaveValidationIntent | null;
6
+ }
7
+ export declare const useSaveValidationStore: import("pinia").StoreDefinition<"guidoSaveValidation", SaveValidationState, {
8
+ errorCount: (state: {
9
+ errors: {
10
+ rule: import("../enums/save-validation").SaveValidationRule;
11
+ message: string;
12
+ detail?: string | undefined;
13
+ type: import("../enums/toaster").ToasterTypeOptions;
14
+ }[];
15
+ isDrawerOpen: boolean;
16
+ intent: SaveValidationIntent | null;
17
+ } & import("pinia").PiniaCustomStateProperties<SaveValidationState>) => number;
18
+ }, {
19
+ open(errors: SaveValidationError[], intent: SaveValidationIntent): void;
20
+ close(): void;
21
+ }>;
22
+ export {};
@@ -30,3 +30,9 @@ export declare const replaceString: (string?: string, values?: Record<string, st
30
30
  * a string nor a number becomes ''.
31
31
  */
32
32
  export declare const asText: (value: unknown) => string;
33
+ /**
34
+ * Narrows an unknown API value to a plain JSON object. Arrays and exotic
35
+ * objects (Blob, Date, FormData) are rejected, so a response body that useHttp
36
+ * parsed as text or blob can never be read as a JSON payload.
37
+ */
38
+ export declare const isPlainObject: <T>(value: T) => value is T & Record<string, unknown>;