@sinequa/atomic-angular 2.5.0 → 2.7.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.
@@ -4,7 +4,7 @@ import { TranslocoService } from "@jsverse/transloco";
4
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
- import { BreakpointObserverService, DialogComponent, DialogEvent, DialogResult, DropdownDirective, PopoverDirective, SheetComponent } from "@sinequa/galactik";
7
+ import { BreakpointObserverService, DialogComponent, DialogEvent, DialogResult, DropdownDirective, PopoverDirective, SheetComponent, SwitchComponent } from "@sinequa/galactik";
8
8
  import { DomSanitizer, SafeHtml, Title } from "@angular/platform-browser";
9
9
  import { BehaviorSubject, Observable, Subject } from "rxjs";
10
10
  import { FieldTree } from "@angular/forms/signals";
@@ -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";
@@ -231,6 +232,12 @@ export type CJ = {
231
232
  filters?: CFilter[];
232
233
  };
233
234
  };
235
+ /**
236
+ * An entry of `features.userProfile.customData`: a property name (`"nickname"`) or an object whose
237
+ * keys are property names and whose values are their default (`{ "nickname": "none" }`). A default can
238
+ * be any JSON value, an object included (`{ "theme": { "mode": "dark" } }`).
239
+ */
240
+ export type CustomDataEntry = string | Record<string, unknown>;
234
241
  type CFeatures = {
235
242
  allowChangePassword?: boolean;
236
243
  editablepartition?: boolean;
@@ -253,12 +260,12 @@ type CFeatures = {
253
260
  userProfile?: {
254
261
  enabled?: boolean;
255
262
  data?: string[];
256
- customData?: string[];
263
+ customData?: CustomDataEntry[];
257
264
  };
258
265
  previewMultiConversion?: boolean;
259
266
  persistFiltersAcrossTabs?: boolean;
260
267
  [key: string]: boolean | {
261
- [key: string]: boolean | string | string[] | undefined;
268
+ [key: string]: boolean | string | string[] | CustomDataEntry[] | undefined;
262
269
  } | undefined;
263
270
  };
264
271
  export type CConverter = {
@@ -452,7 +459,7 @@ export declare class ConverterSelectComponent {
452
459
  sources?: import("@sinequa/atomic-angular").CSources;
453
460
  features?: {
454
461
  [key: string]: boolean | {
455
- [key: string]: string | boolean | string[] | undefined;
462
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
456
463
  } | undefined;
457
464
  allowChangePassword?: boolean;
458
465
  editablepartition?: boolean;
@@ -471,7 +478,7 @@ export declare class ConverterSelectComponent {
471
478
  userProfile?: {
472
479
  enabled?: boolean;
473
480
  data?: string[];
474
- customData?: string[];
481
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
475
482
  };
476
483
  previewMultiConversion?: boolean;
477
484
  persistFiltersAcrossTabs?: boolean;
@@ -494,7 +501,7 @@ export declare class ConverterSelectComponent {
494
501
  };
495
502
  features?: {
496
503
  [key: string]: boolean | {
497
- [key: string]: string | boolean | string[] | undefined;
504
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
498
505
  } | undefined;
499
506
  allowChangePassword?: boolean;
500
507
  editablepartition?: boolean;
@@ -513,7 +520,7 @@ export declare class ConverterSelectComponent {
513
520
  userProfile?: {
514
521
  enabled?: boolean;
515
522
  data?: string[];
516
- customData?: string[];
523
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
517
524
  };
518
525
  previewMultiConversion?: boolean;
519
526
  persistFiltersAcrossTabs?: boolean;
@@ -558,7 +565,7 @@ export declare class ConverterSelectComponent {
558
565
  };
559
566
  features?: {
560
567
  [key: string]: boolean | {
561
- [key: string]: string | boolean | string[] | undefined;
568
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
562
569
  } | undefined;
563
570
  allowChangePassword?: boolean;
564
571
  editablepartition?: boolean;
@@ -577,7 +584,7 @@ export declare class ConverterSelectComponent {
577
584
  userProfile?: {
578
585
  enabled?: boolean;
579
586
  data?: string[];
580
- customData?: string[];
587
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
581
588
  };
582
589
  previewMultiConversion?: boolean;
583
590
  persistFiltersAcrossTabs?: boolean;
@@ -593,7 +600,9 @@ export declare class ConverterSelectComponent {
593
600
  defaultAgent: string;
594
601
  };
595
602
  }>;
596
- initialize: () => Promise<void>;
603
+ initialize: () => Promise<undefined>;
604
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
605
+ fail: (error: unknown) => never;
597
606
  initializeWithAppName: (appName: string) => Promise<void>;
598
607
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
599
608
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -601,7 +610,7 @@ export declare class ConverterSelectComponent {
601
610
  private: string;
602
611
  public: string;
603
612
  };
604
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
613
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
605
614
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
606
615
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
607
616
  allowEmptySearch: (queryName: string) => boolean;
@@ -650,7 +659,7 @@ export declare class ConverterSelectComponent {
650
659
  sources?: import("@sinequa/atomic-angular").CSources;
651
660
  features?: {
652
661
  [key: string]: boolean | {
653
- [key: string]: string | boolean | string[] | undefined;
662
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
654
663
  } | undefined;
655
664
  allowChangePassword?: boolean;
656
665
  editablepartition?: boolean;
@@ -669,7 +678,7 @@ export declare class ConverterSelectComponent {
669
678
  userProfile?: {
670
679
  enabled?: boolean;
671
680
  data?: string[];
672
- customData?: string[];
681
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
673
682
  };
674
683
  previewMultiConversion?: boolean;
675
684
  persistFiltersAcrossTabs?: boolean;
@@ -692,7 +701,7 @@ export declare class ConverterSelectComponent {
692
701
  };
693
702
  features?: {
694
703
  [key: string]: boolean | {
695
- [key: string]: string | boolean | string[] | undefined;
704
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
696
705
  } | undefined;
697
706
  allowChangePassword?: boolean;
698
707
  editablepartition?: boolean;
@@ -711,7 +720,7 @@ export declare class ConverterSelectComponent {
711
720
  userProfile?: {
712
721
  enabled?: boolean;
713
722
  data?: string[];
714
- customData?: string[];
723
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
715
724
  };
716
725
  previewMultiConversion?: boolean;
717
726
  persistFiltersAcrossTabs?: boolean;
@@ -1053,7 +1062,7 @@ export declare class MetadataComponent {
1053
1062
  }>;
1054
1063
  class: import("@angular/core").InputSignal<string | undefined>;
1055
1064
  variant: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
1056
- size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | "xs" | "xsmall" | null | undefined>;
1065
+ size: import("@angular/core").InputSignal<"small" | "medium" | "xs" | "sm" | "md" | "xsmall" | null | undefined>;
1057
1066
  scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
1058
1067
  metadata: import("@angular/core").InputSignal<(string & Record<never, never>) | KeyOf<Article>>;
1059
1068
  article: import("@angular/core").InputSignal<Partial<Article> | (string & Record<never, never>)>;
@@ -1265,7 +1274,7 @@ export declare class MultiSelectionToolbarComponent {
1265
1274
  sources?: import("@sinequa/atomic-angular").CSources;
1266
1275
  features?: {
1267
1276
  [key: string]: boolean | {
1268
- [key: string]: string | boolean | string[] | undefined;
1277
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1269
1278
  } | undefined;
1270
1279
  allowChangePassword?: boolean;
1271
1280
  editablepartition?: boolean;
@@ -1284,7 +1293,7 @@ export declare class MultiSelectionToolbarComponent {
1284
1293
  userProfile?: {
1285
1294
  enabled?: boolean;
1286
1295
  data?: string[];
1287
- customData?: string[];
1296
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1288
1297
  };
1289
1298
  previewMultiConversion?: boolean;
1290
1299
  persistFiltersAcrossTabs?: boolean;
@@ -1307,7 +1316,7 @@ export declare class MultiSelectionToolbarComponent {
1307
1316
  };
1308
1317
  features?: {
1309
1318
  [key: string]: boolean | {
1310
- [key: string]: string | boolean | string[] | undefined;
1319
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1311
1320
  } | undefined;
1312
1321
  allowChangePassword?: boolean;
1313
1322
  editablepartition?: boolean;
@@ -1326,7 +1335,7 @@ export declare class MultiSelectionToolbarComponent {
1326
1335
  userProfile?: {
1327
1336
  enabled?: boolean;
1328
1337
  data?: string[];
1329
- customData?: string[];
1338
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1330
1339
  };
1331
1340
  previewMultiConversion?: boolean;
1332
1341
  persistFiltersAcrossTabs?: boolean;
@@ -1371,7 +1380,7 @@ export declare class MultiSelectionToolbarComponent {
1371
1380
  };
1372
1381
  features?: {
1373
1382
  [key: string]: boolean | {
1374
- [key: string]: string | boolean | string[] | undefined;
1383
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1375
1384
  } | undefined;
1376
1385
  allowChangePassword?: boolean;
1377
1386
  editablepartition?: boolean;
@@ -1390,7 +1399,7 @@ export declare class MultiSelectionToolbarComponent {
1390
1399
  userProfile?: {
1391
1400
  enabled?: boolean;
1392
1401
  data?: string[];
1393
- customData?: string[];
1402
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1394
1403
  };
1395
1404
  previewMultiConversion?: boolean;
1396
1405
  persistFiltersAcrossTabs?: boolean;
@@ -1406,7 +1415,9 @@ export declare class MultiSelectionToolbarComponent {
1406
1415
  defaultAgent: string;
1407
1416
  };
1408
1417
  }>;
1409
- initialize: () => Promise<void>;
1418
+ initialize: () => Promise<undefined>;
1419
+ hydrate: (app: CCApp) => void;
1420
+ fail: (error: unknown) => never;
1410
1421
  initializeWithAppName: (appName: string) => Promise<void>;
1411
1422
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
1412
1423
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -1414,7 +1425,7 @@ export declare class MultiSelectionToolbarComponent {
1414
1425
  private: string;
1415
1426
  public: string;
1416
1427
  };
1417
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
1428
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
1418
1429
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
1419
1430
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
1420
1431
  allowEmptySearch: (queryName: string) => boolean;
@@ -1463,7 +1474,7 @@ export declare class MultiSelectionToolbarComponent {
1463
1474
  sources?: import("@sinequa/atomic-angular").CSources;
1464
1475
  features?: {
1465
1476
  [key: string]: boolean | {
1466
- [key: string]: string | boolean | string[] | undefined;
1477
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1467
1478
  } | undefined;
1468
1479
  allowChangePassword?: boolean;
1469
1480
  editablepartition?: boolean;
@@ -1482,7 +1493,7 @@ export declare class MultiSelectionToolbarComponent {
1482
1493
  userProfile?: {
1483
1494
  enabled?: boolean;
1484
1495
  data?: string[];
1485
- customData?: string[];
1496
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1486
1497
  };
1487
1498
  previewMultiConversion?: boolean;
1488
1499
  persistFiltersAcrossTabs?: boolean;
@@ -1505,7 +1516,7 @@ export declare class MultiSelectionToolbarComponent {
1505
1516
  };
1506
1517
  features?: {
1507
1518
  [key: string]: boolean | {
1508
- [key: string]: string | boolean | string[] | undefined;
1519
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1509
1520
  } | undefined;
1510
1521
  allowChangePassword?: boolean;
1511
1522
  editablepartition?: boolean;
@@ -1524,7 +1535,7 @@ export declare class MultiSelectionToolbarComponent {
1524
1535
  userProfile?: {
1525
1536
  enabled?: boolean;
1526
1537
  data?: string[];
1527
- customData?: string[];
1538
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1528
1539
  };
1529
1540
  previewMultiConversion?: boolean;
1530
1541
  persistFiltersAcrossTabs?: boolean;
@@ -1591,7 +1602,7 @@ export declare class MultiSelectionToolbarComponent {
1591
1602
  };
1592
1603
  features?: {
1593
1604
  [key: string]: boolean | {
1594
- [key: string]: string | boolean | string[] | undefined;
1605
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1595
1606
  } | undefined;
1596
1607
  allowChangePassword?: boolean;
1597
1608
  editablepartition?: boolean;
@@ -1610,7 +1621,7 @@ export declare class MultiSelectionToolbarComponent {
1610
1621
  userProfile?: {
1611
1622
  enabled?: boolean;
1612
1623
  data?: string[];
1613
- customData?: string[];
1624
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1614
1625
  };
1615
1626
  previewMultiConversion?: boolean;
1616
1627
  persistFiltersAcrossTabs?: boolean;
@@ -1634,6 +1645,14 @@ export declare class MultiSelectionToolbarComponent {
1634
1645
  readonly ids: import("@angular/core").Signal<string[]>;
1635
1646
  readonly instanceId: import("@angular/core").Signal<string>;
1636
1647
  readonly enabledUserInput: import("@angular/core").Signal<boolean>;
1648
+ /**
1649
+ * Affiche l'action « Ajouter à l'AI Overview ». La librairie ne peut pas savoir si l'application
1650
+ * embarque un assistant : ce `input` est le consentement de l'hôte (faux par défaut). À mettre à
1651
+ * `true` uniquement si l'application lit `assistantIdsToAttach` du `SelectionStore`.
1652
+ */
1653
+ readonly allowAI: import("@angular/core").InputSignal<boolean>;
1654
+ /** L'hôte l'autorise, l'assistant est configuré et autorisé côté backend, et la saisie utilisateur est activée. */
1655
+ readonly showAssistantAction: import("@angular/core").Signal<boolean>;
1637
1656
  /** Vrai uniquement à la première sélection : ensuite, seul le décompte est annoncé. */
1638
1657
  protected readonly showHint: import("@angular/core").WritableSignal<boolean>;
1639
1658
  private armed;
@@ -1659,6 +1678,11 @@ export declare class MultiSelectionToolbarComponent {
1659
1678
  "required": false;
1660
1679
  "isSignal": true;
1661
1680
  };
1681
+ "allowAI": {
1682
+ "alias": "allowAI";
1683
+ "required": false;
1684
+ "isSignal": true;
1685
+ };
1662
1686
  }, {
1663
1687
  "updatedCollections": "updatedCollections";
1664
1688
  "cleared": "cleared";
@@ -1714,7 +1738,7 @@ export declare class NavbarTabsComponent {
1714
1738
  sources?: import("@sinequa/atomic-angular").CSources;
1715
1739
  features?: {
1716
1740
  [key: string]: boolean | {
1717
- [key: string]: string | boolean | string[] | undefined;
1741
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1718
1742
  } | undefined;
1719
1743
  allowChangePassword?: boolean;
1720
1744
  editablepartition?: boolean;
@@ -1733,7 +1757,7 @@ export declare class NavbarTabsComponent {
1733
1757
  userProfile?: {
1734
1758
  enabled?: boolean;
1735
1759
  data?: string[];
1736
- customData?: string[];
1760
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1737
1761
  };
1738
1762
  previewMultiConversion?: boolean;
1739
1763
  persistFiltersAcrossTabs?: boolean;
@@ -1756,7 +1780,7 @@ export declare class NavbarTabsComponent {
1756
1780
  };
1757
1781
  features?: {
1758
1782
  [key: string]: boolean | {
1759
- [key: string]: string | boolean | string[] | undefined;
1783
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1760
1784
  } | undefined;
1761
1785
  allowChangePassword?: boolean;
1762
1786
  editablepartition?: boolean;
@@ -1775,7 +1799,7 @@ export declare class NavbarTabsComponent {
1775
1799
  userProfile?: {
1776
1800
  enabled?: boolean;
1777
1801
  data?: string[];
1778
- customData?: string[];
1802
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1779
1803
  };
1780
1804
  previewMultiConversion?: boolean;
1781
1805
  persistFiltersAcrossTabs?: boolean;
@@ -1820,7 +1844,7 @@ export declare class NavbarTabsComponent {
1820
1844
  };
1821
1845
  features?: {
1822
1846
  [key: string]: boolean | {
1823
- [key: string]: string | boolean | string[] | undefined;
1847
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1824
1848
  } | undefined;
1825
1849
  allowChangePassword?: boolean;
1826
1850
  editablepartition?: boolean;
@@ -1839,7 +1863,7 @@ export declare class NavbarTabsComponent {
1839
1863
  userProfile?: {
1840
1864
  enabled?: boolean;
1841
1865
  data?: string[];
1842
- customData?: string[];
1866
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1843
1867
  };
1844
1868
  previewMultiConversion?: boolean;
1845
1869
  persistFiltersAcrossTabs?: boolean;
@@ -1855,7 +1879,9 @@ export declare class NavbarTabsComponent {
1855
1879
  defaultAgent: string;
1856
1880
  };
1857
1881
  }>;
1858
- initialize: () => Promise<void>;
1882
+ initialize: () => Promise<undefined>;
1883
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
1884
+ fail: (error: unknown) => never;
1859
1885
  initializeWithAppName: (appName: string) => Promise<void>;
1860
1886
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
1861
1887
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -1863,7 +1889,7 @@ export declare class NavbarTabsComponent {
1863
1889
  private: string;
1864
1890
  public: string;
1865
1891
  };
1866
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
1892
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
1867
1893
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
1868
1894
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
1869
1895
  allowEmptySearch: (queryName: string) => boolean;
@@ -1912,7 +1938,7 @@ export declare class NavbarTabsComponent {
1912
1938
  sources?: import("@sinequa/atomic-angular").CSources;
1913
1939
  features?: {
1914
1940
  [key: string]: boolean | {
1915
- [key: string]: string | boolean | string[] | undefined;
1941
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1916
1942
  } | undefined;
1917
1943
  allowChangePassword?: boolean;
1918
1944
  editablepartition?: boolean;
@@ -1931,7 +1957,7 @@ export declare class NavbarTabsComponent {
1931
1957
  userProfile?: {
1932
1958
  enabled?: boolean;
1933
1959
  data?: string[];
1934
- customData?: string[];
1960
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1935
1961
  };
1936
1962
  previewMultiConversion?: boolean;
1937
1963
  persistFiltersAcrossTabs?: boolean;
@@ -1954,7 +1980,7 @@ export declare class NavbarTabsComponent {
1954
1980
  };
1955
1981
  features?: {
1956
1982
  [key: string]: boolean | {
1957
- [key: string]: string | boolean | string[] | undefined;
1983
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1958
1984
  } | undefined;
1959
1985
  allowChangePassword?: boolean;
1960
1986
  editablepartition?: boolean;
@@ -1973,7 +1999,7 @@ export declare class NavbarTabsComponent {
1973
1999
  userProfile?: {
1974
2000
  enabled?: boolean;
1975
2001
  data?: string[];
1976
- customData?: string[];
2002
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1977
2003
  };
1978
2004
  previewMultiConversion?: boolean;
1979
2005
  persistFiltersAcrossTabs?: boolean;
@@ -2321,7 +2347,7 @@ export declare const AppStore: import("@angular/core").Type<{
2321
2347
  sources?: CSources;
2322
2348
  features?: {
2323
2349
  [key: string]: boolean | {
2324
- [key: string]: string | boolean | string[] | undefined;
2350
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2325
2351
  } | undefined;
2326
2352
  allowChangePassword?: boolean;
2327
2353
  editablepartition?: boolean;
@@ -2340,7 +2366,7 @@ export declare const AppStore: import("@angular/core").Type<{
2340
2366
  userProfile?: {
2341
2367
  enabled?: boolean;
2342
2368
  data?: string[];
2343
- customData?: string[];
2369
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2344
2370
  };
2345
2371
  previewMultiConversion?: boolean;
2346
2372
  persistFiltersAcrossTabs?: boolean;
@@ -2363,7 +2389,7 @@ export declare const AppStore: import("@angular/core").Type<{
2363
2389
  };
2364
2390
  features?: {
2365
2391
  [key: string]: boolean | {
2366
- [key: string]: string | boolean | string[] | undefined;
2392
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2367
2393
  } | undefined;
2368
2394
  allowChangePassword?: boolean;
2369
2395
  editablepartition?: boolean;
@@ -2382,7 +2408,7 @@ export declare const AppStore: import("@angular/core").Type<{
2382
2408
  userProfile?: {
2383
2409
  enabled?: boolean;
2384
2410
  data?: string[];
2385
- customData?: string[];
2411
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2386
2412
  };
2387
2413
  previewMultiConversion?: boolean;
2388
2414
  persistFiltersAcrossTabs?: boolean;
@@ -2427,7 +2453,7 @@ export declare const AppStore: import("@angular/core").Type<{
2427
2453
  };
2428
2454
  features?: {
2429
2455
  [key: string]: boolean | {
2430
- [key: string]: string | boolean | string[] | undefined;
2456
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2431
2457
  } | undefined;
2432
2458
  allowChangePassword?: boolean;
2433
2459
  editablepartition?: boolean;
@@ -2446,7 +2472,7 @@ export declare const AppStore: import("@angular/core").Type<{
2446
2472
  userProfile?: {
2447
2473
  enabled?: boolean;
2448
2474
  data?: string[];
2449
- customData?: string[];
2475
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2450
2476
  };
2451
2477
  previewMultiConversion?: boolean;
2452
2478
  persistFiltersAcrossTabs?: boolean;
@@ -2456,7 +2482,9 @@ export declare const AppStore: import("@angular/core").Type<{
2456
2482
  } | undefined>;
2457
2483
  assistants: import("@angular/core").Signal<AssistantConfiguration>;
2458
2484
  agents: import("@angular/core").Signal<AgentConfiguration>;
2459
- initialize: () => Promise<void>;
2485
+ initialize: () => Promise<undefined>;
2486
+ hydrate: (app: CCApp) => void;
2487
+ fail: (error: unknown) => never;
2460
2488
  initializeWithAppName: (appName: string) => Promise<void>;
2461
2489
  update: (app: Partial<CCAppState>) => void;
2462
2490
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -2464,7 +2492,7 @@ export declare const AppStore: import("@angular/core").Type<{
2464
2492
  private: string;
2465
2493
  public: string;
2466
2494
  };
2467
- getQueryByName: (name: string) => CCQuery | undefined;
2495
+ getQueryByName: (name: string | undefined) => CCQuery | undefined;
2468
2496
  getQueryByIndex: (index: number) => CCQuery | undefined;
2469
2497
  getDefaultQuery: () => CCQuery | undefined;
2470
2498
  allowEmptySearch: (queryName: string) => boolean;
@@ -2513,7 +2541,7 @@ export declare const AppStore: import("@angular/core").Type<{
2513
2541
  sources?: CSources;
2514
2542
  features?: {
2515
2543
  [key: string]: boolean | {
2516
- [key: string]: string | boolean | string[] | undefined;
2544
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2517
2545
  } | undefined;
2518
2546
  allowChangePassword?: boolean;
2519
2547
  editablepartition?: boolean;
@@ -2532,7 +2560,7 @@ export declare const AppStore: import("@angular/core").Type<{
2532
2560
  userProfile?: {
2533
2561
  enabled?: boolean;
2534
2562
  data?: string[];
2535
- customData?: string[];
2563
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2536
2564
  };
2537
2565
  previewMultiConversion?: boolean;
2538
2566
  persistFiltersAcrossTabs?: boolean;
@@ -2555,7 +2583,7 @@ export declare const AppStore: import("@angular/core").Type<{
2555
2583
  };
2556
2584
  features?: {
2557
2585
  [key: string]: boolean | {
2558
- [key: string]: string | boolean | string[] | undefined;
2586
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2559
2587
  } | undefined;
2560
2588
  allowChangePassword?: boolean;
2561
2589
  editablepartition?: boolean;
@@ -2574,7 +2602,7 @@ export declare const AppStore: import("@angular/core").Type<{
2574
2602
  userProfile?: {
2575
2603
  enabled?: boolean;
2576
2604
  data?: string[];
2577
- customData?: string[];
2605
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2578
2606
  };
2579
2607
  previewMultiConversion?: boolean;
2580
2608
  persistFiltersAcrossTabs?: boolean;
@@ -2634,7 +2662,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2634
2662
  sources?: CSources;
2635
2663
  features?: {
2636
2664
  [key: string]: boolean | {
2637
- [key: string]: string | boolean | string[] | undefined;
2665
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2638
2666
  } | undefined;
2639
2667
  allowChangePassword?: boolean;
2640
2668
  editablepartition?: boolean;
@@ -2653,7 +2681,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2653
2681
  userProfile?: {
2654
2682
  enabled?: boolean;
2655
2683
  data?: string[];
2656
- customData?: string[];
2684
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2657
2685
  };
2658
2686
  previewMultiConversion?: boolean;
2659
2687
  persistFiltersAcrossTabs?: boolean;
@@ -2676,7 +2704,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2676
2704
  };
2677
2705
  features?: {
2678
2706
  [key: string]: boolean | {
2679
- [key: string]: string | boolean | string[] | undefined;
2707
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2680
2708
  } | undefined;
2681
2709
  allowChangePassword?: boolean;
2682
2710
  editablepartition?: boolean;
@@ -2695,7 +2723,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2695
2723
  userProfile?: {
2696
2724
  enabled?: boolean;
2697
2725
  data?: string[];
2698
- customData?: string[];
2726
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2699
2727
  };
2700
2728
  previewMultiConversion?: boolean;
2701
2729
  persistFiltersAcrossTabs?: boolean;
@@ -2742,7 +2770,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2742
2770
  };
2743
2771
  features?: {
2744
2772
  [key: string]: boolean | {
2745
- [key: string]: string | boolean | string[] | undefined;
2773
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2746
2774
  } | undefined;
2747
2775
  allowChangePassword?: boolean;
2748
2776
  editablepartition?: boolean;
@@ -2761,7 +2789,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2761
2789
  userProfile?: {
2762
2790
  enabled?: boolean;
2763
2791
  data?: string[];
2764
- customData?: string[];
2792
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2765
2793
  };
2766
2794
  previewMultiConversion?: boolean;
2767
2795
  persistFiltersAcrossTabs?: boolean;
@@ -2773,7 +2801,9 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2773
2801
  agents: import("@angular/core").Signal<AgentConfiguration>;
2774
2802
  };
2775
2803
  methods: {
2776
- initialize: () => Promise<void>;
2804
+ initialize: () => Promise<undefined>;
2805
+ hydrate: (app: CCApp) => void;
2806
+ fail: (error: unknown) => never;
2777
2807
  initializeWithAppName: (appName: string) => Promise<void>;
2778
2808
  update: (app: Partial<CCAppState>) => void;
2779
2809
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -2781,7 +2811,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2781
2811
  private: string;
2782
2812
  public: string;
2783
2813
  };
2784
- getQueryByName: (name: string) => CCQuery | undefined;
2814
+ getQueryByName: (name: string | undefined) => CCQuery | undefined;
2785
2815
  getQueryByIndex: (index: number) => CCQuery | undefined;
2786
2816
  getDefaultQuery: () => CCQuery | undefined;
2787
2817
  allowEmptySearch: (queryName: string) => boolean;
@@ -2908,6 +2938,8 @@ export declare const PrincipalStore: import("@angular/core").Type<{
2908
2938
  allowUserOverride: import("@angular/core").Signal<boolean>;
2909
2939
  isOverridingUser: import("@angular/core").Signal<boolean>;
2910
2940
  initials: import("@angular/core").Signal<string>;
2941
+ hydrate: (principal: Principal) => void;
2942
+ fail: (error: unknown) => never;
2911
2943
  principal: () => Principal;
2912
2944
  initialize: () => Promise<void>;
2913
2945
  } & import("@ngrx/signals").StateSource<{
@@ -3323,6 +3355,8 @@ export declare const UserSettingsStore: import("@angular/core").Type<{
3323
3355
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
3324
3356
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
3325
3357
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
3358
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
3359
+ fail: (err: unknown) => void;
3326
3360
  initialize: () => Promise<void>;
3327
3361
  reset: () => Promise<void>;
3328
3362
  deleteAlert: (index: number) => Promise<void>;
@@ -3434,6 +3468,8 @@ export declare function withUserSettingsFeatures(): import("@ngrx/signals").Sign
3434
3468
  };
3435
3469
  props: {};
3436
3470
  methods: {
3471
+ hydrate: (settings: UserSettingsState) => void;
3472
+ fail: (err: unknown) => void;
3437
3473
  initialize: () => Promise<void>;
3438
3474
  reset: () => Promise<void>;
3439
3475
  };
@@ -3486,7 +3522,7 @@ export declare class PreviewContentComponent {
3486
3522
  sources?: import("@sinequa/atomic-angular").CSources;
3487
3523
  features?: {
3488
3524
  [key: string]: boolean | {
3489
- [key: string]: string | boolean | string[] | undefined;
3525
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3490
3526
  } | undefined;
3491
3527
  allowChangePassword?: boolean;
3492
3528
  editablepartition?: boolean;
@@ -3505,7 +3541,7 @@ export declare class PreviewContentComponent {
3505
3541
  userProfile?: {
3506
3542
  enabled?: boolean;
3507
3543
  data?: string[];
3508
- customData?: string[];
3544
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3509
3545
  };
3510
3546
  previewMultiConversion?: boolean;
3511
3547
  persistFiltersAcrossTabs?: boolean;
@@ -3528,7 +3564,7 @@ export declare class PreviewContentComponent {
3528
3564
  };
3529
3565
  features?: {
3530
3566
  [key: string]: boolean | {
3531
- [key: string]: string | boolean | string[] | undefined;
3567
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3532
3568
  } | undefined;
3533
3569
  allowChangePassword?: boolean;
3534
3570
  editablepartition?: boolean;
@@ -3547,7 +3583,7 @@ export declare class PreviewContentComponent {
3547
3583
  userProfile?: {
3548
3584
  enabled?: boolean;
3549
3585
  data?: string[];
3550
- customData?: string[];
3586
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3551
3587
  };
3552
3588
  previewMultiConversion?: boolean;
3553
3589
  persistFiltersAcrossTabs?: boolean;
@@ -3592,7 +3628,7 @@ export declare class PreviewContentComponent {
3592
3628
  };
3593
3629
  features?: {
3594
3630
  [key: string]: boolean | {
3595
- [key: string]: string | boolean | string[] | undefined;
3631
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3596
3632
  } | undefined;
3597
3633
  allowChangePassword?: boolean;
3598
3634
  editablepartition?: boolean;
@@ -3611,7 +3647,7 @@ export declare class PreviewContentComponent {
3611
3647
  userProfile?: {
3612
3648
  enabled?: boolean;
3613
3649
  data?: string[];
3614
- customData?: string[];
3650
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3615
3651
  };
3616
3652
  previewMultiConversion?: boolean;
3617
3653
  persistFiltersAcrossTabs?: boolean;
@@ -3627,7 +3663,9 @@ export declare class PreviewContentComponent {
3627
3663
  defaultAgent: string;
3628
3664
  };
3629
3665
  }>;
3630
- initialize: () => Promise<void>;
3666
+ initialize: () => Promise<undefined>;
3667
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
3668
+ fail: (error: unknown) => never;
3631
3669
  initializeWithAppName: (appName: string) => Promise<void>;
3632
3670
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
3633
3671
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -3635,7 +3673,7 @@ export declare class PreviewContentComponent {
3635
3673
  private: string;
3636
3674
  public: string;
3637
3675
  };
3638
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
3676
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
3639
3677
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
3640
3678
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
3641
3679
  allowEmptySearch: (queryName: string) => boolean;
@@ -3684,7 +3722,7 @@ export declare class PreviewContentComponent {
3684
3722
  sources?: import("@sinequa/atomic-angular").CSources;
3685
3723
  features?: {
3686
3724
  [key: string]: boolean | {
3687
- [key: string]: string | boolean | string[] | undefined;
3725
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3688
3726
  } | undefined;
3689
3727
  allowChangePassword?: boolean;
3690
3728
  editablepartition?: boolean;
@@ -3703,7 +3741,7 @@ export declare class PreviewContentComponent {
3703
3741
  userProfile?: {
3704
3742
  enabled?: boolean;
3705
3743
  data?: string[];
3706
- customData?: string[];
3744
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3707
3745
  };
3708
3746
  previewMultiConversion?: boolean;
3709
3747
  persistFiltersAcrossTabs?: boolean;
@@ -3726,7 +3764,7 @@ export declare class PreviewContentComponent {
3726
3764
  };
3727
3765
  features?: {
3728
3766
  [key: string]: boolean | {
3729
- [key: string]: string | boolean | string[] | undefined;
3767
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3730
3768
  } | undefined;
3731
3769
  allowChangePassword?: boolean;
3732
3770
  editablepartition?: boolean;
@@ -3745,7 +3783,7 @@ export declare class PreviewContentComponent {
3745
3783
  userProfile?: {
3746
3784
  enabled?: boolean;
3747
3785
  data?: string[];
3748
- customData?: string[];
3786
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3749
3787
  };
3750
3788
  previewMultiConversion?: boolean;
3751
3789
  persistFiltersAcrossTabs?: boolean;
@@ -4054,6 +4092,15 @@ export declare class QueryService {
4054
4092
  */
4055
4093
  readonly failure: import("@angular/core").Signal<import("@sinequa/atomic").ApiError | undefined>;
4056
4094
  audit?: AuditEvents;
4095
+ /**
4096
+ * Warns the user that an empty search is not allowed.
4097
+ *
4098
+ * This service renders nothing, so nothing ever loads the `searches` scope for it, and
4099
+ * `translate()` only reads what is already loaded: it answered the raw key `searches.emptySearch`.
4100
+ * `selectTranslate()` loads the scope first (the key is then relative to it). The text falls back to
4101
+ * English if the scope file cannot be loaded (not extracted into the application, network error).
4102
+ */
4103
+ private warnEmptySearch;
4057
4104
  /**
4058
4105
  * Performs a search query.
4059
4106
  *
@@ -4132,7 +4179,7 @@ export declare class AggregationsService {
4132
4179
  sources?: import("@sinequa/atomic-angular").CSources;
4133
4180
  features?: {
4134
4181
  [key: string]: boolean | {
4135
- [key: string]: string | boolean | string[] | undefined;
4182
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4136
4183
  } | undefined;
4137
4184
  allowChangePassword?: boolean;
4138
4185
  editablepartition?: boolean;
@@ -4151,7 +4198,7 @@ export declare class AggregationsService {
4151
4198
  userProfile?: {
4152
4199
  enabled?: boolean;
4153
4200
  data?: string[];
4154
- customData?: string[];
4201
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4155
4202
  };
4156
4203
  previewMultiConversion?: boolean;
4157
4204
  persistFiltersAcrossTabs?: boolean;
@@ -4174,7 +4221,7 @@ export declare class AggregationsService {
4174
4221
  };
4175
4222
  features?: {
4176
4223
  [key: string]: boolean | {
4177
- [key: string]: string | boolean | string[] | undefined;
4224
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4178
4225
  } | undefined;
4179
4226
  allowChangePassword?: boolean;
4180
4227
  editablepartition?: boolean;
@@ -4193,7 +4240,7 @@ export declare class AggregationsService {
4193
4240
  userProfile?: {
4194
4241
  enabled?: boolean;
4195
4242
  data?: string[];
4196
- customData?: string[];
4243
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4197
4244
  };
4198
4245
  previewMultiConversion?: boolean;
4199
4246
  persistFiltersAcrossTabs?: boolean;
@@ -4238,7 +4285,7 @@ export declare class AggregationsService {
4238
4285
  };
4239
4286
  features?: {
4240
4287
  [key: string]: boolean | {
4241
- [key: string]: string | boolean | string[] | undefined;
4288
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4242
4289
  } | undefined;
4243
4290
  allowChangePassword?: boolean;
4244
4291
  editablepartition?: boolean;
@@ -4257,7 +4304,7 @@ export declare class AggregationsService {
4257
4304
  userProfile?: {
4258
4305
  enabled?: boolean;
4259
4306
  data?: string[];
4260
- customData?: string[];
4307
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4261
4308
  };
4262
4309
  previewMultiConversion?: boolean;
4263
4310
  persistFiltersAcrossTabs?: boolean;
@@ -4273,7 +4320,9 @@ export declare class AggregationsService {
4273
4320
  defaultAgent: string;
4274
4321
  };
4275
4322
  }>;
4276
- initialize: () => Promise<void>;
4323
+ initialize: () => Promise<undefined>;
4324
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
4325
+ fail: (error: unknown) => never;
4277
4326
  initializeWithAppName: (appName: string) => Promise<void>;
4278
4327
  update: (app: Partial<CCAppState>) => void;
4279
4328
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -4281,7 +4330,7 @@ export declare class AggregationsService {
4281
4330
  private: string;
4282
4331
  public: string;
4283
4332
  };
4284
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
4333
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
4285
4334
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
4286
4335
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
4287
4336
  allowEmptySearch: (queryName: string) => boolean;
@@ -4330,7 +4379,7 @@ export declare class AggregationsService {
4330
4379
  sources?: import("@sinequa/atomic-angular").CSources;
4331
4380
  features?: {
4332
4381
  [key: string]: boolean | {
4333
- [key: string]: string | boolean | string[] | undefined;
4382
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4334
4383
  } | undefined;
4335
4384
  allowChangePassword?: boolean;
4336
4385
  editablepartition?: boolean;
@@ -4349,7 +4398,7 @@ export declare class AggregationsService {
4349
4398
  userProfile?: {
4350
4399
  enabled?: boolean;
4351
4400
  data?: string[];
4352
- customData?: string[];
4401
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4353
4402
  };
4354
4403
  previewMultiConversion?: boolean;
4355
4404
  persistFiltersAcrossTabs?: boolean;
@@ -4372,7 +4421,7 @@ export declare class AggregationsService {
4372
4421
  };
4373
4422
  features?: {
4374
4423
  [key: string]: boolean | {
4375
- [key: string]: string | boolean | string[] | undefined;
4424
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4376
4425
  } | undefined;
4377
4426
  allowChangePassword?: boolean;
4378
4427
  editablepartition?: boolean;
@@ -4391,7 +4440,7 @@ export declare class AggregationsService {
4391
4440
  userProfile?: {
4392
4441
  enabled?: boolean;
4393
4442
  data?: string[];
4394
- customData?: string[];
4443
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4395
4444
  };
4396
4445
  previewMultiConversion?: boolean;
4397
4446
  persistFiltersAcrossTabs?: boolean;
@@ -4704,26 +4753,28 @@ export declare class ApplicationService {
4704
4753
  disabledHighlightCategories: import("@angular/core").Signal<string[]>;
4705
4754
  isDebugMode: import("@angular/core").Signal<boolean>;
4706
4755
  isDarkMode: import("@angular/core").Signal<boolean>;
4707
- updateBookmarks: (bookmarks: import("@sinequa/atomic-angular").UserSettingsState["bookmarks"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4756
+ updateBookmarks: (bookmarks: UserSettingsState["bookmarks"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4708
4757
  bookmark: (article: import("@sinequa/atomic").Article, queryName?: string) => Promise<void>;
4709
4758
  unbookmark: (id: string) => Promise<void>;
4710
4759
  isBookmarked: (article: Partial<import("@sinequa/atomic").Article>) => boolean;
4711
4760
  toggleBookmark: (article: import("@sinequa/atomic").Article) => Promise<void>;
4712
4761
  deleteRecentSearch: (index: number) => Promise<void>;
4713
- updateRecentSearches: (recentSearches: import("@sinequa/atomic-angular").UserSettingsState["recentSearches"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4762
+ updateRecentSearches: (recentSearches: UserSettingsState["recentSearches"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4714
4763
  addCurrentSearch: (queryParams: import("@sinequa/atomic").QueryParams) => Promise<void>;
4715
4764
  deleteSavedSearch: (index: number) => Promise<void>;
4716
- updateSavedSearches: (savedSearches: import("@sinequa/atomic-angular").UserSettingsState["savedSearches"]) => Promise<void>;
4765
+ updateSavedSearches: (savedSearches: UserSettingsState["savedSearches"]) => Promise<void>;
4717
4766
  getSavedSearch: (search: string, tab?: string) => import("@sinequa/atomic-angular").SearchItem | undefined;
4718
4767
  deleteBasket: (index: number) => Promise<void>;
4719
4768
  createBasket: (basket: import("@sinequa/atomic-angular").Basket) => Promise<void>;
4720
- updateBaskets: (baskets: import("@sinequa/atomic-angular").UserSettingsState["baskets"]) => Promise<void>;
4769
+ updateBaskets: (baskets: UserSettingsState["baskets"]) => Promise<void>;
4721
4770
  updateBasket: (basket: import("@sinequa/atomic-angular").Basket, index: number) => Promise<void>;
4722
4771
  addToBasket: (name: string, ids: string | string[]) => Promise<void>;
4723
4772
  removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
4724
- updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
4725
- updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4726
- updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4773
+ updateAssistantSettings: (assistantSettings: UserSettingsState["assistants"]) => Promise<void>;
4774
+ updateLanguage: (language: UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4775
+ updateAssistantCollapsed: (collapseAssistant: UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
4776
+ hydrate: (settings: UserSettingsState) => void;
4777
+ fail: (err: unknown) => void;
4727
4778
  initialize: () => Promise<void>;
4728
4779
  reset: () => Promise<void>;
4729
4780
  deleteAlert: (index: number) => Promise<void>;
@@ -4778,6 +4829,8 @@ export declare class ApplicationService {
4778
4829
  allowUserOverride: import("@angular/core").Signal<boolean>;
4779
4830
  isOverridingUser: import("@angular/core").Signal<boolean>;
4780
4831
  initials: import("@angular/core").Signal<string>;
4832
+ hydrate: (principal: import("@sinequa/atomic").Principal) => void;
4833
+ fail: (error: unknown) => never;
4781
4834
  principal: () => import("@sinequa/atomic").Principal;
4782
4835
  initialize: () => Promise<void>;
4783
4836
  } & import("@ngrx/signals").StateSource<{
@@ -4839,7 +4892,7 @@ export declare class ApplicationService {
4839
4892
  sources?: import("@sinequa/atomic-angular").CSources;
4840
4893
  features?: {
4841
4894
  [key: string]: boolean | {
4842
- [key: string]: string | boolean | string[] | undefined;
4895
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4843
4896
  } | undefined;
4844
4897
  allowChangePassword?: boolean;
4845
4898
  editablepartition?: boolean;
@@ -4858,7 +4911,7 @@ export declare class ApplicationService {
4858
4911
  userProfile?: {
4859
4912
  enabled?: boolean;
4860
4913
  data?: string[];
4861
- customData?: string[];
4914
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4862
4915
  };
4863
4916
  previewMultiConversion?: boolean;
4864
4917
  persistFiltersAcrossTabs?: boolean;
@@ -4881,7 +4934,7 @@ export declare class ApplicationService {
4881
4934
  };
4882
4935
  features?: {
4883
4936
  [key: string]: boolean | {
4884
- [key: string]: string | boolean | string[] | undefined;
4937
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4885
4938
  } | undefined;
4886
4939
  allowChangePassword?: boolean;
4887
4940
  editablepartition?: boolean;
@@ -4900,7 +4953,7 @@ export declare class ApplicationService {
4900
4953
  userProfile?: {
4901
4954
  enabled?: boolean;
4902
4955
  data?: string[];
4903
- customData?: string[];
4956
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4904
4957
  };
4905
4958
  previewMultiConversion?: boolean;
4906
4959
  persistFiltersAcrossTabs?: boolean;
@@ -4945,7 +4998,7 @@ export declare class ApplicationService {
4945
4998
  };
4946
4999
  features?: {
4947
5000
  [key: string]: boolean | {
4948
- [key: string]: string | boolean | string[] | undefined;
5001
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4949
5002
  } | undefined;
4950
5003
  allowChangePassword?: boolean;
4951
5004
  editablepartition?: boolean;
@@ -4964,7 +5017,7 @@ export declare class ApplicationService {
4964
5017
  userProfile?: {
4965
5018
  enabled?: boolean;
4966
5019
  data?: string[];
4967
- customData?: string[];
5020
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4968
5021
  };
4969
5022
  previewMultiConversion?: boolean;
4970
5023
  persistFiltersAcrossTabs?: boolean;
@@ -4980,7 +5033,9 @@ export declare class ApplicationService {
4980
5033
  defaultAgent: string;
4981
5034
  };
4982
5035
  }>;
4983
- initialize: () => Promise<void>;
5036
+ initialize: () => Promise<undefined>;
5037
+ hydrate: (app: CCApp) => void;
5038
+ fail: (error: unknown) => never;
4984
5039
  initializeWithAppName: (appName: string) => Promise<void>;
4985
5040
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
4986
5041
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -4988,7 +5043,7 @@ export declare class ApplicationService {
4988
5043
  private: string;
4989
5044
  public: string;
4990
5045
  };
4991
- getQueryByName: (name: string) => CCQuery | undefined;
5046
+ getQueryByName: (name: string | undefined) => CCQuery | undefined;
4992
5047
  getQueryByIndex: (index: number) => CCQuery | undefined;
4993
5048
  getDefaultQuery: () => CCQuery | undefined;
4994
5049
  allowEmptySearch: (queryName: string) => boolean;
@@ -5037,7 +5092,7 @@ export declare class ApplicationService {
5037
5092
  sources?: import("@sinequa/atomic-angular").CSources;
5038
5093
  features?: {
5039
5094
  [key: string]: boolean | {
5040
- [key: string]: string | boolean | string[] | undefined;
5095
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5041
5096
  } | undefined;
5042
5097
  allowChangePassword?: boolean;
5043
5098
  editablepartition?: boolean;
@@ -5056,7 +5111,7 @@ export declare class ApplicationService {
5056
5111
  userProfile?: {
5057
5112
  enabled?: boolean;
5058
5113
  data?: string[];
5059
- customData?: string[];
5114
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5060
5115
  };
5061
5116
  previewMultiConversion?: boolean;
5062
5117
  persistFiltersAcrossTabs?: boolean;
@@ -5079,7 +5134,7 @@ export declare class ApplicationService {
5079
5134
  };
5080
5135
  features?: {
5081
5136
  [key: string]: boolean | {
5082
- [key: string]: string | boolean | string[] | undefined;
5137
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5083
5138
  } | undefined;
5084
5139
  allowChangePassword?: boolean;
5085
5140
  editablepartition?: boolean;
@@ -5098,7 +5153,7 @@ export declare class ApplicationService {
5098
5153
  userProfile?: {
5099
5154
  enabled?: boolean;
5100
5155
  data?: string[];
5101
- customData?: string[];
5156
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5102
5157
  };
5103
5158
  previewMultiConversion?: boolean;
5104
5159
  persistFiltersAcrossTabs?: boolean;
@@ -5237,6 +5292,7 @@ export declare class ApplicationService {
5237
5292
  router: Router;
5238
5293
  titleService: Title;
5239
5294
  private readonly client;
5295
+ private readonly startupDataSource;
5240
5296
  components: ComponentMapping[];
5241
5297
  defaultComponent: import("@angular/core").Signal<Type<unknown> | undefined>;
5242
5298
  defaultLayoutComponent: import("@angular/core").Signal<Type<unknown> | undefined>;
@@ -5284,6 +5340,26 @@ export declare class ApplicationService {
5284
5340
  syncUrl?: boolean;
5285
5341
  isBootstrap?: boolean;
5286
5342
  }): Promise<void>;
5343
+ /**
5344
+ * The start-up reads, in parallel: none depends on another's answer, only on the session, so
5345
+ * waiting for each in turn cost two round trips for nothing. A part the start-up data source
5346
+ * ({@link provideStartupAggregation}) provided is taken as is; every other part — all three without
5347
+ * a source, or when it fails — is read here, still in parallel. So the result only carries errors
5348
+ * of reads made here, never one a source reported.
5349
+ */
5350
+ private loadStartupData;
5351
+ /**
5352
+ * What the start-up data source answers, or `undefined` when there is none, when it fails, or when
5353
+ * its answer is not an object — an empty `204` reads as `undefined`. Never throws: the parts it
5354
+ * could not provide are then read the usual way.
5355
+ */
5356
+ private readStartupDataSource;
5357
+ /**
5358
+ * Applies one part to its store: its value, or the error its read failed with, handled exactly as
5359
+ * the store's own `initialize()` would (the configuration and the principal throw, the settings keep
5360
+ * their defaults).
5361
+ */
5362
+ private apply;
5287
5363
  /**
5288
5364
  * Creates dynamic routes based on the application's queries and custom JSON configurations.
5289
5365
  *
@@ -5372,7 +5448,7 @@ export declare class AuditService {
5372
5448
  sources?: import("@sinequa/atomic-angular").CSources;
5373
5449
  features?: {
5374
5450
  [key: string]: boolean | {
5375
- [key: string]: string | boolean | string[] | undefined;
5451
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5376
5452
  } | undefined;
5377
5453
  allowChangePassword?: boolean;
5378
5454
  editablepartition?: boolean;
@@ -5391,7 +5467,7 @@ export declare class AuditService {
5391
5467
  userProfile?: {
5392
5468
  enabled?: boolean;
5393
5469
  data?: string[];
5394
- customData?: string[];
5470
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5395
5471
  };
5396
5472
  previewMultiConversion?: boolean;
5397
5473
  persistFiltersAcrossTabs?: boolean;
@@ -5414,7 +5490,7 @@ export declare class AuditService {
5414
5490
  };
5415
5491
  features?: {
5416
5492
  [key: string]: boolean | {
5417
- [key: string]: string | boolean | string[] | undefined;
5493
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5418
5494
  } | undefined;
5419
5495
  allowChangePassword?: boolean;
5420
5496
  editablepartition?: boolean;
@@ -5433,7 +5509,7 @@ export declare class AuditService {
5433
5509
  userProfile?: {
5434
5510
  enabled?: boolean;
5435
5511
  data?: string[];
5436
- customData?: string[];
5512
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5437
5513
  };
5438
5514
  previewMultiConversion?: boolean;
5439
5515
  persistFiltersAcrossTabs?: boolean;
@@ -5478,7 +5554,7 @@ export declare class AuditService {
5478
5554
  };
5479
5555
  features?: {
5480
5556
  [key: string]: boolean | {
5481
- [key: string]: string | boolean | string[] | undefined;
5557
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5482
5558
  } | undefined;
5483
5559
  allowChangePassword?: boolean;
5484
5560
  editablepartition?: boolean;
@@ -5497,7 +5573,7 @@ export declare class AuditService {
5497
5573
  userProfile?: {
5498
5574
  enabled?: boolean;
5499
5575
  data?: string[];
5500
- customData?: string[];
5576
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5501
5577
  };
5502
5578
  previewMultiConversion?: boolean;
5503
5579
  persistFiltersAcrossTabs?: boolean;
@@ -5513,7 +5589,9 @@ export declare class AuditService {
5513
5589
  defaultAgent: string;
5514
5590
  };
5515
5591
  }>;
5516
- initialize: () => Promise<void>;
5592
+ initialize: () => Promise<undefined>;
5593
+ hydrate: (app: CCApp) => void;
5594
+ fail: (error: unknown) => never;
5517
5595
  initializeWithAppName: (appName: string) => Promise<void>;
5518
5596
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
5519
5597
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -5521,7 +5599,7 @@ export declare class AuditService {
5521
5599
  private: string;
5522
5600
  public: string;
5523
5601
  };
5524
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
5602
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
5525
5603
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
5526
5604
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
5527
5605
  allowEmptySearch: (queryName: string) => boolean;
@@ -5570,7 +5648,7 @@ export declare class AuditService {
5570
5648
  sources?: import("@sinequa/atomic-angular").CSources;
5571
5649
  features?: {
5572
5650
  [key: string]: boolean | {
5573
- [key: string]: string | boolean | string[] | undefined;
5651
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5574
5652
  } | undefined;
5575
5653
  allowChangePassword?: boolean;
5576
5654
  editablepartition?: boolean;
@@ -5589,7 +5667,7 @@ export declare class AuditService {
5589
5667
  userProfile?: {
5590
5668
  enabled?: boolean;
5591
5669
  data?: string[];
5592
- customData?: string[];
5670
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5593
5671
  };
5594
5672
  previewMultiConversion?: boolean;
5595
5673
  persistFiltersAcrossTabs?: boolean;
@@ -5612,7 +5690,7 @@ export declare class AuditService {
5612
5690
  };
5613
5691
  features?: {
5614
5692
  [key: string]: boolean | {
5615
- [key: string]: string | boolean | string[] | undefined;
5693
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5616
5694
  } | undefined;
5617
5695
  allowChangePassword?: boolean;
5618
5696
  editablepartition?: boolean;
@@ -5631,7 +5709,7 @@ export declare class AuditService {
5631
5709
  userProfile?: {
5632
5710
  enabled?: boolean;
5633
5711
  data?: string[];
5634
- customData?: string[];
5712
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5635
5713
  };
5636
5714
  previewMultiConversion?: boolean;
5637
5715
  persistFiltersAcrossTabs?: boolean;
@@ -5729,6 +5807,8 @@ export declare class AutocompleteService {
5729
5807
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
5730
5808
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
5731
5809
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
5810
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
5811
+ fail: (err: unknown) => void;
5732
5812
  initialize: () => Promise<void>;
5733
5813
  reset: () => Promise<void>;
5734
5814
  deleteAlert: (index: number) => Promise<void>;
@@ -5782,7 +5862,7 @@ export declare class AutocompleteService {
5782
5862
  sources?: import("@sinequa/atomic-angular").CSources;
5783
5863
  features?: {
5784
5864
  [key: string]: boolean | {
5785
- [key: string]: string | boolean | string[] | undefined;
5865
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5786
5866
  } | undefined;
5787
5867
  allowChangePassword?: boolean;
5788
5868
  editablepartition?: boolean;
@@ -5801,7 +5881,7 @@ export declare class AutocompleteService {
5801
5881
  userProfile?: {
5802
5882
  enabled?: boolean;
5803
5883
  data?: string[];
5804
- customData?: string[];
5884
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5805
5885
  };
5806
5886
  previewMultiConversion?: boolean;
5807
5887
  persistFiltersAcrossTabs?: boolean;
@@ -5824,7 +5904,7 @@ export declare class AutocompleteService {
5824
5904
  };
5825
5905
  features?: {
5826
5906
  [key: string]: boolean | {
5827
- [key: string]: string | boolean | string[] | undefined;
5907
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5828
5908
  } | undefined;
5829
5909
  allowChangePassword?: boolean;
5830
5910
  editablepartition?: boolean;
@@ -5843,7 +5923,7 @@ export declare class AutocompleteService {
5843
5923
  userProfile?: {
5844
5924
  enabled?: boolean;
5845
5925
  data?: string[];
5846
- customData?: string[];
5926
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5847
5927
  };
5848
5928
  previewMultiConversion?: boolean;
5849
5929
  persistFiltersAcrossTabs?: boolean;
@@ -5888,7 +5968,7 @@ export declare class AutocompleteService {
5888
5968
  };
5889
5969
  features?: {
5890
5970
  [key: string]: boolean | {
5891
- [key: string]: string | boolean | string[] | undefined;
5971
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5892
5972
  } | undefined;
5893
5973
  allowChangePassword?: boolean;
5894
5974
  editablepartition?: boolean;
@@ -5907,7 +5987,7 @@ export declare class AutocompleteService {
5907
5987
  userProfile?: {
5908
5988
  enabled?: boolean;
5909
5989
  data?: string[];
5910
- customData?: string[];
5990
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5911
5991
  };
5912
5992
  previewMultiConversion?: boolean;
5913
5993
  persistFiltersAcrossTabs?: boolean;
@@ -5923,7 +6003,9 @@ export declare class AutocompleteService {
5923
6003
  defaultAgent: string;
5924
6004
  };
5925
6005
  }>;
5926
- initialize: () => Promise<void>;
6006
+ initialize: () => Promise<undefined>;
6007
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
6008
+ fail: (error: unknown) => never;
5927
6009
  initializeWithAppName: (appName: string) => Promise<void>;
5928
6010
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
5929
6011
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -5931,7 +6013,7 @@ export declare class AutocompleteService {
5931
6013
  private: string;
5932
6014
  public: string;
5933
6015
  };
5934
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
6016
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
5935
6017
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
5936
6018
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
5937
6019
  allowEmptySearch: (queryName: string) => boolean;
@@ -5980,7 +6062,7 @@ export declare class AutocompleteService {
5980
6062
  sources?: import("@sinequa/atomic-angular").CSources;
5981
6063
  features?: {
5982
6064
  [key: string]: boolean | {
5983
- [key: string]: string | boolean | string[] | undefined;
6065
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5984
6066
  } | undefined;
5985
6067
  allowChangePassword?: boolean;
5986
6068
  editablepartition?: boolean;
@@ -5999,7 +6081,7 @@ export declare class AutocompleteService {
5999
6081
  userProfile?: {
6000
6082
  enabled?: boolean;
6001
6083
  data?: string[];
6002
- customData?: string[];
6084
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6003
6085
  };
6004
6086
  previewMultiConversion?: boolean;
6005
6087
  persistFiltersAcrossTabs?: boolean;
@@ -6022,7 +6104,7 @@ export declare class AutocompleteService {
6022
6104
  };
6023
6105
  features?: {
6024
6106
  [key: string]: boolean | {
6025
- [key: string]: string | boolean | string[] | undefined;
6107
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6026
6108
  } | undefined;
6027
6109
  allowChangePassword?: boolean;
6028
6110
  editablepartition?: boolean;
@@ -6041,7 +6123,7 @@ export declare class AutocompleteService {
6041
6123
  userProfile?: {
6042
6124
  enabled?: boolean;
6043
6125
  data?: string[];
6044
- customData?: string[];
6126
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6045
6127
  };
6046
6128
  previewMultiConversion?: boolean;
6047
6129
  persistFiltersAcrossTabs?: boolean;
@@ -6803,7 +6885,7 @@ export declare class PreviewService {
6803
6885
  sources?: import("@sinequa/atomic-angular").CSources;
6804
6886
  features?: {
6805
6887
  [key: string]: boolean | {
6806
- [key: string]: string | boolean | string[] | undefined;
6888
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6807
6889
  } | undefined;
6808
6890
  allowChangePassword?: boolean;
6809
6891
  editablepartition?: boolean;
@@ -6822,7 +6904,7 @@ export declare class PreviewService {
6822
6904
  userProfile?: {
6823
6905
  enabled?: boolean;
6824
6906
  data?: string[];
6825
- customData?: string[];
6907
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6826
6908
  };
6827
6909
  previewMultiConversion?: boolean;
6828
6910
  persistFiltersAcrossTabs?: boolean;
@@ -6845,7 +6927,7 @@ export declare class PreviewService {
6845
6927
  };
6846
6928
  features?: {
6847
6929
  [key: string]: boolean | {
6848
- [key: string]: string | boolean | string[] | undefined;
6930
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6849
6931
  } | undefined;
6850
6932
  allowChangePassword?: boolean;
6851
6933
  editablepartition?: boolean;
@@ -6864,7 +6946,7 @@ export declare class PreviewService {
6864
6946
  userProfile?: {
6865
6947
  enabled?: boolean;
6866
6948
  data?: string[];
6867
- customData?: string[];
6949
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6868
6950
  };
6869
6951
  previewMultiConversion?: boolean;
6870
6952
  persistFiltersAcrossTabs?: boolean;
@@ -6909,7 +6991,7 @@ export declare class PreviewService {
6909
6991
  };
6910
6992
  features?: {
6911
6993
  [key: string]: boolean | {
6912
- [key: string]: string | boolean | string[] | undefined;
6994
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6913
6995
  } | undefined;
6914
6996
  allowChangePassword?: boolean;
6915
6997
  editablepartition?: boolean;
@@ -6928,7 +7010,7 @@ export declare class PreviewService {
6928
7010
  userProfile?: {
6929
7011
  enabled?: boolean;
6930
7012
  data?: string[];
6931
- customData?: string[];
7013
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6932
7014
  };
6933
7015
  previewMultiConversion?: boolean;
6934
7016
  persistFiltersAcrossTabs?: boolean;
@@ -6944,7 +7026,9 @@ export declare class PreviewService {
6944
7026
  defaultAgent: string;
6945
7027
  };
6946
7028
  }>;
6947
- initialize: () => Promise<void>;
7029
+ initialize: () => Promise<undefined>;
7030
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
7031
+ fail: (error: unknown) => never;
6948
7032
  initializeWithAppName: (appName: string) => Promise<void>;
6949
7033
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
6950
7034
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -6952,7 +7036,7 @@ export declare class PreviewService {
6952
7036
  private: string;
6953
7037
  public: string;
6954
7038
  };
6955
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
7039
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
6956
7040
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
6957
7041
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
6958
7042
  allowEmptySearch: (queryName: string) => boolean;
@@ -7001,7 +7085,7 @@ export declare class PreviewService {
7001
7085
  sources?: import("@sinequa/atomic-angular").CSources;
7002
7086
  features?: {
7003
7087
  [key: string]: boolean | {
7004
- [key: string]: string | boolean | string[] | undefined;
7088
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
7005
7089
  } | undefined;
7006
7090
  allowChangePassword?: boolean;
7007
7091
  editablepartition?: boolean;
@@ -7020,7 +7104,7 @@ export declare class PreviewService {
7020
7104
  userProfile?: {
7021
7105
  enabled?: boolean;
7022
7106
  data?: string[];
7023
- customData?: string[];
7107
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
7024
7108
  };
7025
7109
  previewMultiConversion?: boolean;
7026
7110
  persistFiltersAcrossTabs?: boolean;
@@ -7043,7 +7127,7 @@ export declare class PreviewService {
7043
7127
  };
7044
7128
  features?: {
7045
7129
  [key: string]: boolean | {
7046
- [key: string]: string | boolean | string[] | undefined;
7130
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
7047
7131
  } | undefined;
7048
7132
  allowChangePassword?: boolean;
7049
7133
  editablepartition?: boolean;
@@ -7062,7 +7146,7 @@ export declare class PreviewService {
7062
7146
  userProfile?: {
7063
7147
  enabled?: boolean;
7064
7148
  data?: string[];
7065
- customData?: string[];
7149
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
7066
7150
  };
7067
7151
  previewMultiConversion?: boolean;
7068
7152
  persistFiltersAcrossTabs?: boolean;
@@ -7308,6 +7392,8 @@ export declare class SavedSearchesService {
7308
7392
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
7309
7393
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
7310
7394
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
7395
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
7396
+ fail: (err: unknown) => void;
7311
7397
  initialize: () => Promise<void>;
7312
7398
  reset: () => Promise<void>;
7313
7399
  deleteAlert: (index: number) => Promise<void>;
@@ -7660,6 +7746,8 @@ export declare class SearchService {
7660
7746
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
7661
7747
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: AuditEvents) => Promise<void>;
7662
7748
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: AuditEvents) => Promise<void>;
7749
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
7750
+ fail: (err: unknown) => void;
7663
7751
  initialize: () => Promise<void>;
7664
7752
  reset: () => Promise<void>;
7665
7753
  deleteAlert: (index: number) => Promise<void>;
@@ -7902,6 +7990,7 @@ export declare class TextChunkService {
7902
7990
  }
7903
7991
  export declare class UserProfileService {
7904
7992
  private readonly client;
7993
+ private readonly injector;
7905
7994
  private readonly resources;
7906
7995
  /**
7907
7996
  * Retrieves the user profile by user ID.
@@ -7999,7 +8088,7 @@ export declare class SortSelectorComponent {
7999
8088
  sources?: import("@sinequa/atomic-angular").CSources;
8000
8089
  features?: {
8001
8090
  [key: string]: boolean | {
8002
- [key: string]: string | boolean | string[] | undefined;
8091
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8003
8092
  } | undefined;
8004
8093
  allowChangePassword?: boolean;
8005
8094
  editablepartition?: boolean;
@@ -8018,7 +8107,7 @@ export declare class SortSelectorComponent {
8018
8107
  userProfile?: {
8019
8108
  enabled?: boolean;
8020
8109
  data?: string[];
8021
- customData?: string[];
8110
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8022
8111
  };
8023
8112
  previewMultiConversion?: boolean;
8024
8113
  persistFiltersAcrossTabs?: boolean;
@@ -8041,7 +8130,7 @@ export declare class SortSelectorComponent {
8041
8130
  };
8042
8131
  features?: {
8043
8132
  [key: string]: boolean | {
8044
- [key: string]: string | boolean | string[] | undefined;
8133
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8045
8134
  } | undefined;
8046
8135
  allowChangePassword?: boolean;
8047
8136
  editablepartition?: boolean;
@@ -8060,7 +8149,7 @@ export declare class SortSelectorComponent {
8060
8149
  userProfile?: {
8061
8150
  enabled?: boolean;
8062
8151
  data?: string[];
8063
- customData?: string[];
8152
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8064
8153
  };
8065
8154
  previewMultiConversion?: boolean;
8066
8155
  persistFiltersAcrossTabs?: boolean;
@@ -8105,7 +8194,7 @@ export declare class SortSelectorComponent {
8105
8194
  };
8106
8195
  features?: {
8107
8196
  [key: string]: boolean | {
8108
- [key: string]: string | boolean | string[] | undefined;
8197
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8109
8198
  } | undefined;
8110
8199
  allowChangePassword?: boolean;
8111
8200
  editablepartition?: boolean;
@@ -8124,7 +8213,7 @@ export declare class SortSelectorComponent {
8124
8213
  userProfile?: {
8125
8214
  enabled?: boolean;
8126
8215
  data?: string[];
8127
- customData?: string[];
8216
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8128
8217
  };
8129
8218
  previewMultiConversion?: boolean;
8130
8219
  persistFiltersAcrossTabs?: boolean;
@@ -8140,7 +8229,9 @@ export declare class SortSelectorComponent {
8140
8229
  defaultAgent: string;
8141
8230
  };
8142
8231
  }>;
8143
- initialize: () => Promise<void>;
8232
+ initialize: () => Promise<undefined>;
8233
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
8234
+ fail: (error: unknown) => never;
8144
8235
  initializeWithAppName: (appName: string) => Promise<void>;
8145
8236
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
8146
8237
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -8148,7 +8239,7 @@ export declare class SortSelectorComponent {
8148
8239
  private: string;
8149
8240
  public: string;
8150
8241
  };
8151
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
8242
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
8152
8243
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
8153
8244
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
8154
8245
  allowEmptySearch: (queryName: string) => boolean;
@@ -8197,7 +8288,7 @@ export declare class SortSelectorComponent {
8197
8288
  sources?: import("@sinequa/atomic-angular").CSources;
8198
8289
  features?: {
8199
8290
  [key: string]: boolean | {
8200
- [key: string]: string | boolean | string[] | undefined;
8291
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8201
8292
  } | undefined;
8202
8293
  allowChangePassword?: boolean;
8203
8294
  editablepartition?: boolean;
@@ -8216,7 +8307,7 @@ export declare class SortSelectorComponent {
8216
8307
  userProfile?: {
8217
8308
  enabled?: boolean;
8218
8309
  data?: string[];
8219
- customData?: string[];
8310
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8220
8311
  };
8221
8312
  previewMultiConversion?: boolean;
8222
8313
  persistFiltersAcrossTabs?: boolean;
@@ -8239,7 +8330,7 @@ export declare class SortSelectorComponent {
8239
8330
  };
8240
8331
  features?: {
8241
8332
  [key: string]: boolean | {
8242
- [key: string]: string | boolean | string[] | undefined;
8333
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8243
8334
  } | undefined;
8244
8335
  allowChangePassword?: boolean;
8245
8336
  editablepartition?: boolean;
@@ -8258,7 +8349,7 @@ export declare class SortSelectorComponent {
8258
8349
  userProfile?: {
8259
8350
  enabled?: boolean;
8260
8351
  data?: string[];
8261
- customData?: string[];
8352
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8262
8353
  };
8263
8354
  previewMultiConversion?: boolean;
8264
8355
  persistFiltersAcrossTabs?: boolean;
@@ -8493,6 +8584,8 @@ export declare class ShowBookmarkDirective {
8493
8584
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
8494
8585
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
8495
8586
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
8587
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
8588
+ fail: (err: unknown) => void;
8496
8589
  initialize: () => Promise<void>;
8497
8590
  reset: () => Promise<void>;
8498
8591
  deleteAlert: (index: number) => Promise<void>;
@@ -8534,14 +8627,18 @@ export declare class ShowBookmarkDirective {
8534
8627
  /**
8535
8628
  * Represents a directive that enables infinite scrolling behavior.
8536
8629
  * This directive listens for the intersection of the element with the viewport
8537
- * and emits a `loadMore` event when the element becomes visible.
8630
+ * and emits an `onScroll` event each time the element becomes visible.
8631
+ *
8632
+ * The selector is the kebab-case attribute `[infinity-scroll]` (not `infinityScroll`).
8538
8633
  *
8539
8634
  * @remarks
8540
8635
  * This directive requires the `IntersectionObserver` API to be available in the browser.
8636
+ * The observer is created after the first render, so `scroll-options` (an `IntersectionObserverInit`,
8637
+ * default `{ root: null }`) is read **once**, at that moment: changing it afterwards has no effect.
8541
8638
  *
8542
8639
  * @example
8543
8640
  * ```html
8544
- * <div infinityScroll (onScroll)="loadMore()">
8641
+ * <div infinity-scroll [scroll-options]="{ rootMargin: '200px' }" (onScroll)="loadMore()">
8545
8642
  * <!-- Content to be scrolled -->
8546
8643
  * </div>
8547
8644
  * ```
@@ -8550,7 +8647,7 @@ export declare class ShowBookmarkDirective {
8550
8647
  export declare class InfinityScrollDirective implements OnDestroy {
8551
8648
  options: import("@angular/core").InputSignal<IntersectionObserverInit>;
8552
8649
  onScroll: import("@angular/core").OutputEmitterRef<void>;
8553
- private observer;
8650
+ private observer?;
8554
8651
  private readonly el;
8555
8652
  constructor();
8556
8653
  ngOnDestroy(): void;
@@ -8915,7 +9012,7 @@ export declare class SponsoredResultsComponent {
8915
9012
  sources?: import("@sinequa/atomic-angular").CSources;
8916
9013
  features?: {
8917
9014
  [key: string]: boolean | {
8918
- [key: string]: string | boolean | string[] | undefined;
9015
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8919
9016
  } | undefined;
8920
9017
  allowChangePassword?: boolean;
8921
9018
  editablepartition?: boolean;
@@ -8934,7 +9031,7 @@ export declare class SponsoredResultsComponent {
8934
9031
  userProfile?: {
8935
9032
  enabled?: boolean;
8936
9033
  data?: string[];
8937
- customData?: string[];
9034
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8938
9035
  };
8939
9036
  previewMultiConversion?: boolean;
8940
9037
  persistFiltersAcrossTabs?: boolean;
@@ -8957,7 +9054,7 @@ export declare class SponsoredResultsComponent {
8957
9054
  };
8958
9055
  features?: {
8959
9056
  [key: string]: boolean | {
8960
- [key: string]: string | boolean | string[] | undefined;
9057
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8961
9058
  } | undefined;
8962
9059
  allowChangePassword?: boolean;
8963
9060
  editablepartition?: boolean;
@@ -8976,7 +9073,7 @@ export declare class SponsoredResultsComponent {
8976
9073
  userProfile?: {
8977
9074
  enabled?: boolean;
8978
9075
  data?: string[];
8979
- customData?: string[];
9076
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8980
9077
  };
8981
9078
  previewMultiConversion?: boolean;
8982
9079
  persistFiltersAcrossTabs?: boolean;
@@ -9021,7 +9118,7 @@ export declare class SponsoredResultsComponent {
9021
9118
  };
9022
9119
  features?: {
9023
9120
  [key: string]: boolean | {
9024
- [key: string]: string | boolean | string[] | undefined;
9121
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9025
9122
  } | undefined;
9026
9123
  allowChangePassword?: boolean;
9027
9124
  editablepartition?: boolean;
@@ -9040,7 +9137,7 @@ export declare class SponsoredResultsComponent {
9040
9137
  userProfile?: {
9041
9138
  enabled?: boolean;
9042
9139
  data?: string[];
9043
- customData?: string[];
9140
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9044
9141
  };
9045
9142
  previewMultiConversion?: boolean;
9046
9143
  persistFiltersAcrossTabs?: boolean;
@@ -9056,7 +9153,9 @@ export declare class SponsoredResultsComponent {
9056
9153
  defaultAgent: string;
9057
9154
  };
9058
9155
  }>;
9059
- initialize: () => Promise<void>;
9156
+ initialize: () => Promise<undefined>;
9157
+ hydrate: (app: CCApp) => void;
9158
+ fail: (error: unknown) => never;
9060
9159
  initializeWithAppName: (appName: string) => Promise<void>;
9061
9160
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
9062
9161
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -9064,7 +9163,7 @@ export declare class SponsoredResultsComponent {
9064
9163
  private: string;
9065
9164
  public: string;
9066
9165
  };
9067
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
9166
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
9068
9167
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
9069
9168
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
9070
9169
  allowEmptySearch: (queryName: string) => boolean;
@@ -9113,7 +9212,7 @@ export declare class SponsoredResultsComponent {
9113
9212
  sources?: import("@sinequa/atomic-angular").CSources;
9114
9213
  features?: {
9115
9214
  [key: string]: boolean | {
9116
- [key: string]: string | boolean | string[] | undefined;
9215
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9117
9216
  } | undefined;
9118
9217
  allowChangePassword?: boolean;
9119
9218
  editablepartition?: boolean;
@@ -9132,7 +9231,7 @@ export declare class SponsoredResultsComponent {
9132
9231
  userProfile?: {
9133
9232
  enabled?: boolean;
9134
9233
  data?: string[];
9135
- customData?: string[];
9234
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9136
9235
  };
9137
9236
  previewMultiConversion?: boolean;
9138
9237
  persistFiltersAcrossTabs?: boolean;
@@ -9155,7 +9254,7 @@ export declare class SponsoredResultsComponent {
9155
9254
  };
9156
9255
  features?: {
9157
9256
  [key: string]: boolean | {
9158
- [key: string]: string | boolean | string[] | undefined;
9257
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9159
9258
  } | undefined;
9160
9259
  allowChangePassword?: boolean;
9161
9260
  editablepartition?: boolean;
@@ -9174,7 +9273,7 @@ export declare class SponsoredResultsComponent {
9174
9273
  userProfile?: {
9175
9274
  enabled?: boolean;
9176
9275
  data?: string[];
9177
- customData?: string[];
9276
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9178
9277
  };
9179
9278
  previewMultiConversion?: boolean;
9180
9279
  persistFiltersAcrossTabs?: boolean;
@@ -11564,7 +11663,7 @@ export declare class SignedOutComponent {
11564
11663
  }
11565
11664
  export declare class BookmarkButtonComponent {
11566
11665
  variant: import("@angular/core").InputSignal<"primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined>;
11567
- size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | "xs" | "xsmall" | "lg" | "large" | null | undefined>;
11666
+ size: import("@angular/core").InputSignal<"small" | "medium" | "xs" | "sm" | "md" | "xsmall" | "large" | "lg" | null | undefined>;
11568
11667
  /**
11569
11668
  * Tab index applied to the inner button.
11570
11669
  *
@@ -11578,7 +11677,6 @@ export declare class BookmarkButtonComponent {
11578
11677
  private readonly route;
11579
11678
  private readonly transloco;
11580
11679
  protected isBookmarked: import("@angular/core").Signal<boolean>;
11581
- protected title: import("@angular/core").Signal<string>;
11582
11680
  bookmark(e: Event): Promise<void>;
11583
11681
  static ɵfac: i0.ɵɵFactoryDeclaration<BookmarkButtonComponent, never>;
11584
11682
  static ɵcmp: i0.ɵɵComponentDeclaration<BookmarkButtonComponent, "bookmark-button, bookmarkbutton, BookmarkButton", never, {
@@ -12342,7 +12440,7 @@ export declare class FeedbackDialogComponent {
12342
12440
  sources?: import("@sinequa/atomic-angular").CSources;
12343
12441
  features?: {
12344
12442
  [key: string]: boolean | {
12345
- [key: string]: string | boolean | string[] | undefined;
12443
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12346
12444
  } | undefined;
12347
12445
  allowChangePassword?: boolean;
12348
12446
  editablepartition?: boolean;
@@ -12361,7 +12459,7 @@ export declare class FeedbackDialogComponent {
12361
12459
  userProfile?: {
12362
12460
  enabled?: boolean;
12363
12461
  data?: string[];
12364
- customData?: string[];
12462
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12365
12463
  };
12366
12464
  previewMultiConversion?: boolean;
12367
12465
  persistFiltersAcrossTabs?: boolean;
@@ -12384,7 +12482,7 @@ export declare class FeedbackDialogComponent {
12384
12482
  };
12385
12483
  features?: {
12386
12484
  [key: string]: boolean | {
12387
- [key: string]: string | boolean | string[] | undefined;
12485
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12388
12486
  } | undefined;
12389
12487
  allowChangePassword?: boolean;
12390
12488
  editablepartition?: boolean;
@@ -12403,7 +12501,7 @@ export declare class FeedbackDialogComponent {
12403
12501
  userProfile?: {
12404
12502
  enabled?: boolean;
12405
12503
  data?: string[];
12406
- customData?: string[];
12504
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12407
12505
  };
12408
12506
  previewMultiConversion?: boolean;
12409
12507
  persistFiltersAcrossTabs?: boolean;
@@ -12448,7 +12546,7 @@ export declare class FeedbackDialogComponent {
12448
12546
  };
12449
12547
  features?: {
12450
12548
  [key: string]: boolean | {
12451
- [key: string]: string | boolean | string[] | undefined;
12549
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12452
12550
  } | undefined;
12453
12551
  allowChangePassword?: boolean;
12454
12552
  editablepartition?: boolean;
@@ -12467,7 +12565,7 @@ export declare class FeedbackDialogComponent {
12467
12565
  userProfile?: {
12468
12566
  enabled?: boolean;
12469
12567
  data?: string[];
12470
- customData?: string[];
12568
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12471
12569
  };
12472
12570
  previewMultiConversion?: boolean;
12473
12571
  persistFiltersAcrossTabs?: boolean;
@@ -12483,7 +12581,9 @@ export declare class FeedbackDialogComponent {
12483
12581
  defaultAgent: string;
12484
12582
  };
12485
12583
  }>;
12486
- initialize: () => Promise<void>;
12584
+ initialize: () => Promise<undefined>;
12585
+ hydrate: (app: CCApp) => void;
12586
+ fail: (error: unknown) => never;
12487
12587
  initializeWithAppName: (appName: string) => Promise<void>;
12488
12588
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
12489
12589
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -12491,7 +12591,7 @@ export declare class FeedbackDialogComponent {
12491
12591
  private: string;
12492
12592
  public: string;
12493
12593
  };
12494
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
12594
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
12495
12595
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
12496
12596
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
12497
12597
  allowEmptySearch: (queryName: string) => boolean;
@@ -12540,7 +12640,7 @@ export declare class FeedbackDialogComponent {
12540
12640
  sources?: import("@sinequa/atomic-angular").CSources;
12541
12641
  features?: {
12542
12642
  [key: string]: boolean | {
12543
- [key: string]: string | boolean | string[] | undefined;
12643
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12544
12644
  } | undefined;
12545
12645
  allowChangePassword?: boolean;
12546
12646
  editablepartition?: boolean;
@@ -12559,7 +12659,7 @@ export declare class FeedbackDialogComponent {
12559
12659
  userProfile?: {
12560
12660
  enabled?: boolean;
12561
12661
  data?: string[];
12562
- customData?: string[];
12662
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12563
12663
  };
12564
12664
  previewMultiConversion?: boolean;
12565
12665
  persistFiltersAcrossTabs?: boolean;
@@ -12582,7 +12682,7 @@ export declare class FeedbackDialogComponent {
12582
12682
  };
12583
12683
  features?: {
12584
12684
  [key: string]: boolean | {
12585
- [key: string]: string | boolean | string[] | undefined;
12685
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12586
12686
  } | undefined;
12587
12687
  allowChangePassword?: boolean;
12588
12688
  editablepartition?: boolean;
@@ -12601,7 +12701,7 @@ export declare class FeedbackDialogComponent {
12601
12701
  userProfile?: {
12602
12702
  enabled?: boolean;
12603
12703
  data?: string[];
12604
- customData?: string[];
12704
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12605
12705
  };
12606
12706
  previewMultiConversion?: boolean;
12607
12707
  persistFiltersAcrossTabs?: boolean;
@@ -12936,6 +13036,8 @@ export declare class AggregationDateComponent {
12936
13036
  private readonly uid;
12937
13037
  protected readonly startId: string;
12938
13038
  protected readonly endId: string;
13039
+ /** Classes merged onto the host, after its defaults — `h-*` / `max-h-*` here bound the facet. */
13040
+ class: import("@angular/core").InputSignal<string>;
12939
13041
  name: import("@angular/core").InputSignal<string | null>;
12940
13042
  column: import("@angular/core").InputSignal<string | null>;
12941
13043
  id: import("@angular/core").InputSignal<string | null>;
@@ -13288,6 +13390,11 @@ export declare class AggregationDateComponent {
13288
13390
  private getFormValueFilter;
13289
13391
  static ɵfac: i0.ɵɵFactoryDeclaration<AggregationDateComponent, never>;
13290
13392
  static ɵcmp: i0.ɵɵComponentDeclaration<AggregationDateComponent, "aggregation-date, AggregationDate, aggregationdate", never, {
13393
+ "class": {
13394
+ "alias": "class";
13395
+ "required": false;
13396
+ "isSignal": true;
13397
+ };
13291
13398
  "name": {
13292
13399
  "alias": "name";
13293
13400
  "required": false;
@@ -13659,7 +13766,7 @@ export declare class AggregationTreeComponent {
13659
13766
  sources?: import("@sinequa/atomic-angular").CSources;
13660
13767
  features?: {
13661
13768
  [key: string]: boolean | {
13662
- [key: string]: string | boolean | string[] | undefined;
13769
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13663
13770
  } | undefined;
13664
13771
  allowChangePassword?: boolean;
13665
13772
  editablepartition?: boolean;
@@ -13678,7 +13785,7 @@ export declare class AggregationTreeComponent {
13678
13785
  userProfile?: {
13679
13786
  enabled?: boolean;
13680
13787
  data?: string[];
13681
- customData?: string[];
13788
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13682
13789
  };
13683
13790
  previewMultiConversion?: boolean;
13684
13791
  persistFiltersAcrossTabs?: boolean;
@@ -13701,7 +13808,7 @@ export declare class AggregationTreeComponent {
13701
13808
  };
13702
13809
  features?: {
13703
13810
  [key: string]: boolean | {
13704
- [key: string]: string | boolean | string[] | undefined;
13811
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13705
13812
  } | undefined;
13706
13813
  allowChangePassword?: boolean;
13707
13814
  editablepartition?: boolean;
@@ -13720,7 +13827,7 @@ export declare class AggregationTreeComponent {
13720
13827
  userProfile?: {
13721
13828
  enabled?: boolean;
13722
13829
  data?: string[];
13723
- customData?: string[];
13830
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13724
13831
  };
13725
13832
  previewMultiConversion?: boolean;
13726
13833
  persistFiltersAcrossTabs?: boolean;
@@ -13765,7 +13872,7 @@ export declare class AggregationTreeComponent {
13765
13872
  };
13766
13873
  features?: {
13767
13874
  [key: string]: boolean | {
13768
- [key: string]: string | boolean | string[] | undefined;
13875
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13769
13876
  } | undefined;
13770
13877
  allowChangePassword?: boolean;
13771
13878
  editablepartition?: boolean;
@@ -13784,7 +13891,7 @@ export declare class AggregationTreeComponent {
13784
13891
  userProfile?: {
13785
13892
  enabled?: boolean;
13786
13893
  data?: string[];
13787
- customData?: string[];
13894
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13788
13895
  };
13789
13896
  previewMultiConversion?: boolean;
13790
13897
  persistFiltersAcrossTabs?: boolean;
@@ -13800,7 +13907,9 @@ export declare class AggregationTreeComponent {
13800
13907
  defaultAgent: string;
13801
13908
  };
13802
13909
  }>;
13803
- initialize: () => Promise<void>;
13910
+ initialize: () => Promise<undefined>;
13911
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
13912
+ fail: (error: unknown) => never;
13804
13913
  initializeWithAppName: (appName: string) => Promise<void>;
13805
13914
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
13806
13915
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -13808,7 +13917,7 @@ export declare class AggregationTreeComponent {
13808
13917
  private: string;
13809
13918
  public: string;
13810
13919
  };
13811
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
13920
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
13812
13921
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
13813
13922
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
13814
13923
  allowEmptySearch: (queryName: string) => boolean;
@@ -13857,7 +13966,7 @@ export declare class AggregationTreeComponent {
13857
13966
  sources?: import("@sinequa/atomic-angular").CSources;
13858
13967
  features?: {
13859
13968
  [key: string]: boolean | {
13860
- [key: string]: string | boolean | string[] | undefined;
13969
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13861
13970
  } | undefined;
13862
13971
  allowChangePassword?: boolean;
13863
13972
  editablepartition?: boolean;
@@ -13876,7 +13985,7 @@ export declare class AggregationTreeComponent {
13876
13985
  userProfile?: {
13877
13986
  enabled?: boolean;
13878
13987
  data?: string[];
13879
- customData?: string[];
13988
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13880
13989
  };
13881
13990
  previewMultiConversion?: boolean;
13882
13991
  persistFiltersAcrossTabs?: boolean;
@@ -13899,7 +14008,7 @@ export declare class AggregationTreeComponent {
13899
14008
  };
13900
14009
  features?: {
13901
14010
  [key: string]: boolean | {
13902
- [key: string]: string | boolean | string[] | undefined;
14011
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13903
14012
  } | undefined;
13904
14013
  allowChangePassword?: boolean;
13905
14014
  editablepartition?: boolean;
@@ -13918,7 +14027,7 @@ export declare class AggregationTreeComponent {
13918
14027
  userProfile?: {
13919
14028
  enabled?: boolean;
13920
14029
  data?: string[];
13921
- customData?: string[];
14030
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13922
14031
  };
13923
14032
  previewMultiConversion?: boolean;
13924
14033
  persistFiltersAcrossTabs?: boolean;
@@ -14516,7 +14625,7 @@ export declare class AggregationListComponent {
14516
14625
  sources?: import("@sinequa/atomic-angular").CSources;
14517
14626
  features?: {
14518
14627
  [key: string]: boolean | {
14519
- [key: string]: string | boolean | string[] | undefined;
14628
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14520
14629
  } | undefined;
14521
14630
  allowChangePassword?: boolean;
14522
14631
  editablepartition?: boolean;
@@ -14535,7 +14644,7 @@ export declare class AggregationListComponent {
14535
14644
  userProfile?: {
14536
14645
  enabled?: boolean;
14537
14646
  data?: string[];
14538
- customData?: string[];
14647
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14539
14648
  };
14540
14649
  previewMultiConversion?: boolean;
14541
14650
  persistFiltersAcrossTabs?: boolean;
@@ -14558,7 +14667,7 @@ export declare class AggregationListComponent {
14558
14667
  };
14559
14668
  features?: {
14560
14669
  [key: string]: boolean | {
14561
- [key: string]: string | boolean | string[] | undefined;
14670
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14562
14671
  } | undefined;
14563
14672
  allowChangePassword?: boolean;
14564
14673
  editablepartition?: boolean;
@@ -14577,7 +14686,7 @@ export declare class AggregationListComponent {
14577
14686
  userProfile?: {
14578
14687
  enabled?: boolean;
14579
14688
  data?: string[];
14580
- customData?: string[];
14689
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14581
14690
  };
14582
14691
  previewMultiConversion?: boolean;
14583
14692
  persistFiltersAcrossTabs?: boolean;
@@ -14622,7 +14731,7 @@ export declare class AggregationListComponent {
14622
14731
  };
14623
14732
  features?: {
14624
14733
  [key: string]: boolean | {
14625
- [key: string]: string | boolean | string[] | undefined;
14734
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14626
14735
  } | undefined;
14627
14736
  allowChangePassword?: boolean;
14628
14737
  editablepartition?: boolean;
@@ -14641,7 +14750,7 @@ export declare class AggregationListComponent {
14641
14750
  userProfile?: {
14642
14751
  enabled?: boolean;
14643
14752
  data?: string[];
14644
- customData?: string[];
14753
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14645
14754
  };
14646
14755
  previewMultiConversion?: boolean;
14647
14756
  persistFiltersAcrossTabs?: boolean;
@@ -14657,7 +14766,9 @@ export declare class AggregationListComponent {
14657
14766
  defaultAgent: string;
14658
14767
  };
14659
14768
  }>;
14660
- initialize: () => Promise<void>;
14769
+ initialize: () => Promise<undefined>;
14770
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
14771
+ fail: (error: unknown) => never;
14661
14772
  initializeWithAppName: (appName: string) => Promise<void>;
14662
14773
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
14663
14774
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -14665,7 +14776,7 @@ export declare class AggregationListComponent {
14665
14776
  private: string;
14666
14777
  public: string;
14667
14778
  };
14668
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
14779
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
14669
14780
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
14670
14781
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
14671
14782
  allowEmptySearch: (queryName: string) => boolean;
@@ -14714,7 +14825,7 @@ export declare class AggregationListComponent {
14714
14825
  sources?: import("@sinequa/atomic-angular").CSources;
14715
14826
  features?: {
14716
14827
  [key: string]: boolean | {
14717
- [key: string]: string | boolean | string[] | undefined;
14828
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14718
14829
  } | undefined;
14719
14830
  allowChangePassword?: boolean;
14720
14831
  editablepartition?: boolean;
@@ -14733,7 +14844,7 @@ export declare class AggregationListComponent {
14733
14844
  userProfile?: {
14734
14845
  enabled?: boolean;
14735
14846
  data?: string[];
14736
- customData?: string[];
14847
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14737
14848
  };
14738
14849
  previewMultiConversion?: boolean;
14739
14850
  persistFiltersAcrossTabs?: boolean;
@@ -14756,7 +14867,7 @@ export declare class AggregationListComponent {
14756
14867
  };
14757
14868
  features?: {
14758
14869
  [key: string]: boolean | {
14759
- [key: string]: string | boolean | string[] | undefined;
14870
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14760
14871
  } | undefined;
14761
14872
  allowChangePassword?: boolean;
14762
14873
  editablepartition?: boolean;
@@ -14775,7 +14886,7 @@ export declare class AggregationListComponent {
14775
14886
  userProfile?: {
14776
14887
  enabled?: boolean;
14777
14888
  data?: string[];
14778
- customData?: string[];
14889
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14779
14890
  };
14780
14891
  previewMultiConversion?: boolean;
14781
14892
  persistFiltersAcrossTabs?: boolean;
@@ -15012,7 +15123,7 @@ export declare class AggregationComponent {
15012
15123
  sources?: import("@sinequa/atomic-angular").CSources;
15013
15124
  features?: {
15014
15125
  [key: string]: boolean | {
15015
- [key: string]: string | boolean | string[] | undefined;
15126
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15016
15127
  } | undefined;
15017
15128
  allowChangePassword?: boolean;
15018
15129
  editablepartition?: boolean;
@@ -15031,7 +15142,7 @@ export declare class AggregationComponent {
15031
15142
  userProfile?: {
15032
15143
  enabled?: boolean;
15033
15144
  data?: string[];
15034
- customData?: string[];
15145
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15035
15146
  };
15036
15147
  previewMultiConversion?: boolean;
15037
15148
  persistFiltersAcrossTabs?: boolean;
@@ -15054,7 +15165,7 @@ export declare class AggregationComponent {
15054
15165
  };
15055
15166
  features?: {
15056
15167
  [key: string]: boolean | {
15057
- [key: string]: string | boolean | string[] | undefined;
15168
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15058
15169
  } | undefined;
15059
15170
  allowChangePassword?: boolean;
15060
15171
  editablepartition?: boolean;
@@ -15073,7 +15184,7 @@ export declare class AggregationComponent {
15073
15184
  userProfile?: {
15074
15185
  enabled?: boolean;
15075
15186
  data?: string[];
15076
- customData?: string[];
15187
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15077
15188
  };
15078
15189
  previewMultiConversion?: boolean;
15079
15190
  persistFiltersAcrossTabs?: boolean;
@@ -15118,7 +15229,7 @@ export declare class AggregationComponent {
15118
15229
  };
15119
15230
  features?: {
15120
15231
  [key: string]: boolean | {
15121
- [key: string]: string | boolean | string[] | undefined;
15232
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15122
15233
  } | undefined;
15123
15234
  allowChangePassword?: boolean;
15124
15235
  editablepartition?: boolean;
@@ -15137,7 +15248,7 @@ export declare class AggregationComponent {
15137
15248
  userProfile?: {
15138
15249
  enabled?: boolean;
15139
15250
  data?: string[];
15140
- customData?: string[];
15251
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15141
15252
  };
15142
15253
  previewMultiConversion?: boolean;
15143
15254
  persistFiltersAcrossTabs?: boolean;
@@ -15153,7 +15264,9 @@ export declare class AggregationComponent {
15153
15264
  defaultAgent: string;
15154
15265
  };
15155
15266
  }>;
15156
- initialize: () => Promise<void>;
15267
+ initialize: () => Promise<undefined>;
15268
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
15269
+ fail: (error: unknown) => never;
15157
15270
  initializeWithAppName: (appName: string) => Promise<void>;
15158
15271
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
15159
15272
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -15161,7 +15274,7 @@ export declare class AggregationComponent {
15161
15274
  private: string;
15162
15275
  public: string;
15163
15276
  };
15164
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
15277
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
15165
15278
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
15166
15279
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
15167
15280
  allowEmptySearch: (queryName: string) => boolean;
@@ -15210,7 +15323,7 @@ export declare class AggregationComponent {
15210
15323
  sources?: import("@sinequa/atomic-angular").CSources;
15211
15324
  features?: {
15212
15325
  [key: string]: boolean | {
15213
- [key: string]: string | boolean | string[] | undefined;
15326
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15214
15327
  } | undefined;
15215
15328
  allowChangePassword?: boolean;
15216
15329
  editablepartition?: boolean;
@@ -15229,7 +15342,7 @@ export declare class AggregationComponent {
15229
15342
  userProfile?: {
15230
15343
  enabled?: boolean;
15231
15344
  data?: string[];
15232
- customData?: string[];
15345
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15233
15346
  };
15234
15347
  previewMultiConversion?: boolean;
15235
15348
  persistFiltersAcrossTabs?: boolean;
@@ -15252,7 +15365,7 @@ export declare class AggregationComponent {
15252
15365
  };
15253
15366
  features?: {
15254
15367
  [key: string]: boolean | {
15255
- [key: string]: string | boolean | string[] | undefined;
15368
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15256
15369
  } | undefined;
15257
15370
  allowChangePassword?: boolean;
15258
15371
  editablepartition?: boolean;
@@ -15271,7 +15384,7 @@ export declare class AggregationComponent {
15271
15384
  userProfile?: {
15272
15385
  enabled?: boolean;
15273
15386
  data?: string[];
15274
- customData?: string[];
15387
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15275
15388
  };
15276
15389
  previewMultiConversion?: boolean;
15277
15390
  persistFiltersAcrossTabs?: boolean;
@@ -15358,8 +15471,10 @@ export declare class AggregationComponent {
15358
15471
  * A boolean flag indicating whether the component is searchable.
15359
15472
  * This property is initialized to `undefined` by default.
15360
15473
  * "Undefined" and not "false" because this input overrides the custom json settings
15474
+ * (typed explicitly: a bare `input(undefined)` infers the type `undefined`, so neither
15475
+ * `[searchable]="false"` nor `[searchable]="true"` would compile).
15361
15476
  */
15362
- searchable: import("@angular/core").InputSignal<undefined>;
15477
+ searchable: import("@angular/core").InputSignal<boolean | undefined>;
15363
15478
  /**
15364
15479
  * Whether to render the per-item checkbox (list/tree). When `false`, the checkbox
15365
15480
  * is hidden but selection still toggles on row click. Ignored by the date variant.
@@ -15445,7 +15560,7 @@ export declare class AggregationComponent {
15445
15560
  *
15446
15561
  * @default "auto"
15447
15562
  */
15448
- type: import("@angular/core").InputSignal<"list" | "tree" | "date" | "auto">;
15563
+ type: import("@angular/core").InputSignal<"auto" | "list" | "tree" | "date">;
15449
15564
  /**
15450
15565
  * Whether the host removes itself from the layout (Tailwind's `hidden`, i.e.
15451
15566
  * `display: none`) when it resolves to zero items. When `false` (default), the
@@ -15870,7 +15985,7 @@ export declare class AppliedFiltersComponent {
15870
15985
  /** Chip colour scheme, passed to galactik's `tag`. */
15871
15986
  readonly scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
15872
15987
  /** Chip size, passed to galactik's `tag`. */
15873
- readonly size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | "xs" | "xsmall" | null | undefined>;
15988
+ readonly size: import("@angular/core").InputSignal<"small" | "medium" | "xs" | "sm" | "md" | "xsmall" | null | undefined>;
15874
15989
  /** Extra classes for each chip, merged by galactik's `tag`. */
15875
15990
  readonly chipClass: import("@angular/core").InputSignal<string>;
15876
15991
  /** A chip was removed. */
@@ -16058,6 +16173,13 @@ export declare class FilterButtonComponent {
16058
16173
  */
16059
16174
  lockPosition: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16060
16175
  expandedLevel: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
16176
+ /**
16177
+ * Set by `filters-bar` on the filters that do not fit and are hidden by the overflow manager. They
16178
+ * leave the toolbar's keyboard navigation: a roving focus cannot land on an element with
16179
+ * `display: none`, so the arrow keys used to stall on the last visible filter while the tab stop
16180
+ * silently moved to a hidden one.
16181
+ */
16182
+ overflowed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16061
16183
  protected variant: import("@angular/core").WritableSignal<"primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined>;
16062
16184
  protected filter: import("@angular/core").WritableSignal<CFilterEx>;
16063
16185
  /** Unique id wiring the trigger's `popovertarget` to the `<div popover>` `id`. */
@@ -16065,6 +16187,8 @@ export declare class FilterButtonComponent {
16065
16187
  popoverRef: import("@angular/core").Signal<PopoverDirective | undefined>;
16066
16188
  /** True while the native popover is open — drives the trigger's open styling. */
16067
16189
  protected readonly isOpen: import("@angular/core").Signal<boolean>;
16190
+ /** Set when this button sits in a `filters-bar` toolbar: the inner button then is the roving widget. */
16191
+ protected readonly toolbar: Toolbar | null;
16068
16192
  protected nativeElement: any;
16069
16193
  protected aggregationsStore: {
16070
16194
  aggregations: import("@angular/core").Signal<import("@sinequa/atomic").Aggregation[]>;
@@ -16215,7 +16339,7 @@ export declare class FilterButtonComponent {
16215
16339
  sources?: import("@sinequa/atomic-angular").CSources;
16216
16340
  features?: {
16217
16341
  [key: string]: boolean | {
16218
- [key: string]: string | boolean | string[] | undefined;
16342
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16219
16343
  } | undefined;
16220
16344
  allowChangePassword?: boolean;
16221
16345
  editablepartition?: boolean;
@@ -16234,7 +16358,7 @@ export declare class FilterButtonComponent {
16234
16358
  userProfile?: {
16235
16359
  enabled?: boolean;
16236
16360
  data?: string[];
16237
- customData?: string[];
16361
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16238
16362
  };
16239
16363
  previewMultiConversion?: boolean;
16240
16364
  persistFiltersAcrossTabs?: boolean;
@@ -16257,7 +16381,7 @@ export declare class FilterButtonComponent {
16257
16381
  };
16258
16382
  features?: {
16259
16383
  [key: string]: boolean | {
16260
- [key: string]: string | boolean | string[] | undefined;
16384
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16261
16385
  } | undefined;
16262
16386
  allowChangePassword?: boolean;
16263
16387
  editablepartition?: boolean;
@@ -16276,7 +16400,7 @@ export declare class FilterButtonComponent {
16276
16400
  userProfile?: {
16277
16401
  enabled?: boolean;
16278
16402
  data?: string[];
16279
- customData?: string[];
16403
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16280
16404
  };
16281
16405
  previewMultiConversion?: boolean;
16282
16406
  persistFiltersAcrossTabs?: boolean;
@@ -16321,7 +16445,7 @@ export declare class FilterButtonComponent {
16321
16445
  };
16322
16446
  features?: {
16323
16447
  [key: string]: boolean | {
16324
- [key: string]: string | boolean | string[] | undefined;
16448
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16325
16449
  } | undefined;
16326
16450
  allowChangePassword?: boolean;
16327
16451
  editablepartition?: boolean;
@@ -16340,7 +16464,7 @@ export declare class FilterButtonComponent {
16340
16464
  userProfile?: {
16341
16465
  enabled?: boolean;
16342
16466
  data?: string[];
16343
- customData?: string[];
16467
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16344
16468
  };
16345
16469
  previewMultiConversion?: boolean;
16346
16470
  persistFiltersAcrossTabs?: boolean;
@@ -16356,7 +16480,9 @@ export declare class FilterButtonComponent {
16356
16480
  defaultAgent: string;
16357
16481
  };
16358
16482
  }>;
16359
- initialize: () => Promise<void>;
16483
+ initialize: () => Promise<undefined>;
16484
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
16485
+ fail: (error: unknown) => never;
16360
16486
  initializeWithAppName: (appName: string) => Promise<void>;
16361
16487
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
16362
16488
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -16364,7 +16490,7 @@ export declare class FilterButtonComponent {
16364
16490
  private: string;
16365
16491
  public: string;
16366
16492
  };
16367
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
16493
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
16368
16494
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
16369
16495
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
16370
16496
  allowEmptySearch: (queryName: string) => boolean;
@@ -16413,7 +16539,7 @@ export declare class FilterButtonComponent {
16413
16539
  sources?: import("@sinequa/atomic-angular").CSources;
16414
16540
  features?: {
16415
16541
  [key: string]: boolean | {
16416
- [key: string]: string | boolean | string[] | undefined;
16542
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16417
16543
  } | undefined;
16418
16544
  allowChangePassword?: boolean;
16419
16545
  editablepartition?: boolean;
@@ -16432,7 +16558,7 @@ export declare class FilterButtonComponent {
16432
16558
  userProfile?: {
16433
16559
  enabled?: boolean;
16434
16560
  data?: string[];
16435
- customData?: string[];
16561
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16436
16562
  };
16437
16563
  previewMultiConversion?: boolean;
16438
16564
  persistFiltersAcrossTabs?: boolean;
@@ -16455,7 +16581,7 @@ export declare class FilterButtonComponent {
16455
16581
  };
16456
16582
  features?: {
16457
16583
  [key: string]: boolean | {
16458
- [key: string]: string | boolean | string[] | undefined;
16584
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16459
16585
  } | undefined;
16460
16586
  allowChangePassword?: boolean;
16461
16587
  editablepartition?: boolean;
@@ -16474,7 +16600,7 @@ export declare class FilterButtonComponent {
16474
16600
  userProfile?: {
16475
16601
  enabled?: boolean;
16476
16602
  data?: string[];
16477
- customData?: string[];
16603
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16478
16604
  };
16479
16605
  previewMultiConversion?: boolean;
16480
16606
  persistFiltersAcrossTabs?: boolean;
@@ -16570,6 +16696,11 @@ export declare class FilterButtonComponent {
16570
16696
  "required": false;
16571
16697
  "isSignal": true;
16572
16698
  };
16699
+ "overflowed": {
16700
+ "alias": "overflowed";
16701
+ "required": false;
16702
+ "isSignal": true;
16703
+ };
16573
16704
  }, {}, never, never, true, never>;
16574
16705
  }
16575
16706
  export declare class MoreButtonComponent {
@@ -16603,7 +16734,7 @@ export declare class MoreButtonComponent {
16603
16734
  sources?: import("@sinequa/atomic-angular").CSources;
16604
16735
  features?: {
16605
16736
  [key: string]: boolean | {
16606
- [key: string]: string | boolean | string[] | undefined;
16737
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16607
16738
  } | undefined;
16608
16739
  allowChangePassword?: boolean;
16609
16740
  editablepartition?: boolean;
@@ -16622,7 +16753,7 @@ export declare class MoreButtonComponent {
16622
16753
  userProfile?: {
16623
16754
  enabled?: boolean;
16624
16755
  data?: string[];
16625
- customData?: string[];
16756
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16626
16757
  };
16627
16758
  previewMultiConversion?: boolean;
16628
16759
  persistFiltersAcrossTabs?: boolean;
@@ -16645,7 +16776,7 @@ export declare class MoreButtonComponent {
16645
16776
  };
16646
16777
  features?: {
16647
16778
  [key: string]: boolean | {
16648
- [key: string]: string | boolean | string[] | undefined;
16779
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16649
16780
  } | undefined;
16650
16781
  allowChangePassword?: boolean;
16651
16782
  editablepartition?: boolean;
@@ -16664,7 +16795,7 @@ export declare class MoreButtonComponent {
16664
16795
  userProfile?: {
16665
16796
  enabled?: boolean;
16666
16797
  data?: string[];
16667
- customData?: string[];
16798
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16668
16799
  };
16669
16800
  previewMultiConversion?: boolean;
16670
16801
  persistFiltersAcrossTabs?: boolean;
@@ -16709,7 +16840,7 @@ export declare class MoreButtonComponent {
16709
16840
  };
16710
16841
  features?: {
16711
16842
  [key: string]: boolean | {
16712
- [key: string]: string | boolean | string[] | undefined;
16843
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16713
16844
  } | undefined;
16714
16845
  allowChangePassword?: boolean;
16715
16846
  editablepartition?: boolean;
@@ -16728,7 +16859,7 @@ export declare class MoreButtonComponent {
16728
16859
  userProfile?: {
16729
16860
  enabled?: boolean;
16730
16861
  data?: string[];
16731
- customData?: string[];
16862
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16732
16863
  };
16733
16864
  previewMultiConversion?: boolean;
16734
16865
  persistFiltersAcrossTabs?: boolean;
@@ -16744,7 +16875,9 @@ export declare class MoreButtonComponent {
16744
16875
  defaultAgent: string;
16745
16876
  };
16746
16877
  }>;
16747
- initialize: () => Promise<void>;
16878
+ initialize: () => Promise<undefined>;
16879
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
16880
+ fail: (error: unknown) => never;
16748
16881
  initializeWithAppName: (appName: string) => Promise<void>;
16749
16882
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
16750
16883
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -16752,7 +16885,7 @@ export declare class MoreButtonComponent {
16752
16885
  private: string;
16753
16886
  public: string;
16754
16887
  };
16755
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
16888
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
16756
16889
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
16757
16890
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
16758
16891
  allowEmptySearch: (queryName: string) => boolean;
@@ -16801,7 +16934,7 @@ export declare class MoreButtonComponent {
16801
16934
  sources?: import("@sinequa/atomic-angular").CSources;
16802
16935
  features?: {
16803
16936
  [key: string]: boolean | {
16804
- [key: string]: string | boolean | string[] | undefined;
16937
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16805
16938
  } | undefined;
16806
16939
  allowChangePassword?: boolean;
16807
16940
  editablepartition?: boolean;
@@ -16820,7 +16953,7 @@ export declare class MoreButtonComponent {
16820
16953
  userProfile?: {
16821
16954
  enabled?: boolean;
16822
16955
  data?: string[];
16823
- customData?: string[];
16956
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16824
16957
  };
16825
16958
  previewMultiConversion?: boolean;
16826
16959
  persistFiltersAcrossTabs?: boolean;
@@ -16843,7 +16976,7 @@ export declare class MoreButtonComponent {
16843
16976
  };
16844
16977
  features?: {
16845
16978
  [key: string]: boolean | {
16846
- [key: string]: string | boolean | string[] | undefined;
16979
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16847
16980
  } | undefined;
16848
16981
  allowChangePassword?: boolean;
16849
16982
  editablepartition?: boolean;
@@ -16862,7 +16995,7 @@ export declare class MoreButtonComponent {
16862
16995
  userProfile?: {
16863
16996
  enabled?: boolean;
16864
16997
  data?: string[];
16865
- customData?: string[];
16998
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16866
16999
  };
16867
17000
  previewMultiConversion?: boolean;
16868
17001
  persistFiltersAcrossTabs?: boolean;
@@ -17001,6 +17134,17 @@ export declare class MoreButtonComponent {
17001
17134
  nativeElement: any;
17002
17135
  breakpointObserver: BreakpointObserverService;
17003
17136
  aggregationsService: AggregationsService;
17137
+ /** Set when this button sits in a `filters-bar` toolbar: the inner button then is the roving widget. */
17138
+ protected readonly toolbar: Toolbar | null;
17139
+ /**
17140
+ * Takes the trigger out of the keyboard navigation (and the toolbar's roving) while there is nothing
17141
+ * to show behind it, instead of leaving an invisible stop.
17142
+ */
17143
+ disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
17144
+ protected readonly triggerClass = "gap-1 truncate font-semibold";
17145
+ protected readonly openTriggerClass = "gap-1 truncate font-semibold border border-(--stroke-neutral-dark)/18";
17146
+ protected readonly openSheet: () => void | undefined;
17147
+ protected readonly openDialog: () => void | undefined;
17004
17148
  count: import("@angular/core").InputSignalWithTransform<number, unknown>;
17005
17149
  position: import("@angular/core").InputSignal<Placement>;
17006
17150
  /**
@@ -17067,6 +17211,11 @@ export declare class MoreButtonComponent {
17067
17211
  isEnriched: import("@angular/core").Signal<boolean>;
17068
17212
  static ɵfac: i0.ɵɵFactoryDeclaration<MoreButtonComponent, never>;
17069
17213
  static ɵcmp: i0.ɵɵComponentDeclaration<MoreButtonComponent, "more-button, MoreButton", never, {
17214
+ "disabled": {
17215
+ "alias": "disabled";
17216
+ "required": false;
17217
+ "isSignal": true;
17218
+ };
17070
17219
  "count": {
17071
17220
  "alias": "count";
17072
17221
  "required": false;
@@ -17228,7 +17377,7 @@ export declare class FiltersBarComponent {
17228
17377
  sources?: import("@sinequa/atomic-angular").CSources;
17229
17378
  features?: {
17230
17379
  [key: string]: boolean | {
17231
- [key: string]: string | boolean | string[] | undefined;
17380
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17232
17381
  } | undefined;
17233
17382
  allowChangePassword?: boolean;
17234
17383
  editablepartition?: boolean;
@@ -17247,7 +17396,7 @@ export declare class FiltersBarComponent {
17247
17396
  userProfile?: {
17248
17397
  enabled?: boolean;
17249
17398
  data?: string[];
17250
- customData?: string[];
17399
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17251
17400
  };
17252
17401
  previewMultiConversion?: boolean;
17253
17402
  persistFiltersAcrossTabs?: boolean;
@@ -17270,7 +17419,7 @@ export declare class FiltersBarComponent {
17270
17419
  };
17271
17420
  features?: {
17272
17421
  [key: string]: boolean | {
17273
- [key: string]: string | boolean | string[] | undefined;
17422
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17274
17423
  } | undefined;
17275
17424
  allowChangePassword?: boolean;
17276
17425
  editablepartition?: boolean;
@@ -17289,7 +17438,7 @@ export declare class FiltersBarComponent {
17289
17438
  userProfile?: {
17290
17439
  enabled?: boolean;
17291
17440
  data?: string[];
17292
- customData?: string[];
17441
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17293
17442
  };
17294
17443
  previewMultiConversion?: boolean;
17295
17444
  persistFiltersAcrossTabs?: boolean;
@@ -17334,7 +17483,7 @@ export declare class FiltersBarComponent {
17334
17483
  };
17335
17484
  features?: {
17336
17485
  [key: string]: boolean | {
17337
- [key: string]: string | boolean | string[] | undefined;
17486
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17338
17487
  } | undefined;
17339
17488
  allowChangePassword?: boolean;
17340
17489
  editablepartition?: boolean;
@@ -17353,7 +17502,7 @@ export declare class FiltersBarComponent {
17353
17502
  userProfile?: {
17354
17503
  enabled?: boolean;
17355
17504
  data?: string[];
17356
- customData?: string[];
17505
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17357
17506
  };
17358
17507
  previewMultiConversion?: boolean;
17359
17508
  persistFiltersAcrossTabs?: boolean;
@@ -17369,7 +17518,9 @@ export declare class FiltersBarComponent {
17369
17518
  defaultAgent: string;
17370
17519
  };
17371
17520
  }>;
17372
- initialize: () => Promise<void>;
17521
+ initialize: () => Promise<undefined>;
17522
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
17523
+ fail: (error: unknown) => never;
17373
17524
  initializeWithAppName: (appName: string) => Promise<void>;
17374
17525
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
17375
17526
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -17377,7 +17528,7 @@ export declare class FiltersBarComponent {
17377
17528
  private: string;
17378
17529
  public: string;
17379
17530
  };
17380
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
17531
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
17381
17532
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
17382
17533
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
17383
17534
  allowEmptySearch: (queryName: string) => boolean;
@@ -17426,7 +17577,7 @@ export declare class FiltersBarComponent {
17426
17577
  sources?: import("@sinequa/atomic-angular").CSources;
17427
17578
  features?: {
17428
17579
  [key: string]: boolean | {
17429
- [key: string]: string | boolean | string[] | undefined;
17580
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17430
17581
  } | undefined;
17431
17582
  allowChangePassword?: boolean;
17432
17583
  editablepartition?: boolean;
@@ -17445,7 +17596,7 @@ export declare class FiltersBarComponent {
17445
17596
  userProfile?: {
17446
17597
  enabled?: boolean;
17447
17598
  data?: string[];
17448
- customData?: string[];
17599
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17449
17600
  };
17450
17601
  previewMultiConversion?: boolean;
17451
17602
  persistFiltersAcrossTabs?: boolean;
@@ -17468,7 +17619,7 @@ export declare class FiltersBarComponent {
17468
17619
  };
17469
17620
  features?: {
17470
17621
  [key: string]: boolean | {
17471
- [key: string]: string | boolean | string[] | undefined;
17622
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17472
17623
  } | undefined;
17473
17624
  allowChangePassword?: boolean;
17474
17625
  editablepartition?: boolean;
@@ -17487,7 +17638,7 @@ export declare class FiltersBarComponent {
17487
17638
  userProfile?: {
17488
17639
  enabled?: boolean;
17489
17640
  data?: string[];
17490
- customData?: string[];
17641
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17491
17642
  };
17492
17643
  previewMultiConversion?: boolean;
17493
17644
  persistFiltersAcrossTabs?: boolean;
@@ -17919,7 +18070,7 @@ export declare class LabelService {
17919
18070
  sources?: import("@sinequa/atomic-angular").CSources;
17920
18071
  features?: {
17921
18072
  [key: string]: boolean | {
17922
- [key: string]: string | boolean | string[] | undefined;
18073
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17923
18074
  } | undefined;
17924
18075
  allowChangePassword?: boolean;
17925
18076
  editablepartition?: boolean;
@@ -17938,7 +18089,7 @@ export declare class LabelService {
17938
18089
  userProfile?: {
17939
18090
  enabled?: boolean;
17940
18091
  data?: string[];
17941
- customData?: string[];
18092
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17942
18093
  };
17943
18094
  previewMultiConversion?: boolean;
17944
18095
  persistFiltersAcrossTabs?: boolean;
@@ -17961,7 +18112,7 @@ export declare class LabelService {
17961
18112
  };
17962
18113
  features?: {
17963
18114
  [key: string]: boolean | {
17964
- [key: string]: string | boolean | string[] | undefined;
18115
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17965
18116
  } | undefined;
17966
18117
  allowChangePassword?: boolean;
17967
18118
  editablepartition?: boolean;
@@ -17980,7 +18131,7 @@ export declare class LabelService {
17980
18131
  userProfile?: {
17981
18132
  enabled?: boolean;
17982
18133
  data?: string[];
17983
- customData?: string[];
18134
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17984
18135
  };
17985
18136
  previewMultiConversion?: boolean;
17986
18137
  persistFiltersAcrossTabs?: boolean;
@@ -18025,7 +18176,7 @@ export declare class LabelService {
18025
18176
  };
18026
18177
  features?: {
18027
18178
  [key: string]: boolean | {
18028
- [key: string]: string | boolean | string[] | undefined;
18179
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18029
18180
  } | undefined;
18030
18181
  allowChangePassword?: boolean;
18031
18182
  editablepartition?: boolean;
@@ -18044,7 +18195,7 @@ export declare class LabelService {
18044
18195
  userProfile?: {
18045
18196
  enabled?: boolean;
18046
18197
  data?: string[];
18047
- customData?: string[];
18198
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18048
18199
  };
18049
18200
  previewMultiConversion?: boolean;
18050
18201
  persistFiltersAcrossTabs?: boolean;
@@ -18060,7 +18211,9 @@ export declare class LabelService {
18060
18211
  defaultAgent: string;
18061
18212
  };
18062
18213
  }>;
18063
- initialize: () => Promise<void>;
18214
+ initialize: () => Promise<undefined>;
18215
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
18216
+ fail: (error: unknown) => never;
18064
18217
  initializeWithAppName: (appName: string) => Promise<void>;
18065
18218
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
18066
18219
  getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
@@ -18068,7 +18221,7 @@ export declare class LabelService {
18068
18221
  private: string;
18069
18222
  public: string;
18070
18223
  };
18071
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
18224
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
18072
18225
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
18073
18226
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
18074
18227
  allowEmptySearch: (queryName: string) => boolean;
@@ -18117,7 +18270,7 @@ export declare class LabelService {
18117
18270
  sources?: import("@sinequa/atomic-angular").CSources;
18118
18271
  features?: {
18119
18272
  [key: string]: boolean | {
18120
- [key: string]: string | boolean | string[] | undefined;
18273
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18121
18274
  } | undefined;
18122
18275
  allowChangePassword?: boolean;
18123
18276
  editablepartition?: boolean;
@@ -18136,7 +18289,7 @@ export declare class LabelService {
18136
18289
  userProfile?: {
18137
18290
  enabled?: boolean;
18138
18291
  data?: string[];
18139
- customData?: string[];
18292
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18140
18293
  };
18141
18294
  previewMultiConversion?: boolean;
18142
18295
  persistFiltersAcrossTabs?: boolean;
@@ -18159,7 +18312,7 @@ export declare class LabelService {
18159
18312
  };
18160
18313
  features?: {
18161
18314
  [key: string]: boolean | {
18162
- [key: string]: string | boolean | string[] | undefined;
18315
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18163
18316
  } | undefined;
18164
18317
  allowChangePassword?: boolean;
18165
18318
  editablepartition?: boolean;
@@ -18178,7 +18331,7 @@ export declare class LabelService {
18178
18331
  userProfile?: {
18179
18332
  enabled?: boolean;
18180
18333
  data?: string[];
18181
- customData?: string[];
18334
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18182
18335
  };
18183
18336
  previewMultiConversion?: boolean;
18184
18337
  persistFiltersAcrossTabs?: boolean;
@@ -18443,6 +18596,8 @@ export declare class RecentSearchesComponent {
18443
18596
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
18444
18597
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18445
18598
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18599
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
18600
+ fail: (err: unknown) => void;
18446
18601
  initialize: () => Promise<void>;
18447
18602
  reset: () => Promise<void>;
18448
18603
  deleteAlert: (index: number) => Promise<void>;
@@ -18554,6 +18709,8 @@ export declare class SavedSearchPopover {
18554
18709
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
18555
18710
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18556
18711
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18712
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
18713
+ fail: (err: unknown) => void;
18557
18714
  initialize: () => Promise<void>;
18558
18715
  reset: () => Promise<void>;
18559
18716
  deleteAlert: (index: number) => Promise<void>;
@@ -18636,6 +18793,8 @@ export declare class SavedSearchesComponent {
18636
18793
  updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
18637
18794
  updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18638
18795
  updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
18796
+ hydrate: (settings: import("@sinequa/atomic-angular").UserSettingsState) => void;
18797
+ fail: (err: unknown) => void;
18639
18798
  initialize: () => Promise<void>;
18640
18799
  reset: () => Promise<void>;
18641
18800
  deleteAlert: (index: number) => Promise<void>;
@@ -18761,6 +18920,8 @@ export declare class SettingsAccountPanelComponent {
18761
18920
  allowUserOverride: import("@angular/core").Signal<boolean>;
18762
18921
  isOverridingUser: import("@angular/core").Signal<boolean>;
18763
18922
  initials: import("@angular/core").Signal<string>;
18923
+ hydrate: (principal: import("@sinequa/atomic").Principal) => void;
18924
+ fail: (error: unknown) => never;
18764
18925
  principal: () => import("@sinequa/atomic").Principal;
18765
18926
  initialize: () => Promise<void>;
18766
18927
  } & import("@ngrx/signals").StateSource<{
@@ -18897,6 +19058,8 @@ export declare class UserProfileFormComponent {
18897
19058
  allowUserOverride: Signal<boolean>;
18898
19059
  isOverridingUser: Signal<boolean>;
18899
19060
  initials: Signal<string>;
19061
+ hydrate: (principal: import("@sinequa/atomic").Principal) => void;
19062
+ fail: (error: unknown) => never;
18900
19063
  principal: () => import("@sinequa/atomic").Principal;
18901
19064
  initialize: () => Promise<void>;
18902
19065
  } & import("@ngrx/signals").StateSource<{
@@ -18959,7 +19122,7 @@ export declare class UserProfileFormComponent {
18959
19122
  sources?: import("@sinequa/atomic-angular").CSources;
18960
19123
  features?: {
18961
19124
  [key: string]: boolean | {
18962
- [key: string]: string | boolean | string[] | undefined;
19125
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18963
19126
  } | undefined;
18964
19127
  allowChangePassword?: boolean;
18965
19128
  editablepartition?: boolean;
@@ -18978,7 +19141,7 @@ export declare class UserProfileFormComponent {
18978
19141
  userProfile?: {
18979
19142
  enabled?: boolean;
18980
19143
  data?: string[];
18981
- customData?: string[];
19144
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18982
19145
  };
18983
19146
  previewMultiConversion?: boolean;
18984
19147
  persistFiltersAcrossTabs?: boolean;
@@ -19001,7 +19164,7 @@ export declare class UserProfileFormComponent {
19001
19164
  };
19002
19165
  features?: {
19003
19166
  [key: string]: boolean | {
19004
- [key: string]: string | boolean | string[] | undefined;
19167
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19005
19168
  } | undefined;
19006
19169
  allowChangePassword?: boolean;
19007
19170
  editablepartition?: boolean;
@@ -19020,7 +19183,7 @@ export declare class UserProfileFormComponent {
19020
19183
  userProfile?: {
19021
19184
  enabled?: boolean;
19022
19185
  data?: string[];
19023
- customData?: string[];
19186
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19024
19187
  };
19025
19188
  previewMultiConversion?: boolean;
19026
19189
  persistFiltersAcrossTabs?: boolean;
@@ -19065,7 +19228,7 @@ export declare class UserProfileFormComponent {
19065
19228
  };
19066
19229
  features?: {
19067
19230
  [key: string]: boolean | {
19068
- [key: string]: string | boolean | string[] | undefined;
19231
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19069
19232
  } | undefined;
19070
19233
  allowChangePassword?: boolean;
19071
19234
  editablepartition?: boolean;
@@ -19084,7 +19247,7 @@ export declare class UserProfileFormComponent {
19084
19247
  userProfile?: {
19085
19248
  enabled?: boolean;
19086
19249
  data?: string[];
19087
- customData?: string[];
19250
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19088
19251
  };
19089
19252
  previewMultiConversion?: boolean;
19090
19253
  persistFiltersAcrossTabs?: boolean;
@@ -19100,7 +19263,9 @@ export declare class UserProfileFormComponent {
19100
19263
  defaultAgent: string;
19101
19264
  };
19102
19265
  }>;
19103
- initialize: () => Promise<void>;
19266
+ initialize: () => Promise<undefined>;
19267
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
19268
+ fail: (error: unknown) => never;
19104
19269
  initializeWithAppName: (appName: string) => Promise<void>;
19105
19270
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
19106
19271
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -19108,7 +19273,7 @@ export declare class UserProfileFormComponent {
19108
19273
  private: string;
19109
19274
  public: string;
19110
19275
  };
19111
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
19276
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
19112
19277
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
19113
19278
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
19114
19279
  allowEmptySearch: (queryName: string) => boolean;
@@ -19157,7 +19322,7 @@ export declare class UserProfileFormComponent {
19157
19322
  sources?: import("@sinequa/atomic-angular").CSources;
19158
19323
  features?: {
19159
19324
  [key: string]: boolean | {
19160
- [key: string]: string | boolean | string[] | undefined;
19325
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19161
19326
  } | undefined;
19162
19327
  allowChangePassword?: boolean;
19163
19328
  editablepartition?: boolean;
@@ -19176,7 +19341,7 @@ export declare class UserProfileFormComponent {
19176
19341
  userProfile?: {
19177
19342
  enabled?: boolean;
19178
19343
  data?: string[];
19179
- customData?: string[];
19344
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19180
19345
  };
19181
19346
  previewMultiConversion?: boolean;
19182
19347
  persistFiltersAcrossTabs?: boolean;
@@ -19199,7 +19364,7 @@ export declare class UserProfileFormComponent {
19199
19364
  };
19200
19365
  features?: {
19201
19366
  [key: string]: boolean | {
19202
- [key: string]: string | boolean | string[] | undefined;
19367
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19203
19368
  } | undefined;
19204
19369
  allowChangePassword?: boolean;
19205
19370
  editablepartition?: boolean;
@@ -19218,7 +19383,7 @@ export declare class UserProfileFormComponent {
19218
19383
  userProfile?: {
19219
19384
  enabled?: boolean;
19220
19385
  data?: string[];
19221
- customData?: string[];
19386
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19222
19387
  };
19223
19388
  previewMultiConversion?: boolean;
19224
19389
  persistFiltersAcrossTabs?: boolean;
@@ -19248,8 +19413,15 @@ export declare class UserProfileFormComponent {
19248
19413
  private readonly transloco;
19249
19414
  private readonly injector;
19250
19415
  private readonly document;
19416
+ private readonly destroyRef;
19251
19417
  protected readonly labelClass = "text-(length:--size-base) font-(--weight-semibold) text-(--font-primary-base)";
19252
19418
  protected readonly errorClass = "text-(length:--size-base) text-(--font-error-base)";
19419
+ /**
19420
+ * The pill that marks a value as the administrator's default. The light accent pair is the one galactik
19421
+ * pairs for contrast (it is the `light-accent` button): a neutral background with a neutral text was
19422
+ * unreadable.
19423
+ */
19424
+ protected readonly chipClass = "inline-flex items-center rounded-(--radius-rounded) bg-(--bg-accent-base-alt) px-(--spacing-2xs) text-(length:--size-sm) font-medium text-(--font-accent-base)";
19253
19425
  /**
19254
19426
  * Polite announcement of what just happened — entering edit mode, saving, cancelling, deleting.
19255
19427
  *
@@ -19259,11 +19431,25 @@ export declare class UserProfileFormComponent {
19259
19431
  * reliably announced.
19260
19432
  */
19261
19433
  protected readonly statusMessage: import("@angular/core").WritableSignal<string>;
19434
+ /** Id of the property saved last, `"<category>.<key>"`, while its confirmation is on screen. */
19435
+ protected readonly savedProperty: import("@angular/core").WritableSignal<string | undefined>;
19436
+ private savedTimer;
19262
19437
  protected readonly dataKeys: string[];
19263
19438
  protected readonly keys: Signal<string[]>;
19264
19439
  protected readonly formKeys: Signal<string[]>;
19265
19440
  protected readonly allowProfilePhoto: Signal<boolean>;
19441
+ private readonly customDataConfig;
19442
+ /**
19443
+ * The rows of the free-form properties.
19444
+ *
19445
+ * Users only edit values, and the structure is the administrator's, in the custom JSON. So a property
19446
+ * that is an object — by its default, or by what the profile holds — is not one row but one row per
19447
+ * leaf (`workingHours › start`), each read-only: the form shows the values without any way to change
19448
+ * the shape. A scalar is an editable row, and an array a read-only one.
19449
+ */
19450
+ private readonly customRows;
19266
19451
  protected readonly customData: Signal<string[]>;
19452
+ private readonly customRowIndex;
19267
19453
  /**
19268
19454
  * The editable properties, flattened in display order — one row per entry.
19269
19455
  *
@@ -19277,6 +19463,18 @@ export declare class UserProfileFormComponent {
19277
19463
  key: string;
19278
19464
  translated: boolean;
19279
19465
  }[]>;
19466
+ /**
19467
+ * The rows grouped in the two cards of the form — the configured fields, then the free-form ones.
19468
+ * A group with no row is left out, so a profile without custom properties shows a single card.
19469
+ */
19470
+ protected readonly sections: Signal<{
19471
+ id: string;
19472
+ rows: {
19473
+ category: UserProfileCategory;
19474
+ key: string;
19475
+ translated: boolean;
19476
+ }[];
19477
+ }[]>;
19280
19478
  protected readonly initials: Signal<string>;
19281
19479
  protected readonly username: Signal<string | null>;
19282
19480
  /** Id of the property being edited, `"<category>.<key>"` — at most one at a time. */
@@ -19297,7 +19495,7 @@ export declare class UserProfileFormComponent {
19297
19495
  protected readonly profileForm: FieldTree<UserProfileFormModel, string | number, "writable">;
19298
19496
  constructor();
19299
19497
  /**
19300
- * Id of the `<textarea>` of a property — the target of its `<label for>`.
19498
+ * Id of the `<input>` of a property — the target of its `<label for>`.
19301
19499
  *
19302
19500
  * The key comes from the configuration and a `customData` one is free-form, so anything that is not
19303
19501
  * a word character is folded away: a space in an id makes both the `id` and the `for` invalid.
@@ -19327,6 +19525,25 @@ export declare class UserProfileFormComponent {
19327
19525
  * @param key property key
19328
19526
  */
19329
19527
  protected getDataValue(category: UserProfileCategory, key: string): string | undefined;
19528
+ /** The default of a custom property, shown while the profile holds no value for it. */
19529
+ private defaultValue;
19530
+ /** Whether a row is a leaf of an object: shown, never edited. */
19531
+ protected isLeaf(category: UserProfileCategory, key: string): boolean;
19532
+ /** What the profile holds for a property — at its path, for a leaf. */
19533
+ private storedValue;
19534
+ /**
19535
+ * Whether a property is a boolean: its stored value or, failing that, its default is one. It is then
19536
+ * edited with a switch, and written as a real boolean — never as the string "true".
19537
+ */
19538
+ protected isBoolean(category: UserProfileCategory, key: string): boolean;
19539
+ /** Whether a boolean property is on. */
19540
+ protected booleanValue(category: UserProfileCategory, key: string): boolean;
19541
+ /** Whether a property holds an array, which the form shows but never edits. */
19542
+ protected isReadOnlyValue(category: UserProfileCategory, key: string): boolean;
19543
+ /** The tags of an array property: a string as is, anything else as its JSON, a repeated value once. */
19544
+ protected arrayTags(category: UserProfileCategory, key: string): string[];
19545
+ /** The stored value of a property, else its default — what the field shows when it is not being edited. */
19546
+ private effectiveValue;
19330
19547
  /**
19331
19548
  * Enters edit mode on a property and puts the caret in its field.
19332
19549
  *
@@ -19342,18 +19559,35 @@ export declare class UserProfileFormComponent {
19342
19559
  * the keyboard or by clicking straight into it.
19343
19560
  */
19344
19561
  protected onFieldFocus(event: FocusEvent): void;
19562
+ /**
19563
+ * `Escape` in a field: cancels the edit in progress — and only that.
19564
+ *
19565
+ * The form lives in a dialog, which closes on `Escape`. While a property is being edited the key
19566
+ * belongs to the field (the hint under it says so), so the event is consumed; on a read-only row there
19567
+ * is nothing to cancel and it goes through, closing the dialog as it would anywhere else.
19568
+ */
19569
+ protected onEscape(event: Event, category: UserProfileCategory, key: string): void;
19345
19570
  /**
19346
19571
  * Leaves edit mode and puts the stored value back, discarding the draft.
19347
19572
  *
19348
- * Also bound to `Escape` on every field, hence the guard: pressing it on a read-only row must not
19349
- * steal the focus by handing it to that row's edit button.
19573
+ * The guard keeps it harmless on a row that is not being edited: it must not steal the focus by
19574
+ * handing it to that row's edit button.
19350
19575
  */
19351
19576
  protected onCancelEdit(category: UserProfileCategory, key: string): void;
19352
19577
  /**
19353
- * The user-facing name of a property — the translated label for a standard key, the key itself for a
19354
- * custom one, matching what the row displays.
19578
+ * The user-facing name of a property, as the row displays it and as it is announced.
19579
+ *
19580
+ * A standard key has a `userProfile.data.*` label. A custom one is free-form, so an application may
19581
+ * translate it under `userProfile.customData.<key>`; without that entry the key itself is shown
19582
+ * (Transloco answers a missing entry with the path it was asked for).
19355
19583
  */
19356
- private propertyLabel;
19584
+ protected labelFor(category: UserProfileCategory, key: string): string;
19585
+ /** Whether a property shows its default: the profile holds no value for it and the administrator gave one. */
19586
+ protected isDefault(category: UserProfileCategory, key: string): boolean;
19587
+ /** Whether a property has just been saved — its row shows a confirmation for a few seconds. */
19588
+ protected isSaved(category: UserProfileCategory, key: string): boolean;
19589
+ /** Shows the confirmation of a row, and takes it down after a while (a later save restarts the delay). */
19590
+ private flashSaved;
19357
19591
  /**
19358
19592
  * Pushes a message to the live region.
19359
19593
  *
@@ -19384,6 +19618,18 @@ export declare class UserProfileFormComponent {
19384
19618
  * @param key property name
19385
19619
  */
19386
19620
  protected onDeleteData(category: UserProfileCategory, key: string): Promise<void>;
19621
+ /** Whether the profile holds a value for a property — only then is there something to delete. */
19622
+ protected hasStoredValue(category: UserProfileCategory, key: string): boolean;
19623
+ /** Takes a deleted property out of the stored profile, and announces it. */
19624
+ private forgetProperty;
19625
+ /**
19626
+ * Persists a boolean property as soon as its switch is flipped — there is no draft to edit and save.
19627
+ *
19628
+ * The profile is updated first and put back if the request fails. The switch is reset by hand as
19629
+ * well: it keeps the state of the click until the value bound to it changes, and a failure that comes
19630
+ * back before the next render never changes it.
19631
+ */
19632
+ protected onToggleBoolean(category: UserProfileCategory, key: string, checked: boolean, toggle: SwitchComponent): Promise<void>;
19387
19633
  /**
19388
19634
  * Patches a single property and folds the response back into the stored profile.
19389
19635
  *
@@ -19501,12 +19747,13 @@ export declare const errorInterceptorFn: HttpInterceptorFn;
19501
19747
  * @param request - The outgoing HTTP request.
19502
19748
  * @param next - The next handler in the HTTP request pipeline.
19503
19749
  * @returns An observable that either passes the request through or handles errors with toast notifications.
19504
- */
19505
- /**
19506
- * Serves the **Angular `HttpClient` channel**. `provideAtomicNotifications()` does the same for the
19507
- * client's own requests, by listening to its `requestFailed` event. The two cover disjoint sets of
19508
- * requests — the client's, and those `@sinequa/agent`, `@sinequa/assistant` or your own code build
19509
- * with `HttpClient` — so registering both raises one toast per failure, not two.
19750
+ *
19751
+ * Serves the **Angular `HttpClient` channel** only. `provideAtomicNotifications()` does the same for the
19752
+ * client's own requests, by listening to its `requestFailed` event: it does not replace this interceptor.
19753
+ * The two cover disjoint sets of requests — the client's, and those `@sinequa/agent`,
19754
+ * `@sinequa/assistant` or your own code build with `HttpClient` — so registering both raises one toast
19755
+ * per failure, not two. As with `provideAtomicNotifications()`, nothing renders the toast: the
19756
+ * application must provide a toaster listening to the `notification` event dispatched on `window`.
19510
19757
  */
19511
19758
  export declare const toastInterceptorFn: HttpInterceptorFn;
19512
19759
  /**
@@ -19589,7 +19836,7 @@ export declare class SourceIconPipe implements PipeTransform {
19589
19836
  sources?: import("@sinequa/atomic-angular").CSources;
19590
19837
  features?: {
19591
19838
  [key: string]: boolean | {
19592
- [key: string]: string | boolean | string[] | undefined;
19839
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19593
19840
  } | undefined;
19594
19841
  allowChangePassword?: boolean;
19595
19842
  editablepartition?: boolean;
@@ -19608,7 +19855,7 @@ export declare class SourceIconPipe implements PipeTransform {
19608
19855
  userProfile?: {
19609
19856
  enabled?: boolean;
19610
19857
  data?: string[];
19611
- customData?: string[];
19858
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19612
19859
  };
19613
19860
  previewMultiConversion?: boolean;
19614
19861
  persistFiltersAcrossTabs?: boolean;
@@ -19631,7 +19878,7 @@ export declare class SourceIconPipe implements PipeTransform {
19631
19878
  };
19632
19879
  features?: {
19633
19880
  [key: string]: boolean | {
19634
- [key: string]: string | boolean | string[] | undefined;
19881
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19635
19882
  } | undefined;
19636
19883
  allowChangePassword?: boolean;
19637
19884
  editablepartition?: boolean;
@@ -19650,7 +19897,7 @@ export declare class SourceIconPipe implements PipeTransform {
19650
19897
  userProfile?: {
19651
19898
  enabled?: boolean;
19652
19899
  data?: string[];
19653
- customData?: string[];
19900
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19654
19901
  };
19655
19902
  previewMultiConversion?: boolean;
19656
19903
  persistFiltersAcrossTabs?: boolean;
@@ -19695,7 +19942,7 @@ export declare class SourceIconPipe implements PipeTransform {
19695
19942
  };
19696
19943
  features?: {
19697
19944
  [key: string]: boolean | {
19698
- [key: string]: string | boolean | string[] | undefined;
19945
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19699
19946
  } | undefined;
19700
19947
  allowChangePassword?: boolean;
19701
19948
  editablepartition?: boolean;
@@ -19714,7 +19961,7 @@ export declare class SourceIconPipe implements PipeTransform {
19714
19961
  userProfile?: {
19715
19962
  enabled?: boolean;
19716
19963
  data?: string[];
19717
- customData?: string[];
19964
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19718
19965
  };
19719
19966
  previewMultiConversion?: boolean;
19720
19967
  persistFiltersAcrossTabs?: boolean;
@@ -19730,7 +19977,9 @@ export declare class SourceIconPipe implements PipeTransform {
19730
19977
  defaultAgent: string;
19731
19978
  };
19732
19979
  }>;
19733
- initialize: () => Promise<void>;
19980
+ initialize: () => Promise<undefined>;
19981
+ hydrate: (app: import("@sinequa/atomic").CCApp) => void;
19982
+ fail: (error: unknown) => never;
19734
19983
  initializeWithAppName: (appName: string) => Promise<void>;
19735
19984
  update: (app: Partial<import("@sinequa/atomic-angular").CCAppState>) => void;
19736
19985
  getWebServiceByType: (type: import("@sinequa/atomic").CCWebService["webServiceType"]) => import("@sinequa/atomic").CCWebService | undefined;
@@ -19738,7 +19987,7 @@ export declare class SourceIconPipe implements PipeTransform {
19738
19987
  private: string;
19739
19988
  public: string;
19740
19989
  };
19741
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
19990
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
19742
19991
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
19743
19992
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
19744
19993
  allowEmptySearch: (queryName: string) => boolean;
@@ -19787,7 +20036,7 @@ export declare class SourceIconPipe implements PipeTransform {
19787
20036
  sources?: import("@sinequa/atomic-angular").CSources;
19788
20037
  features?: {
19789
20038
  [key: string]: boolean | {
19790
- [key: string]: string | boolean | string[] | undefined;
20039
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19791
20040
  } | undefined;
19792
20041
  allowChangePassword?: boolean;
19793
20042
  editablepartition?: boolean;
@@ -19806,7 +20055,7 @@ export declare class SourceIconPipe implements PipeTransform {
19806
20055
  userProfile?: {
19807
20056
  enabled?: boolean;
19808
20057
  data?: string[];
19809
- customData?: string[];
20058
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19810
20059
  };
19811
20060
  previewMultiConversion?: boolean;
19812
20061
  persistFiltersAcrossTabs?: boolean;
@@ -19829,7 +20078,7 @@ export declare class SourceIconPipe implements PipeTransform {
19829
20078
  };
19830
20079
  features?: {
19831
20080
  [key: string]: boolean | {
19832
- [key: string]: string | boolean | string[] | undefined;
20081
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19833
20082
  } | undefined;
19834
20083
  allowChangePassword?: boolean;
19835
20084
  editablepartition?: boolean;
@@ -19848,7 +20097,7 @@ export declare class SourceIconPipe implements PipeTransform {
19848
20097
  userProfile?: {
19849
20098
  enabled?: boolean;
19850
20099
  data?: string[];
19851
- customData?: string[];
20100
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19852
20101
  };
19853
20102
  previewMultiConversion?: boolean;
19854
20103
  persistFiltersAcrossTabs?: boolean;
@@ -19996,7 +20245,9 @@ export declare const ATOMIC_CLIENT: InjectionToken<AtomicClient>;
19996
20245
  * ```
19997
20246
  *
19998
20247
  * @remarks Give clients distinct `storagePrefix` values as soon as they target different backends,
19999
- * otherwise they overwrite each other's stored session.
20248
+ * otherwise they overwrite each other's CSRF token in Web Storage. `storagePrefix` does not isolate the
20249
+ * session itself: the JSON Web Token lives in an `HttpOnly` cookie keyed by (domain, path, name), so full
20250
+ * isolation also needs disjoint cookies (distinct hosts, or disjoint `Path`s behind a proxy).
20000
20251
  *
20001
20252
  * Note that this provides the client only. A subtree serving a **second** backend must also own
20002
20253
  * the library's stores and services — use `provideAtomicScope()` for that.
@@ -20030,9 +20281,19 @@ export declare function injectAtomicClient(): AtomicClient;
20030
20281
  /**
20031
20282
  * Surfaces failed requests of the injected client as toast notifications.
20032
20283
  *
20033
- * Replaces `toastInterceptorFn`: it listens to the client's `requestFailed` event rather than
20034
- * wrapping Angular's `HttpClient`, so it covers every request the client makes — including the
20035
- * ones that never went through `HttpClient`.
20284
+ * It listens to the client's `requestFailed` event and raises `notify.error(...)`. It does **not**
20285
+ * replace `toastInterceptorFn`: that interceptor watches Angular's `HttpClient` channel (requests
20286
+ * from `@sinequa/agent`, `@sinequa/assistant` or your own code), this provider watches the atomic
20287
+ * client's own requests. The two channels are disjoint, registering both raises one toast per
20288
+ * failure, never two.
20289
+ *
20290
+ * Only HTTP statuses `400`, `403`, `500` and `503` produce a toast, plus the explicit "Cannot override
20291
+ * user" message for an impersonation rejected with a `401`. `404`, `429`, `502`, `504` and any failure
20292
+ * without an HTTP response (network error) stay silent, as does everything on `api/v1/preview` and a
20293
+ * `400` on `api/v2/user-profile`.
20294
+ *
20295
+ * The library renders nothing: `notify.error(...)` only dispatches a `notification` `CustomEvent` on
20296
+ * `window`. The application must provide a toaster that listens to it.
20036
20297
  *
20037
20298
  * @example
20038
20299
  * ```ts
@@ -20087,7 +20348,15 @@ export declare const ATOMIC_SCOPED_PROVIDERS: Provider[];
20087
20348
  * export class SupportPanelComponent {}
20088
20349
  * ```
20089
20350
  *
20090
- * @remarks Returns a plain `Provider[]`, not `EnvironmentProviders`. That is deliberate: a
20351
+ * @remarks Prerequisites: the root must provide `provideRouter()` and `provideTransloco()` (the scoped stores
20352
+ * and services inject them, else `NullInjectorError`); pass `{ syncUrl: false }` to the `QueryParamsStore`
20353
+ * mutations (and `[syncUrl]="false"` to `<applied-filters>`) in the scope that must not own the single
20354
+ * browser URL; `bootstrapApp()` / `ApplicationService.initialize()` are application-level, do not call them
20355
+ * again from a scope. `storagePrefix` isolates the CSRF token in Web Storage only: the JSON Web Token is an
20356
+ * `HttpOnly` cookie, so a fully isolated session needs disjoint cookies (distinct hosts, or disjoint `Path`s
20357
+ * behind a proxy).
20358
+ *
20359
+ * Returns a plain `Provider[]`, not `EnvironmentProviders`. That is deliberate: a
20091
20360
  * component's `providers` is typed `Provider[]` and rejects `EnvironmentProviders`, so the
20092
20361
  * side-by-side form above would not compile otherwise — and nothing in this scope needs an
20093
20362
  * environment injector (no `ENVIRONMENT_INITIALIZER`, no `APP_INITIALIZER`). `Route.providers`,
@@ -20198,6 +20467,17 @@ export type SessionExpiryOptions = {
20198
20467
  expiredDuration?: number;
20199
20468
  /** Action of the "session expired" notification. Defaults to reloading the page, which starts a new sign-in. */
20200
20469
  onReconnect?: () => void;
20470
+ /**
20471
+ * Action of the "about to expire" notification: lets the user keep working without losing the session.
20472
+ *
20473
+ * Defaults to one light authenticated request (`principal`). The platform has no refresh endpoint: it only
20474
+ * renews the token as a side effect of a request, and only when the server's JSON Web Token auto-refresh
20475
+ * is enabled and the token's maximum lifetime is not reached. When the expiry did not move afterwards,
20476
+ * `onReconnect` runs instead, so the action never leaves the user believing the session was extended.
20477
+ *
20478
+ * A custom handler replaces all of this, including that fallback.
20479
+ */
20480
+ onExtend?: () => Promise<void> | void;
20201
20481
  };
20202
20482
  /**
20203
20483
  * Tells the user that the session is about to expire, and that it has.
@@ -20229,6 +20509,52 @@ export type SessionExpiryOptions = {
20229
20509
  * ```
20230
20510
  */
20231
20511
  export declare function provideSessionExpiry(options?: SessionExpiryOptions): EnvironmentProviders;
20512
+ /**
20513
+ * One part of the start-up data: its value, or the reason it could not be read. A part a source
20514
+ * answers with `{ ok: false }` is read again the usual way — whatever `status` or `error` it carries.
20515
+ */
20516
+ export type StartupPart<T> = {
20517
+ ok: true;
20518
+ value: T;
20519
+ } | {
20520
+ ok: false;
20521
+ status?: number;
20522
+ error?: unknown;
20523
+ };
20524
+ /**
20525
+ * What the application reads once signed in, before anything renders: the app configuration, the
20526
+ * principal and the user settings.
20527
+ *
20528
+ * This is the shape `/bff/bootstrap` of mint-dev-server's BFF answers with. Any other key it carries
20529
+ * (`userProfile`) is ignored.
20530
+ */
20531
+ export interface StartupData {
20532
+ app: StartupPart<CCApp>;
20533
+ principal: StartupPart<Principal>;
20534
+ userSettings: StartupPart<Record<string, unknown>>;
20535
+ }
20536
+ /**
20537
+ * Loads the {@link StartupData} in one call. `null` — the default — reads the three parts in
20538
+ * parallel through the client. Provide it with {@link provideStartupAggregation}.
20539
+ */
20540
+ export declare const STARTUP_DATA_SOURCE: InjectionToken<(() => Promise<StartupData>) | null>;
20541
+ /**
20542
+ * Reads the start-up data from an aggregating endpoint — one round trip for the configuration, the
20543
+ * principal and the user settings — instead of one request each.
20544
+ *
20545
+ * The endpoint answers with a {@link StartupData}, each part carrying its own outcome. The parts it
20546
+ * could not read — or that its answer lacks — are fetched the usual way, in parallel; if the endpoint
20547
+ * fails altogether, the start-up falls back to the three parallel reads, one round trip later. Add it
20548
+ * only behind a backend that serves the endpoint.
20549
+ *
20550
+ * @param endpoint - Path of the endpoint on the backend. Defaults to the BFF's `bff/bootstrap`.
20551
+ *
20552
+ * @example
20553
+ * ```ts
20554
+ * bootstrapApplication(App, { providers: [provideStartupAggregation()] });
20555
+ * ```
20556
+ */
20557
+ export declare function provideStartupAggregation(endpoint?: string): import("@angular/core").EnvironmentProviders;
20232
20558
  /**
20233
20559
  * Resolves the name of the default query from the application store.
20234
20560
  *