@sinequa/atomic-angular 2.6.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,15 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import { ApplicationRef, ChangeDetectorRef, DestroyRef, ElementRef, EnvironmentProviders, InjectionToken, Injector, OnDestroy, OnInit, PipeTransform, Provider, ResourceRef, Signal, TemplateRef, Type, WritableSignal } from "@angular/core";
3
3
  import { TranslocoService } from "@jsverse/transloco";
4
- import { Aggregation, AggregationItem, Article, AtomicClient, AtomicClientConfig, AuditEventType, AuditEventTypeValues, AuditEvents, CCApp, CCColumn, CCQuery, CCSortingChoice, CCWebService, Conversion, Credentials, CustomHighlights, DidYouMeanAction, ExportOutputFormat, ExportQueryModel, Filter as Filter$1, FilterOperator, KeyOf, LegacyFilter, LinkResult, PreviewData, Principal, Query, QueryParams, RequestOptions, Result, SpellingCorrectionMode, Suggestion, TextChunk, TextLocation, TreeAggregation, TreeAggregationNode, UserProfile, getRelativeDate } from "@sinequa/atomic";
4
+ import { Aggregation, AggregationItem, Article, AtomicClient, AtomicClientConfig, AuditEventType, AuditEventTypeValues, AuditEvents, CCApp, CCColumn, CCQuery, CCSortingChoice, CCWebService, Conversion, Credentials, CustomHighlights, DidYouMeanAction, ExportOutputFormat, ExportQueryModel, Filter as Filter$1, FilterOperator, KeyOf, LegacyFilter, LinkResult, PreviewData, Principal, Query, QueryParams, RequestOptions, Result, SpellingCorrectionMode, Suggestion, TextChunk, TextLocation, TreeAggregation, TreeAggregationNode, UserProfile } 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";
11
11
  import MarkdownIt from "markdown-it";
12
12
  import { Placement } from "@floating-ui/dom";
13
- import { CdkDragDrop } from "@angular/cdk/drag-drop";
14
13
  import { Options as Options$1 } from "vanilla-calendar-pro";
15
14
  import { TreeItem } from "@angular/aria/tree";
16
15
  import { Toolbar } from "@angular/aria/toolbar";
@@ -232,6 +231,12 @@ export type CJ = {
232
231
  filters?: CFilter[];
233
232
  };
234
233
  };
