@sinequa/atomic-angular 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import { ApplicationRef, ChangeDetectorRef, DestroyRef, ElementRef, EnvironmentProviders, InjectionToken, Injector, OnDestroy, OnInit, PipeTransform, Provider, ResourceRef, Signal, TemplateRef, Type, WritableSignal } from "@angular/core";
3
3
  import { TranslocoService } from "@jsverse/transloco";
4
- import { Aggregation, AggregationItem, Article, AtomicClient, AtomicClientConfig, AuditEventType, AuditEventTypeValues, AuditEvents, CCApp, CCColumn, CCQuery, CCSortingChoice, CCWebService, Conversion, Credentials, CustomHighlights, DidYouMeanAction, ExportOutputFormat, ExportQueryModel, Filter as Filter$1, FilterOperator, KeyOf, LegacyFilter, LinkResult, PreviewData, Principal, Query, QueryParams, RequestOptions, Result, SpellingCorrectionMode, Suggestion, TextChunk, TextLocation, TreeAggregation, TreeAggregationNode, UserProfile as UserProfile$1, getRelativeDate } from "@sinequa/atomic";
4
+ import { Aggregation, AggregationItem, Article, AtomicClient, AtomicClientConfig, AuditEventType, AuditEventTypeValues, AuditEvents, CCApp, CCColumn, CCQuery, CCSortingChoice, CCWebService, Conversion, Credentials, CustomHighlights, DidYouMeanAction, ExportOutputFormat, ExportQueryModel, Filter as Filter$1, FilterOperator, KeyOf, LegacyFilter, LinkResult, PreviewData, Principal, Query, QueryParams, RequestOptions, Result, SpellingCorrectionMode, Suggestion, TextChunk, TextLocation, TreeAggregation, TreeAggregationNode, UserProfile, getRelativeDate } from "@sinequa/atomic";
5
5
  import { CanActivateFn, NavigationEnd, Params, ResolveFn, Route, Router } from "@angular/router";
6
6
  import { VariantProps } from "class-variance-authority";
7
7
  import { BreakpointObserverService, DialogComponent, DialogEvent, DialogResult, DropdownDirective, PopoverDirective, SheetComponent } from "@sinequa/galactik";
