@sinequa/atomic-angular 0.1.43 → 0.1.50

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/index.d.ts CHANGED
@@ -1,22 +1,22 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, ElementRef, DestroyRef, EventEmitter, Type, TemplateRef, Injector, PipeTransform, InjectionToken, Signal, ApplicationRef, ChangeDetectorRef, ViewContainerRef, ComponentRef } from '@angular/core';
2
+ import { OnDestroy, ElementRef, DestroyRef, EventEmitter, Type, InjectionToken, Injector, Signal, ApplicationRef, TemplateRef, PipeTransform, ChangeDetectorRef, ViewContainerRef, ComponentRef } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
5
5
  import * as _ngrx_signals from '@ngrx/signals';
6
6
  import * as _sinequa_atomic from '@sinequa/atomic';
7
- import { Article as Article$1, LegacyFilter, KeyOf, CCApp, CCSortingChoice, Result, LinkResult, Query, QueryParams, AggregationItem, TreeAggregationNode, Aggregation, TreeAggregation, FilterOperator, AuditEvents, CCQuery, AuditEventType, AuditEventTypeValues, CCWebService, Suggestion, CCColumn, Principal, SpellingCorrectionMode, CustomHighlights, PreviewData, TextLocation, TextChunk, Credentials, ExportQueryModel, ExportOutputFormat } from '@sinequa/atomic';
7
+ import { Article as Article$1, LegacyFilter, KeyOf, CCApp, Query, QueryParams, AggregationItem, TreeAggregationNode, Aggregation, TreeAggregation, Result, AuditEvents, CCQuery, AuditEventType, AuditEventTypeValues, CCWebService, Suggestion, CCColumn, Principal, SpellingCorrectionMode, CustomHighlights, PreviewData, TextLocation, TextChunk, CCSortingChoice, LinkResult, FilterOperator, Credentials, ExportQueryModel, ExportOutputFormat } from '@sinequa/atomic';
8
8
  import * as _angular_router from '@angular/router';
9
- import { Router, ActivatedRoute, CanActivateFn, ResolveFn, NavigationEnd } from '@angular/router';
9
+ import { Router, NavigationEnd, ActivatedRoute, CanActivateFn, ResolveFn } from '@angular/router';
10
10
  import * as _sinequa_atomic_angular from '@sinequa/atomic-angular';
11
11
  import * as _sinequa_ui from '@sinequa/ui';
12
12
  import { cn, DialogService, DropdownComponent, DialogInterface, DialogComponent, DialogResult, PopoverContentComponent, PopoverComponent, DialogEvent } from '@sinequa/ui';
13
13
  import * as class_variance_authority_types from 'class-variance-authority/types';
14
14
  import { VariantProps } from 'class-variance-authority';
15
+ import * as _angular_common_http from '@angular/common/http';
16
+ import { HttpClient, HttpHeaders, HttpContext, HttpParams, HttpInterceptorFn, HttpRequest, HttpHandlerFn, HttpResponse } from '@angular/common/http';
15
17
  import * as _angular_forms from '@angular/forms';
16
18
  import { FormControl, FormGroup } from '@angular/forms';
17
19
  import { Placement } from '@floating-ui/dom';
18
- import * as _angular_common_http from '@angular/common/http';
19
- import { HttpInterceptorFn, HttpRequest, HttpHandlerFn, HttpClient, HttpHeaders, HttpContext, HttpParams, HttpResponse } from '@angular/common/http';
20
20
  import { HighlightWords } from 'highlight-words';
21
21
  import { DatePipe, DatePipeConfig } from '@angular/common';
22
22
  import { Title, SafeHtml, DomSanitizer } from '@angular/platform-browser';
@@ -56,7 +56,7 @@ declare class BackdropComponent implements OnDestroy {
56
56
  constructor();
57
57
  ngOnDestroy(): void;
58
58
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BackdropComponent, never>;
59
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BackdropComponent, "app-backdrop", never, {}, {}, never, never, true, never>;
59
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BackdropComponent, "Backdrop, backdrop", never, {}, {}, never, never, true, never>;
60
60
  }
61
61
 