234
+ /**
235
+ * An entry of `features.userProfile.customData`: a property name (`"nickname"`) or an object whose
236
+ * keys are property names and whose values are their default (`{ "nickname": "none" }`). A default can
237
+ * be any JSON value, an object included (`{ "theme": { "mode": "dark" } }`).
238
+ */
239
+ export type CustomDataEntry = string | Record<string, unknown>;
235
240
  type CFeatures = {
236
241
  allowChangePassword?: boolean;
237
242
  editablepartition?: boolean;
@@ -254,12 +259,12 @@ type CFeatures = {
254
259
  userProfile?: {
255
260
  enabled?: boolean;
256
261
  data?: string[];
257
- customData?: string[];
262
+ customData?: CustomDataEntry[];
258
263
  };
259
264
  previewMultiConversion?: boolean;
260
265
  persistFiltersAcrossTabs?: boolean;
261
266
  [key: string]: boolean | {
262
- [key: string]: boolean | string | string[] | undefined;
267
+ [key: string]: boolean | string | string[] | CustomDataEntry[] | undefined;
263
268
  } | undefined;
264
269
  };
265
270
  export type CConverter = {
@@ -453,7 +458,7 @@ export declare class ConverterSelectComponent {
453
458
  sources?: import("@sinequa/atomic-angular").CSources;
454
459
  features?: {
455
460
  [key: string]: boolean | {
456
- [key: string]: string | boolean | string[] | undefined;
461
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
457
462
  } | undefined;
458
463
  allowChangePassword?: boolean;
459
464
  editablepartition?: boolean;
@@ -472,7 +477,7 @@ export declare class ConverterSelectComponent {
472
477
  userProfile?: {
473
478
  enabled?: boolean;
474
479
  data?: string[];
475
- customData?: string[];
480
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
476
481
  };
477
482
  previewMultiConversion?: boolean;
478
483
  persistFiltersAcrossTabs?: boolean;
@@ -495,7 +500,7 @@ export declare class ConverterSelectComponent {
495
500
  };
496
501
  features?: {
497
502
  [key: string]: boolean | {
498
- [key: string]: string | boolean | string[] | undefined;
503
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
499
504
  } | undefined;
500
505
  allowChangePassword?: boolean;
501
506
  editablepartition?: boolean;
@@ -514,7 +519,7 @@ export declare class ConverterSelectComponent {
514
519
  userProfile?: {
515
520
  enabled?: boolean;
516
521
  data?: string[];
517
- customData?: string[];
522
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
518
523
  };
519
524
  previewMultiConversion?: boolean;
520
525
  persistFiltersAcrossTabs?: boolean;
@@ -559,7 +564,7 @@ export declare class ConverterSelectComponent {
559
564
  };
560
565
  features?: {
561
566
  [key: string]: boolean | {
562
- [key: string]: string | boolean | string[] | undefined;
567
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
563
568
  } | undefined;
564
569
  allowChangePassword?: boolean;
565
570
  editablepartition?: boolean;
@@ -578,7 +583,7 @@ export declare class ConverterSelectComponent {
578
583
  userProfile?: {
579
584
  enabled?: boolean;
580
585
  data?: string[];
581
- customData?: string[];
586
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
582
587
  };
583
588
  previewMultiConversion?: boolean;
584
589
  persistFiltersAcrossTabs?: boolean;
@@ -604,7 +609,7 @@ export declare class ConverterSelectComponent {
604
609
  private: string;
605
610
  public: string;
606
611
  };
607
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
612
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
608
613
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
609
614
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
610
615
  allowEmptySearch: (queryName: string) => boolean;
@@ -653,7 +658,7 @@ export declare class ConverterSelectComponent {
653
658
  sources?: import("@sinequa/atomic-angular").CSources;
654
659
  features?: {
655
660
  [key: string]: boolean | {
656
- [key: string]: string | boolean | string[] | undefined;
661
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
657
662
  } | undefined;
658
663
  allowChangePassword?: boolean;
659
664
  editablepartition?: boolean;
@@ -672,7 +677,7 @@ export declare class ConverterSelectComponent {
672
677
  userProfile?: {
673
678
  enabled?: boolean;
674
679
  data?: string[];
675
- customData?: string[];
680
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
676
681
  };
677
682
  previewMultiConversion?: boolean;
678
683
  persistFiltersAcrossTabs?: boolean;
@@ -695,7 +700,7 @@ export declare class ConverterSelectComponent {
695
700
  };
696
701
  features?: {
697
702
  [key: string]: boolean | {
698
- [key: string]: string | boolean | string[] | undefined;
703
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
699
704
  } | undefined;
700
705
  allowChangePassword?: boolean;
701
706
  editablepartition?: boolean;
@@ -714,7 +719,7 @@ export declare class ConverterSelectComponent {
714
719
  userProfile?: {
715
720
  enabled?: boolean;
716
721
  data?: string[];
717
- customData?: string[];
722
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
718
723
  };
719
724
  previewMultiConversion?: boolean;
720
725
  persistFiltersAcrossTabs?: boolean;
@@ -1268,7 +1273,7 @@ export declare class MultiSelectionToolbarComponent {
1268
1273
  sources?: import("@sinequa/atomic-angular").CSources;
1269
1274
  features?: {
1270
1275
  [key: string]: boolean | {
1271
- [key: string]: string | boolean | string[] | undefined;
1276
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1272
1277
  } | undefined;
1273
1278
  allowChangePassword?: boolean;
1274
1279
  editablepartition?: boolean;
@@ -1287,7 +1292,7 @@ export declare class MultiSelectionToolbarComponent {
1287
1292
  userProfile?: {
1288
1293
  enabled?: boolean;
1289
1294
  data?: string[];
1290
- customData?: string[];
1295
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1291
1296
  };
1292
1297
  previewMultiConversion?: boolean;
1293
1298
  persistFiltersAcrossTabs?: boolean;
@@ -1310,7 +1315,7 @@ export declare class MultiSelectionToolbarComponent {
1310
1315
  };
1311
1316
  features?: {
1312
1317
  [key: string]: boolean | {
1313
- [key: string]: string | boolean | string[] | undefined;
1318
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1314
1319
  } | undefined;
1315
1320
  allowChangePassword?: boolean;
1316
1321
  editablepartition?: boolean;
@@ -1329,7 +1334,7 @@ export declare class MultiSelectionToolbarComponent {
1329
1334
  userProfile?: {
1330
1335
  enabled?: boolean;
1331
1336
  data?: string[];
1332
- customData?: string[];
1337
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1333
1338
  };
1334
1339
  previewMultiConversion?: boolean;
1335
1340
  persistFiltersAcrossTabs?: boolean;
@@ -1374,7 +1379,7 @@ export declare class MultiSelectionToolbarComponent {
1374
1379
  };
1375
1380
  features?: {
1376
1381
  [key: string]: boolean | {
1377
- [key: string]: string | boolean | string[] | undefined;
1382
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1378
1383
  } | undefined;
1379
1384
  allowChangePassword?: boolean;
1380
1385
  editablepartition?: boolean;
@@ -1393,7 +1398,7 @@ export declare class MultiSelectionToolbarComponent {
1393
1398
  userProfile?: {
1394
1399
  enabled?: boolean;
1395
1400
  data?: string[];
1396
- customData?: string[];
1401
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1397
1402
  };
1398
1403
  previewMultiConversion?: boolean;
1399
1404
  persistFiltersAcrossTabs?: boolean;
@@ -1419,7 +1424,7 @@ export declare class MultiSelectionToolbarComponent {
1419
1424
  private: string;
1420
1425
  public: string;
1421
1426
  };
1422
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
1427
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
1423
1428
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
1424
1429
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
1425
1430
  allowEmptySearch: (queryName: string) => boolean;
@@ -1468,7 +1473,7 @@ export declare class MultiSelectionToolbarComponent {
1468
1473
  sources?: import("@sinequa/atomic-angular").CSources;
1469
1474
  features?: {
1470
1475
  [key: string]: boolean | {
1471
- [key: string]: string | boolean | string[] | undefined;
1476
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1472
1477
  } | undefined;
1473
1478
  allowChangePassword?: boolean;
1474
1479
  editablepartition?: boolean;
@@ -1487,7 +1492,7 @@ export declare class MultiSelectionToolbarComponent {
1487
1492
  userProfile?: {
1488
1493
  enabled?: boolean;
1489
1494
  data?: string[];
1490
- customData?: string[];
1495
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1491
1496
  };
1492
1497
  previewMultiConversion?: boolean;
1493
1498
  persistFiltersAcrossTabs?: boolean;
@@ -1510,7 +1515,7 @@ export declare class MultiSelectionToolbarComponent {
1510
1515
  };
1511
1516
  features?: {
1512
1517
  [key: string]: boolean | {
1513
- [key: string]: string | boolean | string[] | undefined;
1518
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1514
1519
  } | undefined;
1515
1520
  allowChangePassword?: boolean;
1516
1521
  editablepartition?: boolean;
@@ -1529,7 +1534,7 @@ export declare class MultiSelectionToolbarComponent {
1529
1534
  userProfile?: {
1530
1535
  enabled?: boolean;
1531
1536
  data?: string[];
1532
- customData?: string[];
1537
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1533
1538
  };
1534
1539
  previewMultiConversion?: boolean;
1535
1540
  persistFiltersAcrossTabs?: boolean;
@@ -1596,7 +1601,7 @@ export declare class MultiSelectionToolbarComponent {
1596
1601
  };
1597
1602
  features?: {
1598
1603
  [key: string]: boolean | {
1599
- [key: string]: string | boolean | string[] | undefined;
1604
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1600
1605
  } | undefined;
1601
1606
  allowChangePassword?: boolean;
1602
1607
  editablepartition?: boolean;
@@ -1615,7 +1620,7 @@ export declare class MultiSelectionToolbarComponent {
1615
1620
  userProfile?: {
1616
1621
  enabled?: boolean;
1617
1622
  data?: string[];
1618
- customData?: string[];
1623
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1619
1624
  };
1620
1625
  previewMultiConversion?: boolean;
1621
1626
  persistFiltersAcrossTabs?: boolean;
@@ -1732,7 +1737,7 @@ export declare class NavbarTabsComponent {
1732
1737
  sources?: import("@sinequa/atomic-angular").CSources;
1733
1738
  features?: {
1734
1739
  [key: string]: boolean | {
1735
- [key: string]: string | boolean | string[] | undefined;
1740
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1736
1741
  } | undefined;
1737
1742
  allowChangePassword?: boolean;
1738
1743
  editablepartition?: boolean;
@@ -1751,7 +1756,7 @@ export declare class NavbarTabsComponent {
1751
1756
  userProfile?: {
1752
1757
  enabled?: boolean;
1753
1758
  data?: string[];
1754
- customData?: string[];
1759
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1755
1760
  };
1756
1761
  previewMultiConversion?: boolean;
1757
1762
  persistFiltersAcrossTabs?: boolean;
@@ -1774,7 +1779,7 @@ export declare class NavbarTabsComponent {
1774
1779
  };
1775
1780
  features?: {
1776
1781
  [key: string]: boolean | {
1777
- [key: string]: string | boolean | string[] | undefined;
1782
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1778
1783
  } | undefined;
1779
1784
  allowChangePassword?: boolean;
1780
1785
  editablepartition?: boolean;
@@ -1793,7 +1798,7 @@ export declare class NavbarTabsComponent {
1793
1798
  userProfile?: {
1794
1799
  enabled?: boolean;
1795
1800
  data?: string[];
1796
- customData?: string[];
1801
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1797
1802
  };
1798
1803
  previewMultiConversion?: boolean;
1799
1804
  persistFiltersAcrossTabs?: boolean;
@@ -1838,7 +1843,7 @@ export declare class NavbarTabsComponent {
1838
1843
  };
1839
1844
  features?: {
1840
1845
  [key: string]: boolean | {
1841
- [key: string]: string | boolean | string[] | undefined;
1846
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1842
1847
  } | undefined;
1843
1848
  allowChangePassword?: boolean;
1844
1849
  editablepartition?: boolean;
@@ -1857,7 +1862,7 @@ export declare class NavbarTabsComponent {
1857
1862
  userProfile?: {
1858
1863
  enabled?: boolean;
1859
1864
  data?: string[];
1860
- customData?: string[];
1865
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1861
1866
  };
1862
1867
  previewMultiConversion?: boolean;
1863
1868
  persistFiltersAcrossTabs?: boolean;
@@ -1883,7 +1888,7 @@ export declare class NavbarTabsComponent {
1883
1888
  private: string;
1884
1889
  public: string;
1885
1890
  };
1886
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
1891
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
1887
1892
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
1888
1893
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
1889
1894
  allowEmptySearch: (queryName: string) => boolean;
@@ -1932,7 +1937,7 @@ export declare class NavbarTabsComponent {
1932
1937
  sources?: import("@sinequa/atomic-angular").CSources;
1933
1938
  features?: {
1934
1939
  [key: string]: boolean | {
1935
- [key: string]: string | boolean | string[] | undefined;
1940
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1936
1941
  } | undefined;
1937
1942
  allowChangePassword?: boolean;
1938
1943
  editablepartition?: boolean;
@@ -1951,7 +1956,7 @@ export declare class NavbarTabsComponent {
1951
1956
  userProfile?: {
1952
1957
  enabled?: boolean;
1953
1958
  data?: string[];
1954
- customData?: string[];
1959
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1955
1960
  };
1956
1961
  previewMultiConversion?: boolean;
1957
1962
  persistFiltersAcrossTabs?: boolean;
@@ -1974,7 +1979,7 @@ export declare class NavbarTabsComponent {
1974
1979
  };
1975
1980
  features?: {
1976
1981
  [key: string]: boolean | {
1977
- [key: string]: string | boolean | string[] | undefined;
1982
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
1978
1983
  } | undefined;
1979
1984
  allowChangePassword?: boolean;
1980
1985
  editablepartition?: boolean;
@@ -1993,7 +1998,7 @@ export declare class NavbarTabsComponent {
1993
1998
  userProfile?: {
1994
1999
  enabled?: boolean;
1995
2000
  data?: string[];
1996
- customData?: string[];
2001
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
1997
2002
  };
1998
2003
  previewMultiConversion?: boolean;
1999
2004
  persistFiltersAcrossTabs?: boolean;
@@ -2341,7 +2346,7 @@ export declare const AppStore: import("@angular/core").Type<{
2341
2346
  sources?: CSources;
2342
2347
  features?: {
2343
2348
  [key: string]: boolean | {
2344
- [key: string]: string | boolean | string[] | undefined;
2349
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2345
2350
  } | undefined;
2346
2351
  allowChangePassword?: boolean;
2347
2352
  editablepartition?: boolean;
@@ -2360,7 +2365,7 @@ export declare const AppStore: import("@angular/core").Type<{
2360
2365
  userProfile?: {
2361
2366
  enabled?: boolean;
2362
2367
  data?: string[];
2363
- customData?: string[];
2368
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2364
2369
  };
2365
2370
  previewMultiConversion?: boolean;
2366
2371
  persistFiltersAcrossTabs?: boolean;
@@ -2376,24 +2381,14 @@ export declare const AppStore: import("@angular/core").Type<{
2376
2381
  sidebar?: string;
2377
2382
  };
2378
2383
  dark?: {
2379
- small?
2380
- /**
2381
- * Sets the store from an app configuration already in hand, and builds the column map. What
2382
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2383
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2384
- */
2385
- /**
2386
- * Sets the store from an app configuration already in hand, and builds the column map. What
2387
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2388
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2389
- */ : string;
2384
+ small?: string;
2390
2385
  large?: string;
2391
2386
  sidebar?: string;
2392
2387
  };
2393
2388
  };
2394
2389
  features?: {
2395
2390
  [key: string]: boolean | {
2396
- [key: string]: string | boolean | string[] | undefined;
2391
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2397
2392
  } | undefined;
2398
2393
  allowChangePassword?: boolean;
2399
2394
  editablepartition?: boolean;
@@ -2412,7 +2407,7 @@ export declare const AppStore: import("@angular/core").Type<{
2412
2407
  userProfile?: {
2413
2408
  enabled?: boolean;
2414
2409
  data?: string[];
2415
- customData?: string[];
2410
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2416
2411
  };
2417
2412
  previewMultiConversion?: boolean;
2418
2413
  persistFiltersAcrossTabs?: boolean;
@@ -2450,24 +2445,14 @@ export declare const AppStore: import("@angular/core").Type<{
2450
2445
  sidebar?: string;
2451
2446
  };
2452
2447
  dark?: {
2453
- small?
2454
- /**
2455
- * Sets the store from an app configuration already in hand, and builds the column map. What
2456
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2457
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2458
- */
2459
- /**
2460
- * Sets the store from an app configuration already in hand, and builds the column map. What
2461
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2462
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2463
- */ : string;
2448
+ small?: string;
2464
2449
  large?: string;
2465
2450
  sidebar?: string;
2466
2451
  };
2467
2452
  };
2468
2453
  features?: {
2469
2454
  [key: string]: boolean | {
2470
- [key: string]: string | boolean | string[] | undefined;
2455
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2471
2456
  } | undefined;
2472
2457
  allowChangePassword?: boolean;
2473
2458
  editablepartition?: boolean;
@@ -2486,7 +2471,7 @@ export declare const AppStore: import("@angular/core").Type<{
2486
2471
  userProfile?: {
2487
2472
  enabled?: boolean;
2488
2473
  data?: string[];
2489
- customData?: string[];
2474
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2490
2475
  };
2491
2476
  previewMultiConversion?: boolean;
2492
2477
  persistFiltersAcrossTabs?: boolean;
@@ -2506,7 +2491,7 @@ export declare const AppStore: import("@angular/core").Type<{
2506
2491
  private: string;
2507
2492
  public: string;
2508
2493
  };
2509
- getQueryByName: (name: string) => CCQuery | undefined;
2494
+ getQueryByName: (name: string | undefined) => CCQuery | undefined;
2510
2495
  getQueryByIndex: (index: number) => CCQuery | undefined;
2511
2496
  getDefaultQuery: () => CCQuery | undefined;
2512
2497
  allowEmptySearch: (queryName: string) => boolean;
@@ -2555,7 +2540,7 @@ export declare const AppStore: import("@angular/core").Type<{
2555
2540
  sources?: CSources;
2556
2541
  features?: {
2557
2542
  [key: string]: boolean | {
2558
- [key: string]: string | boolean | string[] | undefined;
2543
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2559
2544
  } | undefined;
2560
2545
  allowChangePassword?: boolean;
2561
2546
  editablepartition?: boolean;
@@ -2574,7 +2559,7 @@ export declare const AppStore: import("@angular/core").Type<{
2574
2559
  userProfile?: {
2575
2560
  enabled?: boolean;
2576
2561
  data?: string[];
2577
- customData?: string[];
2562
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2578
2563
  };
2579
2564
  previewMultiConversion?: boolean;
2580
2565
  persistFiltersAcrossTabs?: boolean;
@@ -2590,24 +2575,14 @@ export declare const AppStore: import("@angular/core").Type<{
2590
2575
  sidebar?: string;
2591
2576
  };
2592
2577
  dark?: {
2593
- small?
2594
- /**
2595
- * Sets the store from an app configuration already in hand, and builds the column map. What
2596
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2597
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2598
- */
2599
- /**
2600
- * Sets the store from an app configuration already in hand, and builds the column map. What
2601
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2602
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2603
- */ : string;
2578
+ small?: string;
2604
2579
  large?: string;
2605
2580
  sidebar?: string;
2606
2581
  };
2607
2582
  };
2608
2583
  features?: {
2609
2584
  [key: string]: boolean | {
2610
- [key: string]: string | boolean | string[] | undefined;
2585
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2611
2586
  } | undefined;
2612
2587
  allowChangePassword?: boolean;
2613
2588
  editablepartition?: boolean;
@@ -2626,7 +2601,7 @@ export declare const AppStore: import("@angular/core").Type<{
2626
2601
  userProfile?: {
2627
2602
  enabled?: boolean;
2628
2603
  data?: string[];
2629
- customData?: string[];
2604
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2630
2605
  };
2631
2606
  previewMultiConversion?: boolean;
2632
2607
  persistFiltersAcrossTabs?: boolean;
@@ -2686,7 +2661,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2686
2661
  sources?: CSources;
2687
2662
  features?: {
2688
2663
  [key: string]: boolean | {
2689
- [key: string]: string | boolean | string[] | undefined;
2664
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2690
2665
  } | undefined;
2691
2666
  allowChangePassword?: boolean;
2692
2667
  editablepartition?: boolean;
@@ -2705,7 +2680,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2705
2680
  userProfile?: {
2706
2681
  enabled?: boolean;
2707
2682
  data?: string[];
2708
- customData?: string[];
2683
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2709
2684
  };
2710
2685
  previewMultiConversion?: boolean;
2711
2686
  persistFiltersAcrossTabs?: boolean;
@@ -2721,24 +2696,14 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2721
2696
  sidebar?: string;
2722
2697
  };
2723
2698
  dark?: {
2724
- small?
2725
- /**
2726
- * Sets the store from an app configuration already in hand, and builds the column map. What
2727
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2728
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2729
- */
2730
- /**
2731
- * Sets the store from an app configuration already in hand, and builds the column map. What
2732
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2733
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2734
- */ : string;
2699
+ small?: string;
2735
2700
  large?: string;
2736
2701
  sidebar?: string;
2737
2702
  };
2738
2703
  };
2739
2704
  features?: {
2740
2705
  [key: string]: boolean | {
2741
- [key: string]: string | boolean | string[] | undefined;
2706
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2742
2707
  } | undefined;
2743
2708
  allowChangePassword?: boolean;
2744
2709
  editablepartition?: boolean;
@@ -2757,7 +2722,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2757
2722
  userProfile?: {
2758
2723
  enabled?: boolean;
2759
2724
  data?: string[];
2760
- customData?: string[];
2725
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2761
2726
  };
2762
2727
  previewMultiConversion?: boolean;
2763
2728
  persistFiltersAcrossTabs?: boolean;
@@ -2797,24 +2762,14 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2797
2762
  sidebar?: string;
2798
2763
  };
2799
2764
  dark?: {
2800
- small?
2801
- /**
2802
- * Sets the store from an app configuration already in hand, and builds the column map. What
2803
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2804
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2805
- */
2806
- /**
2807
- * Sets the store from an app configuration already in hand, and builds the column map. What
2808
- * `initialize()` does after its fetch — separate so that a start-up that fetched the
2809
- * configuration elsewhere (in parallel, or from an aggregating endpoint) does not fetch it twice.
2810
- */ : string;
2765
+ small?: string;
2811
2766
  large?: string;
2812
2767
  sidebar?: string;
2813
2768
  };
2814
2769
  };
2815
2770
  features?: {
2816
2771
  [key: string]: boolean | {
2817
- [key: string]: string | boolean | string[] | undefined;
2772
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
2818
2773
  } | undefined;
2819
2774
  allowChangePassword?: boolean;
2820
2775
  editablepartition?: boolean;
@@ -2833,7 +2788,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2833
2788
  userProfile?: {
2834
2789
  enabled?: boolean;
2835
2790
  data?: string[];
2836
- customData?: string[];
2791
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
2837
2792
  };
2838
2793
  previewMultiConversion?: boolean;
2839
2794
  persistFiltersAcrossTabs?: boolean;
@@ -2855,7 +2810,7 @@ export declare function withAppFeatures(): import("@ngrx/signals").SignalStoreFe
2855
2810
  private: string;
2856
2811
  public: string;
2857
2812
  };
2858
- getQueryByName: (name: string) => CCQuery | undefined;
2813
+ getQueryByName: (name: string | undefined) => CCQuery | undefined;
2859
2814
  getQueryByIndex: (index: number) => CCQuery | undefined;
2860
2815
  getDefaultQuery: () => CCQuery | undefined;
2861
2816
  allowEmptySearch: (queryName: string) => boolean;
@@ -3566,7 +3521,7 @@ export declare class PreviewContentComponent {
3566
3521
  sources?: import("@sinequa/atomic-angular").CSources;
3567
3522
  features?: {
3568
3523
  [key: string]: boolean | {
3569
- [key: string]: string | boolean | string[] | undefined;
3524
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3570
3525
  } | undefined;
3571
3526
  allowChangePassword?: boolean;
3572
3527
  editablepartition?: boolean;
@@ -3585,7 +3540,7 @@ export declare class PreviewContentComponent {
3585
3540
  userProfile?: {
3586
3541
  enabled?: boolean;
3587
3542
  data?: string[];
3588
- customData?: string[];
3543
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3589
3544
  };
3590
3545
  previewMultiConversion?: boolean;
3591
3546
  persistFiltersAcrossTabs?: boolean;
@@ -3608,7 +3563,7 @@ export declare class PreviewContentComponent {
3608
3563
  };
3609
3564
  features?: {
3610
3565
  [key: string]: boolean | {
3611
- [key: string]: string | boolean | string[] | undefined;
3566
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3612
3567
  } | undefined;
3613
3568
  allowChangePassword?: boolean;
3614
3569
  editablepartition?: boolean;
@@ -3627,7 +3582,7 @@ export declare class PreviewContentComponent {
3627
3582
  userProfile?: {
3628
3583
  enabled?: boolean;
3629
3584
  data?: string[];
3630
- customData?: string[];
3585
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3631
3586
  };
3632
3587
  previewMultiConversion?: boolean;
3633
3588
  persistFiltersAcrossTabs?: boolean;
@@ -3672,7 +3627,7 @@ export declare class PreviewContentComponent {
3672
3627
  };
3673
3628
  features?: {
3674
3629
  [key: string]: boolean | {
3675
- [key: string]: string | boolean | string[] | undefined;
3630
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3676
3631
  } | undefined;
3677
3632
  allowChangePassword?: boolean;
3678
3633
  editablepartition?: boolean;
@@ -3691,7 +3646,7 @@ export declare class PreviewContentComponent {
3691
3646
  userProfile?: {
3692
3647
  enabled?: boolean;
3693
3648
  data?: string[];
3694
- customData?: string[];
3649
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3695
3650
  };
3696
3651
  previewMultiConversion?: boolean;
3697
3652
  persistFiltersAcrossTabs?: boolean;
@@ -3717,7 +3672,7 @@ export declare class PreviewContentComponent {
3717
3672
  private: string;
3718
3673
  public: string;
3719
3674
  };
3720
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
3675
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
3721
3676
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
3722
3677
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
3723
3678
  allowEmptySearch: (queryName: string) => boolean;
@@ -3766,7 +3721,7 @@ export declare class PreviewContentComponent {
3766
3721
  sources?: import("@sinequa/atomic-angular").CSources;
3767
3722
  features?: {
3768
3723
  [key: string]: boolean | {
3769
- [key: string]: string | boolean | string[] | undefined;
3724
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3770
3725
  } | undefined;
3771
3726
  allowChangePassword?: boolean;
3772
3727
  editablepartition?: boolean;
@@ -3785,7 +3740,7 @@ export declare class PreviewContentComponent {
3785
3740
  userProfile?: {
3786
3741
  enabled?: boolean;
3787
3742
  data?: string[];
3788
- customData?: string[];
3743
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3789
3744
  };
3790
3745
  previewMultiConversion?: boolean;
3791
3746
  persistFiltersAcrossTabs?: boolean;
@@ -3808,7 +3763,7 @@ export declare class PreviewContentComponent {
3808
3763
  };
3809
3764
  features?: {
3810
3765
  [key: string]: boolean | {
3811
- [key: string]: string | boolean | string[] | undefined;
3766
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
3812
3767
  } | undefined;
3813
3768
  allowChangePassword?: boolean;
3814
3769
  editablepartition?: boolean;
@@ -3827,7 +3782,7 @@ export declare class PreviewContentComponent {
3827
3782
  userProfile?: {
3828
3783
  enabled?: boolean;
3829
3784
  data?: string[];
3830
- customData?: string[];
3785
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
3831
3786
  };
3832
3787
  previewMultiConversion?: boolean;
3833
3788
  persistFiltersAcrossTabs?: boolean;
@@ -4136,6 +4091,15 @@ export declare class QueryService {
4136
4091
  */
4137
4092
  readonly failure: import("@angular/core").Signal<import("@sinequa/atomic").ApiError | undefined>;
4138
4093
  audit?: AuditEvents;
4094
+ /**
4095
+ * Warns the user that an empty search is not allowed.
4096
+ *
4097
+ * This service renders nothing, so nothing ever loads the `searches` scope for it, and
4098
+ * `translate()` only reads what is already loaded: it answered the raw key `searches.emptySearch`.
4099
+ * `selectTranslate()` loads the scope first (the key is then relative to it). The text falls back to
4100
+ * English if the scope file cannot be loaded (not extracted into the application, network error).
4101
+ */
4102
+ private warnEmptySearch;
4139
4103
  /**
4140
4104
  * Performs a search query.
4141
4105
  *
@@ -4214,7 +4178,7 @@ export declare class AggregationsService {
4214
4178
  sources?: import("@sinequa/atomic-angular").CSources;
4215
4179
  features?: {
4216
4180
  [key: string]: boolean | {
4217
- [key: string]: string | boolean | string[] | undefined;
4181
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4218
4182
  } | undefined;
4219
4183
  allowChangePassword?: boolean;
4220
4184
  editablepartition?: boolean;
@@ -4233,7 +4197,7 @@ export declare class AggregationsService {
4233
4197
  userProfile?: {
4234
4198
  enabled?: boolean;
4235
4199
  data?: string[];
4236
- customData?: string[];
4200
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4237
4201
  };
4238
4202
  previewMultiConversion?: boolean;
4239
4203
  persistFiltersAcrossTabs?: boolean;
@@ -4256,7 +4220,7 @@ export declare class AggregationsService {
4256
4220
  };
4257
4221
  features?: {
4258
4222
  [key: string]: boolean | {
4259
- [key: string]: string | boolean | string[] | undefined;
4223
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4260
4224
  } | undefined;
4261
4225
  allowChangePassword?: boolean;
4262
4226
  editablepartition?: boolean;
@@ -4275,7 +4239,7 @@ export declare class AggregationsService {
4275
4239
  userProfile?: {
4276
4240
  enabled?: boolean;
4277
4241
  data?: string[];
4278
- customData?: string[];
4242
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4279
4243
  };
4280
4244
  previewMultiConversion?: boolean;
4281
4245
  persistFiltersAcrossTabs?: boolean;
@@ -4320,7 +4284,7 @@ export declare class AggregationsService {
4320
4284
  };
4321
4285
  features?: {
4322
4286
  [key: string]: boolean | {
4323
- [key: string]: string | boolean | string[] | undefined;
4287
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4324
4288
  } | undefined;
4325
4289
  allowChangePassword?: boolean;
4326
4290
  editablepartition?: boolean;
@@ -4339,7 +4303,7 @@ export declare class AggregationsService {
4339
4303
  userProfile?: {
4340
4304
  enabled?: boolean;
4341
4305
  data?: string[];
4342
- customData?: string[];
4306
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4343
4307
  };
4344
4308
  previewMultiConversion?: boolean;
4345
4309
  persistFiltersAcrossTabs?: boolean;
@@ -4365,7 +4329,7 @@ export declare class AggregationsService {
4365
4329
  private: string;
4366
4330
  public: string;
4367
4331
  };
4368
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
4332
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
4369
4333
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
4370
4334
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
4371
4335
  allowEmptySearch: (queryName: string) => boolean;
@@ -4414,7 +4378,7 @@ export declare class AggregationsService {
4414
4378
  sources?: import("@sinequa/atomic-angular").CSources;
4415
4379
  features?: {
4416
4380
  [key: string]: boolean | {
4417
- [key: string]: string | boolean | string[] | undefined;
4381
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4418
4382
  } | undefined;
4419
4383
  allowChangePassword?: boolean;
4420
4384
  editablepartition?: boolean;
@@ -4433,7 +4397,7 @@ export declare class AggregationsService {
4433
4397
  userProfile?: {
4434
4398
  enabled?: boolean;
4435
4399
  data?: string[];
4436
- customData?: string[];
4400
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4437
4401
  };
4438
4402
  previewMultiConversion?: boolean;
4439
4403
  persistFiltersAcrossTabs?: boolean;
@@ -4456,7 +4420,7 @@ export declare class AggregationsService {
4456
4420
  };
4457
4421
  features?: {
4458
4422
  [key: string]: boolean | {
4459
- [key: string]: string | boolean | string[] | undefined;
4423
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4460
4424
  } | undefined;
4461
4425
  allowChangePassword?: boolean;
4462
4426
  editablepartition?: boolean;
@@ -4475,7 +4439,7 @@ export declare class AggregationsService {
4475
4439
  userProfile?: {
4476
4440
  enabled?: boolean;
4477
4441
  data?: string[];
4478
- customData?: string[];
4442
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4479
4443
  };
4480
4444
  previewMultiConversion?: boolean;
4481
4445
  persistFiltersAcrossTabs?: boolean;
@@ -4927,7 +4891,7 @@ export declare class ApplicationService {
4927
4891
  sources?: import("@sinequa/atomic-angular").CSources;
4928
4892
  features?: {
4929
4893
  [key: string]: boolean | {
4930
- [key: string]: string | boolean | string[] | undefined;
4894
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4931
4895
  } | undefined;
4932
4896
  allowChangePassword?: boolean;
4933
4897
  editablepartition?: boolean;
@@ -4946,7 +4910,7 @@ export declare class ApplicationService {
4946
4910
  userProfile?: {
4947
4911
  enabled?: boolean;
4948
4912
  data?: string[];
4949
- customData?: string[];
4913
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4950
4914
  };
4951
4915
  previewMultiConversion?: boolean;
4952
4916
  persistFiltersAcrossTabs?: boolean;
@@ -4969,7 +4933,7 @@ export declare class ApplicationService {
4969
4933
  };
4970
4934
  features?: {
4971
4935
  [key: string]: boolean | {
4972
- [key: string]: string | boolean | string[] | undefined;
4936
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
4973
4937
  } | undefined;
4974
4938
  allowChangePassword?: boolean;
4975
4939
  editablepartition?: boolean;
@@ -4988,7 +4952,7 @@ export declare class ApplicationService {
4988
4952
  userProfile?: {
4989
4953
  enabled?: boolean;
4990
4954
  data?: string[];
4991
- customData?: string[];
4955
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
4992
4956
  };
4993
4957
  previewMultiConversion?: boolean;
4994
4958
  persistFiltersAcrossTabs?: boolean;
@@ -5033,7 +4997,7 @@ export declare class ApplicationService {
5033
4997
  };
5034
4998
  features?: {
5035
4999
  [key: string]: boolean | {
5036
- [key: string]: string | boolean | string[] | undefined;
5000
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5037
5001
  } | undefined;
5038
5002
  allowChangePassword?: boolean;
5039
5003
  editablepartition?: boolean;
@@ -5052,7 +5016,7 @@ export declare class ApplicationService {
5052
5016
  userProfile?: {
5053
5017
  enabled?: boolean;
5054
5018
  data?: string[];
5055
- customData?: string[];
5019
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5056
5020
  };
5057
5021
  previewMultiConversion?: boolean;
5058
5022
  persistFiltersAcrossTabs?: boolean;
@@ -5078,7 +5042,7 @@ export declare class ApplicationService {
5078
5042
  private: string;
5079
5043
  public: string;
5080
5044
  };
5081
- getQueryByName: (name: string) => CCQuery | undefined;
5045
+ getQueryByName: (name: string | undefined) => CCQuery | undefined;
5082
5046
  getQueryByIndex: (index: number) => CCQuery | undefined;
5083
5047
  getDefaultQuery: () => CCQuery | undefined;
5084
5048
  allowEmptySearch: (queryName: string) => boolean;
@@ -5127,7 +5091,7 @@ export declare class ApplicationService {
5127
5091
  sources?: import("@sinequa/atomic-angular").CSources;
5128
5092
  features?: {
5129
5093
  [key: string]: boolean | {
5130
- [key: string]: string | boolean | string[] | undefined;
5094
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5131
5095
  } | undefined;
5132
5096
  allowChangePassword?: boolean;
5133
5097
  editablepartition?: boolean;
@@ -5146,7 +5110,7 @@ export declare class ApplicationService {
5146
5110
  userProfile?: {
5147
5111
  enabled?: boolean;
5148
5112
  data?: string[];
5149
- customData?: string[];
5113
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5150
5114
  };
5151
5115
  previewMultiConversion?: boolean;
5152
5116
  persistFiltersAcrossTabs?: boolean;
@@ -5169,7 +5133,7 @@ export declare class ApplicationService {
5169
5133
  };
5170
5134
  features?: {
5171
5135
  [key: string]: boolean | {
5172
- [key: string]: string | boolean | string[] | undefined;
5136
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5173
5137
  } | undefined;
5174
5138
  allowChangePassword?: boolean;
5175
5139
  editablepartition?: boolean;
@@ -5188,7 +5152,7 @@ export declare class ApplicationService {
5188
5152
  userProfile?: {
5189
5153
  enabled?: boolean;
5190
5154
  data?: string[];
5191
- customData?: string[];
5155
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5192
5156
  };
5193
5157
  previewMultiConversion?: boolean;
5194
5158
  persistFiltersAcrossTabs?: boolean;
@@ -5483,7 +5447,7 @@ export declare class AuditService {
5483
5447
  sources?: import("@sinequa/atomic-angular").CSources;
5484
5448
  features?: {
5485
5449
  [key: string]: boolean | {
5486
- [key: string]: string | boolean | string[] | undefined;
5450
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5487
5451
  } | undefined;
5488
5452
  allowChangePassword?: boolean;
5489
5453
  editablepartition?: boolean;
@@ -5502,7 +5466,7 @@ export declare class AuditService {
5502
5466
  userProfile?: {
5503
5467
  enabled?: boolean;
5504
5468
  data?: string[];
5505
- customData?: string[];
5469
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5506
5470
  };
5507
5471
  previewMultiConversion?: boolean;
5508
5472
  persistFiltersAcrossTabs?: boolean;
@@ -5525,7 +5489,7 @@ export declare class AuditService {
5525
5489
  };
5526
5490
  features?: {
5527
5491
  [key: string]: boolean | {
5528
- [key: string]: string | boolean | string[] | undefined;
5492
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5529
5493
  } | undefined;
5530
5494
  allowChangePassword?: boolean;
5531
5495
  editablepartition?: boolean;
@@ -5544,7 +5508,7 @@ export declare class AuditService {
5544
5508
  userProfile?: {
5545
5509
  enabled?: boolean;
5546
5510
  data?: string[];
5547
- customData?: string[];
5511
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5548
5512
  };
5549
5513
  previewMultiConversion?: boolean;
5550
5514
  persistFiltersAcrossTabs?: boolean;
@@ -5589,7 +5553,7 @@ export declare class AuditService {
5589
5553
  };
5590
5554
  features?: {
5591
5555
  [key: string]: boolean | {
5592
- [key: string]: string | boolean | string[] | undefined;
5556
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5593
5557
  } | undefined;
5594
5558
  allowChangePassword?: boolean;
5595
5559
  editablepartition?: boolean;
@@ -5608,7 +5572,7 @@ export declare class AuditService {
5608
5572
  userProfile?: {
5609
5573
  enabled?: boolean;
5610
5574
  data?: string[];
5611
- customData?: string[];
5575
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5612
5576
  };
5613
5577
  previewMultiConversion?: boolean;
5614
5578
  persistFiltersAcrossTabs?: boolean;
@@ -5634,7 +5598,7 @@ export declare class AuditService {
5634
5598
  private: string;
5635
5599
  public: string;
5636
5600
  };
5637
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
5601
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
5638
5602
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
5639
5603
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
5640
5604
  allowEmptySearch: (queryName: string) => boolean;
@@ -5683,7 +5647,7 @@ export declare class AuditService {
5683
5647
  sources?: import("@sinequa/atomic-angular").CSources;
5684
5648
  features?: {
5685
5649
  [key: string]: boolean | {
5686
- [key: string]: string | boolean | string[] | undefined;
5650
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5687
5651
  } | undefined;
5688
5652
  allowChangePassword?: boolean;
5689
5653
  editablepartition?: boolean;
@@ -5702,7 +5666,7 @@ export declare class AuditService {
5702
5666
  userProfile?: {
5703
5667
  enabled?: boolean;
5704
5668
  data?: string[];
5705
- customData?: string[];
5669
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5706
5670
  };
5707
5671
  previewMultiConversion?: boolean;
5708
5672
  persistFiltersAcrossTabs?: boolean;
@@ -5725,7 +5689,7 @@ export declare class AuditService {
5725
5689
  };
5726
5690
  features?: {
5727
5691
  [key: string]: boolean | {
5728
- [key: string]: string | boolean | string[] | undefined;
5692
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5729
5693
  } | undefined;
5730
5694
  allowChangePassword?: boolean;
5731
5695
  editablepartition?: boolean;
@@ -5744,7 +5708,7 @@ export declare class AuditService {
5744
5708
  userProfile?: {
5745
5709
  enabled?: boolean;
5746
5710
  data?: string[];
5747
- customData?: string[];
5711
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5748
5712
  };
5749
5713
  previewMultiConversion?: boolean;
5750
5714
  persistFiltersAcrossTabs?: boolean;
@@ -5897,7 +5861,7 @@ export declare class AutocompleteService {
5897
5861
  sources?: import("@sinequa/atomic-angular").CSources;
5898
5862
  features?: {
5899
5863
  [key: string]: boolean | {
5900
- [key: string]: string | boolean | string[] | undefined;
5864
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5901
5865
  } | undefined;
5902
5866
  allowChangePassword?: boolean;
5903
5867
  editablepartition?: boolean;
@@ -5916,7 +5880,7 @@ export declare class AutocompleteService {
5916
5880
  userProfile?: {
5917
5881
  enabled?: boolean;
5918
5882
  data?: string[];
5919
- customData?: string[];
5883
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5920
5884
  };
5921
5885
  previewMultiConversion?: boolean;
5922
5886
  persistFiltersAcrossTabs?: boolean;
@@ -5939,7 +5903,7 @@ export declare class AutocompleteService {
5939
5903
  };
5940
5904
  features?: {
5941
5905
  [key: string]: boolean | {
5942
- [key: string]: string | boolean | string[] | undefined;
5906
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
5943
5907
  } | undefined;
5944
5908
  allowChangePassword?: boolean;
5945
5909
  editablepartition?: boolean;
@@ -5958,7 +5922,7 @@ export declare class AutocompleteService {
5958
5922
  userProfile?: {
5959
5923
  enabled?: boolean;
5960
5924
  data?: string[];
5961
- customData?: string[];
5925
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
5962
5926
  };
5963
5927
  previewMultiConversion?: boolean;
5964
5928
  persistFiltersAcrossTabs?: boolean;
@@ -6003,7 +5967,7 @@ export declare class AutocompleteService {
6003
5967
  };
6004
5968
  features?: {
6005
5969
  [key: string]: boolean | {
6006
- [key: string]: string | boolean | string[] | undefined;
5970
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6007
5971
  } | undefined;
6008
5972
  allowChangePassword?: boolean;
6009
5973
  editablepartition?: boolean;
@@ -6022,7 +5986,7 @@ export declare class AutocompleteService {
6022
5986
  userProfile?: {
6023
5987
  enabled?: boolean;
6024
5988
  data?: string[];
6025
- customData?: string[];
5989
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6026
5990
  };
6027
5991
  previewMultiConversion?: boolean;
6028
5992
  persistFiltersAcrossTabs?: boolean;
@@ -6048,7 +6012,7 @@ export declare class AutocompleteService {
6048
6012
  private: string;
6049
6013
  public: string;
6050
6014
  };
6051
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
6015
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
6052
6016
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
6053
6017
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
6054
6018
  allowEmptySearch: (queryName: string) => boolean;
@@ -6097,7 +6061,7 @@ export declare class AutocompleteService {
6097
6061
  sources?: import("@sinequa/atomic-angular").CSources;
6098
6062
  features?: {
6099
6063
  [key: string]: boolean | {
6100
- [key: string]: string | boolean | string[] | undefined;
6064
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6101
6065
  } | undefined;
6102
6066
  allowChangePassword?: boolean;
6103
6067
  editablepartition?: boolean;
@@ -6116,7 +6080,7 @@ export declare class AutocompleteService {
6116
6080
  userProfile?: {
6117
6081
  enabled?: boolean;
6118
6082
  data?: string[];
6119
- customData?: string[];
6083
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6120
6084
  };
6121
6085
  previewMultiConversion?: boolean;
6122
6086
  persistFiltersAcrossTabs?: boolean;
@@ -6139,7 +6103,7 @@ export declare class AutocompleteService {
6139
6103
  };
6140
6104
  features?: {
6141
6105
  [key: string]: boolean | {
6142
- [key: string]: string | boolean | string[] | undefined;
6106
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6143
6107
  } | undefined;
6144
6108
  allowChangePassword?: boolean;
6145
6109
  editablepartition?: boolean;
@@ -6158,7 +6122,7 @@ export declare class AutocompleteService {
6158
6122
  userProfile?: {
6159
6123
  enabled?: boolean;
6160
6124
  data?: string[];
6161
- customData?: string[];
6125
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6162
6126
  };
6163
6127
  previewMultiConversion?: boolean;
6164
6128
  persistFiltersAcrossTabs?: boolean;
@@ -6920,7 +6884,7 @@ export declare class PreviewService {
6920
6884
  sources?: import("@sinequa/atomic-angular").CSources;
6921
6885
  features?: {
6922
6886
  [key: string]: boolean | {
6923
- [key: string]: string | boolean | string[] | undefined;
6887
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6924
6888
  } | undefined;
6925
6889
  allowChangePassword?: boolean;
6926
6890
  editablepartition?: boolean;
@@ -6939,7 +6903,7 @@ export declare class PreviewService {
6939
6903
  userProfile?: {
6940
6904
  enabled?: boolean;
6941
6905
  data?: string[];
6942
- customData?: string[];
6906
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6943
6907
  };
6944
6908
  previewMultiConversion?: boolean;
6945
6909
  persistFiltersAcrossTabs?: boolean;
@@ -6962,7 +6926,7 @@ export declare class PreviewService {
6962
6926
  };
6963
6927
  features?: {
6964
6928
  [key: string]: boolean | {
6965
- [key: string]: string | boolean | string[] | undefined;
6929
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
6966
6930
  } | undefined;
6967
6931
  allowChangePassword?: boolean;
6968
6932
  editablepartition?: boolean;
@@ -6981,7 +6945,7 @@ export declare class PreviewService {
6981
6945
  userProfile?: {
6982
6946
  enabled?: boolean;
6983
6947
  data?: string[];
6984
- customData?: string[];
6948
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
6985
6949
  };
6986
6950
  previewMultiConversion?: boolean;
6987
6951
  persistFiltersAcrossTabs?: boolean;
@@ -7026,7 +6990,7 @@ export declare class PreviewService {
7026
6990
  };
7027
6991
  features?: {
7028
6992
  [key: string]: boolean | {
7029
- [key: string]: string | boolean | string[] | undefined;
6993
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
7030
6994
  } | undefined;
7031
6995
  allowChangePassword?: boolean;
7032
6996
  editablepartition?: boolean;
@@ -7045,7 +7009,7 @@ export declare class PreviewService {
7045
7009
  userProfile?: {
7046
7010
  enabled?: boolean;
7047
7011
  data?: string[];
7048
- customData?: string[];
7012
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
7049
7013
  };
7050
7014
  previewMultiConversion?: boolean;
7051
7015
  persistFiltersAcrossTabs?: boolean;
@@ -7071,7 +7035,7 @@ export declare class PreviewService {
7071
7035
  private: string;
7072
7036
  public: string;
7073
7037
  };
7074
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
7038
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
7075
7039
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
7076
7040
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
7077
7041
  allowEmptySearch: (queryName: string) => boolean;
@@ -7120,7 +7084,7 @@ export declare class PreviewService {
7120
7084
  sources?: import("@sinequa/atomic-angular").CSources;
7121
7085
  features?: {
7122
7086
  [key: string]: boolean | {
7123
- [key: string]: string | boolean | string[] | undefined;
7087
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
7124
7088
  } | undefined;
7125
7089
  allowChangePassword?: boolean;
7126
7090
  editablepartition?: boolean;
@@ -7139,7 +7103,7 @@ export declare class PreviewService {
7139
7103
  userProfile?: {
7140
7104
  enabled?: boolean;
7141
7105
  data?: string[];
7142
- customData?: string[];
7106
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
7143
7107
  };
7144
7108
  previewMultiConversion?: boolean;
7145
7109
  persistFiltersAcrossTabs?: boolean;
@@ -7162,7 +7126,7 @@ export declare class PreviewService {
7162
7126
  };
7163
7127
  features?: {
7164
7128
  [key: string]: boolean | {
7165
- [key: string]: string | boolean | string[] | undefined;
7129
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
7166
7130
  } | undefined;
7167
7131
  allowChangePassword?: boolean;
7168
7132
  editablepartition?: boolean;
@@ -7181,7 +7145,7 @@ export declare class PreviewService {
7181
7145
  userProfile?: {
7182
7146
  enabled?: boolean;
7183
7147
  data?: string[];
7184
- customData?: string[];
7148
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
7185
7149
  };
7186
7150
  previewMultiConversion?: boolean;
7187
7151
  persistFiltersAcrossTabs?: boolean;
@@ -8025,6 +7989,7 @@ export declare class TextChunkService {
8025
7989
  }
8026
7990
  export declare class UserProfileService {
8027
7991
  private readonly client;
7992
+ private readonly injector;
8028
7993
  private readonly resources;
8029
7994
  /**
8030
7995
  * Retrieves the user profile by user ID.
@@ -8122,7 +8087,7 @@ export declare class SortSelectorComponent {
8122
8087
  sources?: import("@sinequa/atomic-angular").CSources;
8123
8088
  features?: {
8124
8089
  [key: string]: boolean | {
8125
- [key: string]: string | boolean | string[] | undefined;
8090
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8126
8091
  } | undefined;
8127
8092
  allowChangePassword?: boolean;
8128
8093
  editablepartition?: boolean;
@@ -8141,7 +8106,7 @@ export declare class SortSelectorComponent {
8141
8106
  userProfile?: {
8142
8107
  enabled?: boolean;
8143
8108
  data?: string[];
8144
- customData?: string[];
8109
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8145
8110
  };
8146
8111
  previewMultiConversion?: boolean;
8147
8112
  persistFiltersAcrossTabs?: boolean;
@@ -8164,7 +8129,7 @@ export declare class SortSelectorComponent {
8164
8129
  };
8165
8130
  features?: {
8166
8131
  [key: string]: boolean | {
8167
- [key: string]: string | boolean | string[] | undefined;
8132
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8168
8133
  } | undefined;
8169
8134
  allowChangePassword?: boolean;
8170
8135
  editablepartition?: boolean;
@@ -8183,7 +8148,7 @@ export declare class SortSelectorComponent {
8183
8148
  userProfile?: {
8184
8149
  enabled?: boolean;
8185
8150
  data?: string[];
8186
- customData?: string[];
8151
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8187
8152
  };
8188
8153
  previewMultiConversion?: boolean;
8189
8154
  persistFiltersAcrossTabs?: boolean;
@@ -8228,7 +8193,7 @@ export declare class SortSelectorComponent {
8228
8193
  };
8229
8194
  features?: {
8230
8195
  [key: string]: boolean | {
8231
- [key: string]: string | boolean | string[] | undefined;
8196
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8232
8197
  } | undefined;
8233
8198
  allowChangePassword?: boolean;
8234
8199
  editablepartition?: boolean;
@@ -8247,7 +8212,7 @@ export declare class SortSelectorComponent {
8247
8212
  userProfile?: {
8248
8213
  enabled?: boolean;
8249
8214
  data?: string[];
8250
- customData?: string[];
8215
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8251
8216
  };
8252
8217
  previewMultiConversion?: boolean;
8253
8218
  persistFiltersAcrossTabs?: boolean;
@@ -8273,7 +8238,7 @@ export declare class SortSelectorComponent {
8273
8238
  private: string;
8274
8239
  public: string;
8275
8240
  };
8276
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
8241
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
8277
8242
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
8278
8243
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
8279
8244
  allowEmptySearch: (queryName: string) => boolean;
@@ -8322,7 +8287,7 @@ export declare class SortSelectorComponent {
8322
8287
  sources?: import("@sinequa/atomic-angular").CSources;
8323
8288
  features?: {
8324
8289
  [key: string]: boolean | {
8325
- [key: string]: string | boolean | string[] | undefined;
8290
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8326
8291
  } | undefined;
8327
8292
  allowChangePassword?: boolean;
8328
8293
  editablepartition?: boolean;
@@ -8341,7 +8306,7 @@ export declare class SortSelectorComponent {
8341
8306
  userProfile?: {
8342
8307
  enabled?: boolean;
8343
8308
  data?: string[];
8344
- customData?: string[];
8309
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8345
8310
  };
8346
8311
  previewMultiConversion?: boolean;
8347
8312
  persistFiltersAcrossTabs?: boolean;
@@ -8364,7 +8329,7 @@ export declare class SortSelectorComponent {
8364
8329
  };
8365
8330
  features?: {
8366
8331
  [key: string]: boolean | {
8367
- [key: string]: string | boolean | string[] | undefined;
8332
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
8368
8333
  } | undefined;
8369
8334
  allowChangePassword?: boolean;
8370
8335
  editablepartition?: boolean;
@@ -8383,7 +8348,7 @@ export declare class SortSelectorComponent {
8383
8348
  userProfile?: {
8384
8349
  enabled?: boolean;
8385
8350
  data?: string[];
8386
- customData?: string[];
8351
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
8387
8352
  };
8388
8353
  previewMultiConversion?: boolean;
8389
8354
  persistFiltersAcrossTabs?: boolean;
@@ -8661,14 +8626,18 @@ export declare class ShowBookmarkDirective {
8661
8626
  /**
8662
8627
  * Represents a directive that enables infinite scrolling behavior.
8663
8628
  * This directive listens for the intersection of the element with the viewport
8664
- * and emits a `loadMore` event when the element becomes visible.
8629
+ * and emits an `onScroll` event each time the element becomes visible.
8630
+ *
8631
+ * The selector is the kebab-case attribute `[infinity-scroll]` (not `infinityScroll`).
8665
8632
  *
8666
8633
  * @remarks
8667
8634
  * This directive requires the `IntersectionObserver` API to be available in the browser.
8635
+ * The observer is created after the first render, so `scroll-options` (an `IntersectionObserverInit`,
8636
+ * default `{ root: null }`) is read **once**, at that moment: changing it afterwards has no effect.
8668
8637
  *
8669
8638
  * @example
8670
8639
  * ```html
8671
- * <div infinityScroll (onScroll)="loadMore()">
8640
+ * <div infinity-scroll [scroll-options]="{ rootMargin: '200px' }" (onScroll)="loadMore()">
8672
8641
  * <!-- Content to be scrolled -->
8673
8642
  * </div>
8674
8643
  * ```
@@ -8677,7 +8646,7 @@ export declare class ShowBookmarkDirective {
8677
8646
  export declare class InfinityScrollDirective implements OnDestroy {
8678
8647
  options: import("@angular/core").InputSignal<IntersectionObserverInit>;
8679
8648
  onScroll: import("@angular/core").OutputEmitterRef<void>;
8680
- private observer;
8649
+ private observer?;
8681
8650
  private readonly el;
8682
8651
  constructor();
8683
8652
  ngOnDestroy(): void;
@@ -9042,7 +9011,7 @@ export declare class SponsoredResultsComponent {
9042
9011
  sources?: import("@sinequa/atomic-angular").CSources;
9043
9012
  features?: {
9044
9013
  [key: string]: boolean | {
9045
- [key: string]: string | boolean | string[] | undefined;
9014
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9046
9015
  } | undefined;
9047
9016
  allowChangePassword?: boolean;
9048
9017
  editablepartition?: boolean;
@@ -9061,7 +9030,7 @@ export declare class SponsoredResultsComponent {
9061
9030
  userProfile?: {
9062
9031
  enabled?: boolean;
9063
9032
  data?: string[];
9064
- customData?: string[];
9033
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9065
9034
  };
9066
9035
  previewMultiConversion?: boolean;
9067
9036
  persistFiltersAcrossTabs?: boolean;
@@ -9084,7 +9053,7 @@ export declare class SponsoredResultsComponent {
9084
9053
  };
9085
9054
  features?: {
9086
9055
  [key: string]: boolean | {
9087
- [key: string]: string | boolean | string[] | undefined;
9056
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9088
9057
  } | undefined;
9089
9058
  allowChangePassword?: boolean;
9090
9059
  editablepartition?: boolean;
@@ -9103,7 +9072,7 @@ export declare class SponsoredResultsComponent {
9103
9072
  userProfile?: {
9104
9073
  enabled?: boolean;
9105
9074
  data?: string[];
9106
- customData?: string[];
9075
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9107
9076
  };
9108
9077
  previewMultiConversion?: boolean;
9109
9078
  persistFiltersAcrossTabs?: boolean;
@@ -9148,7 +9117,7 @@ export declare class SponsoredResultsComponent {
9148
9117
  };
9149
9118
  features?: {
9150
9119
  [key: string]: boolean | {
9151
- [key: string]: string | boolean | string[] | undefined;
9120
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9152
9121
  } | undefined;
9153
9122
  allowChangePassword?: boolean;
9154
9123
  editablepartition?: boolean;
@@ -9167,7 +9136,7 @@ export declare class SponsoredResultsComponent {
9167
9136
  userProfile?: {
9168
9137
  enabled?: boolean;
9169
9138
  data?: string[];
9170
- customData?: string[];
9139
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9171
9140
  };
9172
9141
  previewMultiConversion?: boolean;
9173
9142
  persistFiltersAcrossTabs?: boolean;
@@ -9193,7 +9162,7 @@ export declare class SponsoredResultsComponent {
9193
9162
  private: string;
9194
9163
  public: string;
9195
9164
  };
9196
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
9165
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
9197
9166
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
9198
9167
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
9199
9168
  allowEmptySearch: (queryName: string) => boolean;
@@ -9242,7 +9211,7 @@ export declare class SponsoredResultsComponent {
9242
9211
  sources?: import("@sinequa/atomic-angular").CSources;
9243
9212
  features?: {
9244
9213
  [key: string]: boolean | {
9245
- [key: string]: string | boolean | string[] | undefined;
9214
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9246
9215
  } | undefined;
9247
9216
  allowChangePassword?: boolean;
9248
9217
  editablepartition?: boolean;
@@ -9261,7 +9230,7 @@ export declare class SponsoredResultsComponent {
9261
9230
  userProfile?: {
9262
9231
  enabled?: boolean;
9263
9232
  data?: string[];
9264
- customData?: string[];
9233
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9265
9234
  };
9266
9235
  previewMultiConversion?: boolean;
9267
9236
  persistFiltersAcrossTabs?: boolean;
@@ -9284,7 +9253,7 @@ export declare class SponsoredResultsComponent {
9284
9253
  };
9285
9254
  features?: {
9286
9255
  [key: string]: boolean | {
9287
- [key: string]: string | boolean | string[] | undefined;
9256
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
9288
9257
  } | undefined;
9289
9258
  allowChangePassword?: boolean;
9290
9259
  editablepartition?: boolean;
@@ -9303,7 +9272,7 @@ export declare class SponsoredResultsComponent {
9303
9272
  userProfile?: {
9304
9273
  enabled?: boolean;
9305
9274
  data?: string[];
9306
- customData?: string[];
9275
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
9307
9276
  };
9308
9277
  previewMultiConversion?: boolean;
9309
9278
  persistFiltersAcrossTabs?: boolean;
@@ -11125,20 +11094,76 @@ export declare class ArticleSimilarDocumentsTabPanel {
11125
11094
  "selected": "selected";
11126
11095
  }, never, never, true, never>;
11127
11096
  }
11097
+ /** One piece of the summary: a translation key (translated by the template's pipe) or a ready text. */
11098
+ interface AlertSummaryPart {
11099
+ key?: string;
11100
+ text?: string;
11101
+ }
11102
+ /**
11103
+ * Second line of an alert row: what the alert does, so the list answers "when will I be notified?" without
11104
+ * opening the dialog — « Daily · 09:00 · Mon–Fri ». A suspended alert starts with « Paused ».
11105
+ *
11106
+ * Returns the pieces rather than a sentence: the labels live in the `alerts` translation scope, which loads on
11107
+ * demand, and only the template's `transloco` pipe waits for it. The caller joins the pieces with " · ".
11108
+ *
11109
+ * Tolerant of an alert that lacks `times` or `days`: the piece is left out rather than shown empty.
11110
+ */
11111
+ declare function alertSummary(lang: string, alert: Alert): AlertSummaryPart[];
11112
+ /**
11113
+ * The user's alerts: one row per alert (name, when it fires, an on/off switch), "Create" in the header.
11114
+ *
11115
+ * The rows are reordered by dragging them or with Alt + ↑ / ↓ on a focused row — the gesture is galactik's
11116
+ * `[sortable]`, this component only saves the order it reports. A deletion is applied at once on screen and sent to
11117
+ * the server after `UNDO_DELAY`, unless the user undoes it; it is also sent when the component goes away (the
11118
+ * popover closes).
11119
+ */
11128
11120
  export declare class AlertsComponent {
11129
11121
  floating: PopoverDirective | null;
11130
11122
  private readonly userSettingsStore;
11131
11123
  private readonly injector;
11132
- reordering: import("@angular/core").WritableSignal<boolean>;
11133
- protected alerts: import("@angular/core").Signal<Alert[]>;
11134
- tmpAlerts: Alert[];
11124
+ private readonly transloco;
11125
+ private readonly lang;
11135
11126
  query: Query;
11127
+ protected readonly alerts: import("@angular/core").Signal<Alert[]>;
11128
+ /**
11129
+ * The order on screen. A copy of the store's list (the store edits its own array in place), and ahead of it
11130
+ * while a new order is being saved: a drop shows its result at once instead of after the round trip.
11131
+ */
11132
+ private readonly order;
11133
+ /** Alerts removed from the screen: awaiting the end of the undo delay, or being deleted on the server. */
11134
+ private readonly hidden;
11135
+ /** The alert whose deletion can still be undone. */
11136
+ protected readonly pendingDeletion: import("@angular/core").WritableSignal<Alert | undefined>;
11137
+ private undoTimer;
11138
+ /** The alerts to show, in order — what `[sortable]` reorders. */
11139
+ protected readonly visible: import("@angular/core").Signal<Alert[]>;
11140
+ /** The second line of each row. */
11141
+ private readonly summaries;
11142
+ protected readonly summaryOf: (alert: Alert) => AlertSummaryPart[];
11143
+ /** What a screen reader hears after a keyboard move. */
11144
+ protected readonly announceMove: (alert: Alert, position: number, total: number) => string;
11136
11145
  constructor();
11137
- onClick(index: number): void;
11146
+ /** A click on the switch or the delete button is theirs, not a request to edit the alert. */
11147
+ protected onRowClick(event: Event, alert: Alert): void;
11148
+ /** Enter edits the row only when the row itself has the focus — not when it comes from the switch or the button. */
11149
+ protected onRowEnter(event: Event, alert: Alert): void;
11150
+ private edit;
11138
11151
  createAlert(): void;
11139
- deleteAlert(event: Event, index: number): void;
11140
- reorder(): Promise<void>;
11141
- dropped(drop: CdkDragDrop<Alert[]>): void;
11152
+ /**
11153
+ * What each switch shows while its change is being saved. The switch flips itself on a click and the store
11154
+ * only changes once the save has succeeded: dropping the entry on a failure changes the bound value back,
11155
+ * which is what puts the switch back where it was.
11156
+ */
11157
+ private readonly pendingActive;
11158
+ protected isActive(alert: Alert): boolean;
11159
+ protected toggle(alert: Alert, active: boolean): Promise<void>;
11160
+ protected deleteAlert(alert: Alert): void;
11161
+ protected undoDeletion(): void;
11162
+ /** Sends the pending deletion. The row stays hidden until the store no longer holds the alert. */
11163
+ private commitDeletion;
11164
+ private unhide;
11165
+ /** The new order of the alerts shown. An alert being deleted is not in it: it goes after them, as it is about to leave. */
11166
+ protected saveOrder(shown: Alert[]): Promise<void>;
11142
11167
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertsComponent, never>;
11143
11168
  static ɵcmp: i0.ɵɵComponentDeclaration<AlertsComponent, "Alerts", never, {}, {}, never, never, true, never>;
11144
11169
  }
@@ -11242,6 +11267,10 @@ export declare class AlertDialog {
11242
11267
  readonly alert: import("@angular/core").WritableSignal<Alert | undefined>;
11243
11268
  canUpdateQuery: import("@angular/core").WritableSignal<boolean>;
11244
11269
  updateStatus: import("@angular/core").WritableSignal<"idle" | "updating" | "updated">;
11270
+ /** Why the last save failed — shown in the dialog until the next attempt. */
11271
+ protected readonly saveError: import("@angular/core").WritableSignal<{
11272
+ detail?: string;
11273
+ } | undefined>;
11245
11274
  /** Form model. Replaces the five former scalar signals. */
11246
11275
  readonly alertModel: import("@angular/core").WritableSignal<AlertFormModel>;
11247
11276
  protected readonly alertForm: FieldTree<AlertFormModel, string | number, "writable">;
@@ -11707,7 +11736,6 @@ export declare class BookmarkButtonComponent {
11707
11736
  private readonly route;
11708
11737
  private readonly transloco;
11709
11738
  protected isBookmarked: import("@angular/core").Signal<boolean>;
11710
- protected title: import("@angular/core").Signal<string>;
11711
11739
  bookmark(e: Event): Promise<void>;
11712
11740
  static ɵfac: i0.ɵɵFactoryDeclaration<BookmarkButtonComponent, never>;
11713
11741
  static ɵcmp: i0.ɵɵComponentDeclaration<BookmarkButtonComponent, "bookmark-button, bookmarkbutton, BookmarkButton", never, {
@@ -12471,7 +12499,7 @@ export declare class FeedbackDialogComponent {
12471
12499
  sources?: import("@sinequa/atomic-angular").CSources;
12472
12500
  features?: {
12473
12501
  [key: string]: boolean | {
12474
- [key: string]: string | boolean | string[] | undefined;
12502
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12475
12503
  } | undefined;
12476
12504
  allowChangePassword?: boolean;
12477
12505
  editablepartition?: boolean;
@@ -12490,7 +12518,7 @@ export declare class FeedbackDialogComponent {
12490
12518
  userProfile?: {
12491
12519
  enabled?: boolean;
12492
12520
  data?: string[];
12493
- customData?: string[];
12521
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12494
12522
  };
12495
12523
  previewMultiConversion?: boolean;
12496
12524
  persistFiltersAcrossTabs?: boolean;
@@ -12513,7 +12541,7 @@ export declare class FeedbackDialogComponent {
12513
12541
  };
12514
12542
  features?: {
12515
12543
  [key: string]: boolean | {
12516
- [key: string]: string | boolean | string[] | undefined;
12544
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12517
12545
  } | undefined;
12518
12546
  allowChangePassword?: boolean;
12519
12547
  editablepartition?: boolean;
@@ -12532,7 +12560,7 @@ export declare class FeedbackDialogComponent {
12532
12560
  userProfile?: {
12533
12561
  enabled?: boolean;
12534
12562
  data?: string[];
12535
- customData?: string[];
12563
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12536
12564
  };
12537
12565
  previewMultiConversion?: boolean;
12538
12566
  persistFiltersAcrossTabs?: boolean;
@@ -12577,7 +12605,7 @@ export declare class FeedbackDialogComponent {
12577
12605
  };
12578
12606
  features?: {
12579
12607
  [key: string]: boolean | {
12580
- [key: string]: string | boolean | string[] | undefined;
12608
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12581
12609
  } | undefined;
12582
12610
  allowChangePassword?: boolean;
12583
12611
  editablepartition?: boolean;
@@ -12596,7 +12624,7 @@ export declare class FeedbackDialogComponent {
12596
12624
  userProfile?: {
12597
12625
  enabled?: boolean;
12598
12626
  data?: string[];
12599
- customData?: string[];
12627
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12600
12628
  };
12601
12629
  previewMultiConversion?: boolean;
12602
12630
  persistFiltersAcrossTabs?: boolean;
@@ -12622,7 +12650,7 @@ export declare class FeedbackDialogComponent {
12622
12650
  private: string;
12623
12651
  public: string;
12624
12652
  };
12625
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
12653
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
12626
12654
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
12627
12655
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
12628
12656
  allowEmptySearch: (queryName: string) => boolean;
@@ -12671,7 +12699,7 @@ export declare class FeedbackDialogComponent {
12671
12699
  sources?: import("@sinequa/atomic-angular").CSources;
12672
12700
  features?: {
12673
12701
  [key: string]: boolean | {
12674
- [key: string]: string | boolean | string[] | undefined;
12702
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12675
12703
  } | undefined;
12676
12704
  allowChangePassword?: boolean;
12677
12705
  editablepartition?: boolean;
@@ -12690,7 +12718,7 @@ export declare class FeedbackDialogComponent {
12690
12718
  userProfile?: {
12691
12719
  enabled?: boolean;
12692
12720
  data?: string[];
12693
- customData?: string[];
12721
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12694
12722
  };
12695
12723
  previewMultiConversion?: boolean;
12696
12724
  persistFiltersAcrossTabs?: boolean;
@@ -12713,7 +12741,7 @@ export declare class FeedbackDialogComponent {
12713
12741
  };
12714
12742
  features?: {
12715
12743
  [key: string]: boolean | {
12716
- [key: string]: string | boolean | string[] | undefined;
12744
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
12717
12745
  } | undefined;
12718
12746
  allowChangePassword?: boolean;
12719
12747
  editablepartition?: boolean;
@@ -12732,7 +12760,7 @@ export declare class FeedbackDialogComponent {
12732
12760
  userProfile?: {
12733
12761
  enabled?: boolean;
12734
12762
  data?: string[];
12735
- customData?: string[];
12763
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
12736
12764
  };
12737
12765
  previewMultiConversion?: boolean;
12738
12766
  persistFiltersAcrossTabs?: boolean;
@@ -13797,7 +13825,7 @@ export declare class AggregationTreeComponent {
13797
13825
  sources?: import("@sinequa/atomic-angular").CSources;
13798
13826
  features?: {
13799
13827
  [key: string]: boolean | {
13800
- [key: string]: string | boolean | string[] | undefined;
13828
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13801
13829
  } | undefined;
13802
13830
  allowChangePassword?: boolean;
13803
13831
  editablepartition?: boolean;
@@ -13816,7 +13844,7 @@ export declare class AggregationTreeComponent {
13816
13844
  userProfile?: {
13817
13845
  enabled?: boolean;
13818
13846
  data?: string[];
13819
- customData?: string[];
13847
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13820
13848
  };
13821
13849
  previewMultiConversion?: boolean;
13822
13850
  persistFiltersAcrossTabs?: boolean;
@@ -13839,7 +13867,7 @@ export declare class AggregationTreeComponent {
13839
13867
  };
13840
13868
  features?: {
13841
13869
  [key: string]: boolean | {
13842
- [key: string]: string | boolean | string[] | undefined;
13870
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13843
13871
  } | undefined;
13844
13872
  allowChangePassword?: boolean;
13845
13873
  editablepartition?: boolean;
@@ -13858,7 +13886,7 @@ export declare class AggregationTreeComponent {
13858
13886
  userProfile?: {
13859
13887
  enabled?: boolean;
13860
13888
  data?: string[];
13861
- customData?: string[];
13889
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13862
13890
  };
13863
13891
  previewMultiConversion?: boolean;
13864
13892
  persistFiltersAcrossTabs?: boolean;
@@ -13903,7 +13931,7 @@ export declare class AggregationTreeComponent {
13903
13931
  };
13904
13932
  features?: {
13905
13933
  [key: string]: boolean | {
13906
- [key: string]: string | boolean | string[] | undefined;
13934
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
13907
13935
  } | undefined;
13908
13936
  allowChangePassword?: boolean;
13909
13937
  editablepartition?: boolean;
@@ -13922,7 +13950,7 @@ export declare class AggregationTreeComponent {
13922
13950
  userProfile?: {
13923
13951
  enabled?: boolean;
13924
13952
  data?: string[];
13925
- customData?: string[];
13953
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
13926
13954
  };
13927
13955
  previewMultiConversion?: boolean;
13928
13956
  persistFiltersAcrossTabs?: boolean;
@@ -13948,7 +13976,7 @@ export declare class AggregationTreeComponent {
13948
13976
  private: string;
13949
13977
  public: string;
13950
13978
  };
13951
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
13979
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
13952
13980
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
13953
13981
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
13954
13982
  allowEmptySearch: (queryName: string) => boolean;
@@ -13997,7 +14025,7 @@ export declare class AggregationTreeComponent {
13997
14025
  sources?: import("@sinequa/atomic-angular").CSources;
13998
14026
  features?: {
13999
14027
  [key: string]: boolean | {
14000
- [key: string]: string | boolean | string[] | undefined;
14028
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14001
14029
  } | undefined;
14002
14030
  allowChangePassword?: boolean;
14003
14031
  editablepartition?: boolean;
@@ -14016,7 +14044,7 @@ export declare class AggregationTreeComponent {
14016
14044
  userProfile?: {
14017
14045
  enabled?: boolean;
14018
14046
  data?: string[];
14019
- customData?: string[];
14047
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14020
14048
  };
14021
14049
  previewMultiConversion?: boolean;
14022
14050
  persistFiltersAcrossTabs?: boolean;
@@ -14039,7 +14067,7 @@ export declare class AggregationTreeComponent {
14039
14067
  };
14040
14068
  features?: {
14041
14069
  [key: string]: boolean | {
14042
- [key: string]: string | boolean | string[] | undefined;
14070
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14043
14071
  } | undefined;
14044
14072
  allowChangePassword?: boolean;
14045
14073
  editablepartition?: boolean;
@@ -14058,7 +14086,7 @@ export declare class AggregationTreeComponent {
14058
14086
  userProfile?: {
14059
14087
  enabled?: boolean;
14060
14088
  data?: string[];
14061
- customData?: string[];
14089
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14062
14090
  };
14063
14091
  previewMultiConversion?: boolean;
14064
14092
  persistFiltersAcrossTabs?: boolean;
@@ -14656,7 +14684,7 @@ export declare class AggregationListComponent {
14656
14684
  sources?: import("@sinequa/atomic-angular").CSources;
14657
14685
  features?: {
14658
14686
  [key: string]: boolean | {
14659
- [key: string]: string | boolean | string[] | undefined;
14687
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14660
14688
  } | undefined;
14661
14689
  allowChangePassword?: boolean;
14662
14690
  editablepartition?: boolean;
@@ -14675,7 +14703,7 @@ export declare class AggregationListComponent {
14675
14703
  userProfile?: {
14676
14704
  enabled?: boolean;
14677
14705
  data?: string[];
14678
- customData?: string[];
14706
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14679
14707
  };
14680
14708
  previewMultiConversion?: boolean;
14681
14709
  persistFiltersAcrossTabs?: boolean;
@@ -14698,7 +14726,7 @@ export declare class AggregationListComponent {
14698
14726
  };
14699
14727
  features?: {
14700
14728
  [key: string]: boolean | {
14701
- [key: string]: string | boolean | string[] | undefined;
14729
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14702
14730
  } | undefined;
14703
14731
  allowChangePassword?: boolean;
14704
14732
  editablepartition?: boolean;
@@ -14717,7 +14745,7 @@ export declare class AggregationListComponent {
14717
14745
  userProfile?: {
14718
14746
  enabled?: boolean;
14719
14747
  data?: string[];
14720
- customData?: string[];
14748
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14721
14749
  };
14722
14750
  previewMultiConversion?: boolean;
14723
14751
  persistFiltersAcrossTabs?: boolean;
@@ -14762,7 +14790,7 @@ export declare class AggregationListComponent {
14762
14790
  };
14763
14791
  features?: {
14764
14792
  [key: string]: boolean | {
14765
- [key: string]: string | boolean | string[] | undefined;
14793
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14766
14794
  } | undefined;
14767
14795
  allowChangePassword?: boolean;
14768
14796
  editablepartition?: boolean;
@@ -14781,7 +14809,7 @@ export declare class AggregationListComponent {
14781
14809
  userProfile?: {
14782
14810
  enabled?: boolean;
14783
14811
  data?: string[];
14784
- customData?: string[];
14812
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14785
14813
  };
14786
14814
  previewMultiConversion?: boolean;
14787
14815
  persistFiltersAcrossTabs?: boolean;
@@ -14807,7 +14835,7 @@ export declare class AggregationListComponent {
14807
14835
  private: string;
14808
14836
  public: string;
14809
14837
  };
14810
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
14838
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
14811
14839
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
14812
14840
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
14813
14841
  allowEmptySearch: (queryName: string) => boolean;
@@ -14856,7 +14884,7 @@ export declare class AggregationListComponent {
14856
14884
  sources?: import("@sinequa/atomic-angular").CSources;
14857
14885
  features?: {
14858
14886
  [key: string]: boolean | {
14859
- [key: string]: string | boolean | string[] | undefined;
14887
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14860
14888
  } | undefined;
14861
14889
  allowChangePassword?: boolean;
14862
14890
  editablepartition?: boolean;
@@ -14875,7 +14903,7 @@ export declare class AggregationListComponent {
14875
14903
  userProfile?: {
14876
14904
  enabled?: boolean;
14877
14905
  data?: string[];
14878
- customData?: string[];
14906
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14879
14907
  };
14880
14908
  previewMultiConversion?: boolean;
14881
14909
  persistFiltersAcrossTabs?: boolean;
@@ -14898,7 +14926,7 @@ export declare class AggregationListComponent {
14898
14926
  };
14899
14927
  features?: {
14900
14928
  [key: string]: boolean | {
14901
- [key: string]: string | boolean | string[] | undefined;
14929
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
14902
14930
  } | undefined;
14903
14931
  allowChangePassword?: boolean;
14904
14932
  editablepartition?: boolean;
@@ -14917,7 +14945,7 @@ export declare class AggregationListComponent {
14917
14945
  userProfile?: {
14918
14946
  enabled?: boolean;
14919
14947
  data?: string[];
14920
- customData?: string[];
14948
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
14921
14949
  };
14922
14950
  previewMultiConversion?: boolean;
14923
14951
  persistFiltersAcrossTabs?: boolean;
@@ -15154,7 +15182,7 @@ export declare class AggregationComponent {
15154
15182
  sources?: import("@sinequa/atomic-angular").CSources;
15155
15183
  features?: {
15156
15184
  [key: string]: boolean | {
15157
- [key: string]: string | boolean | string[] | undefined;
15185
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15158
15186
  } | undefined;
15159
15187
  allowChangePassword?: boolean;
15160
15188
  editablepartition?: boolean;
@@ -15173,7 +15201,7 @@ export declare class AggregationComponent {
15173
15201
  userProfile?: {
15174
15202
  enabled?: boolean;
15175
15203
  data?: string[];
15176
- customData?: string[];
15204
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15177
15205
  };
15178
15206
  previewMultiConversion?: boolean;
15179
15207
  persistFiltersAcrossTabs?: boolean;
@@ -15196,7 +15224,7 @@ export declare class AggregationComponent {
15196
15224
  };
15197
15225
  features?: {
15198
15226
  [key: string]: boolean | {
15199
- [key: string]: string | boolean | string[] | undefined;
15227
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15200
15228
  } | undefined;
15201
15229
  allowChangePassword?: boolean;
15202
15230
  editablepartition?: boolean;
@@ -15215,7 +15243,7 @@ export declare class AggregationComponent {
15215
15243
  userProfile?: {
15216
15244
  enabled?: boolean;
15217
15245
  data?: string[];
15218
- customData?: string[];
15246
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15219
15247
  };
15220
15248
  previewMultiConversion?: boolean;
15221
15249
  persistFiltersAcrossTabs?: boolean;
@@ -15260,7 +15288,7 @@ export declare class AggregationComponent {
15260
15288
  };
15261
15289
  features?: {
15262
15290
  [key: string]: boolean | {
15263
- [key: string]: string | boolean | string[] | undefined;
15291
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15264
15292
  } | undefined;
15265
15293
  allowChangePassword?: boolean;
15266
15294
  editablepartition?: boolean;
@@ -15279,7 +15307,7 @@ export declare class AggregationComponent {
15279
15307
  userProfile?: {
15280
15308
  enabled?: boolean;
15281
15309
  data?: string[];
15282
- customData?: string[];
15310
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15283
15311
  };
15284
15312
  previewMultiConversion?: boolean;
15285
15313
  persistFiltersAcrossTabs?: boolean;
@@ -15305,7 +15333,7 @@ export declare class AggregationComponent {
15305
15333
  private: string;
15306
15334
  public: string;
15307
15335
  };
15308
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
15336
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
15309
15337
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
15310
15338
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
15311
15339
  allowEmptySearch: (queryName: string) => boolean;
@@ -15354,7 +15382,7 @@ export declare class AggregationComponent {
15354
15382
  sources?: import("@sinequa/atomic-angular").CSources;
15355
15383
  features?: {
15356
15384
  [key: string]: boolean | {
15357
- [key: string]: string | boolean | string[] | undefined;
15385
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15358
15386
  } | undefined;
15359
15387
  allowChangePassword?: boolean;
15360
15388
  editablepartition?: boolean;
@@ -15373,7 +15401,7 @@ export declare class AggregationComponent {
15373
15401
  userProfile?: {
15374
15402
  enabled?: boolean;
15375
15403
  data?: string[];
15376
- customData?: string[];
15404
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15377
15405
  };
15378
15406
  previewMultiConversion?: boolean;
15379
15407
  persistFiltersAcrossTabs?: boolean;
@@ -15396,7 +15424,7 @@ export declare class AggregationComponent {
15396
15424
  };
15397
15425
  features?: {
15398
15426
  [key: string]: boolean | {
15399
- [key: string]: string | boolean | string[] | undefined;
15427
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
15400
15428
  } | undefined;
15401
15429
  allowChangePassword?: boolean;
15402
15430
  editablepartition?: boolean;
@@ -15415,7 +15443,7 @@ export declare class AggregationComponent {
15415
15443
  userProfile?: {
15416
15444
  enabled?: boolean;
15417
15445
  data?: string[];
15418
- customData?: string[];
15446
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15419
15447
  };
15420
15448
  previewMultiConversion?: boolean;
15421
15449
  persistFiltersAcrossTabs?: boolean;
@@ -15502,8 +15530,10 @@ export declare class AggregationComponent {
15502
15530
  * A boolean flag indicating whether the component is searchable.
15503
15531
  * This property is initialized to `undefined` by default.
15504
15532
  * "Undefined" and not "false" because this input overrides the custom json settings
15533
+ * (typed explicitly: a bare `input(undefined)` infers the type `undefined`, so neither
15534
+ * `[searchable]="false"` nor `[searchable]="true"` would compile).
15505
15535
  */
15506
- searchable: import("@angular/core").InputSignal<undefined>;
15536
+ searchable: import("@angular/core").InputSignal<boolean | undefined>;
15507
15537
  /**
15508
15538
  * Whether to render the per-item checkbox (list/tree). When `false`, the checkbox
15509
15539
  * is hidden but selection still toggles on row click. Ignored by the date variant.
@@ -16368,7 +16398,7 @@ export declare class FilterButtonComponent {
16368
16398
  sources?: import("@sinequa/atomic-angular").CSources;
16369
16399
  features?: {
16370
16400
  [key: string]: boolean | {
16371
- [key: string]: string | boolean | string[] | undefined;
16401
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16372
16402
  } | undefined;
16373
16403
  allowChangePassword?: boolean;
16374
16404
  editablepartition?: boolean;
@@ -16387,7 +16417,7 @@ export declare class FilterButtonComponent {
16387
16417
  userProfile?: {
16388
16418
  enabled?: boolean;
16389
16419
  data?: string[];
16390
- customData?: string[];
16420
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16391
16421
  };
16392
16422
  previewMultiConversion?: boolean;
16393
16423
  persistFiltersAcrossTabs?: boolean;
@@ -16410,7 +16440,7 @@ export declare class FilterButtonComponent {
16410
16440
  };
16411
16441
  features?: {
16412
16442
  [key: string]: boolean | {
16413
- [key: string]: string | boolean | string[] | undefined;
16443
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16414
16444
  } | undefined;
16415
16445
  allowChangePassword?: boolean;
16416
16446
  editablepartition?: boolean;
@@ -16429,7 +16459,7 @@ export declare class FilterButtonComponent {
16429
16459
  userProfile?: {
16430
16460
  enabled?: boolean;
16431
16461
  data?: string[];
16432
- customData?: string[];
16462
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16433
16463
  };
16434
16464
  previewMultiConversion?: boolean;
16435
16465
  persistFiltersAcrossTabs?: boolean;
@@ -16474,7 +16504,7 @@ export declare class FilterButtonComponent {
16474
16504
  };
16475
16505
  features?: {
16476
16506
  [key: string]: boolean | {
16477
- [key: string]: string | boolean | string[] | undefined;
16507
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16478
16508
  } | undefined;
16479
16509
  allowChangePassword?: boolean;
16480
16510
  editablepartition?: boolean;
@@ -16493,7 +16523,7 @@ export declare class FilterButtonComponent {
16493
16523
  userProfile?: {
16494
16524
  enabled?: boolean;
16495
16525
  data?: string[];
16496
- customData?: string[];
16526
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16497
16527
  };
16498
16528
  previewMultiConversion?: boolean;
16499
16529
  persistFiltersAcrossTabs?: boolean;
@@ -16519,7 +16549,7 @@ export declare class FilterButtonComponent {
16519
16549
  private: string;
16520
16550
  public: string;
16521
16551
  };
16522
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
16552
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
16523
16553
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
16524
16554
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
16525
16555
  allowEmptySearch: (queryName: string) => boolean;
@@ -16568,7 +16598,7 @@ export declare class FilterButtonComponent {
16568
16598
  sources?: import("@sinequa/atomic-angular").CSources;
16569
16599
  features?: {
16570
16600
  [key: string]: boolean | {
16571
- [key: string]: string | boolean | string[] | undefined;
16601
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16572
16602
  } | undefined;
16573
16603
  allowChangePassword?: boolean;
16574
16604
  editablepartition?: boolean;
@@ -16587,7 +16617,7 @@ export declare class FilterButtonComponent {
16587
16617
  userProfile?: {
16588
16618
  enabled?: boolean;
16589
16619
  data?: string[];
16590
- customData?: string[];
16620
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16591
16621
  };
16592
16622
  previewMultiConversion?: boolean;
16593
16623
  persistFiltersAcrossTabs?: boolean;
@@ -16610,7 +16640,7 @@ export declare class FilterButtonComponent {
16610
16640
  };
16611
16641
  features?: {
16612
16642
  [key: string]: boolean | {
16613
- [key: string]: string | boolean | string[] | undefined;
16643
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16614
16644
  } | undefined;
16615
16645
  allowChangePassword?: boolean;
16616
16646
  editablepartition?: boolean;
@@ -16629,7 +16659,7 @@ export declare class FilterButtonComponent {
16629
16659
  userProfile?: {
16630
16660
  enabled?: boolean;
16631
16661
  data?: string[];
16632
- customData?: string[];
16662
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16633
16663
  };
16634
16664
  previewMultiConversion?: boolean;
16635
16665
  persistFiltersAcrossTabs?: boolean;
@@ -16763,7 +16793,7 @@ export declare class MoreButtonComponent {
16763
16793
  sources?: import("@sinequa/atomic-angular").CSources;
16764
16794
  features?: {
16765
16795
  [key: string]: boolean | {
16766
- [key: string]: string | boolean | string[] | undefined;
16796
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16767
16797
  } | undefined;
16768
16798
  allowChangePassword?: boolean;
16769
16799
  editablepartition?: boolean;
@@ -16782,7 +16812,7 @@ export declare class MoreButtonComponent {
16782
16812
  userProfile?: {
16783
16813
  enabled?: boolean;
16784
16814
  data?: string[];
16785
- customData?: string[];
16815
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16786
16816
  };
16787
16817
  previewMultiConversion?: boolean;
16788
16818
  persistFiltersAcrossTabs?: boolean;
@@ -16805,7 +16835,7 @@ export declare class MoreButtonComponent {
16805
16835
  };
16806
16836
  features?: {
16807
16837
  [key: string]: boolean | {
16808
- [key: string]: string | boolean | string[] | undefined;
16838
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16809
16839
  } | undefined;
16810
16840
  allowChangePassword?: boolean;
16811
16841
  editablepartition?: boolean;
@@ -16824,7 +16854,7 @@ export declare class MoreButtonComponent {
16824
16854
  userProfile?: {
16825
16855
  enabled?: boolean;
16826
16856
  data?: string[];
16827
- customData?: string[];
16857
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16828
16858
  };
16829
16859
  previewMultiConversion?: boolean;
16830
16860
  persistFiltersAcrossTabs?: boolean;
@@ -16869,7 +16899,7 @@ export declare class MoreButtonComponent {
16869
16899
  };
16870
16900
  features?: {
16871
16901
  [key: string]: boolean | {
16872
- [key: string]: string | boolean | string[] | undefined;
16902
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16873
16903
  } | undefined;
16874
16904
  allowChangePassword?: boolean;
16875
16905
  editablepartition?: boolean;
@@ -16888,7 +16918,7 @@ export declare class MoreButtonComponent {
16888
16918
  userProfile?: {
16889
16919
  enabled?: boolean;
16890
16920
  data?: string[];
16891
- customData?: string[];
16921
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16892
16922
  };
16893
16923
  previewMultiConversion?: boolean;
16894
16924
  persistFiltersAcrossTabs?: boolean;
@@ -16914,7 +16944,7 @@ export declare class MoreButtonComponent {
16914
16944
  private: string;
16915
16945
  public: string;
16916
16946
  };
16917
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
16947
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
16918
16948
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
16919
16949
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
16920
16950
  allowEmptySearch: (queryName: string) => boolean;
@@ -16963,7 +16993,7 @@ export declare class MoreButtonComponent {
16963
16993
  sources?: import("@sinequa/atomic-angular").CSources;
16964
16994
  features?: {
16965
16995
  [key: string]: boolean | {
16966
- [key: string]: string | boolean | string[] | undefined;
16996
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
16967
16997
  } | undefined;
16968
16998
  allowChangePassword?: boolean;
16969
16999
  editablepartition?: boolean;
@@ -16982,7 +17012,7 @@ export declare class MoreButtonComponent {
16982
17012
  userProfile?: {
16983
17013
  enabled?: boolean;
16984
17014
  data?: string[];
16985
- customData?: string[];
17015
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
16986
17016
  };
16987
17017
  previewMultiConversion?: boolean;
16988
17018
  persistFiltersAcrossTabs?: boolean;
@@ -17005,7 +17035,7 @@ export declare class MoreButtonComponent {
17005
17035
  };
17006
17036
  features?: {
17007
17037
  [key: string]: boolean | {
17008
- [key: string]: string | boolean | string[] | undefined;
17038
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17009
17039
  } | undefined;
17010
17040
  allowChangePassword?: boolean;
17011
17041
  editablepartition?: boolean;
@@ -17024,7 +17054,7 @@ export declare class MoreButtonComponent {
17024
17054
  userProfile?: {
17025
17055
  enabled?: boolean;
17026
17056
  data?: string[];
17027
- customData?: string[];
17057
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17028
17058
  };
17029
17059
  previewMultiConversion?: boolean;
17030
17060
  persistFiltersAcrossTabs?: boolean;
@@ -17406,7 +17436,7 @@ export declare class FiltersBarComponent {
17406
17436
  sources?: import("@sinequa/atomic-angular").CSources;
17407
17437
  features?: {
17408
17438
  [key: string]: boolean | {
17409
- [key: string]: string | boolean | string[] | undefined;
17439
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17410
17440
  } | undefined;
17411
17441
  allowChangePassword?: boolean;
17412
17442
  editablepartition?: boolean;
@@ -17425,7 +17455,7 @@ export declare class FiltersBarComponent {
17425
17455
  userProfile?: {
17426
17456
  enabled?: boolean;
17427
17457
  data?: string[];
17428
- customData?: string[];
17458
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17429
17459
  };
17430
17460
  previewMultiConversion?: boolean;
17431
17461
  persistFiltersAcrossTabs?: boolean;
@@ -17448,7 +17478,7 @@ export declare class FiltersBarComponent {
17448
17478
  };
17449
17479
  features?: {
17450
17480
  [key: string]: boolean | {
17451
- [key: string]: string | boolean | string[] | undefined;
17481
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17452
17482
  } | undefined;
17453
17483
  allowChangePassword?: boolean;
17454
17484
  editablepartition?: boolean;
@@ -17467,7 +17497,7 @@ export declare class FiltersBarComponent {
17467
17497
  userProfile?: {
17468
17498
  enabled?: boolean;
17469
17499
  data?: string[];
17470
- customData?: string[];
17500
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17471
17501
  };
17472
17502
  previewMultiConversion?: boolean;
17473
17503
  persistFiltersAcrossTabs?: boolean;
@@ -17512,7 +17542,7 @@ export declare class FiltersBarComponent {
17512
17542
  };
17513
17543
  features?: {
17514
17544
  [key: string]: boolean | {
17515
- [key: string]: string | boolean | string[] | undefined;
17545
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17516
17546
  } | undefined;
17517
17547
  allowChangePassword?: boolean;
17518
17548
  editablepartition?: boolean;
@@ -17531,7 +17561,7 @@ export declare class FiltersBarComponent {
17531
17561
  userProfile?: {
17532
17562
  enabled?: boolean;
17533
17563
  data?: string[];
17534
- customData?: string[];
17564
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17535
17565
  };
17536
17566
  previewMultiConversion?: boolean;
17537
17567
  persistFiltersAcrossTabs?: boolean;
@@ -17557,7 +17587,7 @@ export declare class FiltersBarComponent {
17557
17587
  private: string;
17558
17588
  public: string;
17559
17589
  };
17560
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
17590
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
17561
17591
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
17562
17592
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
17563
17593
  allowEmptySearch: (queryName: string) => boolean;
@@ -17606,7 +17636,7 @@ export declare class FiltersBarComponent {
17606
17636
  sources?: import("@sinequa/atomic-angular").CSources;
17607
17637
  features?: {
17608
17638
  [key: string]: boolean | {
17609
- [key: string]: string | boolean | string[] | undefined;
17639
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17610
17640
  } | undefined;
17611
17641
  allowChangePassword?: boolean;
17612
17642
  editablepartition?: boolean;
@@ -17625,7 +17655,7 @@ export declare class FiltersBarComponent {
17625
17655
  userProfile?: {
17626
17656
  enabled?: boolean;
17627
17657
  data?: string[];
17628
- customData?: string[];
17658
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17629
17659
  };
17630
17660
  previewMultiConversion?: boolean;
17631
17661
  persistFiltersAcrossTabs?: boolean;
@@ -17648,7 +17678,7 @@ export declare class FiltersBarComponent {
17648
17678
  };
17649
17679
  features?: {
17650
17680
  [key: string]: boolean | {
17651
- [key: string]: string | boolean | string[] | undefined;
17681
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
17652
17682
  } | undefined;
17653
17683
  allowChangePassword?: boolean;
17654
17684
  editablepartition?: boolean;
@@ -17667,7 +17697,7 @@ export declare class FiltersBarComponent {
17667
17697
  userProfile?: {
17668
17698
  enabled?: boolean;
17669
17699
  data?: string[];
17670
- customData?: string[];
17700
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
17671
17701
  };
17672
17702
  previewMultiConversion?: boolean;
17673
17703
  persistFiltersAcrossTabs?: boolean;
@@ -18099,7 +18129,7 @@ export declare class LabelService {
18099
18129
  sources?: import("@sinequa/atomic-angular").CSources;
18100
18130
  features?: {
18101
18131
  [key: string]: boolean | {
18102
- [key: string]: string | boolean | string[] | undefined;
18132
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18103
18133
  } | undefined;
18104
18134
  allowChangePassword?: boolean;
18105
18135
  editablepartition?: boolean;
@@ -18118,7 +18148,7 @@ export declare class LabelService {
18118
18148
  userProfile?: {
18119
18149
  enabled?: boolean;
18120
18150
  data?: string[];
18121
- customData?: string[];
18151
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18122
18152
  };
18123
18153
  previewMultiConversion?: boolean;
18124
18154
  persistFiltersAcrossTabs?: boolean;
@@ -18141,7 +18171,7 @@ export declare class LabelService {
18141
18171
  };
18142
18172
  features?: {
18143
18173
  [key: string]: boolean | {
18144
- [key: string]: string | boolean | string[] | undefined;
18174
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18145
18175
  } | undefined;
18146
18176
  allowChangePassword?: boolean;
18147
18177
  editablepartition?: boolean;
@@ -18160,7 +18190,7 @@ export declare class LabelService {
18160
18190
  userProfile?: {
18161
18191
  enabled?: boolean;
18162
18192
  data?: string[];
18163
- customData?: string[];
18193
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18164
18194
  };
18165
18195
  previewMultiConversion?: boolean;
18166
18196
  persistFiltersAcrossTabs?: boolean;
@@ -18205,7 +18235,7 @@ export declare class LabelService {
18205
18235
  };
18206
18236
  features?: {
18207
18237
  [key: string]: boolean | {
18208
- [key: string]: string | boolean | string[] | undefined;
18238
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18209
18239
  } | undefined;
18210
18240
  allowChangePassword?: boolean;
18211
18241
  editablepartition?: boolean;
@@ -18224,7 +18254,7 @@ export declare class LabelService {
18224
18254
  userProfile?: {
18225
18255
  enabled?: boolean;
18226
18256
  data?: string[];
18227
- customData?: string[];
18257
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18228
18258
  };
18229
18259
  previewMultiConversion?: boolean;
18230
18260
  persistFiltersAcrossTabs?: boolean;
@@ -18250,7 +18280,7 @@ export declare class LabelService {
18250
18280
  private: string;
18251
18281
  public: string;
18252
18282
  };
18253
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
18283
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
18254
18284
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
18255
18285
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
18256
18286
  allowEmptySearch: (queryName: string) => boolean;
@@ -18299,7 +18329,7 @@ export declare class LabelService {
18299
18329
  sources?: import("@sinequa/atomic-angular").CSources;
18300
18330
  features?: {
18301
18331
  [key: string]: boolean | {
18302
- [key: string]: string | boolean | string[] | undefined;
18332
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18303
18333
  } | undefined;
18304
18334
  allowChangePassword?: boolean;
18305
18335
  editablepartition?: boolean;
@@ -18318,7 +18348,7 @@ export declare class LabelService {
18318
18348
  userProfile?: {
18319
18349
  enabled?: boolean;
18320
18350
  data?: string[];
18321
- customData?: string[];
18351
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18322
18352
  };
18323
18353
  previewMultiConversion?: boolean;
18324
18354
  persistFiltersAcrossTabs?: boolean;
@@ -18341,7 +18371,7 @@ export declare class LabelService {
18341
18371
  };
18342
18372
  features?: {
18343
18373
  [key: string]: boolean | {
18344
- [key: string]: string | boolean | string[] | undefined;
18374
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
18345
18375
  } | undefined;
18346
18376
  allowChangePassword?: boolean;
18347
18377
  editablepartition?: boolean;
@@ -18360,7 +18390,7 @@ export declare class LabelService {
18360
18390
  userProfile?: {
18361
18391
  enabled?: boolean;
18362
18392
  data?: string[];
18363
- customData?: string[];
18393
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
18364
18394
  };
18365
18395
  previewMultiConversion?: boolean;
18366
18396
  persistFiltersAcrossTabs?: boolean;
@@ -18652,7 +18682,7 @@ export declare class RecentSearchesComponent {
18652
18682
  }>;
18653
18683
  protected readonly transloco: TranslocoService;
18654
18684
  private readonly router;
18655
- protected getRelativeDate: typeof getRelativeDate;
18685
+ protected subtextOf: (search: SearchItem) => string | undefined;
18656
18686
  protected urlOf: (search: SearchItem) => string;
18657
18687
  protected labelOf: (search: SearchItem) => string;
18658
18688
  protected readonly range: import("@angular/core").WritableSignal<number>;
@@ -18849,7 +18879,7 @@ export declare class SavedSearchesComponent {
18849
18879
  }>;
18850
18880
  protected readonly transloco: TranslocoService;
18851
18881
  private readonly router;
18852
- protected getRelativeDate: typeof getRelativeDate;
18882
+ protected subtextOf: (search: SearchItem) => string | undefined;
18853
18883
  protected urlOf: (search: SearchItem) => string;
18854
18884
  protected labelOf: (search: SearchItem) => string;
18855
18885
  protected readonly range: import("@angular/core").WritableSignal<number>;
@@ -19151,7 +19181,7 @@ export declare class UserProfileFormComponent {
19151
19181
  sources?: import("@sinequa/atomic-angular").CSources;
19152
19182
  features?: {
19153
19183
  [key: string]: boolean | {
19154
- [key: string]: string | boolean | string[] | undefined;
19184
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19155
19185
  } | undefined;
19156
19186
  allowChangePassword?: boolean;
19157
19187
  editablepartition?: boolean;
@@ -19170,7 +19200,7 @@ export declare class UserProfileFormComponent {
19170
19200
  userProfile?: {
19171
19201
  enabled?: boolean;
19172
19202
  data?: string[];
19173
- customData?: string[];
19203
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19174
19204
  };
19175
19205
  previewMultiConversion?: boolean;
19176
19206
  persistFiltersAcrossTabs?: boolean;
@@ -19193,7 +19223,7 @@ export declare class UserProfileFormComponent {
19193
19223
  };
19194
19224
  features?: {
19195
19225
  [key: string]: boolean | {
19196
- [key: string]: string | boolean | string[] | undefined;
19226
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19197
19227
  } | undefined;
19198
19228
  allowChangePassword?: boolean;
19199
19229
  editablepartition?: boolean;
@@ -19212,7 +19242,7 @@ export declare class UserProfileFormComponent {
19212
19242
  userProfile?: {
19213
19243
  enabled?: boolean;
19214
19244
  data?: string[];
19215
- customData?: string[];
19245
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19216
19246
  };
19217
19247
  previewMultiConversion?: boolean;
19218
19248
  persistFiltersAcrossTabs?: boolean;
@@ -19257,7 +19287,7 @@ export declare class UserProfileFormComponent {
19257
19287
  };
19258
19288
  features?: {
19259
19289
  [key: string]: boolean | {
19260
- [key: string]: string | boolean | string[] | undefined;
19290
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19261
19291
  } | undefined;
19262
19292
  allowChangePassword?: boolean;
19263
19293
  editablepartition?: boolean;
@@ -19276,7 +19306,7 @@ export declare class UserProfileFormComponent {
19276
19306
  userProfile?: {
19277
19307
  enabled?: boolean;
19278
19308
  data?: string[];
19279
- customData?: string[];
19309
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19280
19310
  };
19281
19311
  previewMultiConversion?: boolean;
19282
19312
  persistFiltersAcrossTabs?: boolean;
@@ -19302,7 +19332,7 @@ export declare class UserProfileFormComponent {
19302
19332
  private: string;
19303
19333
  public: string;
19304
19334
  };
19305
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
19335
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
19306
19336
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
19307
19337
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
19308
19338
  allowEmptySearch: (queryName: string) => boolean;
@@ -19351,7 +19381,7 @@ export declare class UserProfileFormComponent {
19351
19381
  sources?: import("@sinequa/atomic-angular").CSources;
19352
19382
  features?: {
19353
19383
  [key: string]: boolean | {
19354
- [key: string]: string | boolean | string[] | undefined;
19384
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19355
19385
  } | undefined;
19356
19386
  allowChangePassword?: boolean;
19357
19387
  editablepartition?: boolean;
@@ -19370,7 +19400,7 @@ export declare class UserProfileFormComponent {
19370
19400
  userProfile?: {
19371
19401
  enabled?: boolean;
19372
19402
  data?: string[];
19373
- customData?: string[];
19403
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19374
19404
  };
19375
19405
  previewMultiConversion?: boolean;
19376
19406
  persistFiltersAcrossTabs?: boolean;
@@ -19393,7 +19423,7 @@ export declare class UserProfileFormComponent {
19393
19423
  };
19394
19424
  features?: {
19395
19425
  [key: string]: boolean | {
19396
- [key: string]: string | boolean | string[] | undefined;
19426
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19397
19427
  } | undefined;
19398
19428
  allowChangePassword?: boolean;
19399
19429
  editablepartition?: boolean;
@@ -19412,7 +19442,7 @@ export declare class UserProfileFormComponent {
19412
19442
  userProfile?: {
19413
19443
  enabled?: boolean;
19414
19444
  data?: string[];
19415
- customData?: string[];
19445
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19416
19446
  };
19417
19447
  previewMultiConversion?: boolean;
19418
19448
  persistFiltersAcrossTabs?: boolean;
@@ -19442,8 +19472,15 @@ export declare class UserProfileFormComponent {
19442
19472
  private readonly transloco;
19443
19473
  private readonly injector;
19444
19474
  private readonly document;
19475
+ private readonly destroyRef;
19445
19476
  protected readonly labelClass = "text-(length:--size-base) font-(--weight-semibold) text-(--font-primary-base)";
19446
19477
  protected readonly errorClass = "text-(length:--size-base) text-(--font-error-base)";
19478
+ /**
19479
+ * The pill that marks a value as the administrator's default. The light accent pair is the one galactik
19480
+ * pairs for contrast (it is the `light-accent` button): a neutral background with a neutral text was
19481
+ * unreadable.
19482
+ */
19483
+ 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)";
19447
19484
  /**
19448
19485
  * Polite announcement of what just happened — entering edit mode, saving, cancelling, deleting.
19449
19486
  *
@@ -19453,11 +19490,25 @@ export declare class UserProfileFormComponent {
19453
19490
  * reliably announced.
19454
19491
  */
19455
19492
  protected readonly statusMessage: import("@angular/core").WritableSignal<string>;
19493
+ /** Id of the property saved last, `"<category>.<key>"`, while its confirmation is on screen. */
19494
+ protected readonly savedProperty: import("@angular/core").WritableSignal<string | undefined>;
19495
+ private savedTimer;
19456
19496
  protected readonly dataKeys: string[];
19457
19497
  protected readonly keys: Signal<string[]>;
19458
19498
  protected readonly formKeys: Signal<string[]>;
19459
19499
  protected readonly allowProfilePhoto: Signal<boolean>;
19500
+ private readonly customDataConfig;
19501
+ /**
19502
+ * The rows of the free-form properties.
19503
+ *
19504
+ * Users only edit values, and the structure is the administrator's, in the custom JSON. So a property
19505
+ * that is an object — by its default, or by what the profile holds — is not one row but one row per
19506
+ * leaf (`workingHours › start`), each read-only: the form shows the values without any way to change
19507
+ * the shape. A scalar is an editable row, and an array a read-only one.
19508
+ */
19509
+ private readonly customRows;
19460
19510
  protected readonly customData: Signal<string[]>;
19511
+ private readonly customRowIndex;
19461
19512
  /**
19462
19513
  * The editable properties, flattened in display order — one row per entry.
19463
19514
  *
@@ -19471,6 +19522,18 @@ export declare class UserProfileFormComponent {
19471
19522
  key: string;
19472
19523
  translated: boolean;
19473
19524
  }[]>;
19525
+ /**
19526
+ * The rows grouped in the two cards of the form — the configured fields, then the free-form ones.
19527
+ * A group with no row is left out, so a profile without custom properties shows a single card.
19528
+ */
19529
+ protected readonly sections: Signal<{
19530
+ id: string;
19531
+ rows: {
19532
+ category: UserProfileCategory;
19533
+ key: string;
19534
+ translated: boolean;
19535
+ }[];
19536
+ }[]>;
19474
19537
  protected readonly initials: Signal<string>;
19475
19538
  protected readonly username: Signal<string | null>;
19476
19539
  /** Id of the property being edited, `"<category>.<key>"` — at most one at a time. */
@@ -19491,7 +19554,7 @@ export declare class UserProfileFormComponent {
19491
19554
  protected readonly profileForm: FieldTree<UserProfileFormModel, string | number, "writable">;
19492
19555
  constructor();
19493
19556
  /**
19494
- * Id of the `<textarea>` of a property — the target of its `<label for>`.
19557
+ * Id of the `<input>` of a property — the target of its `<label for>`.
19495
19558
  *
19496
19559
  * The key comes from the configuration and a `customData` one is free-form, so anything that is not
19497
19560
  * a word character is folded away: a space in an id makes both the `id` and the `for` invalid.
@@ -19521,6 +19584,25 @@ export declare class UserProfileFormComponent {
19521
19584
  * @param key property key
19522
19585
  */
19523
19586
  protected getDataValue(category: UserProfileCategory, key: string): string | undefined;
19587
+ /** The default of a custom property, shown while the profile holds no value for it. */
19588
+ private defaultValue;
19589
+ /** Whether a row is a leaf of an object: shown, never edited. */
19590
+ protected isLeaf(category: UserProfileCategory, key: string): boolean;
19591
+ /** What the profile holds for a property — at its path, for a leaf. */
19592
+ private storedValue;
19593
+ /**
19594
+ * Whether a property is a boolean: its stored value or, failing that, its default is one. It is then
19595
+ * edited with a switch, and written as a real boolean — never as the string "true".
19596
+ */
19597
+ protected isBoolean(category: UserProfileCategory, key: string): boolean;
19598
+ /** Whether a boolean property is on. */
19599
+ protected booleanValue(category: UserProfileCategory, key: string): boolean;
19600
+ /** Whether a property holds an array, which the form shows but never edits. */
19601
+ protected isReadOnlyValue(category: UserProfileCategory, key: string): boolean;
19602
+ /** The tags of an array property: a string as is, anything else as its JSON, a repeated value once. */
19603
+ protected arrayTags(category: UserProfileCategory, key: string): string[];
19604
+ /** The stored value of a property, else its default — what the field shows when it is not being edited. */
19605
+ private effectiveValue;
19524
19606
  /**
19525
19607
  * Enters edit mode on a property and puts the caret in its field.
19526
19608
  *
@@ -19536,18 +19618,35 @@ export declare class UserProfileFormComponent {
19536
19618
  * the keyboard or by clicking straight into it.
19537
19619
  */
19538
19620
  protected onFieldFocus(event: FocusEvent): void;
19621
+ /**
19622
+ * `Escape` in a field: cancels the edit in progress — and only that.
19623
+ *
19624
+ * The form lives in a dialog, which closes on `Escape`. While a property is being edited the key
19625
+ * belongs to the field (the hint under it says so), so the event is consumed; on a read-only row there
19626
+ * is nothing to cancel and it goes through, closing the dialog as it would anywhere else.
19627
+ */
19628
+ protected onEscape(event: Event, category: UserProfileCategory, key: string): void;
19539
19629
  /**
19540
19630
  * Leaves edit mode and puts the stored value back, discarding the draft.
19541
19631
  *
19542
- * Also bound to `Escape` on every field, hence the guard: pressing it on a read-only row must not
19543
- * steal the focus by handing it to that row's edit button.
19632
+ * The guard keeps it harmless on a row that is not being edited: it must not steal the focus by
19633
+ * handing it to that row's edit button.
19544
19634
  */
19545
19635
  protected onCancelEdit(category: UserProfileCategory, key: string): void;
19546
19636
  /**
19547
- * The user-facing name of a property — the translated label for a standard key, the key itself for a
19548
- * custom one, matching what the row displays.
19637
+ * The user-facing name of a property, as the row displays it and as it is announced.
19638
+ *
19639
+ * A standard key has a `userProfile.data.*` label. A custom one is free-form, so an application may
19640
+ * translate it under `userProfile.customData.<key>`; without that entry the key itself is shown
19641
+ * (Transloco answers a missing entry with the path it was asked for).
19549
19642
  */
19550
- private propertyLabel;
19643
+ protected labelFor(category: UserProfileCategory, key: string): string;
19644
+ /** Whether a property shows its default: the profile holds no value for it and the administrator gave one. */
19645
+ protected isDefault(category: UserProfileCategory, key: string): boolean;
19646
+ /** Whether a property has just been saved — its row shows a confirmation for a few seconds. */
19647
+ protected isSaved(category: UserProfileCategory, key: string): boolean;
19648
+ /** Shows the confirmation of a row, and takes it down after a while (a later save restarts the delay). */
19649
+ private flashSaved;
19551
19650
  /**
19552
19651
  * Pushes a message to the live region.
19553
19652
  *
@@ -19578,6 +19677,18 @@ export declare class UserProfileFormComponent {
19578
19677
  * @param key property name
19579
19678
  */
19580
19679
  protected onDeleteData(category: UserProfileCategory, key: string): Promise<void>;
19680
+ /** Whether the profile holds a value for a property — only then is there something to delete. */
19681
+ protected hasStoredValue(category: UserProfileCategory, key: string): boolean;
19682
+ /** Takes a deleted property out of the stored profile, and announces it. */
19683
+ private forgetProperty;
19684
+ /**
19685
+ * Persists a boolean property as soon as its switch is flipped — there is no draft to edit and save.
19686
+ *
19687
+ * The profile is updated first and put back if the request fails. The switch is reset by hand as
19688
+ * well: it keeps the state of the click until the value bound to it changes, and a failure that comes
19689
+ * back before the next render never changes it.
19690
+ */
19691
+ protected onToggleBoolean(category: UserProfileCategory, key: string, checked: boolean, toggle: SwitchComponent): Promise<void>;
19581
19692
  /**
19582
19693
  * Patches a single property and folds the response back into the stored profile.
19583
19694
  *
@@ -19695,12 +19806,13 @@ export declare const errorInterceptorFn: HttpInterceptorFn;
19695
19806
  * @param request - The outgoing HTTP request.
19696
19807
  * @param next - The next handler in the HTTP request pipeline.
19697
19808
  * @returns An observable that either passes the request through or handles errors with toast notifications.
19698
- */
19699
- /**
19700
- * Serves the **Angular `HttpClient` channel**. `provideAtomicNotifications()` does the same for the
19701
- * client's own requests, by listening to its `requestFailed` event. The two cover disjoint sets of
19702
- * requests — the client's, and those `@sinequa/agent`, `@sinequa/assistant` or your own code build
19703
- * with `HttpClient` — so registering both raises one toast per failure, not two.
19809
+ *
19810
+ * Serves the **Angular `HttpClient` channel** only. `provideAtomicNotifications()` does the same for the
19811
+ * client's own requests, by listening to its `requestFailed` event: it does not replace this interceptor.
19812
+ * The two cover disjoint sets of requests — the client's, and those `@sinequa/agent`,
19813
+ * `@sinequa/assistant` or your own code build with `HttpClient` — so registering both raises one toast
19814
+ * per failure, not two. As with `provideAtomicNotifications()`, nothing renders the toast: the
19815
+ * application must provide a toaster listening to the `notification` event dispatched on `window`.
19704
19816
  */
19705
19817
  export declare const toastInterceptorFn: HttpInterceptorFn;
19706
19818
  /**
@@ -19783,7 +19895,7 @@ export declare class SourceIconPipe implements PipeTransform {
19783
19895
  sources?: import("@sinequa/atomic-angular").CSources;
19784
19896
  features?: {
19785
19897
  [key: string]: boolean | {
19786
- [key: string]: string | boolean | string[] | undefined;
19898
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19787
19899
  } | undefined;
19788
19900
  allowChangePassword?: boolean;
19789
19901
  editablepartition?: boolean;
@@ -19802,7 +19914,7 @@ export declare class SourceIconPipe implements PipeTransform {
19802
19914
  userProfile?: {
19803
19915
  enabled?: boolean;
19804
19916
  data?: string[];
19805
- customData?: string[];
19917
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19806
19918
  };
19807
19919
  previewMultiConversion?: boolean;
19808
19920
  persistFiltersAcrossTabs?: boolean;
@@ -19825,7 +19937,7 @@ export declare class SourceIconPipe implements PipeTransform {
19825
19937
  };
19826
19938
  features?: {
19827
19939
  [key: string]: boolean | {
19828
- [key: string]: string | boolean | string[] | undefined;
19940
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19829
19941
  } | undefined;
19830
19942
  allowChangePassword?: boolean;
19831
19943
  editablepartition?: boolean;
@@ -19844,7 +19956,7 @@ export declare class SourceIconPipe implements PipeTransform {
19844
19956
  userProfile?: {
19845
19957
  enabled?: boolean;
19846
19958
  data?: string[];
19847
- customData?: string[];
19959
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19848
19960
  };
19849
19961
  previewMultiConversion?: boolean;
19850
19962
  persistFiltersAcrossTabs?: boolean;
@@ -19889,7 +20001,7 @@ export declare class SourceIconPipe implements PipeTransform {
19889
20001
  };
19890
20002
  features?: {
19891
20003
  [key: string]: boolean | {
19892
- [key: string]: string | boolean | string[] | undefined;
20004
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19893
20005
  } | undefined;
19894
20006
  allowChangePassword?: boolean;
19895
20007
  editablepartition?: boolean;
@@ -19908,7 +20020,7 @@ export declare class SourceIconPipe implements PipeTransform {
19908
20020
  userProfile?: {
19909
20021
  enabled?: boolean;
19910
20022
  data?: string[];
19911
- customData?: string[];
20023
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
19912
20024
  };
19913
20025
  previewMultiConversion?: boolean;
19914
20026
  persistFiltersAcrossTabs?: boolean;
@@ -19934,7 +20046,7 @@ export declare class SourceIconPipe implements PipeTransform {
19934
20046
  private: string;
19935
20047
  public: string;
19936
20048
  };
19937
- getQueryByName: (name: string) => import("@sinequa/atomic").CCQuery | undefined;
20049
+ getQueryByName: (name: string | undefined) => import("@sinequa/atomic").CCQuery | undefined;
19938
20050
  getQueryByIndex: (index: number) => import("@sinequa/atomic").CCQuery | undefined;
19939
20051
  getDefaultQuery: () => import("@sinequa/atomic").CCQuery | undefined;
19940
20052
  allowEmptySearch: (queryName: string) => boolean;
@@ -19983,7 +20095,7 @@ export declare class SourceIconPipe implements PipeTransform {
19983
20095
  sources?: import("@sinequa/atomic-angular").CSources;
19984
20096
  features?: {
19985
20097
  [key: string]: boolean | {
19986
- [key: string]: string | boolean | string[] | undefined;
20098
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
19987
20099
  } | undefined;
19988
20100
  allowChangePassword?: boolean;
19989
20101
  editablepartition?: boolean;
@@ -20002,7 +20114,7 @@ export declare class SourceIconPipe implements PipeTransform {
20002
20114
  userProfile?: {
20003
20115
  enabled?: boolean;
20004
20116
  data?: string[];
20005
- customData?: string[];
20117
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
20006
20118
  };
20007
20119
  previewMultiConversion?: boolean;
20008
20120
  persistFiltersAcrossTabs?: boolean;
@@ -20025,7 +20137,7 @@ export declare class SourceIconPipe implements PipeTransform {
20025
20137
  };
20026
20138
  features?: {
20027
20139
  [key: string]: boolean | {
20028
- [key: string]: string | boolean | string[] | undefined;
20140
+ [key: string]: string | boolean | string[] | import("@sinequa/atomic-angular").CustomDataEntry[] | undefined;
20029
20141
  } | undefined;
20030
20142
  allowChangePassword?: boolean;
20031
20143
  editablepartition?: boolean;
@@ -20044,7 +20156,7 @@ export declare class SourceIconPipe implements PipeTransform {
20044
20156
  userProfile?: {
20045
20157
  enabled?: boolean;
20046
20158
  data?: string[];
20047
- customData?: string[];
20159
+ customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
20048
20160
  };
20049
20161
  previewMultiConversion?: boolean;
20050
20162
  persistFiltersAcrossTabs?: boolean;
@@ -20192,7 +20304,9 @@ export declare const ATOMIC_CLIENT: InjectionToken<AtomicClient>;
20192
20304
  * ```
20193
20305
  *
20194
20306
  * @remarks Give clients distinct `storagePrefix` values as soon as they target different backends,
20195
- * otherwise they overwrite each other's stored session.
20307
+ * otherwise they overwrite each other's CSRF token in Web Storage. `storagePrefix` does not isolate the
20308
+ * session itself: the JSON Web Token lives in an `HttpOnly` cookie keyed by (domain, path, name), so full
20309
+ * isolation also needs disjoint cookies (distinct hosts, or disjoint `Path`s behind a proxy).
20196
20310
  *
20197
20311
  * Note that this provides the client only. A subtree serving a **second** backend must also own
20198
20312
  * the library's stores and services — use `provideAtomicScope()` for that.
@@ -20226,9 +20340,19 @@ export declare function injectAtomicClient(): AtomicClient;
20226
20340
  /**
20227
20341
  * Surfaces failed requests of the injected client as toast notifications.
20228
20342
  *
20229
- * Replaces `toastInterceptorFn`: it listens to the client's `requestFailed` event rather than
20230
- * wrapping Angular's `HttpClient`, so it covers every request the client makes — including the
20231
- * ones that never went through `HttpClient`.
20343
+ * It listens to the client's `requestFailed` event and raises `notify.error(...)`. It does **not**
20344
+ * replace `toastInterceptorFn`: that interceptor watches Angular's `HttpClient` channel (requests
20345
+ * from `@sinequa/agent`, `@sinequa/assistant` or your own code), this provider watches the atomic
20346
+ * client's own requests. The two channels are disjoint, registering both raises one toast per
20347
+ * failure, never two.
20348
+ *
20349
+ * Only HTTP statuses `400`, `403`, `500` and `503` produce a toast, plus the explicit "Cannot override
20350
+ * user" message for an impersonation rejected with a `401`. `404`, `429`, `502`, `504` and any failure
20351
+ * without an HTTP response (network error) stay silent, as does everything on `api/v1/preview` and a
20352
+ * `400` on `api/v2/user-profile`.
20353
+ *
20354
+ * The library renders nothing: `notify.error(...)` only dispatches a `notification` `CustomEvent` on
20355
+ * `window`. The application must provide a toaster that listens to it.
20232
20356
  *
20233
20357
  * @example
20234
20358
  * ```ts
@@ -20283,7 +20407,15 @@ export declare const ATOMIC_SCOPED_PROVIDERS: Provider[];
20283
20407
  * export class SupportPanelComponent {}
20284
20408
  * ```
20285
20409
  *
20286
- * @remarks Returns a plain `Provider[]`, not `EnvironmentProviders`. That is deliberate: a
20410
+ * @remarks Prerequisites: the root must provide `provideRouter()` and `provideTransloco()` (the scoped stores
20411
+ * and services inject them, else `NullInjectorError`); pass `{ syncUrl: false }` to the `QueryParamsStore`
20412
+ * mutations (and `[syncUrl]="false"` to `<applied-filters>`) in the scope that must not own the single
20413
+ * browser URL; `bootstrapApp()` / `ApplicationService.initialize()` are application-level, do not call them
20414
+ * again from a scope. `storagePrefix` isolates the CSRF token in Web Storage only: the JSON Web Token is an
20415
+ * `HttpOnly` cookie, so a fully isolated session needs disjoint cookies (distinct hosts, or disjoint `Path`s
20416
+ * behind a proxy).
20417
+ *
20418
+ * Returns a plain `Provider[]`, not `EnvironmentProviders`. That is deliberate: a
20287
20419
  * component's `providers` is typed `Provider[]` and rejects `EnvironmentProviders`, so the
20288
20420
  * side-by-side form above would not compile otherwise — and nothing in this scope needs an
20289
20421
  * environment injector (no `ENVIRONMENT_INITIALIZER`, no `APP_INITIALIZER`). `Route.providers`,