@sinequa/atomic-angular 2.4.1 → 2.6.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.
@@ -13,6 +13,7 @@ import { Placement } from "@floating-ui/dom";
13
13
  import { CdkDragDrop } from "@angular/cdk/drag-drop";
14
14
  import { Options as Options$1 } from "vanilla-calendar-pro";
15
15
  import { TreeItem } from "@angular/aria/tree";
16
+ import { Toolbar } from "@angular/aria/toolbar";
16
17
  import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from "@angular/common/http";
17
18
  import { HighlightWords } from "highlight-words";
18
19
  import { DatePipe, DatePipeConfig } from "@angular/common";
@@ -593,7 +594,9 @@ export declare class ConverterSelectComponent {
593
594
  defaultAgent: string;
594
595
  };
595
596
  }>;
596
- initialize: () => Promise<void>;
597
+ initialize: () => Promise<undefined>;
598
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
599
+ fail: (error: unknown) => never;
597
600
  initializeWithAppName: (appName: string) => Promise<void>;
598
601
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
599
602
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -1406,7 +1409,9 @@ export declare class MultiSelectionToolbarComponent {
1406
1409
  defaultAgent: string;
1407
1410
  };
1408
1411
  }>;
1409
- initialize: () => Promise<void>;
1412
+ initialize: () => Promise<undefined>;
1413
+ hydrate: (app: CCApp) => void;
1414
+ fail: (error: unknown) => never;
1410
1415
  initializeWithAppName: (appName: string) => Promise<void>;
1411
1416
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
1412
1417
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -1620,12 +1625,32 @@ export declare class MultiSelectionToolbarComponent {
1620
1625
  } | undefined;
1621
1626
  readonly class: import("@angular/core").InputSignal<string>;
1622
1627
  readonly variant: import("@angular/core").InputSignal<"light" | "dark" | "glassy" | null | undefined>;
1628
+ /**
1629
+ * Texte ajouté à l'annonce lecteur d'écran lors de la **première** sélection (ex. « F6 pour accéder
1630
+ * aux actions »). Il est fourni par l'application : seule elle sait par quel raccourci elle rend la
1631
+ * barre atteignable, la librairie n'en suppose aucun.
1632
+ */
1633
+ readonly hint: import("@angular/core").InputSignal<string | undefined>;
1623
1634
  readonly updatedCollections: import("@angular/core").OutputEmitterRef<void>;
1635
+ /** La sélection vient d'être vidée (bouton, Échap) : l'application replace le focus, la barre devient inerte. */
1636
+ readonly cleared: import("@angular/core").OutputEmitterRef<void>;
1624
1637
  readonly count: import("@angular/core").Signal<number>;
1625
1638
  readonly variants: import("@angular/core").Signal<string>;
1626
1639
  readonly ids: import("@angular/core").Signal<string[]>;
1627
1640
  readonly instanceId: import("@angular/core").Signal<string>;
1628
1641
  readonly enabledUserInput: import("@angular/core").Signal<boolean>;
1642
+ /**
1643
+ * Affiche l'action « Ajouter à l'AI Overview ». La librairie ne peut pas savoir si l'application
1644
+ * embarque un assistant : ce `input` est le consentement de l'hôte (faux par défaut). À mettre à
1645
+ * `true` uniquement si l'application lit `assistantIdsToAttach` du `SelectionStore`.
1646
+ */
1647
+ readonly allowAI: import("@angular/core").InputSignal<boolean>;
1648
+ /** L'hôte l'autorise, l'assistant est configuré et autorisé côté backend, et la saisie utilisateur est activée. */
1649
+ readonly showAssistantAction: import("@angular/core").Signal<boolean>;
1650
+ /** Vrai uniquement à la première sélection : ensuite, seul le décompte est annoncé. */
1651
+ protected readonly showHint: import("@angular/core").WritableSignal<boolean>;
1652
+ private armed;
1653
+ constructor();
1629
1654
  clearSelection: () => void;
1630
1655
  openCollectionDialog: () => Promise<void>;
1631
1656
  openExportDialog: () => void;
@@ -1642,8 +1667,19 @@ export declare class MultiSelectionToolbarComponent {
1642
1667
  "required": false;
1643
1668
  "isSignal": true;
1644
1669
  };
1670
+ "hint": {
1671
+ "alias": "hint";
1672
+ "required": false;
1673
+ "isSignal": true;
1674
+ };
1675
+ "allowAI": {
1676
+ "alias": "allowAI";
1677
+ "required": false;
1678
+ "isSignal": true;
1679
+ };
1645
1680
  }, {
1646
1681
  "updatedCollections": "updatedCollections";
1682
+ "cleared": "cleared";
1647
1683
  }, never, never, true, never>;
1648
1684
  }
1649
1685
  export interface NavRouteTab {
@@ -1837,7 +1873,9 @@ export declare class NavbarTabsComponent {
1837
1873
  defaultAgent: string;
1838
1874
  };
1839
1875
  }>;
1840
- initialize: () => Promise<void>;
1876
+ initialize: () => Promise<undefined>;
1877
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
1878
+ fail: (error: unknown) => never;
1841
1879
  initializeWithAppName: (appName: string) => Promise<void>;
1842
1880
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
1843
1881
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -2338,7 +2376,17 @@ export declare const AppStore: import("@angular/core").Type<{
2338
2376
  sidebar?: string;
2339
2377
  };
