@arsedizioni/ars-utils 22.0.81 → 22.0.83

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]',
@@ -1663,22 +1748,30 @@ class SystemUtils {
1663
1748
  }
1664
1749
  }
1665
1750
  /**
1666
- * Return an italian local date
1667
- * @param value : the date
1668
- * @returns : the new date
1751
+ * Converts a Date, timestamp or ISO string into a Europe/Rome Date whose JSON serialisation
1752
+ * emits a naive local datetime string ("yyyy-MM-dd'T'HH:mm:ss"), with no timezone designator,
1753
+ * so the wall-clock value round-trips to the server unchanged. Use this instead of `new Date(...)`
1754
+ * when reviving dates received from the API, to stay consistent with the DateFnsAdapter (values
1755
+ * entered through the datepicker already behave this way).
1756
+ * @param value : the source Date, Unix timestamp (ms) or ISO string
1757
+ * @returns : a Europe/Rome Date serialising as naive local time, or undefined for empty/invalid input
1669
1758
  */
1670
1759
  static toLocalDate(value) {
1671
- // No value at all
1672
- if (!value)
1760
+ if (value == null || value === '')
1673
1761
  return undefined;
1674
- // A string
1675
- if (typeof value === 'string' || value instanceof String)
1676
- value = this.parseDate(value);
1677
- // Not a date
1678
- if (!this.isValidDate(value))
1762
+ const ms = value instanceof Date ? value.getTime()
1763
+ : typeof value === 'number' ? value
1764
+ : new Date(value).getTime();
1765
+ if (isNaN(ms))
1679
1766
  return undefined;
1680
- // Update date
1681
- return new TZDate(value, "Europe/Rome");
1767
+ const t = new TZDate(ms, 'Europe/Rome');
1768
+ Object.defineProperty(t, 'toJSON', {
1769
+ value: () => format(t, "yyyy-MM-dd'T'HH:mm:ss"),
1770
+ enumerable: false,
1771
+ configurable: true,
1772
+ writable: true,
1773
+ });
1774
+ return t;
1682
1775
  }
