@arsedizioni/ars-utils 22.1.5 → 22.5.2
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/README.md +158 -10
- package/clipper.ui/clipper.scss +564 -0
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +11 -7
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs +609 -0
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs +591 -0
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-core.mjs +270 -1449
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +14 -4108
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs +962 -0
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs +506 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs +450 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs +184 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs +825 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs +708 -0
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs +426 -0
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs +531 -0
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +54 -1227
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs +1049 -0
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs +263 -0
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +4 -3
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.paginator.mjs +53 -0
- package/fesm2022/arsedizioni-ars-utils-ui.paginator.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.shell.mjs +517 -0
- package/fesm2022/arsedizioni-ars-utils-ui.shell.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs +246 -0
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils.mjs +13 -12
- package/fesm2022/arsedizioni-ars-utils.mjs.map +1 -1
- package/help/package.json +4 -0
- package/package.json +80 -14
- package/styles/ui.colors.scss +23 -0
- package/support.ui/package.json +4 -0
- package/tinymce/package.json +4 -0
- package/types/arsedizioni-ars-utils-clipper.common.d.ts +1 -2
- package/types/arsedizioni-ars-utils-clipper.ui.d.ts +4 -1
- package/types/arsedizioni-ars-utils-core.d.ts +684 -1004
- package/types/arsedizioni-ars-utils-core.date.d.ts +304 -0
- package/types/arsedizioni-ars-utils-core.markdown.d.ts +159 -0
- package/types/arsedizioni-ars-utils-ui.application.d.ts +10 -2022
- package/types/arsedizioni-ars-utils-ui.controls.d.ts +413 -0
- package/types/arsedizioni-ars-utils-ui.d.ts +183 -566
- package/types/arsedizioni-ars-utils-ui.dialogs.auth.d.ts +224 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.d.ts +228 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.prompt.d.ts +47 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.select.d.ts +309 -0
- package/types/arsedizioni-ars-utils-ui.files.d.ts +271 -0
- package/types/arsedizioni-ars-utils-ui.filters.d.ts +163 -0
- package/types/arsedizioni-ars-utils-ui.help.d.ts +220 -0
- package/types/arsedizioni-ars-utils-ui.navigation.d.ts +650 -0
- package/types/arsedizioni-ars-utils-ui.notifications.d.ts +73 -0
- package/types/arsedizioni-ars-utils-ui.paginator.d.ts +23 -0
- package/types/arsedizioni-ars-utils-ui.shell.d.ts +345 -0
- package/types/arsedizioni-ars-utils-ui.tinymce.d.ts +63 -0
- package/types/arsedizioni-ars-utils.d.ts +4 -10
- package/ui.tinymce/README.md +12 -0
- package/ui.tinymce/langs/it.js +466 -0
|
@@ -1,319 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { EventEmitter, PipeTransform, OnDestroy, Signal } from '@angular/core';
|
|
3
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
4
4
|
import { Locale } from 'date-fns';
|
|
5
|
-
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpInterceptorFn } from '@angular/common/http';
|
|
6
|
-
import { Observable } from 'rxjs';
|
|
7
5
|
import { Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
8
6
|
import { SafeHtml, SafeResourceUrl } from '@angular/platform-browser';
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
declare const MAT_DATE_FNS_FORMATS: MatDateFormats;
|
|
12
|
-
/**
|
|
13
|
-
* date-fns adapter that integrates Angular Material's date picker with the date-fns library,
|
|
14
|
-
* applying `Europe/Rome` timezone for all parsed and created dates.
|
|
15
|
-
*/
|
|
16
|
-
declare class DateFnsAdapter extends DateAdapter<Date, Locale> {
|
|
17
|
-
constructor();
|
|
18
|
-
/**
|
|
19
|
-
* Wraps a date/instant into a Europe/Rome TZDate whose JSON serialisation emits a
|
|
20
|
-
* naive local datetime string ("yyyy-MM-dd'T'HH:mm:ss") instead of a UTC instant,
|
|
21
|
-
* so the wall-clock value the user entered is preserved end-to-end (no timezone shift).
|
|
22
|
-
* @param value - The source Date or Unix timestamp in milliseconds.
|
|
23
|
-
* @returns a Europe/Rome TZDate whose toJSON yields a naive local datetime string.
|
|
24
|
-
*/
|
|
25
|
-
private static toLocal;
|
|
26
|
-
/**
|
|
27
|
-
* Returns the year component of the given date.
|
|
28
|
-
* @param date - The source date.
|
|
29
|
-
*/
|
|
30
|
-
getYear(date: Date): number;
|
|
31
|
-
/**
|
|
32
|
-
* Returns the zero-based month index of the given date (0 = January).
|
|
33
|
-
* @param date - The source date.
|
|
34
|
-
*/
|
|
35
|
-
getMonth(date: Date): number;
|
|
36
|
-
/**
|
|
37
|
-
* Returns the day-of-month of the given date (1-based).
|
|
38
|
-
* @param date - The source date.
|
|
39
|
-
*/
|
|
40
|
-
getDate(date: Date): number;
|
|
41
|
-
/**
|
|
42
|
-
* Returns the day-of-week of the given date (0 = Sunday).
|
|
43
|
-
* @param date - The source date.
|
|
44
|
-
*/
|
|
45
|
-
getDayOfWeek(date: Date): number;
|
|
46
|
-
/**
|
|
47
|
-
* Returns an array of 12 month name strings formatted for the active locale.
|
|
48
|
-
* @param style - One of `'long'`, `'short'`, or `'narrow'`.
|
|
49
|
-
*/
|
|
50
|
-
getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
|
|
51
|
-
/**
|
|
52
|
-
* Returns an array of 31 day-of-month label strings formatted using `Intl.DateTimeFormat`
|
|
53
|
-
* when available, falling back to plain numeric strings.
|
|
54
|
-
*/
|
|
55
|
-
getDateNames(): string[];
|
|
56
|
-
/**
|
|
57
|
-
* Returns an array of 7 day-of-week name strings formatted for the active locale.
|
|
58
|
-
* @param style - One of `'long'`, `'short'`, or `'narrow'`.
|
|
59
|
-
*/
|
|
60
|
-
getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
|
|
61
|
-
/**
|
|
62
|
-
* Returns the four-digit year string for the given date.
|
|
63
|
-
* @param date - The source date.
|
|
64
|
-
*/
|
|
65
|
-
getYearName(date: Date): string;
|
|
66
|
-
/**
|
|
67
|
-
* Returns the first day of the week for the active locale (0 = Sunday, 1 = Monday, …).
|
|
68
|
-
*/
|
|
69
|
-
getFirstDayOfWeek(): number;
|
|
70
|
-
/**
|
|
71
|
-
* Returns the number of days in the month of the given date.
|
|
72
|
-
* @param date - The source date.
|
|
73
|
-
*/
|
|
74
|
-
getNumDaysInMonth(date: Date): number;
|
|
75
|
-
/**
|
|
76
|
-
* Creates an independent copy of the given date.
|
|
77
|
-
* @param date - The date to clone.
|
|
78
|
-
*/
|
|
79
|
-
clone(date: Date): Date;
|
|
80
|
-
/**
|
|
81
|
-
* Creates a `Date` in the `Europe/Rome` timezone for the given year, month, and day.
|
|
82
|
-
* Throws an `Error` when any component is out of range.
|
|
83
|
-
* @param year - Full four-digit year.
|
|
84
|
-
* @param month - Zero-based month index (0 = January, 11 = December).
|
|
85
|
-
* @param date - Day-of-month (1-based).
|
|
86
|
-
*/
|
|
87
|
-
createDate(year: number, month: number, date: number): Date;
|
|
88
|
-
/**
|
|
89
|
-
* Returns the current date and time in the Europe/Rome timezone, preserving the wall-clock value.
|
|
90
|
-
*/
|
|
91
|
-
today(): Date;
|
|
92
|
-
/**
|
|
93
|
-
* Parses a value into a `Date`.
|
|
94
|
-
* - Strings are first attempted as ISO 8601, then matched against each format in `parseFormat`.
|
|
95
|
-
* - Numbers are treated as Unix timestamps (milliseconds).
|
|
96
|
-
* - Existing `Date` instances are cloned.
|
|
97
|
-
* @param value - The value to parse.
|
|
98
|
-
* @param parseFormat - A format string or an array of format strings (date-fns tokens).
|
|
99
|
-
* @returns A valid `Date` in `Europe/Rome`, an invalid sentinel, or `null` for unrecognised input.
|
|
100
|
-
*/
|
|
101
|
-
parse(value: unknown, parseFormat: string | string[]): Date | null;
|
|
102
|
-
/**
|
|
103
|
-
* Formats a `Date` using the given date-fns display format string.
|
|
104
|
-
* Throws an `Error` when `date` is not valid.
|
|
105
|
-
* @param date - The date to format.
|
|
106
|
-
* @param displayFormat - A date-fns format string (e.g. `'P'`, `'LLL uuuu'`).
|
|
107
|
-
*/
|
|
108
|
-
format(date: Date, displayFormat: string): string;
|
|
109
|
-
/**
|
|
110
|
-
* Adds the given number of whole years to a date.
|
|
111
|
-
* @param date - The base date.
|
|
112
|
-
* @param years - Number of years to add (can be negative).
|
|
113
|
-
*/
|
|
114
|
-
addCalendarYears(date: Date, years: number): Date;
|
|
115
|
-
/**
|
|
116
|
-
* Adds the given number of whole months to a date.
|
|
117
|
-
* @param date - The base date.
|
|
118
|
-
* @param months - Number of months to add (can be negative).
|
|
119
|
-
*/
|
|
120
|
-
addCalendarMonths(date: Date, months: number): Date;
|
|
121
|
-
/**
|
|
122
|
-
* Adds the given number of whole days to a date.
|
|
123
|
-
* @param date - The base date.
|
|
124
|
-
* @param days - Number of days to add (can be negative).
|
|
125
|
-
*/
|
|
126
|
-
addCalendarDays(date: Date, days: number): Date;
|
|
127
|
-
/**
|
|
128
|
-
* Serialises a date to an ISO 8601 date-only string (`yyyy-MM-dd`) using its Europe/Rome calendar day,
|
|
129
|
-
* independent of the browser timezone.
|
|
130
|
-
* @param date - The date to serialise.
|
|
131
|
-
* @returns the yyyy-MM-dd string for the date in Europe/Rome.
|
|
132
|
-
*/
|
|
133
|
-
toIso8601(date: Date): string;
|
|
134
|
-
/**
|
|
135
|
-
* Returns the given value when it is a valid `Date`, or `null` for an empty string.
|
|
136
|
-
* Deserialises valid ISO 8601 strings into `Date` instances.
|
|
137
|
-
* Delegates all other values to the base-class implementation.
|
|
138
|
-
* @param value - The raw value to deserialise.
|
|
139
|
-
*/
|
|
140
|
-
deserialize(value: unknown): Date | null;
|
|
141
|
-
/**
|
|
142
|
-
* Returns `true` when `obj` is an instance of `Date`.
|
|
143
|
-
* @param obj - The object to test.
|
|
144
|
-
*/
|
|
145
|
-
isDateInstance(obj: unknown): boolean;
|
|
146
|
-
/**
|
|
147
|
-
* Returns `true` when `date` represents a valid point in time.
|
|
148
|
-
* @param date - The date to validate.
|
|
149
|
-
*/
|
|
150
|
-
isValid(date: Date): boolean;
|
|
151
|
-
/**
|
|
152
|
-
* Returns a sentinel `Date` that represents an invalid date (`new Date(NaN)`).
|
|
153
|
-
*/
|
|
154
|
-
invalid(): Date;
|
|
155
|
-
/**
|
|
156
|
-
* Returns the hours component (0-23) of the given date.
|
|
157
|
-
* @param date - The source date.
|
|
158
|
-
*/
|
|
159
|
-
getHours(date: Date): number;
|
|
160
|
-
/**
|
|
161
|
-
* Returns the minutes component (0-59) of the given date.
|
|
162
|
-
* @param date - The source date.
|
|
163
|
-
*/
|
|
164
|
-
getMinutes(date: Date): number;
|
|
165
|
-
/**
|
|
166
|
-
* Returns the seconds component (0-59) of the given date.
|
|
167
|
-
* @param date - The source date.
|
|
168
|
-
*/
|
|
169
|
-
getSeconds(date: Date): number;
|
|
170
|
-
/**
|
|
171
|
-
* Returns a clone of `target` with its time-of-day set to the given hours/minutes/seconds,
|
|
172
|
-
* keeping the date part unchanged.
|
|
173
|
-
* @param target - The date whose time should be set.
|
|
174
|
-
* @param hours - New hours (0-23).
|
|
175
|
-
* @param minutes - New minutes (0-59).
|
|
176
|
-
* @param seconds - New seconds (0-59).
|
|
177
|
-
*/
|
|
178
|
-
setTime(target: Date, hours: number, minutes: number, seconds: number): Date;
|
|
179
|
-
/**
|
|
180
|
-
* Adds the given number of seconds to a date.
|
|
181
|
-
* @param date - The base date.
|
|
182
|
-
* @param amount - Number of seconds to add (can be negative).
|
|
183
|
-
*/
|
|
184
|
-
addSeconds(date: Date, amount: number): Date;
|
|
185
|
-
/**
|
|
186
|
-
* Parses a time-only value into a `Date` (today's date, in `Europe/Rome`, with the parsed
|
|
187
|
-
* time-of-day set). The wall-clock time is preserved exactly as entered.
|
|
188
|
-
* @param value - The value to parse (a string, or an existing `Date`).
|
|
189
|
-
* @param parseFormat - A format string or an array of format strings (date-fns tokens).
|
|
190
|
-
* @returns the parsed Date, an invalid sentinel, or null for unrecognised input.
|
|
191
|
-
*/
|
|
192
|
-
parseTime(value: unknown, parseFormat: string | string[]): Date | null;
|
|
193
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DateFnsAdapter, never>;
|
|
194
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<DateFnsAdapter>;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Standalone providers for the ARS date-fns adapter.
|
|
198
|
-
*
|
|
199
|
-
* Configures Angular Material to use {@link DateFnsAdapter} (Europe/Rome timezone)
|
|
200
|
-
* and the matching {@link MAT_DATE_FNS_FORMATS}. Also supports `mat-timepicker` since
|
|
201
|
-
* {@link DateFnsAdapter} implements the time-related `DateAdapter` methods.
|
|
202
|
-
*
|
|
203
|
-
* @example
|
|
204
|
-
* bootstrapApplication(AppComponent, {
|
|
205
|
-
* providers: [provideArsDateFns()]
|
|
206
|
-
* });
|
|
207
|
-
*/
|
|
208
|
-
declare function provideArsDateFns(): EnvironmentProviders;
|
|
209
|
-
|
|
210
|
-
/** Default application timezone: all dates are serialised as Europe/Rome wall-clock values. */
|
|
211
|
-
declare const DEFAULT_TIME_ZONE = "Europe/Rome";
|
|
212
|
-
/**
|
|
213
|
-
* IANA timezone used to serialise dates towards the backend.
|
|
214
|
-
* Override it in the application providers to run the same code in another zone:
|
|
215
|
-
* `{ provide: ARS_TIME_ZONE, useValue: 'Europe/Zurich' }`.
|
|
216
|
-
*/
|
|
217
|
-
declare const ARS_TIME_ZONE: InjectionToken<string>;
|
|
218
|
-
/**
|
|
219
|
-
* Functional interceptor that serialises every `Date` in an outgoing request
|
|
220
|
-
* body as a naive local datetime string (`yyyy-MM-ddTHH:mm:ss`: no `Z`, no offset).
|
|
221
|
-
*
|
|
222
|
-
* WHY: `JSON.stringify` calls `Date.prototype.toJSON`, which emits a UTC instant.
|
|
223
|
-
* A date picked as 29/07/2026 00:00 in Rome (UTC+2) becomes
|
|
224
|
-
* `2026-07-28T22:00:00.000Z`, so the server stores the 28th — the classic
|
|
225
|
-
* "off by one day" bug. Sending the wall-clock value instead makes
|
|
226
|
-
* System.Text.Json produce a `DateTime` with `Kind = Unspecified` and the exact
|
|
227
|
-
* day/time the user selected.
|
|
228
|
-
*
|
|
229
|
-
* This is the single serialisation boundary of the application: no call site has
|
|
230
|
-
* to convert anything, and it also covers dates that lost a per-instance
|
|
231
|
-
* `toJSON` along the way (e.g. after `structuredClone`).
|
|
232
|
-
*
|
|
233
|
-
* Register it explicitly in `provideHttpClient(withInterceptors([...]))`.
|
|
234
|
-
* If you would rather have the library register it for you, use
|
|
235
|
-
* {@link provideArsLocalDates} instead.
|
|
236
|
-
*
|
|
237
|
-
* @example
|
|
238
|
-
* provideHttpClient(withInterceptors([
|
|
239
|
-
* arsLocalDateInterceptor,
|
|
240
|
-
* evolutionAuthInterceptor(...),
|
|
241
|
-
* ]));
|
|
242
|
-
*/
|
|
243
|
-
declare const arsLocalDateInterceptor: HttpInterceptorFn;
|
|
244
|
-
/**
|
|
245
|
-
* Class-based twin of {@link arsLocalDateInterceptor}.
|
|
246
|
-
*
|
|
247
|
-
* Exists because a functional `HttpInterceptorFn` can ONLY be registered inside
|
|
248
|
-
* `provideHttpClient(withInterceptors([...]))`, while a class registered on the
|
|
249
|
-
* `HTTP_INTERCEPTORS` multi-token can be contributed by any `EnvironmentProviders` —
|
|
250
|
-
* which is what lets {@link provideArsLocalDates} (and `provideArsDateFns`) wire it up
|
|
251
|
-
* on their own.
|
|
252
|
-
*
|
|
253
|
-
* REQUIRES `withInterceptorsFromDi()` in the application's `provideHttpClient()`:
|
|
254
|
-
* without it Angular never reads `HTTP_INTERCEPTORS` and this interceptor is
|
|
255
|
-
* silently skipped.
|
|
256
|
-
*/
|
|
257
|
-
declare class ArsLocalDateInterceptor implements HttpInterceptor {
|
|
258
|
-
private readonly timeZone;
|
|
259
|
-
/**
|
|
260
|
-
* Normalises the request body before handing it to the next handler.
|
|
261
|
-
* @param req - The outgoing request.
|
|
262
|
-
* @param next - The next handler in the chain.
|
|
263
|
-
*/
|
|
264
|
-
intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
265
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ArsLocalDateInterceptor, never>;
|
|
266
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ArsLocalDateInterceptor>;
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Standalone providers for date serialisation towards the backend.
|
|
270
|
-
*
|
|
271
|
-
* Registers {@link ArsLocalDateInterceptor} so that every `Date` in a request
|
|
272
|
-
* body travels as a naive local datetime string instead of a UTC instant.
|
|
273
|
-
*
|
|
274
|
-
* IMPORTANT: the application MUST call `withInterceptorsFromDi()`, otherwise
|
|
275
|
-
* these providers have no effect at all (no error is raised).
|
|
276
|
-
*
|
|
277
|
-
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
278
|
-
*
|
|
279
|
-
* @example
|
|
280
|
-
* providers: [
|
|
281
|
-
* provideArsLocalDates(),
|
|
282
|
-
* provideHttpClient(withInterceptors([evolutionAuthInterceptor(...)]), withInterceptorsFromDi()),
|
|
283
|
-
* ]
|
|
284
|
-
*/
|
|
285
|
-
declare function provideArsLocalDates(timeZone?: string): EnvironmentProviders;
|
|
286
|
-
/**
|
|
287
|
-
* Formats a date as a date-only ISO string (`yyyy-MM-dd`) using its wall-clock
|
|
288
|
-
* calendar day in the given timezone. Use it for query-string parameters and for
|
|
289
|
-
* DTO fields mapped to a .NET `DateOnly`, which the interceptor cannot detect.
|
|
290
|
-
*
|
|
291
|
-
* @param value - The date to serialise.
|
|
292
|
-
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
293
|
-
* @returns The `yyyy-MM-dd` string, or `undefined` for empty/invalid input.
|
|
294
|
-
*/
|
|
295
|
-
declare function toLocalDateOnlyString(value?: Date | null, timeZone?: string): string | undefined;
|
|
296
|
-
/**
|
|
297
|
-
* Formats a date as a naive local datetime string (`yyyy-MM-ddTHH:mm:ss`), the
|
|
298
|
-
* same representation produced by the interceptor. Useful for query-string
|
|
299
|
-
* parameters, which never pass through the request body.
|
|
300
|
-
*
|
|
301
|
-
* @param value - The date to serialise.
|
|
302
|
-
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
303
|
-
* @returns The naive datetime string, or `undefined` for empty/invalid input.
|
|
304
|
-
*/
|
|
305
|
-
declare function toLocalDateTimeString(value?: Date | null, timeZone?: string): string | undefined;
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* Directive that moves browser focus to the host element after the first render cycle.
|
|
309
|
-
* Apply `autoFocus` to any focusable element to set focus automatically on initialisation.
|
|
310
|
-
*/
|
|
311
|
-
declare class AutoFocusDirective {
|
|
312
|
-
private readonly elementRef;
|
|
313
|
-
constructor();
|
|
314
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AutoFocusDirective, never>;
|
|
315
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AutoFocusDirective, "[autoFocus]", never, {}, {}, never, never, true, never>;
|
|
316
|
-
}
|
|
7
|
+
import { Observable } from 'rxjs';
|
|
317
8
|
|
|
318
9
|
interface INode {
|
|
319
10
|
id: string;
|
|
@@ -413,11 +104,13 @@ declare class UpdateRelationsModel<T = number> {
|
|
|
413
104
|
id: T;
|
|
414
105
|
relatedIds: T[];
|
|
415
106
|
}
|
|
107
|
+
/** Identifies the external identity provider used for an OAuth login. */
|
|
416
108
|
declare enum LoginOAuthType {
|
|
417
109
|
None = 0,
|
|
418
110
|
Microsoft = 1,
|
|
419
111
|
Google = 2
|
|
420
112
|
}
|
|
113
|
+
/** Payload emitted by the OAuth login components once the provider returned a token. */
|
|
421
114
|
interface LoginOAuthResult {
|
|
422
115
|
type: LoginOAuthType;
|
|
423
116
|
token: string;
|
|
@@ -490,558 +183,62 @@ interface LoginResult<T> extends ApiResult<boolean> {
|
|
|
490
183
|
requiresMfa?: boolean;
|
|
491
184
|
}
|
|
492
185
|
|
|
493
|
-
|
|
494
|
-
* Directive that listens to `keyup` events on a date input and debounces changes
|
|
495
|
-
* into a {@link DateInterval} model, converting shorthand strings (e.g. "d/m") to dates.
|
|
496
|
-
* Apply `[dateIntervalChange]="interval"` to the host `<input>` element.
|
|
497
|
-
*/
|
|
498
|
-
declare class DateIntervalChangeDirective {
|
|
499
|
-
/** The date interval model to update when the input value changes. */
|
|
500
|
-
readonly dateIntervalChange: i0.InputSignal<DateInterval>;
|
|
501
|
-
/** When `true`, the directive updates the interval's end date; otherwise the start date. */
|
|
502
|
-
readonly end: i0.InputSignal<boolean>;
|
|
503
|
-
private readonly subject;
|
|
504
|
-
private readonly destroyRef;
|
|
505
|
-
constructor();
|
|
506
|
-
/**
|
|
507
|
-
* Handles `keydown` events on the host element.
|
|
508
|
-
* The space key must be blocked HERE: by the time `keyup` fires the character
|
|
509
|
-
* has already been inserted into the input, so `preventDefault` on `keyup`
|
|
510
|
-
* cannot stop it.
|
|
511
|
-
* @param e - The keyboard event emitted by the host input.
|
|
512
|
-
*/
|
|
513
|
-
onKeydown(e: KeyboardEvent): void;
|
|
186
|
+
declare const UtilsMessages: {
|
|
514
187
|
/**
|
|
515
|
-
*
|
|
516
|
-
* @param e - The keyboard event emitted by the host input.
|
|
188
|
+
* Messages
|
|
517
189
|
*/
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DateIntervalChangeDirective, "[dateIntervalChange]", never, { "dateIntervalChange": { "alias": "dateIntervalChange"; "required": false; "isSignal": true; }; "end": { "alias": "end"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
521
|
-
}
|
|
190
|
+
UTILS_DIALOGS_SELECT_OPTIONS_CHANGED: string;
|
|
191
|
+
};
|
|
522
192
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
*/
|
|
537
|
-
onClick(e: MouseEvent): void;
|
|
538
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CopyClipboardDirective, never>;
|
|
539
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<CopyClipboardDirective, "[copyClipboard]", never, { "payload": { "alias": "copyClipboard"; "required": false; "isSignal": true; }; }, { "copied": "copied"; }, never, never, true, never>;
|
|
193
|
+
declare enum DateFormat {
|
|
194
|
+
Short = 1,// dd/mm/yyyy
|
|
195
|
+
Long = 2,// d mmmm yyyy
|
|
196
|
+
LongWithShortMonth = 3,// d mmm yyyy
|
|
197
|
+
LongWithWeekDay = 4,// wwww, d mmmm yyyy
|
|
198
|
+
LongWithShortWeekDay = 5,// www, d mmmm yyyy
|
|
199
|
+
MonthAndYear = 6,// mmm yyyy
|
|
200
|
+
LongMonthAndYear = 7,// mmmm yyyy
|
|
201
|
+
WeekDay = 8,// www d
|
|
202
|
+
LongWeekDay = 9,// wwww d
|
|
203
|
+
DayAndMonth = 10,// d mmmm
|
|
204
|
+
ShortUS = 11,// mm/dd/yyyy
|
|
205
|
+
ShortISO8601 = 12
|
|
540
206
|
}
|
|
541
|
-
|
|
542
207
|
/**
|
|
543
|
-
*
|
|
544
|
-
*
|
|
208
|
+
* Key selector with IDE autocomplete and compile-time checking.
|
|
209
|
+
*
|
|
210
|
+
* Suggests the string keys of `T` in the editor and flags obvious typos when
|
|
211
|
+
* `T` is known, while STILL accepting any plain string (the `string & {}`
|
|
212
|
+
* branch), so existing callers that pass dynamic or untyped keys keep
|
|
213
|
+
* compiling unchanged.
|
|
545
214
|
*/
|
|
546
|
-
|
|
215
|
+
type KeyOf<T> = Extract<keyof T, string> | (string & {});
|
|
216
|
+
interface PasswordStrength {
|
|
217
|
+
score: number;
|
|
218
|
+
label?: string;
|
|
219
|
+
color?: string;
|
|
220
|
+
suggestions?: string[];
|
|
221
|
+
isValid: boolean;
|
|
222
|
+
}
|
|
223
|
+
declare class SystemUtils {
|
|
224
|
+
/** Shared collator for locale-aware, case-insensitive string comparison. */
|
|
225
|
+
private static readonly collator;
|
|
547
226
|
/**
|
|
548
|
-
*
|
|
549
|
-
*
|
|
550
|
-
* @param
|
|
227
|
+
* Array find by key
|
|
228
|
+
* @param array : the array to scan
|
|
229
|
+
* @param key : key name
|
|
230
|
+
* @param value : the value to search for
|
|
231
|
+
* @returns : the property value or null
|
|
551
232
|
*/
|
|
552
|
-
|
|
553
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EmailsValidatorDirective, never>;
|
|
554
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<EmailsValidatorDirective, "[emails]", never, {}, {}, never, never, true, never>;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
/**
|
|
558
|
-
* Directive that validates that the host control's value equals the value of another control.
|
|
559
|
-
* Bind `[equals]="otherControl"`.
|
|
560
|
-
*
|
|
561
|
-
* The host control is re-validated whenever the OTHER control's value changes:
|
|
562
|
-
* without this, typing a new password AFTER the confirmation field was filled
|
|
563
|
-
* left the form incorrectly valid (the classic password/confirm bug).
|
|
564
|
-
*
|
|
565
|
-
* IMPORTANT (reciprocal-binding safety): the re-validation triggered from the
|
|
566
|
-
* other control's `valueChanges` runs with `{ emitEvent: false }`. Calling
|
|
567
|
-
* Angular's `onValidatorChange` instead would re-emit valueChanges, so a
|
|
568
|
-
* reciprocal setup (A [equals]=B and B [equals]=A) would overflow the stack.
|
|
569
|
-
*/
|
|
570
|
-
declare class EqualsValidatorDirective implements Validator {
|
|
571
|
-
/** The control whose value must match the host control's value. */
|
|
572
|
-
readonly equals: i0.InputSignal<AbstractControl<any, any, any>>;
|
|
573
|
-
/** The host control, captured on the first validate() call. */
|
|
574
|
-
private hostControl?;
|
|
575
|
-
/** Subscription to the other control's valueChanges. */
|
|
576
|
-
private subscription?;
|
|
577
|
-
constructor();
|
|
233
|
+
static arrayFindByKey<T>(array: T[] | undefined, key: KeyOf<T>, value: unknown): T | undefined;
|
|
578
234
|
/**
|
|
579
|
-
*
|
|
580
|
-
*
|
|
581
|
-
* @param
|
|
582
|
-
* @
|
|
235
|
+
* Array find index by key
|
|
236
|
+
* @param array : the array to scan
|
|
237
|
+
* @param key : the key name
|
|
238
|
+
* @param value : the value to search for
|
|
239
|
+
* @returns : the array index or -1 if not found
|
|
583
240
|
*/
|
|
584
|
-
|
|
585
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EqualsValidatorDirective, never>;
|
|
586
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<EqualsValidatorDirective, "[equals]", never, { "equals": { "alias": "equals"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
/**
|
|
590
|
-
* Directive that validates a file size against configurable minimum and maximum bounds.
|
|
591
|
-
* Bind `[fileSize]` together with `[size]="fileSizeInMb"`, `[maxSizeMb]`, and `[minSizeMb]`.
|
|
592
|
-
*/
|
|
593
|
-
declare class FileSizeValidatorDirective implements Validator {
|
|
594
|
-
/** Maximum allowed file size in megabytes. Defaults to 5. */
|
|
595
|
-
readonly maxSizeMb: i0.InputSignal<number>;
|
|
596
|
-
/** Minimum required file size in megabytes. Defaults to 0. */
|
|
597
|
-
readonly minSizeMb: i0.InputSignal<number>;
|
|
598
|
-
/** The actual file size in megabytes to validate against the bounds. */
|
|
599
|
-
readonly size: i0.InputSignal<number>;
|
|
600
|
-
/**
|
|
601
|
-
* Validates that the bound file size falls within the configured min/max range.
|
|
602
|
-
* Returns `null` when no control value is present.
|
|
603
|
-
* @param control - The form control to validate.
|
|
604
|
-
*/
|
|
605
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
606
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FileSizeValidatorDirective, never>;
|
|
607
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<FileSizeValidatorDirective, "[fileSize]", never, { "maxSizeMb": { "alias": "maxSizeMb"; "required": false; "isSignal": true; }; "minSizeMb": { "alias": "minSizeMb"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
/**
|
|
611
|
-
* Directive that validates a control value as a GUID / UUID string.
|
|
612
|
-
* Apply `guid` to a text input that expects a valid UUID.
|
|
613
|
-
*/
|
|
614
|
-
declare class GuidValidatorDirective implements Validator {
|
|
615
|
-
/**
|
|
616
|
-
* Validates that the control value is a well-formed GUID / UUID.
|
|
617
|
-
* Returns `null` when the control is empty.
|
|
618
|
-
* @param control - The form control to validate.
|
|
619
|
-
*/
|
|
620
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
621
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<GuidValidatorDirective, never>;
|
|
622
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<GuidValidatorDirective, "[guid]", never, {}, {}, never, never, true, never>;
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
/**
|
|
626
|
-
* Directive that validates that a control value does not exceed a maximum word count.
|
|
627
|
-
* Bind `[maxTerms]="10"` to allow at most 10 whitespace-separated terms.
|
|
628
|
-
*/
|
|
629
|
-
declare class MaxTermsValidatorDirective implements Validator {
|
|
630
|
-
/** The maximum number of whitespace-separated terms allowed. */
|
|
631
|
-
readonly maxTerms: i0.InputSignal<number>;
|
|
632
|
-
/**
|
|
633
|
-
* Validates that the control value contains no more than the configured number of terms.
|
|
634
|
-
* Returns `null` when the control is empty.
|
|
635
|
-
* @param control - The form control to validate.
|
|
636
|
-
*/
|
|
637
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
638
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MaxTermsValidatorDirective, never>;
|
|
639
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MaxTermsValidatorDirective, "[maxTerms]", never, { "maxTerms": { "alias": "maxTerms"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
/**
|
|
643
|
-
* Directive that validates that a string control value is not blank (whitespace-only).
|
|
644
|
-
* Apply `notEmpty` to a text input where non-blank content is required.
|
|
645
|
-
*/
|
|
646
|
-
declare class NotEmptyValidatorDirective implements Validator {
|
|
647
|
-
/**
|
|
648
|
-
* Validates that the control value is a non-blank string.
|
|
649
|
-
* Returns `null` when the control is empty or not a string.
|
|
650
|
-
* @param control - The form control to validate.
|
|
651
|
-
*/
|
|
652
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
653
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NotEmptyValidatorDirective, never>;
|
|
654
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NotEmptyValidatorDirective, "[notEmpty]", never, {}, {}, never, never, true, never>;
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
/**
|
|
658
|
-
* Directive that validates that the host control's value is different from another control's value.
|
|
659
|
-
* Bind `[notEqual]="otherControl"`.
|
|
660
|
-
*
|
|
661
|
-
* The host control is re-validated whenever the OTHER control's value changes,
|
|
662
|
-
* so editing either field keeps both error states consistent.
|
|
663
|
-
*
|
|
664
|
-
* IMPORTANT (reciprocal-binding safety): the re-validation triggered from the
|
|
665
|
-
* other control's `valueChanges` is run with `{ emitEvent: false }`. Using
|
|
666
|
-
* Angular's `onValidatorChange` here instead would call `host.updateValueAndValidity()`
|
|
667
|
-
* WITH events, so a reciprocal setup (A [notEqual]=B and B [notEqual]=A) would
|
|
668
|
-
* ping-pong valueChanges between the two controls and overflow the stack.
|
|
669
|
-
*/
|
|
670
|
-
declare class NotEqualValidatorDirective implements Validator {
|
|
671
|
-
/** The control whose value must differ from the host control's value. */
|
|
672
|
-
readonly notEqual: i0.InputSignal<AbstractControl<any, any, any>>;
|
|
673
|
-
/** The host control, captured on the first validate() call. */
|
|
674
|
-
private hostControl?;
|
|
675
|
-
/** Subscription to the other control's valueChanges. */
|
|
676
|
-
private subscription?;
|
|
677
|
-
constructor();
|
|
678
|
-
/**
|
|
679
|
-
* Validates that the host control value is not equal to the bound control's value.
|
|
680
|
-
* Also clears the `notequal` error on the other control when the host becomes valid.
|
|
681
|
-
* Returns `null` (valid) when no control is bound.
|
|
682
|
-
* @param control - The form control to validate.
|
|
683
|
-
* @returns `null` when valid, `{ notequal: true }` otherwise.
|
|
684
|
-
*/
|
|
685
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
686
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NotEqualValidatorDirective, never>;
|
|
687
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NotEqualValidatorDirective, "[notEqual]", never, { "notEqual": { "alias": "notEqual"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
688
|
-
}
|
|
689
|
-
|
|
690
|
-
/**
|
|
691
|
-
* Directive that validates that a control value is not a future date.
|
|
692
|
-
* Apply `notFuture` to a text input that expects a date on or before today.
|
|
693
|
-
*/
|
|
694
|
-
declare class NotFutureValidatorDirective implements Validator {
|
|
695
|
-
/**
|
|
696
|
-
* Validates that the control value represents a date that is not in the future.
|
|
697
|
-
* Returns `null` when the control is empty.
|
|
698
|
-
* @param control - The form control to validate.
|
|
699
|
-
*/
|
|
700
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
701
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NotFutureValidatorDirective, never>;
|
|
702
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NotFutureValidatorDirective, "[notFuture]", never, {}, {}, never, never, true, never>;
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
/**
|
|
706
|
-
* Directive that validates a control value as a sufficiently strong password.
|
|
707
|
-
* Apply `password` to a password input.
|
|
708
|
-
*/
|
|
709
|
-
declare class PasswordValidatorDirective implements Validator {
|
|
710
|
-
/**
|
|
711
|
-
* Validates that the control value meets the minimum password-strength requirements.
|
|
712
|
-
* @param control - The form control to validate.
|
|
713
|
-
*/
|
|
714
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
715
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PasswordValidatorDirective, never>;
|
|
716
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<PasswordValidatorDirective, "[password]", never, {}, {}, never, never, true, never>;
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
/**
|
|
720
|
-
* Directive that removes focus from the host element after it is clicked,
|
|
721
|
-
* preventing the browser from keeping a visible focus ring post-interaction.
|
|
722
|
-
* Apply `removeFocus` to any focusable element (e.g. a button).
|
|
723
|
-
*/
|
|
724
|
-
declare class RemoveFocusDirective {
|
|
725
|
-
private readonly elementRef;
|
|
726
|
-
/**
|
|
727
|
-
* Handles click events on the host element and blurs it on the next event-loop tick
|
|
728
|
-
* so that the click action completes before focus is removed.
|
|
729
|
-
*/
|
|
730
|
-
onClick(): void;
|
|
731
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RemoveFocusDirective, never>;
|
|
732
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RemoveFocusDirective, "[removeFocus]", never, {}, {}, never, never, true, never>;
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
/**
|
|
736
|
-
* Directive that validates a control value as a parseable SQL-compatible date string.
|
|
737
|
-
* Apply `sqlDate` to a text input that expects a date after year 1750.
|
|
738
|
-
*/
|
|
739
|
-
declare class SqlDateValidatorDirective implements Validator {
|
|
740
|
-
/**
|
|
741
|
-
* Validates that the control value can be parsed as a date after 1750.
|
|
742
|
-
* Returns `null` when the control is empty.
|
|
743
|
-
* @param control - The form control to validate.
|
|
744
|
-
*/
|
|
745
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
746
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SqlDateValidatorDirective, never>;
|
|
747
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SqlDateValidatorDirective, "[sqlDate]", never, {}, {}, never, never, true, never>;
|
|
748
|
-
}
|
|
749
|
-
|
|
750
|
-
/**
|
|
751
|
-
* Directive that validates a time string against optional allowed time slot ranges.
|
|
752
|
-
* Bind `[time]` and optionally `[slots]="'08:00-12:00|14:00-18:00'"` (pipe-separated ranges).
|
|
753
|
-
*/
|
|
754
|
-
declare class TimeValidatorDirective implements Validator {
|
|
755
|
-
/** Optional pipe-separated list of allowed time ranges, e.g. `"08:00-12:00|14:00-18:00"`. */
|
|
756
|
-
readonly slots: i0.InputSignal<string>;
|
|
757
|
-
/**
|
|
758
|
-
* Parses a `"HH:MM"` time string into a comparable integer (e.g. `"09:30"` -> `930`).
|
|
759
|
-
* Returns `-1` when the string is not a valid time.
|
|
760
|
-
* @param value - The time string to parse.
|
|
761
|
-
*/
|
|
762
|
-
private getTime;
|
|
763
|
-
/**
|
|
764
|
-
* Validates that the control value is a valid time string and, when slots are configured,
|
|
765
|
-
* that it falls within at least one of the allowed ranges.
|
|
766
|
-
* Returns `null` when the control is empty.
|
|
767
|
-
* @param control - The form control to validate.
|
|
768
|
-
*/
|
|
769
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
770
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TimeValidatorDirective, never>;
|
|
771
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TimeValidatorDirective, "[time]", never, { "slots": { "alias": "slots"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
/**
|
|
775
|
-
* Directive that validates a control value as a well-formed URL.
|
|
776
|
-
* Apply `url` to a text input that expects a URL.
|
|
777
|
-
*/
|
|
778
|
-
declare class UrlValidatorDirective implements Validator {
|
|
779
|
-
/**
|
|
780
|
-
* Validates that the control value is a well-formed URL.
|
|
781
|
-
* Returns `null` (valid) when the control is empty.
|
|
782
|
-
* @param control - The form control to validate.
|
|
783
|
-
*/
|
|
784
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
785
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<UrlValidatorDirective, never>;
|
|
786
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<UrlValidatorDirective, "[url]", never, {}, {}, never, never, true, never>;
|
|
787
|
-
}
|
|
788
|
-
|
|
789
|
-
/**
|
|
790
|
-
* Directive that validates a control using the host object's `isValid()` method
|
|
791
|
-
* or a boolean expression passed via `[validIf]`.
|
|
792
|
-
*/
|
|
793
|
-
declare class ValidIfDirective implements Validator {
|
|
794
|
-
/** When `true`, the control is considered valid regardless of the bound value. */
|
|
795
|
-
readonly validIf: i0.InputSignal<boolean>;
|
|
796
|
-
/**
|
|
797
|
-
* Validates the control value against a boolean flag or the value's own `isValid()` method.
|
|
798
|
-
* @param control - The form control to validate.
|
|
799
|
-
*/
|
|
800
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
801
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ValidIfDirective, never>;
|
|
802
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ValidIfDirective, "[validIf]", never, { "validIf": { "alias": "validIf"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
803
|
-
}
|
|
804
|
-
|
|
805
|
-
/**
|
|
806
|
-
* Directive that delegates validation to an externally provided validator function.
|
|
807
|
-
* Bind `[validator]="myFn"` where `myFn` is `(c: AbstractControl) => ValidationErrors | null`.
|
|
808
|
-
*/
|
|
809
|
-
declare class ValidatorDirective implements Validator {
|
|
810
|
-
/** The custom validator function to apply. */
|
|
811
|
-
readonly validator: i0.InputSignal<(control: AbstractControl) => ValidationErrors | null>;
|
|
812
|
-
/**
|
|
813
|
-
* Invokes the provided validator function against the given control.
|
|
814
|
-
* Returns `null` (valid) when no function is bound.
|
|
815
|
-
* @param control - The form control to validate.
|
|
816
|
-
*/
|
|
817
|
-
validate(control: AbstractControl): ValidationErrors | null;
|
|
818
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ValidatorDirective, never>;
|
|
819
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ValidatorDirective, "[validator]", never, { "validator": { "alias": "validator"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
820
|
-
}
|
|
821
|
-
|
|
822
|
-
/**
|
|
823
|
-
* Pipe that converts plain-text newlines (`\r\n`, `\r`, `\n`) to HTML `<br>` tags
|
|
824
|
-
* and marks the result as trusted HTML so Angular does not escape it.
|
|
825
|
-
*
|
|
826
|
-
* Usage: `{{ text | formatHtml }}`
|
|
827
|
-
*/
|
|
828
|
-
declare class FormatHtmlPipe implements PipeTransform {
|
|
829
|
-
private readonly sanitizer;
|
|
830
|
-
/**
|
|
831
|
-
* Transforms a plain-text string into sanitized HTML by replacing newline characters
|
|
832
|
-
* with `<br>` tags.
|
|
833
|
-
* @param value - The input string to transform. Treated as an empty string when `undefined`.
|
|
834
|
-
* @returns A `SafeHtml` value that can be rendered with `[innerHTML]`.
|
|
835
|
-
*/
|
|
836
|
-
transform(value?: string): SafeHtml;
|
|
837
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormatHtmlPipe, never>;
|
|
838
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<FormatHtmlPipe, "formatHtml", true>;
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
/**
|
|
842
|
-
* Pipe that converts a Markdown string to sanitized HTML using `SystemUtils.markdownToHtml`.
|
|
843
|
-
*
|
|
844
|
-
* Usage: `{{ text | formatMarkdown }}`
|
|
845
|
-
*/
|
|
846
|
-
declare class FormatMarkdownPipe implements PipeTransform {
|
|
847
|
-
private readonly sanitizer;
|
|
848
|
-
/**
|
|
849
|
-
* Transforms a Markdown string into sanitized HTML.
|
|
850
|
-
* @param value - The Markdown input to convert. Treated as an empty string when `undefined`.
|
|
851
|
-
* @returns A `SafeHtml` value that can be rendered with `[innerHTML]`.
|
|
852
|
-
*/
|
|
853
|
-
transform(value?: string): SafeHtml;
|
|
854
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormatMarkdownPipe, never>;
|
|
855
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<FormatMarkdownPipe, "formatMarkdown", true>;
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
/**
|
|
859
|
-
* General-purpose formatting pipe that converts a raw value to a locale-aware string
|
|
860
|
-
* based on the specified format type.
|
|
861
|
-
*
|
|
862
|
-
* Supported types: `'date'` / `'D'`, `'currency'` / `'C'`, `'number'` / `'N'`,
|
|
863
|
-
* `'number0'` / `'N0'`, `'percentage'` / `'P'`.
|
|
864
|
-
*
|
|
865
|
-
* Usage: `{{ value | format:'currency' }}`
|
|
866
|
-
*/
|
|
867
|
-
declare class FormatPipe implements PipeTransform {
|
|
868
|
-
/** Shared formatters: building an `Intl.NumberFormat` per call is expensive. */
|
|
869
|
-
private static readonly currencyFormat;
|
|
870
|
-
private static readonly numberFormat;
|
|
871
|
-
private static readonly number0Format;
|
|
872
|
-
private static readonly percentFormat;
|
|
873
|
-
/**
|
|
874
|
-
* Formats a value according to the specified type and optional pattern.
|
|
875
|
-
* Returns `undefined` when the value is `null` or `undefined`, or when the type is unrecognised.
|
|
876
|
-
* @param value - The raw value to format.
|
|
877
|
-
* @param type - The format type identifier (default: `'date'`).
|
|
878
|
-
* @param pattern - The date pattern used when `type` is `'date'` (default: `'dd/MM/yyyy'`).
|
|
879
|
-
* @returns A formatted string, or `undefined` when the value cannot be formatted.
|
|
880
|
-
*/
|
|
881
|
-
transform(value?: unknown, type?: string, pattern?: string): string | undefined;
|
|
882
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormatPipe, never>;
|
|
883
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<FormatPipe, "format", true>;
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
/**
|
|
887
|
-
* Pipe that applies a global regex replacement on a string and returns the result
|
|
888
|
-
* as sanitized HTML. When `regexValue` is `'\n'` and no `replaceValue` is given,
|
|
889
|
-
* newlines are replaced with `<br>` tags.
|
|
890
|
-
*
|
|
891
|
-
* Usage: `{{ text | replace:'\n':'' }}`
|
|
892
|
-
*/
|
|
893
|
-
declare class ReplacePipe implements PipeTransform {
|
|
894
|
-
private readonly sanitizer;
|
|
895
|
-
/**
|
|
896
|
-
* Replaces all occurrences of `regexValue` in `value` with `replaceValue`.
|
|
897
|
-
* Returns `undefined` when `value` is empty or `undefined`.
|
|
898
|
-
* @param value - The source string to process.
|
|
899
|
-
* @param regexValue - The regex pattern string to match (applied with the global flag).
|
|
900
|
-
* @param replaceValue - The replacement string. Defaults to `'<br>'` when `regexValue` is `'\n'` and this is falsy.
|
|
901
|
-
* @returns A `SafeHtml` value with all matches replaced, or `undefined` when the input is empty.
|
|
902
|
-
*/
|
|
903
|
-
transform(value: string | undefined, regexValue: string, replaceValue?: string): SafeHtml | undefined;
|
|
904
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ReplacePipe, never>;
|
|
905
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<ReplacePipe, "replace", true>;
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
/**
|
|
909
|
-
* Pipe that marks an HTML string as trusted so Angular does not escape it when
|
|
910
|
-
* bound via `[innerHTML]`.
|
|
911
|
-
*
|
|
912
|
-
* Usage: `<div [innerHTML]="html | safeHtml"></div>`
|
|
913
|
-
*/
|
|
914
|
-
declare class SafeHtmlPipe implements PipeTransform {
|
|
915
|
-
private readonly sanitizer;
|
|
916
|
-
/**
|
|
917
|
-
* Bypasses Angular's HTML sanitization and returns a `SafeHtml` instance.
|
|
918
|
-
* @param value - The raw HTML string to trust. Treated as an empty string when `undefined`.
|
|
919
|
-
* @returns A `SafeHtml` value that can be bound to `[innerHTML]` without escaping.
|
|
920
|
-
*/
|
|
921
|
-
transform(value?: string): SafeHtml;
|
|
922
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SafeHtmlPipe, never>;
|
|
923
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<SafeHtmlPipe, "safeHtml", true>;
|
|
924
|
-
}
|
|
925
|
-
|
|
926
|
-
/**
|
|
927
|
-
* Pipe that marks a URL string as a trusted resource URL so Angular does not block it
|
|
928
|
-
* when bound to attributes such as `[src]` or `[href]` on iframes, objects, or embeds.
|
|
929
|
-
*
|
|
930
|
-
* Usage: `<iframe [src]="url | safeUrl"></iframe>`
|
|
931
|
-
*/
|
|
932
|
-
declare class SafeUrlPipe implements PipeTransform {
|
|
933
|
-
private readonly sanitizer;
|
|
934
|
-
/**
|
|
935
|
-
* Bypasses Angular's resource-URL sanitization and returns a `SafeResourceUrl` instance.
|
|
936
|
-
* @param value - The URL string to trust. Treated as an empty string when `undefined`.
|
|
937
|
-
* @returns A `SafeResourceUrl` that can be bound to resource URL attributes without blocking.
|
|
938
|
-
*/
|
|
939
|
-
transform(value?: string): SafeResourceUrl;
|
|
940
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SafeUrlPipe, never>;
|
|
941
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<SafeUrlPipe, "safeUrl", true>;
|
|
942
|
-
}
|
|
943
|
-
|
|
944
|
-
/**
|
|
945
|
-
* Impure pipe that filters an array using a caller-provided predicate function.
|
|
946
|
-
* Because the pipe is impure it re-evaluates on every change-detection cycle,
|
|
947
|
-
* which is necessary when the predicate's captured state changes.
|
|
948
|
-
*
|
|
949
|
-
* Usage: `*ngFor="let item of items | callback:myFilter"`
|
|
950
|
-
*/
|
|
951
|
-
declare class SearchCallbackPipe implements PipeTransform {
|
|
952
|
-
/**
|
|
953
|
-
* Filters `items` by applying `callback` to each element.
|
|
954
|
-
* Returns the original array unchanged when either argument is falsy.
|
|
955
|
-
* @param items - The source array to filter. May be `undefined`.
|
|
956
|
-
* @param callback - A predicate function that returns `true` for items to keep.
|
|
957
|
-
* @returns A new filtered array, the original array when no callback is provided,
|
|
958
|
-
* or `undefined` when `items` is `undefined`.
|
|
959
|
-
*/
|
|
960
|
-
transform<T>(items: T[] | undefined, callback: ((item: T) => boolean) | undefined): T[] | undefined;
|
|
961
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SearchCallbackPipe, never>;
|
|
962
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<SearchCallbackPipe, "callback", true>;
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
/**
|
|
966
|
-
* Pure pipe that filters an array of searchable items against a text query.
|
|
967
|
-
* Note: being pure, it re-runs only when the array REFERENCE or the query
|
|
968
|
-
* changes; mutate-in-place updates of the array are not detected.
|
|
969
|
-
*
|
|
970
|
-
* Each item is matched either via its `searchBag.name` property (when present)
|
|
971
|
-
* or by converting the item itself to a lowercase string. The optional `metadata`
|
|
972
|
-
* argument is updated in-place with the total item count and the filtered count,
|
|
973
|
-
* making it usable in the template alongside `*ngFor`.
|
|
974
|
-
*
|
|
975
|
-
* Usage:
|
|
976
|
-
* ```html
|
|
977
|
-
* <div *ngFor="let item of items | search:filterText:meta">...</div>
|
|
978
|
-
* <div>Showing {{ meta.count }} of {{ meta.total }}</div>
|
|
979
|
-
* ```
|
|
980
|
-
*/
|
|
981
|
-
declare class SearchFilterPipe implements PipeTransform {
|
|
982
|
-
/**
|
|
983
|
-
* Filters `items` by performing a case-insensitive substring match against `value`.
|
|
984
|
-
* When `items` or `value` is falsy the original array is returned unfiltered.
|
|
985
|
-
* @param items - The source array to filter. May be `undefined`.
|
|
986
|
-
* @param value - The search text to match against each item. May be `undefined`.
|
|
987
|
-
* @param metadata - Optional object that is updated with `total` and `count` after filtering.
|
|
988
|
-
* @returns The filtered array, the original array when no filter text is given,
|
|
989
|
-
* or `undefined` when `items` is `undefined`.
|
|
990
|
-
*/
|
|
991
|
-
transform(items?: any[], value?: string, metadata?: SearchFilterMetadata): any[] | undefined;
|
|
992
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterPipe, never>;
|
|
993
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<SearchFilterPipe, "search", true>;
|
|
994
|
-
}
|
|
995
|
-
|
|
996
|
-
declare enum DateFormat {
|
|
997
|
-
Short = 1,// dd/mm/yyyy
|
|
998
|
-
Long = 2,// d mmmm yyyy
|
|
999
|
-
LongWithShortMonth = 3,// d mmm yyyy
|
|
1000
|
-
LongWithWeekDay = 4,// wwww, d mmmm yyyy
|
|
1001
|
-
LongWithShortWeekDay = 5,// www, d mmmm yyyy
|
|
1002
|
-
MonthAndYear = 6,// mmm yyyy
|
|
1003
|
-
LongMonthAndYear = 7,// mmmm yyyy
|
|
1004
|
-
WeekDay = 8,// www d
|
|
1005
|
-
LongWeekDay = 9,// wwww d
|
|
1006
|
-
DayAndMonth = 10,// d mmmm
|
|
1007
|
-
ShortUS = 11,// mm/dd/yyyy
|
|
1008
|
-
ShortISO8601 = 12
|
|
1009
|
-
}
|
|
1010
|
-
/**
|
|
1011
|
-
* Key selector with IDE autocomplete and compile-time checking.
|
|
1012
|
-
*
|
|
1013
|
-
* Suggests the string keys of `T` in the editor and flags obvious typos when
|
|
1014
|
-
* `T` is known, while STILL accepting any plain string (the `string & {}`
|
|
1015
|
-
* branch), so existing callers that pass dynamic or untyped keys keep
|
|
1016
|
-
* compiling unchanged.
|
|
1017
|
-
*/
|
|
1018
|
-
type KeyOf<T> = Extract<keyof T, string> | (string & {});
|
|
1019
|
-
interface PasswordStrength {
|
|
1020
|
-
score: number;
|
|
1021
|
-
label?: string;
|
|
1022
|
-
color?: string;
|
|
1023
|
-
suggestions?: string[];
|
|
1024
|
-
isValid: boolean;
|
|
1025
|
-
}
|
|
1026
|
-
declare class SystemUtils {
|
|
1027
|
-
/** Shared collator for locale-aware, case-insensitive string comparison. */
|
|
1028
|
-
private static readonly collator;
|
|
1029
|
-
/**
|
|
1030
|
-
* Array find by key
|
|
1031
|
-
* @param array : the array to scan
|
|
1032
|
-
* @param key : key name
|
|
1033
|
-
* @param value : the value to search for
|
|
1034
|
-
* @returns : the property value or null
|
|
1035
|
-
*/
|
|
1036
|
-
static arrayFindByKey<T>(array: T[] | undefined, key: KeyOf<T>, value: unknown): T | undefined;
|
|
1037
|
-
/**
|
|
1038
|
-
* Array find index by key
|
|
1039
|
-
* @param array : the array to scan
|
|
1040
|
-
* @param key : the key name
|
|
1041
|
-
* @param value : the value to search for
|
|
1042
|
-
* @returns : the array index or -1 if not found
|
|
1043
|
-
*/
|
|
1044
|
-
static arrayFindIndexByKey<T>(array: T[] | undefined, key: KeyOf<T>, value: unknown): number;
|
|
241
|
+
static arrayFindIndexByKey<T>(array: T[] | undefined, key: KeyOf<T>, value: unknown): number;
|
|
1045
242
|
/**
|
|
1046
243
|
* Get a value from and array made of name|value items
|
|
1047
244
|
* @param array : the array to scan
|
|
@@ -1117,13 +314,6 @@ declare class SystemUtils {
|
|
|
1117
314
|
* @returns The string with URLs replaced by clickable links, or `''` when `s` is falsy.
|
|
1118
315
|
*/
|
|
1119
316
|
static replaceAsHtml(s?: string): string;
|
|
1120
|
-
/**
|
|
1121
|
-
* Convert markdown to html
|
|
1122
|
-
* @param markdown : the markdown data
|
|
1123
|
-
* @param escapeHtml : true to escape HTML. Default is false
|
|
1124
|
-
* @returns the html
|
|
1125
|
-
*/
|
|
1126
|
-
static markdownToHtml(markdown: string, escapeHtml?: boolean): string;
|
|
1127
317
|
/**
|
|
1128
318
|
* Compare two names
|
|
1129
319
|
* @param a : name a
|
|
@@ -1289,14 +479,6 @@ declare class SystemUtils {
|
|
|
1289
479
|
* @returns : a valid Date object or undefined
|
|
1290
480
|
*/
|
|
1291
481
|
static parseDate(value?: string | Date, locale?: Locale): Date | undefined;
|
|
1292
|
-
/**
|
|
1293
|
-
* Format a date
|
|
1294
|
-
* @param value : the date or string to format
|
|
1295
|
-
* @param fmt : the DateFormat to use or the string pattern
|
|
1296
|
-
* @param locale : the locale to use (default is IT)
|
|
1297
|
-
* @returns : the formatted string
|
|
1298
|
-
*/
|
|
1299
|
-
static formatDate(value?: Date | string, fmt?: DateFormat | string, locale?: Locale): string;
|
|
1300
482
|
/**
|
|
1301
483
|
* Converts a Date, timestamp or ISO string into a Europe/Rome Date whose JSON serialisation
|
|
1302
484
|
* emits a naive local datetime string ("yyyy-MM-dd'T'HH:mm:ss"), with no timezone designator,
|
|
@@ -1307,6 +489,14 @@ declare class SystemUtils {
|
|
|
1307
489
|
* @returns : a Europe/Rome Date serialising as naive local time, or undefined for empty/invalid input
|
|
1308
490
|
*/
|
|
1309
491
|
static toLocalDate(value?: Date | number | string): Date | undefined;
|
|
492
|
+
/**
|
|
493
|
+
* Format a date
|
|
494
|
+
* @param value : the date or string to format
|
|
495
|
+
* @param fmt : the DateFormat to use or the string pattern
|
|
496
|
+
* @param locale : the locale to use (default is IT)
|
|
497
|
+
* @returns : the formatted string
|
|
498
|
+
*/
|
|
499
|
+
static formatDate(value?: Date | string, fmt?: DateFormat | string, locale?: Locale): string;
|
|
1310
500
|
/**
|
|
1311
501
|
* Update a DateInterval object according to a string
|
|
1312
502
|
* @param value : string value
|
|
@@ -1331,189 +521,679 @@ declare class SystemUtils {
|
|
|
1331
521
|
* @param locale - BCP 47 locale tag (default: `'it-IT'`).
|
|
1332
522
|
* @returns The formatted number string.
|
|
1333
523
|
*/
|
|
1334
|
-
static formatNumber(value: number, decimals?: number, locale?: string): string;
|
|
524
|
+
static formatNumber(value: number, decimals?: number, locale?: string): string;
|
|
525
|
+
/**
|
|
526
|
+
* Formats a number as a currency string using a cached `Intl.NumberFormat`.
|
|
527
|
+
* @param value - The number to format.
|
|
528
|
+
* @param currency - ISO 4217 currency code (default: `'EUR'`).
|
|
529
|
+
* @param decimals - Maximum decimal places (default: `2`).
|
|
530
|
+
* @param locale - BCP 47 locale tag (default: `'it-IT'`).
|
|
531
|
+
* @returns The formatted currency string.
|
|
532
|
+
*/
|
|
533
|
+
static formatCurrency(value: number, currency?: string, decimals?: number, locale?: string): string;
|
|
534
|
+
/**
|
|
535
|
+
* Percent-encodes a string for safe inclusion in a URL.
|
|
536
|
+
* @param value - The string to encode.
|
|
537
|
+
* @returns The encoded string, or `undefined` when `value` is empty.
|
|
538
|
+
*/
|
|
539
|
+
static urlEncode(value: string): string | undefined;
|
|
540
|
+
/**
|
|
541
|
+
* Decodes a percent-encoded URL string, treating `+` as a space.
|
|
542
|
+
* @param value - The encoded string to decode.
|
|
543
|
+
* @returns The decoded string, or `undefined` when `value` is empty or absent.
|
|
544
|
+
*/
|
|
545
|
+
static urlDecode(value?: string): string | undefined;
|
|
546
|
+
/**
|
|
547
|
+
* Reads a query string parameter value from the current page URL.
|
|
548
|
+
* @param name - The parameter name to look up.
|
|
549
|
+
* @returns The decoded parameter value, or `undefined` when absent or running server-side.
|
|
550
|
+
*/
|
|
551
|
+
static getQueryStringValueByName(name: string): string | undefined;
|
|
552
|
+
/**
|
|
553
|
+
* Generate a password
|
|
554
|
+
* @returns : the password string
|
|
555
|
+
*/
|
|
556
|
+
static generatePassword(length?: number): string;
|
|
557
|
+
/**
|
|
558
|
+
* Calculate password strength
|
|
559
|
+
* @param password: the password to evaluate
|
|
560
|
+
* @returns the password strength info
|
|
561
|
+
*/
|
|
562
|
+
static calculatePasswordStrength(password?: string): PasswordStrength;
|
|
563
|
+
/**
|
|
564
|
+
* Check if current browser supports touch
|
|
565
|
+
* @returns : true if the display is touchable
|
|
566
|
+
*/
|
|
567
|
+
static isTouchable(): boolean;
|
|
568
|
+
/**
|
|
569
|
+
* This check will prevent 'window' logic to be executed
|
|
570
|
+
* while executing the server rendering
|
|
571
|
+
* @returns : true if using the browser
|
|
572
|
+
*/
|
|
573
|
+
static isBrowser(): boolean;
|
|
574
|
+
/**
|
|
575
|
+
* Convert folders in a tree of Node object.
|
|
576
|
+
* @param folders : the subfolders group or null to root
|
|
577
|
+
* @returns : a node list
|
|
578
|
+
*/
|
|
579
|
+
static toNodes(folders: INode[]): INode[];
|
|
580
|
+
/**
|
|
581
|
+
* Convert folders in a tree of Node object.
|
|
582
|
+
* @param folders : the children group or null to root
|
|
583
|
+
* @param parent : the parent node
|
|
584
|
+
* @returns : a node list
|
|
585
|
+
*/
|
|
586
|
+
private static _toNodes;
|
|
587
|
+
/**
|
|
588
|
+
* Returns an array of individual power-of-2 flag values that are set in `value`.
|
|
589
|
+
* @param value - The bitmask to decompose.
|
|
590
|
+
* @param max - Upper-bound exponent: checks flags from `1` up to `1 << max` (default: `30`).
|
|
591
|
+
* @returns Array of set flag values, or an empty array when `value` is `0`.
|
|
592
|
+
*/
|
|
593
|
+
static getFlags(value: number, max?: number): number[];
|
|
594
|
+
/** Cache for resolved color luminance results. */
|
|
595
|
+
private static readonly colorLightCache;
|
|
596
|
+
/**
|
|
597
|
+
* Check if a color is light or dark
|
|
598
|
+
* @param color : the color
|
|
599
|
+
* @param minimumLuminance : the lumimance to consider
|
|
600
|
+
* @returns true if the color is light
|
|
601
|
+
*/
|
|
602
|
+
static isColorLight(color: string, minimumLuminance?: number): boolean;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
/**
|
|
606
|
+
* Generic selection model that tracks a set of selected items identified by a lookup field.
|
|
607
|
+
* Wraps Angular CDK's `SelectionModel` and adds lookup-based add/remove logic.
|
|
608
|
+
*
|
|
609
|
+
* @typeParam T - The item type held in the selection.
|
|
610
|
+
* @typeParam V - The type of the lookup key used to identify items.
|
|
611
|
+
*/
|
|
612
|
+
declare class SelectableModel<T, V> {
|
|
613
|
+
/**
|
|
614
|
+
* Emits whenever the selection changes.
|
|
615
|
+
* Carries the affected item, or `undefined` when the whole selection is cleared.
|
|
616
|
+
*
|
|
617
|
+
* Note: kept as `EventEmitter` (instead of a plain RxJS `Subject`) for
|
|
618
|
+
* backward compatibility with existing consumers; `EventEmitter` extends
|
|
619
|
+
* `Subject`, so `.subscribe()`, `pipe(...)` and `takeUntilDestroyed` all
|
|
620
|
+
* work as expected.
|
|
621
|
+
*/
|
|
622
|
+
readonly changed: EventEmitter<T>;
|
|
623
|
+
private readonly _all;
|
|
624
|
+
/**
|
|
625
|
+
* Snapshot of all items currently tracked by this model (selected or previously toggled).
|
|
626
|
+
* Backed by a signal — reads are always up to date.
|
|
627
|
+
*/
|
|
628
|
+
get all(): T[];
|
|
629
|
+
private readonly _current;
|
|
630
|
+
/** The underlying CDK `SelectionModel` (provides `.selected`, `.isSelected`, etc.). */
|
|
631
|
+
get current(): SelectionModel<T>;
|
|
632
|
+
private readonly _lookupFieldName;
|
|
633
|
+
/** Signal that is `true` when at least one item is tracked in the internal list. */
|
|
634
|
+
readonly hasValue: i0.Signal<boolean>;
|
|
635
|
+
/** Signal with the number of items currently tracked in the internal list. */
|
|
636
|
+
readonly count: i0.Signal<number>;
|
|
637
|
+
/** Signal that is `true` when exactly one item is currently selected. */
|
|
638
|
+
readonly selectedOne: i0.Signal<boolean>;
|
|
639
|
+
/** Signal that is `true` when two or more items are currently selected. */
|
|
640
|
+
readonly selectedMany: i0.Signal<boolean>;
|
|
641
|
+
/** Signal that is `true` when at least one element is selected. */
|
|
642
|
+
readonly selectedAny: i0.Signal<boolean>;
|
|
643
|
+
/** Signal that is `true` when no item is currently selected. */
|
|
644
|
+
readonly selectedNone: i0.Signal<boolean>;
|
|
645
|
+
/** Signal with the first currently selected item, or `undefined` when none is selected. */
|
|
646
|
+
readonly first: i0.Signal<T>;
|
|
647
|
+
/**
|
|
648
|
+
* @param allowMultiSelect - When `true` (default), multiple items can be selected simultaneously.
|
|
649
|
+
* @param lookupFieldName - Name of the field used as the unique key when searching the internal list
|
|
650
|
+
* (default: `'id'`). Keys of `T` are autocompleted; plain strings remain accepted.
|
|
651
|
+
*/
|
|
652
|
+
constructor(allowMultiSelect?: boolean, lookupFieldName?: KeyOf<T>);
|
|
653
|
+
/**
|
|
654
|
+
* Toggles the CDK selection state of an item that already exists in the tracked list.
|
|
655
|
+
* Has no effect when `lookupValue` does not match any tracked item.
|
|
656
|
+
* @param item - The item whose selection state should be toggled.
|
|
657
|
+
* @param lookupValue - The key value used to locate the item in the internal list.
|
|
658
|
+
*/
|
|
659
|
+
updateCurrent(item: T, lookupValue: V): void;
|
|
660
|
+
/**
|
|
661
|
+
* Toggles an item in both the internal list and the CDK selection.
|
|
662
|
+
* Adds the item when it is not yet tracked; removes it when it is.
|
|
663
|
+
* @param item - The item to toggle.
|
|
664
|
+
* @param lookupValue - The key value used to locate or register the item.
|
|
665
|
+
*/
|
|
666
|
+
toggle(item: T, lookupValue?: V): void;
|
|
667
|
+
/**
|
|
668
|
+
* Adds an item to the internal list (when not already present) and marks it as selected.
|
|
669
|
+
* @param item - The item to select.
|
|
670
|
+
* @param lookupValue - The key value used to locate or register the item.
|
|
671
|
+
*/
|
|
672
|
+
select(item: T, lookupValue?: V): void;
|
|
673
|
+
/**
|
|
674
|
+
* Removes an item from the internal list and deselects it in the CDK model.
|
|
675
|
+
* Has no effect when the item is not currently tracked.
|
|
676
|
+
* @param item - The item to deselect.
|
|
677
|
+
* @param lookupValue - The key value used to locate the item in the internal list.
|
|
678
|
+
*/
|
|
679
|
+
deselect(item: T, lookupValue?: V): void;
|
|
680
|
+
/**
|
|
681
|
+
* Deselects all items whose lookup key is contained in `lookupValues`.
|
|
682
|
+
* @param lookupValues - Array of key values identifying the items to deselect.
|
|
683
|
+
*/
|
|
684
|
+
deselectByValues(lookupValues: V[]): void;
|
|
685
|
+
/**
|
|
686
|
+
* Runs `clearFunc` against every currently selected item, then clears the CDK selection.
|
|
687
|
+
* The internal tracked list is **not** affected; only the CDK selection is cleared.
|
|
688
|
+
* @param clearFunc - Callback invoked for each currently selected item before clearing.
|
|
689
|
+
*/
|
|
690
|
+
clearCurrent(clearFunc: (item: T) => void): void;
|
|
691
|
+
/**
|
|
692
|
+
* Clears both the internal tracked list and the CDK selection.
|
|
693
|
+
*/
|
|
694
|
+
clear(): void;
|
|
695
|
+
/**
|
|
696
|
+
* Returns `true` when the item identified by `lookupValue` is present in the tracked list.
|
|
697
|
+
* @param lookupValue - The key value to look up.
|
|
698
|
+
*/
|
|
699
|
+
isSelected(lookupValue?: V): boolean;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
/**
|
|
703
|
+
* Directive that moves browser focus to the host element after the first render cycle.
|
|
704
|
+
* Apply `autoFocus` to any focusable element to set focus automatically on initialisation.
|
|
705
|
+
*/
|
|
706
|
+
declare class AutoFocusDirective {
|
|
707
|
+
private readonly elementRef;
|
|
708
|
+
constructor();
|
|
709
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AutoFocusDirective, never>;
|
|
710
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AutoFocusDirective, "[autoFocus]", never, {}, {}, never, never, true, never>;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* Directive that listens to `keyup` events on a date input and debounces changes
|
|
715
|
+
* into a {@link DateInterval} model, converting shorthand strings (e.g. "d/m") to dates.
|
|
716
|
+
* Apply `[dateIntervalChange]="interval"` to the host `<input>` element.
|
|
717
|
+
*/
|
|
718
|
+
declare class DateIntervalChangeDirective {
|
|
719
|
+
/** The date interval model to update when the input value changes. */
|
|
720
|
+
readonly dateIntervalChange: i0.InputSignal<DateInterval>;
|
|
721
|
+
/** When `true`, the directive updates the interval's end date; otherwise the start date. */
|
|
722
|
+
readonly end: i0.InputSignal<boolean>;
|
|
723
|
+
private readonly subject;
|
|
724
|
+
private readonly destroyRef;
|
|
725
|
+
constructor();
|
|
726
|
+
/**
|
|
727
|
+
* Handles `keydown` events on the host element.
|
|
728
|
+
* The space key must be blocked HERE: by the time `keyup` fires the character
|
|
729
|
+
* has already been inserted into the input, so `preventDefault` on `keyup`
|
|
730
|
+
* cannot stop it.
|
|
731
|
+
* @param e - The keyboard event emitted by the host input.
|
|
732
|
+
*/
|
|
733
|
+
onKeydown(e: KeyboardEvent): void;
|
|
734
|
+
/**
|
|
735
|
+
* Handles `keyup` events on the host element and forwards them to the debounce pipeline.
|
|
736
|
+
* @param e - The keyboard event emitted by the host input.
|
|
737
|
+
*/
|
|
738
|
+
onKeyup(e: KeyboardEvent): void;
|
|
739
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DateIntervalChangeDirective, never>;
|
|
740
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DateIntervalChangeDirective, "[dateIntervalChange]", never, { "dateIntervalChange": { "alias": "dateIntervalChange"; "required": false; "isSignal": true; }; "end": { "alias": "end"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
/**
|
|
744
|
+
* Directive that copies a string payload to the clipboard when the host element is clicked.
|
|
745
|
+
* Bind `[copyClipboard]="text"` to provide the content to copy and listen to `(copied)` for confirmation.
|
|
746
|
+
*/
|
|
747
|
+
declare class CopyClipboardDirective {
|
|
748
|
+
/** The text to copy to the clipboard. Bound via the `copyClipboard` attribute. */
|
|
749
|
+
readonly payload: i0.InputSignal<string>;
|
|
750
|
+
/** Emits the copied text after a successful copy operation. */
|
|
751
|
+
readonly copied: i0.OutputEmitterRef<string>;
|
|
752
|
+
/**
|
|
753
|
+
* Handles click events on the host element and copies the payload to the clipboard.
|
|
754
|
+
* Emits `copied` with the copied text on success.
|
|
755
|
+
* @param e - The mouse click event.
|
|
756
|
+
*/
|
|
757
|
+
onClick(e: MouseEvent): void;
|
|
758
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CopyClipboardDirective, never>;
|
|
759
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CopyClipboardDirective, "[copyClipboard]", never, { "payload": { "alias": "copyClipboard"; "required": false; "isSignal": true; }; }, { "copied": "copied"; }, never, never, true, never>;
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
/**
|
|
763
|
+
* Directive that validates a semicolon-separated list of email addresses.
|
|
764
|
+
* Apply `emails` to a text input containing one or more addresses separated by `;`.
|
|
765
|
+
*/
|
|
766
|
+
declare class EmailsValidatorDirective implements Validator {
|
|
767
|
+
/**
|
|
768
|
+
* Validates each address in a semicolon-separated email list.
|
|
769
|
+
* Returns `null` when the control is empty.
|
|
770
|
+
* @param control - The form control to validate.
|
|
771
|
+
*/
|
|
772
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
773
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EmailsValidatorDirective, never>;
|
|
774
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<EmailsValidatorDirective, "[emails]", never, {}, {}, never, never, true, never>;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
/**
|
|
778
|
+
* Directive that validates that the host control's value equals the value of another control.
|
|
779
|
+
* Bind `[equals]="otherControl"`.
|
|
780
|
+
*
|
|
781
|
+
* The host control is re-validated whenever the OTHER control's value changes:
|
|
782
|
+
* without this, typing a new password AFTER the confirmation field was filled
|
|
783
|
+
* left the form incorrectly valid (the classic password/confirm bug).
|
|
784
|
+
*
|
|
785
|
+
* IMPORTANT (reciprocal-binding safety): the re-validation triggered from the
|
|
786
|
+
* other control's `valueChanges` runs with `{ emitEvent: false }`. Calling
|
|
787
|
+
* Angular's `onValidatorChange` instead would re-emit valueChanges, so a
|
|
788
|
+
* reciprocal setup (A [equals]=B and B [equals]=A) would overflow the stack.
|
|
789
|
+
*/
|
|
790
|
+
declare class EqualsValidatorDirective implements Validator {
|
|
791
|
+
/** The control whose value must match the host control's value. */
|
|
792
|
+
readonly equals: i0.InputSignal<AbstractControl<any, any, any>>;
|
|
793
|
+
/** The host control, captured on the first validate() call. */
|
|
794
|
+
private hostControl?;
|
|
795
|
+
/** Subscription to the other control's valueChanges. */
|
|
796
|
+
private subscription?;
|
|
797
|
+
constructor();
|
|
1335
798
|
/**
|
|
1336
|
-
*
|
|
1337
|
-
*
|
|
1338
|
-
* @param
|
|
1339
|
-
* @
|
|
1340
|
-
* @param locale - BCP 47 locale tag (default: `'it-IT'`).
|
|
1341
|
-
* @returns The formatted currency string.
|
|
799
|
+
* Validates that the host control value equals the bound control's value.
|
|
800
|
+
* Returns `null` (valid) when no control is bound.
|
|
801
|
+
* @param control - The form control to validate.
|
|
802
|
+
* @returns `null` when valid, `{ equals: ... }` otherwise.
|
|
1342
803
|
*/
|
|
1343
|
-
|
|
804
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
805
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EqualsValidatorDirective, never>;
|
|
806
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<EqualsValidatorDirective, "[equals]", never, { "equals": { "alias": "equals"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* Directive that validates a file size against configurable minimum and maximum bounds.
|
|
811
|
+
* Bind `[fileSize]` together with `[size]="fileSizeInMb"`, `[maxSizeMb]`, and `[minSizeMb]`.
|
|
812
|
+
*/
|
|
813
|
+
declare class FileSizeValidatorDirective implements Validator {
|
|
814
|
+
/** Maximum allowed file size in megabytes. Defaults to 5. */
|
|
815
|
+
readonly maxSizeMb: i0.InputSignal<number>;
|
|
816
|
+
/** Minimum required file size in megabytes. Defaults to 0. */
|
|
817
|
+
readonly minSizeMb: i0.InputSignal<number>;
|
|
818
|
+
/** The actual file size in megabytes to validate against the bounds. */
|
|
819
|
+
readonly size: i0.InputSignal<number>;
|
|
1344
820
|
/**
|
|
1345
|
-
*
|
|
1346
|
-
*
|
|
1347
|
-
* @
|
|
821
|
+
* Validates that the bound file size falls within the configured min/max range.
|
|
822
|
+
* Returns `null` when no control value is present.
|
|
823
|
+
* @param control - The form control to validate.
|
|
1348
824
|
*/
|
|
1349
|
-
|
|
825
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
826
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FileSizeValidatorDirective, never>;
|
|
827
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FileSizeValidatorDirective, "[fileSize]", never, { "maxSizeMb": { "alias": "maxSizeMb"; "required": false; "isSignal": true; }; "minSizeMb": { "alias": "minSizeMb"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
/**
|
|
831
|
+
* Directive that validates a control value as a GUID / UUID string.
|
|
832
|
+
* Apply `guid` to a text input that expects a valid UUID.
|
|
833
|
+
*/
|
|
834
|
+
declare class GuidValidatorDirective implements Validator {
|
|
1350
835
|
/**
|
|
1351
|
-
*
|
|
1352
|
-
*
|
|
1353
|
-
* @
|
|
836
|
+
* Validates that the control value is a well-formed GUID / UUID.
|
|
837
|
+
* Returns `null` when the control is empty.
|
|
838
|
+
* @param control - The form control to validate.
|
|
1354
839
|
*/
|
|
1355
|
-
|
|
840
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
841
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GuidValidatorDirective, never>;
|
|
842
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<GuidValidatorDirective, "[guid]", never, {}, {}, never, never, true, never>;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
/**
|
|
846
|
+
* Directive that validates that a control value does not exceed a maximum word count.
|
|
847
|
+
* Bind `[maxTerms]="10"` to allow at most 10 whitespace-separated terms.
|
|
848
|
+
*/
|
|
849
|
+
declare class MaxTermsValidatorDirective implements Validator {
|
|
850
|
+
/** The maximum number of whitespace-separated terms allowed. */
|
|
851
|
+
readonly maxTerms: i0.InputSignal<number>;
|
|
1356
852
|
/**
|
|
1357
|
-
*
|
|
1358
|
-
*
|
|
1359
|
-
* @
|
|
853
|
+
* Validates that the control value contains no more than the configured number of terms.
|
|
854
|
+
* Returns `null` when the control is empty.
|
|
855
|
+
* @param control - The form control to validate.
|
|
1360
856
|
*/
|
|
1361
|
-
|
|
857
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
858
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MaxTermsValidatorDirective, never>;
|
|
859
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MaxTermsValidatorDirective, "[maxTerms]", never, { "maxTerms": { "alias": "maxTerms"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* Directive that validates that a string control value is not blank (whitespace-only).
|
|
864
|
+
* Apply `notEmpty` to a text input where non-blank content is required.
|
|
865
|
+
*/
|
|
866
|
+
declare class NotEmptyValidatorDirective implements Validator {
|
|
1362
867
|
/**
|
|
1363
|
-
*
|
|
1364
|
-
*
|
|
868
|
+
* Validates that the control value is a non-blank string.
|
|
869
|
+
* Returns `null` when the control is empty or not a string.
|
|
870
|
+
* @param control - The form control to validate.
|
|
1365
871
|
*/
|
|
1366
|
-
|
|
872
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
873
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotEmptyValidatorDirective, never>;
|
|
874
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NotEmptyValidatorDirective, "[notEmpty]", never, {}, {}, never, never, true, never>;
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
/**
|
|
878
|
+
* Directive that validates that the host control's value is different from another control's value.
|
|
879
|
+
* Bind `[notEqual]="otherControl"`.
|
|
880
|
+
*
|
|
881
|
+
* The host control is re-validated whenever the OTHER control's value changes,
|
|
882
|
+
* so editing either field keeps both error states consistent.
|
|
883
|
+
*
|
|
884
|
+
* IMPORTANT (reciprocal-binding safety): the re-validation triggered from the
|
|
885
|
+
* other control's `valueChanges` is run with `{ emitEvent: false }`. Using
|
|
886
|
+
* Angular's `onValidatorChange` here instead would call `host.updateValueAndValidity()`
|
|
887
|
+
* WITH events, so a reciprocal setup (A [notEqual]=B and B [notEqual]=A) would
|
|
888
|
+
* ping-pong valueChanges between the two controls and overflow the stack.
|
|
889
|
+
*/
|
|
890
|
+
declare class NotEqualValidatorDirective implements Validator {
|
|
891
|
+
/** The control whose value must differ from the host control's value. */
|
|
892
|
+
readonly notEqual: i0.InputSignal<AbstractControl<any, any, any>>;
|
|
893
|
+
/** The host control, captured on the first validate() call. */
|
|
894
|
+
private hostControl?;
|
|
895
|
+
/** Subscription to the other control's valueChanges. */
|
|
896
|
+
private subscription?;
|
|
897
|
+
constructor();
|
|
1367
898
|
/**
|
|
1368
|
-
*
|
|
1369
|
-
*
|
|
1370
|
-
*
|
|
899
|
+
* Validates that the host control value is not equal to the bound control's value.
|
|
900
|
+
* Also clears the `notequal` error on the other control when the host becomes valid.
|
|
901
|
+
* Returns `null` (valid) when no control is bound.
|
|
902
|
+
* @param control - The form control to validate.
|
|
903
|
+
* @returns `null` when valid, `{ notequal: true }` otherwise.
|
|
1371
904
|
*/
|
|
1372
|
-
|
|
905
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
906
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotEqualValidatorDirective, never>;
|
|
907
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NotEqualValidatorDirective, "[notEqual]", never, { "notEqual": { "alias": "notEqual"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
/**
|
|
911
|
+
* Directive that validates that a control value is not a future date.
|
|
912
|
+
* Apply `notFuture` to a text input that expects a date on or before today.
|
|
913
|
+
*/
|
|
914
|
+
declare class NotFutureValidatorDirective implements Validator {
|
|
1373
915
|
/**
|
|
1374
|
-
*
|
|
1375
|
-
*
|
|
916
|
+
* Validates that the control value represents a date that is not in the future.
|
|
917
|
+
* Returns `null` when the control is empty.
|
|
918
|
+
* @param control - The form control to validate.
|
|
1376
919
|
*/
|
|
1377
|
-
|
|
920
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
921
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotFutureValidatorDirective, never>;
|
|
922
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NotFutureValidatorDirective, "[notFuture]", never, {}, {}, never, never, true, never>;
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
/**
|
|
926
|
+
* Directive that validates a control value as a sufficiently strong password.
|
|
927
|
+
* Apply `password` to a password input.
|
|
928
|
+
*/
|
|
929
|
+
declare class PasswordValidatorDirective implements Validator {
|
|
1378
930
|
/**
|
|
1379
|
-
*
|
|
1380
|
-
*
|
|
1381
|
-
* @returns : true if using the browser
|
|
931
|
+
* Validates that the control value meets the minimum password-strength requirements.
|
|
932
|
+
* @param control - The form control to validate.
|
|
1382
933
|
*/
|
|
1383
|
-
|
|
934
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
935
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PasswordValidatorDirective, never>;
|
|
936
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PasswordValidatorDirective, "[password]", never, {}, {}, never, never, true, never>;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
/**
|
|
940
|
+
* Directive that removes focus from the host element after it is clicked,
|
|
941
|
+
* preventing the browser from keeping a visible focus ring post-interaction.
|
|
942
|
+
* Apply `removeFocus` to any focusable element (e.g. a button).
|
|
943
|
+
*/
|
|
944
|
+
declare class RemoveFocusDirective {
|
|
945
|
+
private readonly elementRef;
|
|
1384
946
|
/**
|
|
1385
|
-
*
|
|
1386
|
-
*
|
|
1387
|
-
* @returns : a node list
|
|
947
|
+
* Handles click events on the host element and blurs it on the next event-loop tick
|
|
948
|
+
* so that the click action completes before focus is removed.
|
|
1388
949
|
*/
|
|
1389
|
-
|
|
950
|
+
onClick(): void;
|
|
951
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RemoveFocusDirective, never>;
|
|
952
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RemoveFocusDirective, "[removeFocus]", never, {}, {}, never, never, true, never>;
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
/**
|
|
956
|
+
* Directive that validates a control value as a parseable SQL-compatible date string.
|
|
957
|
+
* Apply `sqlDate` to a text input that expects a date after year 1750.
|
|
958
|
+
*/
|
|
959
|
+
declare class SqlDateValidatorDirective implements Validator {
|
|
1390
960
|
/**
|
|
1391
|
-
*
|
|
1392
|
-
*
|
|
1393
|
-
* @param
|
|
1394
|
-
* @returns : a node list
|
|
961
|
+
* Validates that the control value can be parsed as a date after 1750.
|
|
962
|
+
* Returns `null` when the control is empty.
|
|
963
|
+
* @param control - The form control to validate.
|
|
1395
964
|
*/
|
|
1396
|
-
|
|
965
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
966
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SqlDateValidatorDirective, never>;
|
|
967
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SqlDateValidatorDirective, "[sqlDate]", never, {}, {}, never, never, true, never>;
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
/**
|
|
971
|
+
* Directive that validates a time string against optional allowed time slot ranges.
|
|
972
|
+
* Bind `[time]` and optionally `[slots]="'08:00-12:00|14:00-18:00'"` (pipe-separated ranges).
|
|
973
|
+
*/
|
|
974
|
+
declare class TimeValidatorDirective implements Validator {
|
|
975
|
+
/** Optional pipe-separated list of allowed time ranges, e.g. `"08:00-12:00|14:00-18:00"`. */
|
|
976
|
+
readonly slots: i0.InputSignal<string>;
|
|
1397
977
|
/**
|
|
1398
|
-
*
|
|
1399
|
-
*
|
|
1400
|
-
* @param
|
|
1401
|
-
* @returns Array of set flag values, or an empty array when `value` is `0`.
|
|
978
|
+
* Parses a `"HH:MM"` time string into a comparable integer (e.g. `"09:30"` -> `930`).
|
|
979
|
+
* Returns `-1` when the string is not a valid time.
|
|
980
|
+
* @param value - The time string to parse.
|
|
1402
981
|
*/
|
|
1403
|
-
|
|
1404
|
-
/** Cache for resolved color luminance results. */
|
|
1405
|
-
private static readonly colorLightCache;
|
|
982
|
+
private getTime;
|
|
1406
983
|
/**
|
|
1407
|
-
*
|
|
1408
|
-
*
|
|
1409
|
-
*
|
|
1410
|
-
* @
|
|
984
|
+
* Validates that the control value is a valid time string and, when slots are configured,
|
|
985
|
+
* that it falls within at least one of the allowed ranges.
|
|
986
|
+
* Returns `null` when the control is empty.
|
|
987
|
+
* @param control - The form control to validate.
|
|
1411
988
|
*/
|
|
1412
|
-
|
|
989
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
990
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TimeValidatorDirective, never>;
|
|
991
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TimeValidatorDirective, "[time]", never, { "slots": { "alias": "slots"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1413
992
|
}
|
|
1414
993
|
|
|
1415
|
-
|
|
994
|
+
/**
|
|
995
|
+
* Directive that validates a control value as a well-formed URL.
|
|
996
|
+
* Apply `url` to a text input that expects a URL.
|
|
997
|
+
*/
|
|
998
|
+
declare class UrlValidatorDirective implements Validator {
|
|
1416
999
|
/**
|
|
1417
|
-
*
|
|
1000
|
+
* Validates that the control value is a well-formed URL.
|
|
1001
|
+
* Returns `null` (valid) when the control is empty.
|
|
1002
|
+
* @param control - The form control to validate.
|
|
1418
1003
|
*/
|
|
1419
|
-
|
|
1420
|
-
|
|
1004
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
1005
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UrlValidatorDirective, never>;
|
|
1006
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<UrlValidatorDirective, "[url]", never, {}, {}, never, never, true, never>;
|
|
1007
|
+
}
|
|
1421
1008
|
|
|
1422
1009
|
/**
|
|
1423
|
-
*
|
|
1424
|
-
*
|
|
1425
|
-
*
|
|
1426
|
-
* @typeParam T - The item type held in the selection.
|
|
1427
|
-
* @typeParam V - The type of the lookup key used to identify items.
|
|
1010
|
+
* Directive that validates a control using the host object's `isValid()` method
|
|
1011
|
+
* or a boolean expression passed via `[validIf]`.
|
|
1428
1012
|
*/
|
|
1429
|
-
declare class
|
|
1430
|
-
/**
|
|
1431
|
-
|
|
1432
|
-
* Carries the affected item, or `undefined` when the whole selection is cleared.
|
|
1433
|
-
*
|
|
1434
|
-
* Note: kept as `EventEmitter` (instead of a plain RxJS `Subject`) for
|
|
1435
|
-
* backward compatibility with existing consumers; `EventEmitter` extends
|
|
1436
|
-
* `Subject`, so `.subscribe()`, `pipe(...)` and `takeUntilDestroyed` all
|
|
1437
|
-
* work as expected.
|
|
1438
|
-
*/
|
|
1439
|
-
readonly changed: EventEmitter<T>;
|
|
1440
|
-
private readonly _all;
|
|
1441
|
-
/**
|
|
1442
|
-
* Snapshot of all items currently tracked by this model (selected or previously toggled).
|
|
1443
|
-
* Backed by a signal — reads are always up to date.
|
|
1444
|
-
*/
|
|
1445
|
-
get all(): T[];
|
|
1446
|
-
private readonly _current;
|
|
1447
|
-
/** The underlying CDK `SelectionModel` (provides `.selected`, `.isSelected`, etc.). */
|
|
1448
|
-
get current(): SelectionModel<T>;
|
|
1449
|
-
private readonly _lookupFieldName;
|
|
1450
|
-
/** Signal that is `true` when at least one item is tracked in the internal list. */
|
|
1451
|
-
readonly hasValue: i0.Signal<boolean>;
|
|
1452
|
-
/** Signal with the number of items currently tracked in the internal list. */
|
|
1453
|
-
readonly count: i0.Signal<number>;
|
|
1454
|
-
/** Signal that is `true` when exactly one item is currently selected. */
|
|
1455
|
-
readonly selectedOne: i0.Signal<boolean>;
|
|
1456
|
-
/** Signal that is `true` when two or more items are currently selected. */
|
|
1457
|
-
readonly selectedMany: i0.Signal<boolean>;
|
|
1458
|
-
/** Signal that is `true` when no item is currently selected. */
|
|
1459
|
-
readonly selectedNone: i0.Signal<boolean>;
|
|
1460
|
-
/** Signal with the first currently selected item, or `undefined` when none is selected. */
|
|
1461
|
-
readonly selectedFirst: i0.Signal<T>;
|
|
1462
|
-
/** Signal with a snapshot of all currently selected items. */
|
|
1463
|
-
readonly selectedAll: i0.Signal<T[]>;
|
|
1013
|
+
declare class ValidIfDirective implements Validator {
|
|
1014
|
+
/** When `true`, the control is considered valid regardless of the bound value. */
|
|
1015
|
+
readonly validIf: i0.InputSignal<boolean>;
|
|
1464
1016
|
/**
|
|
1465
|
-
*
|
|
1466
|
-
* @param
|
|
1467
|
-
* (default: `'id'`). Keys of `T` are autocompleted; plain strings remain accepted.
|
|
1017
|
+
* Validates the control value against a boolean flag or the value's own `isValid()` method.
|
|
1018
|
+
* @param control - The form control to validate.
|
|
1468
1019
|
*/
|
|
1469
|
-
|
|
1020
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
1021
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ValidIfDirective, never>;
|
|
1022
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ValidIfDirective, "[validIf]", never, { "validIf": { "alias": "validIf"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
/**
|
|
1026
|
+
* Directive that delegates validation to an externally provided validator function.
|
|
1027
|
+
* Bind `[validator]="myFn"` where `myFn` is `(c: AbstractControl) => ValidationErrors | null`.
|
|
1028
|
+
*/
|
|
1029
|
+
declare class ValidatorDirective implements Validator {
|
|
1030
|
+
/** The custom validator function to apply. */
|
|
1031
|
+
readonly validator: i0.InputSignal<(control: AbstractControl) => ValidationErrors | null>;
|
|
1470
1032
|
/**
|
|
1471
|
-
*
|
|
1472
|
-
*
|
|
1473
|
-
* @param
|
|
1474
|
-
* @param lookupValue - The key value used to locate the item in the internal list.
|
|
1033
|
+
* Invokes the provided validator function against the given control.
|
|
1034
|
+
* Returns `null` (valid) when no function is bound.
|
|
1035
|
+
* @param control - The form control to validate.
|
|
1475
1036
|
*/
|
|
1476
|
-
|
|
1037
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
1038
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ValidatorDirective, never>;
|
|
1039
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ValidatorDirective, "[validator]", never, { "validator": { "alias": "validator"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
/**
|
|
1043
|
+
* Pipe that converts plain-text newlines (`\r\n`, `\r`, `\n`) to HTML `<br>` tags
|
|
1044
|
+
* and marks the result as trusted HTML so Angular does not escape it.
|
|
1045
|
+
*
|
|
1046
|
+
* Usage: `{{ text | formatHtml }}`
|
|
1047
|
+
*/
|
|
1048
|
+
declare class FormatHtmlPipe implements PipeTransform {
|
|
1049
|
+
private readonly sanitizer;
|
|
1477
1050
|
/**
|
|
1478
|
-
*
|
|
1479
|
-
*
|
|
1480
|
-
* @param
|
|
1481
|
-
* @
|
|
1051
|
+
* Transforms a plain-text string into sanitized HTML by replacing newline characters
|
|
1052
|
+
* with `<br>` tags.
|
|
1053
|
+
* @param value - The input string to transform. Treated as an empty string when `undefined`.
|
|
1054
|
+
* @returns A `SafeHtml` value that can be rendered with `[innerHTML]`.
|
|
1482
1055
|
*/
|
|
1483
|
-
|
|
1056
|
+
transform(value?: string): SafeHtml;
|
|
1057
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormatHtmlPipe, never>;
|
|
1058
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<FormatHtmlPipe, "formatHtml", true>;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
/**
|
|
1062
|
+
* General-purpose formatting pipe that converts a raw value to a locale-aware string
|
|
1063
|
+
* based on the specified format type.
|
|
1064
|
+
*
|
|
1065
|
+
* Supported types: `'date'` / `'D'`, `'currency'` / `'C'`, `'number'` / `'N'`,
|
|
1066
|
+
* `'number0'` / `'N0'`, `'percentage'` / `'P'`.
|
|
1067
|
+
*
|
|
1068
|
+
* Usage: `{{ value | format:'currency' }}`
|
|
1069
|
+
*/
|
|
1070
|
+
declare class FormatPipe implements PipeTransform {
|
|
1071
|
+
/** Shared formatters: building an `Intl.NumberFormat` per call is expensive. */
|
|
1072
|
+
private static readonly currencyFormat;
|
|
1073
|
+
private static readonly numberFormat;
|
|
1074
|
+
private static readonly number0Format;
|
|
1075
|
+
private static readonly percentFormat;
|
|
1484
1076
|
/**
|
|
1485
|
-
*
|
|
1486
|
-
*
|
|
1487
|
-
* @param
|
|
1077
|
+
* Formats a value according to the specified type and optional pattern.
|
|
1078
|
+
* Returns `undefined` when the value is `null` or `undefined`, or when the type is unrecognised.
|
|
1079
|
+
* @param value - The raw value to format.
|
|
1080
|
+
* @param type - The format type identifier (default: `'date'`).
|
|
1081
|
+
* @param pattern - The date pattern used when `type` is `'date'` (default: `'dd/MM/yyyy'`).
|
|
1082
|
+
* @returns A formatted string, or `undefined` when the value cannot be formatted.
|
|
1488
1083
|
*/
|
|
1489
|
-
|
|
1084
|
+
transform(value?: unknown, type?: string, pattern?: string): string | undefined;
|
|
1085
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormatPipe, never>;
|
|
1086
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<FormatPipe, "format", true>;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
/**
|
|
1090
|
+
* Pipe that applies a global regex replacement on a string and returns the result
|
|
1091
|
+
* as sanitized HTML. When `regexValue` is `'\n'` and no `replaceValue` is given,
|
|
1092
|
+
* newlines are replaced with `<br>` tags.
|
|
1093
|
+
*
|
|
1094
|
+
* Usage: `{{ text | replace:'\n':'' }}`
|
|
1095
|
+
*/
|
|
1096
|
+
declare class ReplacePipe implements PipeTransform {
|
|
1097
|
+
private readonly sanitizer;
|
|
1490
1098
|
/**
|
|
1491
|
-
*
|
|
1492
|
-
*
|
|
1493
|
-
* @param
|
|
1494
|
-
* @param
|
|
1099
|
+
* Replaces all occurrences of `regexValue` in `value` with `replaceValue`.
|
|
1100
|
+
* Returns `undefined` when `value` is empty or `undefined`.
|
|
1101
|
+
* @param value - The source string to process.
|
|
1102
|
+
* @param regexValue - The regex pattern string to match (applied with the global flag).
|
|
1103
|
+
* @param replaceValue - The replacement string. Defaults to `'<br>'` when `regexValue` is `'\n'` and this is falsy.
|
|
1104
|
+
* @returns A `SafeHtml` value with all matches replaced, or `undefined` when the input is empty.
|
|
1495
1105
|
*/
|
|
1496
|
-
|
|
1106
|
+
transform(value: string | undefined, regexValue: string, replaceValue?: string): SafeHtml | undefined;
|
|
1107
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ReplacePipe, never>;
|
|
1108
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<ReplacePipe, "replace", true>;
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* Pipe that marks an HTML string as trusted so Angular does not escape it when
|
|
1113
|
+
* bound via `[innerHTML]`.
|
|
1114
|
+
*
|
|
1115
|
+
* Usage: `<div [innerHTML]="html | safeHtml"></div>`
|
|
1116
|
+
*/
|
|
1117
|
+
declare class SafeHtmlPipe implements PipeTransform {
|
|
1118
|
+
private readonly sanitizer;
|
|
1497
1119
|
/**
|
|
1498
|
-
*
|
|
1499
|
-
* @param
|
|
1120
|
+
* Bypasses Angular's HTML sanitization and returns a `SafeHtml` instance.
|
|
1121
|
+
* @param value - The raw HTML string to trust. Treated as an empty string when `undefined`.
|
|
1122
|
+
* @returns A `SafeHtml` value that can be bound to `[innerHTML]` without escaping.
|
|
1500
1123
|
*/
|
|
1501
|
-
|
|
1124
|
+
transform(value?: string): SafeHtml;
|
|
1125
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SafeHtmlPipe, never>;
|
|
1126
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SafeHtmlPipe, "safeHtml", true>;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
* Pipe that marks a URL string as a trusted resource URL so Angular does not block it
|
|
1131
|
+
* when bound to attributes such as `[src]` or `[href]` on iframes, objects, or embeds.
|
|
1132
|
+
*
|
|
1133
|
+
* Usage: `<iframe [src]="url | safeUrl"></iframe>`
|
|
1134
|
+
*/
|
|
1135
|
+
declare class SafeUrlPipe implements PipeTransform {
|
|
1136
|
+
private readonly sanitizer;
|
|
1502
1137
|
/**
|
|
1503
|
-
*
|
|
1504
|
-
* The
|
|
1505
|
-
* @
|
|
1138
|
+
* Bypasses Angular's resource-URL sanitization and returns a `SafeResourceUrl` instance.
|
|
1139
|
+
* @param value - The URL string to trust. Treated as an empty string when `undefined`.
|
|
1140
|
+
* @returns A `SafeResourceUrl` that can be bound to resource URL attributes without blocking.
|
|
1506
1141
|
*/
|
|
1507
|
-
|
|
1142
|
+
transform(value?: string): SafeResourceUrl;
|
|
1143
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SafeUrlPipe, never>;
|
|
1144
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SafeUrlPipe, "safeUrl", true>;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
/**
|
|
1148
|
+
* Impure pipe that filters an array using a caller-provided predicate function.
|
|
1149
|
+
* Because the pipe is impure it re-evaluates on every change-detection cycle,
|
|
1150
|
+
* which is necessary when the predicate's captured state changes.
|
|
1151
|
+
*
|
|
1152
|
+
* Usage: `*ngFor="let item of items | callback:myFilter"`
|
|
1153
|
+
*/
|
|
1154
|
+
declare class SearchCallbackPipe implements PipeTransform {
|
|
1508
1155
|
/**
|
|
1509
|
-
*
|
|
1156
|
+
* Filters `items` by applying `callback` to each element.
|
|
1157
|
+
* Returns the original array unchanged when either argument is falsy.
|
|
1158
|
+
* @param items - The source array to filter. May be `undefined`.
|
|
1159
|
+
* @param callback - A predicate function that returns `true` for items to keep.
|
|
1160
|
+
* @returns A new filtered array, the original array when no callback is provided,
|
|
1161
|
+
* or `undefined` when `items` is `undefined`.
|
|
1510
1162
|
*/
|
|
1511
|
-
|
|
1163
|
+
transform<T>(items: T[] | undefined, callback: ((item: T) => boolean) | undefined): T[] | undefined;
|
|
1164
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SearchCallbackPipe, never>;
|
|
1165
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SearchCallbackPipe, "callback", true>;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
/**
|
|
1169
|
+
* Pure pipe that filters an array of searchable items against a text query.
|
|
1170
|
+
* Note: being pure, it re-runs only when the array REFERENCE or the query
|
|
1171
|
+
* changes; mutate-in-place updates of the array are not detected.
|
|
1172
|
+
*
|
|
1173
|
+
* Each item is matched either via its `searchBag.name` property (when present)
|
|
1174
|
+
* or by converting the item itself to a lowercase string. The optional `metadata`
|
|
1175
|
+
* argument is updated in-place with the total item count and the filtered count,
|
|
1176
|
+
* making it usable in the template alongside `*ngFor`.
|
|
1177
|
+
*
|
|
1178
|
+
* Usage:
|
|
1179
|
+
* ```html
|
|
1180
|
+
* <div *ngFor="let item of items | search:filterText:meta">...</div>
|
|
1181
|
+
* <div>Showing {{ meta.count }} of {{ meta.total }}</div>
|
|
1182
|
+
* ```
|
|
1183
|
+
*/
|
|
1184
|
+
declare class SearchFilterPipe implements PipeTransform {
|
|
1512
1185
|
/**
|
|
1513
|
-
*
|
|
1514
|
-
*
|
|
1186
|
+
* Filters `items` by performing a case-insensitive substring match against `value`.
|
|
1187
|
+
* When `items` or `value` is falsy the original array is returned unfiltered.
|
|
1188
|
+
* @param items - The source array to filter. May be `undefined`.
|
|
1189
|
+
* @param value - The search text to match against each item. May be `undefined`.
|
|
1190
|
+
* @param metadata - Optional object that is updated with `total` and `count` after filtering.
|
|
1191
|
+
* @returns The filtered array, the original array when no filter text is given,
|
|
1192
|
+
* or `undefined` when `items` is `undefined`.
|
|
1515
1193
|
*/
|
|
1516
|
-
|
|
1194
|
+
transform(items?: any[], value?: string, metadata?: SearchFilterMetadata): any[] | undefined;
|
|
1195
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterPipe, never>;
|
|
1196
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SearchFilterPipe, "search", true>;
|
|
1517
1197
|
}
|
|
1518
1198
|
|
|
1519
1199
|
/**
|
|
@@ -1894,5 +1574,5 @@ declare class ThemeService implements OnDestroy {
|
|
|
1894
1574
|
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
|
|
1895
1575
|
}
|
|
1896
1576
|
|
|
1897
|
-
export {
|
|
1577
|
+
export { AutoFocusDirective, BroadcastChannelManager, BroadcastService, CHANNEL_NAME, CopyClipboardDirective, DateFormat, DateInterval, DateIntervalChangeDirective, DeleteModel, EmailsValidatorDirective, EnvironmentService, EqualsValidatorDirective, FileInfo, FileSizeValidatorDirective, FormatHtmlPipe, FormatPipe, GroupModel, GuidValidatorDirective, IDModel, ImportModel, LoginOAuthType, MaxTermsValidatorDirective, NotEmptyValidatorDirective, NotEqualValidatorDirective, NotFutureValidatorDirective, PasswordValidatorDirective, QueryModel, RelationModel, RemoveFocusDirective, ReplacePipe, SafeHtmlPipe, SafeUrlPipe, ScreenService, SearchCallbackPipe, SearchFilterPipe, SelectableModel, SplashService, SqlDateValidatorDirective, SystemUtils, ThemeService, TimeValidatorDirective, UpdateRelationsModel, UrlValidatorDirective, UtilsMessages, ValidIfDirective, ValidatorDirective, ValueModel };
|
|
1898
1578
|
export type { AddModel, AddResultModel, ApiResponse, ApiResult, BroadcastChannelMessageBag, BroadcastChannelSubscriberInfo, BroadcastMessageInfo, BroadcastMessageToastData, Checkable, DeleteResultModel, DoneResult, EnableDisableModel, ErrorInfo, File, Folder, FolderTree, INode, KeyOf, LoginOAuthResult, LoginResult, NameValueItem, PasswordStrength, QueryResultModel, SearchBag, SearchFilterMetadata, Searchable, SendToModel, ThemeType, UpdateModel, UpdateResultModel, Validated };
|