@sinequa/atomic-angular 2.13.0 → 2.14.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sinequa/atomic-angular",
3
- "version": "2.13.0",
3
+ "version": "2.14.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -4,7 +4,7 @@ import { TranslocoService } from "@jsverse/transloco";
4
4
  import { Aggregation, AggregationItem, Article, AtomicClient, AtomicClientConfig, AuditEventType, AuditEventTypeValues, AuditEvents, CCApp, CCColumn, CCQuery, CCSortingChoice, CCWebService, Conversion, Credentials, CustomHighlights, DidYouMeanAction, ExportOutputFormat, ExportQueryModel, Filter as Filter$1, FilterOperator, KeyOf, LegacyFilter, LinkResult, PreviewData, Principal, Query, QueryParams, RequestOptions, Result, SpellingCorrectionMode, Suggestion, TextChunk, TextLocation, TreeAggregation, TreeAggregationNode, UserProfile } 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, SwitchComponent } from "@sinequa/galactik";
7
+ import { BreakpointObserverService, DialogComponent, DialogEvent, DialogResult, DropdownDirective, PopoverDirective, SheetComponent, SwitchComponent, TooltipDirective } 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";
@@ -891,7 +891,7 @@ export declare class DocumentLocatorComponent implements OnDestroy {
891
891
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
892
892
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
893
893
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
894
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
894
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
895
895
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
896
896
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
897
897
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -1152,7 +1152,7 @@ export declare class MissingTermsComponent {
1152
1152
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
1153
1153
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
1154
1154
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
1155
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
1155
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
1156
1156
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
1157
1157
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
1158
1158
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -3319,7 +3319,7 @@ export declare const QueryParamsStore: import("@angular/core").Type<{
3319
3319
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
3320
3320
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
3321
3321
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
3322
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
3322
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
3323
3323
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
3324
3324
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
3325
3325
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -5293,7 +5293,7 @@ export declare class PreviewService {
5293
5293
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
5294
5294
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
5295
5295
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
5296
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
5296
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
5297
5297
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
5298
5298
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
5299
5299
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -6343,7 +6343,7 @@ export declare class AggregationsService {
6343
6343
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
6344
6344
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
6345
6345
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
6346
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
6346
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
6347
6347
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
6348
6348
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
6349
6349
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -7059,7 +7059,7 @@ export declare class ApplicationService {
7059
7059
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
7060
7060
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
7061
7061
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
7062
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
7062
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
7063
7063
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
7064
7064
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
7065
7065
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -8016,7 +8016,7 @@ export declare class SavedSearchesService {
8016
8016
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
8017
8017
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
8018
8018
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
8019
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
8019
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
8020
8020
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
8021
8021
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
8022
8022
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -8201,7 +8201,7 @@ export declare class SearchService {
8201
8201
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
8202
8202
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
8203
8203
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
8204
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
8204
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
8205
8205
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
8206
8206
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
8207
8207
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -8430,7 +8430,7 @@ export declare class SelectionService {
8430
8430
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
8431
8431
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
8432
8432
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
8433
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
8433
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
8434
8434
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
8435
8435
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
8436
8436
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -9952,7 +9952,7 @@ export declare class SponsoredResultsComponent {
9952
9952
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
9953
9953
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
9954
9954
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
9955
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
9955
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
9956
9956
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
9957
9957
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
9958
9958
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -11040,7 +11040,7 @@ export declare class AdvancedSearch {
11040
11040
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
11041
11041
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
11042
11042
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
11043
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
11043
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
11044
11044
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
11045
11045
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
11046
11046
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -11332,6 +11332,11 @@ export declare class ArticleEntities {
11332
11332
  navigateNext: (entity: string, data: import("@sinequa/atomic-angular").ArticleMetadata) => void;
11333
11333
  navigatePrev: (entity: string, data: import("@sinequa/atomic-angular").ArticleMetadata) => void;
11334
11334
  };
11335
+ protected readonly row: {
11336
+ enter: (value: string) => void;
11337
+ leave: () => void;
11338
+ activate: (value: string) => void;
11339
+ };
11335
11340
  static ɵfac: i0.ɵɵFactoryDeclaration<ArticleEntities, never>;
11336
11341
  static ɵcmp: i0.ɵɵComponentDeclaration<ArticleEntities, "article-entities,ArticleEntities,articleentities", never, {
11337
11342
  "article": {
@@ -11477,6 +11482,11 @@ export declare class ArticleMatchLocations {
11477
11482
  navigateNext: (data: import("@sinequa/atomic-angular").ArticleMetadata) => void;
11478
11483
  navigatePrev: (data: import("@sinequa/atomic-angular").ArticleMetadata) => void;
11479
11484
  };
11485
+ protected readonly row: {
11486
+ enter: (value: string) => void;
11487
+ leave: () => void;
11488
+ activate: (value: string) => void;
11489
+ };
11480
11490
  static ɵfac: i0.ɵɵFactoryDeclaration<ArticleMatchLocations, never>;
11481
11491
  static ɵcmp: i0.ɵɵComponentDeclaration<ArticleMatchLocations, "article-match-locations, ArticleMatchLocations, articlematchlocations", never, {}, {}, never, never, true, never>;
11482
11492
  }
@@ -11547,6 +11557,12 @@ export declare class ArticleEntitiesTabPanel {
11547
11557
  navigateNext: (entity: string, data: ArticleMetadata) => void;
11548
11558
  navigatePrev: (entity: string, data: ArticleMetadata) => void;
11549
11559
  }>;
11560
+ /** Hover for a mouse, a tap for a finger (see {@link injectRowActivation}). */
11561
+ protected readonly row: {
11562
+ enter: (value: string) => void;
11563
+ leave: () => void;
11564
+ activate: (value: string) => void;
11565
+ };
11550
11566
  /** Category expansion state, keyed by entity name — categories default closed. */
11551
11567
  private readonly expandedCategories;
11552
11568
  protected isExpanded(entity: string): boolean;
@@ -11654,6 +11670,14 @@ export declare class ArticleMatchLocationsTabPanel {
11654
11670
  navigateNext: (data: ArticleMetadata) => void;
11655
11671
  navigatePrev: (data: ArticleMetadata) => void;
11656
11672
  }>;
11673
+ /** The text being searched for: tells an empty panel "no search yet" from "no match". */
11674
+ readonly queryText: import("@angular/core").InputSignal<string>;
11675
+ /** Hover for a mouse, a tap for a finger (see {@link injectRowActivation}). */
11676
+ protected readonly row: {
11677
+ enter: (value: string) => void;
11678
+ leave: () => void;
11679
+ activate: (value: string) => void;
11680
+ };
11657
11681
  /**
11658
11682
  * Which row currently has keyboard focus — tracked independently of `state().hovering` (mouse
11659
11683
  * only) so the prev/next affordance shows on either input method without one clearing the other:
@@ -11683,6 +11707,11 @@ export declare class ArticleMatchLocationsTabPanel {
11683
11707
  "required": true;
11684
11708
  "isSignal": true;
11685
11709
  };
11710
+ "queryText": {
11711
+ "alias": "queryText";
11712
+ "required": false;
11713
+ "isSignal": true;
11714
+ };
11686
11715
  }, {}, never, never, true, never>;
11687
11716
  }
11688
11717
  /**
@@ -11793,6 +11822,12 @@ export declare class AlertsComponent {
11793
11822
  /** The second line of each row. */
11794
11823
  private readonly summaries;
11795
11824
  protected readonly summaryOf: (alert: Alert) => AlertSummaryPart[];
11825
+ /** False while the page is driven with a finger: the line that explains the keys to reorder a row is then not shown. */
11826
+ protected readonly keyboardAvailable: import("@angular/core").Signal<boolean>;
11827
+ /** The name and the second line of a row as one text, for the tooltip that shows them whole when they are cut off. */
11828
+ protected fullText(alert: Alert): string;
11829
+ /** The info button of a row: shows the whole text in the tooltip, or takes it away at a second tap. A tap elsewhere closes it (the tooltip's own). */
11830
+ protected toggleText(tip: TooltipDirective): void;
11796
11831
  /** What a screen reader hears after a keyboard move. */
11797
11832
  protected readonly announceMove: (alert: Alert, position: number, total: number) => string;
11798
11833
  constructor();
@@ -12519,7 +12554,7 @@ declare class ListPanelComponent<T> {
12519
12554
  getLabel: import("@angular/core").InputSignal<((item: T) => string) | undefined>;
12520
12555
  deleteButtonTitle: import("@angular/core").InputSignal<string>;
12521
12556
  /**
12522
- * Whether rows can be deleted. On by default. Off, rows carry no trash icon, `Delete` does nothing and
12557
+ * Whether rows can be deleted. On by default. Off, rows carry no cross, `Delete` does nothing and
12523
12558
  * nothing announces it (no `aria-keyshortcuts`, no hint) — a list that cannot delete must not say
12524
12559
  * that it can.
12525
12560
  */
@@ -13053,7 +13088,7 @@ export declare class ExportDialog {
13053
13088
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
13054
13089
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
13055
13090
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
13056
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
13091
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
13057
13092
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
13058
13093
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
13059
13094
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -13570,7 +13605,7 @@ export declare class SearchFeedbackComponent {
13570
13605
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
13571
13606
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
13572
13607
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
13573
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
13608
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
13574
13609
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
13575
13610
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
13576
13611
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -13960,7 +13995,7 @@ export declare class AggregationDateComponent {
13960
13995
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
13961
13996
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
13962
13997
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
13963
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
13998
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
13964
13999
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
13965
14000
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
13966
14001
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -14472,7 +14507,7 @@ export declare class AggregationTreeComponent {
14472
14507
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
14473
14508
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
14474
14509
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
14475
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
14510
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
14476
14511
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
14477
14512
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
14478
14513
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -15347,7 +15382,7 @@ export declare class AggregationListComponent {
15347
15382
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
15348
15383
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
15349
15384
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
15350
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
15385
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
15351
15386
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
15352
15387
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
15353
15388
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -15478,14 +15513,7 @@ export declare class AggregationListComponent {
15478
15513
  };
15479
15514
  userProfile?: {
15480
15515
  enabled?: boolean;
15481
- data? /**
15482
- * Leaves out the header of the facet — its icon, its title, the collapse chevron — for a popover that holds this one facet
15483
- * (the popover of a filter button, whose button already says which facet it is). Select all, clear and apply are not in the
15484
- * header, whichever way the facet is shown: they sit in a bar under the search field. A popover that holds several facets
15485
- * (the "more filters" one) keeps the headers: each of them collapses and expands from its title.
15486
- *
15487
- * @default false
15488
- */ : string[];
15516
+ data?: string[];
15489
15517
  customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15490
15518
  };
15491
15519
  previewMultiConversion?: boolean;
@@ -15499,7 +15527,19 @@ export declare class AggregationListComponent {
15499
15527
  light?: {
15500
15528
  small?: string;
15501
15529
  large?: string;
15502
- sidebar?: string;
15530
+ sidebar?
15531
+ /**
15532
+ * When `false`, applying or clearing filters updates the store without
15533
+ * synchronizing the URL (no browser history entry, not shareable/restorable).
15534
+ *
15535
+ * @default true
15536
+ */
15537
+ /**
15538
+ * When `false`, applying or clearing filters updates the store without
15539
+ * synchronizing the URL (no browser history entry, not shareable/restorable).
15540
+ *
15541
+ * @default true
15542
+ */ : string;
15503
15543
  };
15504
15544
  dark?: {
15505
15545
  small?: string;
@@ -15527,14 +15567,7 @@ export declare class AggregationListComponent {
15527
15567
  };
15528
15568
  userProfile?: {
15529
15569
  enabled?: boolean;
15530
- data? /**
15531
- * Leaves out the header of the facet — its icon, its title, the collapse chevron — for a popover that holds this one facet
15532
- * (the popover of a filter button, whose button already says which facet it is). Select all, clear and apply are not in the
15533
- * header, whichever way the facet is shown: they sit in a bar under the search field. A popover that holds several facets
15534
- * (the "more filters" one) keeps the headers: each of them collapses and expands from its title.
15535
- *
15536
- * @default false
15537
- */ : string[];
15570
+ data?: string[];
15538
15571
  customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15539
15572
  };
15540
15573
  previewMultiConversion?: boolean;
@@ -15570,7 +15603,19 @@ export declare class AggregationListComponent {
15570
15603
  light?: {
15571
15604
  small?: string;
15572
15605
  large?: string;
15573
- sidebar?: string;
15606
+ sidebar?
15607
+ /**
15608
+ * When `false`, applying or clearing filters updates the store without
15609
+ * synchronizing the URL (no browser history entry, not shareable/restorable).
15610
+ *
15611
+ * @default true
15612
+ */
15613
+ /**
15614
+ * When `false`, applying or clearing filters updates the store without
15615
+ * synchronizing the URL (no browser history entry, not shareable/restorable).
15616
+ *
15617
+ * @default true
15618
+ */ : string;
15574
15619
  };
15575
15620
  dark?: {
15576
15621
  small?: string;
@@ -15598,14 +15643,7 @@ export declare class AggregationListComponent {
15598
15643
  };
15599
15644
  userProfile?: {
15600
15645
  enabled?: boolean;
15601
- data? /**
15602
- * Leaves out the header of the facet — its icon, its title, the collapse chevron — for a popover that holds this one facet
15603
- * (the popover of a filter button, whose button already says which facet it is). Select all, clear and apply are not in the
15604
- * header, whichever way the facet is shown: they sit in a bar under the search field. A popover that holds several facets
15605
- * (the "more filters" one) keeps the headers: each of them collapses and expands from its title.
15606
- *
15607
- * @default false
15608
- */ : string[];
15646
+ data?: string[];
15609
15647
  customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15610
15648
  };
15611
15649
  previewMultiConversion?: boolean;
@@ -15699,14 +15737,7 @@ export declare class AggregationListComponent {
15699
15737
  };
15700
15738
  userProfile?: {
15701
15739
  enabled?: boolean;
15702
- data? /**
15703
- * Leaves out the header of the facet — its icon, its title, the collapse chevron — for a popover that holds this one facet
15704
- * (the popover of a filter button, whose button already says which facet it is). Select all, clear and apply are not in the
15705
- * header, whichever way the facet is shown: they sit in a bar under the search field. A popover that holds several facets
15706
- * (the "more filters" one) keeps the headers: each of them collapses and expands from its title.
15707
- *
15708
- * @default false
15709
- */ : string[];
15740
+ data?: string[];
15710
15741
  customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15711
15742
  };
15712
15743
  previewMultiConversion?: boolean;
@@ -15720,7 +15751,19 @@ export declare class AggregationListComponent {
15720
15751
  light?: {
15721
15752
  small?: string;
15722
15753
  large?: string;
15723
- sidebar?: string;
15754
+ sidebar?
15755
+ /**
15756
+ * When `false`, applying or clearing filters updates the store without
15757
+ * synchronizing the URL (no browser history entry, not shareable/restorable).
15758
+ *
15759
+ * @default true
15760
+ */
15761
+ /**
15762
+ * When `false`, applying or clearing filters updates the store without
15763
+ * synchronizing the URL (no browser history entry, not shareable/restorable).
15764
+ *
15765
+ * @default true
15766
+ */ : string;
15724
15767
  };
15725
15768
  dark?: {
15726
15769
  small?: string;
@@ -15748,14 +15791,7 @@ export declare class AggregationListComponent {
15748
15791
  };
15749
15792
  userProfile?: {
15750
15793
  enabled?: boolean;
15751
- data? /**
15752
- * Leaves out the header of the facet — its icon, its title, the collapse chevron — for a popover that holds this one facet
15753
- * (the popover of a filter button, whose button already says which facet it is). Select all, clear and apply are not in the
15754
- * header, whichever way the facet is shown: they sit in a bar under the search field. A popover that holds several facets
15755
- * (the "more filters" one) keeps the headers: each of them collapses and expands from its title.
15756
- *
15757
- * @default false
15758
- */ : string[];
15794
+ data?: string[];
15759
15795
  customData?: import("@sinequa/atomic-angular").CustomDataEntry[];
15760
15796
  };
15761
15797
  previewMultiConversion?: boolean;
@@ -17247,7 +17283,7 @@ export declare class FilterButtonComponent {
17247
17283
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
17248
17284
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
17249
17285
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
17250
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
17286
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
17251
17287
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
17252
17288
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
17253
17289
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -18238,7 +18274,7 @@ export declare class MoreButtonComponent {
18238
18274
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
18239
18275
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
18240
18276
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
18241
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
18277
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
18242
18278
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
18243
18279
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
18244
18280
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -19024,7 +19060,7 @@ export declare class FiltersBarComponent {
19024
19060
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
19025
19061
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
19026
19062
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
19027
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
19063
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
19028
19064
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
19029
19065
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
19030
19066
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -20061,7 +20097,8 @@ export declare class HistoryPanelComponent {
20061
20097
  protected readonly isMobile: import("@angular/core").Signal<boolean>;
20062
20098
  protected readonly sheetClasses: string;
20063
20099
  protected readonly rowButton = "flex size-5 shrink-0 cursor-pointer items-center justify-center overflow-hidden rounded-full border-0 bg-transparent p-0 transition-[max-width,opacity,background-color,color] duration-150 motion-reduce:transition-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-(--stroke-focus) focus-visible:-outline-offset-2";
20064
- protected readonly rowButtonHidden = "max-w-0 opacity-0 group-hover/row:max-w-5 group-hover/row:opacity-100 group-focus-within/row:max-w-5 group-focus-within/row:opacity-100";
20100
+ protected readonly rowButtonHidden = "max-w-0 opacity-0 group-hover/row:max-w-5 group-hover/row:opacity-100 group-focus-within/row:max-w-5 group-focus-within/row:opacity-100 pointer-coarse:sr-only";
20101
+ protected readonly infoButton = "hidden size-8 shrink-0 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 text-(--history-panel-icon,var(--font-neutral-muted)) active:bg-(--history-panel-active,var(--bg-neutral-hovered)) focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-(--stroke-focus) focus-visible:-outline-offset-2 pointer-coarse:flex";
20065
20102
  /**
20066
20103
  * Gives a `<history-panel>` an opening and closing animation that does not depend on the host
20067
20104
  * app: width, padding and margin ease out together, and reduced motion drops the movement. The panel is as tall as
@@ -20076,6 +20113,8 @@ export declare class HistoryPanelComponent {
20076
20113
  protected titleOf: (search: SearchItem) => string;
20077
20114
  protected isFavorite: (search: SearchItem) => boolean;
20078
20115
  protected onTab(value: string[]): void;
20116
+ /** The ⓘ of a row: shows the whole title in its tooltip, or takes it away at a second tap. A tap elsewhere closes it (the tooltip's own). */
20117
+ protected toggleTitle(tip: TooltipDirective): void;
20079
20118
  protected onEscape(event: Event): void;
20080
20119
  protected select(search: SearchItem): void;
20081
20120
  protected toggleFavorite(search: SearchItem): Promise<boolean>;
@@ -20217,6 +20256,7 @@ export declare class QuickFiltersListComponent {
20217
20256
  private readonly transloco;
20218
20257
  private readonly host;
20219
20258
  private readonly injector;
20259
+ private readonly isTouch;
20220
20260
  protected readonly deleteKeys: string[];
20221
20261
  protected readonly quickFilters: import("@angular/core").Signal<QuickFilter[]>;
20222
20262
  protected readonly query: import("@angular/core").WritableSignal<string>;
@@ -20231,6 +20271,8 @@ export declare class QuickFiltersListComponent {
20231
20271
  private readonly detailsCard;
20232
20272
  private hideTimer;
20233
20273
  private readonly deleting;
20274
+ /** True while `remove()` hands the focus to a row: the `focusin` it raises is not a reader's visit. */
20275
+ private restoringFocus;
20234
20276
  constructor();
20235
20277
  /**
20236
20278
  * What a quick filter holds, one chip per filter: the icon the application gave the aggregation of the filter in the
@@ -20243,6 +20285,22 @@ export declare class QuickFiltersListComponent {
20243
20285
  }[];
20244
20286
  /** Shows what a quick filter holds, under the line of its count of filters. */
20245
20287
  protected showDetails(quickFilter: QuickFilter, anchor: HTMLElement): void;
20288
+ /**
20289
+ * The keyboard focus reached a row: shows its filters. Not when the list itself put the focus there — after a deletion the
20290
+ * focus is handed to the row that took the place of the deleted one, and its card would open for a row nobody was looking at.
20291
+ * Not on a touch screen either: a tap focuses the row BEFORE the click of the ⓘ, which would then find the card open and close it —
20292
+ * the first tap on the ⓘ did nothing. There, the ⓘ is the only way to the card.
20293
+ */
20294
+ protected onRowFocus(quickFilter: QuickFilter, anchor: HTMLElement): void;
20295
+ /**
20296
+ * The hover of the count line. A touch screen has none, but a browser still fires a synthetic `mouseenter` at a tap — the card
20297
+ * would flash and be closed by the click that follows: it is the ⓘ that opens it there.
20298
+ */
20299
+ protected onCountEnter(quickFilter: QuickFilter, anchor: HTMLElement): void;
20300
+ /** The ⓘ of a touch screen: opens the card of the row, or closes it when it is that row's. It never applies the quick filter. */
20301
+ protected toggleDetails(quickFilter: QuickFilter, anchor: HTMLElement, event: Event): void;
20302
+ /** A press outside the card, and outside the ⓘ that toggles it, closes it. */
20303
+ protected onDocumentPointerDown(event: Event): void;
20246
20304
  /** Hides the card a moment later, so the pointer can cross from the row to the card. */
20247
20305
  protected scheduleHideDetails(): void;
20248
20306
  protected cancelHideDetails(): void;
@@ -20262,7 +20320,7 @@ export declare class QuickFiltersListComponent {
20262
20320
  * focus was in the list it goes to the row that took its place, or to the list itself when it was the last, so it is never dropped
20263
20321
  * on the page.
20264
20322
  */
20265
- protected remove(quickFilter: QuickFilter, index: number, event: Event): Promise<void>;
20323
+ protected remove(quickFilter: QuickFilter, index: number, event?: Event): Promise<void>;
20266
20324
  static ɵfac: i0.ɵɵFactoryDeclaration<QuickFiltersListComponent, never>;
20267
20325
  static ɵcmp: i0.ɵɵComponentDeclaration<QuickFiltersListComponent, "QuickFiltersList, quick-filters-list", never, {
20268
20326
  "searchable": {
@@ -20480,7 +20538,7 @@ export declare class SearchBoxComponent {
20480
20538
  relevanceTransforms?: import("@angular/core").Signal<string | undefined> | undefined;
20481
20539
  removeDuplicates?: import("@angular/core").Signal<boolean | undefined> | undefined;
20482
20540
  queryId?: import("@angular/core").Signal<string | undefined> | undefined;
20483
- aggregations?: import("@angular/core").Signal<string[] | Record<string, import("@sinequa/atomic").AggregationOptions> | undefined> | undefined;
20541
+ aggregations?: import("@angular/core").Signal<Record<string, import("@sinequa/atomic").AggregationOptions> | string[] | undefined> | undefined;
20484
20542
  orderBy?: import("@angular/core").Signal<string | undefined> | undefined;
20485
20543
  groupBy?: import("@angular/core").Signal<string | undefined> | undefined;
20486
20544
  neuralSearch?: import("@angular/core").Signal<boolean | undefined> | undefined;
@@ -21518,13 +21576,29 @@ export interface SettingsDialogProps {
21518
21576
  export declare class SettingsDialogComponent {
21519
21577
  protected readonly call: import("@sinequa/galactik").CallRef<SettingsDialogProps, DialogResult>;
21520
21578
  private readonly dialog;
21579
+ /** The navigation: a column, and under md a strip that scrolls sideways. */
21580
+ private readonly strip;
21581
+ private stripPositioned;
21521
21582
  protected readonly items: {
21522
21583
  id: SettingsPanelId;
21523
21584
  labelKey: string;
21524
21585
  }[];
21525
21586
  protected readonly panel: import("@angular/core").WritableSignal<SettingsPanelId>;
21587
+ /** False while the page is driven with a finger: a list of keyboard shortcuts means nothing on a tablet that has no keyboard. */
21588
+ private readonly keyboardAvailable;
21589
+ /**
21590
+ * The entries of the navigation. "Keyboard shortcuts" is left out without a keyboard — unless it is the panel being shown, which an
21591
+ * application asked for (`Settings.call({ panel: "shortcuts" })`) and must not lose from under the user.
21592
+ */
21593
+ protected readonly visibleItems: import("@angular/core").Signal<{
21594
+ id: SettingsPanelId;
21595
+ labelKey: string;
21596
+ }[]>;
21526
21597
  /** Once the user picks a panel, the focus is theirs: the account panel stops claiming it. */
21527
21598
  protected readonly navigated: import("@angular/core").WritableSignal<boolean>;
21599
+ private resizeObserver?;
21600
+ private reveal;
21601
+ private revealWhenLaidOut;
21528
21602
  protected navigate(id: SettingsPanelId): void;
21529
21603
  /** Set when another instance is already open: this one only redirects it, then ends. */
21530
21604
  protected readonly duplicate: boolean;
@@ -21713,6 +21787,11 @@ export interface UserProfileFormModel {
21713
21787
  customData: Record<string, string>;
21714
21788
  }
21715
21789
  export declare class UserProfileFormComponent {
21790
+ /**
21791
+ * Whether the form pads itself (16px). On by default, for a page that holds nothing else. Off where the host already has its own
21792
+ * padding, as the settings do: the card of the profile was then 37px from the edge of the panel, while its other sections sat at 0.
21793
+ */
21794
+ readonly padded: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
21716
21795
  protected readonly principalStore: {
21717
21796
  id: Signal<string>;
21718
21797
  id2: Signal<string>;
@@ -22332,7 +22411,13 @@ export declare class UserProfileFormComponent {
22332
22411
  */
22333
22412
  protected uploadAvatar(event: Event): void;
22334
22413
  static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileFormComponent, never>;
22335
- static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileFormComponent, "user-profile-form, UserProfileForm, userprofileform", never, {}, {}, never, never, true, never>;
22414
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileFormComponent, "user-profile-form, UserProfileForm, userprofileform", never, {
22415
+ "padded": {
22416
+ "alias": "padded";
22417
+ "required": false;
22418
+ "isSignal": true;
22419
+ };
22420
+ }, {}, never, never, true, never>;
22336
22421
  }
22337
22422
  /**
22338
22423
  * Returns a guard function that checks if the user is authenticated.