1683
1776
  /**
1684
1777
  * Update a DateInterval object according to a string
@@ -2055,10 +2148,10 @@ class DateIntervalChangeDirective {
2055
2148
  onKeyup(e) {
2056
2149
  this.subject.next(e);
2057
2150
  }
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 }); }
2151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateIntervalChangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2152
+ 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
2153
  }
2061
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DateIntervalChangeDirective, decorators: [{
2154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateIntervalChangeDirective, decorators: [{
2062
2155
  type: Directive,
2063
2156
  args: [{
2064
2157
  selector: '[dateIntervalChange]',
@@ -2105,10 +2198,10 @@ class CopyClipboardDirective {
2105
2198
  document.removeEventListener('copy', listener, false);
2106
2199
  }
2107
2200
  }
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 }); }
2201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CopyClipboardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2202
+ 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
2203
  }
2111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: CopyClipboardDirective, decorators: [{
2204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CopyClipboardDirective, decorators: [{
2112
2205
  type: Directive,
2113
2206
  args: [{
2114
2207
  selector: '[copyClipboard]',
@@ -2137,8 +2230,8 @@ class EmailsValidatorDirective {
2137
2230
  const isValid = parts.every(part => part.length === 0 || !!SystemUtils.parseEmail(part));
2138
2231
  return isValid ? null : { emails: "Elenco non valido." };
2139
2232
  }
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: [
2233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EmailsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2234
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: EmailsValidatorDirective, isStandalone: true, selector: "[emails]", providers: [
2142
2235
  {
2143
2236
  provide: NG_VALIDATORS,
2144
2237
  useExisting: forwardRef(() => EmailsValidatorDirective),
@@ -2146,7 +2239,7 @@ class EmailsValidatorDirective {
2146
2239
  },
2147
2240
  ], ngImport: i0 }); }
2148
2241
  }
2149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EmailsValidatorDirective, decorators: [{
2242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EmailsValidatorDirective, decorators: [{
2150
2243
  type: Directive,
2151
2244
  args: [{
2152
2245
  selector: "[emails]",
@@ -2205,8 +2298,8 @@ class EqualsValidatorDirective {
2205
2298
  return null;
2206
2299
  return eq.value === control.value ? null : { equals: "Non valido." };
2207
2300
  }
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: [
2301
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EqualsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2302
+ 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
2303
  {
2211
2304
  provide: NG_VALIDATORS,
2212
2305
  useExisting: forwardRef(() => EqualsValidatorDirective),
@@ -2214,7 +2307,7 @@ class EqualsValidatorDirective {
2214
2307
  },
2215
2308
  ], ngImport: i0 }); }
2216
2309
  }
2217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EqualsValidatorDirective, decorators: [{
2310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EqualsValidatorDirective, decorators: [{
2218
2311
  type: Directive,
2219
2312
  args: [{
2220
2313
  selector: "[equals]",
@@ -2258,8 +2351,8 @@ class FileSizeValidatorDirective {
2258
2351
  const isValid = s <= this.maxSizeMb() && s >= this.minSizeMb();
2259
2352
  return isValid ? null : { fileSize: "Non valido." };
2260
2353
  }
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: [
2354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FileSizeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2355
+ 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
2356
  {
2264
2357
  provide: NG_VALIDATORS,
2265
2358
  useExisting: forwardRef(() => FileSizeValidatorDirective),
@@ -2267,7 +2360,7 @@ class FileSizeValidatorDirective {
2267
2360
  },
2268
2361
  ], ngImport: i0 }); }
2269
2362
  }
2270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FileSizeValidatorDirective, decorators: [{
2363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FileSizeValidatorDirective, decorators: [{
2271
2364
  type: Directive,
2272
2365
  args: [{
2273
2366
  selector: "[fileSize]",
@@ -2298,8 +2391,8 @@ class GuidValidatorDirective {
2298
2391
  return null;
2299
2392
  return SystemUtils.parseUUID(input) ? null : { guid: "Non valido." };
2300
2393
  }
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: [
2394
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: GuidValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2395
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: GuidValidatorDirective, isStandalone: true, selector: "[guid]", providers: [
2303
2396
  {
2304
2397
  provide: NG_VALIDATORS,
2305
2398
  useExisting: forwardRef(() => GuidValidatorDirective),
@@ -2307,7 +2400,7 @@ class GuidValidatorDirective {
2307
2400
  },
2308
2401
  ], ngImport: i0 }); }
2309
2402
  }
2310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: GuidValidatorDirective, decorators: [{
2403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: GuidValidatorDirective, decorators: [{
2311
2404
  type: Directive,
2312
2405
  args: [{
2313
2406
  selector: "[guid]",
@@ -2344,8 +2437,8 @@ class MaxTermsValidatorDirective {
2344
2437
  const terms = input.match(/\S+/g)?.length ?? 0;
2345
2438
  return terms <= this.maxTerms() ? null : { maxTerms: "Non valido." };
2346
2439
  }
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: [
2440
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MaxTermsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2441
+ 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
2442
  {
2350
2443
  provide: NG_VALIDATORS,
2351
2444
  useExisting: forwardRef(() => MaxTermsValidatorDirective),
@@ -2353,7 +2446,7 @@ class MaxTermsValidatorDirective {
2353
2446
  },
2354
2447
  ], ngImport: i0 }); }
2355
2448
  }
2356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MaxTermsValidatorDirective, decorators: [{
2449
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: MaxTermsValidatorDirective, decorators: [{
2357
2450
  type: Directive,
2358
2451
  args: [{
2359
2452
  selector: "[maxTerms]",
@@ -2384,8 +2477,8 @@ class NotEmptyValidatorDirective {
2384
2477
  return null;
2385
2478
  return input.trim().length > 0 ? null : { notEmpty: true };
2386
2479
  }
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: [
2480
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEmptyValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2481
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NotEmptyValidatorDirective, isStandalone: true, selector: "[notEmpty]", providers: [
2389
2482
  {
2390
2483
  provide: NG_VALIDATORS,
2391
2484
  useExisting: forwardRef(() => NotEmptyValidatorDirective),
@@ -2393,7 +2486,7 @@ class NotEmptyValidatorDirective {
2393
2486
  },
2394
2487
  ], ngImport: i0 }); }
2395
2488
  }
2396
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotEmptyValidatorDirective, decorators: [{
2489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEmptyValidatorDirective, decorators: [{
2397
2490
  type: Directive,
2398
2491
  args: [{
2399
2492
  selector: "[notEmpty]",
@@ -2466,8 +2559,8 @@ class NotEqualValidatorDirective {
2466
2559
  }
2467
2560
  return errors;
2468
2561
  }
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: [
2562
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2563
+ 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
2564
  {
2472
2565
  provide: NG_VALIDATORS,
2473
2566
  useExisting: forwardRef(() => NotEqualValidatorDirective),
@@ -2475,7 +2568,7 @@ class NotEqualValidatorDirective {
2475
2568
  },
2476
2569
  ], ngImport: i0 }); }
2477
2570
  }
2478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotEqualValidatorDirective, decorators: [{
2571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotEqualValidatorDirective, decorators: [{
2479
2572
  type: Directive,
2480
2573
  args: [{
2481
2574
  selector: "[notEqual]",
@@ -2511,8 +2604,8 @@ class NotFutureValidatorDirective {
2511
2604
  const d = endOfDay(parsed);
2512
2605
  return d <= today ? null : { notFuture: "Non valido." };
2513
2606
  }
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: [
2607
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotFutureValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2608
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NotFutureValidatorDirective, isStandalone: true, selector: "[notFuture]", providers: [
2516
2609
  {
2517
2610
  provide: NG_VALIDATORS,
2518
2611
  useExisting: forwardRef(() => NotFutureValidatorDirective),
@@ -2520,7 +2613,7 @@ class NotFutureValidatorDirective {
2520
2613
  },
2521
2614
  ], ngImport: i0 }); }
2522
2615
  }
2523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NotFutureValidatorDirective, decorators: [{
2616
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NotFutureValidatorDirective, decorators: [{
2524
2617
  type: Directive,
2525
2618
  args: [{
2526
2619
  selector: "[notFuture]",
@@ -2549,8 +2642,8 @@ class PasswordValidatorDirective {
2549
2642
  const strength = SystemUtils.calculatePasswordStrength(input);
2550
2643
  return strength.isValid ? null : { password: "Non valido." };
2551
2644
  }
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: [
2645
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PasswordValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2646
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: PasswordValidatorDirective, isStandalone: true, selector: "[password]", providers: [
2554
2647
  {
2555
2648
  provide: NG_VALIDATORS,
2556
2649
  useExisting: forwardRef(() => PasswordValidatorDirective),
@@ -2558,7 +2651,7 @@ class PasswordValidatorDirective {
2558
2651
  },
2559
2652
  ], ngImport: i0 }); }
2560
2653
  }
2561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: PasswordValidatorDirective, decorators: [{
2654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PasswordValidatorDirective, decorators: [{
2562
2655
  type: Directive,
2563
2656
  args: [{
2564
2657
  selector: "[password]",
@@ -2592,10 +2685,10 @@ class RemoveFocusDirective {
2592
2685
  setTimeout(() => el.blur(), 0);
2593
2686
  }
2594
2687
  }
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 }); }
2688
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: RemoveFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2689
+ 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
2690
  }
2598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RemoveFocusDirective, decorators: [{
2691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: RemoveFocusDirective, decorators: [{
2599
2692
  type: Directive,
2600
2693
  args: [{
2601
2694
  selector: '[removeFocus]',
@@ -2626,8 +2719,8 @@ class SqlDateValidatorDirective {
2626
2719
  const d = endOfDay(parsed);
2627
2720
  return d.getFullYear() > 1750 ? null : { sqlDate: "Non valido." };
2628
2721
  }
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: [
2722
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SqlDateValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2723
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: SqlDateValidatorDirective, isStandalone: true, selector: "[sqlDate]", providers: [
2631
2724
  {
2632
2725
  provide: NG_VALIDATORS,
2633
2726
  useExisting: forwardRef(() => SqlDateValidatorDirective),
@@ -2635,7 +2728,7 @@ class SqlDateValidatorDirective {
2635
2728
  },
2636
2729
  ], ngImport: i0 }); }
2637
2730
  }
2638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SqlDateValidatorDirective, decorators: [{
2731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SqlDateValidatorDirective, decorators: [{
2639
2732
  type: Directive,
2640
2733
  args: [{
2641
2734
  selector: "[sqlDate]",
@@ -2701,8 +2794,8 @@ class TimeValidatorDirective {
2701
2794
  }
2702
2795
  return null;
2703
2796
  }
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: [
2797
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TimeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2798
+ 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
2799
  {
2707
2800
  provide: NG_VALIDATORS,
2708
2801
  useExisting: forwardRef(() => TimeValidatorDirective),
@@ -2710,7 +2803,7 @@ class TimeValidatorDirective {
2710
2803
  },
2711
2804
  ], ngImport: i0 }); }
2712
2805
  }
2713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TimeValidatorDirective, decorators: [{
2806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TimeValidatorDirective, decorators: [{
2714
2807
  type: Directive,
2715
2808
  args: [{
2716
2809
  selector: "[time]",
@@ -2741,8 +2834,8 @@ class UrlValidatorDirective {
2741
2834
  return null;
2742
2835
  return SystemUtils.parseUrl(input) ? null : { url: "Non valido." };
2743
2836
  }
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: [
2837
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UrlValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2838
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: UrlValidatorDirective, isStandalone: true, selector: "[url]", providers: [
2746
2839
  {
2747
2840
  provide: NG_VALIDATORS,
2748
2841
  useExisting: forwardRef(() => UrlValidatorDirective),
@@ -2750,7 +2843,7 @@ class UrlValidatorDirective {
2750
2843
  },
2751
2844
  ], ngImport: i0 }); }
2752
2845
  }
2753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: UrlValidatorDirective, decorators: [{
2846
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UrlValidatorDirective, decorators: [{
2754
2847
  type: Directive,
2755
2848
  args: [{
2756
2849
  selector: "[url]",
@@ -2793,8 +2886,8 @@ class ValidIfDirective {
2793
2886
  }
2794
2887
  return isValid ? null : { validIf: "Non valido." };
2795
2888
  }
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: [
2889
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidIfDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2890
+ 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
2891
  {
2799
2892
  provide: NG_VALIDATORS,
2800
2893
  useExisting: forwardRef(() => ValidIfDirective),
@@ -2802,7 +2895,7 @@ class ValidIfDirective {
2802
2895
  },
2803
2896
  ], ngImport: i0 }); }
2804
2897
  }
2805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ValidIfDirective, decorators: [{
2898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidIfDirective, decorators: [{
2806
2899
  type: Directive,
2807
2900
  args: [{
2808
2901
  selector: "[validIf]",
@@ -2836,10 +2929,10 @@ class ValidatorDirective {
2836
2929
  const fn = this.validator();
2837
2930
  return fn ? fn(control) : null;
2838
2931
  }
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 }); }
2932
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2933
+ 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
2934
  }
2842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ValidatorDirective, decorators: [{
2935
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ValidatorDirective, decorators: [{
2843
2936
  type: Directive,
2844
2937
  args: [{
2845
2938
  selector: '[validator]',
@@ -2872,10 +2965,10 @@ class FormatHtmlPipe {
2872
2965
  .replaceAll('"', '&quot;');
2873
2966
  return this.sanitizer.bypassSecurityTrustHtml(escaped.replaceAll(/(?:\r\n|\r|\n)/g, '<br>'));
2874
2967
  }
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" }); }
2968
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2969
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: FormatHtmlPipe, isStandalone: true, name: "formatHtml" }); }
2877
2970
  }
2878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatHtmlPipe, decorators: [{
2971
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatHtmlPipe, decorators: [{
2879
2972
  type: Pipe,
2880
2973
  args: [{
2881
2974
  name: 'formatHtml',
@@ -2900,10 +2993,10 @@ class FormatMarkdownPipe {
2900
2993
  transform(value) {
2901
2994
  return this.sanitizer.bypassSecurityTrustHtml(SystemUtils.markdownToHtml(value ?? ''));
2902
2995
  }
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" }); }
2996
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatMarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2997
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: FormatMarkdownPipe, isStandalone: true, name: "formatMarkdown" }); }
2905
2998
  }
2906
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatMarkdownPipe, decorators: [{
2999
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatMarkdownPipe, decorators: [{
2907
3000
  type: Pipe,
2908
3001
  args: [{
2909
3002
  name: 'formatMarkdown',
@@ -2960,10 +3053,10 @@ class FormatPipe {
2960
3053
  }
2961
3054
  return undefined;
2962
3055
  }
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" }); }
3056
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3057
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: FormatPipe, isStandalone: true, name: "format" }); }
2965
3058
  }
2966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormatPipe, decorators: [{
3059
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormatPipe, decorators: [{
2967
3060
  type: Pipe,
2968
3061
  args: [{
2969
3062
  name: 'format',
@@ -2996,10 +3089,10 @@ class ReplacePipe {
2996
3089
  const replacement = (regexValue === '\n' && !replaceValue) ? '<br>' : (replaceValue ?? '');
2997
3090
  return this.sanitizer.bypassSecurityTrustHtml(value.replace(new RegExp(regexValue, 'g'), replacement));
2998
3091
  }
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" }); }
3092
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ReplacePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3093
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: ReplacePipe, isStandalone: true, name: "replace" }); }
3001
3094
  }
3002
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ReplacePipe, decorators: [{
3095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ReplacePipe, decorators: [{
3003
3096
  type: Pipe,
3004
3097
  args: [{
3005
3098
  name: 'replace',
@@ -3025,10 +3118,10 @@ class SafeHtmlPipe {
3025
3118
  transform(value) {
3026
3119
  return this.sanitizer.bypassSecurityTrustHtml(value ?? '');
3027
3120
  }
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" }); }
3121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3122
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
3030
3123
  }
3031
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SafeHtmlPipe, decorators: [{
3124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeHtmlPipe, decorators: [{
3032
3125
  type: Pipe,
3033
3126
  args: [{
3034
3127
  name: 'safeHtml',
@@ -3054,10 +3147,10 @@ class SafeUrlPipe {
3054
3147
  transform(value) {
3055
3148
  return this.sanitizer.bypassSecurityTrustResourceUrl(value ?? '');
3056
3149
  }
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" }); }
3150
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3151
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" }); }
3059
3152
  }
3060
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SafeUrlPipe, decorators: [{
3153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SafeUrlPipe, decorators: [{
3061
3154
  type: Pipe,
3062
3155
  args: [{
3063
3156
  name: 'safeUrl',
@@ -3086,10 +3179,10 @@ class SearchCallbackPipe {
3086
3179
  return items;
3087
3180
  return items.filter(item => callback(item));
3088
3181
  }
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 }); }
3182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchCallbackPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3183
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SearchCallbackPipe, isStandalone: true, name: "callback", pure: false }); }
3091
3184
  }
3092
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SearchCallbackPipe, decorators: [{
3185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchCallbackPipe, decorators: [{
3093
3186
  type: Pipe,
3094
3187
  args: [{
3095
3188
  name: 'callback',
@@ -3142,10 +3235,10 @@ class SearchFilterPipe {
3142
3235
  metadata.count = result.length;
3143
3236
  return result;
3144
3237
  }
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" }); }
3238
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3239
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SearchFilterPipe, isStandalone: true, name: "search" }); }
3147
3240
  }
3148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SearchFilterPipe, decorators: [{
3241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchFilterPipe, decorators: [{
3149
3242
  type: Pipe,
3150
3243
  args: [{
3151
3244
  name: 'search',
@@ -3553,10 +3646,10 @@ class BroadcastService {
3553
3646
  observeMessage(id) {
3554
3647
  return this.subject.pipe(filter$1(info => info.id === id), map$1(info => info.data));
3555
3648
  }
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 }); }
3649
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BroadcastService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3650
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: BroadcastService }); }
3558
3651
  }
3559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: BroadcastService, decorators: [{
3652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BroadcastService, decorators: [{
3560
3653
  type: Service
3561
3654
  }] });
3562
3655
 
@@ -3614,10 +3707,10 @@ class EnvironmentService {
3614
3707
  get appServiceLoginUri() { return this._effectiveServiceLoginUri(); }
3615
3708
  /** @param value - The login endpoint URI of the backend service. */