2340
2378
  dark?: {
2341
- small?: string;
2379
+ small?
2380
+ /**
2381
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2382
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2383
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2384
+ */
2385
+ /**
2386
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2387
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2388
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2389
+ */ : string;
2342
2390
  large?: string;
2343
2391
  sidebar?: string;
2344
2392
  };
@@ -2402,7 +2450,17 @@ export declare const AppStore: import("@angular/core").Type<{
2402
2450
  sidebar?: string;
2403
2451
  };
2404
2452
  dark?: {
2405
- small?: string;
2453
+ small?
2454
+ /**
2455
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2456
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2457
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2458
+ */
2459
+ /**
2460
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2461
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2462
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2463
+ */ : string;
2406
2464
  large?: string;
2407
2465
  sidebar?: string;
2408
2466
  };
@@ -2438,7 +2496,9 @@ export declare const AppStore: import("@angular/core").Type<{
2438
2496
  } | undefined>;
2439
2497
  assistants: import("@angular/core").Signal<AssistantConfiguration>;
2440
2498
  agents: import("@angular/core").Signal<AgentConfiguration>;
2441
- initialize: () => Promise<void>;
2499
+ initialize: () => Promise<undefined>;
2500
+ hydrate: (app: CCApp) => void;
2501
+ fail: (error: unknown) => never;
2442
2502
  initializeWithAppName: (appName: string) => Promise<void>;
2443
2503
  update: (app: Partial<CCAppState>) => void;
2444
2504
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -2530,7 +2590,17 @@ export declare const AppStore: import("@angular/core").Type<{
2530
2590
  sidebar?: string;
2531
2591
  };
2532
2592
  dark?: {
2533
- small?: string;
2593
+ small?
2594
+ /**
2595
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2596
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2597
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2598
+ */
2599
+ /**
2600
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2601
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2602
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2603
+ */ : string;
2534
2604
  large?: string;
2535
2605
  sidebar?: string;
2536
2606
  };
@@ -2651,7 +2721,17 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2651
2721
  sidebar?: string;
2652
2722
  };
2653
2723
  dark?: {
2654
- small?: string;
2724
+ small?
2725
+ /**
2726
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2727
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2728
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2729
+ */
2730
+ /**
2731
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2732
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2733
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2734
+ */ : string;
2655
2735
  large?: string;
2656
2736
  sidebar?: string;
2657
2737
  };
@@ -2717,7 +2797,17 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2717
2797
  sidebar?: string;
2718
2798
  };
2719
2799
  dark?: {
2720
- small?: string;
2800
+ small?
2801
+ /**
2802
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2803
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2804
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2805
+ */
2806
+ /**
2807
+ * Sets the store from an app configuration already in hand, and builds the column map. What
2808
+ * `initialize()` does after its fetch — separate so that a start-up that fetched the
2809
+ * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2810
+ */ : string;
2721
2811
  large?: string;
2722
2812
  sidebar?: string;
2723
2813
  };
@@ -2755,7 +2845,9 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2755
2845
  agents: import("@angular/core").Signal<AgentConfiguration>;
2756
2846
  };
2757
2847
  methods: {
2758
- initialize: () => Promise<void>;
2848
+ initialize: () => Promise<undefined>;
2849
+ hydrate: (app: CCApp) => void;
2850
+ fail: (error: unknown) => never;
2759
2851
  initializeWithAppName: (appName: string) => Promise<void>;
2760
2852
  update: (app: Partial<CCAppState>) => void;
2761
2853
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -2890,6 +2982,8 @@ export declare const PrincipalStore: import("@angular/core").Type<{
2890
2982
  allowUserOverride: import("@angular/core").Signal<boolean>;
2891
2983
  isOverridingUser: import("@angular/core").Signal<boolean>;
2892
2984
  initials: import("@angular/core").Signal<string>;
2985
+ hydrate: (principal: Principal) => void;
2986
+ fail: (error: unknown) => never;
2893
2987
  principal: () => Principal;
2894
2988
  initialize: () => Promise<void>;
2895
2989
  } & import("@ngrx/signals").StateSource<{
@@ -3305,6 +3399,8 @@ export declare const UserSettingsStore: import("@angular/core").Type<{
3305
3399
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
3306
3400
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
3307
3401
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
3402
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
3403
+ fail: (err: unknown) => void;
3308
3404
  initialize: () => Promise<void>;
3309
3405
  reset: () => Promise<void>;
3310
3406
  deleteAlert: (index: number) => Promise<void>;
@@ -3416,6 +3512,8 @@ export declare function withUserSettingsFeatures(): import("@ngrx/signals").Sign
3416
3512
  };
3417
3513
  props: {};
3418
3514
  methods: {
3515
+ hydrate: (settings: UserSettingsState) => void;
3516
+ fail: (err: unknown) => void;
3419
3517
  initialize: () => Promise<void>;
3420
3518
  reset: () => Promise<void>;
3421
3519
  };
@@ -3609,7 +3707,9 @@ export declare class PreviewContentComponent {
3609
3707
  defaultAgent: string;
3610
3708
  };
3611
3709
  }>;
3612
- initialize: () => Promise<void>;
3710
+ initialize: () => Promise<undefined>;
3711
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
3712
+ fail: (error: unknown) => never;
3613
3713
  initializeWithAppName: (appName: string) => Promise<void>;
3614
3714
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
3615
3715
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -4255,7 +4355,9 @@ export declare class AggregationsService {
4255
4355
  defaultAgent: string;
4256
4356
  };
4257
4357
  }>;