62
62
  declare class BackdropService {
@@ -210,14 +210,16 @@ declare class MetadataComponent {
210
210
  event: Event;
211
211
  }>;
212
212
  class: _angular_core.InputSignal<string | undefined>;
213
- variant: _angular_core.InputSignal<"default" | "destructive" | "outline" | "secondary" | null | undefined>;
213
+ variant: _angular_core.InputSignal<"default" | "none" | "primary" | "secondary" | "destructive" | "ai" | "ghost" | null | undefined>;
214
+ decoration: _angular_core.InputSignal<"none" | "outline" | null | undefined>;
215
+ hover: _angular_core.InputSignal<"yes" | "no" | null | undefined>;
214
216
  metadata: _angular_core.InputSignal<KeyOf<Article$1> | (string & Record<never, never>)>;
215
217
  article: _angular_core.InputSignal<Partial<Article$1> | (string & Record<never, never>)>;
216
218
  limit: _angular_core.InputSignalWithTransform<number | undefined, string | number | undefined>;
217
219
  items: _angular_core.Signal<string[]>;
218
220
  handleClick(event: Event, item: LegacyFilter): void;
219
221
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetadataComponent, never>;
220
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetadataComponent, "Metadata, metadata", ["metadata"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "metadata": { "alias": "metadata"; "required": true; "isSignal": true; }; "article": { "alias": "article"; "required": true; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; }, { "click": "click"; }, never, never, true, never>;
222
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetadataComponent, "Metadata, metadata", ["metadata"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "decoration": { "alias": "decoration"; "required": false; "isSignal": true; }; "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "metadata": { "alias": "metadata"; "required": true; "isSignal": true; }; "article": { "alias": "article"; "required": true; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; }, { "click": "click"; }, never, never, true, never>;
221
223
  }
222
224
 
223
225
  declare class MissingTermsComponent {
@@ -338,6 +340,9 @@ declare class MultiSelectionToolbarComponent {
338
340
  large?: string;
339
341
  };
340
342
  };
343
+ features?: {
344
+ advancedSearch?: boolean;
345
+ };
341
346
  } | undefined>;
342
347
  assistants: _angular_core.Signal<Record<string, any>>;
343
348
  initialize: () => Promise<void>;
@@ -475,1102 +480,114 @@ declare class DrawerStackService implements OnDestroy {
475
480
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DrawerStackService>;
476
481
  }
477
482
 
478
- type NavbarTab = {
479
- display: string;
480
- wsQueryTab: string;
481
- path: string;
482
- icon: string;
483
- routerLink: string;
483
+ declare namespace Alert {
484
+ enum Frequency {
485
+ Daily = 0,
486
+ Hourly = 1,
487
+ Immediate = 2,
488
+ Weekly = 3,
489
+ Monthly = 4
490
+ }
491
+ enum Days {
492
+ None = 0,
493
+ Monday = 1,
494
+ Tuesday = 2,
495
+ Wednesday = 4,
496
+ Thursday = 8,
497
+ Friday = 16,
498
+ Saturday = 32,
499
+ Sunday = 64,
500
+ AllDays = 127,
501
+ WeekDays = 31
502
+ }
503
+ }
504
+ type Alert = {
505
+ name: string;
506
+ description?: string;
507
+ query: Query;
508
+ timezone: string;
509
+ timezoneOffset?: string;
510
+ frequency: Alert.Frequency;
511
+ days: Alert.Days;
512
+ interval: number;
513
+ index: number;
514
+ times: string;
515
+ active: boolean;
516
+ combine: boolean;
517
+ respectTabSelection: boolean;
518
+ appQueryUrl?: string;
519
+ };
520
+ type Bookmark = {
521
+ id: string;
484
522
  queryName?: string;
523
+ label?: string;
524
+ source?: string;
525
+ sourceIconClass?: string;
526
+ author?: string;
527
+ parentFolder?: string;
528
+ parentFolderIconClass?: string;
529
+ };
530
+ type SearchItem = {
531
+ url: string;
532
+ path: string;
533
+ display: string;
534
+ label?: string;
535
+ filterCount?: number;
536
+ date: string;
537
+ queryParams?: QueryParams;
538
+ };
539
+ type Basket = {
540
+ name: string;
541
+ description?: string;
542
+ ids?: string[];
543
+ };
544
+ type UserSettingsState = {
545
+ bookmarks: Bookmark[];
546
+ recentSearches: SearchItem[];
547
+ savedSearches: SearchItem[];
548
+ baskets: Basket[];
549
+ alerts: Alert[];
550
+ assistants: Record<string, unknown>;
551
+ collapseAssistant?: boolean;
552
+ language?: string;
553
+ useDarkMode?: boolean;
554
+ };
555
+ type SearchesConfig = {
556
+ itemsPerPage?: number;
557
+ showLoadMore?: boolean;
558
+ routerLink?: string;
485
559
  };
486
- declare class NavbarTabsComponent {
487
- readonly router: Router;
488
- readonly route: ActivatedRoute;
489
- readonly drawerStack: DrawerStackService;
490
- readonly drawerOpened: _angular_core.WritableSignal<boolean>;
491
- readonly queryParamsStore: {
492
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
493
- name?: _angular_core.Signal<string | undefined> | undefined;
494
- sort?: _angular_core.Signal<string | undefined> | undefined;
495
- action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
496
- text?: _angular_core.Signal<string | undefined> | undefined;
497
- select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
498
- open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
499
- page?: _angular_core.Signal<number | undefined> | undefined;
500
- pageSize?: _angular_core.Signal<number | undefined> | undefined;
501
- tab?: _angular_core.Signal<string | undefined> | undefined;
502
- scope?: _angular_core.Signal<string | undefined> | undefined;
503
- basket?: _angular_core.Signal<string | undefined> | undefined;
504
- isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
505
- strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
506
- globalRelevance?: _angular_core.Signal<number | undefined> | undefined;
507
- questionLanguage?: _angular_core.Signal<string | undefined> | undefined;
508
- questionDefaultLanguage?: _angular_core.Signal<string | undefined> | undefined;
509
- spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined;
510
- spellingCorrectionFilter?: _angular_core.Signal<string | undefined> | undefined;
511
- documentWeight?: _angular_core.Signal<string | undefined> | undefined;
512
- textPartWeights?: _angular_core.Signal<string | undefined> | undefined;
513
- relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
514
- removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
515
- queryId?: _angular_core.Signal<string | undefined> | undefined;
516
- orderBy?: _angular_core.Signal<string | undefined> | undefined;
517
- groupBy?: _angular_core.Signal<string | undefined> | undefined;
518
- neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
519
- path?: _angular_core.Signal<string | undefined> | undefined;
520
- filters?: _angular_core.Signal<_sinequa_atomic.LegacyFilter[] | undefined> | undefined;
521
- id?: _angular_core.Signal<string | undefined> | undefined;
522
- setFromUrl: (url: string) => void;
523
- addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
524
- updateFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
525
- removeFilter: (field?: string) => void;
526
- removeFilterByName: (name?: string, column?: string) => void;
527
- clearFilters: () => void;
528
- clearBasket: () => void;
529
- patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void;
530
- getFilter: ({ field, name }: {
531
- field: string | undefined;
532
- name: string | undefined;
533
- }) => Partial<_sinequa_atomic.LegacyFilter & {
534
- count: number;
535
- }> | null;
536
- getQuery: () => _sinequa_atomic.Query;
537
- } & _ngrx_signals.StateSource<{
538
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
539
- name?: string | undefined;
540
- sort?: string | undefined;
541
- action?: "" | "search" | "open" | "aggregate" | undefined;
542
- text?: string | undefined;
543
- select?: _sinequa_atomic.Select[] | undefined;
544
- open?: _sinequa_atomic.Open[] | undefined;
545
- page?: number | undefined;
546
- pageSize?: number | undefined;
547
- tab?: string | undefined;
548
- scope?: string | undefined;
549
- basket?: string | undefined;
550
- isFirstPage?: boolean | undefined;
551
- strictRefine?: boolean | undefined;
552
- globalRelevance?: number | undefined;
553
- questionLanguage?: string | undefined;
554
- questionDefaultLanguage?: string | undefined;
555
- spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined;
556
- spellingCorrectionFilter?: string | undefined;
557
- documentWeight?: string | undefined;
558
- textPartWeights?: string | undefined;
559
- relevanceTransforms?: string | undefined;
560
- removeDuplicates?: boolean | undefined;
561
- queryId?: string | undefined;
562
- orderBy?: string | undefined;
563
- groupBy?: string | undefined;
564
- neuralSearch?: boolean | undefined;
565
- path?: string | undefined;
566
- filters?: _sinequa_atomic.LegacyFilter[] | undefined;
567
- id?: string | undefined;
568
- }>;
569
- searchText: _angular_core.Signal<string>;
570
- readonly visibleTabCount: _angular_core.WritableSignal<number | undefined>;
571
- readonly currentPath: _angular_core.Signal<string>;
572
- readonly tabs: _angular_core.Signal<NavbarTab[]>;
573
- readonly moreTabs: _angular_core.Signal<NavbarTab[]>;
574
- protected changeTab(tab: NavbarTab): void;
575
- constructor();
576
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavbarTabsComponent, never>;
577
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarTabsComponent, "navbar-tabs", never, {}, {}, never, never, true, never>;
578
- }
579
560
 
580
- declare class NoResultComponent {
581
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NoResultComponent, never>;
582
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NoResultComponent, "NoResult", never, {}, {}, never, never, true, never>;
583
- }
561
+ type ArticleMetadata = {
562
+ value: string;
563
+ display?: string;
564
+ count?: number;
565
+ };
584
566
 
585
- type PageConfiguration = {
586
- page: number;
587
- rowCount: number;
588
- pageSize: number;
567
+ type AggregationListItem = (AggregationItem & TreeAggregationNode) & {
568
+ icon?: string;
569
+ iconPath?: string;
589
570
  };
590
- declare class PagerComponent {
591
- readonly configuration: _angular_core.InputSignal<PageConfiguration>;
592
- protected readonly page: _angular_core.WritableSignal<number>;
593
- protected readonly hasPages: _angular_core.Signal<boolean>;
594
- private readonly queryService;
595
- constructor();
596
- nextPage(): void;
597
- previousPage(): void;
598
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PagerComponent, never>;
599
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PagerComponent, "pager", never, { "configuration": { "alias": "configuration"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
600
- }
571
+ type AggregationListEx = Aggregation & {
572
+ items: AggregationListItem[];
573
+ };
574
+ type AggregationTreeEx = TreeAggregation & {
575
+ items: AggregationListItem[];
576
+ };
577
+ type AggregationEx = AggregationListEx | AggregationTreeEx;
601
578
 
602
- /**
603
- * Represents a directive that enables infinite scrolling behavior.
604
- * This directive listens for the intersection of the element with the viewport
605
- * and emits a `loadMore` event when the element becomes visible.
606
- *
607
- * @remarks
608
- * This directive requires the `IntersectionObserver` API to be available in the browser.
609
- *
610
- * @example
611
- * ```html
612
- * <div infinityScroll (onScroll)="loadMore()">
613
- * <!-- Content to be scrolled -->
614
- * </div>
615
- * ```
616
- *
617
- */
618
- declare class InfinityScrollDirective implements OnDestroy {
619
- private el;
620
- options: _angular_core.InputSignal<{
621
- root: null;
622
- }>;
623
- onScroll: _angular_core.OutputEmitterRef<void>;
624
- private observer;
625
- constructor(el: ElementRef);
626
- ngOnDestroy(): void;
627
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfinityScrollDirective, never>;
628
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InfinityScrollDirective, "[infinity-scroll]", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; }, never, never, true, never>;
629
- }
579
+ type Autocomplete = {
580
+ bookmarks?: number;
581
+ recentSearches?: number;
582
+ savedSearches?: number;
583
+ };
630
584
 
631
- type KeyboardNavigationOnSelectionHandlers = {
632
- hideListbox?: boolean;
633
- resetSelection?: boolean;
634
- };
635
- type KeyboardNavigatorOptions = {
636
- name?: string;
637
- optionSelector: string;
638
- direction?: 'horizontal' | 'vertical' | 'both';
639
- selectOnFocus?: boolean;
640
- resetSelectionOnBlur?: boolean;
641
- onSelectionHandlers?: KeyboardNavigationOnSelectionHandlers;
642
- };
643
- declare class KeyboardNavigatorDirective implements OnDestroy {
644
- readonly keyboardNavigator: _angular_core.InputSignalWithTransform<KeyboardNavigatorOptions, KeyboardNavigatorOptions>;
645
- readonly listboxId: _angular_core.InputSignal<string>;
646
- readonly onFocus: _angular_core.OutputEmitterRef<void>;
647
- readonly onBlur: _angular_core.OutputEmitterRef<void>;
648
- readonly onSelected: _angular_core.OutputEmitterRef<HTMLElement | null>;
649
- readonly ariaExpanded: _angular_core.WritableSignal<boolean>;
650
- readonly activeDescendant: _angular_core.WritableSignal<string | undefined>;
651
- private readonly renderer;
652
- private readonly listboxElement;
653
- private readonly items;
654
- private readonly hasItems;
655
- private readonly currentIndex;
656
- private readonly previousIndex;
657
- private readonly unlisteners;
658
- private readonly mutationObserver;
659
- constructor();
660
- ngOnDestroy(): void;
661
- /** Attaches the listbox element based on the `listboxId`. */
662
- private attachListboxElement;
663
- /**
664
- * Merges given option with default options.
665
- * @param {KeyboardNavigatorOptions} options - Options to merge with defaults.
666
- * @returns {KeyboardNavigatorOptions} Merged options.
667
- */
668
- normalizeOptions(options: KeyboardNavigatorOptions): KeyboardNavigatorOptions;
669
- /** Focuses the listbox and selects the first item if configured to do so. */
670
- focus(): void;
671
- /** Blurs the listbox, hiding it and resetting selection if configured to do so. */
672
- blur(): void;
673
- /**
674
- * Moves selection to previous element in vertical and both navigation directions.
675
- * Does nothing if navigation direction is set to horizontal.
676
- */
677
- up(): void;
678
- /**
679
- * Moves selection to next element in vertical and both navigation directions.
680
- * Does nothing if navigation direction is set to horizontal.
681
- */
682
- down(): void;
683
- /**
684
- * Moves selection to first element in vertical and both navigation directions.
685
- * Does nothing if navigation direction is set to horizontal.
686
- */
687
- pageUp(): void;
688
- /**
689
- * Moves selection to last element in vertical and both navigation directions.
690
- * Does nothing if navigation direction is set to horizontal.
691
- */
692
- pageDown(): void;
693
- /**
694
- * Moves selection to previous element in horizontal and both navigation directions.
695
- * Does nothing if navigation direction is set to vertical.
696
- */
697
- left(): void;
698
- /**
699
- * Moves selection to next element in horizontal and both navigation directions.
700
- * Does nothing if navigation direction is set to vertical.
701
- */
702
- right(): void;
703
- /**
704
- * Moves selection to first element in horizontal and both navigation directions.
705
- * Does nothing if navigation direction is set to vertical.
706
- */
707
- home(): void;
708
- /**
709
- * Moves selection to last element in horizontal and both navigation directions.
710
- * Does nothing if navigation direction is set to vertical.
711
- */
712
- end(): void;
713
- /**
714
- * Selects the currently focused item and emits it.
715
- * Hides the listbox and resets selection if configured to do so.
716
- */
717
- enter(): void;
718
- /** Does nothing. */
719
- escape(): void;
720
- /**
721
- * Sets the listbox element based on the provided `listboxId`, expected to
722
- * be set via the `aria-controls` attribute. If the element is not found,
723
- * logs an error.
724
- */
725
- private setListboxElement;
726
- /**
727
- * Sets the items in the listbox by querying for elements matching the `optionSelector`.
728
- * Cleans up previous listeners and hooks new ones to handle item clicks.
729
- * Resets the selection state.
730
- */
731
- private setItems;
732
- /** Cleans up all event listeners that were added to the items. */
733
- private cleanupListeners;
734
- /** Resets the selection state. */
735
- resetSelection(): void;
736
- /**
737
- * Hooks click events on each item in the listbox, and registers a entry into
738
- * `unlisteners` for future cleanup.
739
- * `mousedown` event is used to ensure the click is registered before any blur events.
740
- */
741
- private hookItemsClicks;
742
- /**
743
- * Handles item click events, updates the current index, emits the selected item,
744
- * and hides the listbox if configured to do so.
745
- * @param {HTMLElement} element - The clicked item element.
746
- * @param {number} index - The index of the clicked item.
747
- */
748
- private itemClicked;
749
- /**
750
- * Moves the selection in the specified direction.
751
- * If `extreme` is true, it moves to the first or last item based on the direction.
752
- * If `extreme` is false, it wraps around the list.
753
- * @param {number} direction - The direction to move the selection: -1 for previous, 1 for next.
754
- * @param {boolean} extreme - Whether to move to the first or last item instead of wrapping around.
755
- * Defaults to false.
756
- */
757
- private moveSelection;
758
- /**
759
- * Updates the active item in the listbox.
760
- * If there was a previously active item, it sets its `aria-selected`
761
- * attribute to `false`. Sets the `aria-selected` attribute on the currently
762
- * active item, and scrolls it into view.
763
- */
764
- private updateActiveItem;
765
- /**
766
- * Shows the listbox by setting `aria-hidden` to `false` and updating the
767
- * `aria-expanded` state.
768
- */
769
- private showListbox;
770
- /**
771
- * Hides the listbox by setting `aria-hidden` to `true` and updating the
772
- * `aria-expanded` state.
773
- */
774
- private hideListbox;
775
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<KeyboardNavigatorDirective, never>;
776
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KeyboardNavigatorDirective, "input[role=\"combobox\"]", never, { "keyboardNavigator": { "alias": "keyboardNavigator"; "required": false; "isSignal": true; }; "listboxId": { "alias": "aria-controls"; "required": false; "isSignal": true; }; }, { "onFocus": "onFocus"; "onBlur": "onBlur"; "onSelected": "onSelected"; }, never, never, true, never>;
777
- }
778
-
779
- /**
780
- * Directive that opens an article on ctrl + enter.
781
- */
782
- declare class OpenArticleOnCtrlEnterDirective {
783
- private readonly previewService;
784
- readonly article: _angular_core.InputSignal<Article$1 | undefined>;
785
- onCtrlEnter(): void;
786
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OpenArticleOnCtrlEnterDirective, never>;
787
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OpenArticleOnCtrlEnterDirective, "[appOpenArticleOnCtrlEnter],[openArticleOnCtrlEnter]", never, { "article": { "alias": "article"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
788
- }
789
-
790
- /**
791
- * Directive to be used on elements that should be counted as items in the
792
- * overflow manager.
793
- */
794
- declare class OverflowItemDirective {
795
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowItemDirective, never>;
796
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowItemDirective, "[overflowItem]", never, {}, {}, never, never, true, never>;
797
- }
798
- /**
799
- * Directive to be used on the element that should be considered as the limit
800
- * for the overflow manager.
801
- */
802
- declare class OverflowStopDirective {
803
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowStopDirective, never>;
804
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowStopDirective, "[overflowStop]", never, {}, {}, never, never, true, never>;
805
- }
806
- /**
807
- * Directive that takes items and a stop element to count the number of items
808
- * that can fit before the stop element.
809
- * The directive will apply a `visibility: hidden` on the items that are not
810
- * visible.
811
- *
812
- * You can specify a target element to observe for resize events, otherwise the
813
- * directive will observe the element itself.
814
- *
815
- * This directive cannot be used on `hostDirectives` as it needs access to the
816
- * DOM elements. To use is as a host directive, wrap it in a `ng-container` and
817
- * define a target.
818
- *
819
- * @input target - The target element to observe for resize events.
820
- * @input margin - Margin to add for calculating the overflow.
821
- *
822
- * @output count - The number of items that can fit before the stop element,
823
- * count is debounced to avoid multiple updates.
824
- *
825
- * @example
826
- * ```typescript
827
- * <ng-container
828
- * overflowManager
829
- * class="flex gap-2 overflow-hidden"
830
- * [target]="el.nativeElement"
831
- * (count)="updateCount($event)"
832
- * >
833
- * <ul>
834
- * \@for (let item of [1, 2, 3, 4, 5]) {
835
- * <li overflowItem>{{ item }}</li>
836
- * }
837
- * </ul>
838
- *
839
- * <div overflowStop class="absolute right-0"></div>
840
- * </ng-container>
841
- * ```
842
- */
843
- declare class OverflowManagerDirective {
844
- readonly items: _angular_core.Signal<readonly ElementRef<any>[]>;
845
- readonly stop: _angular_core.Signal<ElementRef<any> | undefined>;
846
- readonly target: _angular_core.InputSignal<HTMLElement | undefined>;
847
- readonly margin: _angular_core.InputSignal<number>;
848
- readonly direction: _angular_core.InputSignal<"horizontal" | "vertical">;
849
- readonly count: _angular_core.OutputEmitterRef<number>;
850
- private readonly el;
851
- private readonly destroyRef;
852
- private readonly resizeObserver;
853
- private countSub;
854
- private _lastCount;
855
- constructor();
856
- /**
857
- * Counts the number of items that can fit before the stop element.
858
- * Emits the count if it has changed.
859
- * Debounces the count to avoid multiple updates.
860
- */
861
- countItems(): void;
862
- /**
863
- * Toggles the visibility of the items based on the count.
864
- * @param count - The number of items to keep visible.
865
- */
866
- toggleToCount(count: number): void;
867
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowManagerDirective, never>;
868
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowManagerDirective, "[overflowManager]", never, { "target": { "alias": "target"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, { "count": "count"; }, ["items", "stop"], never, true, never>;
869
- }
870
-
871
- type SelectionStrategy = 'replace' | 'stack';
872
- /**
873
- * Directive that selects an article on click.
874
- */
875
- declare class SelectArticleOnClickDirective {
876
- private readonly drawerStack;
877
- readonly article: _angular_core.InputSignal<Partial<Article$1> | undefined>;
878
- readonly strategy: _angular_core.InputSignal<SelectionStrategy>;
879
- onEnter(e: Event): void;
880
- onClick(): void;
881
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectArticleOnClickDirective, never>;
882
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectArticleOnClickDirective, "[appSelectArticleOnClick],[selectArticleOnClick]", never, { "article": { "alias": "article"; "required": true; "isSignal": true; }; "strategy": { "alias": "strategy"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
883
- }
884
-
885
- /**
886
- * Directive that handles the behavior of showing a bookmark for an article.
887
- *
888
- * @remarks
889
- * This directive listens to mouse enter and mouse leave events to determine when to show the bookmark.
890
- * It also checks the user's settings to determine if the article is bookmarked.
891
- *
892
- * @example
893
- * ```html
894
- * <div showBookmark [article]="currentArticle" (showBookmark)="onShowBookmark($event)"></div>
895
- * ```
896
- */
897
- declare class ShowBookmarkDirective {
898
- mouseEnter(): void;
899
- mouseLeave(): void;
900
- protected bookmarkHovered: _angular_core.WritableSignal<boolean>;
901
- userSettingsStore: {
902
- bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>;
903
- recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>;
904
- savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>;
905
- baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>;
906
- assistants: _angular_core.Signal<Record<string, unknown>>;
907
- alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
908
- collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
909
- language?: _angular_core.Signal<string | undefined> | undefined;
910
- updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
911
- bookmark: (article: Article$1, queryName?: string) => Promise<void>;
912
- unbookmark: (id: string) => Promise<void>;
913
- isBookmarked: (article: Partial<Article$1>) => boolean;
914
- toggleBookmark: (article: Article$1) => Promise<void>;
915
- deleteRecentSearch: (index: number) => Promise<void>;
916
- updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
917
- addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise<void>;
918
- deleteSavedSearch: (index: number) => Promise<void>;
919
- updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise<void>;
920
- getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined;
921
- deleteBasket: (index: number) => Promise<void>;
922
- createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise<void>;
923
- updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise<void>;
924
- updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise<void>;
925
- addToBasket: (name: string, ids: string | string[]) => Promise<void>;
926
- removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
927
- updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise<void>;
928
- updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
929
- updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
930
- initialize: () => Promise<void>;
931
- reset: () => Promise<void>;
932
- deleteAlert: (index: number) => Promise<void>;
933
- createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
934
- updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
935
- updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
936
- } & _ngrx_signals.StateSource<{
937
- bookmarks: _sinequa_atomic_angular.Bookmark[];
938
- recentSearches: _sinequa_atomic_angular.SearchItem[];
939
- savedSearches: _sinequa_atomic_angular.SearchItem[];
940
- baskets: _sinequa_atomic_angular.Basket[];
941
- assistants: Record<string, unknown>;
942
- alerts: _sinequa_atomic_angular.Alert[];
943
- collapseAssistant?: boolean | undefined;
944
- language?: string | undefined;
945
- }>;
946
- protected isBookmarked: _angular_core.Signal<boolean>;
947
- readonly article: _angular_core.InputSignal<Article$1 | Partial<Article$1> | undefined>;
948
- readonly showBookmark: _angular_core.OutputEmitterRef<boolean>;
949
- constructor();
950
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShowBookmarkDirective, never>;
951
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShowBookmarkDirective, "[showBookmark]", never, { "article": { "alias": "article"; "required": true; "isSignal": true; }; }, { "showBookmark": "showBookmark"; }, never, never, true, never>;
952
- }
953
-
954
- /**
955
- * This directive is used to apply a theme to a native element based on the theme scope.
956
- */
957
- declare class ThemeProviderDirective {
958
- readonly themeProvider: _angular_core.InputSignal<string>;
959
- readonly host: ElementRef<any>;
960
- readonly themeStore: {
961
- scopes: _angular_core.Signal<_sinequa_atomic_angular.ThemeScope>;
962
- loadDefaultTheme: (scope: string, darkMode?: boolean) => void;
963
- setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void;
964
- setDarkMode: (scope: string, darkMode: boolean) => void;
965
- } & _ngrx_signals.StateSource<{
966
- scopes: _sinequa_atomic_angular.ThemeScope;
967
- }>;
968
- constructor();
969
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeProviderDirective, never>;
970
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThemeProviderDirective, "[themeProvider]", never, { "themeProvider": { "alias": "themeProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
971
- }
972
-
973
- /**
974
- * Directive to mark a child element for special processing.
975
- * This can be used to apply specific styles or behaviors to child elements.
976
- * Specifically, it can be used to mark elements that should be treated as children in a parent component.
977
- * Very useful for components that need to render child templates dynamically with `@for loop`.
978
- *
979
- * Example usage:
980
- * ```html
981
- * <sponsored-links>
982
- * <span *childMarker>Child Element</span>
983
- * </sponsored-links>
984
- * ```
985
- * This will allow the parent component to recognize the `<span>` as a child element and apply any specific logic or styles defined in the parent component.
986
- */
987
- declare class ChildMarkerDirective {
988
- template: TemplateRef<any>;
989
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChildMarkerDirective, never>;
990
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ChildMarkerDirective, "[childMarker]", never, {}, {}, never, never, true, never>;
991
- }
992
-
993
- declare class SearchInputComponent {
994
- cn: typeof cn;
995
- searchInput: _angular_core.Signal<ElementRef<any>>;
996
- /**
997
- * Emits an event when an element is selected or deselected.
998
- *
999
- * @remarks
1000
- * The event payload is either the selected HTMLElement or `null` if the selection is cleared.
1001
- *
1002
- * @eventProperty
1003
- */
1004
- onSelected: _angular_core.OutputEmitterRef<HTMLElement | null>;
1005
- /**
1006
- * A required form control for handling string input in the search component.
1007
- *
1008
- * This control is initialized using the `input.required` method, ensuring that
1009
- * the associated input field is mandatory and will enforce validation for non-empty values.
1010
- *
1011
- * @remarks
1012
- * This is typically used to bind to an Angular form input element, providing
1013
- * reactive form validation and value tracking.
1014
- *
1015
- * @type FormControl<string>
1016
- */
1017
- control: _angular_core.InputSignal<FormControl<string>>;
1018
- controls: _angular_core.InputSignal<string>;
1019
- keyboardNavigatorOptions: _angular_core.InputSignal<KeyboardNavigatorOptions>;
1020
- placeholder: _angular_core.InputSignal<string>;
1021
- disabled: _angular_core.InputSignal<boolean>;
1022
- hotkey: _angular_core.InputSignal<string>;
1023
- class: _angular_core.InputSignal<string | undefined>;
1024
- variant: _angular_core.InputSignal<"default" | "basic" | "prompt" | null | undefined>;
1025
- variants: _angular_core.Signal<string>;
1026
- onInput(event: Event): void;
1027
- clearSearch(e: Event): void;
1028
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchInputComponent, never>;
1029
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchInputComponent, "SearchInput", never, { "control": { "alias": "control"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; "keyboardNavigatorOptions": { "alias": "keyboardNavigatorOptions"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hotkey": { "alias": "hotkey"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "onSelected": "onSelected"; }, never, ["*"], true, never>;
1030
- }
1031
-
1032
- type SortingChoice = CCSortingChoice & {
1033
- $isDesc?: boolean;
1034
- };
1035
- declare class SortSelectorComponent {
1036
- dropdown: _angular_core.Signal<DropdownComponent | undefined>;
1037
- readonly result: _angular_core.InputSignal<Result>;
1038
- readonly position: _angular_core.InputSignal<Placement>;
1039
- readonly onSort: _angular_core.OutputEmitterRef<SortingChoice>;
1040
- appStore: {
1041
- webServices: _ngrx_signals.DeepSignal<{}>;
1042
- queries: _ngrx_signals.DeepSignal<{}>;
1043
- customJSONs: _angular_core.Signal<_sinequa_atomic_angular.SideCJson[]>;
1044
- data: _ngrx_signals.DeepSignal<{}>;
1045
- customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>;
1046
- sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>;
1047
- filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>;
1048
- general: _angular_core.Signal<{
1049
- name?: string;
1050
- logo?: {
1051
- alt?: string;
1052
- light?: {
1053
- small?: string;
1054
- large?: string;
1055
- };
1056
- dark?: {
1057
- small?: string;
1058
- large?: string;
1059
- };
1060
- };
1061
- } | undefined>;
1062
- assistants: _angular_core.Signal<Record<string, any>>;
1063
- initialize: () => Promise<void>;
1064
- initializeWithAppName: (appName: string) => Promise<void>;
1065
- update: (app: _sinequa_atomic.CCApp) => void;
1066
- getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined;
1067
- getLabels: () => {
1068
- private: string;
1069
- public: string;
1070
- };
1071
- getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined;
1072
- getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined;
1073
- getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined;
1074
- allowEmptySearch: (queryName: string) => boolean;
1075
- allowLabels: () => boolean;
1076
- getColumnAlias: (column: string) => string;
1077
- getColumn: (column: string) => _sinequa_atomic.CCColumn | undefined;
1078
- isDateColumn: (column: string) => boolean;
1079
- isTabSearch: (queryName: string) => boolean;
1080
- getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
1081
- getAuthorizedFilters: (route: _angular_router.ActivatedRoute) => _sinequa_atomic.Aggregation[];
1082
- getNamedCustomizationJson: (name: string) => any | undefined;
1083
- getAggregationIcon: (column: string) => string | undefined;
1084
- getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
1085
- getAggregationCustomization: (column: string) => _sinequa_atomic_angular.CFilter | undefined;
1086
- isAssistantAllowed: (assistantName: string) => boolean;
1087
- } & _ngrx_signals.StateSource<{
1088
- webServices: {};
1089
- queries: {};
1090
- customJSONs: _sinequa_atomic_angular.SideCJson[];
1091
- data: {};
1092
- }>;
1093
- readonly queryName: _angular_core.Signal<string>;
1094
- readonly sortOptions: _angular_core.Signal<SortingChoice[]>;
1095
- readonly sort: _angular_core.Signal<SortingChoice | undefined>;
1096
- readonly isSortingDesc: _angular_core.Signal<boolean | undefined>;
1097
- onSortOptionClicked(sort: SortingChoice): void;
1098
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SortSelectorComponent, never>;
1099
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SortSelectorComponent, "sort-selector, sortselector, SortSelector", never, { "result": { "alias": "result"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, { "onSort": "onSort"; }, never, never, true, never>;
1100
- }
1101
-
1102
- declare class SourceComponent {
1103
- readonly collection: _angular_core.InputSignal<string[] | undefined>;
1104
- readonly connector: _angular_core.InputSignal<string>;
1105
- private readonly appStore;
1106
- readonly iconDetails: _angular_core.Signal<{
1107
- iconClass: string;
1108
- iconPath?: string;
1109
- } | undefined>;
1110
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SourceComponent, never>;
1111
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SourceComponent, "source, Source", never, { "collection": { "alias": "collection"; "required": false; "isSignal": true; }; "connector": { "alias": "connector"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1112
- }
1113
-
1114
- declare class SponsoredResultsComponent {
1115
- /**
1116
- * The directive used to mark the child template for the "Promoted" badge.
1117
- * This allows users to customize the appearance of the badge.
1118
- */
1119
- childElement: _angular_core.Signal<ChildMarkerDirective | undefined>;
1120
- injector: Injector;
1121
- appStore: {
1122
- webServices: _ngrx_signals.DeepSignal<{}>;
1123
- queries: _ngrx_signals.DeepSignal<{}>;
1124
- customJSONs: _angular_core.Signal<_sinequa_atomic_angular.SideCJson[]>;
1125
- data: _ngrx_signals.DeepSignal<{}>;
1126
- customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>;
1127
- sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>;
1128
- filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>;
1129
- general: _angular_core.Signal<{
1130
- name?: string;
1131
- logo?: {
1132
- alt?: string;
1133
- light?: {
1134
- small?: string;
1135
- large?: string;
1136
- };
1137
- dark?: {
1138
- small?: string;
1139
- large?: string;
1140
- };
1141
- };
1142
- } | undefined>;
1143
- assistants: _angular_core.Signal<Record<string, any>>;
1144
- initialize: () => Promise<void>;
1145
- initializeWithAppName: (appName: string) => Promise<void>;
1146
- update: (app: CCApp) => void;
1147
- getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined;
1148
- getLabels: () => {
1149
- private: string;
1150
- public: string;
1151
- };
1152
- getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined;
1153
- getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined;
1154
- getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined;
1155
- allowEmptySearch: (queryName: string) => boolean;
1156
- allowLabels: () => boolean;
1157
- getColumnAlias: (column: string) => string;
1158
- getColumn: (column: string) => _sinequa_atomic.CCColumn | undefined;
1159
- isDateColumn: (column: string) => boolean;
1160
- isTabSearch: (queryName: string) => boolean;
1161
- getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
1162
- getAuthorizedFilters: (route: _angular_router.ActivatedRoute) => _sinequa_atomic.Aggregation[];
1163
- getNamedCustomizationJson: (name: string) => any | undefined;
1164
- getAggregationIcon: (column: string) => string | undefined;
1165
- getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
1166
- getAggregationCustomization: (column: string) => _sinequa_atomic_angular.CFilter | undefined;
1167
- isAssistantAllowed: (assistantName: string) => boolean;
1168
- } & _ngrx_signals.StateSource<{
1169
- webServices: {};
1170
- queries: {};
1171
- customJSONs: _sinequa_atomic_angular.SideCJson[];
1172
- data: {};
1173
- }>;
1174
- queryParamStore: {
1175
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
1176
- name?: _angular_core.Signal<string | undefined> | undefined;
1177
- sort?: _angular_core.Signal<string | undefined> | undefined;
1178
- action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
1179
- text?: _angular_core.Signal<string | undefined> | undefined;
1180
- select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
1181
- open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
1182
- page?: _angular_core.Signal<number | undefined> | undefined;
1183
- pageSize?: _angular_core.Signal<number | undefined> | undefined;
1184
- tab?: _angular_core.Signal<string | undefined> | undefined;
1185
- scope?: _angular_core.Signal<string | undefined> | undefined;
1186
- basket?: _angular_core.Signal<string | undefined> | undefined;
1187
- isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
1188
- strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
1189
- globalRelevance?: _angular_core.Signal<number | undefined> | undefined;
1190
- questionLanguage?: _angular_core.Signal<string | undefined> | undefined;
1191
- questionDefaultLanguage?: _angular_core.Signal<string | undefined> | undefined;
1192
- spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined;
1193
- spellingCorrectionFilter?: _angular_core.Signal<string | undefined> | undefined;
1194
- documentWeight?: _angular_core.Signal<string | undefined> | undefined;
1195
- textPartWeights?: _angular_core.Signal<string | undefined> | undefined;
1196
- relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
1197
- removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
1198
- queryId?: _angular_core.Signal<string | undefined> | undefined;
1199
- orderBy?: _angular_core.Signal<string | undefined> | undefined;
1200
- groupBy?: _angular_core.Signal<string | undefined> | undefined;
1201
- neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
1202
- path?: _angular_core.Signal<string | undefined> | undefined;
1203
- filters?: _angular_core.Signal<_sinequa_atomic.LegacyFilter[] | undefined> | undefined;
1204
- id?: _angular_core.Signal<string | undefined> | undefined;
1205
- setFromUrl: (url: string) => void;
1206
- addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
1207
- updateFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
1208
- removeFilter: (field?: string) => void;
1209
- removeFilterByName: (name?: string, column?: string) => void;
1210
- clearFilters: () => void;
1211
- clearBasket: () => void;
1212
- patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void;
1213
- getFilter: ({ field, name }: {
1214
- field: string | undefined;
1215
- name: string | undefined;
1216
- }) => Partial<_sinequa_atomic.LegacyFilter & {
1217
- count: number;
1218
- }> | null;
1219
- getQuery: () => _sinequa_atomic.Query;
1220
- } & _ngrx_signals.StateSource<{
1221
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
1222
- name?: string | undefined;
1223
- sort?: string | undefined;
1224
- action?: "" | "search" | "open" | "aggregate" | undefined;
1225
- text?: string | undefined;
1226
- select?: _sinequa_atomic.Select[] | undefined;
1227
- open?: _sinequa_atomic.Open[] | undefined;
1228
- page?: number | undefined;
1229
- pageSize?: number | undefined;
1230
- tab?: string | undefined;
1231
- scope?: string | undefined;
1232
- basket?: string | undefined;
1233
- isFirstPage?: boolean | undefined;
1234
- strictRefine?: boolean | undefined;
1235
- globalRelevance?: number | undefined;
1236
- questionLanguage?: string | undefined;
1237
- questionDefaultLanguage?: string | undefined;
1238
- spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined;
1239
- spellingCorrectionFilter?: string | undefined;
1240
- documentWeight?: string | undefined;
1241
- textPartWeights?: string | undefined;
1242
- relevanceTransforms?: string | undefined;
1243
- removeDuplicates?: boolean | undefined;
1244
- queryId?: string | undefined;
1245
- orderBy?: string | undefined;
1246
- groupBy?: string | undefined;
1247
- neuralSearch?: boolean | undefined;
1248
- path?: string | undefined;
1249
- filters?: _sinequa_atomic.LegacyFilter[] | undefined;
1250
- id?: string | undefined;
1251
- }>;
1252
- /**
1253
- * The maximum number of sponsored results to display.
1254
- * This is set to 3 by default, but can be overridden by the `maxSponsoredResults` query parameter.
1255
- */
1256
- slice: _angular_core.InputSignal<number>;
1257
- /**
1258
- * Whether to display the "Promoted" badge next to sponsored results.
1259
- * This is set to true by default, but can be overridden by the `displayPromoted` query parameter.
1260
- */
1261
- displayPromoted: _angular_core.InputSignal<boolean>;
1262
- sponsoredLinks: _angular_core.Signal<string>;
1263
- readonly sponsoredResults: _angular_core.WritableSignal<LinkResult[] | undefined>;
1264
- constructor();
1265
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SponsoredResultsComponent, never>;
1266
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SponsoredResultsComponent, "sponsored-results, SponsoredResults, sponsoredresults", never, { "slice": { "alias": "slice"; "required": false; "isSignal": true; }; "displayPromoted": { "alias": "displayPromoted"; "required": false; "isSignal": true; }; }, {}, ["childElement"], never, true, never>;
1267
- }
1268
-
1269
- declare const THEMES: {
1270
- name: string;
1271
- id: string;
1272
- private: boolean;
1273
- colors: {
1274
- 'button-primary-background': string;
1275
- background: string;
1276
- foreground: string;
1277
- card: string;
1278
- 'card-foreground': string;
1279
- active: string;
1280
- 'active-foreground': string;
1281
- 'active-background': string;
1282
- primary: string;
1283
- 'primary-foreground': string;
1284
- secondary: string;
1285
- 'secondary-foreground': string;
1286
- muted: string;
1287
- 'muted-foreground': string;
1288
- accent: string;
1289
- 'accent-foreground': string;
1290
- destructive: string;
1291
- 'destructive-foreground': string;
1292
- border: string;
1293
- input: string;
1294
- ring: string;
1295
- };
1296
- colorsDark: {
1297
- background: string;
1298
- foreground: string;
1299
- card: string;
1300
- 'card-foreground': string;
1301
- active: string;
1302
- 'active-foreground': string;
1303
- 'active-background': string;
1304
- primary: string;
1305
- 'primary-foreground': string;
1306
- secondary: string;
1307
- 'secondary-foreground': string;
1308
- muted: string;
1309
- 'muted-foreground': string;
1310
- accent: string;
1311
- 'accent-foreground': string;
1312
- destructive: string;
1313
- 'destructive-foreground': string;
1314
- border: string;
1315
- input: string;
1316
- ring: string;
1317
- };
1318
- }[];
1319
- type Theme = (typeof THEMES)[number];
1320
-
1321
- declare class ThemeSelectorComponent {
1322
- readonly scope: _angular_core.InputSignal<string>;
1323
- readonly showPrivate: _angular_core.InputSignal<boolean>;
1324
- readonly themes: _angular_core.Signal<{
1325
- name: string;
1326
- id: string;
1327
- private: boolean;
1328
- colors: {
1329
- 'button-primary-background': string;
1330
- background: string;
1331
- foreground: string;
1332
- card: string;
1333
- 'card-foreground': string;
1334
- active: string;
1335
- 'active-foreground': string;
1336
- 'active-background': string;
1337
- primary: string;
1338
- 'primary-foreground': string;
1339
- secondary: string;
1340
- 'secondary-foreground': string;
1341
- muted: string;
1342
- 'muted-foreground': string;
1343
- accent: string;
1344
- 'accent-foreground': string;
1345
- destructive: string;
1346
- 'destructive-foreground': string;
1347
- border: string;
1348
- input: string;
1349
- ring: string;
1350
- };
1351
- colorsDark: {
1352
- background: string;
1353
- foreground: string;
1354
- card: string;
1355
- 'card-foreground': string;
1356
- active: string;
1357
- 'active-foreground': string;
1358
- 'active-background': string;
1359
- primary: string;
1360
- 'primary-foreground': string;
1361
- secondary: string;
1362
- 'secondary-foreground': string;
1363
- muted: string;
1364
- 'muted-foreground': string;
1365
- accent: string;
1366
- 'accent-foreground': string;
1367
- destructive: string;
1368
- 'destructive-foreground': string;
1369
- border: string;
1370
- input: string;
1371
- ring: string;
1372
- };
1373
- }[]>;
1374
- readonly selectedTheme: _angular_core.ModelSignal<string | undefined>;
1375
- readonly themeStore: {
1376
- scopes: _angular_core.Signal<_sinequa_atomic_angular.ThemeScope>;
1377
- loadDefaultTheme: (scope: string, darkMode?: boolean) => void;
1378
- setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void;
1379
- setDarkMode: (scope: string, darkMode: boolean) => void;
1380
- } & _ngrx_signals.StateSource<{
1381
- scopes: _sinequa_atomic_angular.ThemeScope;
1382
- }>;
1383
- constructor();
1384
- selectTheme(theme: string): void;
1385
- selectTheme(theme: Theme): void;
1386
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeSelectorComponent, never>;
1387
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeSelectorComponent, "theme-selector", never, { "scope": { "alias": "scope"; "required": true; "isSignal": true; }; "showPrivate": { "alias": "showPrivate"; "required": false; "isSignal": true; }; "selectedTheme": { "alias": "selectedTheme"; "required": false; "isSignal": true; }; }, { "selectedTheme": "selectedThemeChange"; }, never, ["*"], true, never>;
1388
- }
1389
-
1390
- declare class ThemeToggleComponent {
1391
- readonly scope: _angular_core.InputSignal<string>;
1392
- readonly darkMode: _angular_core.ModelSignal<boolean | undefined>;
1393
- private readonly themeStore;
1394
- constructor();
1395
- toggleDarkMode(status: boolean): void;
1396
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeToggleComponent, never>;
1397
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggleComponent, "theme-toggle", never, { "scope": { "alias": "scope"; "required": true; "isSignal": true; }; "darkMode": { "alias": "darkMode"; "required": false; "isSignal": true; }; }, { "darkMode": "darkModeChange"; }, never, never, true, never>;
1398
- }
1399
-
1400
- /**
1401
- * Returns a guard function that checks if the user is authenticated.
1402
- * If the user is not authenticated, it navigates to the login page.
1403
- * @returns The guard function.
1404
- */
1405
- declare function AuthGuard(): CanActivateFn;
1406
-
1407
- /**
1408
- * Intercepts HTTP requests to add audit information if the request URL includes the API path.
1409
- *
1410
- * This interceptor checks if the request URL contains the specified API path from the global configuration.
1411
- * If the request body is JSON serializable and not an instance of `HttpParams`, it adds additional audit information
1412
- * to the request body using the `addAuditAdditionalInfo` function.
1413
- *
1414
- * @param request - The HTTP request to be intercepted.
1415
- * @param next - The next handler in the HTTP request chain.
1416
- * @returns The next handler in the HTTP request chain, potentially with modified request body.
1417
- */
1418
- declare const auditInterceptorFn: HttpInterceptorFn;
1419
-
1420
- /**
1421
- * Intercepts HTTP requests to add authentication headers and handle CSRF tokens.
1422
- *
1423
- * This interceptor checks if the user is logged in and adds necessary headers
1424
- * to the request, including a CSRF token. If user override is active, it sets
1425
- * the override user and domain headers instead. It also updates the CSRF token
1426
- * from the response headers if present.
1427
- *
1428
- * @param request - The outgoing HTTP request.
1429
- * @param next - The next handler in the HTTP request pipeline.
1430
- * @returns An observable of the HTTP event stream.
1431
- */
1432
- declare const authInterceptorFn: HttpInterceptorFn;
1433
-
1434
- /**
1435
- * Interceptor function that modifies the request body by appending a "locale" parameter with the value "fr".
1436
- * If the request body is of type FormData, the "locale" parameter is appended directly.
1437
- * If the request body is an object, a new object is created with the "locale" parameter added.
1438
- *
1439
- * @param request - The HTTP request object.
1440
- * @param next - The HTTP handler function.
1441
- * @returns The modified request object.
1442
- */
1443
- declare const bodyInterceptorFn: (request: HttpRequest<unknown>, next: HttpHandlerFn) => rxjs.Observable<_angular_common_http.HttpEvent<unknown>>;
1444
-
1445
- /**
1446
- * Interceptor function that handles HTTP errors by logging out the user and redirecting to the login page.
1447
- *
1448
- * @param request - The HTTP request object.
1449
- * @param next - The HTTP handler function.
1450
- * @returns The modified request object.
1451
- */
1452
- declare const errorInterceptorFn: HttpInterceptorFn;
1453
-
1454
- /**
1455
- * Intercepts HTTP requests and handles errors by displaying toast notifications.
1456
- *
1457
- * This interceptor checks if the request URL includes 'api/v1/audit.notify'. If it does,
1458
- * the request is passed through without any modifications. For other requests, it catches
1459
- * errors and displays a toast notification for specific HTTP status codes (400, 403, 500, 503).
1460
- *
1461
- * @param request - The outgoing HTTP request.
1462
- * @param next - The next handler in the HTTP request pipeline.
1463
- * @returns An observable that either passes the request through or handles errors with toast notifications.
1464
- */
1465
- declare const toastInterceptorFn: HttpInterceptorFn;
1466
-
1467
- declare namespace Alert {
1468
- enum Frequency {
1469
- Daily = 0,
1470
- Hourly = 1,
1471
- Immediate = 2,
1472
- Weekly = 3,
1473
- Monthly = 4
1474
- }
1475
- enum Days {
1476
- None = 0,
1477
- Monday = 1,
1478
- Tuesday = 2,
1479
- Wednesday = 4,
1480
- Thursday = 8,
1481
- Friday = 16,
1482
- Saturday = 32,
1483
- Sunday = 64,
1484
- AllDays = 127,
1485
- WeekDays = 31
1486
- }
1487
- }
1488
- type Alert = {
1489
- name: string;
1490
- description?: string;
1491
- query: Query;
1492
- timezone: string;
1493
- timezoneOffset?: string;
1494
- frequency: Alert.Frequency;
1495
- days: Alert.Days;
1496
- interval: number;
1497
- index: number;
1498
- times: string;
1499
- active: boolean;
1500
- combine: boolean;
1501
- respectTabSelection: boolean;
1502
- appQueryUrl?: string;
1503
- };
1504
- type Bookmark = {
1505
- id: string;
1506
- queryName?: string;
1507
- label?: string;
1508
- source?: string;
1509
- sourceIconClass?: string;
1510
- author?: string;
1511
- parentFolder?: string;
1512
- parentFolderIconClass?: string;
1513
- };
1514
- type SearchItem = {
1515
- url: string;
1516
- path: string;
1517
- display: string;
1518
- label?: string;
1519
- filterCount?: number;
1520
- date: string;
1521
- queryParams?: QueryParams;
1522
- };
1523
- type Basket = {
1524
- name: string;
1525
- description?: string;
1526
- ids?: string[];
1527
- };
1528
- type UserSettingsState = {
1529
- bookmarks: Bookmark[];
1530
- recentSearches: SearchItem[];
1531
- savedSearches: SearchItem[];
1532
- baskets: Basket[];
1533
- alerts: Alert[];
1534
- assistants: Record<string, unknown>;
1535
- collapseAssistant?: boolean;
1536
- language?: string;
1537
- };
1538
- type SearchesConfig = {
1539
- itemsPerPage?: number;
1540
- showLoadMore?: boolean;
1541
- routerLink?: string;
1542
- };
1543
-
1544
- type ArticleMetadata = {
1545
- value: string;
1546
- display?: string;
1547
- count?: number;
1548
- };
1549
-
1550
- type AggregationListItem = (AggregationItem & TreeAggregationNode) & {
1551
- icon?: string;
1552
- iconPath?: string;
1553
- };
1554
- type AggregationListEx = Aggregation & {
1555
- items: AggregationListItem[];
1556
- };
1557
- type AggregationTreeEx = TreeAggregation & {
1558
- items: AggregationListItem[];
1559
- };
1560
- type AggregationEx = AggregationListEx | AggregationTreeEx;
1561
-
1562
- type Autocomplete = {
1563
- bookmarks?: number;
1564
- recentSearches?: number;
1565
- savedSearches?: number;
1566
- };
1567
-
1568
- type CJson = Record<string, any>;
1569
- type SideCJson = {
1570
- name: string;
1571
- data: CJson;
1572
- _itemId?: number;
1573
- preLogin?: boolean;
585
+ type CJson = Record<string, any>;
586
+ type SideCJson = {
587
+ name: string;
588
+ data: CJson;
589
+ _itemId?: number;
590
+ preLogin?: boolean;
1574
591
  };
1575
592
  type AppCJson = {
1576
593
  data: CJson;
@@ -1645,6 +662,9 @@ type CJsonMint = CJson & {
1645
662
  large?: string;
1646
663
  };
1647
664
  };
665
+ features?: {
666
+ advancedSearch?: boolean;
667
+ };
1648
668
  };
1649
669
  };
1650
670
 
@@ -1657,162 +677,6 @@ type FilterDropdown = {
1657
677
  hidden?: boolean;
1658
678
  };
1659
679
 
1660
- /**
1661
- * The HighlightWordPipe class is a custom pipe in the Atomic Angular library.
1662
- * It is used to highlight a specific word within a given text.
1663
- *
1664
- * @remarks
1665
- * This pipe takes in a `value` string, a `word` string to highlight, and an optional `clipBy` number to limit the length of the highlighted text.
1666
- * It returns an array of `HighlightWords.Chunk` objects representing the highlighted portions of the text.
1667
- *
1668
- * @example
1669
- * ```html
1670
- * <div [innerHTML]="text | highlightWord:'search':10"></div>
1671
- * ```
1672
- *
1673
- */
1674
- declare class HighlightWordPipe implements PipeTransform {
1675
- transform(value: string, word: string, clipBy?: number): HighlightWords.Chunk[];
1676
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HighlightWordPipe, never>;
1677
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<HighlightWordPipe, "highlightWord", true>;
1678
- }
1679
-
1680
- /**
1681
- * Pipe that transforms a collection of strings into a corresponding icon class.
1682
- *
1683
- * This pipe uses the first element of the collection to determine the icon class
1684
- * based on the source name. If the collection is empty or undefined, it returns
1685
- * a default icon class.
1686
- *
1687
- * @deprecated This pipe is deprecated and will be removed in the future.
1688
- *
1689
- * @param collection - An array of strings representing the collection.
1690
- * @returns A string representing the icon class.
1691
- */
1692
- declare class SourceIconPipe implements PipeTransform {
1693
- appStore: {
1694
- webServices: _ngrx_signals.DeepSignal<{}>;
1695
- queries: _ngrx_signals.DeepSignal<{}>;
1696
- customJSONs: _angular_core.Signal<_sinequa_atomic_angular.SideCJson[]>;
1697
- data: _ngrx_signals.DeepSignal<{}>;
1698
- customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>;
1699
- sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>;
1700
- filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>;
1701
- general: _angular_core.Signal<{
1702
- name?: string;
1703
- logo?: {
1704
- alt?: string;
1705
- light?: {
1706
- small?: string;
1707
- large?: string;
1708
- };
1709
- dark?: {
1710
- small?: string;
1711
- large?: string;
1712
- };
1713
- };
1714
- } | undefined>;
1715
- assistants: _angular_core.Signal<Record<string, any>>;
1716
- initialize: () => Promise<void>;
1717
- initializeWithAppName: (appName: string) => Promise<void>;
1718
- update: (app: _sinequa_atomic.CCApp) => void;
1719
- getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined;
1720
- getLabels: () => {
1721
- private: string;
1722
- public: string;
1723
- };
1724
- getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined;
1725
- getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined;
1726
- getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined;
1727
- allowEmptySearch: (queryName: string) => boolean;
1728
- allowLabels: () => boolean;
1729
- getColumnAlias: (column: string) => string;
1730
- getColumn: (column: string) => _sinequa_atomic.CCColumn | undefined;
1731
- isDateColumn: (column: string) => boolean;
1732
- isTabSearch: (queryName: string) => boolean;
1733
- getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
1734
- getAuthorizedFilters: (route: _angular_router.ActivatedRoute) => _sinequa_atomic.Aggregation[];
1735
- getNamedCustomizationJson: (name: string) => any | undefined;
1736
- getAggregationIcon: (column: string) => string | undefined;
1737
- getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
1738
- getAggregationCustomization: (column: string) => _sinequa_atomic_angular.CFilter | undefined;
1739
- isAssistantAllowed: (assistantName: string) => boolean;
1740
- } & _ngrx_signals.StateSource<{
1741
- webServices: {};
1742
- queries: {};
1743
- customJSONs: _sinequa_atomic_angular.SideCJson[];
1744
- data: {};
1745
- }>;
1746
- transform(collection: string[]): string;
1747
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SourceIconPipe, never>;
1748
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<SourceIconPipe, "sourceIcon", true>;
1749
- }
1750
-
1751
- declare class OperatorPipe implements PipeTransform {
1752
- private readonly transloco;
1753
- private lastTransformedValue;
1754
- private readonly cdr;
1755
- private readonly destroyRef;
1756
- transform(filter?: LegacyFilter): string;
1757
- private transformFilter;
1758
- transformOperator(operator?: FilterOperator): string;
1759
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OperatorPipe, never>;
1760
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<OperatorPipe, "operator", true>;
1761
- }
1762
-
1763
- /**
1764
- * The `SyslangPipe` class is a custom pipe that transforms a string value using the current language.
1765
- * This pipe is used to translate strings that are not part of the Angular i18n system.
1766
- * This pipe exists to keep the compatibility with a legacy system that uses a custom language syntax.
1767
- *
1768
- * This pipe can be used in the following way:
1769
- *
1770
- * @example
1771
- * <div>{{ 'Hello[fr]Bonjour' | syslang }}</div>
1772
- * // output: `Bonjour` if your current language is 'fr'
1773
- * // output: `Hello` if your current language is not 'fr'
1774
- *
1775
- * <div>{{ 'Hello[fr]Bonjour' | syslang: 'fr' }}</div>
1776
- * // output: `Bonjour` even if your current language is not 'fr'
1777
- */
1778
- declare class SyslangPipe implements PipeTransform, OnDestroy {
1779
- private readonly transloco;
1780
- private readonly cdr;
1781
- private lastValue;
1782
- private currentLang;
1783
- private subscription;
1784
- ngOnDestroy(): void;
1785
- constructor();
1786
- /**
1787
- * Transforms the input value using the current language.
1788
- * @param value The input string value to be transformed.
1789
- * @returns The transformed string value.
1790
- */
1791
- transform(value?: string, lang?: string): string | null;
1792
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SyslangPipe, never>;
1793
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<SyslangPipe, "syslang", true>;
1794
- }
1795
-
1796
- declare class TranslocoDateImpurePipe extends DatePipe implements OnDestroy {
1797
- private readonly transloco;
1798
- private readonly cdr;
1799
- private lastTransformedValue;
1800
- private subscription;
1801
- constructor(locale: string, defaultTimezone?: string | null, defaultOptions?: DatePipeConfig | null);
1802
- ngOnDestroy(): void;
1803
- transform(value: Date | string | number, format?: string, timezone?: string): string | null;
1804
- transform(value: null | undefined, format?: string, timezone?: string): null;
1805
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TranslocoDateImpurePipe, [null, { optional: true; }, { optional: true; }]>;
1806
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<TranslocoDateImpurePipe, "translocoDate", true>;
1807
- }
1808
-
1809
- /**
1810
- * Resolves the name of the default query from the application store.
1811
- *
1812
- * @returns The name of the default query or an empty string if not available.
1813
- */
1814
- declare const queryNameResolver: ResolveFn<string>;
1815
-
1816
680
  declare class QueryService {
1817
681
  protected readonly http: HttpClient;
1818
682
  private readonly appStore;
@@ -1879,6 +743,9 @@ declare class AggregationsService {
1879
743
  large?: string;
1880
744
  };
1881
745
  };
746
+ features?: {
747
+ advancedSearch?: boolean;
748
+ };
1882
749
  } | undefined>;
1883
750
  assistants: _angular_core.Signal<Record<string, any>>;
1884
751
  initialize: () => Promise<void>;
@@ -2089,6 +956,7 @@ declare class ApplicationService {
2089
956
  alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
2090
957
  collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
2091
958
  language?: _angular_core.Signal<string | undefined> | undefined;
959
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
2092
960
  updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2093
961
  bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
2094
962
  unbookmark: (id: string) => Promise<void>;
@@ -2115,6 +983,8 @@ declare class ApplicationService {
2115
983
  createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
2116
984
  updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
2117
985
  updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
986
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
987
+ toggleDarkMode: () => Promise<void>;
2118
988
  } & _ngrx_signals.StateSource<{
2119
989
  bookmarks: _sinequa_atomic_angular.Bookmark[];
2120
990
  recentSearches: _sinequa_atomic_angular.SearchItem[];
@@ -2124,6 +994,7 @@ declare class ApplicationService {
2124
994
  alerts: _sinequa_atomic_angular.Alert[];
2125
995
  collapseAssistant?: boolean | undefined;
2126
996
  language?: string | undefined;
997
+ useDarkMode: boolean;
2127
998
  }>;
2128
999
  principalStore: {
2129
1000
  principal: _ngrx_signals.DeepSignal<_sinequa_atomic.Principal>;
@@ -2156,6 +1027,9 @@ declare class ApplicationService {
2156
1027
  large?: string;
2157
1028
  };
2158
1029
  };
1030
+ features?: {
1031
+ advancedSearch?: boolean;
1032
+ };
2159
1033
  } | undefined>;
2160
1034
  assistants: _angular_core.Signal<Record<string, any>>;
2161
1035
  initialize: () => Promise<void>;
@@ -2265,6 +1139,9 @@ declare class AuditService {
2265
1139
  large?: string;
2266
1140
  };
2267
1141
  };
1142
+ features?: {
1143
+ advancedSearch?: boolean;
1144
+ };
2268
1145
  } | undefined>;
2269
1146
  assistants: _angular_core.Signal<Record<string, any>>;
2270
1147
  initialize: () => Promise<void>;
@@ -2345,6 +1222,7 @@ declare class AutocompleteService {
2345
1222
  alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
2346
1223
  collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
2347
1224
  language?: _angular_core.Signal<string | undefined> | undefined;
1225
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
2348
1226
  updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2349
1227
  bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
2350
1228
  unbookmark: (id: string) => Promise<void>;
@@ -2371,6 +1249,8 @@ declare class AutocompleteService {
2371
1249
  createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
2372
1250
  updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
2373
1251
  updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
1252
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
1253
+ toggleDarkMode: () => Promise<void>;
2374
1254
  } & _ngrx_signals.StateSource<{
2375
1255
  bookmarks: _sinequa_atomic_angular.Bookmark[];
2376
1256
  recentSearches: _sinequa_atomic_angular.SearchItem[];
@@ -2380,6 +1260,7 @@ declare class AutocompleteService {
2380
1260
  alerts: _sinequa_atomic_angular.Alert[];
2381
1261
  collapseAssistant?: boolean | undefined;
2382
1262
  language?: string | undefined;
1263
+ useDarkMode: boolean;
2383
1264
  }>;
2384
1265
  appStore: {
2385
1266
  webServices: _ngrx_signals.DeepSignal<{}>;
@@ -2402,6 +1283,9 @@ declare class AutocompleteService {
2402
1283
  large?: string;
2403
1284
  };
2404
1285
  };
1286
+ features?: {
1287
+ advancedSearch?: boolean;
1288
+ };
2405
1289
  } | undefined>;
2406
1290
  assistants: _angular_core.Signal<Record<string, any>>;
2407
1291
  initialize: () => Promise<void>;
@@ -2605,6 +1489,9 @@ declare const AppStore: _angular_core.Type<{
2605
1489
  large?: string;
2606
1490
  };
2607
1491
  };
1492
+ features?: {
1493
+ advancedSearch?: boolean;
1494
+ };
2608
1495
  } | undefined>;
2609
1496
  assistants: _angular_core.Signal<Record<string, any>>;
2610
1497
  initialize: () => Promise<void>;
@@ -2708,6 +1595,9 @@ declare function withAppCustomizationFeatures(): _ngrx_signals.SignalStoreFeatur
2708
1595
  large?: string;
2709
1596
  };
2710
1597
  };
1598
+ features?: {
1599
+ advancedSearch?: boolean;
1600
+ };
2711
1601
  } | undefined>;
2712
1602
  assistants: _angular_core.Signal<Record<string, any>>;
2713
1603
  };
@@ -2737,7 +1627,7 @@ declare const ApplicationStore: _angular_core.Type<{
2737
1627
  update: (state: Partial<ApplicationState>) => void;
2738
1628
  updateReadyState: (value?: boolean) => void;
2739
1629
  updateExtracts: (id: string, extracts: Extract[]) => void;
2740
- getExtracts: (id: string) => Extract[] | undefined;
1630
+ getExtracts: (id: string) => Extract[];
2741
1631
  } & _ngrx_signals.WritableStateSource<{
2742
1632
  ready: boolean;
2743
1633
  extracts: Map<string, Extract[]>;
@@ -2788,7 +1678,7 @@ declare function withExtractsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_
2788
1678
  };
2789
1679
  methods: {
2790
1680
  updateExtracts: (id: string, extracts: Extract[]) => void;
2791
- getExtracts: (id: string) => Extract[] | undefined;
1681
+ getExtracts: (id: string) => Extract[];
2792
1682
  };
2793
1683
  }>;
2794
1684
 
@@ -3130,6 +2020,7 @@ declare const UserSettingsStore: _angular_core.Type<{
3130
2020
  alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
3131
2021
  collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
3132
2022
  language?: _angular_core.Signal<string | undefined> | undefined;
2023
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
3133
2024
  updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
3134
2025
  bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
3135
2026
  unbookmark: (id: string) => Promise<void>;
@@ -3156,6 +2047,8 @@ declare const UserSettingsStore: _angular_core.Type<{
3156
2047
  createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
3157
2048
  updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
3158
2049
  updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
2050
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
2051
+ toggleDarkMode: () => Promise<void>;
3159
2052
  } & _ngrx_signals.StateSource<{
3160
2053
  bookmarks: _sinequa_atomic_angular.Bookmark[];
3161
2054
  recentSearches: _sinequa_atomic_angular.SearchItem[];
@@ -3165,6 +2058,7 @@ declare const UserSettingsStore: _angular_core.Type<{
3165
2058
  alerts: _sinequa_atomic_angular.Alert[];
3166
2059
  collapseAssistant?: boolean | undefined;
3167
2060
  language?: string | undefined;
2061
+ useDarkMode: boolean;
3168
2062
  }>>;
3169
2063
 
3170
2064
  declare function withAlertsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, {
@@ -3255,6 +2149,7 @@ declare function withUserSettingsFeatures(): _ngrx_signals.SignalStoreFeature<_n
3255
2149
  assistants: Record<string, unknown>;
3256
2150
  collapseAssistant?: boolean | undefined;
3257
2151
  language?: string | undefined;
2152
+ useDarkMode?: boolean | undefined;
3258
2153
  };
3259
2154
  computed: {};
3260
2155
  methods: {
@@ -3363,6 +2258,58 @@ type ThemeBodyHookParameters = {
3363
2258
  };
3364
2259
  declare function withThemeBodyHook(app: ApplicationRef, params: ThemeBodyHookParameters | undefined): ApplicationRef;
3365
2260
 
2261
+ declare const THEMES: {
2262
+ name: string;
2263
+ id: string;
2264
+ private: boolean;
2265
+ colors: {
2266
+ 'button-primary-background': string;
2267
+ background: string;
2268
+ foreground: string;
2269
+ card: string;
2270
+ 'card-foreground': string;
2271
+ active: string;
2272
+ 'active-foreground': string;
2273
+ 'active-background': string;
2274
+ primary: string;
2275
+ 'primary-foreground': string;
2276
+ secondary: string;
2277
+ 'secondary-foreground': string;
2278
+ muted: string;
2279
+ 'muted-foreground': string;
2280
+ accent: string;
2281
+ 'accent-foreground': string;
2282
+ destructive: string;
2283
+ 'destructive-foreground': string;
2284
+ border: string;
2285
+ input: string;
2286
+ ring: string;
2287
+ };
2288
+ colorsDark: {
2289
+ background: string;
2290
+ foreground: string;
2291
+ card: string;
2292
+ 'card-foreground': string;
2293
+ active: string;
2294
+ 'active-foreground': string;
2295
+ 'active-background': string;
2296
+ primary: string;
2297
+ 'primary-foreground': string;
2298
+ secondary: string;
2299
+ 'secondary-foreground': string;
2300
+ muted: string;
2301
+ 'muted-foreground': string;
2302
+ accent: string;
2303
+ 'accent-foreground': string;
2304
+ destructive: string;
2305
+ 'destructive-foreground': string;
2306
+ border: string;
2307
+ input: string;
2308
+ ring: string;
2309
+ };
2310
+ }[];
2311
+ type Theme = (typeof THEMES)[number];
2312
+
3366
2313
  declare function withThemes(app: ApplicationRef, themes: Theme[]): ApplicationRef;
3367
2314
 
3368
2315
  declare function signIn(): Promise<void>;
@@ -3399,7 +2346,7 @@ declare class PreviewService {
3399
2346
  update: (state: Partial<_sinequa_atomic_angular.ApplicationState>) => void;
3400
2347
  updateReadyState: (value?: boolean) => void;
3401
2348
  updateExtracts: (id: string, extracts: Extract[]) => void;
3402
- getExtracts: (id: string) => Extract[] | undefined;
2349
+ getExtracts: (id: string) => Extract[];
3403
2350
  } & _ngrx_signals.WritableStateSource<{
3404
2351
  ready: boolean;
3405
2352
  extracts: Map<string, Extract[]>;
@@ -3524,6 +2471,9 @@ declare class PreviewService {
3524
2471
  large?: string;
3525
2472
  };
3526
2473
  };
2474
+ features?: {
2475
+ advancedSearch?: boolean;
2476
+ };
3527
2477
  } | undefined>;
3528
2478
  assistants: _angular_core.Signal<Record<string, any>>;
3529
2479
  initialize: () => Promise<void>;
@@ -3559,7 +2509,8 @@ declare class PreviewService {
3559
2509
  protected readonly sanitizer: DomSanitizer;
3560
2510
  protected readonly queryService: QueryService;
3561
2511
  protected readonly auditService: AuditService;
3562
- events: EventEmitter<PreviewEvents>;
2512
+ events: _angular_core.WritableSignal<PreviewEvents>;
2513
+ DOMContentLoaded: _angular_core.WritableSignal<boolean>;
3563
2514
  onMessage: Subject<unknown>;
3564
2515
  worker: InlineWorker | undefined;
3565
2516
  allowWoker: boolean;
@@ -3715,24 +2666,284 @@ declare class PrincipalService {
3715
2666
  declare class SavedSearchesService {
3716
2667
  protected readonly userSettingsStore: {
3717
2668
  bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>;
3718
- recentSearches: _angular_core.Signal<SearchItem[]>;
3719
- savedSearches: _angular_core.Signal<SearchItem[]>;
2669
+ recentSearches: _angular_core.Signal<SearchItem[]>;
2670
+ savedSearches: _angular_core.Signal<SearchItem[]>;
2671
+ baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>;
2672
+ assistants: _angular_core.Signal<Record<string, unknown>>;
2673
+ alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
2674
+ collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
2675
+ language?: _angular_core.Signal<string | undefined> | undefined;
2676
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
2677
+ updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2678
+ bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
2679
+ unbookmark: (id: string) => Promise<void>;
2680
+ isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean;
2681
+ toggleBookmark: (article: _sinequa_atomic.Article) => Promise<void>;
2682
+ deleteRecentSearch: (index: number) => Promise<void>;
2683
+ updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2684
+ addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise<void>;
2685
+ deleteSavedSearch: (index: number) => Promise<void>;
2686
+ updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise<void>;
2687
+ getSavedSearch: (search: string) => SearchItem | undefined;
2688
+ deleteBasket: (index: number) => Promise<void>;
2689
+ createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise<void>;
2690
+ updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise<void>;
2691
+ updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise<void>;
2692
+ addToBasket: (name: string, ids: string | string[]) => Promise<void>;
2693
+ removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
2694
+ updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise<void>;
2695
+ updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2696
+ updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2697
+ initialize: () => Promise<void>;
2698
+ reset: () => Promise<void>;
2699
+ deleteAlert: (index: number) => Promise<void>;
2700
+ createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
2701
+ updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
2702
+ updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
2703
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
2704
+ toggleDarkMode: () => Promise<void>;
2705
+ } & _ngrx_signals.StateSource<{
2706
+ bookmarks: _sinequa_atomic_angular.Bookmark[];
2707
+ recentSearches: SearchItem[];
2708
+ savedSearches: SearchItem[];
2709
+ baskets: _sinequa_atomic_angular.Basket[];
2710
+ assistants: Record<string, unknown>;
2711
+ alerts: _sinequa_atomic_angular.Alert[];
2712
+ collapseAssistant?: boolean | undefined;
2713
+ language?: string | undefined;
2714
+ useDarkMode: boolean;
2715
+ }>;
2716
+ protected readonly queryParamsStore: {
2717
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
2718
+ name?: _angular_core.Signal<string | undefined> | undefined;
2719
+ sort?: _angular_core.Signal<string | undefined> | undefined;
2720
+ action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
2721
+ text?: _angular_core.Signal<string | undefined> | undefined;
2722
+ select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
2723
+ open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
2724
+ page?: _angular_core.Signal<number | undefined> | undefined;
2725
+ pageSize?: _angular_core.Signal<number | undefined> | undefined;
2726
+ tab?: _angular_core.Signal<string | undefined> | undefined;
2727
+ scope?: _angular_core.Signal<string | undefined> | undefined;
2728
+ basket?: _angular_core.Signal<string | undefined> | undefined;
2729
+ isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
2730
+ strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
2731
+ globalRelevance?: _angular_core.Signal<number | undefined> | undefined;
2732
+ questionLanguage?: _angular_core.Signal<string | undefined> | undefined;
2733
+ questionDefaultLanguage?: _angular_core.Signal<string | undefined> | undefined;
2734
+ spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined;
2735
+ spellingCorrectionFilter?: _angular_core.Signal<string | undefined> | undefined;
2736
+ documentWeight?: _angular_core.Signal<string | undefined> | undefined;
2737
+ textPartWeights?: _angular_core.Signal<string | undefined> | undefined;
2738
+ relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
2739
+ removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
2740
+ queryId?: _angular_core.Signal<string | undefined> | undefined;
2741
+ orderBy?: _angular_core.Signal<string | undefined> | undefined;
2742
+ groupBy?: _angular_core.Signal<string | undefined> | undefined;
2743
+ neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
2744
+ path?: _angular_core.Signal<string | undefined> | undefined;
2745
+ filters?: _angular_core.Signal<_sinequa_atomic.LegacyFilter[] | undefined> | undefined;
2746
+ id?: _angular_core.Signal<string | undefined> | undefined;
2747
+ setFromUrl: (url: string) => void;
2748
+ addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
2749
+ updateFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
2750
+ removeFilter: (field?: string) => void;
2751
+ removeFilterByName: (name?: string, column?: string) => void;
2752
+ clearFilters: () => void;
2753
+ clearBasket: () => void;
2754
+ patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void;
2755
+ getFilter: ({ field, name }: {
2756
+ field: string | undefined;
2757
+ name: string | undefined;
2758
+ }) => Partial<_sinequa_atomic.LegacyFilter & {
2759
+ count: number;
2760
+ }> | null;
2761
+ getQuery: () => _sinequa_atomic.Query;
2762
+ } & _ngrx_signals.StateSource<{
2763
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
2764
+ name?: string | undefined;
2765
+ sort?: string | undefined;
2766
+ action?: "" | "search" | "open" | "aggregate" | undefined;
2767
+ text?: string | undefined;
2768
+ select?: _sinequa_atomic.Select[] | undefined;
2769
+ open?: _sinequa_atomic.Open[] | undefined;
2770
+ page?: number | undefined;
2771
+ pageSize?: number | undefined;
2772
+ tab?: string | undefined;
2773
+ scope?: string | undefined;
2774
+ basket?: string | undefined;
2775
+ isFirstPage?: boolean | undefined;
2776
+ strictRefine?: boolean | undefined;
2777
+ globalRelevance?: number | undefined;
2778
+ questionLanguage?: string | undefined;
2779
+ questionDefaultLanguage?: string | undefined;
2780
+ spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined;
2781
+ spellingCorrectionFilter?: string | undefined;
2782
+ documentWeight?: string | undefined;
2783
+ textPartWeights?: string | undefined;
2784
+ relevanceTransforms?: string | undefined;
2785
+ removeDuplicates?: boolean | undefined;
2786
+ queryId?: string | undefined;
2787
+ orderBy?: string | undefined;
2788
+ groupBy?: string | undefined;
2789
+ neuralSearch?: boolean | undefined;
2790
+ path?: string | undefined;
2791
+ filters?: _sinequa_atomic.LegacyFilter[] | undefined;
2792
+ id?: string | undefined;
2793
+ }>;
2794
+ /**
2795
+ * Retrieves the list of saved searches from the user settings store.
2796
+ *
2797
+ * @returns {SearchItem[]} An array of saved searches.
2798
+ */
2799
+ getSavedSearches(): SearchItem[];
2800
+ /**
2801
+ * Saves the current search query to the user's saved searches.
2802
+ *
2803
+ * This method retrieves the current search text from the query parameters store.
2804
+ * If the search text is empty, it logs an error and exits.
2805
+ * Otherwise, it creates a new saved search object with the current URL, date, and search text.
2806
+ *
2807
+ * The new saved search is added to the beginning of the saved searches array.
2808
+ * If the array exceeds the maximum allowed storage, the oldest search is removed.
2809
+ *
2810
+ * Finally, the updated saved searches array is saved back to the user settings store,
2811
+ * and a success message is displayed to the user.
2812
+ *
2813
+ * @throws {Error} If saving an empty search is attempted.
2814
+ */
2815
+ saveSearch(saveName?: string): void;
2816
+ /**
2817
+ * Updates the saved searches in the user settings store.
2818
+ *
2819
+ * @param savedSearches - An array of SearchItem objects to update.
2820
+ */
2821
+ updateSavedSearches(savedSearches: SearchItem[]): void;
2822
+ /**
2823
+ * Deletes a saved search from the user settings store.
2824
+ *
2825
+ * @param index - The index of the saved search to delete.
2826
+ */
2827
+ deleteSavedSearch(index: number): void;
2828
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SavedSearchesService, never>;
2829
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SavedSearchesService>;
2830
+ }
2831
+
2832
+ type SearchOptions = {
2833
+ appendFilters?: boolean;
2834
+ audit?: AuditEvents;
2835
+ };
2836
+ /**
2837
+ * Service for performing search operations.
2838
+ *
2839
+ * @deprecated Use `QueryService` and `QueryParamsStore` instead.
2840
+ */
2841
+ declare class SearchService {
2842
+ protected readonly http: HttpClient;
2843
+ private readonly router;
2844
+ private readonly route;
2845
+ private readonly queryService;
2846
+ result: Result;
2847
+ audit?: AuditEvents;
2848
+ protected readonly queryParamsStore: {
2849
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
2850
+ name?: _angular_core.Signal<string | undefined> | undefined;
2851
+ sort?: _angular_core.Signal<string | undefined> | undefined;
2852
+ action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
2853
+ text?: _angular_core.Signal<string | undefined> | undefined;
2854
+ select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
2855
+ open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
2856
+ page?: _angular_core.Signal<number | undefined> | undefined;
2857
+ pageSize?: _angular_core.Signal<number | undefined> | undefined;
2858
+ tab?: _angular_core.Signal<string | undefined> | undefined;
2859
+ scope?: _angular_core.Signal<string | undefined> | undefined;
2860
+ basket?: _angular_core.Signal<string | undefined> | undefined;
2861
+ isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
2862
+ strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
2863
+ globalRelevance?: _angular_core.Signal<number | undefined> | undefined;
2864
+ questionLanguage?: _angular_core.Signal<string | undefined> | undefined;
2865
+ questionDefaultLanguage?: _angular_core.Signal<string | undefined> | undefined;
2866
+ spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined;
2867
+ spellingCorrectionFilter?: _angular_core.Signal<string | undefined> | undefined;
2868
+ documentWeight?: _angular_core.Signal<string | undefined> | undefined;
2869
+ textPartWeights?: _angular_core.Signal<string | undefined> | undefined;
2870
+ relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
2871
+ removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
2872
+ queryId?: _angular_core.Signal<string | undefined> | undefined;
2873
+ orderBy?: _angular_core.Signal<string | undefined> | undefined;
2874
+ groupBy?: _angular_core.Signal<string | undefined> | undefined;
2875
+ neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
2876
+ path?: _angular_core.Signal<string | undefined> | undefined;
2877
+ filters?: _angular_core.Signal<_sinequa_atomic.LegacyFilter[] | undefined> | undefined;
2878
+ id?: _angular_core.Signal<string | undefined> | undefined;
2879
+ setFromUrl: (url: string) => void;
2880
+ addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void;
2881
+ updateFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void;
2882
+ removeFilter: (field?: string) => void;
2883
+ removeFilterByName: (name?: string, column?: string) => void;
2884
+ clearFilters: () => void;
2885
+ clearBasket: () => void;
2886
+ patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: AuditEvents) => void;
2887
+ getFilter: ({ field, name }: {
2888
+ field: string | undefined;
2889
+ name: string | undefined;
2890
+ }) => Partial<_sinequa_atomic.LegacyFilter & {
2891
+ count: number;
2892
+ }> | null;
2893
+ getQuery: () => Query;
2894
+ } & _ngrx_signals.StateSource<{
2895
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
2896
+ name?: string | undefined;
2897
+ sort?: string | undefined;
2898
+ action?: "" | "search" | "open" | "aggregate" | undefined;
2899
+ text?: string | undefined;
2900
+ select?: _sinequa_atomic.Select[] | undefined;
2901
+ open?: _sinequa_atomic.Open[] | undefined;
2902
+ page?: number | undefined;
2903
+ pageSize?: number | undefined;
2904
+ tab?: string | undefined;
2905
+ scope?: string | undefined;
2906
+ basket?: string | undefined;
2907
+ isFirstPage?: boolean | undefined;
2908
+ strictRefine?: boolean | undefined;
2909
+ globalRelevance?: number | undefined;
2910
+ questionLanguage?: string | undefined;
2911
+ questionDefaultLanguage?: string | undefined;
2912
+ spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined;
2913
+ spellingCorrectionFilter?: string | undefined;
2914
+ documentWeight?: string | undefined;
2915
+ textPartWeights?: string | undefined;
2916
+ relevanceTransforms?: string | undefined;
2917
+ removeDuplicates?: boolean | undefined;
2918
+ queryId?: string | undefined;
2919
+ orderBy?: string | undefined;
2920
+ groupBy?: string | undefined;
2921
+ neuralSearch?: boolean | undefined;
2922
+ path?: string | undefined;
2923
+ filters?: _sinequa_atomic.LegacyFilter[] | undefined;
2924
+ id?: string | undefined;
2925
+ }>;
2926
+ protected readonly userSettingsStore: {
2927
+ bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>;
2928
+ recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>;
2929
+ savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>;
3720
2930
  baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>;
3721
2931
  assistants: _angular_core.Signal<Record<string, unknown>>;
3722
2932
  alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
3723
2933
  collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
3724
2934
  language?: _angular_core.Signal<string | undefined> | undefined;
3725
- updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2935
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
2936
+ updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: AuditEvents) => Promise<void>;
3726
2937
  bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
3727
2938
  unbookmark: (id: string) => Promise<void>;
3728
2939
  isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean;
3729
2940
  toggleBookmark: (article: _sinequa_atomic.Article) => Promise<void>;
3730
2941
  deleteRecentSearch: (index: number) => Promise<void>;
3731
- updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2942
+ updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: AuditEvents) => Promise<void>;
3732
2943
  addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise<void>;
3733
2944
  deleteSavedSearch: (index: number) => Promise<void>;
3734
2945
  updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise<void>;
3735
- getSavedSearch: (search: string) => SearchItem | undefined;
2946
+ getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined;
3736
2947
  deleteBasket: (index: number) => Promise<void>;
3737
2948
  createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise<void>;
3738
2949
  updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise<void>;
@@ -3740,25 +2951,280 @@ declare class SavedSearchesService {
3740
2951
  addToBasket: (name: string, ids: string | string[]) => Promise<void>;
3741
2952
  removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
3742
2953
  updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise<void>;
3743
- updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
3744
- updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
2954
+ updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: AuditEvents) => Promise<void>;
2955
+ updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: AuditEvents) => Promise<void>;
3745
2956
  initialize: () => Promise<void>;
3746
2957
  reset: () => Promise<void>;
3747
2958
  deleteAlert: (index: number) => Promise<void>;
3748
2959
  createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
3749
2960
  updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
3750
2961
  updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
2962
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
2963
+ toggleDarkMode: () => Promise<void>;
3751
2964
  } & _ngrx_signals.StateSource<{
3752
2965
  bookmarks: _sinequa_atomic_angular.Bookmark[];
3753
- recentSearches: SearchItem[];
3754
- savedSearches: SearchItem[];
2966
+ recentSearches: _sinequa_atomic_angular.SearchItem[];
2967
+ savedSearches: _sinequa_atomic_angular.SearchItem[];
3755
2968
  baskets: _sinequa_atomic_angular.Basket[];
3756
2969
  assistants: Record<string, unknown>;
3757
2970
  alerts: _sinequa_atomic_angular.Alert[];
3758
2971
  collapseAssistant?: boolean | undefined;
3759
2972
  language?: string | undefined;
2973
+ useDarkMode: boolean;
3760
2974
  }>;
3761
- protected readonly queryParamsStore: {
2975
+ protected readonly injector: Injector;
2976
+ protected readonly API_URL: string;
2977
+ /**
2978
+ * Executes a search operation with the given commands and options.
2979
+ *
2980
+ * @deprecated use `queryParamsStore` to update the query parameters and `queryService.search()` to perform the search.
2981
+ *
2982
+ * @param commands - An array of strings representing the search commands.
2983
+ * @param options - An optional object containing search options.
2984
+ * @param options.appendFilters - A boolean indicating whether to append existing filters to the search query. Defaults to true.
2985
+ * @param options.audit - An optional audit trail object to be stored in the navigation state.
2986
+ *
2987
+ * The method constructs query parameters based on the current state and the provided options,
2988
+ * then navigates to the specified commands with the constructed query parameters and audit trail.
2989
+ */
2990
+ search(commands: string[], options?: SearchOptions): void;
2991
+ /**
2992
+ * Retrieves the search result based on the provided query.
2993
+ *
2994
+ * @deprecated use `queryService.search()` instead.
2995
+ *
2996
+ * @param q - A partial query object containing search parameters.
2997
+ * @returns An Observable of the search result.
2998
+ *
2999
+ * This method performs the following actions:
3000
+ * - Creates an audit event with the type "Search_Text" and the query text.
3001
+ * - Resets the audit property to undefined.
3002
+ * - Calls the search method of the queryService with the query, a flag to include the query name in records, and the audit event.
3003
+ * - Handles any errors by returning an empty Result object.
3004
+ * - Maps the search result to the service's result property.
3005
+ */
3006
+ getResult(q: Partial<Query>): Observable<Result>;
3007
+ /**
3008
+ * Navigates to the specified page and returns the search result.
3009
+ *
3010
+ * @deprecated use queryService.gotoPage() instead.
3011
+ *
3012
+ * @param page - The page number to navigate to.
3013
+ * @returns A promise that resolves to the search result.
3014
+ */
3015
+ gotoPage(page: number): void;
3016
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchService, never>;
3017
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SearchService>;
3018
+ }
3019
+
3020
+ type SelectionHistoryEvent = 'back' | 'new';
3021
+ declare class SelectionHistoryService {
3022
+ readonly selectionHistoryEvent: EventEmitter<SelectionHistoryEvent>;
3023
+ private readonly selectionService;
3024
+ private readonly selectionStore;
3025
+ private readonly history;
3026
+ constructor();
3027
+ /**
3028
+ * Retrieves the index of the current selection.
3029
+ *
3030
+ * @returns {number} The index of the current selection, which is the last element in the history array.
3031
+ */
3032
+ getCurrentSelectionIndex(): number;
3033
+ /**
3034
+ * Retrieves an article from the selection history at the specified index.
3035
+ *
3036
+ * @param index - The index of the article to retrieve.
3037
+ * @returns The article at the specified index, or `undefined` if the index is out of bounds.
3038
+ */
3039
+ getSelection(index: number): Article$1 | undefined;
3040
+ /**
3041
+ * Retrieves the length of the history array.
3042
+ *
3043
+ * @returns {number} The number of entries in the history.
3044
+ */
3045
+ getHistoryLength(): number;
3046
+ /**
3047
+ * Clears the selection history and resets the current article selection.
3048
+ *
3049
+ * This method performs the following actions:
3050
+ * - Empties the history array.
3051
+ * - Calls the `clearCurrentArticle` method on the `selectionService` to reset the current article selection.
3052
+ */
3053
+ clearHistory(): void;
3054
+ /**
3055
+ * Navigates back in the selection history.
3056
+ *
3057
+ * Removes the most recent entry from the history. If the history is empty after this operation,
3058
+ * it returns `undefined`. Otherwise, it sets the current article to the last entry in the history,
3059
+ * triggers a 'back' event, and returns the last entry.
3060
+ *
3061
+ * @returns {Article | undefined} The last article in the history, or `undefined` if the history is empty.
3062
+ */
3063
+ back(): Article$1 | undefined;
3064
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionHistoryService, never>;
3065
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SelectionHistoryService>;
3066
+ }
3067
+
3068
+ declare class SelectionService {
3069
+ private readonly route;
3070
+ private readonly router;
3071
+ private readonly location;
3072
+ private readonly selectionStore;
3073
+ queryParamsStore: {
3074
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
3075
+ name?: _angular_core.Signal<string | undefined> | undefined;
3076
+ sort?: _angular_core.Signal<string | undefined> | undefined;
3077
+ action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
3078
+ text?: _angular_core.Signal<string | undefined> | undefined;
3079
+ select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
3080
+ open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
3081
+ page?: _angular_core.Signal<number | undefined> | undefined;
3082
+ pageSize?: _angular_core.Signal<number | undefined> | undefined;
3083
+ tab?: _angular_core.Signal<string | undefined> | undefined;
3084
+ scope?: _angular_core.Signal<string | undefined> | undefined;
3085
+ basket?: _angular_core.Signal<string | undefined> | undefined;
3086
+ isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
3087
+ strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
3088
+ globalRelevance?: _angular_core.Signal<number | undefined> | undefined;
3089
+ questionLanguage?: _angular_core.Signal<string | undefined> | undefined;
3090
+ questionDefaultLanguage?: _angular_core.Signal<string | undefined> | undefined;
3091
+ spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined;
3092
+ spellingCorrectionFilter?: _angular_core.Signal<string | undefined> | undefined;
3093
+ documentWeight?: _angular_core.Signal<string | undefined> | undefined;
3094
+ textPartWeights?: _angular_core.Signal<string | undefined> | undefined;
3095
+ relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
3096
+ removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
3097
+ queryId?: _angular_core.Signal<string | undefined> | undefined;
3098
+ orderBy?: _angular_core.Signal<string | undefined> | undefined;
3099
+ groupBy?: _angular_core.Signal<string | undefined> | undefined;
3100
+ neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
3101
+ path?: _angular_core.Signal<string | undefined> | undefined;
3102
+ filters?: _angular_core.Signal<_sinequa_atomic.LegacyFilter[] | undefined> | undefined;
3103
+ id?: _angular_core.Signal<string | undefined> | undefined;
3104
+ setFromUrl: (url: string) => void;
3105
+ addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
3106
+ updateFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void;
3107
+ removeFilter: (field?: string) => void;
3108
+ removeFilterByName: (name?: string, column?: string) => void;
3109
+ clearFilters: () => void;
3110
+ clearBasket: () => void;
3111
+ patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void;
3112
+ getFilter: ({ field, name }: {
3113
+ field: string | undefined;
3114
+ name: string | undefined;
3115
+ }) => Partial<_sinequa_atomic.LegacyFilter & {
3116
+ count: number;
3117
+ }> | null;
3118
+ getQuery: () => _sinequa_atomic.Query;
3119
+ } & _ngrx_signals.StateSource<{
3120
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
3121
+ name?: string | undefined;
3122
+ sort?: string | undefined;
3123
+ action?: "" | "search" | "open" | "aggregate" | undefined;
3124
+ text?: string | undefined;
3125
+ select?: _sinequa_atomic.Select[] | undefined;
3126
+ open?: _sinequa_atomic.Open[] | undefined;
3127
+ page?: number | undefined;
3128
+ pageSize?: number | undefined;
3129
+ tab?: string | undefined;
3130
+ scope?: string | undefined;
3131
+ basket?: string | undefined;
3132
+ isFirstPage?: boolean | undefined;
3133
+ strictRefine?: boolean | undefined;
3134
+ globalRelevance?: number | undefined;
3135
+ questionLanguage?: string | undefined;
3136
+ questionDefaultLanguage?: string | undefined;
3137
+ spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined;
3138
+ spellingCorrectionFilter?: string | undefined;
3139
+ documentWeight?: string | undefined;
3140
+ textPartWeights?: string | undefined;
3141
+ relevanceTransforms?: string | undefined;
3142
+ removeDuplicates?: boolean | undefined;
3143
+ queryId?: string | undefined;
3144
+ orderBy?: string | undefined;
3145
+ groupBy?: string | undefined;
3146
+ neuralSearch?: boolean | undefined;
3147
+ path?: string | undefined;
3148
+ filters?: _sinequa_atomic.LegacyFilter[] | undefined;
3149
+ id?: string | undefined;
3150
+ }>;
3151
+ /**
3152
+ * Sets the current article in the selection store and optionally updates the query text.
3153
+ * If the provided article is undefined, it clears the current article.
3154
+ *
3155
+ * @param article - The article to set as the current article. If undefined, the current article is cleared.
3156
+ * @param withQueryText - A boolean indicating whether to update the query text in the selection store. Defaults to true.
3157
+ *
3158
+ * @returns void
3159
+ */
3160
+ setCurrentArticle(article?: Article$1, withQueryText?: boolean): void;
3161
+ /**
3162
+ * Clears the current article selection from the selection store and
3163
+ * removes the article ID from the query parameters.
3164
+ *
3165
+ * @remarks
3166
+ * This method performs two main actions:
3167
+ * 1. Clears the current selection from the `selectionStore`.
3168
+ * 2. Removes the article ID from the query parameters to ensure
3169
+ * the URL does not reference the cleared article.
3170
+ *
3171
+ * @public
3172
+ */
3173
+ clearCurrentArticle(): void;
3174
+ /**
3175
+ * Updates the article ID in the query parameters of the current route.
3176
+ * If the provided ID is undefined, it will remove the ID from the query parameters.
3177
+ *
3178
+ * @param id - The article ID to be set in the query parameters. If undefined, the ID will be removed.
3179
+ */
3180
+ private updateArticleIdInQueryParams;
3181
+ /**
3182
+ * Clears the 'id' parameter from the current route's query parameters.
3183
+ *
3184
+ * This method creates a copy of the current query parameters, removes the 'id' parameter,
3185
+ * and then updates the browser's URL to reflect the change without reloading the page.
3186
+ *
3187
+ * @private
3188
+ */
3189
+ private clearArticleIdFromQueryParams;
3190
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionService, never>;
3191
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SelectionService>;
3192
+ }
3193
+
3194
+ declare class TextChunkService {
3195
+ protected readonly http: HttpClient;
3196
+ protected readonly API_URL: string;
3197
+ /**
3198
+ * Retrieves text chunks based on the provided parameters.
3199
+ *
3200
+ * @param id - The ID of the record.
3201
+ * @param textChunks - An array of TextLocation objects representing the location of the text chunks.
3202
+ * @param highlights - An array of strings representing the highlights to be applied to the text chunks.
3203
+ * @param query - The query used to retrieve the text chunks.
3204
+ * @param leftSentencesCount - The number of sentences to include before the text chunks.
3205
+ * @param rightSentencesCount - The number of sentences to include after the text chunks.
3206
+ * @returns An Observable that emits an array of TextChunk objects.
3207
+ */
3208
+ getTextChunks(id: string, textChunks: TextLocation[], highlights: string[], query: Query, leftSentencesCount: number, rightSentencesCount: number): Observable<TextChunk[]>;
3209
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextChunkService, never>;
3210
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<TextChunkService>;
3211
+ }
3212
+
3213
+ type NavbarTab = {
3214
+ display: string;
3215
+ wsQueryTab: string;
3216
+ path: string;
3217
+ icon: string;
3218
+ routerLink: string;
3219
+ queryName?: string;
3220
+ count?: number;
3221
+ };
3222
+ declare class NavbarTabsComponent {
3223
+ readonly router: Router;
3224
+ readonly route: ActivatedRoute;
3225
+ readonly drawerStack: DrawerStackService;
3226
+ readonly drawerOpened: _angular_core.WritableSignal<boolean>;
3227
+ readonly queryParamsStore: {
3762
3228
  aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
3763
3229
  name?: _angular_core.Signal<string | undefined> | undefined;
3764
3230
  sort?: _angular_core.Signal<string | undefined> | undefined;
@@ -3836,139 +3302,348 @@ declare class SavedSearchesService {
3836
3302
  filters?: _sinequa_atomic.LegacyFilter[] | undefined;
3837
3303
  id?: string | undefined;
3838
3304
  }>;
3305
+ readonly queryService: QueryService;
3839
3306
  /**
3840
- * Retrieves the list of saved searches from the user settings store.
3307
+ * Determines whether the count should be displayed in the navbar tabs component.
3308
+ * This value is provided as an input property.
3841
3309
  *
3842
- * @returns {SearchItem[]} An array of saved searches.
3310
+ * @remarks
3311
+ * This works only if tabSearch is enabled in the administration panel.
3843
3312
  */
3844
- getSavedSearches(): SearchItem[];
3313
+ showCount: _angular_core.InputSignal<boolean>;
3314
+ searchText: _angular_core.Signal<string>;
3315
+ readonly visibleTabCount: _angular_core.WritableSignal<number | undefined>;
3316
+ readonly currentPath: _angular_core.Signal<string>;
3317
+ readonly tabs: _angular_core.Signal<NavbarTab[]>;
3318
+ readonly moreTabs: _angular_core.Signal<NavbarTab[]>;
3319
+ protected changeTab(tab: NavbarTab): void;
3320
+ constructor();
3321
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavbarTabsComponent, never>;
3322
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarTabsComponent, "navbar-tabs", never, { "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3323
+ }
3324
+
3325
+ declare class NoResultComponent {
3326
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NoResultComponent, never>;
3327
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NoResultComponent, "NoResult", never, {}, {}, never, never, true, never>;
3328
+ }
3329
+
3330
+ type PageConfiguration = {
3331
+ page: number;
3332
+ rowCount: number;
3333
+ pageSize: number;
3334
+ };
3335
+ declare class PagerComponent {
3336
+ readonly configuration: _angular_core.InputSignal<PageConfiguration>;
3337
+ protected readonly page: _angular_core.WritableSignal<number>;
3338
+ protected readonly hasPages: _angular_core.Signal<boolean>;
3339
+ private readonly queryService;
3340
+ constructor();
3341
+ nextPage(): void;
3342
+ previousPage(): void;
3343
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PagerComponent, never>;
3344
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PagerComponent, "pager", never, { "configuration": { "alias": "configuration"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
3345
+ }
3346
+
3347
+ /**
3348
+ * Represents a directive that enables infinite scrolling behavior.
3349
+ * This directive listens for the intersection of the element with the viewport
3350
+ * and emits a `loadMore` event when the element becomes visible.
3351
+ *
3352
+ * @remarks
3353
+ * This directive requires the `IntersectionObserver` API to be available in the browser.
3354
+ *
3355
+ * @example
3356
+ * ```html
3357
+ * <div infinityScroll (onScroll)="loadMore()">
3358
+ * <!-- Content to be scrolled -->
3359
+ * </div>
3360
+ * ```
3361
+ *
3362
+ */
3363
+ declare class InfinityScrollDirective implements OnDestroy {
3364
+ private el;
3365
+ options: _angular_core.InputSignal<{
3366
+ root: null;
3367
+ }>;
3368
+ onScroll: _angular_core.OutputEmitterRef<void>;
3369
+ private observer;
3370
+ constructor(el: ElementRef);
3371
+ ngOnDestroy(): void;
3372
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfinityScrollDirective, never>;
3373
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InfinityScrollDirective, "[infinity-scroll]", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; }, never, never, true, never>;
3374
+ }
3375
+
3376
+ type KeyboardNavigationOnSelectionHandlers = {
3377
+ hideListbox?: boolean;
3378
+ resetSelection?: boolean;
3379
+ };
3380
+ type KeyboardNavigatorOptions = {
3381
+ name?: string;
3382
+ optionSelector: string;
3383
+ direction?: 'horizontal' | 'vertical' | 'both';
3384
+ selectOnFocus?: boolean;
3385
+ resetSelectionOnBlur?: boolean;
3386
+ onSelectionHandlers?: KeyboardNavigationOnSelectionHandlers;
3387
+ };
3388
+ declare class KeyboardNavigatorDirective implements OnDestroy {
3389
+ readonly keyboardNavigator: _angular_core.InputSignalWithTransform<KeyboardNavigatorOptions, KeyboardNavigatorOptions>;
3390
+ readonly listboxId: _angular_core.InputSignal<string>;
3391
+ readonly onFocus: _angular_core.OutputEmitterRef<void>;
3392
+ readonly onBlur: _angular_core.OutputEmitterRef<void>;
3393
+ readonly onSelected: _angular_core.OutputEmitterRef<HTMLElement | null>;
3394
+ readonly ariaExpanded: _angular_core.WritableSignal<boolean>;
3395
+ readonly activeDescendant: _angular_core.WritableSignal<string | undefined>;
3396
+ private readonly renderer;
3397
+ private readonly listboxElement;
3398
+ private readonly items;
3399
+ private readonly hasItems;
3400
+ private readonly currentIndex;
3401
+ private readonly previousIndex;
3402
+ private readonly unlisteners;
3403
+ private readonly mutationObserver;
3404
+ constructor();
3405
+ ngOnDestroy(): void;
3406
+ /** Attaches the listbox element based on the `listboxId`. */
3407
+ private attachListboxElement;
3845
3408
  /**
3846
- * Saves the current search query to the user's saved searches.
3847
- *
3848
- * This method retrieves the current search text from the query parameters store.
3849
- * If the search text is empty, it logs an error and exits.
3850
- * Otherwise, it creates a new saved search object with the current URL, date, and search text.
3851
- *
3852
- * The new saved search is added to the beginning of the saved searches array.
3853
- * If the array exceeds the maximum allowed storage, the oldest search is removed.
3854
- *
3855
- * Finally, the updated saved searches array is saved back to the user settings store,
3856
- * and a success message is displayed to the user.
3857
- *
3858
- * @throws {Error} If saving an empty search is attempted.
3409
+ * Merges given option with default options.
3410
+ * @param {KeyboardNavigatorOptions} options - Options to merge with defaults.
3411
+ * @returns {KeyboardNavigatorOptions} Merged options.
3859
3412
  */
3860
- saveSearch(saveName?: string): void;
3413
+ normalizeOptions(options: KeyboardNavigatorOptions): KeyboardNavigatorOptions;
3414
+ /** Focuses the listbox and selects the first item if configured to do so. */
3415
+ focus(): void;
3416
+ /** Blurs the listbox, hiding it and resetting selection if configured to do so. */
3417
+ blur(): void;
3418
+ /**
3419
+ * Moves selection to previous element in vertical and both navigation directions.
3420
+ * Does nothing if navigation direction is set to horizontal.
3421
+ */
3422
+ up(): void;
3423
+ /**
3424
+ * Moves selection to next element in vertical and both navigation directions.
3425
+ * Does nothing if navigation direction is set to horizontal.
3426
+ */
3427
+ down(): void;
3428
+ /**
3429
+ * Moves selection to first element in vertical and both navigation directions.
3430
+ * Does nothing if navigation direction is set to horizontal.
3431
+ */
3432
+ pageUp(): void;
3433
+ /**
3434
+ * Moves selection to last element in vertical and both navigation directions.
3435
+ * Does nothing if navigation direction is set to horizontal.
3436
+ */
3437
+ pageDown(): void;
3438
+ /**
3439
+ * Moves selection to previous element in horizontal and both navigation directions.
3440
+ * Does nothing if navigation direction is set to vertical.
3441
+ */
3442
+ left(): void;
3443
+ /**
3444
+ * Moves selection to next element in horizontal and both navigation directions.
3445
+ * Does nothing if navigation direction is set to vertical.
3446
+ */
3447
+ right(): void;
3448
+ /**
3449
+ * Moves selection to first element in horizontal and both navigation directions.
3450
+ * Does nothing if navigation direction is set to vertical.
3451
+ */
3452
+ home(): void;
3453
+ /**
3454
+ * Moves selection to last element in horizontal and both navigation directions.
3455
+ * Does nothing if navigation direction is set to vertical.
3456
+ */
3457
+ end(): void;
3458
+ /**
3459
+ * Selects the currently focused item and emits it.
3460
+ * Hides the listbox and resets selection if configured to do so.
3461
+ */
3462
+ enter(): void;
3463
+ /** Does nothing. */
3464
+ escape(): void;
3465
+ /**
3466
+ * Sets the listbox element based on the provided `listboxId`, expected to
3467
+ * be set via the `aria-controls` attribute. If the element is not found,
3468
+ * logs an error.
3469
+ */
3470
+ private setListboxElement;
3471
+ /**
3472
+ * Sets the items in the listbox by querying for elements matching the `optionSelector`.
3473
+ * Cleans up previous listeners and hooks new ones to handle item clicks.
3474
+ * Resets the selection state.
3475
+ */
3476
+ private setItems;
3477
+ /** Cleans up all event listeners that were added to the items. */
3478
+ private cleanupListeners;
3479
+ /** Resets the selection state. */
3480
+ resetSelection(): void;
3481
+ /**
3482
+ * Hooks click events on each item in the listbox, and registers a entry into
3483
+ * `unlisteners` for future cleanup.
3484
+ * `mousedown` event is used to ensure the click is registered before any blur events.
3485
+ */
3486
+ private hookItemsClicks;
3487
+ /**
3488
+ * Handles item click events, updates the current index, emits the selected item,
3489
+ * and hides the listbox if configured to do so.
3490
+ * @param {HTMLElement} element - The clicked item element.
3491
+ * @param {number} index - The index of the clicked item.
3492
+ */
3493
+ private itemClicked;
3494
+ /**
3495
+ * Moves the selection in the specified direction.
3496
+ * If `extreme` is true, it moves to the first or last item based on the direction.
3497
+ * If `extreme` is false, it wraps around the list.
3498
+ * @param {number} direction - The direction to move the selection: -1 for previous, 1 for next.
3499
+ * @param {boolean} extreme - Whether to move to the first or last item instead of wrapping around.
3500
+ * Defaults to false.
3501
+ */
3502
+ private moveSelection;
3503
+ /**
3504
+ * Updates the active item in the listbox.
3505
+ * If there was a previously active item, it sets its `aria-selected`
3506
+ * attribute to `false`. Sets the `aria-selected` attribute on the currently
3507
+ * active item, and scrolls it into view.
3508
+ */
3509
+ private updateActiveItem;
3510
+ /**
3511
+ * Shows the listbox by setting `aria-hidden` to `false` and updating the
3512
+ * `aria-expanded` state.
3513
+ */
3514
+ private showListbox;
3515
+ /**
3516
+ * Hides the listbox by setting `aria-hidden` to `true` and updating the
3517
+ * `aria-expanded` state.
3518
+ */
3519
+ private hideListbox;
3520
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KeyboardNavigatorDirective, never>;
3521
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KeyboardNavigatorDirective, "input[role=\"combobox\"]", never, { "keyboardNavigator": { "alias": "keyboardNavigator"; "required": false; "isSignal": true; }; "listboxId": { "alias": "aria-controls"; "required": false; "isSignal": true; }; }, { "onFocus": "onFocus"; "onBlur": "onBlur"; "onSelected": "onSelected"; }, never, never, true, never>;
3522
+ }
3523
+
3524
+ /**
3525
+ * Directive that opens an article on ctrl + enter.
3526
+ */
3527
+ declare class OpenArticleOnCtrlEnterDirective {
3528
+ private readonly previewService;
3529
+ readonly article: _angular_core.InputSignal<Article$1 | undefined>;
3530
+ onCtrlEnter(): void;
3531
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OpenArticleOnCtrlEnterDirective, never>;
3532
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OpenArticleOnCtrlEnterDirective, "[appOpenArticleOnCtrlEnter],[openArticleOnCtrlEnter]", never, { "article": { "alias": "article"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
3533
+ }
3534
+
3535
+ /**
3536
+ * Directive to be used on elements that should be counted as items in the
3537
+ * overflow manager.
3538
+ */
3539
+ declare class OverflowItemDirective {
3540
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowItemDirective, never>;
3541
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowItemDirective, "[overflowItem]", never, {}, {}, never, never, true, never>;
3542
+ }
3543
+ /**
3544
+ * Directive to be used on the element that should be considered as the limit
3545
+ * for the overflow manager.
3546
+ */
3547
+ declare class OverflowStopDirective {
3548
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowStopDirective, never>;
3549
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowStopDirective, "[overflowStop]", never, {}, {}, never, never, true, never>;
3550
+ }
3551
+ /**
3552
+ * Directive that takes items and a stop element to count the number of items
3553
+ * that can fit before the stop element.
3554
+ * The directive will apply a `visibility: hidden` on the items that are not
3555
+ * visible.
3556
+ *
3557
+ * You can specify a target element to observe for resize events, otherwise the
3558
+ * directive will observe the element itself.
3559
+ *
3560
+ * This directive cannot be used on `hostDirectives` as it needs access to the
3561
+ * DOM elements. To use is as a host directive, wrap it in a `ng-container` and
3562
+ * define a target.
3563
+ *
3564
+ * @input target - The target element to observe for resize events.
3565
+ * @input margin - Margin to add for calculating the overflow.
3566
+ *
3567
+ * @output count - The number of items that can fit before the stop element,
3568
+ * count is debounced to avoid multiple updates.
3569
+ *
3570
+ * @example
3571
+ * ```typescript
3572
+ * <ng-container
3573
+ * overflowManager
3574
+ * class="flex gap-2 overflow-hidden"
3575
+ * [target]="el.nativeElement"
3576
+ * (count)="updateCount($event)"
3577
+ * >
3578
+ * <ul>
3579
+ * \@for (let item of [1, 2, 3, 4, 5]) {
3580
+ * <li overflowItem>{{ item }}</li>
3581
+ * }
3582
+ * </ul>
3583
+ *
3584
+ * <div overflowStop class="absolute right-0"></div>
3585
+ * </ng-container>
3586
+ * ```
3587
+ */
3588
+ declare class OverflowManagerDirective {
3589
+ readonly items: _angular_core.Signal<readonly ElementRef<any>[]>;
3590
+ readonly stop: _angular_core.Signal<ElementRef<any> | undefined>;
3591
+ readonly target: _angular_core.InputSignal<HTMLElement | undefined>;
3592
+ readonly margin: _angular_core.InputSignal<number>;
3593
+ readonly direction: _angular_core.InputSignal<"horizontal" | "vertical">;
3594
+ readonly count: _angular_core.OutputEmitterRef<number>;
3595
+ private readonly el;
3596
+ private readonly destroyRef;
3597
+ private readonly resizeObserver;
3598
+ private countSub;
3599
+ private _lastCount;
3600
+ constructor();
3861
3601
  /**
3862
- * Updates the saved searches in the user settings store.
3863
- *
3864
- * @param savedSearches - An array of SearchItem objects to update.
3602
+ * Counts the number of items that can fit before the stop element.
3603
+ * Emits the count if it has changed.
3604
+ * Debounces the count to avoid multiple updates.
3865
3605
  */
3866
- updateSavedSearches(savedSearches: SearchItem[]): void;
3606
+ countItems(): void;
3867
3607
  /**
3868
- * Deletes a saved search from the user settings store.
3869
- *
3870
- * @param index - The index of the saved search to delete.
3608
+ * Toggles the visibility of the items based on the count.
3609
+ * @param count - The number of items to keep visible.
3871
3610
  */
3872
- deleteSavedSearch(index: number): void;
3873
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SavedSearchesService, never>;
3874
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<SavedSearchesService>;
3611
+ toggleToCount(count: number): void;
3612
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowManagerDirective, never>;
3613
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowManagerDirective, "[overflowManager]", never, { "target": { "alias": "target"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, { "count": "count"; }, ["items", "stop"], never, true, never>;
3875
3614
  }
3876
3615
 
3877
- type SearchOptions = {
3878
- appendFilters?: boolean;
3879
- audit?: AuditEvents;
3880
- };
3616
+ type SelectionStrategy = 'replace' | 'stack';
3881
3617
  /**
3882
- * Service for performing search operations.
3618
+ * Directive that selects an article on click.
3619
+ */
3620
+ declare class SelectArticleOnClickDirective {
3621
+ private readonly drawerStack;
3622
+ readonly article: _angular_core.InputSignal<Partial<Article$1> | undefined>;
3623
+ readonly strategy: _angular_core.InputSignal<SelectionStrategy>;
3624
+ onEnter(e: Event): void;
3625
+ onClick(): void;
3626
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectArticleOnClickDirective, never>;
3627
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectArticleOnClickDirective, "[selectArticleOnClick]", never, { "article": { "alias": "article"; "required": true; "isSignal": true; }; "strategy": { "alias": "strategy"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3628
+ }
3629
+
3630
+ /**
3631
+ * Directive that handles the behavior of showing a bookmark for an article.
3883
3632
  *
3884
- * @deprecated Use `QueryService` and `QueryParamsStore` instead.
3633
+ * @remarks
3634
+ * This directive listens to mouse enter and mouse leave events to determine when to show the bookmark.
3635
+ * It also checks the user's settings to determine if the article is bookmarked.
3636
+ *
3637
+ * @example
3638
+ * ```html
3639
+ * <div showBookmark [article]="currentArticle" (showBookmark)="onShowBookmark($event)"></div>
3640
+ * ```
3885
3641
  */
3886
- declare class SearchService {
3887
- protected readonly http: HttpClient;
3888
- private readonly router;
3889
- private readonly route;
3890
- private readonly queryService;
3891
- result: Result;
3892
- audit?: AuditEvents;
3893
- protected readonly queryParamsStore: {
3894
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
3895
- name?: _angular_core.Signal<string | undefined> | undefined;
3896
- sort?: _angular_core.Signal<string | undefined> | undefined;
3897
- action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
3898
- text?: _angular_core.Signal<string | undefined> | undefined;
3899
- select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
3900
- open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
3901
- page?: _angular_core.Signal<number | undefined> | undefined;
3902
- pageSize?: _angular_core.Signal<number | undefined> | undefined;
3903
- tab?: _angular_core.Signal<string | undefined> | undefined;
3904
- scope?: _angular_core.Signal<string | undefined> | undefined;
3905
- basket?: _angular_core.Signal<string | undefined> | undefined;
3906
- isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
3907
- strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
3908
- globalRelevance?: _angular_core.Signal<number | undefined> | undefined;
3909
- questionLanguage?: _angular_core.Signal<string | undefined> | undefined;
3910
- questionDefaultLanguage?: _angular_core.Signal<string | undefined> | undefined;
3911
- spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined;
3912
- spellingCorrectionFilter?: _angular_core.Signal<string | undefined> | undefined;
3913
- documentWeight?: _angular_core.Signal<string | undefined> | undefined;
3914
- textPartWeights?: _angular_core.Signal<string | undefined> | undefined;
3915
- relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
3916
- removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
3917
- queryId?: _angular_core.Signal<string | undefined> | undefined;
3918
- orderBy?: _angular_core.Signal<string | undefined> | undefined;
3919
- groupBy?: _angular_core.Signal<string | undefined> | undefined;
3920
- neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
3921
- path?: _angular_core.Signal<string | undefined> | undefined;
3922
- filters?: _angular_core.Signal<_sinequa_atomic.LegacyFilter[] | undefined> | undefined;
3923
- id?: _angular_core.Signal<string | undefined> | undefined;
3924
- setFromUrl: (url: string) => void;
3925
- addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void;
3926
- updateFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void;
3927
- removeFilter: (field?: string) => void;
3928
- removeFilterByName: (name?: string, column?: string) => void;
3929
- clearFilters: () => void;
3930
- clearBasket: () => void;
3931
- patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: AuditEvents) => void;
3932
- getFilter: ({ field, name }: {
3933
- field: string | undefined;
3934
- name: string | undefined;
3935
- }) => Partial<_sinequa_atomic.LegacyFilter & {
3936
- count: number;
3937
- }> | null;
3938
- getQuery: () => Query;
3939
- } & _ngrx_signals.StateSource<{
3940
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
3941
- name?: string | undefined;
3942
- sort?: string | undefined;
3943
- action?: "" | "search" | "open" | "aggregate" | undefined;
3944
- text?: string | undefined;
3945
- select?: _sinequa_atomic.Select[] | undefined;
3946
- open?: _sinequa_atomic.Open[] | undefined;
3947
- page?: number | undefined;
3948
- pageSize?: number | undefined;
3949
- tab?: string | undefined;
3950
- scope?: string | undefined;
3951
- basket?: string | undefined;
3952
- isFirstPage?: boolean | undefined;
3953
- strictRefine?: boolean | undefined;
3954
- globalRelevance?: number | undefined;
3955
- questionLanguage?: string | undefined;
3956
- questionDefaultLanguage?: string | undefined;
3957
- spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined;
3958
- spellingCorrectionFilter?: string | undefined;
3959
- documentWeight?: string | undefined;
3960
- textPartWeights?: string | undefined;
3961
- relevanceTransforms?: string | undefined;
3962
- removeDuplicates?: boolean | undefined;
3963
- queryId?: string | undefined;
3964
- orderBy?: string | undefined;
3965
- groupBy?: string | undefined;
3966
- neuralSearch?: boolean | undefined;
3967
- path?: string | undefined;
3968
- filters?: _sinequa_atomic.LegacyFilter[] | undefined;
3969
- id?: string | undefined;
3970
- }>;
3971
- protected readonly userSettingsStore: {
3642
+ declare class ShowBookmarkDirective {
3643
+ mouseEnter(): void;
3644
+ mouseLeave(): void;
3645
+ protected bookmarkHovered: _angular_core.WritableSignal<boolean>;
3646
+ userSettingsStore: {
3972
3647
  bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>;
3973
3648
  recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>;
3974
3649
  savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>;
@@ -3977,13 +3652,14 @@ declare class SearchService {
3977
3652
  alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
3978
3653
  collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
3979
3654
  language?: _angular_core.Signal<string | undefined> | undefined;
3980
- updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: AuditEvents) => Promise<void>;
3981
- bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
3655
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
3656
+ updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
3657
+ bookmark: (article: Article$1, queryName?: string) => Promise<void>;
3982
3658
  unbookmark: (id: string) => Promise<void>;
3983
- isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean;
3984
- toggleBookmark: (article: _sinequa_atomic.Article) => Promise<void>;
3659
+ isBookmarked: (article: Partial<Article$1>) => boolean;
3660
+ toggleBookmark: (article: Article$1) => Promise<void>;
3985
3661
  deleteRecentSearch: (index: number) => Promise<void>;
3986
- updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: AuditEvents) => Promise<void>;
3662
+ updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
3987
3663
  addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise<void>;
3988
3664
  deleteSavedSearch: (index: number) => Promise<void>;
3989
3665
  updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise<void>;
@@ -3995,123 +3671,268 @@ declare class SearchService {
3995
3671
  addToBasket: (name: string, ids: string | string[]) => Promise<void>;
3996
3672
  removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
3997
3673
  updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise<void>;
3998
- updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: AuditEvents) => Promise<void>;
3999
- updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: AuditEvents) => Promise<void>;
3674
+ updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
3675
+ updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
4000
3676
  initialize: () => Promise<void>;
4001
3677
  reset: () => Promise<void>;
4002
3678
  deleteAlert: (index: number) => Promise<void>;
4003
3679
  createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
4004
3680
  updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
4005
3681
  updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
3682
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
3683
+ toggleDarkMode: () => Promise<void>;
3684
+ } & _ngrx_signals.StateSource<{
3685
+ bookmarks: _sinequa_atomic_angular.Bookmark[];
3686
+ recentSearches: _sinequa_atomic_angular.SearchItem[];
3687
+ savedSearches: _sinequa_atomic_angular.SearchItem[];
3688
+ baskets: _sinequa_atomic_angular.Basket[];
3689
+ assistants: Record<string, unknown>;
3690
+ alerts: _sinequa_atomic_angular.Alert[];
3691
+ collapseAssistant?: boolean | undefined;
3692
+ language?: string | undefined;
3693
+ useDarkMode: boolean;
3694
+ }>;
3695
+ protected isBookmarked: _angular_core.Signal<boolean>;
3696
+ readonly article: _angular_core.InputSignal<Article$1 | Partial<Article$1> | undefined>;
3697
+ readonly showBookmark: _angular_core.OutputEmitterRef<boolean>;
3698
+ constructor();
3699
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShowBookmarkDirective, never>;
3700
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShowBookmarkDirective, "[showBookmark]", never, { "article": { "alias": "article"; "required": true; "isSignal": true; }; }, { "showBookmark": "showBookmark"; }, never, never, true, never>;
3701
+ }
3702
+
3703
+ /**
3704
+ * This directive is used to apply a theme to a native element based on the theme scope.
3705
+ */
3706
+ declare class ThemeProviderDirective {
3707
+ readonly themeProvider: _angular_core.InputSignal<string>;
3708
+ readonly host: ElementRef<any>;
3709
+ readonly themeStore: {
3710
+ scopes: _angular_core.Signal<_sinequa_atomic_angular.ThemeScope>;
3711
+ loadDefaultTheme: (scope: string, darkMode?: boolean) => void;
3712
+ setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void;
3713
+ setDarkMode: (scope: string, darkMode: boolean) => void;
4006
3714
  } & _ngrx_signals.StateSource<{
4007
- bookmarks: _sinequa_atomic_angular.Bookmark[];
4008
- recentSearches: _sinequa_atomic_angular.SearchItem[];
4009
- savedSearches: _sinequa_atomic_angular.SearchItem[];
4010
- baskets: _sinequa_atomic_angular.Basket[];
4011
- assistants: Record<string, unknown>;
4012
- alerts: _sinequa_atomic_angular.Alert[];
4013
- collapseAssistant?: boolean | undefined;
4014
- language?: string | undefined;
3715
+ scopes: _sinequa_atomic_angular.ThemeScope;
4015
3716
  }>;
4016
- protected readonly injector: Injector;
4017
- protected readonly API_URL: string;
4018
- /**
4019
- * Executes a search operation with the given commands and options.
4020
- *
4021
- * @deprecated use `queryParamsStore` to update the query parameters and `queryService.search()` to perform the search.
4022
- *
4023
- * @param commands - An array of strings representing the search commands.
4024
- * @param options - An optional object containing search options.
4025
- * @param options.appendFilters - A boolean indicating whether to append existing filters to the search query. Defaults to true.
4026
- * @param options.audit - An optional audit trail object to be stored in the navigation state.
4027
- *
4028
- * The method constructs query parameters based on the current state and the provided options,
4029
- * then navigates to the specified commands with the constructed query parameters and audit trail.
4030
- */
4031
- search(commands: string[], options?: SearchOptions): void;
4032
- /**
4033
- * Retrieves the search result based on the provided query.
4034
- *
4035
- * @deprecated use `queryService.search()` instead.
4036
- *
4037
- * @param q - A partial query object containing search parameters.
4038
- * @returns An Observable of the search result.
4039
- *
4040
- * This method performs the following actions:
4041
- * - Creates an audit event with the type "Search_Text" and the query text.
4042
- * - Resets the audit property to undefined.
4043
- * - Calls the search method of the queryService with the query, a flag to include the query name in records, and the audit event.
4044
- * - Handles any errors by returning an empty Result object.
4045
- * - Maps the search result to the service's result property.
4046
- */
4047
- getResult(q: Partial<Query>): Observable<Result>;
4048
- /**
4049
- * Navigates to the specified page and returns the search result.
4050
- *
4051
- * @deprecated use queryService.gotoPage() instead.
4052
- *
4053
- * @param page - The page number to navigate to.
4054
- * @returns A promise that resolves to the search result.
4055
- */
4056
- gotoPage(page: number): void;
4057
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchService, never>;
4058
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<SearchService>;
3717
+ constructor();
3718
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeProviderDirective, never>;
3719
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThemeProviderDirective, "[themeProvider]", never, { "themeProvider": { "alias": "themeProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
4059
3720
  }
4060
3721
 
4061
- type SelectionHistoryEvent = 'back' | 'new';
4062
- declare class SelectionHistoryService {
4063
- readonly selectionHistoryEvent: EventEmitter<SelectionHistoryEvent>;
4064
- private readonly selectionService;
4065
- private readonly selectionStore;
4066
- private readonly history;
4067
- constructor();
4068
- /**
4069
- * Retrieves the index of the current selection.
4070
- *
4071
- * @returns {number} The index of the current selection, which is the last element in the history array.
4072
- */
4073
- getCurrentSelectionIndex(): number;
3722
+ /**
3723
+ * Directive to mark a child element for special processing.
3724
+ * This can be used to apply specific styles or behaviors to child elements.
3725
+ * Specifically, it can be used to mark elements that should be treated as children in a parent component.
3726
+ * Very useful for components that need to render child templates dynamically with `@for loop`.
3727
+ *
3728
+ * Example usage:
3729
+ * ```html
3730
+ * <sponsored-links>
3731
+ * <span *childMarker>Child Element</span>
3732
+ * </sponsored-links>
3733
+ * ```
3734
+ * This will allow the parent component to recognize the `<span>` as a child element and apply any specific logic or styles defined in the parent component.
3735
+ */
3736
+ declare class ChildMarkerDirective {
3737
+ template: TemplateRef<any>;
3738
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChildMarkerDirective, never>;
3739
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ChildMarkerDirective, "[childMarker]", never, {}, {}, never, never, true, never>;
3740
+ }
3741
+
3742
+ declare const searchVariants: (props?: ({
3743
+ variant?: "default" | "primary" | "secondary" | "destructive" | "ai" | null | undefined;
3744
+ decoration?: "none" | "outline" | null | undefined;
3745
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
3746
+ type SearchVariants = VariantProps<typeof searchVariants>;
3747
+ declare class SearchInputComponent {
3748
+ cn: typeof cn;
3749
+ searchInput: _angular_core.Signal<ElementRef<any>>;
4074
3750
  /**
4075
- * Retrieves an article from the selection history at the specified index.
3751
+ * Emits an event when an element is selected or deselected.
4076
3752
  *
4077
- * @param index - The index of the article to retrieve.
4078
- * @returns The article at the specified index, or `undefined` if the index is out of bounds.
4079
- */
4080
- getSelection(index: number): Article$1 | undefined;
4081
- /**
4082
- * Retrieves the length of the history array.
3753
+ * @remarks
3754
+ * The event payload is either the selected HTMLElement or `null` if the selection is cleared.
4083
3755
  *
4084
- * @returns {number} The number of entries in the history.
3756
+ * @eventProperty
4085
3757
  */
4086
- getHistoryLength(): number;
3758
+ onSelected: _angular_core.OutputEmitterRef<HTMLElement | null>;
4087
3759
  /**
4088
- * Clears the selection history and resets the current article selection.
3760
+ * A required form control for handling string input in the search component.
4089
3761
  *
4090
- * This method performs the following actions:
4091
- * - Empties the history array.
4092
- * - Calls the `clearCurrentArticle` method on the `selectionService` to reset the current article selection.
4093
- */
4094
- clearHistory(): void;
4095
- /**
4096
- * Navigates back in the selection history.
3762
+ * This control is initialized using the `input.required` method, ensuring that
3763
+ * the associated input field is mandatory and will enforce validation for non-empty values.
4097
3764
  *
4098
- * Removes the most recent entry from the history. If the history is empty after this operation,
4099
- * it returns `undefined`. Otherwise, it sets the current article to the last entry in the history,
4100
- * triggers a 'back' event, and returns the last entry.
3765
+ * @remarks
3766
+ * This is typically used to bind to an Angular form input element, providing
3767
+ * reactive form validation and value tracking.
4101
3768
  *
4102
- * @returns {Article | undefined} The last article in the history, or `undefined` if the history is empty.
3769
+ * @type FormControl<string>
4103
3770
  */
4104
- back(): Article$1 | undefined;
4105
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionHistoryService, never>;
4106
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<SelectionHistoryService>;
3771
+ control: _angular_core.InputSignal<FormControl<string>>;
3772
+ controls: _angular_core.InputSignal<string>;
3773
+ keyboardNavigatorOptions: _angular_core.InputSignal<KeyboardNavigatorOptions>;
3774
+ placeholder: _angular_core.InputSignal<string>;
3775
+ disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
3776
+ hotkey: _angular_core.InputSignal<string>;
3777
+ class: _angular_core.InputSignal<string | undefined>;
3778
+ variant: _angular_core.InputSignal<"default" | "primary" | "secondary" | "destructive" | "ai" | null | undefined>;
3779
+ decoration: _angular_core.InputSignal<"none" | "outline" | null | undefined>;
3780
+ variants: _angular_core.Signal<string>;
3781
+ onInput(event: Event): void;
3782
+ clearSearch(e: Event): void;
3783
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchInputComponent, never>;
3784
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchInputComponent, "SearchInput", never, { "control": { "alias": "control"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; "keyboardNavigatorOptions": { "alias": "keyboardNavigatorOptions"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hotkey": { "alias": "hotkey"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "decoration": { "alias": "decoration"; "required": false; "isSignal": true; }; }, { "onSelected": "onSelected"; }, never, ["*"], true, never>;
4107
3785
  }
4108
3786
 
4109
- declare class SelectionService {
4110
- private readonly route;
4111
- private readonly router;
4112
- private readonly location;
4113
- private readonly selectionStore;
4114
- queryParamsStore: {
3787
+ type SortingChoice = CCSortingChoice & {
3788
+ $isDesc?: boolean;
3789
+ };
3790
+ declare class SortSelectorComponent {
3791
+ dropdown: _angular_core.Signal<DropdownComponent | undefined>;
3792
+ readonly result: _angular_core.InputSignal<Result>;
3793
+ readonly position: _angular_core.InputSignal<Placement>;
3794
+ readonly onSort: _angular_core.OutputEmitterRef<SortingChoice>;
3795
+ appStore: {
3796
+ webServices: _ngrx_signals.DeepSignal<{}>;
3797
+ queries: _ngrx_signals.DeepSignal<{}>;
3798
+ customJSONs: _angular_core.Signal<_sinequa_atomic_angular.SideCJson[]>;
3799
+ data: _ngrx_signals.DeepSignal<{}>;
3800
+ customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>;
3801
+ sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>;
3802
+ filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>;
3803
+ general: _angular_core.Signal<{
3804
+ name?: string;
3805
+ logo?: {
3806
+ alt?: string;
3807
+ light?: {
3808
+ small?: string;
3809
+ large?: string;
3810
+ };
3811
+ dark?: {
3812
+ small?: string;
3813
+ large?: string;
3814
+ };
3815
+ };
3816
+ features?: {
3817
+ advancedSearch?: boolean;
3818
+ };
3819
+ } | undefined>;
3820
+ assistants: _angular_core.Signal<Record<string, any>>;
3821
+ initialize: () => Promise<void>;
3822
+ initializeWithAppName: (appName: string) => Promise<void>;
3823
+ update: (app: _sinequa_atomic.CCApp) => void;
3824
+ getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined;
3825
+ getLabels: () => {
3826
+ private: string;
3827
+ public: string;
3828
+ };
3829
+ getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined;
3830
+ getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined;
3831
+ getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined;
3832
+ allowEmptySearch: (queryName: string) => boolean;
3833
+ allowLabels: () => boolean;
3834
+ getColumnAlias: (column: string) => string;
3835
+ getColumn: (column: string) => _sinequa_atomic.CCColumn | undefined;
3836
+ isDateColumn: (column: string) => boolean;
3837
+ isTabSearch: (queryName: string) => boolean;
3838
+ getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
3839
+ getAuthorizedFilters: (route: _angular_router.ActivatedRoute) => _sinequa_atomic.Aggregation[];
3840
+ getNamedCustomizationJson: (name: string) => any | undefined;
3841
+ getAggregationIcon: (column: string) => string | undefined;
3842
+ getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
3843
+ getAggregationCustomization: (column: string) => _sinequa_atomic_angular.CFilter | undefined;
3844
+ isAssistantAllowed: (assistantName: string) => boolean;
3845
+ } & _ngrx_signals.StateSource<{
3846
+ webServices: {};
3847
+ queries: {};
3848
+ customJSONs: _sinequa_atomic_angular.SideCJson[];
3849
+ data: {};
3850
+ }>;
3851
+ readonly queryName: _angular_core.Signal<string>;
3852
+ readonly sortOptions: _angular_core.Signal<SortingChoice[]>;
3853
+ readonly sort: _angular_core.Signal<SortingChoice | undefined>;
3854
+ readonly isSortingDesc: _angular_core.Signal<boolean | undefined>;
3855
+ onSortOptionClicked(sort: SortingChoice): void;
3856
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SortSelectorComponent, never>;
3857
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SortSelectorComponent, "sort-selector, sortselector, SortSelector", never, { "result": { "alias": "result"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, { "onSort": "onSort"; }, never, never, true, never>;
3858
+ }
3859
+
3860
+ declare class SourceComponent {
3861
+ readonly collection: _angular_core.InputSignal<string[] | undefined>;
3862
+ readonly connector: _angular_core.InputSignal<string>;
3863
+ private readonly appStore;
3864
+ readonly iconDetails: _angular_core.Signal<{
3865
+ iconClass: string;
3866
+ iconPath?: string;
3867
+ } | undefined>;
3868
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SourceComponent, never>;
3869
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SourceComponent, "source, Source", never, { "collection": { "alias": "collection"; "required": false; "isSignal": true; }; "connector": { "alias": "connector"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3870
+ }
3871
+
3872
+ declare class SponsoredResultsComponent {
3873
+ /**
3874
+ * The directive used to mark the child template for the "Promoted" badge.
3875
+ * This allows users to customize the appearance of the badge.
3876
+ */
3877
+ childElement: _angular_core.Signal<ChildMarkerDirective | undefined>;
3878
+ injector: Injector;
3879
+ appStore: {
3880
+ webServices: _ngrx_signals.DeepSignal<{}>;
3881
+ queries: _ngrx_signals.DeepSignal<{}>;
3882
+ customJSONs: _angular_core.Signal<_sinequa_atomic_angular.SideCJson[]>;
3883
+ data: _ngrx_signals.DeepSignal<{}>;
3884
+ customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>;
3885
+ sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>;
3886
+ filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>;
3887
+ general: _angular_core.Signal<{
3888
+ name?: string;
3889
+ logo?: {
3890
+ alt?: string;
3891
+ light?: {
3892
+ small?: string;
3893
+ large?: string;
3894
+ };
3895
+ dark?: {
3896
+ small?: string;
3897
+ large?: string;
3898
+ };
3899
+ };
3900
+ features?: {
3901
+ advancedSearch?: boolean;
3902
+ };
3903
+ } | undefined>;
3904
+ assistants: _angular_core.Signal<Record<string, any>>;
3905
+ initialize: () => Promise<void>;
3906
+ initializeWithAppName: (appName: string) => Promise<void>;
3907
+ update: (app: CCApp) => void;
3908
+ getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined;
3909
+ getLabels: () => {
3910
+ private: string;
3911
+ public: string;
3912
+ };
3913
+ getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined;
3914
+ getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined;
3915
+ getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined;
3916
+ allowEmptySearch: (queryName: string) => boolean;
3917
+ allowLabels: () => boolean;
3918
+ getColumnAlias: (column: string) => string;
3919
+ getColumn: (column: string) => _sinequa_atomic.CCColumn | undefined;
3920
+ isDateColumn: (column: string) => boolean;
3921
+ isTabSearch: (queryName: string) => boolean;
3922
+ getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
3923
+ getAuthorizedFilters: (route: _angular_router.ActivatedRoute) => _sinequa_atomic.Aggregation[];
3924
+ getNamedCustomizationJson: (name: string) => any | undefined;
3925
+ getAggregationIcon: (column: string) => string | undefined;
3926
+ getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
3927
+ getAggregationCustomization: (column: string) => _sinequa_atomic_angular.CFilter | undefined;
3928
+ isAssistantAllowed: (assistantName: string) => boolean;
3929
+ } & _ngrx_signals.StateSource<{
3930
+ webServices: {};
3931
+ queries: {};
3932
+ customJSONs: _sinequa_atomic_angular.SideCJson[];
3933
+ data: {};
3934
+ }>;
3935
+ queryParamStore: {
4115
3936
  aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
4116
3937
  name?: _angular_core.Signal<string | undefined> | undefined;
4117
3938
  sort?: _angular_core.Signal<string | undefined> | undefined;
@@ -4190,67 +4011,352 @@ declare class SelectionService {
4190
4011
  id?: string | undefined;
4191
4012
  }>;
4192
4013
  /**
4193
- * Sets the current article in the selection store and optionally updates the query text.
4194
- * If the provided article is undefined, it clears the current article.
4195
- *
4196
- * @param article - The article to set as the current article. If undefined, the current article is cleared.
4197
- * @param withQueryText - A boolean indicating whether to update the query text in the selection store. Defaults to true.
4198
- *
4199
- * @returns void
4200
- */
4201
- setCurrentArticle(article?: Article$1, withQueryText?: boolean): void;
4202
- /**
4203
- * Clears the current article selection from the selection store and
4204
- * removes the article ID from the query parameters.
4205
- *
4206
- * @remarks
4207
- * This method performs two main actions:
4208
- * 1. Clears the current selection from the `selectionStore`.
4209
- * 2. Removes the article ID from the query parameters to ensure
4210
- * the URL does not reference the cleared article.
4211
- *
4212
- * @public
4213
- */
4214
- clearCurrentArticle(): void;
4215
- /**
4216
- * Updates the article ID in the query parameters of the current route.
4217
- * If the provided ID is undefined, it will remove the ID from the query parameters.
4218
- *
4219
- * @param id - The article ID to be set in the query parameters. If undefined, the ID will be removed.
4220
- */
4221
- private updateArticleIdInQueryParams;
4222
- /**
4223
- * Clears the 'id' parameter from the current route's query parameters.
4224
- *
4225
- * This method creates a copy of the current query parameters, removes the 'id' parameter,
4226
- * and then updates the browser's URL to reflect the change without reloading the page.
4227
- *
4228
- * @private
4014
+ * The maximum number of sponsored results to display.
4015
+ * This is set to 3 by default, but can be overridden by the `maxSponsoredResults` query parameter.
4016
+ */
4017
+ slice: _angular_core.InputSignal<number>;
4018
+ /**
4019
+ * Whether to display the "Promoted" badge next to sponsored results.
4020
+ * This is set to true by default, but can be overridden by the `displayPromoted` query parameter.
4021
+ */
4022
+ displayPromoted: _angular_core.InputSignal<boolean>;
4023
+ sponsoredLinks: _angular_core.Signal<string>;
4024
+ readonly sponsoredResults: _angular_core.WritableSignal<LinkResult[] | undefined>;
4025
+ constructor();
4026
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SponsoredResultsComponent, never>;
4027
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SponsoredResultsComponent, "sponsored-results, SponsoredResults, sponsoredresults", never, { "slice": { "alias": "slice"; "required": false; "isSignal": true; }; "displayPromoted": { "alias": "displayPromoted"; "required": false; "isSignal": true; }; }, {}, ["childElement"], never, true, never>;
4028
+ }
4029
+
4030
+ declare class ThemeSelectorComponent {
4031
+ readonly scope: _angular_core.InputSignal<string>;
4032
+ readonly showPrivate: _angular_core.InputSignal<boolean>;
4033
+ readonly themes: _angular_core.Signal<{
4034
+ name: string;
4035
+ id: string;
4036
+ private: boolean;
4037
+ colors: {
4038
+ 'button-primary-background': string;
4039
+ background: string;
4040
+ foreground: string;
4041
+ card: string;
4042
+ 'card-foreground': string;
4043
+ active: string;
4044
+ 'active-foreground': string;
4045
+ 'active-background': string;
4046
+ primary: string;
4047
+ 'primary-foreground': string;
4048
+ secondary: string;
4049
+ 'secondary-foreground': string;
4050
+ muted: string;
4051
+ 'muted-foreground': string;
4052
+ accent: string;
4053
+ 'accent-foreground': string;
4054
+ destructive: string;
4055
+ 'destructive-foreground': string;
4056
+ border: string;
4057
+ input: string;
4058
+ ring: string;
4059
+ };
4060
+ colorsDark: {
4061
+ background: string;
4062
+ foreground: string;
4063
+ card: string;
4064
+ 'card-foreground': string;
4065
+ active: string;
4066
+ 'active-foreground': string;
4067
+ 'active-background': string;
4068
+ primary: string;
4069
+ 'primary-foreground': string;
4070
+ secondary: string;
4071
+ 'secondary-foreground': string;
4072
+ muted: string;
4073
+ 'muted-foreground': string;
4074
+ accent: string;
4075
+ 'accent-foreground': string;
4076
+ destructive: string;
4077
+ 'destructive-foreground': string;
4078
+ border: string;
4079
+ input: string;
4080
+ ring: string;
4081
+ };
4082
+ }[]>;
4083
+ readonly selectedTheme: _angular_core.ModelSignal<string | undefined>;
4084
+ readonly themeStore: {
4085
+ scopes: _angular_core.Signal<_sinequa_atomic_angular.ThemeScope>;
4086
+ loadDefaultTheme: (scope: string, darkMode?: boolean) => void;
4087
+ setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void;
4088
+ setDarkMode: (scope: string, darkMode: boolean) => void;
4089
+ } & _ngrx_signals.StateSource<{
4090
+ scopes: _sinequa_atomic_angular.ThemeScope;
4091
+ }>;
4092
+ constructor();
4093
+ selectTheme(theme: string): void;
4094
+ selectTheme(theme: Theme): void;
4095
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeSelectorComponent, never>;
4096
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeSelectorComponent, "theme-selector", never, { "scope": { "alias": "scope"; "required": true; "isSignal": true; }; "showPrivate": { "alias": "showPrivate"; "required": false; "isSignal": true; }; "selectedTheme": { "alias": "selectedTheme"; "required": false; "isSignal": true; }; }, { "selectedTheme": "selectedThemeChange"; }, never, ["*"], true, never>;
4097
+ }
4098
+
4099
+ declare class ThemeToggleComponent {
4100
+ readonly scope: _angular_core.InputSignal<string>;
4101
+ readonly darkMode: _angular_core.ModelSignal<boolean | undefined>;
4102
+ private readonly themeStore;
4103
+ constructor();
4104
+ toggleDarkMode(status: boolean): void;
4105
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeToggleComponent, never>;
4106
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggleComponent, "theme-toggle", never, { "scope": { "alias": "scope"; "required": true; "isSignal": true; }; "darkMode": { "alias": "darkMode"; "required": false; "isSignal": true; }; }, { "darkMode": "darkModeChange"; }, never, never, true, never>;
4107
+ }
4108
+
4109
+ /**
4110
+ * Returns a guard function that checks if the user is authenticated.
4111
+ * If the user is not authenticated, it navigates to the login page.
4112
+ * @returns The guard function.
4113
+ */
4114
+ declare function AuthGuard(): CanActivateFn;
4115
+
4116
+ /**
4117
+ * Intercepts HTTP requests to add audit information if the request URL includes the API path.
4118
+ *
4119
+ * This interceptor checks if the request URL contains the specified API path from the global configuration.
4120
+ * If the request body is JSON serializable and not an instance of `HttpParams`, it adds additional audit information
4121
+ * to the request body using the `addAuditAdditionalInfo` function.
4122
+ *
4123
+ * @param request - The HTTP request to be intercepted.
4124
+ * @param next - The next handler in the HTTP request chain.
4125
+ * @returns The next handler in the HTTP request chain, potentially with modified request body.
4126
+ */
4127
+ declare const auditInterceptorFn: HttpInterceptorFn;
4128
+
4129
+ /**
4130
+ * Intercepts HTTP requests to add authentication headers and handle CSRF tokens.
4131
+ *
4132
+ * This interceptor checks if the user is logged in and adds necessary headers
4133
+ * to the request, including a CSRF token. If user override is active, it sets
4134
+ * the override user and domain headers instead. It also updates the CSRF token
4135
+ * from the response headers if present.
4136
+ *
4137
+ * @param request - The outgoing HTTP request.
4138
+ * @param next - The next handler in the HTTP request pipeline.
4139
+ * @returns An observable of the HTTP event stream.
4140
+ */
4141
+ declare const authInterceptorFn: HttpInterceptorFn;
4142
+
4143
+ /**
4144
+ * Interceptor function that modifies the request body by appending a "locale" parameter with the value "fr".
4145
+ * If the request body is of type FormData, the "locale" parameter is appended directly.
4146
+ * If the request body is an object, a new object is created with the "locale" parameter added.
4147
+ *
4148
+ * @param request - The HTTP request object.
4149
+ * @param next - The HTTP handler function.
4150
+ * @returns The modified request object.
4151
+ */
4152
+ declare const bodyInterceptorFn: (request: HttpRequest<unknown>, next: HttpHandlerFn) => rxjs.Observable<_angular_common_http.HttpEvent<unknown>>;
4153
+
4154
+ /**
4155
+ * Interceptor function that handles HTTP errors by logging out the user and redirecting to the login page.
4156
+ *
4157
+ * @param request - The HTTP request object.
4158
+ * @param next - The HTTP handler function.
4159
+ * @returns The modified request object.
4160
+ */
4161
+ declare const errorInterceptorFn: HttpInterceptorFn;
4162
+
4163
+ /**
4164
+ * Intercepts HTTP requests and handles errors by displaying toast notifications.
4165
+ *
4166
+ * This interceptor checks if the request URL includes 'api/v1/audit.notify'. If it does,
4167
+ * the request is passed through without any modifications. For other requests, it catches
4168
+ * errors and displays a toast notification for specific HTTP status codes (400, 403, 500, 503).
4169
+ *
4170
+ * @param request - The outgoing HTTP request.
4171
+ * @param next - The next handler in the HTTP request pipeline.
4172
+ * @returns An observable that either passes the request through or handles errors with toast notifications.
4173
+ */
4174
+ declare const toastInterceptorFn: HttpInterceptorFn;
4175
+
4176
+ /**
4177
+ * The HighlightWordPipe class is a custom pipe in the Atomic Angular library.
4178
+ * It is used to highlight a specific word within a given text.
4179
+ *
4180
+ * @remarks
4181
+ * This pipe takes in a `value` string, a `word` string to highlight, and an optional `clipBy` number to limit the length of the highlighted text.
4182
+ * It returns an array of `HighlightWords.Chunk` objects representing the highlighted portions of the text.
4183
+ *
4184
+ * @example
4185
+ * ```html
4186
+ * <div [innerHTML]="text | highlightWord:'search':10"></div>
4187
+ * ```
4188
+ *
4189
+ */
4190
+ declare class HighlightWordPipe implements PipeTransform {
4191
+ transform(value: string, word: string, clipBy?: number): HighlightWords.Chunk[];
4192
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HighlightWordPipe, never>;
4193
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<HighlightWordPipe, "highlightWord", true>;
4194
+ }
4195
+
4196
+ /**
4197
+ * Pipe that transforms a collection of strings into a corresponding icon class.
4198
+ *
4199
+ * This pipe uses the first element of the collection to determine the icon class
4200
+ * based on the source name. If the collection is empty or undefined, it returns
4201
+ * a default icon class.
4202
+ *
4203
+ * @deprecated This pipe is deprecated and will be removed in the future.
4204
+ *
4205
+ * @param collection - An array of strings representing the collection.
4206
+ * @returns A string representing the icon class.
4207
+ */
4208
+ declare class SourceIconPipe implements PipeTransform {
4209
+ appStore: {
4210
+ webServices: _ngrx_signals.DeepSignal<{}>;
4211
+ queries: _ngrx_signals.DeepSignal<{}>;
4212
+ customJSONs: _angular_core.Signal<_sinequa_atomic_angular.SideCJson[]>;
4213
+ data: _ngrx_signals.DeepSignal<{}>;
4214
+ customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>;
4215
+ sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>;
4216
+ filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>;
4217
+ general: _angular_core.Signal<{
4218
+ name?: string;
4219
+ logo?: {
4220
+ alt?: string;
4221
+ light?: {
4222
+ small?: string;
4223
+ large?: string;
4224
+ };
4225
+ dark?: {
4226
+ small?: string;
4227
+ large?: string;
4228
+ };
4229
+ };
4230
+ features?: {
4231
+ advancedSearch?: boolean;
4232
+ };
4233
+ } | undefined>;
4234
+ assistants: _angular_core.Signal<Record<string, any>>;
4235
+ initialize: () => Promise<void>;
4236
+ initializeWithAppName: (appName: string) => Promise<void>;
4237
+ update: (app: _sinequa_atomic.CCApp) => void;
4238
+ getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined;
4239
+ getLabels: () => {
4240
+ private: string;
4241
+ public: string;
4242
+ };
4243
+ getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined;
4244
+ getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined;
4245
+ getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined;
4246
+ allowEmptySearch: (queryName: string) => boolean;
4247
+ allowLabels: () => boolean;
4248
+ getColumnAlias: (column: string) => string;
4249
+ getColumn: (column: string) => _sinequa_atomic.CCColumn | undefined;
4250
+ isDateColumn: (column: string) => boolean;
4251
+ isTabSearch: (queryName: string) => boolean;
4252
+ getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
4253
+ getAuthorizedFilters: (route: _angular_router.ActivatedRoute) => _sinequa_atomic.Aggregation[];
4254
+ getNamedCustomizationJson: (name: string) => any | undefined;
4255
+ getAggregationIcon: (column: string) => string | undefined;
4256
+ getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
4257
+ getAggregationCustomization: (column: string) => _sinequa_atomic_angular.CFilter | undefined;
4258
+ isAssistantAllowed: (assistantName: string) => boolean;
4259
+ } & _ngrx_signals.StateSource<{
4260
+ webServices: {};
4261
+ queries: {};
4262
+ customJSONs: _sinequa_atomic_angular.SideCJson[];
4263
+ data: {};
4264
+ }>;
4265
+ transform(collection: string[]): string;
4266
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SourceIconPipe, never>;
4267
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<SourceIconPipe, "sourceIcon", true>;
4268
+ }
4269
+
4270
+ declare class OperatorPipe implements PipeTransform {
4271
+ private readonly transloco;
4272
+ private lastTransformedValue;
4273
+ private readonly cdr;
4274
+ private readonly destroyRef;
4275
+ transform(filter?: LegacyFilter): string;
4276
+ private transformFilter;
4277
+ transformOperator(operator?: FilterOperator): string;
4278
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OperatorPipe, never>;
4279
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<OperatorPipe, "operator", true>;
4280
+ }
4281
+
4282
+ /**
4283
+ * The `SyslangPipe` class is a custom pipe that transforms a string value using the current language.
4284
+ * This pipe is used to translate strings that are not part of the Angular i18n system.
4285
+ * This pipe exists to keep the compatibility with a legacy system that uses a custom language syntax.
4286
+ *
4287
+ * This pipe can be used in the following way:
4288
+ *
4289
+ * @example
4290
+ * <div>{{ 'Hello[fr]Bonjour' | syslang }}</div>
4291
+ * // output: `Bonjour` if your current language is 'fr'
4292
+ * // output: `Hello` if your current language is not 'fr'
4293
+ *
4294
+ * <div>{{ 'Hello[fr]Bonjour' | syslang: 'fr' }}</div>
4295
+ * // output: `Bonjour` even if your current language is not 'fr'
4296
+ */
4297
+ declare class SyslangPipe implements PipeTransform, OnDestroy {
4298
+ private readonly transloco;
4299
+ private readonly cdr;
4300
+ private lastValue;
4301
+ private currentLang;
4302
+ private subscription;
4303
+ ngOnDestroy(): void;
4304
+ constructor();
4305
+ /**
4306
+ * Transforms the input value using the current language.
4307
+ * @param value The input string value to be transformed.
4308
+ * @returns The transformed string value.
4229
4309
  */
4230
- private clearArticleIdFromQueryParams;
4231
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionService, never>;
4232
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<SelectionService>;
4310
+ transform(value?: string, lang?: string): string | null;
4311
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SyslangPipe, never>;
4312
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<SyslangPipe, "syslang", true>;
4233
4313
  }
4234
4314
 
4235
- declare class TextChunkService {
4236
- protected readonly http: HttpClient;
4237
- protected readonly API_URL: string;
4315
+ declare class TranslocoDateImpurePipe extends DatePipe implements OnDestroy {
4316
+ private readonly transloco;
4317
+ private readonly cdr;
4318
+ private lastTransformedValue;
4319
+ private subscription;
4320
+ constructor(locale: string, defaultTimezone?: string | null, defaultOptions?: DatePipeConfig | null);
4321
+ ngOnDestroy(): void;
4322
+ transform(value: Date | string | number, format?: string, timezone?: string): string | null;
4323
+ transform(value: null | undefined, format?: string, timezone?: string): null;
4324
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TranslocoDateImpurePipe, [null, { optional: true; }, { optional: true; }]>;
4325
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<TranslocoDateImpurePipe, "translocoDate", true>;
4326
+ }
4327
+
4328
+ declare class FileSizePipe implements PipeTransform {
4329
+ transform(value: number): {
4330
+ key: string;
4331
+ value: number;
4332
+ };
4238
4333
  /**
4239
- * Retrieves text chunks based on the provided parameters.
4334
+ * Formats a given size in bytes into a more readable format.
4335
+ * It converts the size into kilobytes, megabytes, gigabytes, terabytes, or petabytes as appropriate.
4240
4336
  *
4241
- * @param id - The ID of the record.
4242
- * @param textChunks - An array of TextLocation objects representing the location of the text chunks.
4243
- * @param highlights - An array of strings representing the highlights to be applied to the text chunks.
4244
- * @param query - The query used to retrieve the text chunks.
4245
- * @param leftSentencesCount - The number of sentences to include before the text chunks.
4246
- * @param rightSentencesCount - The number of sentences to include after the text chunks.
4247
- * @returns An Observable that emits an array of TextChunk objects.
4337
+ * @param size - The size in bytes to be formatted.
4338
+ * @returns An object containing the key representing the unit and the value in that unit.
4339
+ *
4340
+ * @example
4341
+ * In a component template:
4342
+ * {{ 1048576 | fileSize | json }}
4343
+ * Output: { "key": "memorySize.mb", "value": 1 }
4248
4344
  */
4249
- getTextChunks(id: string, textChunks: TextLocation[], highlights: string[], query: Query, leftSentencesCount: number, rightSentencesCount: number): Observable<TextChunk[]>;
4250
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextChunkService, never>;
4251
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<TextChunkService>;
4345
+ formatMemorySize(size: number): {
4346
+ key: string;
4347
+ value: number;
4348
+ };
4349
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileSizePipe, never>;
4350
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<FileSizePipe, "fileSize", true>;
4252
4351
  }
4253
4352
 
4353
+ /**
4354
+ * Resolves the name of the default query from the application store.
4355
+ *
4356
+ * @returns The name of the default query or an empty string if not available.
4357
+ */
4358
+ declare const queryNameResolver: ResolveFn<string>;
4359
+
4254
4360
  declare const RECENT_SEARCHES_OPTIONS: {
4255
4361
  itemsPerPage: number;
4256
4362
  showLoadMore: boolean;
@@ -4273,6 +4379,7 @@ declare class RecentSearchesComponent {
4273
4379
  alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
4274
4380
  collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
4275
4381
  language?: _angular_core.Signal<string | undefined> | undefined;
4382
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
4276
4383
  updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
4277
4384
  bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
4278
4385
  unbookmark: (id: string) => Promise<void>;
@@ -4299,6 +4406,8 @@ declare class RecentSearchesComponent {
4299
4406
  createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
4300
4407
  updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
4301
4408
  updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
4409
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
4410
+ toggleDarkMode: () => Promise<void>;
4302
4411
  } & _ngrx_signals.StateSource<{
4303
4412
  bookmarks: _sinequa_atomic_angular.Bookmark[];
4304
4413
  recentSearches: SearchItem[];
@@ -4308,6 +4417,7 @@ declare class RecentSearchesComponent {
4308
4417
  alerts: _sinequa_atomic_angular.Alert[];
4309
4418
  collapseAssistant?: boolean | undefined;
4310
4419
  language?: string | undefined;
4420
+ useDarkMode: boolean;
4311
4421
  }>;
4312
4422
  protected readonly range: _angular_core.WritableSignal<number>;
4313
4423
  protected readonly recentSearches: _angular_core.Signal<SearchItem[]>;
@@ -4339,6 +4449,7 @@ declare class SavedSearchesComponent {
4339
4449
  alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>;
4340
4450
  collapseAssistant?: _angular_core.Signal<boolean | undefined> | undefined;
4341
4451
  language?: _angular_core.Signal<string | undefined> | undefined;
4452
+ useDarkMode: _angular_core.Signal<boolean | undefined>;
4342
4453
  updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise<void>;
4343
4454
  bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise<void>;
4344
4455
  unbookmark: (id: string) => Promise<void>;
@@ -4365,6 +4476,8 @@ declare class SavedSearchesComponent {
4365
4476
  createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise<void>;
4366
4477
  updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise<void>;
4367
4478
  updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise<void>;
4479
+ setDarkMode: (useDarkMode: boolean) => Promise<void>;
4480
+ toggleDarkMode: () => Promise<void>;
4368
4481
  } & _ngrx_signals.StateSource<{
4369
4482
  bookmarks: _sinequa_atomic_angular.Bookmark[];
4370
4483
  recentSearches: SearchItem[];
@@ -4374,6 +4487,7 @@ declare class SavedSearchesComponent {
4374
4487
  alerts: _sinequa_atomic_angular.Alert[];
4375
4488
  collapseAssistant?: boolean | undefined;
4376
4489
  language?: string | undefined;
4490
+ useDarkMode: boolean;
4377
4491
  }>;
4378
4492
  protected readonly range: _angular_core.WritableSignal<number>;
4379
4493
  protected readonly savedSearches: _angular_core.Signal<SearchItem[]>;
@@ -4668,7 +4782,7 @@ declare class DidYouMeanComponent {
4668
4782
  selectCorrected(): void;
4669
4783
  selectOriginal(): void;
4670
4784
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DidYouMeanComponent, never>;
4671
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DidYouMeanComponent, "app-did-you-mean", never, { "result": { "alias": "result"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4785
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DidYouMeanComponent, "did-you-mean, DidYouMean, didyoumean", never, { "result": { "alias": "result"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4672
4786
  }
4673
4787
 
4674
4788
  /**
@@ -4926,6 +5040,9 @@ declare class LabelService {
4926
5040
  large?: string;
4927
5041
  };
4928
5042
  };
5043
+ features?: {
5044
+ advancedSearch?: boolean;
5045
+ };
4929
5046
  } | undefined>;
4930
5047
  assistants: _angular_core.Signal<Record<string, any>>;
4931
5048
  initialize: () => Promise<void>;
@@ -5130,6 +5247,9 @@ declare class FeedbackDialogComponent implements DialogInterface {
5130
5247
  large?: string;
5131
5248
  };
5132
5249
  };
5250
+ features?: {
5251
+ advancedSearch?: boolean;
5252
+ };
5133
5253
  } | undefined>;
5134
5254
  assistants: _angular_core.Signal<Record<string, any>>;
5135
5255
  initialize: () => Promise<void>;
@@ -5284,7 +5404,7 @@ declare class FilterButtonComponent {
5284
5404
  name: _angular_core.InputSignal<string>;
5285
5405
  column: _angular_core.InputSignal<string>;
5286
5406
  position: _angular_core.InputSignal<Placement>;
5287
- protected variant: _angular_core.WritableSignal<"default" | "none" | "icon" | "destructive" | "link" | "outline" | "ai" | "inverse" | "tertiary" | "ghost" | null | undefined>;
5407
+ protected variant: _angular_core.WritableSignal<"default" | "none" | "icon" | "primary" | "secondary" | "destructive" | "ai" | "ghost" | null | undefined>;
5288
5408
  protected filter: _angular_core.WritableSignal<CFilterEx>;
5289
5409
  protected nativeElement: any;
5290
5410
  protected aggregationsStore: {
@@ -5395,6 +5515,9 @@ declare class FilterButtonComponent {
5395
5515
  large?: string;
5396
5516
  };
5397
5517
  };
5518
+ features?: {
5519
+ advancedSearch?: boolean;
5520
+ };
5398
5521
  } | undefined>;
5399
5522
  assistants: _angular_core.Signal<Record<string, any>>;
5400
5523
  initialize: () => Promise<void>;
@@ -5462,6 +5585,9 @@ declare class MoreButtonComponent {
5462
5585
  large?: string;
5463
5586
  };
5464
5587
  };
5588
+ features?: {
5589
+ advancedSearch?: boolean;
5590
+ };
5465
5591
  } | undefined>;
5466
5592
  assistants: _angular_core.Signal<Record<string, any>>;
5467
5593
  initialize: () => Promise<void>;
@@ -5584,6 +5710,7 @@ declare class MoreButtonComponent {
5584
5710
  declare class FiltersBarComponent {
5585
5711
  class: _angular_core.InputSignal<string | undefined>;
5586
5712
  position: _angular_core.InputSignal<Placement>;
5713
+ morePosition: _angular_core.InputSignal<Placement>;
5587
5714
  /**
5588
5715
  * Filters that should be excluded from the filters bar.
5589
5716
  * This can be used to hide specific filters from the UI.
@@ -5636,6 +5763,9 @@ declare class FiltersBarComponent {
5636
5763
  large?: string;
5637
5764
  };
5638
5765
  };
5766
+ features?: {
5767
+ advancedSearch?: boolean;
5768
+ };
5639
5769
  } | undefined>;
5640
5770
  assistants: _angular_core.Signal<Record<string, any>>;
5641
5771
  initialize: () => Promise<void>;
@@ -5790,7 +5920,7 @@ declare class FiltersBarComponent {
5790
5920
  */
5791
5921
  protected adjustFiltersCount(count: number): void;
5792
5922
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FiltersBarComponent, never>;
5793
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FiltersBarComponent, "filters-bar, FiltersBar, filtersbar", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "excludeFilters": { "alias": "excludeFilters"; "required": false; "isSignal": true; }; "filtersCount": { "alias": "filtersCount"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, { "onClearFilters": "onClearFilters"; "onClearBasket": "onClearBasket"; }, never, never, true, never>;
5923
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FiltersBarComponent, "filters-bar, FiltersBar, filtersbar", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "morePosition": { "alias": "morePosition"; "required": false; "isSignal": true; }; "excludeFilters": { "alias": "excludeFilters"; "required": false; "isSignal": true; }; "filtersCount": { "alias": "filtersCount"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, { "onClearFilters": "onClearFilters"; "onClearBasket": "onClearBasket"; }, never, never, true, never>;
5794
5924
  }
5795
5925
 
5796
5926
  type AggregationTitle = {
@@ -5908,7 +6038,7 @@ declare class AggregationComponent {
5908
6038
  * A boolean flag indicating whether we want to see the filters count when some is applied
5909
6039
  * This property is initialized to `false` by default.
5910
6040
  */
5911
- showCount: _angular_core.InputSignal<boolean>;
6041
+ showFiltersCount: _angular_core.InputSignal<boolean>;
5912
6042
  aggregation: _angular_core.Signal<_sinequa_atomic_angular.AggEx | null>;
5913
6043
  items: _angular_core.Signal<AggregationListItem[]>;
5914
6044
  /**
@@ -6012,7 +6142,7 @@ declare class AggregationComponent {
6012
6142
  private getFlattenTreeItems;
6013
6143
  private addCurrentFiltersToItems;
6014
6144
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AggregationComponent, never>;
6015
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationComponent, "Aggregation, aggregation", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "headless": { "alias": "headless"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "searchText": "searchTextChange"; }, never, ["label"], true, never>;
6145
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationComponent, "Aggregation, aggregation", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "headless": { "alias": "headless"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "searchText": "searchTextChange"; }, never, ["label"], true, never>;
6016
6146
  }
6017
6147
 
6018
6148
  /**
@@ -6084,6 +6214,9 @@ declare class MoreComponent {
6084
6214
  large?: string;
6085
6215
  };
6086
6216
  };
6217
+ features?: {
6218
+ advancedSearch?: boolean;
6219
+ };
6087
6220
  } | undefined>;
6088
6221
  assistants: _angular_core.Signal<Record<string, any>>;
6089
6222
  initialize: () => Promise<void>;
@@ -6227,8 +6360,8 @@ declare class MoreComponent {
6227
6360
  }
6228
6361
 
6229
6362
  declare class DrawerService {
6230
- readonly isOpened: BehaviorSubject<boolean>;
6231
- readonly isExtended: BehaviorSubject<boolean>;
6363
+ readonly isOpened: _angular_core.WritableSignal<boolean>;
6364
+ readonly isExtended: _angular_core.WritableSignal<boolean>;
6232
6365
  private readonly backdrop;
6233
6366
  open(): void;
6234
6367
  close(): void;
@@ -6262,7 +6395,7 @@ declare class DrawerComponent {
6262
6395
  private enableAnimation;
6263
6396
  private resetGridTemplateColumns;
6264
6397
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerComponent, never>;
6265
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerComponent, "app-drawer", never, {}, {}, never, never, true, never>;
6398
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerComponent, "Drawer, drawer", never, {}, {}, never, never, true, never>;
6266
6399
  }
6267
6400
 
6268
6401
  declare const DRAWER_COMPONENT: InjectionToken<Type<DrawerComponent>>;
@@ -6289,19 +6422,25 @@ declare class DrawerStackComponent {
6289
6422
  private unshiftDrawer;
6290
6423
  private closeAndDestroyDrawer;
6291
6424
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerStackComponent, never>;
6292
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerStackComponent, "app-drawer-stack", never, {}, {}, never, never, true, never>;
6425
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerStackComponent, "DrawerStack, drawerstack", never, {}, {}, never, never, true, never>;
6293
6426
  }
6294
6427
 
6295
6428
  type Operator = 'all' | 'exact' | 'any' | 'none' | 'matches';
6296
6429
  interface Filter {
6297
6430
  column: string;
6298
6431
  alias: string;
6432
+ display?: string;
6299
6433
  items?: (AggregationItem | TreeAggregationNode)[];
6300
6434
  }
6435
+ interface Tab {
6436
+ path: string;
6437
+ display?: string;
6438
+ }
6301
6439
  declare class DrawerAdvancedFiltersComponent extends DrawerComponent {
6302
6440
  private readonly queryParamsStore;
6303
6441
  private readonly appStore;
6304
6442
  private readonly router;
6443
+ private readonly route;
6305
6444
  private readonly formBuilder;
6306
6445
  private readonly overlay;
6307
6446
  private readonly transloco;
@@ -6322,10 +6461,6 @@ declare class DrawerAdvancedFiltersComponent extends DrawerComponent {
6322
6461
  operator: _angular_forms.FormControl<Operator>;
6323
6462
  value: _angular_forms.FormControl<undefined>;
6324
6463
  }>;
6325
- location: _angular_forms.FormGroup<{
6326
- operator: _angular_forms.FormControl<Operator>;
6327
- value: _angular_forms.FormControl<undefined>;
6328
- }>;
6329
6464
  }>;
6330
6465
  currentTab: _angular_core.WritableSignal<string>;
6331
6466
  currentFilter: _angular_core.WritableSignal<string | undefined>;
@@ -6335,7 +6470,7 @@ declare class DrawerAdvancedFiltersComponent extends DrawerComponent {
6335
6470
  }[]>;
6336
6471
  suggestions: _angular_core.WritableSignal<DropdownItem[]>;
6337
6472
  aggregations: _angular_core.WritableSignal<(Aggregation | TreeAggregation)[] | undefined>;
6338
- tabs: _angular_core.Signal<string[]>;
6473
+ tabs: _angular_core.Signal<Tab[]>;
6339
6474
  filters: _angular_core.Signal<Filter[]>;
6340
6475
  text: string;
6341
6476
  constructor();
@@ -6344,7 +6479,7 @@ declare class DrawerAdvancedFiltersComponent extends DrawerComponent {
6344
6479
  onSearch(): void;
6345
6480
  /** Generate the LegacyFilter to add to the query */
6346
6481
  private getFilter;
6347
- /** Format content/title/location filters */
6482
+ /** Format content/title filters */
6348
6483
  private formatFilter;
6349
6484
  getPlaceholder(key: string): string;
6350
6485
  /** Get applied filters for a column */
@@ -6363,82 +6498,9 @@ declare class DrawerAdvancedFiltersComponent extends DrawerComponent {
6363
6498
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerAdvancedFiltersComponent, "advanced-filters", never, {}, {}, never, never, true, never>;
6364
6499
  }
6365
6500
 
6366
- interface MetadataNavigation {
6367
- index: number;
6368
- value: string;
6369
- }
6370
6501
  declare class AdvancedSearchComponent {
6502
+ cn: typeof cn;
6371
6503
  readonly article: _angular_core.InputSignal<Article$1>;
6372
- protected readonly destroyRef: DestroyRef;
6373
- protected readonly labels: {
6374
- private: string;
6375
- public: string;
6376
- };
6377
- protected readonly applicationStore: {
6378
- ready: _angular_core.Signal<boolean>;
6379
- extracts: _angular_core.Signal<Map<string, _sinequa_atomic_angular.Extract[]>>;
6380
- extractsCount: _angular_core.Signal<number>;
6381
- update: (state: Partial<_sinequa_atomic_angular.ApplicationState>) => void;
6382
- updateReadyState: (value?: boolean) => void;
6383
- updateExtracts: (id: string, extracts: _sinequa_atomic_angular.Extract[]) => void;
6384
- getExtracts: (id: string) => _sinequa_atomic_angular.Extract[] | undefined;
6385
- } & _ngrx_signals.WritableStateSource<{
6386
- ready: boolean;
6387
- extracts: Map<string, _sinequa_atomic_angular.Extract[]>;
6388
- }>;
6389
- protected readonly appStore: {
6390
- webServices: _ngrx_signals.DeepSignal<{}>;
6391
- queries: _ngrx_signals.DeepSignal<{}>;
6392
- customJSONs: _angular_core.Signal<_sinequa_atomic_angular.SideCJson[]>;
6393
- data: _ngrx_signals.DeepSignal<{}>;
6394
- customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>;
6395
- sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>;
6396
- filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>;
6397
- general: _angular_core.Signal<{
6398
- name?: string;
6399
- logo?: {
6400
- alt?: string;
6401
- light?: {
6402
- small?: string;
6403
- large?: string;
6404
- };
6405
- dark?: {
6406
- small?: string;
6407
- large?: string;
6408
- };
6409
- };
6410
- } | undefined>;
6411
- assistants: _angular_core.Signal<Record<string, any>>;
6412
- initialize: () => Promise<void>;
6413
- initializeWithAppName: (appName: string) => Promise<void>;
6414
- update: (app: _sinequa_atomic.CCApp) => void;
6415
- getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined;
6416
- getLabels: () => {
6417
- private: string;
6418
- public: string;
6419
- };
6420
- getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined;
6421
- getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined;
6422
- getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined;
6423
- allowEmptySearch: (queryName: string) => boolean;
6424
- allowLabels: () => boolean;
6425
- getColumnAlias: (column: string) => string;
6426
- getColumn: (column: string) => _sinequa_atomic.CCColumn | undefined;
6427
- isDateColumn: (column: string) => boolean;
6428
- isTabSearch: (queryName: string) => boolean;
6429
- getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
6430
- getAuthorizedFilters: (route: _angular_router.ActivatedRoute) => _sinequa_atomic.Aggregation[];
6431
- getNamedCustomizationJson: (name: string) => any | undefined;
6432
- getAggregationIcon: (column: string) => string | undefined;
6433
- getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
6434
- getAggregationCustomization: (column: string) => _sinequa_atomic_angular.CFilter | undefined;
6435
- isAssistantAllowed: (assistantName: string) => boolean;
6436
- } & _ngrx_signals.StateSource<{
6437
- webServices: {};
6438
- queries: {};
6439
- customJSONs: _sinequa_atomic_angular.SideCJson[];
6440
- data: {};
6441
- }>;
6442
6504
  protected readonly selectionStore: {
6443
6505
  article: _ngrx_signals.DeepSignal<Article$1>;
6444
6506
  id: _angular_core.Signal<string>;
@@ -6460,7 +6522,6 @@ declare class AdvancedSearchComponent {
6460
6522
  assistantIdsToAttach: string[];
6461
6523
  multiSelection: Article$1[];
6462
6524
  }>;
6463
- protected readonly previewService: PreviewService;
6464
6525
  protected readonly queryParamsStore: {
6465
6526
  aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
6466
6527
  name?: _angular_core.Signal<string | undefined> | undefined;
@@ -6539,25 +6600,10 @@ declare class AdvancedSearchComponent {
6539
6600
  filters?: _sinequa_atomic.LegacyFilter[] | undefined;
6540
6601
  id?: string | undefined;
6541
6602
  }>;
6542
- protected readonly input: _angular_core.WritableSignal<string>;
6543
- protected readonly extracts: _angular_core.Signal<_sinequa_atomic_angular.Extract[] | undefined>;
6544
- readonly similarDocuments: _angular_core.WritableSignal<Article$1[]>;
6545
- protected readonly previewHighlights: _angular_core.Signal<{
6546
- name: string;
6547
- entity: string;
6548
- metadata: any;
6549
- }[] | undefined>;
6550
- navigation: _angular_core.WritableSignal<MetadataNavigation | undefined>;
6551
- hovering: _angular_core.WritableSignal<string | undefined>;
6552
- hoverIndex: _angular_core.Signal<number>;
6553
- readonly hasLabels: _angular_core.Signal<boolean | undefined>;
6554
- loading: _angular_core.WritableSignal<boolean>;
6555
- constructor();
6603
+ protected readonly queryText: _angular_core.WritableSignal<string>;
6604
+ queryName: _angular_core.Signal<string>;
6556
6605
  protected executeSearch(): void;
6557
6606
  protected clearInput(): void;
6558
- scrollTo(type: string | undefined, index: number, usePassageHighlighter?: boolean): void;
6559
- navigateNext(entity: string, data: ArticleMetadata): void;
6560
- navigatePrev(entity: string, data: ArticleMetadata): void;
6561
6607
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdvancedSearchComponent, never>;
6562
6608
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdvancedSearchComponent, "advanced-search", never, { "article": { "alias": "article"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
6563
6609
  }
@@ -6565,9 +6611,9 @@ declare class AdvancedSearchComponent {
6565
6611
  declare class DrawerNavbarComponent {
6566
6612
  protected readonly drawerStack: DrawerStackService;
6567
6613
  protected readonly drawerService: DrawerService;
6568
- readonly isExtended: _angular_core.Signal<boolean | undefined>;
6614
+ readonly isExtended: boolean;
6569
6615
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerNavbarComponent, never>;
6570
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerNavbarComponent, "app-drawer-navbar", never, {}, {}, never, ["*"], true, never>;
6616
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerNavbarComponent, "DrawerNavbar, drawernavbar", never, {}, {}, never, ["*"], true, never>;
6571
6617
  }
6572
6618
 
6573
6619
  type DocumentTypeMap = {
@@ -6601,6 +6647,9 @@ declare class DrawerPreviewComponent extends DrawerComponent {
6601
6647
  large?: string;
6602
6648
  };
6603
6649
  };
6650
+ features?: {
6651
+ advancedSearch?: boolean;
6652
+ };
6604
6653
  } | undefined>;
6605
6654
  assistants: _angular_core.Signal<Record<string, any>>;
6606
6655
  initialize: () => Promise<void>;
@@ -6634,25 +6683,25 @@ declare class DrawerPreviewComponent extends DrawerComponent {
6634
6683
  data: {};
6635
6684
  }>;
6636
6685
  selectionStore: {
6637
- article: _ngrx_signals.DeepSignal<Article$1>;
6686
+ article: _ngrx_signals.DeepSignal<_sinequa_atomic.Article>;
6638
6687
  id: _angular_core.Signal<string>;
6639
6688
  queryText: _angular_core.Signal<string>;
6640
6689
  previewHighlights: _ngrx_signals.DeepSignal<_sinequa_atomic_angular.PreviewHighlights>;
6641
6690
  assistantIdsToAttach: _angular_core.Signal<string[]>;
6642
- multiSelection: _angular_core.Signal<Article$1[]>;
6691
+ multiSelection: _angular_core.Signal<_sinequa_atomic.Article[]>;
6643
6692
  multiSelectCount: _angular_core.Signal<number>;
6644
6693
  update: (newState: Partial<_sinequa_atomic_angular.SelectionState>) => void;
6645
6694
  clear: () => void;
6646
- addArticleToMultiSelection: (article: Article$1) => void;
6647
- removeArticleFromMultiSelection: (article: Article$1) => void;
6695
+ addArticleToMultiSelection: (article: _sinequa_atomic.Article) => void;
6696
+ removeArticleFromMultiSelection: (article: _sinequa_atomic.Article) => void;
6648
6697
  clearMultiSelection: () => void;
6649
6698
  } & _ngrx_signals.StateSource<{
6650
- article: Article$1;
6699
+ article: _sinequa_atomic.Article;
6651
6700
  id: string;
6652
6701
  queryText: string;
6653
6702
  previewHighlights: _sinequa_atomic_angular.PreviewHighlights;
6654
6703
  assistantIdsToAttach: string[];
6655
- multiSelection: Article$1[];
6704
+ multiSelection: _sinequa_atomic.Article[];
6656
6705
  }>;
6657
6706
  queryParamsStore: {
6658
6707
  aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
@@ -6734,18 +6783,14 @@ declare class DrawerPreviewComponent extends DrawerComponent {
6734
6783
  }>;
6735
6784
  previewService: PreviewService;
6736
6785
  getComponentsForDocumentType: (documentType?: string) => DocumentTypeMap;
6737
- queryText: _angular_core.Signal<string>;
6738
6786
  readonly articleId: _angular_core.InputSignal<string>;
6739
- readonly previewData: _angular_core.WritableSignal<PreviewData | undefined>;
6740
- readonly article: _angular_core.Signal<Article$1>;
6741
- readonly inputs: _angular_core.Signal<{
6742
- previewData: PreviewData | undefined;
6743
- }>;
6787
+ queryText: _angular_core.Signal<string>;
6788
+ readonly article: _angular_core.Signal<_sinequa_atomic.Article>;
6744
6789
  readonly previewType: _angular_core.Signal<Type<unknown>>;
6745
6790
  constructor(globalQueryName: string, destroyRef: DestroyRef);
6746
6791
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerPreviewComponent, never>;
6747
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerPreviewComponent, "app-drawer-preview", never, { "articleId": { "alias": "articleId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
6792
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerPreviewComponent, "DrawerPreview, drawerpreview", never, { "articleId": { "alias": "articleId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
6748
6793
  }
6749
6794
 
6750
- export { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, APP_FEATURES, AdvancedSearchComponent, AggregationComponent, AggregationsService, AggregationsStore, Alert, AlertDialog, AlertsComponent, AppService, AppStore, ApplicationService, ApplicationStore, AuditFeedbackType, AuditService, AuthGuard, AutocompleteService, BOOKMARKS_CONFIG, BOOKMARKS_OPTIONS, BackdropComponent, BackdropService, BookmarkButtonComponent, BookmarksComponent, COLLECTIONS_CONFIG, COLLECTIONS_OPTIONS, COMPONENTS_FOR_DOCUMENT_TYPE, ChildMarkerDirective, CollectionsComponent, CollectionsDialog, DRAWER_COMPONENT, DRAWER_STACK_MAX_COUNT, DateComponent, DeleteCollectionDialog, DidYouMeanComponent, DocumentLocatorComponent, DrawerAdvancedFiltersComponent, DrawerComponent, DrawerNavbarComponent, DrawerPreviewComponent, DrawerService, DrawerStackComponent, DrawerStackService, DropdownInputComponent, DropdownListComponent, ErrorComponent, ExportDialog, ExportService, FILTERS_BREAKPOINT, FILTER_DATE_ALLOW_CUSTOM_RANGE, FeedbackDialogComponent, FilterButtonComponent, FiltersBarComponent, HIGHLIGHTS, HighlightWordPipe, InfinityScrollDirective, InlineWorker, JsonMethodPluginService, KeyboardNavigatorDirective, LabelService, LabelsEditDialog, LoadingComponent, MetadataComponent, MissingTermsComponent, MoreButtonComponent, MoreComponent, MultiSelectLabelsComponent, MultiSelectionToolbarComponent, NON_SEARCHABLE_COLUMNS, NON_SEARCHABLE_DEFAULTS, NavbarTabsComponent, NavigationService, NoResultComponent, OpenArticleOnCtrlEnterDirective, OperatorPipe, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, OverrideUserDialogComponent, PREVIEW_CONFIG, PagerComponent, PreviewService, PrincipalService, PrincipalStore, QueryParamsStore, QueryService, RECENT_SEARCHES_CONFIG, RECENT_SEARCHES_OPTIONS, ROUTE_COMPONENTS, RecentSearchesComponent, ResetUserSettingsDialogComponent, SAVED_SEARCHES_CONFIG, SAVED_SEARCHES_OPTIONS, SavedSearchDialog, SavedSearchesComponent, SavedSearchesService, SearchFeedbackComponent, SearchInputComponent, SearchService, SelectArticleOnClickDirective, SelectionHistoryService, SelectionService, SelectionStore, ShowBookmarkDirective, SignInComponent, SortSelectorComponent, SourceComponent, SourceIconPipe, SponsoredResultsComponent, SyslangPipe, THEMES, TextChunkService, ThemeProviderDirective, ThemeSelectorComponent, ThemeStore, ThemeToggleComponent, TranslocoDateImpurePipe, UserSettingsStore, applyThemeToNativeElement, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, bootstrapApp, buildQuery, debouncedSignal, errorInterceptorFn, getCurrentPath, getCurrentQueryName, getQueryNameFromRoute, processCssVars, queryNameResolver, signIn, themeColorNameToCssVariable, themeColorsToCssVariables, toastInterceptorFn, withAggregationsFeatures, withAlertsFeatures, withAppCustomizationFeatures, withAppFeatures, withApplicationFeatures, withAssistantFeatures, withBasketsFeatures, withBookmarkFeatures, withExtractsFeatures, withMultiSelectionFeatures, withPrincipalFeatures, withQueryParamsFeatures, withRecentSearchesFeatures, withSavedSearchesFeatures, withSelectionFeatures, withThemeBodyHook, withThemes, withThemesFeatures, withUserSettingsFeatures };
6751
- export type { AggEx, AggregationEx, AggregationListEx, AggregationListItem, AggregationTitle, AggregationTreeEx, AggregationsState, AppCJson, AppFeatures, ApplicationState, ArticleMetadata, Autocomplete, Basket, Bookmark, BookmarksConfig, CAggregation, CAggregationItem, CCAppState, CCWebServiceLabels, CFilter, CFilterEx, CFilterItem, CJ, CJson, CJsonMint, CSources, CollectionsConfig, ComponentMapping, CssVars, DocumentTypeMap, DropdownItem, ExportQueryOptions, Extract, FilterDropdown, KeyboardNavigationOnSelectionHandlers, KeyboardNavigatorOptions, LabelsConfig, MultiSelectionState, MultiSelectionToolbarVariants, PageConfiguration, PreviewEvents, PreviewHighlight, PreviewHighlightName, PreviewHighlights, PrincipalState, SearchItem, SearchOptions, SearchesConfig, SelectionHistoryEvent, SelectionState, SelectionStrategy, SideCJson, SortingChoice, Theme, ThemeBodyHookParameters, ThemeScope, ThemeStoreState, UserSettingsState };
6795
+ export { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, APP_FEATURES, AdvancedSearchComponent, AggregationComponent, AggregationsService, AggregationsStore, Alert, AlertDialog, AlertsComponent, AppService, AppStore, ApplicationService, ApplicationStore, AuditFeedbackType, AuditService, AuthGuard, AutocompleteService, BOOKMARKS_CONFIG, BOOKMARKS_OPTIONS, BackdropComponent, BackdropService, BookmarkButtonComponent, BookmarksComponent, COLLECTIONS_CONFIG, COLLECTIONS_OPTIONS, COMPONENTS_FOR_DOCUMENT_TYPE, ChildMarkerDirective, CollectionsComponent, CollectionsDialog, DRAWER_COMPONENT, DRAWER_STACK_MAX_COUNT, DateComponent, DeleteCollectionDialog, DidYouMeanComponent, DocumentLocatorComponent, DrawerAdvancedFiltersComponent, DrawerComponent, DrawerNavbarComponent, DrawerPreviewComponent, DrawerService, DrawerStackComponent, DrawerStackService, DropdownInputComponent, DropdownListComponent, ErrorComponent, ExportDialog, ExportService, FILTERS_BREAKPOINT, FILTER_DATE_ALLOW_CUSTOM_RANGE, FeedbackDialogComponent, FileSizePipe, FilterButtonComponent, FiltersBarComponent, HIGHLIGHTS, HighlightWordPipe, InfinityScrollDirective, InlineWorker, JsonMethodPluginService, KeyboardNavigatorDirective, LabelService, LabelsEditDialog, LoadingComponent, MetadataComponent, MissingTermsComponent, MoreButtonComponent, MoreComponent, MultiSelectLabelsComponent, MultiSelectionToolbarComponent, NON_SEARCHABLE_COLUMNS, NON_SEARCHABLE_DEFAULTS, NavbarTabsComponent, NavigationService, NoResultComponent, OpenArticleOnCtrlEnterDirective, OperatorPipe, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, OverrideUserDialogComponent, PREVIEW_CONFIG, PagerComponent, PreviewService, PrincipalService, PrincipalStore, QueryParamsStore, QueryService, RECENT_SEARCHES_CONFIG, RECENT_SEARCHES_OPTIONS, ROUTE_COMPONENTS, RecentSearchesComponent, ResetUserSettingsDialogComponent, SAVED_SEARCHES_CONFIG, SAVED_SEARCHES_OPTIONS, SavedSearchDialog, SavedSearchesComponent, SavedSearchesService, SearchFeedbackComponent, SearchInputComponent, SearchService, SelectArticleOnClickDirective, SelectionHistoryService, SelectionService, SelectionStore, ShowBookmarkDirective, SignInComponent, SortSelectorComponent, SourceComponent, SourceIconPipe, SponsoredResultsComponent, SyslangPipe, THEMES, TextChunkService, ThemeProviderDirective, ThemeSelectorComponent, ThemeStore, ThemeToggleComponent, TranslocoDateImpurePipe, UserSettingsStore, applyThemeToNativeElement, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, bootstrapApp, buildQuery, debouncedSignal, errorInterceptorFn, getCurrentPath, getCurrentQueryName, getQueryNameFromRoute, processCssVars, queryNameResolver, searchVariants, signIn, themeColorNameToCssVariable, themeColorsToCssVariables, toastInterceptorFn, withAggregationsFeatures, withAlertsFeatures, withAppCustomizationFeatures, withAppFeatures, withApplicationFeatures, withAssistantFeatures, withBasketsFeatures, withBookmarkFeatures, withExtractsFeatures, withMultiSelectionFeatures, withPrincipalFeatures, withQueryParamsFeatures, withRecentSearchesFeatures, withSavedSearchesFeatures, withSelectionFeatures, withThemeBodyHook, withThemes, withThemesFeatures, withUserSettingsFeatures };
6796
+ export type { AggEx, AggregationEx, AggregationListEx, AggregationListItem, AggregationTitle, AggregationTreeEx, AggregationsState, AppCJson, AppFeatures, ApplicationState, ArticleMetadata, Autocomplete, Basket, Bookmark, BookmarksConfig, CAggregation, CAggregationItem, CCAppState, CCWebServiceLabels, CFilter, CFilterEx, CFilterItem, CJ, CJson, CJsonMint, CSources, CollectionsConfig, ComponentMapping, CssVars, DocumentTypeMap, DropdownItem, ExportQueryOptions, Extract, FilterDropdown, KeyboardNavigationOnSelectionHandlers, KeyboardNavigatorOptions, LabelsConfig, MultiSelectionState, MultiSelectionToolbarVariants, PageConfiguration, PreviewEvents, PreviewHighlight, PreviewHighlightName, PreviewHighlights, PrincipalState, SearchItem, SearchOptions, SearchVariants, SearchesConfig, SelectionHistoryEvent, SelectionState, SelectionStrategy, SideCJson, SortingChoice, Theme, ThemeBodyHookParameters, ThemeScope, ThemeStoreState, UserSettingsState };