@arsedizioni/ars-utils 22.0.81 → 22.0.82

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.
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { inject, Injectable, makeEnvironmentProviders, ElementRef, afterNextRender, Directive, input, DestroyRef, HostListener, output, forwardRef, effect, Pipe, EventEmitter, signal, computed, Service, PLATFORM_ID, RendererFactory2 } from '@angular/core';
3
3
  import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
4
4
  import { TZDate } from '@date-fns/tz';
5
- import { getYear, getMonth, getDate, getDay, getDaysInMonth, parseISO, parse, format, addYears, addMonths, addDays, formatISO, isDate, isValid, endOfDay } from 'date-fns';
5
+ import { format, getYear, getMonth, getDate, getDay, getDaysInMonth, parseISO, parse, addYears, addMonths, addDays, isDate, isValid, addSeconds, endOfDay } from 'date-fns';
6
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
7
  import { Subject, filter as filter$1, map as map$1, BehaviorSubject } from 'rxjs';
8
8
  import { debounceTime, filter, map } from 'rxjs/operators';
@@ -40,12 +40,15 @@ const DAY_OF_WEEK_FORMATS = {
40
40
  const MAT_DATE_FNS_FORMATS = {
41
41
  parse: {
42
42
  dateInput: 'P',
43
+ timeInput: ['p', 'HH:mm', 'H:mm'],
43
44
  },
44
45
  display: {
45
46
  dateInput: 'P',
46
47
  monthYearLabel: 'LLL uuuu',
47
48
  dateA11yLabel: 'PP',
48
49
  monthYearA11yLabel: 'LLLL uuuu',
50
+ timeInput: 'p',
51
+ timeOptionLabel: 'p',
49
52
  },
50
53
  };
51
54
  /**
@@ -60,6 +63,24 @@ class DateFnsAdapter extends DateAdapter {
60
63
  this.setLocale(matDateLocale);
61
64
  }
62
65
  }
66
+ /**
67
+ * Wraps a date/instant into a Europe/Rome TZDate whose JSON serialisation emits a
68
+ * naive local datetime string ("yyyy-MM-dd'T'HH:mm:ss") instead of a UTC instant,
69
+ * so the wall-clock value the user entered is preserved end-to-end (no timezone shift).
70
+ * @param value - The source Date or Unix timestamp in milliseconds.
71
+ * @returns a Europe/Rome TZDate whose toJSON yields a naive local datetime string.
72
+ */
73
+ static toLocal(value) {
74
+ const ms = typeof value === 'number' ? value : value.getTime();
75
+ const t = new TZDate(ms, 'Europe/Rome');
76
+ Object.defineProperty(t, 'toJSON', {
77
+ value: () => format(t, "yyyy-MM-dd'T'HH:mm:ss"),
78
+ enumerable: false,
79
+ configurable: true,
80
+ writable: true,
81
+ });
82
+ return t;
83
+ }
63
84
  /**
64
85
  * Returns the year component of the given date.
65
86
  * @param date - The source date.
@@ -152,7 +173,7 @@ class DateFnsAdapter extends DateAdapter {
152
173
  * @param date - The date to clone.
153
174
  */
154
175
  clone(date) {
155
- return new Date(date.getTime());
176
+ return DateFnsAdapter.toLocal(date.getTime());
156
177
  }
157
178
  /**
158
179
  * Creates a `Date` in the `Europe/Rome` timezone for the given year, month, and day.
@@ -171,19 +192,17 @@ class DateFnsAdapter extends DateAdapter {
171
192
  if (month < 0 || month > 11) {
172
193
  throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
173
194
  }
174
- const result = new TZDate(year, month, date, 12, 0, 0, 0, 'Europe/Rome');
195
+ const result = new TZDate(year, month, date, 0, 0, 0, 0, 'Europe/Rome');
175
196
  if (result.getMonth() !== month) {
176
197
  throw Error(`Invalid date "${date}" for month with index "${month}".`);
177
198
  }
178
- return result;
199
+ return DateFnsAdapter.toLocal(result);
179
200
  }
180
201
  /**
181
- * Returns today's date in the local timezone.
202
+ * Returns the current date and time in the Europe/Rome timezone, preserving the wall-clock value.
182
203
  */
183
204
  today() {
184
- const t = new TZDate(new Date(), 'Europe/Rome');
185
- t.setHours(12, 0, 0, 0);
186
- return t;
205
+ return DateFnsAdapter.toLocal(new Date());
187
206
  }
188
207
  /**
189
208
  * Parses a value into a `Date`.
@@ -198,9 +217,7 @@ class DateFnsAdapter extends DateAdapter {
198
217
  if (typeof value === 'string' && value.length > 0) {
199
218
  const iso8601Date = parseISO(value);
200
219
  if (this.isValid(iso8601Date)) {
201
- const t = new TZDate(iso8601Date, 'Europe/Rome');
202
- t.setHours(12, 0, 0, 0);
203
- return t;
220
+ return DateFnsAdapter.toLocal(iso8601Date);
204
221
  }
205
222
  const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];
206
223
  if (!formats.length) {
@@ -211,17 +228,13 @@ class DateFnsAdapter extends DateAdapter {
211
228
  locale: this.locale
212
229
  });
213
230
  if (this.isValid(fromFormat)) {
214
- const t = new TZDate(fromFormat, 'Europe/Rome');
215
- t.setHours(12, 0, 0, 0);
216
- return t;
231
+ return DateFnsAdapter.toLocal(fromFormat);
217
232
  }
218
233
  }
219
234
  return this.invalid();
220
235
  }
221
236
  else if (typeof value === 'number') {
222
- const t = new TZDate(new Date(value), 'Europe/Rome');
223
- t.setHours(12, 0, 0, 0);
224
- return t;
237
+ return DateFnsAdapter.toLocal(value);
225
238
  }
226
239
  else if (value instanceof Date) {
227
240
  return this.clone(value);
@@ -246,7 +259,7 @@ class DateFnsAdapter extends DateAdapter {
246
259
  * @param years - Number of years to add (can be negative).
247
260
  */
248
261
  addCalendarYears(date, years) {
249
- return addYears(date, years);
262
+ return DateFnsAdapter.toLocal(addYears(date, years));
250
263
  }
251
264
  /**
252
265
  * Adds the given number of whole months to a date.
@@ -254,7 +267,7 @@ class DateFnsAdapter extends DateAdapter {
254
267
  * @param months - Number of months to add (can be negative).
255
268
  */
256
269
  addCalendarMonths(date, months) {
257
- return addMonths(date, months);
270
+ return DateFnsAdapter.toLocal(addMonths(date, months));
258
271
  }
259
272
  /**
260
273
  * Adds the given number of whole days to a date.
@@ -262,14 +275,16 @@ class DateFnsAdapter extends DateAdapter {
262
275
  * @param days - Number of days to add (can be negative).
263
276
  */
264
277
  addCalendarDays(date, days) {
265
- return addDays(date, days);
278
+ return DateFnsAdapter.toLocal(addDays(date, days));
266
279
  }
267
280
  /**
268
- * Serialises a date to an ISO 8601 date string (`yyyy-MM-dd`).
281
+ * Serialises a date to an ISO 8601 date-only string (`yyyy-MM-dd`) using its Europe/Rome calendar day,
282
+ * independent of the browser timezone.
269
283
  * @param date - The date to serialise.
284
+ * @returns the yyyy-MM-dd string for the date in Europe/Rome.
270
285
  */
271
286
  toIso8601(date) {
272
- return formatISO(date, { representation: 'date' });
287
+ return format(new TZDate(date, 'Europe/Rome'), 'yyyy-MM-dd');
273
288
  }
274
289
  /**
275
290
  * Returns the given value when it is a valid `Date`, or `null` for an empty string.
@@ -284,7 +299,7 @@ class DateFnsAdapter extends DateAdapter {
284
299
  }
285
300
  const date = parseISO(value);
286
301
  if (this.isValid(date)) {
287
- return date;
302
+ return DateFnsAdapter.toLocal(date);
288
303
  }
289
304
  }
290
305
  return super.deserialize(value);
@@ -309,17 +324,87 @@ class DateFnsAdapter extends DateAdapter {
309
324
  invalid() {
310
325
  return new Date(NaN);
311
326
  }
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DateFnsAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
313
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DateFnsAdapter }); }
327
+ /**
328
+ * Returns the hours component (0-23) of the given date.
329
+ * @param date - The source date.
330
+ */
331
+ getHours(date) {
332
+ return date.getHours();
333
+ }
334
+ /**
335
+ * Returns the minutes component (0-59) of the given date.
336
+ * @param date - The source date.
337
+ */
338
+ getMinutes(date) {
339
+ return date.getMinutes();
340
+ }
341
+ /**
342
+ * Returns the seconds component (0-59) of the given date.
343
+ * @param date - The source date.
344
+ */
345
+ getSeconds(date) {
346
+ return date.getSeconds();
347
+ }
348
+ /**
349
+ * Returns a clone of `target` with its time-of-day set to the given hours/minutes/seconds,
350
+ * keeping the date part unchanged.
351
+ * @param target - The date whose time should be set.
352
+ * @param hours - New hours (0-23).
353
+ * @param minutes - New minutes (0-59).
354
+ * @param seconds - New seconds (0-59).
355
+ */
356
+ setTime(target, hours, minutes, seconds) {
357
+ const clone = this.clone(target);
358
+ clone.setHours(hours, minutes, seconds, 0);
359
+ return clone;
360
+ }
361
+ /**
362
+ * Adds the given number of seconds to a date.
363
+ * @param date - The base date.
364
+ * @param amount - Number of seconds to add (can be negative).
365
+ */
366
+ addSeconds(date, amount) {
367
+ return DateFnsAdapter.toLocal(addSeconds(date, amount));
368
+ }
369
+ /**
370
+ * Parses a time-only value into a `Date` (today's date, in `Europe/Rome`, with the parsed
371
+ * time-of-day set). The wall-clock time is preserved exactly as entered.
372
+ * @param value - The value to parse (a string, or an existing `Date`).
373
+ * @param parseFormat - A format string or an array of format strings (date-fns tokens).
374
+ * @returns the parsed Date, an invalid sentinel, or null for unrecognised input.
375
+ */
376
+ parseTime(value, parseFormat) {
377
+ if (typeof value === 'string' && value.length > 0) {
378
+ const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];
379
+ if (!formats.length) {
380
+ throw Error('Formats array must not be empty.');
381
+ }
382
+ const referenceDate = new TZDate(new Date(), 'Europe/Rome');
383
+ for (const currentFormat of formats) {
384
+ const fromFormat = parse(value, currentFormat, referenceDate, { locale: this.locale });
385
+ if (this.isValid(fromFormat)) {
386
+ return DateFnsAdapter.toLocal(fromFormat);
387
+ }
388
+ }
389
+ return this.invalid();
390
+ }
391
+ else if (value instanceof Date) {
392
+ return this.clone(value);
393
+ }
394
+ return null;
395
+ }
396
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateFnsAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
397
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateFnsAdapter }); }
314
398
  }
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DateFnsAdapter, decorators: [{
399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateFnsAdapter, decorators: [{
316
400
  type: Injectable
317
401
  }], ctorParameters: () => [] });