4258
- initialize: () => Promise<void>;
4358
+ initialize: () => Promise<undefined>;
4359
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
4360
+ fail: (error: unknown) => never;
4259
4361
  initializeWithAppName: (appName: string) => Promise<void>;
4260
4362
  update: (app: Partial<CCAppState>) => void;
4261
4363
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -4686,26 +4788,28 @@ export declare class ApplicationService {
4686
4788
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
4687
4789
  isDebugMode: import("@angular/core").Signal<boolean>;
4688
4790
  isDarkMode: import("@angular/core").Signal<boolean>;
4689
- updateBookmarks: (bookmarks: import("@sinequa/atomic-angular").UserSettingsState["bookmarks"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4791
+ updateBookmarks: (bookmarks: UserSettingsState["bookmarks"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4690
4792
  bookmark: (article: import("@sinequa/atomic").Article, queryName?: string) => Promise<void>;
4691
4793
  unbookmark: (id: string) => Promise<void>;
4692
4794
  isBookmarked: (article: Partial<import("@sinequa/atomic").Article>) => boolean;
4693
4795
  toggleBookmark: (article: import("@sinequa/atomic").Article) => Promise<void>;
4694
4796
  deleteRecentSearch: (index: number) => Promise<void>;
4695
- updateRecentSearches: (recentSearches: import("@sinequa/atomic-angular").UserSettingsState["recentSearches"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4797
+ updateRecentSearches: (recentSearches: UserSettingsState["recentSearches"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4696
4798
  addCurrentSearch: (queryParams: import("@sinequa/atomic").QueryParams) => Promise<void>;
4697
4799
  deleteSavedSearch: (index: number) => Promise<void>;
4698
- updateSavedSearches: (savedSearches: import("@sinequa/atomic-angular").UserSettingsState["savedSearches"]) => Promise<void>;
4800
+ updateSavedSearches: (savedSearches: UserSettingsState["savedSearches"]) => Promise<void>;
4699
4801
  getSavedSearch: (search: string, tab?: string) => import("@sinequa/atomic-angular").SearchItem | undefined;
4700
4802
  deleteBasket: (index: number) => Promise<void>;
4701
4803
  createBasket: (basket: import("@sinequa/atomic-angular").Basket) => Promise<void>;
4702
- updateBaskets: (baskets: import("@sinequa/atomic-angular").UserSettingsState["baskets"]) => Promise<void>;
4804
+ updateBaskets: (baskets: UserSettingsState["baskets"]) => Promise<void>;
4703
4805
  updateBasket: (basket: import("@sinequa/atomic-angular").Basket, index: number) => Promise<void>;
4704
4806
  addToBasket: (name: string, ids: string | string[]) => Promise<void>;
4705
4807
  removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
4706
- updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
4707
- updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4708
- updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4808
+ updateAssistantSettings: (assistantSettings: UserSettingsState["assistants"]) => Promise<void>;
4809
+ updateLanguage: (language: UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4810
+ updateAssistantCollapsed: (collapseAssistant: UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4811
+ hydrate: (settings: UserSettingsState) => void;
4812
+ fail: (err: unknown) => void;
4709
4813
  initialize: () => Promise<void>;
4710
4814
  reset: () => Promise<void>;
4711
4815
  deleteAlert: (index: number) => Promise<void>;
@@ -4760,6 +4864,8 @@ export declare class ApplicationService {
4760
4864
  allowUserOverride: import("@angular/core").Signal<boolean>;
4761
4865
  isOverridingUser: import("@angular/core").Signal<boolean>;
4762
4866
  initials: import("@angular/core").Signal<string>;
4867
+ hydrate: (principal: import("@sinequa/atomic").Principal) => void;
4868
+ fail: (error: unknown) => never;
4763
4869
  principal: () => import("@sinequa/atomic").Principal;
4764
4870
  initialize: () => Promise<void>;
4765
4871
  } & import("@ngrx/signals").StateSource<{
@@ -4962,7 +5068,9 @@ export declare class ApplicationService {
4962
5068
  defaultAgent: string;
4963
5069
  };
4964
5070
  }>;
4965
- initialize: () => Promise<void>;
5071
+ initialize: () => Promise<undefined>;
5072
+ hydrate: (app: CCApp) => void;
5073
+ fail: (error: unknown) => never;
4966
5074
  initializeWithAppName: (appName: string) => Promise<void>;
4967
5075
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
4968
5076
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -5219,6 +5327,7 @@ export declare class ApplicationService {
5219
5327
  router: Router;
5220
5328
  titleService: Title;
5221
5329
  private readonly client;
5330
+ private readonly startupDataSource;
5222
5331
  components: ComponentMapping[];
5223
5332
  defaultComponent: import("@angular/core").Signal<Type<unknown> | undefined>;
5224
5333
  defaultLayoutComponent: import("@angular/core").Signal<Type<unknown> | undefined>;
@@ -5266,6 +5375,26 @@ export declare class ApplicationService {
5266
5375
  syncUrl?: boolean;
5267
5376
  isBootstrap?: boolean;
5268
5377
  }): Promise<void>;
5378
+ /**
5379
+ * The start-up reads, in parallel: none depends on another's answer, only on the session, so
5380
+ * waiting for each in turn cost two round trips for nothing. A part the start-up data source
5381
+ * ({@link provideStartupAggregation}) provided is taken as is; every other part — all three without
5382
+ * a source, or when it fails — is read here, still in parallel. So the result only carries errors
5383
+ * of reads made here, never one a source reported.
5384
+ */
5385
+ private loadStartupData;
5386
+ /**
5387
+ * What the start-up data source answers, or `undefined` when there is none, when it fails, or when
5388
+ * its answer is not an object — an empty `204` reads as `undefined`. Never throws: the parts it
5389
+ * could not provide are then read the usual way.
5390
+ */
5391
+ private readStartupDataSource;
5392
+ /**
5393
+ * Applies one part to its store: its value, or the error its read failed with, handled exactly as
5394
+ * the store's own `initialize()` would (the configuration and the principal throw, the settings keep
5395
+ * their defaults).
5396
+ */
5397
+ private apply;
5269
5398
  /**
5270
5399
  * Creates dynamic routes based on the application's queries and custom JSON configurations.
5271
5400
  *
@@ -5495,7 +5624,9 @@ export declare class AuditService {
5495
5624
  defaultAgent: string;
5496
5625
  };
5497
5626
  }>;
5498
- initialize: () => Promise<void>;
5627
+ initialize: () => Promise<undefined>;
5628
+ hydrate: (app: CCApp) => void;
5629
+ fail: (error: unknown) => never;
5499
5630
  initializeWithAppName: (appName: string) => Promise<void>;
5500
5631
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
5501
5632
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -5711,6 +5842,8 @@ export declare class AutocompleteService {
5711
5842
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
5712
5843
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
5713
5844
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
5845
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
5846
+ fail: (err: unknown) => void;
5714
5847
  initialize: () => Promise<void>;
5715
5848
  reset: () => Promise<void>;
5716
5849
  deleteAlert: (index: number) => Promise<void>;
@@ -5905,7 +6038,9 @@ export declare class AutocompleteService {
5905
6038
  defaultAgent: string;
5906
6039
  };
5907
6040
  }>;
5908
- initialize: () => Promise<void>;
6041
+ initialize: () => Promise<undefined>;
6042
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
6043
+ fail: (error: unknown) => never;
5909
6044
  initializeWithAppName: (appName: string) => Promise<void>;
5910
6045
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
5911
6046
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -6926,7 +7061,9 @@ export declare class PreviewService {
6926
7061
  defaultAgent: string;
6927
7062
  };
6928
7063
  }>;
6929
- initialize: () => Promise<void>;
7064
+ initialize: () => Promise<undefined>;
7065
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
7066
+ fail: (error: unknown) => never;
6930
7067
  initializeWithAppName: (appName: string) => Promise<void>;
6931
7068
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
6932
7069
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -7290,6 +7427,8 @@ export declare class SavedSearchesService {
7290
7427
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
7291
7428
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
7292
7429
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
7430
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
7431
+ fail: (err: unknown) => void;
7293
7432
  initialize: () => Promise<void>;
7294
7433
  reset: () => Promise<void>;
7295
7434
  deleteAlert: (index: number) => Promise<void>;
@@ -7642,6 +7781,8 @@ export declare class SearchService {
7642
7781
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
7643
7782
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: AuditEvents) => Promise<void>;
7644
7783
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: AuditEvents) => Promise<void>;
7784
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
7785
+ fail: (err: unknown) => void;
7645
7786
  initialize: () => Promise<void>;
7646
7787
  reset: () => Promise<void>;
7647
7788
  deleteAlert: (index: number) => Promise<void>;
@@ -8122,7 +8263,9 @@ export declare class SortSelectorComponent {
8122
8263
  defaultAgent: string;
8123
8264
  };
8124
8265
  }>;
8125
- initialize: () => Promise<void>;
8266
+ initialize: () => Promise<undefined>;
8267
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
8268
+ fail: (error: unknown) => never;
8126
8269
  initializeWithAppName: (appName: string) => Promise<void>;
8127
8270
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
8128
8271
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -8475,6 +8618,8 @@ export declare class ShowBookmarkDirective {
8475
8618
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
8476
8619
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
8477
8620
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
8621
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
8622
+ fail: (err: unknown) => void;
8478
8623
  initialize: () => Promise<void>;
8479
8624
  reset: () => Promise<void>;
8480
8625
  deleteAlert: (index: number) => Promise<void>;
@@ -9038,7 +9183,9 @@ export declare class SponsoredResultsComponent {
9038
9183
  defaultAgent: string;
9039
9184
  };
9040
9185
  }>;
9041
- initialize: () => Promise<void>;
9186
+ initialize: () => Promise<undefined>;
9187
+ hydrate: (app: CCApp) => void;
9188
+ fail: (error: unknown) => never;
9042
9189
  initializeWithAppName: (appName: string) => Promise<void>;
9043
9190
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
9044
9191
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -11619,6 +11766,12 @@ declare class ListPanelComponent<T> {
11619
11766
  /** Accessible name of a row (typeahead/aria) — falls back to `getValue()` when omitted. */
11620
11767
  getLabel: import("@angular/core").InputSignal<((item: T) => string) | undefined>;
11621
11768
  deleteButtonTitle: import("@angular/core").InputSignal<string>;
11769
+ /**
11770
+ * Whether rows can be deleted. On by default. Off, rows carry no trash icon, `Delete` does nothing and
11771
+ * nothing announces it (no `aria-keyshortcuts`, no hint) — a list that cannot delete must not say
11772
+ * that it can.
11773
+ */
11774
+ deletable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
11622
11775
  /**
11623
11776
  * Nom accessible de la liste, posé sur le `<List role="listbox">` interne.
11624
11777
  *
@@ -11632,6 +11785,19 @@ declare class ListPanelComponent<T> {
11632
11785
  itemClick: import("@angular/core").OutputEmitterRef<T>;
11633
11786
  delete: import("@angular/core").OutputEmitterRef<ListPanelDeleteEvent<T>>;
11634
11787
  protected readonly itemTemplate: import("@angular/core").Signal<ListPanelItemDirective | undefined>;
11788
+ /**
11789
+ * `Delete`, plus `Backspace` sur une plateforme Apple : un MacBook n'a pas de touche `Delete` dédiée
11790
+ * (`fn+⌫`), et `⌫` seul émet `Backspace`. Ailleurs, `Backspace` dans une liste n'exprime aucune
11791
+ * intention de suppression.
11792
+ */
11793
+ protected readonly deleteKeys: string[];
11794
+ private readonly list;
11795
+ /**
11796
+ * Vrai tant que le focus clavier est dans la liste. À brancher sur `[navigationHint]` du pied de liste
11797
+ * (`<ListPanel #panel>` … `<ListPanelFooter [navigationHint]="panel.keyboardFocused()">`) : l'aide de
11798
+ * navigation ne s'affiche que quand elle sert.
11799
+ */
11800
+ readonly keyboardFocused: import("@angular/core").Signal<boolean>;
11635
11801
  private readonly host;
11636
11802
  private readonly injector;
11637
11803
  /** Index de la ligne supprimée, tant que le focus n'a pas été rendu à la liste. */
@@ -11677,6 +11843,11 @@ declare class ListPanelComponent<T> {
11677
11843
  "required": false;
11678
11844
  "isSignal": true;
11679
11845
  };
11846
+ "deletable": {
11847
+ "alias": "deletable";
11848
+ "required": false;
11849
+ "isSignal": true;
11850
+ };
11680
11851
  "ariaLabel": {
11681
11852
  "alias": "ariaLabel";
11682
11853
  "required": false;
@@ -12441,7 +12612,9 @@ export declare class FeedbackDialogComponent {
12441
12612
  defaultAgent: string;
12442
12613
  };
12443
12614
  }>;
12444
- initialize: () => Promise<void>;
12615
+ initialize: () => Promise<undefined>;
12616
+ hydrate: (app: CCApp) => void;
12617
+ fail: (error: unknown) => never;
12445
12618
  initializeWithAppName: (appName: string) => Promise<void>;
12446
12619
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
12447
12620
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -12894,6 +13067,8 @@ export declare class AggregationDateComponent {
12894
13067
  private readonly uid;
12895
13068
  protected readonly startId: string;
12896
13069
  protected readonly endId: string;
13070
+ /** Classes merged onto the host, after its defaults — `h-*` / `max-h-*` here bound the facet. */
13071
+ class: import("@angular/core").InputSignal<string>;
12897
13072
  name: import("@angular/core").InputSignal<string | null>;
12898
13073
  column: import("@angular/core").InputSignal<string | null>;
12899
13074
  id: import("@angular/core").InputSignal<string | null>;
@@ -13246,6 +13421,11 @@ export declare class AggregationDateComponent {
13246
13421
  private getFormValueFilter;
13247
13422
  static ɵfac: i0.ɵɵFactoryDeclaration<AggregationDateComponent, never>;
13248
13423
  static ɵcmp: i0.ɵɵComponentDeclaration<AggregationDateComponent, "aggregation-date, AggregationDate, aggregationdate", never, {
13424
+ "class": {
13425
+ "alias": "class";
13426
+ "required": false;
13427
+ "isSignal": true;
13428
+ };
13249
13429
  "name": {
13250
13430
  "alias": "name";
13251
13431
  "required": false;
@@ -13758,7 +13938,9 @@ export declare class AggregationTreeComponent {
13758
13938
  defaultAgent: string;
13759
13939
  };
13760
13940
  }>;
13761
- initialize: () => Promise<void>;
13941
+ initialize: () => Promise<undefined>;
13942
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
13943
+ fail: (error: unknown) => never;
13762
13944
  initializeWithAppName: (appName: string) => Promise<void>;
13763
13945
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
13764
13946
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -14615,7 +14797,9 @@ export declare class AggregationListComponent {
14615
14797
  defaultAgent: string;
14616
14798
  };
14617
14799
  }>;
14618
- initialize: () => Promise<void>;
14800
+ initialize: () => Promise<undefined>;
14801
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
14802
+ fail: (error: unknown) => never;
14619
14803
  initializeWithAppName: (appName: string) => Promise<void>;
14620
14804
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
14621
14805
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -15111,7 +15295,9 @@ export declare class AggregationComponent {
15111
15295
  defaultAgent: string;
15112
15296
  };
15113
15297
  }>;
15114
- initialize: () => Promise<void>;
15298
+ initialize: () => Promise<undefined>;
15299
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
15300
+ fail: (error: unknown) => never;
15115
15301
  initializeWithAppName: (appName: string) => Promise<void>;
15116
15302
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
15117
15303
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -16016,6 +16202,13 @@ export declare class FilterButtonComponent {
16016
16202
  */
16017
16203
  lockPosition: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16018
16204
  expandedLevel: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
16205
+ /**
16206
+ * Set by `filters-bar` on the filters that do not fit and are hidden by the overflow manager. They
16207
+ * leave the toolbar's keyboard navigation: a roving focus cannot land on an element with
16208
+ * `display: none`, so the arrow keys used to stall on the last visible filter while the tab stop
16209
+ * silently moved to a hidden one.
16210
+ */
16211
+ overflowed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16019
16212
  protected variant: import("@angular/core").WritableSignal<"primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined>;
16020
16213
  protected filter: import("@angular/core").WritableSignal<CFilterEx>;
16021
16214
  /** Unique id wiring the trigger's `popovertarget` to the `<div popover>` `id`. */
@@ -16023,6 +16216,8 @@ export declare class FilterButtonComponent {
16023
16216
  popoverRef: import("@angular/core").Signal<PopoverDirective | undefined>;
16024
16217
  /** True while the native popover is open — drives the trigger's open styling. */
16025
16218
  protected readonly isOpen: import("@angular/core").Signal<boolean>;
16219
+ /** Set when this button sits in a `filters-bar` toolbar: the inner button then is the roving widget. */
16220
+ protected readonly toolbar: Toolbar | null;
16026
16221
  protected nativeElement: any;
16027
16222
  protected aggregationsStore: {
16028
16223
  aggregations: import("@angular/core").Signal<import("@sinequa/atomic").Aggregation[]>;
@@ -16314,7 +16509,9 @@ export declare class FilterButtonComponent {
16314
16509
  defaultAgent: string;
16315
16510
  };
16316
16511
  }>;
16317
- initialize: () => Promise<void>;
16512
+ initialize: () => Promise<undefined>;
16513
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
16514
+ fail: (error: unknown) => never;
16318
16515
  initializeWithAppName: (appName: string) => Promise<void>;
16319
16516
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
16320
16517
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -16528,6 +16725,11 @@ export declare class FilterButtonComponent {
16528
16725
  "required": false;
16529
16726
  "isSignal": true;
16530
16727
  };
16728
+ "overflowed": {
16729
+ "alias": "overflowed";
16730
+ "required": false;
16731
+ "isSignal": true;
16732
+ };
16531
16733
  }, {}, never, never, true, never>;
16532
16734
  }
16533
16735
  export declare class MoreButtonComponent {
@@ -16702,7 +16904,9 @@ export declare class MoreButtonComponent {
16702
16904
  defaultAgent: string;
16703
16905
  };
16704
16906
  }>;
16705
- initialize: () => Promise<void>;
16907
+ initialize: () => Promise<undefined>;
16908
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
16909
+ fail: (error: unknown) => never;
16706
16910
  initializeWithAppName: (appName: string) => Promise<void>;
16707
16911
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
16708
16912
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -16959,6 +17163,17 @@ export declare class MoreButtonComponent {
16959
17163
  nativeElement: any;
16960
17164
  breakpointObserver: BreakpointObserverService;
16961
17165
  aggregationsService: AggregationsService;
17166
+ /** Set when this button sits in a `filters-bar` toolbar: the inner button then is the roving widget. */
17167
+ protected readonly toolbar: Toolbar | null;
17168
+ /**
17169
+ * Takes the trigger out of the keyboard navigation (and the toolbar's roving) while there is nothing
17170
+ * to show behind it, instead of leaving an invisible stop.
17171
+ */
17172
+ disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
17173
+ protected readonly triggerClass = "gap-1 truncate font-semibold";
17174
+ protected readonly openTriggerClass = "gap-1 truncate font-semibold border border-(--stroke-neutral-dark)/18";
17175
+ protected readonly openSheet: () => void | undefined;
17176
+ protected readonly openDialog: () => void | undefined;
16962
17177
  count: import("@angular/core").InputSignalWithTransform<number, unknown>;
16963
17178
  position: import("@angular/core").InputSignal<Placement>;
16964
17179
  /**
@@ -17025,6 +17240,11 @@ export declare class MoreButtonComponent {
17025
17240
  isEnriched: import("@angular/core").Signal<boolean>;
17026
17241
  static ɵfac: i0.ɵɵFactoryDeclaration<MoreButtonComponent, never>;
17027
17242
  static ɵcmp: i0.ɵɵComponentDeclaration<MoreButtonComponent, "more-button, MoreButton", never, {
17243
+ "disabled": {
17244
+ "alias": "disabled";
17245
+ "required": false;
17246
+ "isSignal": true;
17247
+ };
17028
17248
  "count": {
17029
17249
  "alias": "count";
17030
17250
  "required": false;
@@ -17327,7 +17547,9 @@ export declare class FiltersBarComponent {
17327
17547
  defaultAgent: string;
17328
17548
  };
17329
17549
  }>;
17330
- initialize: () => Promise<void>;
17550
+ initialize: () => Promise<undefined>;
17551
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
17552
+ fail: (error: unknown) => never;
17331
17553
  initializeWithAppName: (appName: string) => Promise<void>;
17332
17554
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
17333
17555
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -18018,7 +18240,9 @@ export declare class LabelService {
18018
18240
  defaultAgent: string;
18019
18241
  };
18020
18242
  }>;
18021
- initialize: () => Promise<void>;
18243
+ initialize: () => Promise<undefined>;
18244
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
18245
+ fail: (error: unknown) => never;
18022
18246
  initializeWithAppName: (appName: string) => Promise<void>;
18023
18247
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
18024
18248
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -18401,6 +18625,8 @@ export declare class RecentSearchesComponent {
18401
18625
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
18402
18626
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18403
18627
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18628
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
18629
+ fail: (err: unknown) => void;
18404
18630
  initialize: () => Promise<void>;
18405
18631
  reset: () => Promise<void>;
18406
18632
  deleteAlert: (index: number) => Promise<void>;
@@ -18512,6 +18738,8 @@ export declare class SavedSearchPopover {
18512
18738
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
18513
18739
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18514
18740
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18741
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
18742
+ fail: (err: unknown) => void;
18515
18743
  initialize: () => Promise<void>;
18516
18744
  reset: () => Promise<void>;
18517
18745
  deleteAlert: (index: number) => Promise<void>;
@@ -18594,6 +18822,8 @@ export declare class SavedSearchesComponent {
18594
18822
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
18595
18823
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18596
18824
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18825
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
18826
+ fail: (err: unknown) => void;
18597
18827
  initialize: () => Promise<void>;
18598
18828
  reset: () => Promise<void>;
18599
18829
  deleteAlert: (index: number) => Promise<void>;
@@ -18657,6 +18887,9 @@ export declare class SettingsDialogComponent {
18657
18887
  labelKey: string;
18658
18888
  }[];
18659
18889
  protected readonly panel: import("@angular/core").WritableSignal<SettingsPanelId>;
18890
+ /** Once the user picks a panel, the focus is theirs: the account panel stops claiming it. */
18891
+ protected readonly navigated: import("@angular/core").WritableSignal<boolean>;
18892
+ protected navigate(id: SettingsPanelId): void;
18660
18893
  /** Set when another instance is already open: this one only redirects it, then ends. */
18661
18894
  protected readonly duplicate: boolean;
18662
18895
  constructor();
@@ -18673,6 +18906,18 @@ export declare const Settings: import("@sinequa/galactik").Callable<SettingsDial
18673
18906
  * mounts outside this panel's tree and would otherwise lose the scoped providers.
18674
18907
  */
18675
18908
  export declare class SettingsAccountPanelComponent {
18909
+ /**
18910
+ * Puts the focus on the first control of the profile once it is rendered. Off by default: when the
18911
+ * user reaches this panel from the navigation, the focus belongs to the navigation button they just
18912
+ * activated. The dialog turns it on only for the panel it opens on.
18913
+ *
18914
+ * The dialog itself lands the focus on its content, to be announced before Tab walks in — which
18915
+ * leaves a keyboard user a handful of Tabs (close, navigation, photo…) before the first field of
18916
+ * the profile they came to edit.
18917
+ */
18918
+ readonly focusOnOpen: import("@angular/core").InputSignal<boolean>;
18919
+ private readonly host;
18920
+ private readonly destroyRef;
18676
18921
  protected readonly principalStore: {
18677
18922
  id: import("@angular/core").Signal<string>;
18678
18923
  id2: import("@angular/core").Signal<string>;
@@ -18704,6 +18949,8 @@ export declare class SettingsAccountPanelComponent {
18704
18949
  allowUserOverride: import("@angular/core").Signal<boolean>;
18705
18950
  isOverridingUser: import("@angular/core").Signal<boolean>;
18706
18951
  initials: import("@angular/core").Signal<string>;
18952
+ hydrate: (principal: import("@sinequa/atomic").Principal) => void;
18953
+ fail: (error: unknown) => never;
18707
18954
  principal: () => import("@sinequa/atomic").Principal;
18708
18955
  initialize: () => Promise<void>;
18709
18956
  } & import("@ngrx/signals").StateSource<{
@@ -18743,11 +18990,18 @@ export declare class SettingsAccountPanelComponent {
18743
18990
  protected readonly username: import("@angular/core").Signal<string | null>;
18744
18991
  /** Same conditions as the profile form: feature flag, credentials auth mode, editable partition. */
18745
18992
  protected readonly allowChangePassword: import("@angular/core").Signal<boolean>;
18993
+ constructor();
18746
18994
  protected resetSettings(): void;
18747
18995
  protected overrideUser(): void;
18748
18996
  protected revertOverride(): void;
18749
18997
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAccountPanelComponent, never>;
18750
- static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAccountPanelComponent, "settings-account-panel", never, {}, {}, never, never, true, never>;
18998
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAccountPanelComponent, "settings-account-panel", never, {
18999
+ "focusOnOpen": {
19000
+ "alias": "focusOnOpen";
19001
+ "required": false;
19002
+ "isSignal": true;
19003
+ };
19004
+ }, {}, never, never, true, never>;
18751
19005
  }
18752
19006
  /**
18753
19007
  * Theme and language of the user interface — both applied on the spot and persisted in the user
@@ -18833,6 +19087,8 @@ export declare class UserProfileFormComponent {
18833
19087
  allowUserOverride: Signal<boolean>;
18834
19088
  isOverridingUser: Signal<boolean>;
18835
19089
  initials: Signal<string>;
19090
+ hydrate: (principal: import("@sinequa/atomic").Principal) => void;
19091
+ fail: (error: unknown) => never;
18836
19092
  principal: () => import("@sinequa/atomic").Principal;
18837
19093
  initialize: () => Promise<void>;
18838
19094
  } & import("@ngrx/signals").StateSource<{
@@ -19036,7 +19292,9 @@ export declare class UserProfileFormComponent {
19036
19292
  defaultAgent: string;
19037
19293
  };
19038
19294
  }>;
19039
- initialize: () => Promise<void>;
19295
+ initialize: () => Promise<undefined>;
19296
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
19297
+ fail: (error: unknown) => never;
19040
19298
  initializeWithAppName: (appName: string) => Promise<void>;
19041
19299
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
19042
19300
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -19666,7 +19924,9 @@ export declare class SourceIconPipe implements PipeTransform {
19666
19924
  defaultAgent: string;
19667
19925
  };
19668
19926
  }>;
19669
- initialize: () => Promise<void>;
19927
+ initialize: () => Promise<undefined>;
19928
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
19929
+ fail: (error: unknown) => never;
19670
19930
  initializeWithAppName: (appName: string) => Promise<void>;
19671
19931
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
19672
19932
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -20134,6 +20394,17 @@ export type SessionExpiryOptions = {
20134
20394
  expiredDuration?: number;
20135
20395
  /** Action of the "session expired" notification. Defaults to reloading the page, which starts a new sign-in. */
20136
20396
  onReconnect?: () => void;
20397
+ /**
20398
+ * Action of the "about to expire" notification: lets the user keep working without losing the session.
20399
+ *
20400
+ * Defaults to one light authenticated request (`principal`). The platform has no refresh endpoint: it only
20401
+ * renews the token as a side effect of a request, and only when the server's JSON Web Token auto-refresh
20402
+ * is enabled and the token's maximum lifetime is not reached. When the expiry did not move afterwards,
20403
+ * `onReconnect` runs instead, so the action never leaves the user believing the session was extended.
20404
+ *
20405
+ * A custom handler replaces all of this, including that fallback.
20406
+ */
20407
+ onExtend?: () => Promise<void> | void;
20137
20408
  };
20138
20409
  /**
20139
20410
  * Tells the user that the session is about to expire, and that it has.
@@ -20165,6 +20436,52 @@ export type SessionExpiryOptions = {
20165
20436
  * ```
20166
20437
  */
20167
20438
  export declare function provideSessionExpiry(options?: SessionExpiryOptions): EnvironmentProviders;
20439
+ /**
20440
+ * One part of the start-up data: its value, or the reason it could not be read. A part a source
20441
+ * answers with `{ ok: false }` is read again the usual way — whatever `status` or `error` it carries.
20442
+ */
20443
+ export type StartupPart<T> = {
20444
+ ok: true;
20445
+ value: T;
20446
+ } | {
20447
+ ok: false;
20448
+ status?: number;
20449
+ error?: unknown;
20450
+ };
20451
+ /**
20452
+ * What the application reads once signed in, before anything renders: the app configuration, the
20453
+ * principal and the user settings.
20454
+ *
20455
+ * This is the shape `/bff/bootstrap` of mint-dev-server's BFF answers with. Any other key it carries
20456
+ * (`userProfile`) is ignored.
20457
+ */
20458
+ export interface StartupData {
20459
+ app: StartupPart<CCApp>;
20460
+ principal: StartupPart<Principal>;
20461
+ userSettings: StartupPart<Record<string, unknown>>;
20462
+ }
20463
+ /**
20464
+ * Loads the {@link StartupData} in one call. `null` — the default — reads the three parts in
20465
+ * parallel through the client. Provide it with {@link provideStartupAggregation}.
20466
+ */
20467
+ export declare const STARTUP_DATA_SOURCE: InjectionToken<(() => Promise<StartupData>) | null>;
20468
+ /**
20469
+ * Reads the start-up data from an aggregating endpoint — one round trip for the configuration, the
20470
+ * principal and the user settings — instead of one request each.
20471
+ *
20472
+ * The endpoint answers with a {@link StartupData}, each part carrying its own outcome. The parts it
20473
+ * could not read — or that its answer lacks — are fetched the usual way, in parallel; if the endpoint
20474
+ * fails altogether, the start-up falls back to the three parallel reads, one round trip later. Add it
20475
+ * only behind a backend that serves the endpoint.
20476
+ *
20477
+ * @param endpoint - Path of the endpoint on the backend. Defaults to the BFF's `bff/bootstrap`.
20478
+ *
20479
+ * @example
20480
+ * ```ts
20481
+ * bootstrapApplication(App, { providers: [provideStartupAggregation()] });
20482
+ * ```
20483
+ */
20484
+ export declare function provideStartupAggregation(endpoint?: string): import("@angular/core").EnvironmentProviders;
20168
20485
  /**
20169
20486
  * Resolves the name of the default query from the application store.
20170
20487
  *