3616
3709
  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 }); }
3710
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3711
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: EnvironmentService }); }
3619
3712
  }
3620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EnvironmentService, decorators: [{
3713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EnvironmentService, decorators: [{
3621
3714
  type: Service
3622
3715
  }] });
3623
3716
 
@@ -3648,10 +3741,10 @@ class ScreenService {
3648
3741
  get isIEOrEdge() {
3649
3742
  return SystemUtils.isBrowser() && /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
3650
3743
  }
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 }); }
3744
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScreenService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3745
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: ScreenService }); }
3653
3746
  }
3654
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScreenService, decorators: [{
3747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScreenService, decorators: [{
3655
3748
  type: Service
3656
3749
  }] });
3657
3750
 
@@ -3680,10 +3773,10 @@ class SplashService {
3680
3773
  bootstrapped() { this.api?.disarm(); }
3681
3774
  /** Fade out and remove the splash overlay from the DOM. */
3682
3775
  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 }); }
3776
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SplashService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3777
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: SplashService }); }
3685
3778
  }
3686
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SplashService, decorators: [{
3779
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SplashService, decorators: [{
3687
3780
  type: Service
3688
3781
  }] });
3689
3782
 
@@ -3811,10 +3904,10 @@ class ThemeService {
3811
3904
  this.themeChanged.next(this.getTheme());
3812
3905
  this.broadcastChannel.sendMessage(this.broadcastMessage, theme);
3813
3906
  }
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 }); }
3907
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
3908
+ static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.8", ngImport: i0, type: ThemeService }); }
3816
3909
  }
3817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ThemeService, decorators: [{
3910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ThemeService, decorators: [{
3818
3911
  type: Service
3819
3912
  }], ctorParameters: () => [] });
3820
3913