318
402
  /**
319
- * Standalone providers for the ars-utils date-fns adapter.
403
+ * Standalone providers for the ARS date-fns adapter.
320
404
  *
321
405
  * Configures Angular Material to use {@link DateFnsAdapter} (Europe/Rome timezone)
322
- * and the matching {@link MAT_DATE_FNS_FORMATS}.
406
+ * and the matching {@link MAT_DATE_FNS_FORMATS}. Also supports `mat-timepicker` since
407
+ * {@link DateFnsAdapter} implements the time-related `DateAdapter` methods.
323
408
  *
324
409
  * @example
325
410
  * bootstrapApplication(AppComponent, {
@@ -347,10 +432,10 @@ class AutoFocusDirective {
347
432
  this.elementRef.nativeElement?.focus();
348
433
  });
349
434
  }
350
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AutoFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
351
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: AutoFocusDirective, isStandalone: true, selector: "[autoFocus]", ngImport: i0 }); }
435
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AutoFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
436
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AutoFocusDirective, isStandalone: true, selector: "[autoFocus]", ngImport: i0 }); }
352
437
  }
353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AutoFocusDirective, decorators: [{
438
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AutoFocusDirective, decorators: [{
354
439
  type: Directive,
355
440
  args: [{
356
441
  selector: '[autoFocus]',
@@ -2055,10 +2140,10 @@ class DateIntervalChangeDirective {
2055
2140
  onKeyup(e) {
2056
2141
  this.subject.next(e);
2057
2142
  }
2058
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DateIntervalChangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2059
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: DateIntervalChangeDirective, isStandalone: true, selector: "[dateIntervalChange]", inputs: { dateIntervalChange: { classPropertyName: "dateIntervalChange", publicName: "dateIntervalChange", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)", "keyup": "onKeyup($event)" } }, ngImport: i0 }); }
2143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateIntervalChangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2144
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: DateIntervalChangeDirective, isStandalone: true, selector: "[dateIntervalChange]", inputs: { dateIntervalChange: { classPropertyName: "dateIntervalChange", publicName: "dateIntervalChange", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)", "keyup": "onKeyup($event)" } }, ngImport: i0 }); }
2060
2145
  }
2061
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DateIntervalChangeDirective, decorators: [{
2146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateIntervalChangeDirective, decorators: [{
2062
2147
  type: Directive,
2063
2148
  args: [{
2064
2149
  selector: '[dateIntervalChange]',
@@ -2105,10 +2190,10 @@ class CopyClipboardDirective {
2105
2190
  document.removeEventListener('copy', listener, false);
2106
2191
  }
2107
2192
  }
2108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: CopyClipboardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2109
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: CopyClipboardDirective, isStandalone: true, selector: "[copyClipboard]", inputs: { payload: { classPropertyName: "payload", publicName: "copyClipboard", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { copied: "copied" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
2193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CopyClipboardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2194
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: CopyClipboardDirective, isStandalone: true, selector: "[copyClipboard]", inputs: { payload: { classPropertyName: "payload", publicName: "copyClipboard", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { copied: "copied" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
2110
2195
  }
2111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: CopyClipboardDirective, decorators: [{
2196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CopyClipboardDirective, decorators: [{
2112
2197
  type: Directive,
2113
2198
  args: [{
2114
2199
  selector: '[copyClipboard]',
@@ -2137,8 +2222,8 @@ class EmailsValidatorDirective {
2137
2222
  const isValid = parts.every(part => part.length === 0 || !!SystemUtils.parseEmail(part));
2138
2223
  return isValid ? null : { emails: "Elenco non valido." };
2139
2224
  }
2140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EmailsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2141
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: EmailsValidatorDirective, isStandalone: true, selector: "[emails]", providers: [
2225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EmailsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2226
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: EmailsValidatorDirective, isStandalone: true, selector: "[emails]", providers: [
2142
2227
  {
2143
2228
  provide: NG_VALIDATORS,
2144
2229
  useExisting: forwardRef(() => EmailsValidatorDirective),
@@ -2146,7 +2231,7 @@ class EmailsValidatorDirective {
2146
2231
  },
2147
2232
  ], ngImport: i0 }); }
2148
2233
  }
2149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EmailsValidatorDirective, decorators: [{
2234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EmailsValidatorDirective, decorators: [{
2150
2235
  type: Directive,
2151
2236
  args: [{
2152
2237
  selector: "[emails]",
@@ -2205,8 +2290,8 @@ class EqualsValidatorDirective {
2205
2290
  return null;
2206
2291
  return eq.value === control.value ? null : { equals: "Non valido." };
2207
2292
  }
2208
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EqualsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2209
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: EqualsValidatorDirective, isStandalone: true, selector: "[equals]", inputs: { equals: { classPropertyName: "equals", publicName: "equals", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2293
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EqualsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2294
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: EqualsValidatorDirective, isStandalone: true, selector: "[equals]", inputs: { equals: { classPropertyName: "equals", publicName: "equals", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2210
2295
  {
2211
2296
  provide: NG_VALIDATORS,
2212
2297
  useExisting: forwardRef(() => EqualsValidatorDirective),
@@ -2214,7 +2299,7 @@ class EqualsValidatorDirective {
2214
2299
  },
2215
2300
  ], ngImport: i0 }); }
2216
2301
  }
2217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EqualsValidatorDirective, decorators: [{
2302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EqualsValidatorDirective, decorators: [{
2218
2303
  type: Directive,
2219
2304
  args: [{
2220
2305
  selector: "[equals]",
@@ -2258,8 +2343,8 @@ class FileSizeValidatorDirective {
2258
2343
  const isValid = s <= this.maxSizeMb() && s >= this.minSizeMb();
2259
2344
  return isValid ? null : { fileSize: "Non valido." };
2260
2345
  }
2261
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FileSizeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2262
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: FileSizeValidatorDirective, isStandalone: true, selector: "[fileSize]", inputs: { maxSizeMb: { classPropertyName: "maxSizeMb", publicName: "maxSizeMb", isSignal: true, isRequired: false, transformFunction: null }, minSizeMb: { classPropertyName: "minSizeMb", publicName: "minSizeMb", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FileSizeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2347
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: FileSizeValidatorDirective, isStandalone: true, selector: "[fileSize]", inputs: { maxSizeMb: { classPropertyName: "maxSizeMb", publicName: "maxSizeMb", isSignal: true, isRequired: false, transformFunction: null }, minSizeMb: { classPropertyName: "minSizeMb", publicName: "minSizeMb", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2263
2348
  {
2264
2349
  provide: NG_VALIDATORS,
2265
2350
  useExisting: forwardRef(() => FileSizeValidatorDirective),
@@ -2267,7 +2352,7 @@ class FileSizeValidatorDirective {
2267
2352
  },
2268
2353
  ], ngImport: i0 }); }
2269
2354
  }
2270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FileSizeValidatorDirective, decorators: [{
2355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FileSizeValidatorDirective, decorators: [{
2271
2356
  type: Directive,
2272
2357
  args: [{
2273
2358
  selector: "[fileSize]",
@@ -2298,8 +2383,8 @@ class GuidValidatorDirective {
2298
2383
  return null;
2299
2384
  return SystemUtils.parseUUID(input) ? null : { guid: "Non valido." };
2300
2385
  }
2301
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: GuidValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2302
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: GuidValidatorDirective, isStandalone: true, selector: "[guid]", providers: [
2386
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: GuidValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2387
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: GuidValidatorDirective, isStandalone: true, selector: "[guid]", providers: [
2303
2388
  {
2304
2389
  provide: NG_VALIDATORS,
2305
2390
  useExisting: forwardRef(() => GuidValidatorDirective),
@@ -2307,7 +2392,7 @@ class GuidValidatorDirective {
2307
2392
  },
2308
2393
  ], ngImport: i0 }); }
2309
2394
  }
2310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: GuidValidatorDirective, decorators: [{
2395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: GuidValidatorDirective, decorators: [{
2311
2396
  type: Directive,
2312
2397
  args: [{
2313
2398
  selector: "[guid]",
@@ -2344,8 +2429,8 @@ class MaxTermsValidatorDirective {
2344
2429
  const terms = input.match(/\S+/g)?.length ?? 0;
2345
2430
  return terms <= this.maxTerms() ? null : { maxTerms: "Non valido." };
2346
2431
  }
2347
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MaxTermsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2348
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: MaxTermsValidatorDirective, isStandalone: true, selector: "[maxTerms]", inputs: { maxTerms: { classPropertyName: "maxTerms", publicName: "maxTerms", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2432
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MaxTermsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2433
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: MaxTermsValidatorDirective, isStandalone: true, selector: "[maxTerms]", inputs: { maxTerms: { classPropertyName: "maxTerms", publicName: "maxTerms", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2349
2434
  {
2350
2435
  provide: NG_VALIDATORS,
2351
2436
  useExisting: forwardRef(() => MaxTermsValidatorDirective),
@@ -2353,7 +2438,7 @@ class MaxTermsValidatorDirective {
2353
2438
  },
2354
2439
  ], ngImport: i0 }); }
2355
2440
  }
2356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MaxTermsValidatorDirective, decorators: [{
2441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MaxTermsValidatorDirective, decorators: [{
2357
2442
  type: Directive,
2358
2443
  args: [{
2359
2444
  selector: "[maxTerms]",
@@ -2384,8 +2469,8 @@ class NotEmptyValidatorDirective {
2384
2469
  return null;
2385
2470
  return input.trim().length > 0 ? null : { notEmpty: true };
2386
2471
  }
2387
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotEmptyValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2388
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: NotEmptyValidatorDirective, isStandalone: true, selector: "[notEmpty]", providers: [
2472
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEmptyValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2473
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NotEmptyValidatorDirective, isStandalone: true, selector: "[notEmpty]", providers: [
2389
2474
  {
2390
2475
  provide: NG_VALIDATORS,
2391
2476
  useExisting: forwardRef(() => NotEmptyValidatorDirective),
@@ -2393,7 +2478,7 @@ class NotEmptyValidatorDirective {
2393
2478
  },
2394
2479
  ], ngImport: i0 }); }
2395
2480
  }
2396
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotEmptyValidatorDirective, decorators: [{
2481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEmptyValidatorDirective, decorators: [{
2397
2482
  type: Directive,
2398
2483
  args: [{
2399
2484
  selector: "[notEmpty]",
@@ -2466,8 +2551,8 @@ class NotEqualValidatorDirective {
2466
2551
  }
2467
2552
  return errors;
2468
2553
  }
2469
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2470
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: NotEqualValidatorDirective, isStandalone: true, selector: "[notEqual]", inputs: { notEqual: { classPropertyName: "notEqual", publicName: "notEqual", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2554
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2555
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: NotEqualValidatorDirective, isStandalone: true, selector: "[notEqual]", inputs: { notEqual: { classPropertyName: "notEqual", publicName: "notEqual", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2471
2556
  {
2472
2557
  provide: NG_VALIDATORS,
2473
2558
  useExisting: forwardRef(() => NotEqualValidatorDirective),
@@ -2475,7 +2560,7 @@ class NotEqualValidatorDirective {
2475
2560
  },
2476
2561
  ], ngImport: i0 }); }
2477
2562
  }
2478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotEqualValidatorDirective, decorators: [{
2563
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEqualValidatorDirective, decorators: [{
2479
2564
  type: Directive,
2480
2565
  args: [{
2481
2566
  selector: "[notEqual]",
@@ -2511,8 +2596,8 @@ class NotFutureValidatorDirective {
2511
2596
  const d = endOfDay(parsed);
2512
2597
  return d <= today ? null : { notFuture: "Non valido." };
2513
2598
  }
2514
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotFutureValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2515
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: NotFutureValidatorDirective, isStandalone: true, selector: "[notFuture]", providers: [
2599
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotFutureValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2600
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NotFutureValidatorDirective, isStandalone: true, selector: "[notFuture]", providers: [
2516
2601
  {
2517
2602
  provide: NG_VALIDATORS,
2518
2603
  useExisting: forwardRef(() => NotFutureValidatorDirective),
@@ -2520,7 +2605,7 @@ class NotFutureValidatorDirective {
2520
2605
  },
2521
2606
  ], ngImport: i0 }); }
2522
2607
  }
2523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotFutureValidatorDirective, decorators: [{
2608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotFutureValidatorDirective, decorators: [{
2524
2609
  type: Directive,
2525
2610
  args: [{
2526
2611
  selector: "[notFuture]",
@@ -2549,8 +2634,8 @@ class PasswordValidatorDirective {
2549
2634
  const strength = SystemUtils.calculatePasswordStrength(input);
2550
2635
  return strength.isValid ? null : { password: "Non valido." };
2551
2636
  }
2552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: PasswordValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2553
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: PasswordValidatorDirective, isStandalone: true, selector: "[password]", providers: [
2637
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PasswordValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2638
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: PasswordValidatorDirective, isStandalone: true, selector: "[password]", providers: [
2554
2639
  {
2555
2640
  provide: NG_VALIDATORS,
2556
2641
  useExisting: forwardRef(() => PasswordValidatorDirective),
@@ -2558,7 +2643,7 @@ class PasswordValidatorDirective {
2558
2643
  },
2559
2644
  ], ngImport: i0 }); }
2560
2645
  }
2561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: PasswordValidatorDirective, decorators: [{
2646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PasswordValidatorDirective, decorators: [{
2562
2647
  type: Directive,
2563
2648
  args: [{
2564
2649
  selector: "[password]",
@@ -2592,10 +2677,10 @@ class RemoveFocusDirective {
2592
2677
  setTimeout(() => el.blur(), 0);
2593
2678
  }
2594
2679
  }
2595
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RemoveFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2596
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: RemoveFocusDirective, isStandalone: true, selector: "[removeFocus]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
2680
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: RemoveFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2681
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: RemoveFocusDirective, isStandalone: true, selector: "[removeFocus]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
2597
2682
  }
2598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RemoveFocusDirective, decorators: [{
2683
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: RemoveFocusDirective, decorators: [{
2599
2684
  type: Directive,
2600
2685
  args: [{
2601
2686
  selector: '[removeFocus]',
@@ -2626,8 +2711,8 @@ class SqlDateValidatorDirective {
2626
2711
  const d = endOfDay(parsed);
2627
2712
  return d.getFullYear() > 1750 ? null : { sqlDate: "Non valido." };
2628
2713
  }
2629
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SqlDateValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2630
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: SqlDateValidatorDirective, isStandalone: true, selector: "[sqlDate]", providers: [
2714
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SqlDateValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2715
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: SqlDateValidatorDirective, isStandalone: true, selector: "[sqlDate]", providers: [
2631
2716
  {
2632
2717
  provide: NG_VALIDATORS,
2633
2718
  useExisting: forwardRef(() => SqlDateValidatorDirective),
@@ -2635,7 +2720,7 @@ class SqlDateValidatorDirective {
2635
2720
  },
2636
2721
  ], ngImport: i0 }); }
2637
2722
  }
2638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SqlDateValidatorDirective, decorators: [{
2723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SqlDateValidatorDirective, decorators: [{
2639
2724
  type: Directive,
2640
2725
  args: [{
2641
2726
  selector: "[sqlDate]",
@@ -2701,8 +2786,8 @@ class TimeValidatorDirective {
2701
2786
  }
2702
2787
  return null;
2703
2788
  }
2704
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TimeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2705
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: TimeValidatorDirective, isStandalone: true, selector: "[time]", inputs: { slots: { classPropertyName: "slots", publicName: "slots", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2789
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TimeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2790
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: TimeValidatorDirective, isStandalone: true, selector: "[time]", inputs: { slots: { classPropertyName: "slots", publicName: "slots", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2706
2791
  {
2707
2792
  provide: NG_VALIDATORS,
2708
2793
  useExisting: forwardRef(() => TimeValidatorDirective),
@@ -2710,7 +2795,7 @@ class TimeValidatorDirective {
2710
2795
  },
2711
2796
  ], ngImport: i0 }); }
2712
2797
  }
2713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TimeValidatorDirective, decorators: [{
2798
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TimeValidatorDirective, decorators: [{
2714
2799
  type: Directive,
2715
2800
  args: [{
2716
2801
  selector: "[time]",
@@ -2741,8 +2826,8 @@ class UrlValidatorDirective {
2741
2826
  return null;
2742
2827
  return SystemUtils.parseUrl(input) ? null : { url: "Non valido." };
2743
2828
  }
2744
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: UrlValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2745
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: UrlValidatorDirective, isStandalone: true, selector: "[url]", providers: [
2829
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UrlValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2830
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: UrlValidatorDirective, isStandalone: true, selector: "[url]", providers: [
2746
2831
  {
2747
2832
  provide: NG_VALIDATORS,
2748
2833
  useExisting: forwardRef(() => UrlValidatorDirective),
@@ -2750,7 +2835,7 @@ class UrlValidatorDirective {
2750
2835
  },
2751
2836
  ], ngImport: i0 }); }
2752
2837
  }
2753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: UrlValidatorDirective, decorators: [{
2838
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UrlValidatorDirective, decorators: [{
2754
2839
  type: Directive,
2755
2840
  args: [{
2756
2841
  selector: "[url]",
@@ -2793,8 +2878,8 @@ class ValidIfDirective {
2793
2878
  }
2794
2879
  return isValid ? null : { validIf: "Non valido." };
2795
2880
  }
2796
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ValidIfDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2797
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: ValidIfDirective, isStandalone: true, selector: "[validIf]", inputs: { validIf: { classPropertyName: "validIf", publicName: "validIf", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2881
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidIfDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2882
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: ValidIfDirective, isStandalone: true, selector: "[validIf]", inputs: { validIf: { classPropertyName: "validIf", publicName: "validIf", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2798
2883
  {
2799
2884
  provide: NG_VALIDATORS,
2800
2885
  useExisting: forwardRef(() => ValidIfDirective),
@@ -2802,7 +2887,7 @@ class ValidIfDirective {
2802
2887
  },
2803
2888
  ], ngImport: i0 }); }
2804
2889
  }
2805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ValidIfDirective, decorators: [{
2890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidIfDirective, decorators: [{
2806
2891
  type: Directive,
2807
2892
  args: [{
2808
2893
  selector: "[validIf]",
@@ -2836,10 +2921,10 @@ class ValidatorDirective {
2836
2921
  const fn = this.validator();
2837
2922
  return fn ? fn(control) : null;
2838
2923
  }
2839
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2840
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: ValidatorDirective, isStandalone: true, selector: "[validator]", inputs: { validator: { classPropertyName: "validator", publicName: "validator", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: NG_VALIDATORS, useExisting: ValidatorDirective, multi: true }], ngImport: i0 }); }
2924
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2925
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: ValidatorDirective, isStandalone: true, selector: "[validator]", inputs: { validator: { classPropertyName: "validator", publicName: "validator", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: NG_VALIDATORS, useExisting: ValidatorDirective, multi: true }], ngImport: i0 }); }
2841
2926
  }
2842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ValidatorDirective, decorators: [{
2927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidatorDirective, decorators: [{
2843
2928
  type: Directive,
2844
2929
  args: [{
2845
2930
  selector: '[validator]',
@@ -2872,10 +2957,10 @@ class FormatHtmlPipe {
2872
2957
  .replaceAll('"', '&quot;');
2873
2958
  return this.sanitizer.bypassSecurityTrustHtml(escaped.replaceAll(/(?:\r\n|\r|\n)/g, '<br>'));
2874
2959
  }
2875
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2876
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: FormatHtmlPipe, isStandalone: true, name: "formatHtml" }); }
2960
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2961
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: FormatHtmlPipe, isStandalone: true, name: "formatHtml" }); }
2877
2962
  }
2878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatHtmlPipe, decorators: [{
2963
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatHtmlPipe, decorators: [{
2879
2964
  type: Pipe,
2880
2965
  args: [{
2881
2966
  name: 'formatHtml',
@@ -2900,10 +2985,10 @@ class FormatMarkdownPipe {
2900
2985
  transform(value) {
2901
2986
  return this.sanitizer.bypassSecurityTrustHtml(SystemUtils.markdownToHtml(value ?? ''));
2902
2987
  }
2903
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatMarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2904
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: FormatMarkdownPipe, isStandalone: true, name: "formatMarkdown" }); }
2988
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatMarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2989
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: FormatMarkdownPipe, isStandalone: true, name: "formatMarkdown" }); }
2905
2990
  }
2906
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatMarkdownPipe, decorators: [{
2991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatMarkdownPipe, decorators: [{
2907
2992
  type: Pipe,
2908
2993
  args: [{
2909
2994
  name: 'formatMarkdown',
@@ -2960,10 +3045,10 @@ class FormatPipe {
2960
3045
  }
2961
3046
  return undefined;
2962
3047
  }
2963
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2964
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: FormatPipe, isStandalone: true, name: "format" }); }
3048
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3049
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: FormatPipe, isStandalone: true, name: "format" }); }
2965
3050
  }
2966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatPipe, decorators: [{
3051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatPipe, decorators: [{
2967
3052
  type: Pipe,
2968
3053
  args: [{
2969
3054
  name: 'format',
@@ -2996,10 +3081,10 @@ class ReplacePipe {
2996
3081
  const replacement = (regexValue === '\n' && !replaceValue) ? '<br>' : (replaceValue ?? '');
2997
3082
  return this.sanitizer.bypassSecurityTrustHtml(value.replace(new RegExp(regexValue, 'g'), replacement));
2998
3083
  }
2999
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ReplacePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3000
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: ReplacePipe, isStandalone: true, name: "replace" }); }
3084
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ReplacePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3085
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: ReplacePipe, isStandalone: true, name: "replace" }); }
3001
3086
  }
3002
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ReplacePipe, decorators: [{
3087
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ReplacePipe, decorators: [{
3003
3088
  type: Pipe,
3004
3089
  args: [{
3005
3090
  name: 'replace',
@@ -3025,10 +3110,10 @@ class SafeHtmlPipe {
3025
3110
  transform(value) {
3026
3111
  return this.sanitizer.bypassSecurityTrustHtml(value ?? '');
3027
3112
  }
3028
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3029
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
3113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3114
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
3030
3115
  }
3031
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SafeHtmlPipe, decorators: [{
3116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeHtmlPipe, decorators: [{
3032
3117
  type: Pipe,
3033
3118
  args: [{
3034
3119
  name: 'safeHtml',
@@ -3054,10 +3139,10 @@ class SafeUrlPipe {
3054
3139
  transform(value) {
3055
3140
  return this.sanitizer.bypassSecurityTrustResourceUrl(value ?? '');
3056
3141
  }
3057
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3058
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" }); }
3142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3143
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" }); }
3059
3144
  }
3060
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SafeUrlPipe, decorators: [{
3145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeUrlPipe, decorators: [{
3061
3146
  type: Pipe,
3062
3147
  args: [{
3063
3148
  name: 'safeUrl',
@@ -3086,10 +3171,10 @@ class SearchCallbackPipe {
3086
3171
  return items;
3087
3172
  return items.filter(item => callback(item));
3088
3173
  }
3089
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SearchCallbackPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3090
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: SearchCallbackPipe, isStandalone: true, name: "callback", pure: false }); }
3174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchCallbackPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3175
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SearchCallbackPipe, isStandalone: true, name: "callback", pure: false }); }
3091
3176
  }
3092
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SearchCallbackPipe, decorators: [{
3177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchCallbackPipe, decorators: [{
3093
3178
  type: Pipe,
3094
3179
  args: [{
3095
3180
  name: 'callback',
@@ -3142,10 +3227,10 @@ class SearchFilterPipe {
3142
3227
  metadata.count = result.length;
3143
3228
  return result;
3144
3229
  }
3145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SearchFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3146
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: SearchFilterPipe, isStandalone: true, name: "search" }); }
3230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3231
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SearchFilterPipe, isStandalone: true, name: "search" }); }
3147
3232
  }
3148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SearchFilterPipe, decorators: [{
3233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchFilterPipe, decorators: [{
3149
3234
  type: Pipe,
3150
3235
  args: [{
3151
3236
  name: 'search',
@@ -3553,10 +3638,10 @@ class BroadcastService {
3553
3638
  observeMessage(id) {
3554
3639
  return this.subject.pipe(filter$1(info => info.id === id), map$1(info => info.data));
3555
3640
  }
3556
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: BroadcastService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3557
- static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.7", ngImport: i0, type: BroadcastService }); }
3641
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BroadcastService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3642
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: BroadcastService }); }
3558
3643
  }
3559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: BroadcastService, decorators: [{
3644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BroadcastService, decorators: [{
3560
3645
  type: Service
3561
3646
  }] });
3562
3647
 
@@ -3614,10 +3699,10 @@ class EnvironmentService {
3614
3699
  get appServiceLoginUri() { return this._effectiveServiceLoginUri(); }
3615
3700
  /** @param value - The login endpoint URI of the backend service. */
