@sinequa/atomic-angular 2.8.0 → 2.9.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/alerts/i18n/de.json +9 -1
- package/features/alerts/i18n/en.json +9 -1
- package/features/alerts/i18n/fr.json +9 -1
- package/features/settings/i18n/de.json +6 -0
- package/features/settings/i18n/en.json +6 -0
- package/features/settings/i18n/fr.json +6 -0
- package/fesm2022/sinequa-atomic-angular.mjs +939 -479
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/types/sinequa-atomic-angular-document-workspaces.d.ts +15 -15
- package/types/sinequa-atomic-angular.d.ts +147 -34
package/package.json
CHANGED
|
@@ -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>;
|
|
@@ -2135,7 +2135,7 @@ export declare class WorkspaceEditDialog {
|
|
|
2135
2135
|
protected readonly busy: import("@angular/core").WritableSignal<boolean>;
|
|
2136
2136
|
protected readonly error: import("@angular/core").WritableSignal<WorkspaceErrorMessage | null>;
|
|
2137
2137
|
protected readonly descriptionTooLong: import("@angular/core").Signal<boolean>;
|
|
2138
|
-
protected readonly saveLabel: import("@angular/core").Signal<"documentWorkspaces.
|
|
2138
|
+
protected readonly saveLabel: import("@angular/core").Signal<"documentWorkspaces.common.save" | "documentWorkspaces.edit.creating" | "documentWorkspaces.edit.saving" | "documentWorkspaces.common.create">;
|
|
2139
2139
|
/** What to resolve with once the native dialog has closed: the saved workspace, or the plain dismissal. */
|
|
2140
2140
|
private outcome;
|
|
2141
2141
|
constructor();
|
|
@@ -2192,7 +2192,7 @@ export declare class WorkspaceDetail {
|
|
|
2192
2192
|
protected readonly query: import("@angular/core").WritableSignal<string>;
|
|
2193
2193
|
/** The search box, bound to `query`. */
|
|
2194
2194
|
protected readonly searchForm: import("@angular/forms/signals").FieldTree<string, string | number, "writable">;
|
|
2195
|
-
protected readonly status: import("@angular/core").WritableSignal<"
|
|
2195
|
+
protected readonly status: import("@angular/core").WritableSignal<"error" | "loading" | "ready">;
|
|
2196
2196
|
protected readonly loadError: import("@angular/core").WritableSignal<Message | null>;
|
|
2197
2197
|
protected readonly refreshError: import("@angular/core").WritableSignal<string | null>;
|
|
2198
2198
|
protected readonly refreshing: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -2327,7 +2327,7 @@ export declare function injectWorkspaceMention(options?: WorkspaceMentionOptions
|
|
|
2327
2327
|
/** The workspaces in each category — the whole list, not what the search left. */
|
|
2328
2328
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2329
2329
|
/** Whether the first page is loading, ready or failed. */
|
|
2330
|
-
status: import("@angular/core").Signal<"
|
|
2330
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2331
2331
|
/** More workspaces than the loaded ones exist on the server: `loadMore()` fetches the next page. */
|
|
2332
2332
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2333
2333
|
/** The loading cap is reached: some workspaces will never be offered, search included. */
|
|
@@ -2374,7 +2374,7 @@ export declare const WORKSPACE_MENTION: InjectionToken<{
|
|
|
2374
2374
|
/** The workspaces in each category — the whole list, not what the search left. */
|
|
2375
2375
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2376
2376
|
/** Whether the first page is loading, ready or failed. */
|
|
2377
|
-
status: import("@angular/core").Signal<"
|
|
2377
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2378
2378
|
/** More workspaces than the loaded ones exist on the server: `loadMore()` fetches the next page. */
|
|
2379
2379
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2380
2380
|
/** The loading cap is reached: some workspaces will never be offered, search included. */
|
|
@@ -2525,7 +2525,7 @@ export declare class WorkspaceMention implements WorkspaceMentionApi, AfterConte
|
|
|
2525
2525
|
labelKey: string;
|
|
2526
2526
|
}[];
|
|
2527
2527
|
readonly counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2528
|
-
readonly status: import("@angular/core").Signal<"
|
|
2528
|
+
readonly status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2529
2529
|
readonly hasMore: import("@angular/core").Signal<boolean>;
|
|
2530
2530
|
readonly truncated: import("@angular/core").Signal<boolean>;
|
|
2531
2531
|
readonly loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2591,11 +2591,11 @@ export declare class WorkspaceMention implements WorkspaceMentionApi, AfterConte
|
|
|
2591
2591
|
*/
|
|
2592
2592
|
export declare class WorkspaceMentionNew implements AfterContentInit {
|
|
2593
2593
|
/** The button's variant. */
|
|
2594
|
-
readonly variant: import("@angular/core").InputSignal<"
|
|
2594
|
+
readonly variant: import("@angular/core").InputSignal<"none" | "primary" | "secondary" | "light-accent" | "accent" | "tertiary" | null | undefined>;
|
|
2595
2595
|
/** The button's colour scheme. */
|
|
2596
2596
|
readonly scheme: import("@angular/core").InputSignal<"default" | "neutral" | null | undefined>;
|
|
2597
2597
|
/** The button's size. */
|
|
2598
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
2598
|
+
readonly size: import("@angular/core").InputSignal<"small" | "medium" | "md" | "lg" | "sm" | "xs" | "xsmall" | "large" | null | undefined>;
|
|
2599
2599
|
private readonly mention;
|
|
2600
2600
|
private readonly slot;
|
|
2601
2601
|
/** Whether the host put its own content inside: the icon and the label then stay out. */
|
|
@@ -2638,7 +2638,7 @@ export declare class WorkspaceMentionRows {
|
|
|
2638
2638
|
labelKey: string;
|
|
2639
2639
|
}[];
|
|
2640
2640
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2641
|
-
status: import("@angular/core").Signal<"
|
|
2641
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2642
2642
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2643
2643
|
truncated: import("@angular/core").Signal<boolean>;
|
|
2644
2644
|
loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2660,9 +2660,9 @@ export declare class WorkspaceMentionRows {
|
|
|
2660
2660
|
/** The search box of the enclosing `<workspace-mention>`: it narrows what the menu offers. */
|
|
2661
2661
|
export declare class WorkspaceMentionSearch {
|
|
2662
2662
|
/** The size of the box, as `<SearchInput>` sizes it. */
|
|
2663
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
2663
|
+
readonly size: import("@angular/core").InputSignal<"md" | "lg" | "sm" | null | undefined>;
|
|
2664
2664
|
/** The size of the text, as `<SearchInput>` sizes it; follows `size` when absent. */
|
|
2665
|
-
readonly textSize: import("@angular/core").InputSignal<"
|
|
2665
|
+
readonly textSize: import("@angular/core").InputSignal<"base" | "sm" | null | undefined>;
|
|
2666
2666
|
/** The hint shown in the empty box; the translated "Search workspace..." when absent. */
|
|
2667
2667
|
readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
|
|
2668
2668
|
/** The accessible name of the box; the placeholder when absent. */
|
|
@@ -2709,7 +2709,7 @@ export declare class WorkspaceMentionSelectAll {
|
|
|
2709
2709
|
labelKey: string;
|
|
2710
2710
|
}[];
|
|
2711
2711
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2712
|
-
status: import("@angular/core").Signal<"
|
|
2712
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2713
2713
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2714
2714
|
truncated: import("@angular/core").Signal<boolean>;
|
|
2715
2715
|
loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2745,7 +2745,7 @@ export declare class WorkspaceMentionTabs {
|
|
|
2745
2745
|
labelKey: string;
|
|
2746
2746
|
}[];
|
|
2747
2747
|
counts: import("@angular/core").Signal<import("@sinequa/atomic-angular/document-workspaces").WorkspaceTabCounts>;
|
|
2748
|
-
status: import("@angular/core").Signal<"
|
|
2748
|
+
status: import("@angular/core").Signal<"error" | "loading" | "ready">;
|
|
2749
2749
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
2750
2750
|
truncated: import("@angular/core").Signal<boolean>;
|
|
2751
2751
|
loadingMore: import("@angular/core").Signal<boolean>;
|
|
@@ -2790,14 +2790,14 @@ export declare const NEW_WORKSPACE_NAME_MAX = 50;
|
|
|
2790
2790
|
*/
|
|
2791
2791
|
export declare class WorkspacePicker {
|
|
2792
2792
|
/** `save` attaches `documents` to the chosen workspace; `move` takes `documentIds` from `fromWorkspaceId` to it. */
|
|
2793
|
-
readonly mode: import("@angular/core").InputSignal<"
|
|
2793
|
+
readonly mode: import("@angular/core").InputSignal<"move" | "save">;
|
|
2794
2794
|
readonly documents: import("@angular/core").InputSignal<readonly PickerDocument[]>;
|
|
2795
2795
|
readonly fromWorkspaceId: import("@angular/core").InputSignal<string | null>;
|
|
2796
2796
|
readonly documentIds: import("@angular/core").InputSignal<readonly string[]>;
|
|
2797
2797
|
/** The documents are in the workspace, and the check mark has been seen. */
|
|
2798
2798
|
readonly completed: import("@angular/core").OutputEmitterRef<Workspace>;
|
|
2799
2799
|
private readonly store;
|
|
2800
|
-
protected readonly status: import("@angular/core").WritableSignal<"
|
|
2800
|
+
protected readonly status: import("@angular/core").WritableSignal<"error" | "loading" | "ready">;
|
|
2801
2801
|
protected readonly busyId: import("@angular/core").WritableSignal<string | null>;
|
|
2802
2802
|
protected readonly doneId: import("@angular/core").WritableSignal<string | null>;
|
|
2803
2803
|
protected readonly error: import("@angular/core").WritableSignal<Message | null>;
|
|
@@ -11094,9 +11094,15 @@ export declare class ArticleSimilarDocumentsTabPanel {
|
|
|
11094
11094
|
"selected": "selected";
|
|
11095
11095
|
}, never, never, true, never>;
|
|
11096
11096
|
}
|
|
11097
|
+
/**
|
|
11098
|
+
* Short weekday names in the active language ("Mon", "lun."), Monday first. 2024-01-01 is a Monday.
|
|
11099
|
+
*/
|
|
11100
|
+
declare function weekdayNames(lang: string): string[];
|
|
11097
11101
|
/** One piece of the summary: a translation key (translated by the template's pipe) or a ready text. */
|
|
11098
11102
|
interface AlertSummaryPart {
|
|
11099
11103
|
key?: string;
|
|
11104
|
+
/** Interpolation parameters of `key`. */
|
|
11105
|
+
params?: Record<string, unknown>;
|
|
11100
11106
|
text?: string;
|
|
11101
11107
|
}
|
|
11102
11108
|
/**
|
|
@@ -11109,6 +11115,11 @@ interface AlertSummaryPart {
|
|
|
11109
11115
|
* Tolerant of an alert that lacks `times` or `days`: the piece is left out rather than shown empty.
|
|
11110
11116
|
*/
|
|
11111
11117
|
declare function alertSummary(lang: string, alert: Alert): AlertSummaryPart[];
|
|
11118
|
+
/**
|
|
11119
|
+
* What an alert watches, in pieces — « “data protection” · Web tab · 2 filters ». Same contract as
|
|
11120
|
+
* {@link alertSummary}: translation keys for the template's pipe, ready text for the rest.
|
|
11121
|
+
*/
|
|
11122
|
+
declare function querySummary(query: Query | undefined): AlertSummaryPart[];
|
|
11112
11123
|
/**
|
|
11113
11124
|
* The user's alerts: one row per alert (name, when it fires, an on/off switch), "Create" in the header.
|
|
11114
11125
|
*
|
|
@@ -11124,6 +11135,23 @@ export declare class AlertsComponent {
|
|
|
11124
11135
|
private readonly transloco;
|
|
11125
11136
|
private readonly lang;
|
|
11126
11137
|
query: Query;
|
|
11138
|
+
/**
|
|
11139
|
+
* Whether the form opens in a dialog (`AlertForm`), which is what a click on a row or on "Create" does by
|
|
11140
|
+
* default. Set it to `false` to show the form yourself, wherever you like (see `AlertFormComponent`): the
|
|
11141
|
+
* list then only reports the request, with `editRequested` and `createRequested`.
|
|
11142
|
+
*/
|
|
11143
|
+
readonly dialog: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
11144
|
+
/** The user asked to edit an alert: its index in `UserSettingsStore.alerts()`. Only with `[dialog]="false"`. */
|
|
11145
|
+
readonly editRequested: import("@angular/core").OutputEmitterRef<number>;
|
|
11146
|
+
/** The user asked to create an alert. Only with `[dialog]="false"`. */
|
|
11147
|
+
readonly createRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
11148
|
+
/**
|
|
11149
|
+
* Why the last change could not be saved, shown above the list until the next one. A toast would not do: the
|
|
11150
|
+
* list lives in popovers and modal dialogs, which are in the top layer, above any toast.
|
|
11151
|
+
*/
|
|
11152
|
+
protected readonly saveError: import("@angular/core").WritableSignal<{
|
|
11153
|
+
detail?: string;
|
|
11154
|
+
} | undefined>;
|
|
11127
11155
|
protected readonly alerts: import("@angular/core").Signal<Alert[]>;
|
|
11128
11156
|
/**
|
|
11129
11157
|
* The order on screen. A copy of the store's list (the store edits its own array in place), and ahead of it
|
|
@@ -11165,7 +11193,16 @@ export declare class AlertsComponent {
|
|
|
11165
11193
|
/** The new order of the alerts shown. An alert being deleted is not in it: it goes after them, as it is about to leave. */
|
|
11166
11194
|
protected saveOrder(shown: Alert[]): Promise<void>;
|
|
11167
11195
|
static ɵfac: i0.ɵɵFactoryDeclaration<AlertsComponent, never>;
|
|
11168
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AlertsComponent, "Alerts", never, {
|
|
11196
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlertsComponent, "Alerts", never, {
|
|
11197
|
+
"dialog": {
|
|
11198
|
+
"alias": "dialog";
|
|
11199
|
+
"required": false;
|
|
11200
|
+
"isSignal": true;
|
|
11201
|
+
};
|
|
11202
|
+
}, {
|
|
11203
|
+
"editRequested": "editRequested";
|
|
11204
|
+
"createRequested": "createRequested";
|
|
11205
|
+
}, never, never, true, never>;
|
|
11169
11206
|
}
|
|
11170
11207
|
/**
|
|
11171
11208
|
* The seven weekdays, in display order, each paired with its bit in {@link Alert.Days}.
|
|
@@ -11220,22 +11257,47 @@ export interface AlertFormModel {
|
|
|
11220
11257
|
export declare function weekdaysFromFlags(mask: Alert.Days): Record<WeekdayKey, boolean>;
|
|
11221
11258
|
/** Folds the seven booleans of the form model back into an {@link Alert.Days} bitfield. */
|
|
11222
11259
|
export declare function flagsFromWeekdays(days: Record<WeekdayKey, boolean>): Alert.Days;
|
|
11223
|
-
|
|
11224
|
-
|
|
11260
|
+
/**
|
|
11261
|
+
* The form that creates or edits one alert: name, frequency and time, weekdays, on/off, and — for an
|
|
11262
|
+
* existing alert — the search it watches.
|
|
11263
|
+
*
|
|
11264
|
+
* It knows nothing of its container. `<alert-form [index]="…" (saved)="…" />` can sit in a dialog (see
|
|
11265
|
+
* {@link AlertDialog}), a panel, a drawer or a page: it saves through {@link UserSettingsStore} and tells its
|
|
11266
|
+
* container with `saved` once the save has succeeded, or `executed` once the user has run the watched search.
|
|
11267
|
+
* A failed save keeps what was typed and is shown inside the form — a toast would sit behind a modal dialog.
|
|
11268
|
+
*
|
|
11269
|
+
* The form renders no button of its own that submits or cancels: those belong to the container. A submit
|
|
11270
|
+
* button placed outside the form submits it by pointing at {@link AlertFormComponent.formId} with its `form`
|
|
11271
|
+
* attribute, and can use {@link AlertFormComponent.saving} to wait for the save.
|
|
11272
|
+
*
|
|
11273
|
+
* The layout follows the width of the form (a container query), not that of the window: frequency and time
|
|
11274
|
+
* share a line from 24rem up and stack below.
|
|
11275
|
+
*/
|
|
11276
|
+
export declare class AlertFormComponent {
|
|
11225
11277
|
private readonly queryService;
|
|
11226
11278
|
private readonly queryParamsStore;
|
|
11227
11279
|
private readonly userSettingsStore;
|
|
11228
11280
|
private readonly transloco;
|
|
11229
|
-
readonly
|
|
11281
|
+
private readonly lang;
|
|
11282
|
+
/** Index, in the user settings, of the alert to edit — leave it unset to create one. */
|
|
11283
|
+
readonly index: import("@angular/core").InputSignal<number | undefined>;
|
|
11284
|
+
/** Emitted once the alert has been saved. */
|
|
11285
|
+
readonly saved: import("@angular/core").OutputEmitterRef<void>;
|
|
11286
|
+
/** Emitted once the user has run the watched search: the query parameters now hold it. */
|
|
11287
|
+
readonly executed: import("@angular/core").OutputEmitterRef<void>;
|
|
11288
|
+
/** Id of the `<form>`: a submit button outside the component points at it with its `form` attribute. */
|
|
11289
|
+
readonly formId: string;
|
|
11230
11290
|
protected readonly fieldClass = "flex flex-col gap-(--spacing-2xs)";
|
|
11231
11291
|
protected readonly labelClass = "text-(length:--size-base) font-(--weight-semibold) text-(--font-primary-base)";
|
|
11232
11292
|
protected readonly errorClass = "text-(length:--size-base) text-(--font-error-base)";
|
|
11233
|
-
frequencies: Alert.Frequency[];
|
|
11234
|
-
frequency: typeof Alert.Frequency;
|
|
11293
|
+
protected readonly frequencies: Alert.Frequency[];
|
|
11294
|
+
protected readonly frequency: typeof Alert.Frequency;
|
|
11295
|
+
protected readonly Days: typeof Alert.Days;
|
|
11296
|
+
protected readonly querySummary: typeof querySummary;
|
|
11235
11297
|
/** Libellé traduit d'une fréquence — utilisé par le typeahead du `SelectMenu`. */
|
|
11236
|
-
readonly frequencyLabel: (value: Alert.Frequency) => string;
|
|
11237
|
-
/** The seven weekdays, exposed to the template for the
|
|
11238
|
-
readonly weekdays: readonly [{
|
|
11298
|
+
protected readonly frequencyLabel: (value: Alert.Frequency) => string;
|
|
11299
|
+
/** The seven weekdays, exposed to the template for the toggle chips. */
|
|
11300
|
+
protected readonly weekdays: readonly [{
|
|
11239
11301
|
readonly key: "monday";
|
|
11240
11302
|
readonly flag: Alert.Days.Monday;
|
|
11241
11303
|
}, {
|
|
@@ -11257,30 +11319,33 @@ export declare class AlertDialog {
|
|
|
11257
11319
|
readonly key: "sunday";
|
|
11258
11320
|
readonly flag: Alert.Days.Sunday;
|
|
11259
11321
|
}];
|
|
11260
|
-
/**
|
|
11261
|
-
|
|
11262
|
-
|
|
11263
|
-
|
|
11264
|
-
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11322
|
+
/** Their short names in the active language, Monday first — what the chips show. */
|
|
11323
|
+
protected readonly dayNames: import("@angular/core").Signal<string[]>;
|
|
11324
|
+
/** The alert being edited — `undefined` in "create" mode. */
|
|
11325
|
+
readonly alert: import("@angular/core").Signal<Alert | undefined>;
|
|
11326
|
+
/**
|
|
11327
|
+
* Whether the search currently on screen can replace the one the alert watches: it must have results.
|
|
11328
|
+
* Only an existing alert has anything to replace, so a new one issues no search.
|
|
11329
|
+
*/
|
|
11330
|
+
private readonly currentSearch;
|
|
11331
|
+
readonly canUpdateQuery: import("@angular/core").Signal<boolean>;
|
|
11332
|
+
readonly updateStatus: import("@angular/core").WritableSignal<"updating" | "updated" | "idle">;
|
|
11333
|
+
/** Why the last save failed — shown in the form until the next attempt. */
|
|
11271
11334
|
protected readonly saveError: import("@angular/core").WritableSignal<{
|
|
11272
11335
|
detail?: string;
|
|
11273
11336
|
} | undefined>;
|
|
11274
|
-
/** Form model
|
|
11337
|
+
/** Form model: the stored alert's values, or the defaults of a new one. Follows the alert it edits. */
|
|
11275
11338
|
readonly alertModel: import("@angular/core").WritableSignal<AlertFormModel>;
|
|
11276
11339
|
protected readonly alertForm: FieldTree<AlertFormModel, string | number, "writable">;
|
|
11340
|
+
/** True while a submission is being saved — for a container that disables its confirm button meanwhile. */
|
|
11341
|
+
readonly saving: import("@angular/core").Signal<boolean>;
|
|
11277
11342
|
/**
|
|
11278
11343
|
* The weekday group shows its error like any other field: once touched — which, for a group the
|
|
11279
11344
|
* checkboxes cannot blur, means once the form has been submitted.
|
|
11280
11345
|
*/
|
|
11281
11346
|
protected readonly showDaysError: import("@angular/core").Signal<boolean>;
|
|
11282
|
-
|
|
11283
|
-
|
|
11347
|
+
/** Checks exactly the days of `mask` — the "Weekdays" and "Every day" shortcuts. */
|
|
11348
|
+
protected setDays(mask: Alert.Days): void;
|
|
11284
11349
|
/**
|
|
11285
11350
|
* The submission itself, only ever reached with a valid form: `submit()` marks every field as
|
|
11286
11351
|
* touched — revealing the messages — and runs the action only when the form is valid.
|
|
@@ -11292,8 +11357,35 @@ export declare class AlertDialog {
|
|
|
11292
11357
|
protected showError<T>(field: FieldTree<T>): boolean;
|
|
11293
11358
|
/** Maps the first validation error to its translation key (`alerts.errors.noDaySelected`, …). */
|
|
11294
11359
|
protected errorKey<T>(field: FieldTree<T>): string;
|
|
11295
|
-
updateQuery(): void;
|
|
11296
|
-
execute(): void;
|
|
11360
|
+
protected updateQuery(): void;
|
|
11361
|
+
protected execute(): void;
|
|
11362
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlertFormComponent, never>;
|
|
11363
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlertFormComponent, "alert-form, alertform, AlertFormComponent", never, {
|
|
11364
|
+
"index": {
|
|
11365
|
+
"alias": "index";
|
|
11366
|
+
"required": false;
|
|
11367
|
+
"isSignal": true;
|
|
11368
|
+
};
|
|
11369
|
+
}, {
|
|
11370
|
+
"saved": "saved";
|
|
11371
|
+
"executed": "executed";
|
|
11372
|
+
}, never, never, true, never>;
|
|
11373
|
+
}
|
|
11374
|
+
/**
|
|
11375
|
+
* The modal dialog around {@link AlertFormComponent}: a title, the form, and the Cancel / Confirm buttons.
|
|
11376
|
+
*
|
|
11377
|
+
* It only hosts the form — the fields, the validation and the save are the form's. Confirm sits outside the
|
|
11378
|
+
* `<form>` and submits it through its `form` attribute; the dialog closes when the form says the alert is
|
|
11379
|
+
* saved (`dialog-confirm`) or that the watched search has been run.
|
|
11380
|
+
*
|
|
11381
|
+
* Open it with {@link AlertForm}, which takes the index of the alert to edit (none to create one).
|
|
11382
|
+
*/
|
|
11383
|
+
export declare class AlertDialog {
|
|
11384
|
+
protected readonly call: import("@sinequa/galactik").CallRef<number | undefined, DialogEvent>;
|
|
11385
|
+
readonly dialog: import("@angular/core").Signal<DialogComponent | undefined>;
|
|
11386
|
+
/** Index, in the user settings, of the alert being edited — `undefined` in "create" mode. */
|
|
11387
|
+
protected readonly index: import("@angular/core").WritableSignal<number | undefined>;
|
|
11388
|
+
constructor();
|
|
11297
11389
|
static ɵfac: i0.ɵɵFactoryDeclaration<AlertDialog, never>;
|
|
11298
11390
|
static ɵcmp: i0.ɵɵComponentDeclaration<AlertDialog, "alert-dialog, alertdialog, AlertDialog", never, {}, {}, never, never, true, never>;
|
|
11299
11391
|
}
|
|
@@ -11721,8 +11813,8 @@ export declare class SignedOutComponent {
|
|
|
11721
11813
|
static ɵcmp: i0.ɵɵComponentDeclaration<SignedOutComponent, "signed-out, SignedOut, signedout", never, {}, {}, never, never, true, never>;
|
|
11722
11814
|
}
|
|
11723
11815
|
export declare class BookmarkButtonComponent {
|
|
11724
|
-
variant: import("@angular/core").InputSignal<"
|
|
11725
|
-
size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "xsmall" | "medium" | "lg" |
|
|
11816
|
+
variant: import("@angular/core").InputSignal<"none" | "primary" | "secondary" | "light-accent" | "accent" | "tertiary" | null | undefined>;
|
|
11817
|
+
size: import("@angular/core").InputSignal<"small" | "large" | "sm" | "md" | "xs" | "xsmall" | "medium" | "lg" | null | undefined>;
|
|
11726
11818
|
/**
|
|
11727
11819
|
* Tab index applied to the inner button.
|
|
11728
11820
|
*
|
|
@@ -12813,7 +12905,7 @@ export declare class SearchFeedbackComponent {
|
|
|
12813
12905
|
onClose: import("@angular/core").OutputEmitterRef<void>;
|
|
12814
12906
|
private readonly injector;
|
|
12815
12907
|
pages: import("@angular/core").InputSignal<any>;
|
|
12816
|
-
variant: import("@angular/core").InputSignal<"
|
|
12908
|
+
variant: import("@angular/core").InputSignal<"none" | "primary" | "secondary" | "light-accent" | "accent" | "tertiary" | null | undefined>;
|
|
12817
12909
|
readonly auditService: AuditService;
|
|
12818
12910
|
protected readonly queryParamsStore: {
|
|
12819
12911
|
name?: import("@angular/core").Signal<string | undefined> | undefined;
|
|
@@ -13146,7 +13238,7 @@ export declare class AggregationDateComponent {
|
|
|
13146
13238
|
*
|
|
13147
13239
|
* @default 'selection'
|
|
13148
13240
|
*/
|
|
13149
|
-
emitOn: import("@angular/core").InputSignal<"
|
|
13241
|
+
emitOn: import("@angular/core").InputSignal<"apply" | "selection">;
|
|
13150
13242
|
readonly title: import("@angular/core").InputSignal<AggregationTitle>;
|
|
13151
13243
|
readonly displayEmptyDistributionIntervals: import("@angular/core").InputSignal<boolean>;
|
|
13152
13244
|
onSelect: import("@angular/core").OutputEmitterRef<AggregationItem[]>;
|
|
@@ -15606,7 +15698,7 @@ export declare class AggregationComponent {
|
|
|
15606
15698
|
*
|
|
15607
15699
|
* @default 'selection'
|
|
15608
15700
|
*/
|
|
15609
|
-
emitOn: import("@angular/core").InputSignal<"
|
|
15701
|
+
emitOn: import("@angular/core").InputSignal<"apply" | "selection">;
|
|
15610
15702
|
/**
|
|
15611
15703
|
* Which sub-component renders the aggregation.
|
|
15612
15704
|
*
|
|
@@ -15619,7 +15711,7 @@ export declare class AggregationComponent {
|
|
|
15619
15711
|
*
|
|
15620
15712
|
* @default "auto"
|
|
15621
15713
|
*/
|
|
15622
|
-
type: import("@angular/core").InputSignal<"
|
|
15714
|
+
type: import("@angular/core").InputSignal<"date" | "list" | "tree" | "auto">;
|
|
15623
15715
|
/**
|
|
15624
15716
|
* Whether the host removes itself from the layout (Tailwind's `hidden`, i.e.
|
|
15625
15717
|
* `display: none`) when it resolves to zero items. When `false` (default), the
|
|
@@ -15671,7 +15763,7 @@ export declare class AggregationComponent {
|
|
|
15671
15763
|
* The sub-component to render: the explicit `type` input, or the current
|
|
15672
15764
|
* date/tree/list heuristic when `type` is `"auto"`.
|
|
15673
15765
|
*/
|
|
15674
|
-
protected resolvedType: import("@angular/core").Signal<"
|
|
15766
|
+
protected resolvedType: import("@angular/core").Signal<"date" | "list" | "tree">;
|
|
15675
15767
|
/** Whether a filter is currently applied on this aggregation. */
|
|
15676
15768
|
private readonly hasFilters;
|
|
15677
15769
|
/**
|
|
@@ -16239,7 +16331,7 @@ export declare class FilterButtonComponent {
|
|
|
16239
16331
|
* silently moved to a hidden one.
|
|
16240
16332
|
*/
|
|
16241
16333
|
overflowed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
16242
|
-
protected variant: import("@angular/core").WritableSignal<"
|
|
16334
|
+
protected variant: import("@angular/core").WritableSignal<"none" | "primary" | "secondary" | "light-accent" | "accent" | "tertiary" | null | undefined>;
|
|
16243
16335
|
protected filter: import("@angular/core").WritableSignal<CFilterEx>;
|
|
16244
16336
|
/** Unique id wiring the trigger's `popovertarget` to the `<div popover>` `id`. */
|
|
16245
16337
|
protected readonly popoverId: string;
|
|
@@ -18899,7 +18991,7 @@ export declare class SavedSearchesComponent {
|
|
|
18899
18991
|
};
|
|
18900
18992
|
}, {}, never, never, true, never>;
|
|
18901
18993
|
}
|
|
18902
|
-
export type SettingsPanelId = "account" | "appearance" | "shortcuts";
|
|
18994
|
+
export type SettingsPanelId = "account" | "appearance" | "alerts" | "shortcuts";
|
|
18903
18995
|
/** Payload of `Settings.call()`: the panel to show first (default `account`). */
|
|
18904
18996
|
export interface SettingsDialogProps {
|
|
18905
18997
|
panel?: SettingsPanelId;
|
|
@@ -19062,6 +19154,27 @@ export declare class SettingsAppearancePanelComponent {
|
|
|
19062
19154
|
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAppearancePanelComponent, never>;
|
|
19063
19155
|
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAppearancePanelComponent, "settings-appearance-panel", never, {}, {}, never, never, true, never>;
|
|
19064
19156
|
}
|
|
19157
|
+
/**
|
|
19158
|
+
* The user's alerts: the list, and — once one is picked, or "Create" is pressed — the form in the same panel.
|
|
19159
|
+
*
|
|
19160
|
+
* The form is not a second dialog on top of the settings: the panel swaps from the list to the form and back,
|
|
19161
|
+
* and a failed save is shown in the form itself, which a toast could not do behind a modal dialog.
|
|
19162
|
+
*/
|
|
19163
|
+
export declare class SettingsAlertsPanelComponent {
|
|
19164
|
+
/** The user ran an alert's search: the settings have nothing more to show, the page behind has the results. */
|
|
19165
|
+
readonly closeRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
19166
|
+
/** The form being shown — `index` is the alert to edit, `undefined` to create one — or nothing: the list. */
|
|
19167
|
+
protected readonly form: import("@angular/core").WritableSignal<{
|
|
19168
|
+
index: number | undefined;
|
|
19169
|
+
} | undefined>;
|
|
19170
|
+
protected edit(index: number): void;
|
|
19171
|
+
protected create(): void;
|
|
19172
|
+
protected back(): void;
|
|
19173
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAlertsPanelComponent, never>;
|
|
19174
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAlertsPanelComponent, "settings-alerts-panel", never, {}, {
|
|
19175
|
+
"closeRequested": "closeRequested";
|
|
19176
|
+
}, never, never, true, never>;
|
|
19177
|
+
}
|
|
19065
19178
|
/** The keyboard shortcuts currently registered, as documented by the registry itself. */
|
|
19066
19179
|
export declare class SettingsShortcutsPanelComponent {
|
|
19067
19180
|
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsShortcutsPanelComponent, never>;
|