@@ -853,6 +853,9 @@ export declare class DocumentLocatorComponent implements OnDestroy {
853
853
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
854
854
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
855
855
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
856
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
857
+ mask?: string;
858
+ }> | undefined> | undefined;
856
859
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
857
860
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
858
861
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -866,7 +869,7 @@ export declare class DocumentLocatorComponent implements OnDestroy {
866
869
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
867
870
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
868
871
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
869
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
872
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
870
873
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
871
874
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
872
875
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -925,6 +928,9 @@ export declare class DocumentLocatorComponent implements OnDestroy {
925
928
  tab?: string | undefined;
926
929
  scope?: string | undefined;
927
930
  sort?: string | undefined;
931
+ aggregation_overrides?: Record<string, {
932
+ mask?: string;
933
+ }> | undefined;
928
934
  basket?: string | undefined;
929
935
  isFirstPage?: boolean | undefined;
930
936
  strictRefine?: boolean | undefined;
@@ -1050,7 +1056,7 @@ export declare class MetadataComponent {
1050
1056
  size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "xsmall" | "medium" | null | undefined>;
1051
1057
  scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
1052
1058
  metadata: import("@angular/core").InputSignal<(string & Record<never, never>) | KeyOf<Article>>;
1053
- article: import("@angular/core").InputSignal<(string & Record<never, never>) | Partial<Article>>;
1059
+ article: import("@angular/core").InputSignal<Partial<Article> | (string & Record<never, never>)>;
1054
1060
  limit: import("@angular/core").InputSignalWithTransform<number | undefined, string | number | undefined>;
1055
1061
  items: import("@angular/core").Signal<string[]>;
1056
1062
  handleClick(event: Event, item: LegacyFilter): void;
@@ -1108,6 +1114,9 @@ export declare class MissingTermsComponent {
1108
1114
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
1109
1115
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
1110
1116
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
1117
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
1118
+ mask?: string;
1119
+ }> | undefined> | undefined;
1111
1120
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
1112
1121
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
1113
1122
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -1121,7 +1130,7 @@ export declare class MissingTermsComponent {
1121
1130
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
1122
1131
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
1123
1132
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
1124
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
1133
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
1125
1134
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
1126
1135
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
1127
1136
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -1180,6 +1189,9 @@ export declare class MissingTermsComponent {
1180
1189
  tab?: string | undefined;
1181
1190
  scope?: string | undefined;
1182
1191
  sort?: string | undefined;
1192
+ aggregation_overrides?: Record<string, {
1193
+ mask?: string;
1194
+ }> | undefined;
1183
1195
  basket?: string | undefined;
1184
1196
  isFirstPage?: boolean | undefined;
1185
1197
  strictRefine?: boolean | undefined;
@@ -1218,7 +1230,7 @@ export declare class MissingTermsComponent {
1218
1230
  }, {}, never, never, true, never>;
1219
1231
  }
1220
1232
  export declare const multiSelectionToolbarVariants: (props?: ({
1221
- variant?: "dark" | "light" | "glassy" | null | undefined;
1233
+ variant?: "light" | "dark" | "glassy" | null | undefined;
1222
1234
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
1223
1235
  export type MultiSelectionToolbarVariants = VariantProps<typeof multiSelectionToolbarVariants>;
1224
1236
  export declare class MultiSelectionToolbarComponent {
@@ -1607,7 +1619,7 @@ export declare class MultiSelectionToolbarComponent {
1607
1619
  feedback?: import("@sinequa/atomic-angular").CFeedback;
1608
1620
  } | undefined;
1609
1621
  readonly class: import("@angular/core").InputSignal<string>;
1610
- readonly variant: import("@angular/core").InputSignal<"dark" | "light" | "glassy" | null | undefined>;
1622
+ readonly variant: import("@angular/core").InputSignal<"light" | "dark" | "glassy" | null | undefined>;
1611
1623
  readonly updatedCollections: import("@angular/core").OutputEmitterRef<void>;
1612
1624
  readonly count: import("@angular/core").Signal<number>;
1613
1625
  readonly variants: import("@angular/core").Signal<string>;
@@ -2874,7 +2886,7 @@ export declare const PrincipalStore: import("@angular/core").Type<{
2874
2886
  param9: import("@angular/core").Signal<string>;
2875
2887
  param10: import("@angular/core").Signal<string>;
2876
2888
  userOverrideActive: import("@angular/core").Signal<boolean>;
2877
- state: import("@angular/core").Signal<"error" | "initial" | "loading" | "loaded">;
2889
+ state: import("@angular/core").Signal<"initial" | "loading" | "loaded" | "error">;
2878
2890
  allowUserOverride: import("@angular/core").Signal<boolean>;
2879
2891
  isOverridingUser: import("@angular/core").Signal<boolean>;
2880
2892
  initials: import("@angular/core").Signal<string>;
@@ -2938,6 +2950,9 @@ export declare const QueryParamsStore: import("@angular/core").Type<{
2938
2950
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
2939
2951
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
2940
2952
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
2953
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
2954
+ mask?: string;
2955
+ }> | undefined> | undefined;
2941
2956
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
2942
2957
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
2943
2958
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -2951,7 +2966,7 @@ export declare const QueryParamsStore: import("@angular/core").Type<{
2951
2966
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
2952
2967
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
2953
2968
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
2954
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
2969
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
2955
2970
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
2956
2971
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
2957
2972
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -2986,6 +3001,9 @@ export declare const QueryParamsStore: import("@angular/core").Type<{
2986
3001
  tab?: string | undefined;
2987
3002
  scope?: string | undefined;
2988
3003
  sort?: string | undefined;
3004
+ aggregation_overrides?: Record<string, {
3005
+ mask?: string;
3006
+ }> | undefined;
2989
3007
  basket?: string | undefined;
2990
3008
  isFirstPage?: boolean | undefined;
2991
3009
  strictRefine?: boolean | undefined;
@@ -3019,6 +3037,9 @@ export declare function withQueryParamsFeatures(): import("@ngrx/signals").Signa
3019
3037
  tab?: string | undefined;
3020
3038
  scope?: string | undefined;
3021
3039
  sort?: string | undefined;
3040
+ aggregation_overrides?: Record<string, {
3041
+ mask?: string;
3042
+ }> | undefined;
3022
3043
  basket?: string | undefined;
3023
3044
  isFirstPage?: boolean | undefined;
3024
3045
  strictRefine?: boolean | undefined;
@@ -3259,7 +3280,7 @@ export declare const UserSettingsStore: import("@angular/core").Type<{
3259
3280
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
3260
3281
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
3261
3282
  language?: import("@angular/core").Signal<string | undefined> | undefined;
3262
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
3283
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
3263
3284
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
3264
3285
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
3265
3286
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -4398,6 +4419,9 @@ export declare class AggregationsService {
4398
4419
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
4399
4420
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
4400
4421
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
4422
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
4423
+ mask?: string;
4424
+ }> | undefined> | undefined;
4401
4425
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
4402
4426
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
4403
4427
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -4411,7 +4435,7 @@ export declare class AggregationsService {
4411
4435
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
4412
4436
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
4413
4437
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
4414
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
4438
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
4415
4439
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
4416
4440
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
4417
4441
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -4470,6 +4494,9 @@ export declare class AggregationsService {
4470
4494
  tab?: string | undefined;
4471
4495
  scope?: string | undefined;
4472
4496
  sort?: string | undefined;
4497
+ aggregation_overrides?: Record<string, {
4498
+ mask?: string;
4499
+ }> | undefined;
4473
4500
  basket?: string | undefined;
4474
4501
  isFirstPage?: boolean | undefined;
4475
4502
  strictRefine?: boolean | undefined;
@@ -4654,7 +4681,7 @@ export declare class ApplicationService {
4654
4681
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
4655
4682
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
4656
4683
  language?: import("@angular/core").Signal<string | undefined> | undefined;
4657
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
4684
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
4658
4685
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
4659
4686
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
4660
4687
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -4729,7 +4756,7 @@ export declare class ApplicationService {
4729
4756
  param9: import("@angular/core").Signal<string>;
4730
4757
  param10: import("@angular/core").Signal<string>;
4731
4758
  userOverrideActive: import("@angular/core").Signal<boolean>;
4732
- state: import("@angular/core").Signal<"error" | "initial" | "loading" | "loaded">;
4759
+ state: import("@angular/core").Signal<"initial" | "loading" | "loaded" | "error">;
4733
4760
  allowUserOverride: import("@angular/core").Signal<boolean>;
4734
4761
  isOverridingUser: import("@angular/core").Signal<boolean>;
4735
4762
  initials: import("@angular/core").Signal<string>;
@@ -5090,6 +5117,9 @@ export declare class ApplicationService {
5090
5117
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
5091
5118
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
5092
5119
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
5120
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
5121
+ mask?: string;
5122
+ }> | undefined> | undefined;
5093
5123
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
5094
5124
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
5095
5125
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -5103,7 +5133,7 @@ export declare class ApplicationService {
5103
5133
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
5104
5134
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
5105
5135
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
5106
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
5136
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
5107
5137
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
5108
5138
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
5109
5139
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -5162,6 +5192,9 @@ export declare class ApplicationService {
5162
5192
  tab?: string | undefined;
5163
5193
  scope?: string | undefined;
5164
5194
  sort?: string | undefined;
5195
+ aggregation_overrides?: Record<string, {
5196
+ mask?: string;
5197
+ }> | undefined;
5165
5198
  basket?: string | undefined;
5166
5199
  isFirstPage?: boolean | undefined;
5167
5200
  strictRefine?: boolean | undefined;
@@ -5653,7 +5686,7 @@ export declare class AutocompleteService {
5653
5686
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
5654
5687
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
5655
5688
  language?: import("@angular/core").Signal<string | undefined> | undefined;
5656
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
5689
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
5657
5690
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
5658
5691
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
5659
5692
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -6623,6 +6656,9 @@ export declare class PreviewService {
6623
6656
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
6624
6657
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
6625
6658
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
6659
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
6660
+ mask?: string;
6661
+ }> | undefined> | undefined;
6626
6662
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
6627
6663
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
6628
6664
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -6636,7 +6672,7 @@ export declare class PreviewService {
6636
6672
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
6637
6673
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
6638
6674
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
6639
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
6675
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
6640
6676
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
6641
6677
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
6642
6678
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -6695,6 +6731,9 @@ export declare class PreviewService {
6695
6731
  tab?: string | undefined;
6696
6732
  scope?: string | undefined;
6697
6733
  sort?: string | undefined;
6734
+ aggregation_overrides?: Record<string, {
6735
+ mask?: string;
6736
+ }> | undefined;
6698
6737
  basket?: string | undefined;
6699
6738
  isFirstPage?: boolean | undefined;
6700
6739
  strictRefine?: boolean | undefined;
@@ -7226,7 +7265,7 @@ export declare class SavedSearchesService {
7226
7265
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
7227
7266
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
7228
7267
  language?: import("@angular/core").Signal<string | undefined> | undefined;
7229
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
7268
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
7230
7269
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
7231
7270
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
7232
7271
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -7285,6 +7324,9 @@ export declare class SavedSearchesService {
7285
7324
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
7286
7325
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
7287
7326
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
7327
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
7328
+ mask?: string;
7329
+ }> | undefined> | undefined;
7288
7330
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
7289
7331
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
7290
7332
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -7298,7 +7340,7 @@ export declare class SavedSearchesService {
7298
7340
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
7299
7341
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
7300
7342
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
7301
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
7343
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
7302
7344
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
7303
7345
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
7304
7346
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -7357,6 +7399,9 @@ export declare class SavedSearchesService {
7357
7399
  tab?: string | undefined;
7358
7400
  scope?: string | undefined;
7359
7401
  sort?: string | undefined;
7402
+ aggregation_overrides?: Record<string, {
7403
+ mask?: string;
7404
+ }> | undefined;
7360
7405
  basket?: string | undefined;
7361
7406
  isFirstPage?: boolean | undefined;
7362
7407
  strictRefine?: boolean | undefined;
@@ -7464,6 +7509,9 @@ export declare class SearchService {
7464
7509
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
7465
7510
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
7466
7511
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
7512
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
7513
+ mask?: string;
7514
+ }> | undefined> | undefined;
7467
7515
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
7468
7516
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
7469
7517
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -7477,7 +7525,7 @@ export declare class SearchService {
7477
7525
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
7478
7526
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
7479
7527
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
7480
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
7528
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
7481
7529
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
7482
7530
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
7483
7531
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -7536,6 +7584,9 @@ export declare class SearchService {
7536
7584
  tab?: string | undefined;
7537
7585
  scope?: string | undefined;
7538
7586
  sort?: string | undefined;
7587
+ aggregation_overrides?: Record<string, {
7588
+ mask?: string;
7589
+ }> | undefined;
7539
7590
  basket?: string | undefined;
7540
7591
  isFirstPage?: boolean | undefined;
7541
7592
  strictRefine?: boolean | undefined;
@@ -7566,7 +7617,7 @@ export declare class SearchService {
7566
7617
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
7567
7618
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
7568
7619
  language?: import("@angular/core").Signal<string | undefined> | undefined;
7569
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
7620
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
7570
7621
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
7571
7622
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
7572
7623
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -7673,6 +7724,9 @@ export declare class SelectionService {
7673
7724
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
7674
7725
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
7675
7726
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
7727
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
7728
+ mask?: string;
7729
+ }> | undefined> | undefined;
7676
7730
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
7677
7731
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
7678
7732
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -7686,7 +7740,7 @@ export declare class SelectionService {
7686
7740
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
7687
7741
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
7688
7742
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
7689
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
7743
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
7690
7744
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
7691
7745
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
7692
7746
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -7745,6 +7799,9 @@ export declare class SelectionService {
7745
7799
  tab?: string | undefined;
7746
7800
  scope?: string | undefined;
7747
7801
  sort?: string | undefined;
7802
+ aggregation_overrides?: Record<string, {
7803
+ mask?: string;
7804
+ }> | undefined;
7748
7805
  basket?: string | undefined;
7749
7806
  isFirstPage?: boolean | undefined;
7750
7807
  strictRefine?: boolean | undefined;
@@ -7839,7 +7896,7 @@ export declare class UserProfileService {
7839
7896
  * @param userId - Signal holding the ID of the user; `undefined` leaves the resource idle.
7840
7897
  * @returns A resource exposing the UserProfile.
7841
7898
  */
7842
- getUserProfile(userId: Signal<string | undefined>): ResourceRef<UserProfile$1 | undefined>;
7899
+ getUserProfile(userId: Signal<string | undefined>): ResourceRef<UserProfile | undefined>;
7843
7900
  static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileService, never>;
7844
7901
  static ɵprov: i0.ɵɵInjectableDeclaration<any>;
7845
7902
  }
@@ -8393,7 +8450,7 @@ export declare class ShowBookmarkDirective {
8393
8450
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
8394
8451
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
8395
8452
  language?: import("@angular/core").Signal<string | undefined> | undefined;
8396
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
8453
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
8397
8454
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
8398
8455
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
8399
8456
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -9136,6 +9193,9 @@ export declare class SponsoredResultsComponent {
9136
9193
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
9137
9194
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
9138
9195
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
9196
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
9197
+ mask?: string;
9198
+ }> | undefined> | undefined;
9139
9199
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
9140
9200
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
9141
9201
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -9149,7 +9209,7 @@ export declare class SponsoredResultsComponent {
9149
9209
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
9150
9210
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
9151
9211
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
9152
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
9212
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
9153
9213
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
9154
9214
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
9155
9215
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -9208,6 +9268,9 @@ export declare class SponsoredResultsComponent {
9208
9268
  tab?: string | undefined;
9209
9269
  scope?: string | undefined;
9210
9270
  sort?: string | undefined;
9271
+ aggregation_overrides?: Record<string, {
9272
+ mask?: string;
9273
+ }> | undefined;
9211
9274
  basket?: string | undefined;
9212
9275
  isFirstPage?: boolean | undefined;
9213
9276
  strictRefine?: boolean | undefined;
@@ -10218,6 +10281,9 @@ export declare class AdvancedSearch {
10218
10281
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
10219
10282
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
10220
10283
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
10284
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
10285
+ mask?: string;
10286
+ }> | undefined> | undefined;
10221
10287
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
10222
10288
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
10223
10289
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -10231,7 +10297,7 @@ export declare class AdvancedSearch {
10231
10297
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
10232
10298
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
10233
10299
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
10234
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
10300
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
10235
10301
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
10236
10302
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
10237
10303
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -10290,6 +10356,9 @@ export declare class AdvancedSearch {
10290
10356
  tab?: string | undefined;
10291
10357
  scope?: string | undefined;
10292
10358
  sort?: string | undefined;
10359
+ aggregation_overrides?: Record<string, {
10360
+ mask?: string;
10361
+ }> | undefined;
10293
10362
  basket?: string | undefined;
10294
10363
  isFirstPage?: boolean | undefined;
10295
10364
  strictRefine?: boolean | undefined;
@@ -11715,7 +11784,7 @@ export declare class CollectionsDialog {
11715
11784
  readonly showSearch: import("@angular/core").Signal<boolean>;
11716
11785
  /** Collections matching the search text (case-insensitive, by name). */
11717
11786
  readonly filteredCollections: import("@angular/core").Signal<Basket[]>;
11718
- readonly collectionsMap: import("@angular/core").WritableSignal<Record<string, "some" | "none" | "all">>;
11787
+ readonly collectionsMap: import("@angular/core").WritableSignal<Record<string, "some" | "all" | "none">>;
11719
11788
  /** Windowing over the filtered list — renders only the visible rows. */
11720
11789
  readonly virtualizer: import("@tanstack/angular-virtual").AngularVirtualizer<HTMLDivElement, Element>;
11721
11790
  constructor();
@@ -11844,11 +11913,6 @@ export declare class FeatureFlagsDialogComponent {
11844
11913
  }
11845
11914
  /** Imperative entry point: `await FeatureFlags.call(undefined, { injector })`. */
11846
11915
  export declare const FeatureFlags: import("@sinequa/galactik").Callable<void, DialogResult>;
11847
- /** Shortcuts sharing a heading. A group with no `titleKey` is the ungrouped one, listed first. */
11848
- type ShortcutGroup = {
11849
- titleKey?: string;
11850
- items: readonly Shortcut[];
11851
- };
11852
11916
  /**
11853
11917
  * Lists the keyboard shortcuts currently available.
11854
11918
  *
@@ -11868,18 +11932,38 @@ type ShortcutGroup = {
11868
11932
  export declare class KeyboardShortcutsDialogComponent {
11869
11933
  protected readonly call: import("@sinequa/galactik").CallRef<void, DialogResult>;
11870
11934
  readonly dialog: import("@angular/core").Signal<DialogComponent | undefined>;
11935
+ constructor();
11936
+ static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardShortcutsDialogComponent, never>;
11937
+ static ɵcmp: i0.ɵɵComponentDeclaration<KeyboardShortcutsDialogComponent, "keyboard-shortcuts-dialog", never, {}, {}, never, never, true, never>;
11938
+ }
11939
+ /** Imperative entry point: `void KeyboardShortcutsDialog.call()`. */
11940
+ export declare const KeyboardShortcutsDialog: import("@sinequa/galactik").Callable<void, DialogResult>;
11941
+ /** Shortcuts sharing a heading. A group with no `titleKey` is the ungrouped one, listed first. */
11942
+ type ShortcutGroup = {
11943
+ titleKey?: string;
11944
+ items: readonly Shortcut[];
11945
+ };
11946
+ /**
11947
+ * Lists the keyboard shortcuts currently available.
11948
+ *
11949
+ * The list observes the registry rather than holding a hand-written one, which is what keeps the
11950
+ * documentation from drifting away from what actually works. The consequence is deliberate: rendered
11951
+ * on a page that registers nothing, it lists nothing. That is more honest than a list of which half
11952
+ * does not apply here.
11953
+ *
11954
+ * A shortcut is listed only if it carries a `labelKey`. Labels and headings are translated at render
11955
+ * time, never at registration: the interface language changes without a page reload.
11956
+ */
11957
+ export declare class KeyboardShortcutsListComponent {
11871
11958
  private readonly keyboard;
11872
11959
  /**
11873
11960
  * Active shortcuts, grouped by heading. The ungrouped ones come first — they are the ones that
11874
11961
  * work everywhere, so they read as an introduction rather than as a leftover.
11875
11962
  */
11876
11963
  protected readonly groups: import("@angular/core").Signal<readonly ShortcutGroup[]>;
11877
- constructor();
11878
- static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardShortcutsDialogComponent, never>;
11879
- static ɵcmp: i0.ɵɵComponentDeclaration<KeyboardShortcutsDialogComponent, "keyboard-shortcuts-dialog", never, {}, {}, never, never, true, never>;
11964
+ static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardShortcutsListComponent, never>;
11965
+ static ɵcmp: i0.ɵɵComponentDeclaration<KeyboardShortcutsListComponent, "keyboard-shortcuts-list", never, {}, {}, never, never, true, never>;
11880
11966
  }
11881
- /** Imperative entry point: `void KeyboardShortcutsDialog.call()`. */
11882
- export declare const KeyboardShortcutsDialog: import("@sinequa/galactik").Callable<void, DialogResult>;
11883
11967
  /** Model of the override-user form. */
11884
11968
  export interface OverrideUserModel {
11885
11969
  username: string;
@@ -12039,6 +12123,9 @@ export declare class ExportDialog {
12039
12123
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
12040
12124
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
12041
12125
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
12126
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
12127
+ mask?: string;
12128
+ }> | undefined> | undefined;
12042
12129
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
12043
12130
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
12044
12131
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -12052,7 +12139,7 @@ export declare class ExportDialog {
12052
12139
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
12053
12140
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
12054
12141
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
12055
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
12142
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
12056
12143
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
12057
12144
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
12058
12145
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -12111,6 +12198,9 @@ export declare class ExportDialog {
12111
12198
  tab?: string | undefined;
12112
12199
  scope?: string | undefined;
12113
12200
  sort?: string | undefined;
12201
+ aggregation_overrides?: Record<string, {
12202
+ mask?: string;
12203
+ }> | undefined;
12114
12204
  basket?: string | undefined;
12115
12205
  isFirstPage?: boolean | undefined;
12116
12206
  strictRefine?: boolean | undefined;
@@ -12544,6 +12634,9 @@ export declare class SearchFeedbackComponent {
12544
12634
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
12545
12635
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
12546
12636
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
12637
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
12638
+ mask?: string;
12639
+ }> | undefined> | undefined;
12547
12640
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
12548
12641
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
12549
12642
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -12557,7 +12650,7 @@ export declare class SearchFeedbackComponent {
12557
12650
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
12558
12651
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
12559
12652
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
12560
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
12653
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
12561
12654
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
12562
12655
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
12563
12656
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -12616,6 +12709,9 @@ export declare class SearchFeedbackComponent {
12616
12709
  tab?: string | undefined;
12617
12710
  scope?: string | undefined;
12618
12711
  sort?: string | undefined;
12712
+ aggregation_overrides?: Record<string, {
12713
+ mask?: string;
12714
+ }> | undefined;
12619
12715
  basket?: string | undefined;
12620
12716
  isFirstPage?: boolean | undefined;
12621
12717
  strictRefine?: boolean | undefined;
@@ -12773,6 +12869,17 @@ export type AggregationTitle = {
12773
12869
  label: string;
12774
12870
  icon?: string;
12775
12871
  };
12872
+ type DateFilter = {
12873
+ label?: string;
12874
+ operator?: FilterOperator;
12875
+ value?: string;
12876
+ filters?: LegacyFilter[];
12877
+ range?: [string, string];
12878
+ display?: string;
12879
+ mask?: string;
12880
+ disabled?: boolean;
12881
+ hidden?: boolean;
12882
+ };
12776
12883
  /** Shape held by {@link AggregationDateComponent.dateModel}. */
12777
12884
  type DateFormValue = {
12778
12885
  option: string | null;
@@ -12845,7 +12952,7 @@ export declare class AggregationDateComponent {
12845
12952
  *
12846
12953
  * @default 'selection'
12847
12954
  */
12848
- emitOn: import("@angular/core").InputSignal<"apply" | "selection">;
12955
+ emitOn: import("@angular/core").InputSignal<"selection" | "apply">;
12849
12956
  readonly title: import("@angular/core").InputSignal<AggregationTitle>;
12850
12957
  readonly displayEmptyDistributionIntervals: import("@angular/core").InputSignal<boolean>;
12851
12958
  onSelect: import("@angular/core").OutputEmitterRef<AggregationItem[]>;
@@ -12868,6 +12975,17 @@ export declare class AggregationDateComponent {
12868
12975
  * `selectionChange` (see its live-emission timing).
12869
12976
  */
12870
12977
  filtersChange: import("@angular/core").OutputEmitterRef<Filter$1 | undefined>;
12978
+ /**
12979
+ * Emits the query's `aggregation_overrides` to use with the selection, in controlled mode:
12980
+ * the `[query]`'s own overrides with this aggregation's entry (keyed by aggregation name)
12981
+ * set to the mask of the selected masked date (`YYYY`, `YYYY-MM`), or removed when the
12982
+ * selection has none. `undefined` when no override is left. Emitted right before
12983
+ * `filtersChange`, on the same occasions — the host assigns it to the query it fetches with.
12984
+ * In default mode the component writes it to the `QueryParamsStore` itself.
12985
+ */
12986
+ aggregationOverridesChange: import("@angular/core").OutputEmitterRef<Record<string, {
12987
+ mask?: string;
12988
+ }> | undefined>;
12871
12989
  isCollapsed: import("@angular/core").WritableSignal<boolean>;
12872
12990
  expanded: import("@angular/core").Signal<"" | null>;
12873
12991
  protected readonly searchText: import("@angular/core").ModelSignal<string>;
@@ -12886,6 +13004,9 @@ export declare class AggregationDateComponent {
12886
13004
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
12887
13005
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
12888
13006
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
13007
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
13008
+ mask?: string;
13009
+ }> | undefined> | undefined;
12889
13010
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
12890
13011
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
12891
13012
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -12899,7 +13020,7 @@ export declare class AggregationDateComponent {
12899
13020
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
12900
13021
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
12901
13022
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
12902
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
13023
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
12903
13024
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
12904
13025
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
12905
13026
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -12958,6 +13079,9 @@ export declare class AggregationDateComponent {
12958
13079
  tab?: string | undefined;
12959
13080
  scope?: string | undefined;
12960
13081
  sort?: string | undefined;
13082
+ aggregation_overrides?: Record<string, {
13083
+ mask?: string;
13084
+ }> | undefined;
12961
13085
  basket?: string | undefined;
12962
13086
  isFirstPage?: boolean | undefined;
12963
13087
  strictRefine?: boolean | undefined;
@@ -13051,6 +13175,25 @@ export declare class AggregationDateComponent {
13051
13175
  * (`getFormValueFilter`) — callers decide how to surface it.
13052
13176
  */
13053
13177
  private emitCurrentSelection;
13178
+ /** Mask of the selected preset when it is a masked date; none for a custom range or a regular preset. */
13179
+ private selectedMask;
13180
+ /** The `aggregation_overrides` of the query this component works against. */
13181
+ private currentOverrides;
13182
+ /**
13183
+ * The current overrides with this aggregation's entry set to `mask`, or removed when `mask` is
13184
+ * `undefined`. Entries of other aggregations are kept. `undefined` when no override is left.
13185
+ */
13186
+ private overridesWithMask;
13187
+ /**
13188
+ * Writes the mask of the selection to the store, without touching the URL. Done *before* the
13189
+ * filter update, which is what triggers the search, so that search already carries the override.
13190
+ */
13191
+ private storeMask;
13192
+ /**
13193
+ * Label of a masked date item that has no `display` of its own, in the active language
13194
+ * (`2016`, `mars 2016` / `March 2016`). `undefined` for any other option.
13195
+ */
13196
+ protected maskedLabel(option: DateFilter): string | undefined;
13054
13197
  select(): void;
13055
13198
  apply(): void;
13056
13199
  clear(notify?: boolean): void;
@@ -13070,6 +13213,15 @@ export declare class AggregationDateComponent {
13070
13213
  protected onOptionEnter(event: Event): void;
13071
13214
  protected onRangeSelected(range: DateRange): void;
13072
13215
  private updateForm;
13216
+ /**
13217
+ * Finds the preset (its option code) a committed filter stands for. A preset whose
13218
+ * item is a bounds expression commits as an `and` of `gte` / `lt` — the same shape
13219
+ * as a custom range, and one that does not always carry the item `value` back — so
13220
+ * besides the `operator` / `value` match the bounds are compared to each option's.
13221
+ */
13222
+ private findPresetCode;
13223
+ /** Lower (`gte`) and upper (`lt` or `lte`) bounds of an `and` filter's sub-filters. */
13224
+ private toBounds;
13073
13225
  /**
13074
13226
  * Derives the form from a controlled selection.
13075
13227
  * `{ kind: "option" }` re-selects the date option whose item `value` matches —
@@ -13184,6 +13336,7 @@ export declare class AggregationDateComponent {
13184
13336
  "onClear": "onClear";
13185
13337
  "selectionChange": "selectionChange";
13186
13338
  "filtersChange": "filtersChange";
13339
+ "aggregationOverridesChange": "aggregationOverridesChange";
13187
13340
  "searchText": "searchTextChange";
13188
13341
  }, never, ["label"], true, never>;
13189
13342
  }
@@ -13344,6 +13497,9 @@ export declare class AggregationTreeComponent {
13344
13497
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
13345
13498
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
13346
13499
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
13500
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
13501
+ mask?: string;
13502
+ }> | undefined> | undefined;
13347
13503
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
13348
13504
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
13349
13505
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -13357,7 +13513,7 @@ export declare class AggregationTreeComponent {
13357
13513
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
13358
13514
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
13359
13515
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
13360
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
13516
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
13361
13517
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
13362
13518
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
13363
13519
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -13416,6 +13572,9 @@ export declare class AggregationTreeComponent {
13416
13572
  tab?: string | undefined;
13417
13573
  scope?: string | undefined;
13418
13574
  sort?: string | undefined;
13575
+ aggregation_overrides?: Record<string, {
13576
+ mask?: string;
13577
+ }> | undefined;
13419
13578
  basket?: string | undefined;
13420
13579
  isFirstPage?: boolean | undefined;
13421
13580
  strictRefine?: boolean | undefined;
@@ -14195,6 +14354,9 @@ export declare class AggregationListComponent {
14195
14354
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
14196
14355
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
14197
14356
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
14357
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
14358
+ mask?: string;
14359
+ }> | undefined> | undefined;
14198
14360
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
14199
14361
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
14200
14362
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -14208,7 +14370,7 @@ export declare class AggregationListComponent {
14208
14370
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
14209
14371
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
14210
14372
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
14211
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
14373
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
14212
14374
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
14213
14375
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
14214
14376
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -14267,6 +14429,9 @@ export declare class AggregationListComponent {
14267
14429
  tab?: string | undefined;
14268
14430
  scope?: string | undefined;
14269
14431
  sort?: string | undefined;
14432
+ aggregation_overrides?: Record<string, {
14433
+ mask?: string;
14434
+ }> | undefined;
14270
14435
  basket?: string | undefined;
14271
14436
  isFirstPage?: boolean | undefined;
14272
14437
  strictRefine?: boolean | undefined;
@@ -15234,7 +15399,7 @@ export declare class AggregationComponent {
15234
15399
  *
15235
15400
  * @default 'selection'
15236
15401
  */
15237
- emitOn: import("@angular/core").InputSignal<"apply" | "selection">;
15402
+ emitOn: import("@angular/core").InputSignal<"selection" | "apply">;
15238
15403
  /**
15239
15404
  * Which sub-component renders the aggregation.
15240
15405
  *
@@ -15247,7 +15412,7 @@ export declare class AggregationComponent {
15247
15412
  *
15248
15413
  * @default "auto"
15249
15414
  */
15250
- type: import("@angular/core").InputSignal<"date" | "list" | "tree" | "auto">;
15415
+ type: import("@angular/core").InputSignal<"auto" | "list" | "tree" | "date">;
15251
15416
  /**
15252
15417
  * Whether the host removes itself from the layout (Tailwind's `hidden`, i.e.
15253
15418
  * `display: none`) when it resolves to zero items. When `false` (default), the
@@ -15299,7 +15464,7 @@ export declare class AggregationComponent {
15299
15464
  * The sub-component to render: the explicit `type` input, or the current
15300
15465
  * date/tree/list heuristic when `type` is `"auto"`.
15301
15466
  */
15302
- protected resolvedType: import("@angular/core").Signal<"date" | "list" | "tree">;
15467
+ protected resolvedType: import("@angular/core").Signal<"list" | "tree" | "date">;
15303
15468
  /** Whether a filter is currently applied on this aggregation. */
15304
15469
  private readonly hasFilters;
15305
15470
  /**
@@ -15888,6 +16053,9 @@ export declare class FilterButtonComponent {
15888
16053
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
15889
16054
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
15890
16055
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
16056
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
16057
+ mask?: string;
16058
+ }> | undefined> | undefined;
15891
16059
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
15892
16060
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
15893
16061
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -15901,7 +16069,7 @@ export declare class FilterButtonComponent {
15901
16069
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
15902
16070
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
15903
16071
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
15904
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
16072
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
15905
16073
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
15906
16074
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
15907
16075
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -15960,6 +16128,9 @@ export declare class FilterButtonComponent {
15960
16128
  tab?: string | undefined;
15961
16129
  scope?: string | undefined;
15962
16130
  sort?: string | undefined;
16131
+ aggregation_overrides?: Record<string, {
16132
+ mask?: string;
16133
+ }> | undefined;
15963
16134
  basket?: string | undefined;
15964
16135
  isFirstPage?: boolean | undefined;
15965
16136
  strictRefine?: boolean | undefined;
@@ -16695,6 +16866,9 @@ export declare class MoreButtonComponent {
16695
16866
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
16696
16867
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
16697
16868
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
16869
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
16870
+ mask?: string;
16871
+ }> | undefined> | undefined;
16698
16872
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
16699
16873
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
16700
16874
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -16708,7 +16882,7 @@ export declare class MoreButtonComponent {
16708
16882
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
16709
16883
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
16710
16884
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
16711
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
16885
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
16712
16886
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
16713
16887
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
16714
16888
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -16767,6 +16941,9 @@ export declare class MoreButtonComponent {
16767
16941
  tab?: string | undefined;
16768
16942
  scope?: string | undefined;
16769
16943
  sort?: string | undefined;
16944
+ aggregation_overrides?: Record<string, {
16945
+ mask?: string;
16946
+ }> | undefined;
16770
16947
  basket?: string | undefined;
16771
16948
  isFirstPage?: boolean | undefined;
16772
16949
  strictRefine?: boolean | undefined;
@@ -17323,6 +17500,9 @@ export declare class FiltersBarComponent {
17323
17500
  tab?: import("@angular/core").Signal<string | undefined> | undefined;
17324
17501
  scope?: import("@angular/core").Signal<string | undefined> | undefined;
17325
17502
  sort?: import("@angular/core").Signal<string | undefined> | undefined;
17503
+ aggregation_overrides?: import("@angular/core").Signal<Record<string, {
17504
+ mask?: string;
17505
+ }> | undefined> | undefined;
17326
17506
  basket?: import("@angular/core").Signal<string | undefined> | undefined;
17327
17507
  isFirstPage?: import("@angular/core").Signal<boolean | undefined> | undefined;
17328
17508
  strictRefine?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -17336,7 +17516,7 @@ export declare class FiltersBarComponent {
17336
17516
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
17337
17517
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
17338
17518
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
17339
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
17519
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
17340
17520
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
17341
17521
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
17342
17522
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -17395,6 +17575,9 @@ export declare class FiltersBarComponent {
17395
17575
  tab?: string | undefined;
17396
17576
  scope?: string | undefined;
17397
17577
  sort?: string | undefined;
17578
+ aggregation_overrides?: Record<string, {
17579
+ mask?: string;
17580
+ }> | undefined;
17398
17581
  basket?: string | undefined;
17399
17582
  isFirstPage?: boolean | undefined;
17400
17583
  strictRefine?: boolean | undefined;
@@ -18202,7 +18385,7 @@ export declare class RecentSearchesComponent {
18202
18385
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
18203
18386
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
18204
18387
  language?: import("@angular/core").Signal<string | undefined> | undefined;
18205
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
18388
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
18206
18389
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
18207
18390
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
18208
18391
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -18313,7 +18496,7 @@ export declare class SavedSearchPopover {
18313
18496
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
18314
18497
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
18315
18498
  language?: import("@angular/core").Signal<string | undefined> | undefined;
18316
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
18499
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
18317
18500
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
18318
18501
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
18319
18502
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -18395,7 +18578,7 @@ export declare class SavedSearchesComponent {
18395
18578
  alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
18396
18579
  collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
18397
18580
  language?: import("@angular/core").Signal<string | undefined> | undefined;
18398
- userTheme: import("@angular/core").Signal<"dark" | "light" | "system" | undefined>;
18581
+ userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
18399
18582
  agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
18400
18583
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
18401
18584
  isDebugMode: import("@angular/core").Signal<boolean>;
@@ -18465,17 +18648,150 @@ export declare class SavedSearchesComponent {
18465
18648
  };
18466
18649
  }, {}, never, never, true, never>;
18467
18650
  }
18468
- export declare class UserProfileDialog {
18469
- protected readonly call: import("@sinequa/galactik").CallRef<void, DialogResult>;
18651
+ export type SettingsPanelId = "account" | "appearance" | "shortcuts";
18652
+ /** Payload of `Settings.call()`: the panel to show first (default `account`). */
18653
+ export interface SettingsDialogProps {
18654
+ panel?: SettingsPanelId;
18655
+ }
18656
+ /**
18657
+ * The user settings: a navigation on the left, the selected panel on the right.
18658
+ *
18659
+ * The panels are plain components, not dialogs — only this shell is imperative.
18660
+ */
18661
+ export declare class SettingsDialogComponent {
18662
+ protected readonly call: import("@sinequa/galactik").CallRef<SettingsDialogProps, DialogResult>;
18470
18663
  private readonly dialog;
18664
+ protected readonly items: {
18665
+ id: SettingsPanelId;
18666
+ labelKey: string;
18667
+ }[];
18668
+ protected readonly panel: import("@angular/core").WritableSignal<SettingsPanelId>;
18669
+ /** Set when another instance is already open: this one only redirects it, then ends. */
18670
+ protected readonly duplicate: boolean;
18471
18671
  constructor();
18472
- static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileDialog, never>;
18473
- static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileDialog, "user-profile-dialog, userprofiledialog, UserProfileDialog", never, {}, {}, never, never, true, never>;
18672
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsDialogComponent, never>;
18673
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsDialogComponent, "settings-dialog", never, {}, {}, never, never, true, never>;
18674
+ }
18675
+ /** Imperative entry point: `await Settings.call({ panel: "appearance" })`. */
18676
+ export declare const Settings: import("@sinequa/galactik").Callable<SettingsDialogProps, DialogResult>;
18677
+ /**
18678
+ * The user's profile, plus the actions that act on the account as a whole: reset the settings, and —
18679
+ * for an administrator — impersonate another user.
18680
+ *
18681
+ * Those actions open their own dialogs, so the injector is handed over explicitly: `createCallable`
18682
+ * mounts outside this panel's tree and would otherwise lose the scoped providers.
18683
+ */
18684
+ export declare class SettingsAccountPanelComponent {
18685
+ protected readonly principalStore: {
18686
+ id: import("@angular/core").Signal<string>;
18687
+ id2: import("@angular/core").Signal<string>;
18688
+ id3: import("@angular/core").Signal<string>;
18689
+ id4: import("@angular/core").Signal<string>;
18690
+ id5: import("@angular/core").Signal<string>;
18691
+ name: import("@angular/core").Signal<string>;
18692
+ email: import("@angular/core").Signal<string>;
18693
+ description: import("@angular/core").Signal<string>;
18694
+ longName: import("@angular/core").Signal<string>;
18695
+ userId: import("@angular/core").Signal<string>;
18696
+ fullName: import("@angular/core").Signal<string>;
18697
+ isAdministrator: import("@angular/core").Signal<boolean>;
18698
+ isDelegatedAdmin: import("@angular/core").Signal<boolean>;
18699
+ editablePartition?: import("@angular/core").Signal<boolean | undefined> | undefined;
18700
+ passwordExpirationDate?: import("@angular/core").Signal<string | null | undefined> | undefined;
18701
+ param1: import("@angular/core").Signal<string>;
18702
+ param2: import("@angular/core").Signal<string>;
18703
+ param3: import("@angular/core").Signal<string>;
18704
+ param4: import("@angular/core").Signal<string>;
18705
+ param5: import("@angular/core").Signal<string>;
18706
+ param6: import("@angular/core").Signal<string>;
18707
+ param7: import("@angular/core").Signal<string>;
18708
+ param8: import("@angular/core").Signal<string>;
18709
+ param9: import("@angular/core").Signal<string>;
18710
+ param10: import("@angular/core").Signal<string>;
18711
+ userOverrideActive: import("@angular/core").Signal<boolean>;
18712
+ state: import("@angular/core").Signal<"initial" | "loading" | "loaded" | "error">;
18713
+ allowUserOverride: import("@angular/core").Signal<boolean>;
18714
+ isOverridingUser: import("@angular/core").Signal<boolean>;
18715
+ initials: import("@angular/core").Signal<string>;
18716
+ principal: () => import("@sinequa/atomic").Principal;
18717
+ initialize: () => Promise<void>;
18718
+ } & import("@ngrx/signals").StateSource<{
18719
+ id: string;
18720
+ id2: string;
18721
+ id3: string;
18722
+ id4: string;
18723
+ id5: string;
18724
+ name: string;
18725
+ email: string;
18726
+ description: string;
18727
+ longName: string;
18728
+ userId: string;
18729
+ fullName: string;
18730
+ isAdministrator: boolean;
18731
+ isDelegatedAdmin: boolean;
18732
+ editablePartition?: boolean | undefined;
18733
+ passwordExpirationDate?: string | null | undefined;
18734
+ param1: string;
18735
+ param2: string;
18736
+ param3: string;
18737
+ param4: string;
18738
+ param5: string;
18739
+ param6: string;
18740
+ param7: string;
18741
+ param8: string;
18742
+ param9: string;
18743
+ param10: string;
18744
+ userOverrideActive: boolean;
18745
+ state: "initial" | "loading" | "loaded" | "error";
18746
+ }>;
18747
+ private readonly appStore;
18748
+ private readonly client;
18749
+ private readonly userOverride;
18750
+ private readonly injector;
18751
+ protected readonly profileEnabled: import("@angular/core").Signal<boolean>;
18752
+ protected readonly username: import("@angular/core").Signal<string | null>;
18753
+ /** Same conditions as the profile form: feature flag, credentials auth mode, editable partition. */
18754
+ protected readonly allowChangePassword: import("@angular/core").Signal<boolean>;
18755
+ protected resetSettings(): void;
18756
+ protected overrideUser(): void;
18757
+ protected revertOverride(): void;
18758
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAccountPanelComponent, never>;
18759
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAccountPanelComponent, "settings-account-panel", never, {}, {}, never, never, true, never>;
18760
+ }
18761
+ /**
18762
+ * Theme and language of the user interface — both applied on the spot and persisted in the user
18763
+ * settings, the same way the former user menu did.
18764
+ */
18765
+ export declare class SettingsAppearancePanelComponent {
18766
+ private readonly userSettingsStore;
18767
+ private readonly transloco;
18768
+ private readonly document;
18769
+ /** Re-read by the label functions below, so the trigger text follows a language change. */
18770
+ private readonly lang;
18771
+ /** The `settings` scope loads lazily: `translate()` returns the raw key until it is there. */
18772
+ private readonly loadedTranslations;
18773
+ protected readonly themeCodes: string[];
18774
+ protected readonly languageCodes: string[];
18775
+ private readonly themeIcons;
18776
+ private readonly languageIcons;
18777
+ private readonly languageLabels;
18778
+ protected readonly currentTheme: import("@angular/core").Signal<"light" | "dark" | "system">;
18779
+ protected readonly currentLanguage: import("@angular/core").Signal<string>;
18780
+ protected readonly themeLabel: (code: string | null) => string;
18781
+ protected readonly languageLabel: (code: string | null) => string;
18782
+ protected themeIcon(code: string | null): Type<unknown> | null;
18783
+ protected languageIcon(code: string | null): Type<unknown> | null;
18784
+ /** `null` is the `Select`'s empty state: deselecting must not clear the setting. */
18785
+ protected onThemeChange(code: string | null): Promise<void>;
18786
+ protected onLanguageChange(code: string | null): void;
18787
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAppearancePanelComponent, never>;
18788
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAppearancePanelComponent, "settings-appearance-panel", never, {}, {}, never, never, true, never>;
18789
+ }
18790
+ /** The keyboard shortcuts currently registered, as documented by the registry itself. */
18791
+ export declare class SettingsShortcutsPanelComponent {
18792
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsShortcutsPanelComponent, never>;
18793
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsShortcutsPanelComponent, "settings-shortcuts-panel", never, {}, {}, never, never, true, never>;
18474
18794
  }
18475
- /** Imperative entry point: `await UserProfile.call()`. */
18476
- export declare const UserProfile: import("@sinequa/galactik").Callable<void, DialogResult>;
18477
- declare const SUPPORTED_LANGUAGES: readonly ["en", "fr", "de"];
18478
- type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];
18479
18795
  /** The two buckets of a `UserProfile`: the configured fields, and the free-form ones. */
18480
18796
  export type UserProfileCategory = "data" | "customData";
18481
18797
  /**
@@ -18522,7 +18838,7 @@ export declare class UserProfileFormComponent {
18522
18838
  param9: Signal<string>;
18523
18839
  param10: Signal<string>;
18524
18840
  userOverrideActive: Signal<boolean>;
18525
- state: Signal<"error" | "initial" | "loading" | "loaded">;
18841
+ state: Signal<"initial" | "loading" | "loaded" | "error">;
18526
18842
  allowUserOverride: Signal<boolean>;
18527
18843
  isOverridingUser: Signal<boolean>;
18528
18844
  initials: Signal<string>;
@@ -18557,63 +18873,6 @@ export declare class UserProfileFormComponent {
18557
18873
  userOverrideActive: boolean;
18558
18874
  state: "initial" | "loading" | "loaded" | "error";
18559
18875
  }>;
18560
- protected readonly userSettingsStore: {
18561
- bookmarks: Signal<import("@sinequa/atomic-angular").Bookmark[]>;
18562
- recentSearches: Signal<import("@sinequa/atomic-angular").SearchItem[]>;
18563
- savedSearches: Signal<import("@sinequa/atomic-angular").SearchItem[]>;
18564
- baskets: Signal<import("@sinequa/atomic-angular").Basket[]>;
18565
- assistants: Signal<Record<string, unknown>>;
18566
- alerts: Signal<import("@sinequa/atomic-angular").Alert[]>;
18567
- collapseAssistant?: Signal<boolean | undefined> | undefined;
18568
- language?: Signal<string | undefined> | undefined;
18569
- userTheme: Signal<"dark" | "light" | "system" | undefined>;
18570
- agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | Signal<undefined>;
18571
- disabledHighlightCategories: Signal<string[]>;
18572
- isDebugMode: Signal<boolean>;
18573
- isDarkMode: Signal<boolean>;
18574
- updateBookmarks: (bookmarks: import("@sinequa/atomic-angular").UserSettingsState["bookmarks"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18575
- bookmark: (article: import("@sinequa/atomic").Article, queryName?: string) => Promise<void>;
18576
- unbookmark: (id: string) => Promise<void>;
18577
- isBookmarked: (article: Partial<import("@sinequa/atomic").Article>) => boolean;
18578
- toggleBookmark: (article: import("@sinequa/atomic").Article) => Promise<void>;
18579
- deleteRecentSearch: (index: number) => Promise<void>;
18580
- updateRecentSearches: (recentSearches: import("@sinequa/atomic-angular").UserSettingsState["recentSearches"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18581
- addCurrentSearch: (queryParams: import("@sinequa/atomic").QueryParams) => Promise<void>;
18582
- deleteSavedSearch: (index: number) => Promise<void>;
18583
- updateSavedSearches: (savedSearches: import("@sinequa/atomic-angular").UserSettingsState["savedSearches"]) => Promise<void>;
18584
- getSavedSearch: (search: string, tab?: string) => import("@sinequa/atomic-angular").SearchItem | undefined;
18585
- deleteBasket: (index: number) => Promise<void>;
18586
- createBasket: (basket: import("@sinequa/atomic-angular").Basket) => Promise<void>;
18587
- updateBaskets: (baskets: import("@sinequa/atomic-angular").UserSettingsState["baskets"]) => Promise<void>;
18588
- updateBasket: (basket: import("@sinequa/atomic-angular").Basket, index: number) => Promise<void>;
18589
- addToBasket: (name: string, ids: string | string[]) => Promise<void>;
18590
- removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
18591
- updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
18592
- updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18593
- updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18594
- initialize: () => Promise<void>;
18595
- reset: () => Promise<void>;
18596
- deleteAlert: (index: number) => Promise<void>;
18597
- createAlert: (alert: import("@sinequa/atomic-angular").Alert) => Promise<void>;
18598
- updateAlert: (alert: import("@sinequa/atomic-angular").Alert, index: number) => Promise<void>;
18599
- updateAlerts: (alerts: import("@sinequa/atomic-angular").Alert[]) => Promise<void>;
18600
- setDebugMode: (value: boolean) => Promise<void>;
18601
- setUserTheme: (userTheme: "dark" | "light" | "system") => Promise<void>;
18602
- toggleDarkMode: () => Promise<void>;
18603
- setDisabledHighlightCategories: (keys: string[]) => Promise<void>;
18604
- } & import("@ngrx/signals").StateSource<{
18605
- bookmarks: import("@sinequa/atomic-angular").Bookmark[];
18606
- recentSearches: import("@sinequa/atomic-angular").SearchItem[];
18607
- savedSearches: import("@sinequa/atomic-angular").SearchItem[];
18608
- baskets: import("@sinequa/atomic-angular").Basket[];
18609
- assistants: Record<string, unknown>;
18610
- alerts: import("@sinequa/atomic-angular").Alert[];
18611
- collapseAssistant?: boolean | undefined;
18612
- language?: string | undefined;
18613
- userTheme: "dark" | "light" | "system";
18614
- agents: import("@sinequa/atomic-angular").AgentUserSettings;
18615
- disabledHighlightCategories: string[];
18616
- }>;
18617
18876
  protected readonly userProfileService: UserProfileService;
18618
18877
  protected readonly appStore: {
18619
18878
  name: Signal<string>;
@@ -18967,25 +19226,10 @@ export declare class UserProfileFormComponent {
18967
19226
  protected readonly username: Signal<string | null>;
18968
19227
  /** Id of the property being edited, `"<category>.<key>"` — at most one at a time. */
18969
19228
  protected readonly propertyToEdit: import("@angular/core").WritableSignal<string | undefined>;
18970
- /** Selected UI language. `null` is the empty state — the `Select` never uses `undefined`. */
18971
- readonly currentLanguage: import("@angular/core").ModelSignal<string | null>;
18972
- /**
18973
- * The supported languages, with a flag icon per entry. The default `Select` rendering only uses the
18974
- * label; the icon is there for a host that projects its own `#selectOption` template.
18975
- */
18976
- protected readonly allLanguages: {
18977
- code: SupportedLanguage;
18978
- label: string;
18979
- icon: Type<unknown>;
18980
- }[];
18981
- /** Codes de langue passés au `SelectMenu` (typés `string[]` pour rester alignés avec `currentLanguage`). */
18982
- protected readonly languageCodes: string[];
18983
- /** Libellé d'une langue — typeahead + rendu par défaut du `SelectMenu`. */
18984
- protected readonly languageLabel: (code: string) => string;
18985
19229
  readonly changingPassword: import("@angular/core").WritableSignal<boolean>;
18986
19230
  readonly allowChangePassword: Signal<boolean>;
18987
- protected readonly userProfileResource: import("@angular/core").ResourceRef<UserProfile$1 | undefined>;
18988
- protected readonly user: import("@angular/core").WritableSignal<UserProfile$1 | undefined>;
19231
+ protected readonly userProfileResource: import("@angular/core").ResourceRef<UserProfile | undefined>;
19232
+ protected readonly user: import("@angular/core").WritableSignal<UserProfile | undefined>;
18989
19233
  /**
18990
19234
  * Form model, re-seeded from the stored profile.
18991
19235
  *
@@ -19100,22 +19344,8 @@ export declare class UserProfileFormComponent {
19100
19344
  * TODO: how do we save the picture?
19101
19345
  */
19102
19346
  protected uploadAvatar(event: Event): void;
19103
- /** Relais du `SelectMenu` de langue : `null` (désélection) est ignoré. */
19104
- protected onLanguageChange(code: string | null): void;
19105
- /**
19106
- * Change the app language
19107
- */
19108
- changeLanguage(): void;
19109
19347
  static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileFormComponent, never>;
19110
- static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileFormComponent, "user-profile-form, UserProfileForm, userprofileform", never, {
19111
- "currentLanguage": {
19112
- "alias": "currentLanguage";
19113
- "required": false;
19114
- "isSignal": true;
19115
- };
19116
- }, {
19117
- "currentLanguage": "currentLanguageChange";
19118
- }, never, never, true, never>;
19348
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileFormComponent, "user-profile-form, UserProfileForm, userprofileform", never, {}, {}, never, never, true, never>;
19119
19349
  }
19120
19350
  /**
19121
19351
  * Returns a guard function that checks if the user is authenticated.