3616
3701
  set appServiceLoginUri(value) { this.appServiceLoginUriSignal.set(value); }
3617
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3618
- static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.7", ngImport: i0, type: EnvironmentService }); }
3702
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3703
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: EnvironmentService }); }
3619
3704
  }
3620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EnvironmentService, decorators: [{
3705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EnvironmentService, decorators: [{
3621
3706
  type: Service
3622
3707
  }] });
3623
3708
 
@@ -3648,10 +3733,10 @@ class ScreenService {
3648
3733
  get isIEOrEdge() {
3649
3734
  return SystemUtils.isBrowser() && /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
3650
3735
  }
3651
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScreenService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3652
- static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.7", ngImport: i0, type: ScreenService }); }
3736
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScreenService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3737
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: ScreenService }); }
3653
3738
  }
3654
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScreenService, decorators: [{
3739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScreenService, decorators: [{
3655
3740
  type: Service
3656
3741
  }] });
3657
3742
 
@@ -3680,10 +3765,10 @@ class SplashService {
3680
3765
  bootstrapped() { this.api?.disarm(); }
3681
3766
  /** Fade out and remove the splash overlay from the DOM. */
3682
3767
  hide() { this.api?.hide(); }
3683
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SplashService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3684
- static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.7", ngImport: i0, type: SplashService }); }
3768
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SplashService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3769
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: SplashService }); }
3685
3770
  }
3686
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SplashService, decorators: [{
3771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SplashService, decorators: [{
3687
3772
  type: Service
3688
3773
  }] });
3689
3774
 
@@ -3811,10 +3896,10 @@ class ThemeService {
3811
3896
  this.themeChanged.next(this.getTheme());
3812
3897
  this.broadcastChannel.sendMessage(this.broadcastMessage, theme);
3813
3898
  }
3814
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3815
- static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.7", ngImport: i0, type: ThemeService }); }
3899
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3900
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: ThemeService }); }
3816
3901
  }
3817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ThemeService, decorators: [{
3902
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ThemeService, decorators: [{
3818
3903
  type: Service
3819
3904
  }], ctorParameters: () => [] });
3820
3905