@sinequa/atomic-angular 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/features/settings/i18n/de.json +41 -0
- package/features/settings/i18n/en.json +41 -0
- package/features/settings/i18n/fr.json +41 -0
- package/features/user-profile/i18n/de.json +0 -1
- package/features/user-profile/i18n/en.json +0 -1
- package/features/user-profile/i18n/fr.json +0 -1
- package/fesm2022/sinequa-atomic-angular.mjs +913 -266
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -1
- package/package.json +5 -1
- package/types/sinequa-atomic-angular-document-workspaces.d.ts +9 -9
- package/types/sinequa-atomic-angular.d.ts +183 -121
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sinequa/atomic-angular",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -112,6 +112,10 @@
|
|
|
112
112
|
"scope": "user-profile",
|
|
113
113
|
"path": "features/user-profile/i18n"
|
|
114
114
|
},
|
|
115
|
+
{
|
|
116
|
+
"scope": "settings",
|
|
117
|
+
"path": "features/settings/i18n"
|
|
118
|
+
},
|
|
115
119
|
{
|
|
116
120
|
"scope": "multi-selection-toolbar",
|
|
117
121
|
"path": "components/multi-selection-toolbar/i18n"
|
|
@@ -1551,7 +1551,7 @@ export declare class WorkspaceList {
|
|
|
1551
1551
|
labelKey: string;
|
|
1552
1552
|
}[];
|
|
1553
1553
|
protected readonly viewMode: import("@angular/core").WritableSignal<ViewMode$1>;
|
|
1554
|
-
protected readonly status: import("@angular/core").WritableSignal<"
|
|
1554
|
+
protected readonly status: import("@angular/core").WritableSignal<"error" | "loading" | "ready">;
|
|
1555
1555
|
protected readonly loadError: import("@angular/core").WritableSignal<Message | null>;
|
|
1556
1556
|
protected readonly refreshError: import("@angular/core").WritableSignal<string | null>;
|
|
1557
1557
|
protected readonly loadingMore: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -2193,7 +2193,7 @@ export declare class WorkspaceDetail {
|
|
|
2193
2193
|
protected readonly query: import("@angular/core").WritableSignal<string>;
|
|
2194
2194
|
/** The search box, bound to `query`. */
|
|
2195
2195
|
protected readonly searchForm: import("@angular/forms/signals").FieldTree<string, string | number, "writable">;
|
|
2196
|
-
protected readonly status: import("@angular/core").WritableSignal<"
|
|
2196
|
+
protected readonly status: import("@angular/core").WritableSignal<"error" | "loading" | "ready">;
|
|
2197
2197
|
protected readonly loadError: import("@angular/core").WritableSignal<Message | null>;
|
|
2198
2198
|
protected readonly refreshError: import("@angular/core").WritableSignal<string | null>;
|
|
2199
2199
|
protected readonly refreshing: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -2328,7 +2328,7 @@ export declare function injectWorkspaceMention(options?: WorkspaceMentionOptions
|
|
|
2328
2328
|
/** The workspaces in each category — the whole list, not what the search left. */
|
|
2329
2329
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2330
2330
|
/** Whether the first page is loading, ready or failed. */
|
|
2331
|
-
status: import("@angular/core").Signal<"
|
|
2331
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2332
2332
|
/** More workspaces than the loaded ones exist on the server: `loadMore()` fetches the next page. */
|
|
2333
2333
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2334
2334
|
/** The loading cap is reached: some workspaces will never be offered, search included. */
|
|
@@ -2375,7 +2375,7 @@ export declare const WORKSPACE_MENTION: InjectionToken<{
|
|
|
2375
2375
|
/** The workspaces in each category — the whole list, not what the search left. */
|
|
2376
2376
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2377
2377
|
/** Whether the first page is loading, ready or failed. */
|
|
2378
|
-
status: import("@angular/core").Signal<"
|
|
2378
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2379
2379
|
/** More workspaces than the loaded ones exist on the server: `loadMore()` fetches the next page. */
|
|
2380
2380
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2381
2381
|
/** The loading cap is reached: some workspaces will never be offered, search included. */
|
|
@@ -2526,7 +2526,7 @@ export declare class WorkspaceMention implements WorkspaceMentionApi, AfterConte
|
|
|
2526
2526
|
labelKey: string;
|
|
2527
2527
|
}[];
|
|
2528
2528
|
readonly counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2529
|
-
readonly status: import("@angular/core").Signal<"
|
|
2529
|
+
readonly status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2530
2530
|
readonly hasMore: import("@angular/core").Signal<boolean>;
|
|
2531
2531
|
readonly truncated: import("@angular/core").Signal<boolean>;
|
|
2532
2532
|
readonly loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2639,7 +2639,7 @@ export declare class WorkspaceMentionRows {
|
|
|
2639
2639
|
labelKey: string;
|
|
2640
2640
|
}[];
|
|
2641
2641
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2642
|
-
status: import("@angular/core").Signal<"
|
|
2642
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2643
2643
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2644
2644
|
truncated: import("@angular/core").Signal<boolean>;
|
|
2645
2645
|
loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2710,7 +2710,7 @@ export declare class WorkspaceMentionSelectAll {
|
|
|
2710
2710
|
labelKey: string;
|
|
2711
2711
|
}[];
|
|
2712
2712
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2713
|
-
status: import("@angular/core").Signal<"
|
|
2713
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2714
2714
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2715
2715
|
truncated: import("@angular/core").Signal<boolean>;
|
|
2716
2716
|
loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2746,7 +2746,7 @@ export declare class WorkspaceMentionTabs {
|
|
|
2746
2746
|
labelKey: string;
|
|
2747
2747
|
}[];
|
|
2748
2748
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2749
|
-
status: import("@angular/core").Signal<"
|
|
2749
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2750
2750
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2751
2751
|
truncated: import("@angular/core").Signal<boolean>;
|
|
2752
2752
|
loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2798,7 +2798,7 @@ export declare class WorkspacePicker {
|
|
|
2798
2798
|
/** The documents are in the workspace, and the check mark has been seen. */
|
|
2799
2799
|
readonly completed: import("@angular/core").OutputEmitterRef<Workspace>;
|
|
2800
2800
|
private readonly store;
|
|
2801
|
-
protected readonly status: import("@angular/core").WritableSignal<"
|
|
2801
|
+
protected readonly status: import("@angular/core").WritableSignal<"error" | "loading" | "ready">;
|
|
2802
2802
|
protected readonly busyId: import("@angular/core").WritableSignal<string | null>;
|
|
2803
2803
|
protected readonly doneId: import("@angular/core").WritableSignal<string | null>;
|
|
2804
2804
|
protected readonly error: import("@angular/core").WritableSignal<Message | null>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import { ApplicationRef, ChangeDetectorRef, DestroyRef, ElementRef, EnvironmentProviders, InjectionToken, Injector, OnDestroy, OnInit, PipeTransform, Provider, ResourceRef, Signal, TemplateRef, Type, WritableSignal } from "@angular/core";
|
|
3
3
|
import { TranslocoService } from "@jsverse/transloco";
|
|
4
|
-
import { Aggregation, AggregationItem, Article, AtomicClient, AtomicClientConfig, AuditEventType, AuditEventTypeValues, AuditEvents, CCApp, CCColumn, CCQuery, CCSortingChoice, CCWebService, Conversion, Credentials, CustomHighlights, DidYouMeanAction, ExportOutputFormat, ExportQueryModel, Filter as Filter$1, FilterOperator, KeyOf, LegacyFilter, LinkResult, PreviewData, Principal, Query, QueryParams, RequestOptions, Result, SpellingCorrectionMode, Suggestion, TextChunk, TextLocation, TreeAggregation, TreeAggregationNode, UserProfile
|
|
4
|
+
import { Aggregation, AggregationItem, Article, AtomicClient, AtomicClientConfig, AuditEventType, AuditEventTypeValues, AuditEvents, CCApp, CCColumn, CCQuery, CCSortingChoice, CCWebService, Conversion, Credentials, CustomHighlights, DidYouMeanAction, ExportOutputFormat, ExportQueryModel, Filter as Filter$1, FilterOperator, KeyOf, LegacyFilter, LinkResult, PreviewData, Principal, Query, QueryParams, RequestOptions, Result, SpellingCorrectionMode, Suggestion, TextChunk, TextLocation, TreeAggregation, TreeAggregationNode, UserProfile, getRelativeDate } from "@sinequa/atomic";
|
|
5
5
|
import { CanActivateFn, NavigationEnd, Params, ResolveFn, Route, Router } from "@angular/router";
|
|
6
6
|
import { VariantProps } from "class-variance-authority";
|
|
7
7
|
import { BreakpointObserverService, DialogComponent, DialogEvent, DialogResult, DropdownDirective, PopoverDirective, SheetComponent } from "@sinequa/galactik";
|
|
@@ -1050,7 +1050,7 @@ export declare class MetadataComponent {
|
|
|
1050
1050
|
size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "xsmall" | "medium" | null | undefined>;
|
|
1051
1051
|
scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
|
|
1052
1052
|
metadata: import("@angular/core").InputSignal<(string & Record<never, never>) | KeyOf<Article>>;
|
|
1053
|
-
article: import("@angular/core").InputSignal<(string & Record<never, never>)
|
|
1053
|
+
article: import("@angular/core").InputSignal<Partial<Article> | (string & Record<never, never>)>;
|
|
1054
1054
|
limit: import("@angular/core").InputSignalWithTransform<number | undefined, string | number | undefined>;
|
|
1055
1055
|
items: import("@angular/core").Signal<string[]>;
|
|
1056
1056
|
handleClick(event: Event, item: LegacyFilter): void;
|
|
@@ -1218,7 +1218,7 @@ export declare class MissingTermsComponent {
|
|
|
1218
1218
|
}, {}, never, never, true, never>;
|
|
1219
1219
|
}
|
|
1220
1220
|
export declare const multiSelectionToolbarVariants: (props?: ({
|
|
1221
|
-
variant?: "
|
|
1221
|
+
variant?: "light" | "dark" | "glassy" | null | undefined;
|
|
1222
1222
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
1223
1223
|
export type MultiSelectionToolbarVariants = VariantProps<typeof multiSelectionToolbarVariants>;
|
|
1224
1224
|
export declare class MultiSelectionToolbarComponent {
|
|
@@ -1607,7 +1607,7 @@ export declare class MultiSelectionToolbarComponent {
|
|
|
1607
1607
|
feedback?: import("@sinequa/atomic-angular").CFeedback;
|
|
1608
1608
|
} | undefined;
|
|
1609
1609
|
readonly class: import("@angular/core").InputSignal<string>;
|
|
1610
|
-
readonly variant: import("@angular/core").InputSignal<"
|
|
1610
|
+
readonly variant: import("@angular/core").InputSignal<"light" | "dark" | "glassy" | null | undefined>;
|
|
1611
1611
|
readonly updatedCollections: import("@angular/core").OutputEmitterRef<void>;
|
|
1612
1612
|
readonly count: import("@angular/core").Signal<number>;
|
|
1613
1613
|
readonly variants: import("@angular/core").Signal<string>;
|
|
@@ -3259,7 +3259,7 @@ export declare const UserSettingsStore: import("@angular/core").Type<{
|
|
|
3259
3259
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
3260
3260
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
3261
3261
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
3262
|
-
userTheme: import("@angular/core").Signal<"
|
|
3262
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
3263
3263
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
3264
3264
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
3265
3265
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -4654,7 +4654,7 @@ export declare class ApplicationService {
|
|
|
4654
4654
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
4655
4655
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
4656
4656
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
4657
|
-
userTheme: import("@angular/core").Signal<"
|
|
4657
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
4658
4658
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
4659
4659
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
4660
4660
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -5653,7 +5653,7 @@ export declare class AutocompleteService {
|
|
|
5653
5653
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
5654
5654
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
5655
5655
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
5656
|
-
userTheme: import("@angular/core").Signal<"
|
|
5656
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
5657
5657
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
5658
5658
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
5659
5659
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -7226,7 +7226,7 @@ export declare class SavedSearchesService {
|
|
|
7226
7226
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
7227
7227
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
7228
7228
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
7229
|
-
userTheme: import("@angular/core").Signal<"
|
|
7229
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
7230
7230
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
7231
7231
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
7232
7232
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -7566,7 +7566,7 @@ export declare class SearchService {
|
|
|
7566
7566
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
7567
7567
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
7568
7568
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
7569
|
-
userTheme: import("@angular/core").Signal<"
|
|
7569
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
7570
7570
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
7571
7571
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
7572
7572
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -7839,7 +7839,7 @@ export declare class UserProfileService {
|
|
|
7839
7839
|
* @param userId - Signal holding the ID of the user; `undefined` leaves the resource idle.
|
|
7840
7840
|
* @returns A resource exposing the UserProfile.
|
|
7841
7841
|
*/
|
|
7842
|
-
getUserProfile(userId: Signal<string | undefined>): ResourceRef<UserProfile
|
|
7842
|
+
getUserProfile(userId: Signal<string | undefined>): ResourceRef<UserProfile | undefined>;
|
|
7843
7843
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileService, never>;
|
|
7844
7844
|
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
7845
7845
|
}
|
|
@@ -8393,7 +8393,7 @@ export declare class ShowBookmarkDirective {
|
|
|
8393
8393
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
8394
8394
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
8395
8395
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
8396
|
-
userTheme: import("@angular/core").Signal<"
|
|
8396
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
8397
8397
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
8398
8398
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
8399
8399
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -11844,11 +11844,6 @@ export declare class FeatureFlagsDialogComponent {
|
|
|
11844
11844
|
}
|
|
11845
11845
|
/** Imperative entry point: `await FeatureFlags.call(undefined, { injector })`. */
|
|
11846
11846
|
export declare const FeatureFlags: import("@sinequa/galactik").Callable<void, DialogResult>;
|
|
11847
|
-
/** Shortcuts sharing a heading. A group with no `titleKey` is the ungrouped one, listed first. */
|
|
11848
|
-
type ShortcutGroup = {
|
|
11849
|
-
titleKey?: string;
|
|
11850
|
-
items: readonly Shortcut[];
|
|
11851
|
-
};
|
|
11852
11847
|
/**
|
|
11853
11848
|
* Lists the keyboard shortcuts currently available.
|
|
11854
11849
|
*
|
|
@@ -11868,18 +11863,38 @@ type ShortcutGroup = {
|
|
|
11868
11863
|
export declare class KeyboardShortcutsDialogComponent {
|
|
11869
11864
|
protected readonly call: import("@sinequa/galactik").CallRef<void, DialogResult>;
|
|
11870
11865
|
readonly dialog: import("@angular/core").Signal<DialogComponent | undefined>;
|
|
11866
|
+
constructor();
|
|
11867
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardShortcutsDialogComponent, never>;
|
|
11868
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KeyboardShortcutsDialogComponent, "keyboard-shortcuts-dialog", never, {}, {}, never, never, true, never>;
|
|
11869
|
+
}
|
|
11870
|
+
/** Imperative entry point: `void KeyboardShortcutsDialog.call()`. */
|
|
11871
|
+
export declare const KeyboardShortcutsDialog: import("@sinequa/galactik").Callable<void, DialogResult>;
|
|
11872
|
+
/** Shortcuts sharing a heading. A group with no `titleKey` is the ungrouped one, listed first. */
|
|
11873
|
+
type ShortcutGroup = {
|
|
11874
|
+
titleKey?: string;
|
|
11875
|
+
items: readonly Shortcut[];
|
|
11876
|
+
};
|
|
11877
|
+
/**
|
|
11878
|
+
* Lists the keyboard shortcuts currently available.
|
|
11879
|
+
*
|
|
11880
|
+
* The list observes the registry rather than holding a hand-written one, which is what keeps the
|
|
11881
|
+
* documentation from drifting away from what actually works. The consequence is deliberate: rendered
|
|
11882
|
+
* on a page that registers nothing, it lists nothing. That is more honest than a list of which half
|
|
11883
|
+
* does not apply here.
|
|
11884
|
+
*
|
|
11885
|
+
* A shortcut is listed only if it carries a `labelKey`. Labels and headings are translated at render
|
|
11886
|
+
* time, never at registration: the interface language changes without a page reload.
|
|
11887
|
+
*/
|
|
11888
|
+
export declare class KeyboardShortcutsListComponent {
|
|
11871
11889
|
private readonly keyboard;
|
|
11872
11890
|
/**
|
|
11873
11891
|
* Active shortcuts, grouped by heading. The ungrouped ones come first — they are the ones that
|
|
11874
11892
|
* work everywhere, so they read as an introduction rather than as a leftover.
|
|
11875
11893
|
*/
|
|
11876
11894
|
protected readonly groups: import("@angular/core").Signal<readonly ShortcutGroup[]>;
|
|
11877
|
-
|
|
11878
|
-
static
|
|
11879
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KeyboardShortcutsDialogComponent, "keyboard-shortcuts-dialog", never, {}, {}, never, never, true, never>;
|
|
11895
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardShortcutsListComponent, never>;
|
|
11896
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KeyboardShortcutsListComponent, "keyboard-shortcuts-list", never, {}, {}, never, never, true, never>;
|
|
11880
11897
|
}
|
|
11881
|
-
/** Imperative entry point: `void KeyboardShortcutsDialog.call()`. */
|
|
11882
|
-
export declare const KeyboardShortcutsDialog: import("@sinequa/galactik").Callable<void, DialogResult>;
|
|
11883
11898
|
/** Model of the override-user form. */
|
|
11884
11899
|
export interface OverrideUserModel {
|
|
11885
11900
|
username: string;
|
|
@@ -18202,7 +18217,7 @@ export declare class RecentSearchesComponent {
|
|
|
18202
18217
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
18203
18218
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
18204
18219
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
18205
|
-
userTheme: import("@angular/core").Signal<"
|
|
18220
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
18206
18221
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
18207
18222
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
18208
18223
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -18313,7 +18328,7 @@ export declare class SavedSearchPopover {
|
|
|
18313
18328
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
18314
18329
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
18315
18330
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
18316
|
-
userTheme: import("@angular/core").Signal<"
|
|
18331
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
18317
18332
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
18318
18333
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
18319
18334
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -18395,7 +18410,7 @@ export declare class SavedSearchesComponent {
|
|
|
18395
18410
|
alerts: import("@angular/core").Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
18396
18411
|
collapseAssistant?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
18397
18412
|
language?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
18398
|
-
userTheme: import("@angular/core").Signal<"
|
|
18413
|
+
userTheme: import("@angular/core").Signal<"light" | "dark" | "system" | undefined>;
|
|
18399
18414
|
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | import("@angular/core").Signal<undefined>;
|
|
18400
18415
|
disabledHighlightCategories: import("@angular/core").Signal<string[]>;
|
|
18401
18416
|
isDebugMode: import("@angular/core").Signal<boolean>;
|
|
@@ -18465,17 +18480,150 @@ export declare class SavedSearchesComponent {
|
|
|
18465
18480
|
};
|
|
18466
18481
|
}, {}, never, never, true, never>;
|
|
18467
18482
|
}
|
|
18468
|
-
export
|
|
18469
|
-
|
|
18483
|
+
export type SettingsPanelId = "account" | "appearance" | "shortcuts";
|
|
18484
|
+
/** Payload of `Settings.call()`: the panel to show first (default `account`). */
|
|
18485
|
+
export interface SettingsDialogProps {
|
|
18486
|
+
panel?: SettingsPanelId;
|
|
18487
|
+
}
|
|
18488
|
+
/**
|
|
18489
|
+
* The user settings: a navigation on the left, the selected panel on the right.
|
|
18490
|
+
*
|
|
18491
|
+
* The panels are plain components, not dialogs — only this shell is imperative.
|
|
18492
|
+
*/
|
|
18493
|
+
export declare class SettingsDialogComponent {
|
|
18494
|
+
protected readonly call: import("@sinequa/galactik").CallRef<SettingsDialogProps, DialogResult>;
|
|
18470
18495
|
private readonly dialog;
|
|
18496
|
+
protected readonly items: {
|
|
18497
|
+
id: SettingsPanelId;
|
|
18498
|
+
labelKey: string;
|
|
18499
|
+
}[];
|
|
18500
|
+
protected readonly panel: import("@angular/core").WritableSignal<SettingsPanelId>;
|
|
18501
|
+
/** Set when another instance is already open: this one only redirects it, then ends. */
|
|
18502
|
+
protected readonly duplicate: boolean;
|
|
18471
18503
|
constructor();
|
|
18472
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
18473
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
18504
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsDialogComponent, never>;
|
|
18505
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsDialogComponent, "settings-dialog", never, {}, {}, never, never, true, never>;
|
|
18506
|
+
}
|
|
18507
|
+
/** Imperative entry point: `await Settings.call({ panel: "appearance" })`. */
|
|
18508
|
+
export declare const Settings: import("@sinequa/galactik").Callable<SettingsDialogProps, DialogResult>;
|
|
18509
|
+
/**
|
|
18510
|
+
* The user's profile, plus the actions that act on the account as a whole: reset the settings, and —
|
|
18511
|
+
* for an administrator — impersonate another user.
|
|
18512
|
+
*
|
|
18513
|
+
* Those actions open their own dialogs, so the injector is handed over explicitly: `createCallable`
|
|
18514
|
+
* mounts outside this panel's tree and would otherwise lose the scoped providers.
|
|
18515
|
+
*/
|
|
18516
|
+
export declare class SettingsAccountPanelComponent {
|
|
18517
|
+
protected readonly principalStore: {
|
|
18518
|
+
id: import("@angular/core").Signal<string>;
|
|
18519
|
+
id2: import("@angular/core").Signal<string>;
|
|
18520
|
+
id3: import("@angular/core").Signal<string>;
|
|
18521
|
+
id4: import("@angular/core").Signal<string>;
|
|
18522
|
+
id5: import("@angular/core").Signal<string>;
|
|
18523
|
+
name: import("@angular/core").Signal<string>;
|
|
18524
|
+
email: import("@angular/core").Signal<string>;
|
|
18525
|
+
description: import("@angular/core").Signal<string>;
|
|
18526
|
+
longName: import("@angular/core").Signal<string>;
|
|
18527
|
+
userId: import("@angular/core").Signal<string>;
|
|
18528
|
+
fullName: import("@angular/core").Signal<string>;
|
|
18529
|
+
isAdministrator: import("@angular/core").Signal<boolean>;
|
|
18530
|
+
isDelegatedAdmin: import("@angular/core").Signal<boolean>;
|
|
18531
|
+
editablePartition?: import("@angular/core").Signal<boolean | undefined> | undefined;
|
|
18532
|
+
passwordExpirationDate?: import("@angular/core").Signal<string | null | undefined> | undefined;
|
|
18533
|
+
param1: import("@angular/core").Signal<string>;
|
|
18534
|
+
param2: import("@angular/core").Signal<string>;
|
|
18535
|
+
param3: import("@angular/core").Signal<string>;
|
|
18536
|
+
param4: import("@angular/core").Signal<string>;
|
|
18537
|
+
param5: import("@angular/core").Signal<string>;
|
|
18538
|
+
param6: import("@angular/core").Signal<string>;
|
|
18539
|
+
param7: import("@angular/core").Signal<string>;
|
|
18540
|
+
param8: import("@angular/core").Signal<string>;
|
|
18541
|
+
param9: import("@angular/core").Signal<string>;
|
|
18542
|
+
param10: import("@angular/core").Signal<string>;
|
|
18543
|
+
userOverrideActive: import("@angular/core").Signal<boolean>;
|
|
18544
|
+
state: import("@angular/core").Signal<"error" | "initial" | "loading" | "loaded">;
|
|
18545
|
+
allowUserOverride: import("@angular/core").Signal<boolean>;
|
|
18546
|
+
isOverridingUser: import("@angular/core").Signal<boolean>;
|
|
18547
|
+
initials: import("@angular/core").Signal<string>;
|
|
18548
|
+
principal: () => import("@sinequa/atomic").Principal;
|
|
18549
|
+
initialize: () => Promise<void>;
|
|
18550
|
+
} & import("@ngrx/signals").StateSource<{
|
|
18551
|
+
id: string;
|
|
18552
|
+
id2: string;
|
|
18553
|
+
id3: string;
|
|
18554
|
+
id4: string;
|
|
18555
|
+
id5: string;
|
|
18556
|
+
name: string;
|
|
18557
|
+
email: string;
|
|
18558
|
+
description: string;
|
|
18559
|
+
longName: string;
|
|
18560
|
+
userId: string;
|
|
18561
|
+
fullName: string;
|
|
18562
|
+
isAdministrator: boolean;
|
|
18563
|
+
isDelegatedAdmin: boolean;
|
|
18564
|
+
editablePartition?: boolean | undefined;
|
|
18565
|
+
passwordExpirationDate?: string | null | undefined;
|
|
18566
|
+
param1: string;
|
|
18567
|
+
param2: string;
|
|
18568
|
+
param3: string;
|
|
18569
|
+
param4: string;
|
|
18570
|
+
param5: string;
|
|
18571
|
+
param6: string;
|
|
18572
|
+
param7: string;
|
|
18573
|
+
param8: string;
|
|
18574
|
+
param9: string;
|
|
18575
|
+
param10: string;
|
|
18576
|
+
userOverrideActive: boolean;
|
|
18577
|
+
state: "initial" | "loading" | "loaded" | "error";
|
|
18578
|
+
}>;
|
|
18579
|
+
private readonly appStore;
|
|
18580
|
+
private readonly client;
|
|
18581
|
+
private readonly userOverride;
|
|
18582
|
+
private readonly injector;
|
|
18583
|
+
protected readonly profileEnabled: import("@angular/core").Signal<boolean>;
|
|
18584
|
+
protected readonly username: import("@angular/core").Signal<string | null>;
|
|
18585
|
+
/** Same conditions as the profile form: feature flag, credentials auth mode, editable partition. */
|
|
18586
|
+
protected readonly allowChangePassword: import("@angular/core").Signal<boolean>;
|
|
18587
|
+
protected resetSettings(): void;
|
|
18588
|
+
protected overrideUser(): void;
|
|
18589
|
+
protected revertOverride(): void;
|
|
18590
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAccountPanelComponent, never>;
|
|
18591
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAccountPanelComponent, "settings-account-panel", never, {}, {}, never, never, true, never>;
|
|
18592
|
+
}
|
|
18593
|
+
/**
|
|
18594
|
+
* Theme and language of the user interface — both applied on the spot and persisted in the user
|
|
18595
|
+
* settings, the same way the former user menu did.
|
|
18596
|
+
*/
|
|
18597
|
+
export declare class SettingsAppearancePanelComponent {
|
|
18598
|
+
private readonly userSettingsStore;
|
|
18599
|
+
private readonly transloco;
|
|
18600
|
+
private readonly document;
|
|
18601
|
+
/** Re-read by the label functions below, so the trigger text follows a language change. */
|
|
18602
|
+
private readonly lang;
|
|
18603
|
+
/** The `settings` scope loads lazily: `translate()` returns the raw key until it is there. */
|
|
18604
|
+
private readonly loadedTranslations;
|
|
18605
|
+
protected readonly themeCodes: string[];
|
|
18606
|
+
protected readonly languageCodes: string[];
|
|
18607
|
+
private readonly themeIcons;
|
|
18608
|
+
private readonly languageIcons;
|
|
18609
|
+
private readonly languageLabels;
|
|
18610
|
+
protected readonly currentTheme: import("@angular/core").Signal<"light" | "dark" | "system">;
|
|
18611
|
+
protected readonly currentLanguage: import("@angular/core").Signal<string>;
|
|
18612
|
+
protected readonly themeLabel: (code: string | null) => string;
|
|
18613
|
+
protected readonly languageLabel: (code: string | null) => string;
|
|
18614
|
+
protected themeIcon(code: string | null): Type<unknown> | null;
|
|
18615
|
+
protected languageIcon(code: string | null): Type<unknown> | null;
|
|
18616
|
+
/** `null` is the `Select`'s empty state: deselecting must not clear the setting. */
|
|
18617
|
+
protected onThemeChange(code: string | null): Promise<void>;
|
|
18618
|
+
protected onLanguageChange(code: string | null): void;
|
|
18619
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAppearancePanelComponent, never>;
|
|
18620
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAppearancePanelComponent, "settings-appearance-panel", never, {}, {}, never, never, true, never>;
|
|
18621
|
+
}
|
|
18622
|
+
/** The keyboard shortcuts currently registered, as documented by the registry itself. */
|
|
18623
|
+
export declare class SettingsShortcutsPanelComponent {
|
|
18624
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsShortcutsPanelComponent, never>;
|
|
18625
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsShortcutsPanelComponent, "settings-shortcuts-panel", never, {}, {}, never, never, true, never>;
|
|
18474
18626
|
}
|
|
18475
|
-
/** Imperative entry point: `await UserProfile.call()`. */
|
|
18476
|
-
export declare const UserProfile: import("@sinequa/galactik").Callable<void, DialogResult>;
|
|
18477
|
-
declare const SUPPORTED_LANGUAGES: readonly ["en", "fr", "de"];
|
|
18478
|
-
type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];
|
|
18479
18627
|
/** The two buckets of a `UserProfile`: the configured fields, and the free-form ones. */
|
|
18480
18628
|
export type UserProfileCategory = "data" | "customData";
|
|
18481
18629
|
/**
|
|
@@ -18557,63 +18705,6 @@ export declare class UserProfileFormComponent {
|
|
|
18557
18705
|
userOverrideActive: boolean;
|
|
18558
18706
|
state: "initial" | "loading" | "loaded" | "error";
|
|
18559
18707
|
}>;
|
|
18560
|
-
protected readonly userSettingsStore: {
|
|
18561
|
-
bookmarks: Signal<import("@sinequa/atomic-angular").Bookmark[]>;
|
|
18562
|
-
recentSearches: Signal<import("@sinequa/atomic-angular").SearchItem[]>;
|
|
18563
|
-
savedSearches: Signal<import("@sinequa/atomic-angular").SearchItem[]>;
|
|
18564
|
-
baskets: Signal<import("@sinequa/atomic-angular").Basket[]>;
|
|
18565
|
-
assistants: Signal<Record<string, unknown>>;
|
|
18566
|
-
alerts: Signal<import("@sinequa/atomic-angular").Alert[]>;
|
|
18567
|
-
collapseAssistant?: Signal<boolean | undefined> | undefined;
|
|
18568
|
-
language?: Signal<string | undefined> | undefined;
|
|
18569
|
-
userTheme: Signal<"dark" | "light" | "system" | undefined>;
|
|
18570
|
-
agents: import("@ngrx/signals").DeepSignal<import("@sinequa/atomic-angular").AgentUserSettings> | Signal<undefined>;
|
|
18571
|
-
disabledHighlightCategories: Signal<string[]>;
|
|
18572
|
-
isDebugMode: Signal<boolean>;
|
|
18573
|
-
isDarkMode: Signal<boolean>;
|
|
18574
|
-
updateBookmarks: (bookmarks: import("@sinequa/atomic-angular").UserSettingsState["bookmarks"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
|
|
18575
|
-
bookmark: (article: import("@sinequa/atomic").Article, queryName?: string) => Promise<void>;
|
|
18576
|
-
unbookmark: (id: string) => Promise<void>;
|
|
18577
|
-
isBookmarked: (article: Partial<import("@sinequa/atomic").Article>) => boolean;
|
|
18578
|
-
toggleBookmark: (article: import("@sinequa/atomic").Article) => Promise<void>;
|
|
18579
|
-
deleteRecentSearch: (index: number) => Promise<void>;
|
|
18580
|
-
updateRecentSearches: (recentSearches: import("@sinequa/atomic-angular").UserSettingsState["recentSearches"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
|
|
18581
|
-
addCurrentSearch: (queryParams: import("@sinequa/atomic").QueryParams) => Promise<void>;
|
|
18582
|
-
deleteSavedSearch: (index: number) => Promise<void>;
|
|
18583
|
-
updateSavedSearches: (savedSearches: import("@sinequa/atomic-angular").UserSettingsState["savedSearches"]) => Promise<void>;
|
|
18584
|
-
getSavedSearch: (search: string, tab?: string) => import("@sinequa/atomic-angular").SearchItem | undefined;
|
|
18585
|
-
deleteBasket: (index: number) => Promise<void>;
|
|
18586
|
-
createBasket: (basket: import("@sinequa/atomic-angular").Basket) => Promise<void>;
|
|
18587
|
-
updateBaskets: (baskets: import("@sinequa/atomic-angular").UserSettingsState["baskets"]) => Promise<void>;
|
|
18588
|
-
updateBasket: (basket: import("@sinequa/atomic-angular").Basket, index: number) => Promise<void>;
|
|
18589
|
-
addToBasket: (name: string, ids: string | string[]) => Promise<void>;
|
|
18590
|
-
removeFromBasket: (name: string, ids: string | string[]) => Promise<void>;
|
|
18591
|
-
updateAssistantSettings: (assistantSettings: import("@sinequa/atomic-angular").UserSettingsState["assistants"]) => Promise<void>;
|
|
18592
|
-
updateLanguage: (language: import("@sinequa/atomic-angular").UserSettingsState["language"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
|
|
18593
|
-
updateAssistantCollapsed: (collapseAssistant: import("@sinequa/atomic-angular").UserSettingsState["collapseAssistant"], auditEvents?: import("@sinequa/atomic").AuditEvents) => Promise<void>;
|
|
18594
|
-
initialize: () => Promise<void>;
|
|
18595
|
-
reset: () => Promise<void>;
|
|
18596
|
-
deleteAlert: (index: number) => Promise<void>;
|
|
18597
|
-
createAlert: (alert: import("@sinequa/atomic-angular").Alert) => Promise<void>;
|
|
18598
|
-
updateAlert: (alert: import("@sinequa/atomic-angular").Alert, index: number) => Promise<void>;
|
|
18599
|
-
updateAlerts: (alerts: import("@sinequa/atomic-angular").Alert[]) => Promise<void>;
|
|
18600
|
-
setDebugMode: (value: boolean) => Promise<void>;
|
|
18601
|
-
setUserTheme: (userTheme: "dark" | "light" | "system") => Promise<void>;
|
|
18602
|
-
toggleDarkMode: () => Promise<void>;
|
|
18603
|
-
setDisabledHighlightCategories: (keys: string[]) => Promise<void>;
|
|
18604
|
-
} & import("@ngrx/signals").StateSource<{
|
|
18605
|
-
bookmarks: import("@sinequa/atomic-angular").Bookmark[];
|
|
18606
|
-
recentSearches: import("@sinequa/atomic-angular").SearchItem[];
|
|
18607
|
-
savedSearches: import("@sinequa/atomic-angular").SearchItem[];
|
|
18608
|
-
baskets: import("@sinequa/atomic-angular").Basket[];
|
|
18609
|
-
assistants: Record<string, unknown>;
|
|
18610
|
-
alerts: import("@sinequa/atomic-angular").Alert[];
|
|
18611
|
-
collapseAssistant?: boolean | undefined;
|
|
18612
|
-
language?: string | undefined;
|
|
18613
|
-
userTheme: "dark" | "light" | "system";
|
|
18614
|
-
agents: import("@sinequa/atomic-angular").AgentUserSettings;
|
|
18615
|
-
disabledHighlightCategories: string[];
|
|
18616
|
-
}>;
|
|
18617
18708
|
protected readonly userProfileService: UserProfileService;
|
|
18618
18709
|
protected readonly appStore: {
|
|
18619
18710
|
name: Signal<string>;
|
|
@@ -18967,25 +19058,10 @@ export declare class UserProfileFormComponent {
|
|
|
18967
19058
|
protected readonly username: Signal<string | null>;
|
|
18968
19059
|
/** Id of the property being edited, `"<category>.<key>"` — at most one at a time. */
|
|
18969
19060
|
protected readonly propertyToEdit: import("@angular/core").WritableSignal<string | undefined>;
|
|
18970
|
-
/** Selected UI language. `null` is the empty state — the `Select` never uses `undefined`. */
|
|
18971
|
-
readonly currentLanguage: import("@angular/core").ModelSignal<string | null>;
|
|
18972
|
-
/**
|
|
18973
|
-
* The supported languages, with a flag icon per entry. The default `Select` rendering only uses the
|
|
18974
|
-
* label; the icon is there for a host that projects its own `#selectOption` template.
|
|
18975
|
-
*/
|
|
18976
|
-
protected readonly allLanguages: {
|
|
18977
|
-
code: SupportedLanguage;
|
|
18978
|
-
label: string;
|
|
18979
|
-
icon: Type<unknown>;
|
|
18980
|
-
}[];
|
|
18981
|
-
/** Codes de langue passés au `SelectMenu` (typés `string[]` pour rester alignés avec `currentLanguage`). */
|
|
18982
|
-
protected readonly languageCodes: string[];
|
|
18983
|
-
/** Libellé d'une langue — typeahead + rendu par défaut du `SelectMenu`. */
|
|
18984
|
-
protected readonly languageLabel: (code: string) => string;
|
|
18985
19061
|
readonly changingPassword: import("@angular/core").WritableSignal<boolean>;
|
|
18986
19062
|
readonly allowChangePassword: Signal<boolean>;
|
|
18987
|
-
protected readonly userProfileResource: import("@angular/core").ResourceRef<UserProfile
|
|
18988
|
-
protected readonly user: import("@angular/core").WritableSignal<UserProfile
|
|
19063
|
+
protected readonly userProfileResource: import("@angular/core").ResourceRef<UserProfile | undefined>;
|
|
19064
|
+
protected readonly user: import("@angular/core").WritableSignal<UserProfile | undefined>;
|
|
18989
19065
|
/**
|
|
18990
19066
|
* Form model, re-seeded from the stored profile.
|
|
18991
19067
|
*
|
|
@@ -19100,22 +19176,8 @@ export declare class UserProfileFormComponent {
|
|
|
19100
19176
|
* TODO: how do we save the picture?
|
|
19101
19177
|
*/
|
|
19102
19178
|
protected uploadAvatar(event: Event): void;
|
|
19103
|
-
/** Relais du `SelectMenu` de langue : `null` (désélection) est ignoré. */
|
|
19104
|
-
protected onLanguageChange(code: string | null): void;
|
|
19105
|
-
/**
|
|
19106
|
-
* Change the app language
|
|
19107
|
-
*/
|
|
19108
|
-
changeLanguage(): void;
|
|
19109
19179
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileFormComponent, never>;
|
|
19110
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileFormComponent, "user-profile-form, UserProfileForm, userprofileform", never, {
|
|
19111
|
-
"currentLanguage": {
|
|
19112
|
-
"alias": "currentLanguage";
|
|
19113
|
-
"required": false;
|
|
19114
|
-
"isSignal": true;
|
|
19115
|
-
};
|
|
19116
|
-
}, {
|
|
19117
|
-
"currentLanguage": "currentLanguageChange";
|
|
19118
|
-
}, never, never, true, never>;
|
|
19180
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileFormComponent, "user-profile-form, UserProfileForm, userprofileform", never, {}, {}, never, never, true, never>;
|
|
19119
19181
|
}
|
|
19120
19182
|
/**
|
|
19121
19183
|
* Returns a guard function that checks if the user is authenticated.
|