@arsedizioni/ars-utils 22.0.84 → 22.0.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +24 -24
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +48 -48
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.mjs +287 -286
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +15 -15
- package/fesm2022/arsedizioni-ars-utils-help.mjs +9 -9
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs +9 -9
- package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +6 -6
- package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +3 -3
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +57 -57
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +115 -120
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +6 -6
- package/package.json +1 -1
- package/types/arsedizioni-ars-utils-clipper.ui.d.ts +1 -1
- package/types/arsedizioni-ars-utils-core.d.ts +103 -15
- package/types/arsedizioni-ars-utils-ui.application.d.ts +2 -2
- package/types/arsedizioni-ars-utils-ui.d.ts +17 -11
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { inject, Injectable, makeEnvironmentProviders, InjectionToken, 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
5
|
import { format, getYear, getMonth, getDate, getDay, getDaysInMonth, parseISO, parse, addYears, addMonths, addDays, isDate, isValid, addSeconds, endOfDay } from 'date-fns';
|
|
@@ -13,189 +13,6 @@ import { DomSanitizer } from '@angular/platform-browser';
|
|
|
13
13
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
14
14
|
import { isPlatformBrowser } from '@angular/common';
|
|
15
15
|
|
|
16
|
-
/** Default application timezone: all dates are serialised as Europe/Rome wall-clock values. */
|
|
17
|
-
const DEFAULT_TIME_ZONE = 'Europe/Rome';
|
|
18
|
-
/**
|
|
19
|
-
* IANA timezone used to serialise dates towards the backend.
|
|
20
|
-
* Override it in the application providers to run the same code in another zone:
|
|
21
|
-
* `{ provide: ARS_TIME_ZONE, useValue: 'Europe/Zurich' }`.
|
|
22
|
-
*/
|
|
23
|
-
const ARS_TIME_ZONE = new InjectionToken('ARS_TIME_ZONE', {
|
|
24
|
-
providedIn: 'root',
|
|
25
|
-
factory: () => DEFAULT_TIME_ZONE,
|
|
26
|
-
});
|
|
27
|
-
/** Naive local datetime pattern (no timezone designator): the server reads it as DateTimeKind.Unspecified. */
|
|
28
|
-
const NAIVE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss";
|
|
29
|
-
/**
|
|
30
|
-
* Returns `true` for payloads that must be forwarded untouched
|
|
31
|
-
* (binary or already-encoded bodies).
|
|
32
|
-
* @param body - The request body to test.
|
|
33
|
-
*/
|
|
34
|
-
function isOpaqueBody(body) {
|
|
35
|
-
return (body instanceof FormData ||
|
|
36
|
-
body instanceof Blob ||
|
|
37
|
-
body instanceof ArrayBuffer ||
|
|
38
|
-
ArrayBuffer.isView(body) ||
|
|
39
|
-
body instanceof URLSearchParams ||
|
|
40
|
-
typeof body === 'string');
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Recursively replaces every `Date` found in `value` with its naive local
|
|
44
|
-
* datetime string, returning a NEW structure: the original object graph — and
|
|
45
|
-
* therefore any bound form model — is never mutated.
|
|
46
|
-
*
|
|
47
|
-
* @param value - The value to normalise (object, array, Date or primitive).
|
|
48
|
-
* @param timeZone - IANA timezone used to compute the wall-clock value.
|
|
49
|
-
* @param seen - Guard against circular references.
|
|
50
|
-
* @returns The normalised value, safe to hand over to `JSON.stringify`.
|
|
51
|
-
*/
|
|
52
|
-
function normalizeDates(value, timeZone, seen) {
|
|
53
|
-
if (value instanceof Date) {
|
|
54
|
-
// Invalid dates would make format() throw a RangeError: send null instead.
|
|
55
|
-
if (isNaN(value.getTime()))
|
|
56
|
-
return null;
|
|
57
|
-
return format(new TZDate(value.getTime(), timeZone), NAIVE_PATTERN);
|
|
58
|
-
}
|
|
59
|
-
if (value === null || typeof value !== 'object')
|
|
60
|
-
return value;
|
|
61
|
-
if (isOpaqueBody(value))
|
|
62
|
-
return value;
|
|
63
|
-
// Circular reference: leave it as is, JSON.stringify will report it anyway.
|
|
64
|
-
if (seen.has(value))
|
|
65
|
-
return value;
|
|
66
|
-
seen.add(value);
|
|
67
|
-
if (Array.isArray(value)) {
|
|
68
|
-
return value.map(item => normalizeDates(item, timeZone, seen));
|
|
69
|
-
}
|
|
70
|
-
const source = value;
|
|
71
|
-
const result = {};
|
|
72
|
-
for (const key of Object.keys(source)) {
|
|
73
|
-
result[key] = normalizeDates(source[key], timeZone, seen);
|
|
74
|
-
}
|
|
75
|
-
return result;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Rewrites the request body, if any, replacing Dates with naive local strings.
|
|
79
|
-
* Shared by the functional and the class-based interceptor.
|
|
80
|
-
* @param req - The outgoing request.
|
|
81
|
-
* @param timeZone - IANA timezone used to compute the wall-clock value.
|
|
82
|
-
* @returns The original request when there is nothing to convert, a clone otherwise.
|
|
83
|
-
*/
|
|
84
|
-
function localizeRequest(req, timeZone) {
|
|
85
|
-
const body = req.body;
|
|
86
|
-
if (body === null || body === undefined || isOpaqueBody(body))
|
|
87
|
-
return req;
|
|
88
|
-
return req.clone({ body: normalizeDates(body, timeZone, new WeakSet()) });
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Functional interceptor that serialises every `Date` in an outgoing request
|
|
92
|
-
* body as a naive local datetime string (`yyyy-MM-ddTHH:mm:ss`: no `Z`, no offset).
|
|
93
|
-
*
|
|
94
|
-
* WHY: `JSON.stringify` calls `Date.prototype.toJSON`, which emits a UTC instant.
|
|
95
|
-
* A date picked as 29/07/2026 00:00 in Rome (UTC+2) becomes
|
|
96
|
-
* `2026-07-28T22:00:00.000Z`, so the server stores the 28th — the classic
|
|
97
|
-
* "off by one day" bug. Sending the wall-clock value instead makes
|
|
98
|
-
* System.Text.Json produce a `DateTime` with `Kind = Unspecified` and the exact
|
|
99
|
-
* day/time the user selected.
|
|
100
|
-
*
|
|
101
|
-
* This is the single serialisation boundary of the application: no call site has
|
|
102
|
-
* to convert anything, and it also covers dates that lost a per-instance
|
|
103
|
-
* `toJSON` along the way (e.g. after `structuredClone`).
|
|
104
|
-
*
|
|
105
|
-
* Register it explicitly in `provideHttpClient(withInterceptors([...]))`.
|
|
106
|
-
* If you would rather have the library register it for you, use
|
|
107
|
-
* {@link provideArsLocalDates} instead.
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* provideHttpClient(withInterceptors([
|
|
111
|
-
* arsLocalDateInterceptor,
|
|
112
|
-
* evolutionAuthInterceptor(...),
|
|
113
|
-
* ]));
|
|
114
|
-
*/
|
|
115
|
-
const arsLocalDateInterceptor = (req, next) => next(localizeRequest(req, inject(ARS_TIME_ZONE)));
|
|
116
|
-
/**
|
|
117
|
-
* Class-based twin of {@link arsLocalDateInterceptor}.
|
|
118
|
-
*
|
|
119
|
-
* Exists because a functional `HttpInterceptorFn` can ONLY be registered inside
|
|
120
|
-
* `provideHttpClient(withInterceptors([...]))`, while a class registered on the
|
|
121
|
-
* `HTTP_INTERCEPTORS` multi-token can be contributed by any `EnvironmentProviders` —
|
|
122
|
-
* which is what lets {@link provideArsLocalDates} (and `provideArsDateFns`) wire it up
|
|
123
|
-
* on their own.
|
|
124
|
-
*
|
|
125
|
-
* REQUIRES `withInterceptorsFromDi()` in the application's `provideHttpClient()`:
|
|
126
|
-
* without it Angular never reads `HTTP_INTERCEPTORS` and this interceptor is
|
|
127
|
-
* silently skipped.
|
|
128
|
-
*/
|
|
129
|
-
class ArsLocalDateInterceptor {
|
|
130
|
-
constructor() {
|
|
131
|
-
this.timeZone = inject(ARS_TIME_ZONE);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Normalises the request body before handing it to the next handler.
|
|
135
|
-
* @param req - The outgoing request.
|
|
136
|
-
* @param next - The next handler in the chain.
|
|
137
|
-
*/
|
|
138
|
-
intercept(req, next) {
|
|
139
|
-
return next.handle(localizeRequest(req, this.timeZone));
|
|
140
|
-
}
|
|
141
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ArsLocalDateInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
142
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ArsLocalDateInterceptor }); }
|
|
143
|
-
}
|
|
144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ArsLocalDateInterceptor, decorators: [{
|
|
145
|
-
type: Injectable
|
|
146
|
-
}] });
|
|
147
|
-
/**
|
|
148
|
-
* Standalone providers for date serialisation towards the backend.
|
|
149
|
-
*
|
|
150
|
-
* Registers {@link ArsLocalDateInterceptor} so that every `Date` in a request
|
|
151
|
-
* body travels as a naive local datetime string instead of a UTC instant.
|
|
152
|
-
*
|
|
153
|
-
* IMPORTANT: the application MUST call `withInterceptorsFromDi()`, otherwise
|
|
154
|
-
* these providers have no effect at all (no error is raised).
|
|
155
|
-
*
|
|
156
|
-
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
157
|
-
*
|
|
158
|
-
* @example
|
|
159
|
-
* providers: [
|
|
160
|
-
* provideArsLocalDates(),
|
|
161
|
-
* provideHttpClient(withInterceptors([evolutionAuthInterceptor(...)]), withInterceptorsFromDi()),
|
|
162
|
-
* ]
|
|
163
|
-
*/
|
|
164
|
-
function provideArsLocalDates(timeZone = DEFAULT_TIME_ZONE) {
|
|
165
|
-
return makeEnvironmentProviders([
|
|
166
|
-
{ provide: ARS_TIME_ZONE, useValue: timeZone },
|
|
167
|
-
{ provide: HTTP_INTERCEPTORS, useClass: ArsLocalDateInterceptor, multi: true },
|
|
168
|
-
]);
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Formats a date as a date-only ISO string (`yyyy-MM-dd`) using its wall-clock
|
|
172
|
-
* calendar day in the given timezone. Use it for query-string parameters and for
|
|
173
|
-
* DTO fields mapped to a .NET `DateOnly`, which the interceptor cannot detect.
|
|
174
|
-
*
|
|
175
|
-
* @param value - The date to serialise.
|
|
176
|
-
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
177
|
-
* @returns The `yyyy-MM-dd` string, or `undefined` for empty/invalid input.
|
|
178
|
-
*/
|
|
179
|
-
function toLocalDateOnlyString(value, timeZone = DEFAULT_TIME_ZONE) {
|
|
180
|
-
if (!value || isNaN(value.getTime()))
|
|
181
|
-
return undefined;
|
|
182
|
-
return format(new TZDate(value.getTime(), timeZone), 'yyyy-MM-dd');
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Formats a date as a naive local datetime string (`yyyy-MM-ddTHH:mm:ss`), the
|
|
186
|
-
* same representation produced by the interceptor. Useful for query-string
|
|
187
|
-
* parameters, which never pass through the request body.
|
|
188
|
-
*
|
|
189
|
-
* @param value - The date to serialise.
|
|
190
|
-
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
191
|
-
* @returns The naive datetime string, or `undefined` for empty/invalid input.
|
|
192
|
-
*/
|
|
193
|
-
function toLocalDateTimeString(value, timeZone = DEFAULT_TIME_ZONE) {
|
|
194
|
-
if (!value || isNaN(value.getTime()))
|
|
195
|
-
return undefined;
|
|
196
|
-
return format(new TZDate(value.getTime(), timeZone), NAIVE_PATTERN);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
16
|
/**
|
|
200
17
|
* Creates an array of the given length, filling each slot with the result of `valueFunction`.
|
|
201
18
|
* @param length - Number of elements to create.
|
|
@@ -577,10 +394,10 @@ class DateFnsAdapter extends DateAdapter {
|
|
|
577
394
|
}
|
|
578
395
|
return null;
|
|
579
396
|
}
|
|
580
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
581
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0
|
|
397
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DateFnsAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
398
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DateFnsAdapter }); }
|
|
582
399
|
}
|
|
583
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
400
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DateFnsAdapter, decorators: [{
|
|
584
401
|
type: Injectable
|
|
585
402
|
}], ctorParameters: () => [] });
|
|
586
403
|
/**
|
|
@@ -595,15 +412,199 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
595
412
|
* providers: [provideArsDateFns()]
|
|
596
413
|
* });
|
|
597
414
|
*/
|
|
598
|
-
function provideArsDateFns(
|
|
599
|
-
const { timeZone = 'Europe/Rome', httpSerialization = true } = options;
|
|
415
|
+
function provideArsDateFns() {
|
|
600
416
|
return makeEnvironmentProviders([
|
|
601
|
-
{
|
|
602
|
-
|
|
603
|
-
|
|
417
|
+
{
|
|
418
|
+
provide: DateAdapter,
|
|
419
|
+
useClass: DateFnsAdapter
|
|
420
|
+
},
|
|
421
|
+
{ provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS }
|
|
604
422
|
]);
|
|
605
423
|
}
|
|
606
424
|
|
|
425
|
+
/** Default application timezone: all dates are serialised as Europe/Rome wall-clock values. */
|
|
426
|
+
const DEFAULT_TIME_ZONE = 'Europe/Rome';
|
|
427
|
+
/**
|
|
428
|
+
* IANA timezone used to serialise dates towards the backend.
|
|
429
|
+
* Override it in the application providers to run the same code in another zone:
|
|
430
|
+
* `{ provide: ARS_TIME_ZONE, useValue: 'Europe/Zurich' }`.
|
|
431
|
+
*/
|
|
432
|
+
const ARS_TIME_ZONE = new InjectionToken('ARS_TIME_ZONE', {
|
|
433
|
+
providedIn: 'root',
|
|
434
|
+
factory: () => DEFAULT_TIME_ZONE,
|
|
435
|
+
});
|
|
436
|
+
/** Naive local datetime pattern (no timezone designator): the server reads it as DateTimeKind.Unspecified. */
|
|
437
|
+
const NAIVE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss";
|
|
438
|
+
/**
|
|
439
|
+
* Returns `true` for payloads that must be forwarded untouched
|
|
440
|
+
* (binary or already-encoded bodies).
|
|
441
|
+
* @param body - The request body to test.
|
|
442
|
+
*/
|
|
443
|
+
function isOpaqueBody(body) {
|
|
444
|
+
return (body instanceof FormData ||
|
|
445
|
+
body instanceof Blob ||
|
|
446
|
+
body instanceof ArrayBuffer ||
|
|
447
|
+
ArrayBuffer.isView(body) ||
|
|
448
|
+
body instanceof URLSearchParams ||
|
|
449
|
+
typeof body === 'string');
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Recursively replaces every `Date` found in `value` with its naive local
|
|
453
|
+
* datetime string, returning a NEW structure: the original object graph — and
|
|
454
|
+
* therefore any bound form model — is never mutated.
|
|
455
|
+
*
|
|
456
|
+
* @param value - The value to normalise (object, array, Date or primitive).
|
|
457
|
+
* @param timeZone - IANA timezone used to compute the wall-clock value.
|
|
458
|
+
* @param seen - Guard against circular references.
|
|
459
|
+
* @returns The normalised value, safe to hand over to `JSON.stringify`.
|
|
460
|
+
*/
|
|
461
|
+
function normalizeDates(value, timeZone, seen) {
|
|
462
|
+
if (value instanceof Date) {
|
|
463
|
+
// Invalid dates would make format() throw a RangeError: send null instead.
|
|
464
|
+
if (isNaN(value.getTime()))
|
|
465
|
+
return null;
|
|
466
|
+
return format(new TZDate(value.getTime(), timeZone), NAIVE_PATTERN);
|
|
467
|
+
}
|
|
468
|
+
if (value === null || typeof value !== 'object')
|
|
469
|
+
return value;
|
|
470
|
+
if (isOpaqueBody(value))
|
|
471
|
+
return value;
|
|
472
|
+
// Circular reference: leave it as is, JSON.stringify will report it anyway.
|
|
473
|
+
if (seen.has(value))
|
|
474
|
+
return value;
|
|
475
|
+
seen.add(value);
|
|
476
|
+
if (Array.isArray(value)) {
|
|
477
|
+
return value.map(item => normalizeDates(item, timeZone, seen));
|
|
478
|
+
}
|
|
479
|
+
const source = value;
|
|
480
|
+
const result = {};
|
|
481
|
+
for (const key of Object.keys(source)) {
|
|
482
|
+
result[key] = normalizeDates(source[key], timeZone, seen);
|
|
483
|
+
}
|
|
484
|
+
return result;
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Rewrites the request body, if any, replacing Dates with naive local strings.
|
|
488
|
+
* Shared by the functional and the class-based interceptor.
|
|
489
|
+
* @param req - The outgoing request.
|
|
490
|
+
* @param timeZone - IANA timezone used to compute the wall-clock value.
|
|
491
|
+
* @returns The original request when there is nothing to convert, a clone otherwise.
|
|
492
|
+
*/
|
|
493
|
+
function localizeRequest(req, timeZone) {
|
|
494
|
+
const body = req.body;
|
|
495
|
+
if (body === null || body === undefined || isOpaqueBody(body))
|
|
496
|
+
return req;
|
|
497
|
+
return req.clone({ body: normalizeDates(body, timeZone, new WeakSet()) });
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Functional interceptor that serialises every `Date` in an outgoing request
|
|
501
|
+
* body as a naive local datetime string (`yyyy-MM-ddTHH:mm:ss`: no `Z`, no offset).
|
|
502
|
+
*
|
|
503
|
+
* WHY: `JSON.stringify` calls `Date.prototype.toJSON`, which emits a UTC instant.
|
|
504
|
+
* A date picked as 29/07/2026 00:00 in Rome (UTC+2) becomes
|
|
505
|
+
* `2026-07-28T22:00:00.000Z`, so the server stores the 28th — the classic
|
|
506
|
+
* "off by one day" bug. Sending the wall-clock value instead makes
|
|
507
|
+
* System.Text.Json produce a `DateTime` with `Kind = Unspecified` and the exact
|
|
508
|
+
* day/time the user selected.
|
|
509
|
+
*
|
|
510
|
+
* This is the single serialisation boundary of the application: no call site has
|
|
511
|
+
* to convert anything, and it also covers dates that lost a per-instance
|
|
512
|
+
* `toJSON` along the way (e.g. after `structuredClone`).
|
|
513
|
+
*
|
|
514
|
+
* Register it explicitly in `provideHttpClient(withInterceptors([...]))`.
|
|
515
|
+
* If you would rather have the library register it for you, use
|
|
516
|
+
* {@link provideArsLocalDates} instead.
|
|
517
|
+
*
|
|
518
|
+
* @example
|
|
519
|
+
* provideHttpClient(withInterceptors([
|
|
520
|
+
* arsLocalDateInterceptor,
|
|
521
|
+
* evolutionAuthInterceptor(...),
|
|
522
|
+
* ]));
|
|
523
|
+
*/
|
|
524
|
+
const arsLocalDateInterceptor = (req, next) => next(localizeRequest(req, inject(ARS_TIME_ZONE)));
|
|
525
|
+
/**
|
|
526
|
+
* Class-based twin of {@link arsLocalDateInterceptor}.
|
|
527
|
+
*
|
|
528
|
+
* Exists because a functional `HttpInterceptorFn` can ONLY be registered inside
|
|
529
|
+
* `provideHttpClient(withInterceptors([...]))`, while a class registered on the
|
|
530
|
+
* `HTTP_INTERCEPTORS` multi-token can be contributed by any `EnvironmentProviders` —
|
|
531
|
+
* which is what lets {@link provideArsLocalDates} (and `provideArsDateFns`) wire it up
|
|
532
|
+
* on their own.
|
|
533
|
+
*
|
|
534
|
+
* REQUIRES `withInterceptorsFromDi()` in the application's `provideHttpClient()`:
|
|
535
|
+
* without it Angular never reads `HTTP_INTERCEPTORS` and this interceptor is
|
|
536
|
+
* silently skipped.
|
|
537
|
+
*/
|
|
538
|
+
class ArsLocalDateInterceptor {
|
|
539
|
+
constructor() {
|
|
540
|
+
this.timeZone = inject(ARS_TIME_ZONE);
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Normalises the request body before handing it to the next handler.
|
|
544
|
+
* @param req - The outgoing request.
|
|
545
|
+
* @param next - The next handler in the chain.
|
|
546
|
+
*/
|
|
547
|
+
intercept(req, next) {
|
|
548
|
+
return next.handle(localizeRequest(req, this.timeZone));
|
|
549
|
+
}
|
|
550
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ArsLocalDateInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
551
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ArsLocalDateInterceptor }); }
|
|
552
|
+
}
|
|
553
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ArsLocalDateInterceptor, decorators: [{
|
|
554
|
+
type: Injectable
|
|
555
|
+
}] });
|
|
556
|
+
/**
|
|
557
|
+
* Standalone providers for date serialisation towards the backend.
|
|
558
|
+
*
|
|
559
|
+
* Registers {@link ArsLocalDateInterceptor} so that every `Date` in a request
|
|
560
|
+
* body travels as a naive local datetime string instead of a UTC instant.
|
|
561
|
+
*
|
|
562
|
+
* IMPORTANT: the application MUST call `withInterceptorsFromDi()`, otherwise
|
|
563
|
+
* these providers have no effect at all (no error is raised).
|
|
564
|
+
*
|
|
565
|
+
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
566
|
+
*
|
|
567
|
+
* @example
|
|
568
|
+
* providers: [
|
|
569
|
+
* provideArsLocalDates(),
|
|
570
|
+
* provideHttpClient(withInterceptors([evolutionAuthInterceptor(...)]), withInterceptorsFromDi()),
|
|
571
|
+
* ]
|
|
572
|
+
*/
|
|
573
|
+
function provideArsLocalDates(timeZone = DEFAULT_TIME_ZONE) {
|
|
574
|
+
return makeEnvironmentProviders([
|
|
575
|
+
{ provide: ARS_TIME_ZONE, useValue: timeZone },
|
|
576
|
+
{ provide: HTTP_INTERCEPTORS, useClass: ArsLocalDateInterceptor, multi: true },
|
|
577
|
+
]);
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* Formats a date as a date-only ISO string (`yyyy-MM-dd`) using its wall-clock
|
|
581
|
+
* calendar day in the given timezone. Use it for query-string parameters and for
|
|
582
|
+
* DTO fields mapped to a .NET `DateOnly`, which the interceptor cannot detect.
|
|
583
|
+
*
|
|
584
|
+
* @param value - The date to serialise.
|
|
585
|
+
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
586
|
+
* @returns The `yyyy-MM-dd` string, or `undefined` for empty/invalid input.
|
|
587
|
+
*/
|
|
588
|
+
function toLocalDateOnlyString(value, timeZone = DEFAULT_TIME_ZONE) {
|
|
589
|
+
if (!value || isNaN(value.getTime()))
|
|
590
|
+
return undefined;
|
|
591
|
+
return format(new TZDate(value.getTime(), timeZone), 'yyyy-MM-dd');
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* Formats a date as a naive local datetime string (`yyyy-MM-ddTHH:mm:ss`), the
|
|
595
|
+
* same representation produced by the interceptor. Useful for query-string
|
|
596
|
+
* parameters, which never pass through the request body.
|
|
597
|
+
*
|
|
598
|
+
* @param value - The date to serialise.
|
|
599
|
+
* @param timeZone - IANA timezone name (default: `Europe/Rome`).
|
|
600
|
+
* @returns The naive datetime string, or `undefined` for empty/invalid input.
|
|
601
|
+
*/
|
|
602
|
+
function toLocalDateTimeString(value, timeZone = DEFAULT_TIME_ZONE) {
|
|
603
|
+
if (!value || isNaN(value.getTime()))
|
|
604
|
+
return undefined;
|
|
605
|
+
return format(new TZDate(value.getTime(), timeZone), NAIVE_PATTERN);
|
|
606
|
+
}
|
|
607
|
+
|
|
607
608
|
/**
|
|
608
609
|
* Directive that moves browser focus to the host element after the first render cycle.
|
|
609
610
|
* Apply `autoFocus` to any focusable element to set focus automatically on initialisation.
|
|
@@ -615,10 +616,10 @@ class AutoFocusDirective {
|
|
|
615
616
|
this.elementRef.nativeElement?.focus();
|
|
616
617
|
});
|
|
617
618
|
}
|
|
618
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
619
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
619
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AutoFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
620
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AutoFocusDirective, isStandalone: true, selector: "[autoFocus]", ngImport: i0 }); }
|
|
620
621
|
}
|
|
621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AutoFocusDirective, decorators: [{
|
|
622
623
|
type: Directive,
|
|
623
624
|
args: [{
|
|
624
625
|
selector: '[autoFocus]',
|
|
@@ -2331,10 +2332,10 @@ class DateIntervalChangeDirective {
|
|
|
2331
2332
|
onKeyup(e) {
|
|
2332
2333
|
this.subject.next(e);
|
|
2333
2334
|
}
|
|
2334
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2335
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
2335
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DateIntervalChangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2336
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", 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 }); }
|
|
2336
2337
|
}
|
|
2337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DateIntervalChangeDirective, decorators: [{
|
|
2338
2339
|
type: Directive,
|
|
2339
2340
|
args: [{
|
|
2340
2341
|
selector: '[dateIntervalChange]',
|
|
@@ -2381,10 +2382,10 @@ class CopyClipboardDirective {
|
|
|
2381
2382
|
document.removeEventListener('copy', listener, false);
|
|
2382
2383
|
}
|
|
2383
2384
|
}
|
|
2384
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2385
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
2385
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CopyClipboardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2386
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", 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 }); }
|
|
2386
2387
|
}
|
|
2387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: CopyClipboardDirective, decorators: [{
|
|
2388
2389
|
type: Directive,
|
|
2389
2390
|
args: [{
|
|
2390
2391
|
selector: '[copyClipboard]',
|
|
@@ -2413,8 +2414,8 @@ class EmailsValidatorDirective {
|
|
|
2413
2414
|
const isValid = parts.every(part => part.length === 0 || !!SystemUtils.parseEmail(part));
|
|
2414
2415
|
return isValid ? null : { emails: "Elenco non valido." };
|
|
2415
2416
|
}
|
|
2416
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2417
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
2417
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: EmailsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2418
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: EmailsValidatorDirective, isStandalone: true, selector: "[emails]", providers: [
|
|
2418
2419
|
{
|
|
2419
2420
|
provide: NG_VALIDATORS,
|
|
2420
2421
|
useExisting: forwardRef(() => EmailsValidatorDirective),
|
|
@@ -2422,7 +2423,7 @@ class EmailsValidatorDirective {
|
|
|
2422
2423
|
},
|
|
2423
2424
|
], ngImport: i0 }); }
|
|
2424
2425
|
}
|
|
2425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: EmailsValidatorDirective, decorators: [{
|
|
2426
2427
|
type: Directive,
|
|
2427
2428
|
args: [{
|
|
2428
2429
|
selector: "[emails]",
|
|
@@ -2481,8 +2482,8 @@ class EqualsValidatorDirective {
|
|
|
2481
2482
|
return null;
|
|
2482
2483
|
return eq.value === control.value ? null : { equals: "Non valido." };
|
|
2483
2484
|
}
|
|
2484
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2485
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
2485
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: EqualsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2486
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: EqualsValidatorDirective, isStandalone: true, selector: "[equals]", inputs: { equals: { classPropertyName: "equals", publicName: "equals", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
2486
2487
|
{
|
|
2487
2488
|
provide: NG_VALIDATORS,
|
|
2488
2489
|
useExisting: forwardRef(() => EqualsValidatorDirective),
|
|
@@ -2490,7 +2491,7 @@ class EqualsValidatorDirective {
|
|
|
2490
2491
|
},
|
|
2491
2492
|
], ngImport: i0 }); }
|
|
2492
2493
|
}
|
|
2493
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: EqualsValidatorDirective, decorators: [{
|
|
2494
2495
|
type: Directive,
|
|
2495
2496
|
args: [{
|
|
2496
2497
|
selector: "[equals]",
|
|
@@ -2534,8 +2535,8 @@ class FileSizeValidatorDirective {
|
|
|
2534
2535
|
const isValid = s <= this.maxSizeMb() && s >= this.minSizeMb();
|
|
2535
2536
|
return isValid ? null : { fileSize: "Non valido." };
|
|
2536
2537
|
}
|
|
2537
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2538
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
2538
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FileSizeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2539
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", 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: [
|
|
2539
2540
|
{
|
|
2540
2541
|
provide: NG_VALIDATORS,
|
|
2541
2542
|
useExisting: forwardRef(() => FileSizeValidatorDirective),
|
|
@@ -2543,7 +2544,7 @@ class FileSizeValidatorDirective {
|
|
|
2543
2544
|
},
|
|
2544
2545
|
], ngImport: i0 }); }
|
|
2545
2546
|
}
|
|
2546
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2547
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FileSizeValidatorDirective, decorators: [{
|
|
2547
2548
|
type: Directive,
|
|
2548
2549
|
args: [{
|
|
2549
2550
|
selector: "[fileSize]",
|
|
@@ -2574,8 +2575,8 @@ class GuidValidatorDirective {
|
|
|
2574
2575
|
return null;
|
|
2575
2576
|
return SystemUtils.parseUUID(input) ? null : { guid: "Non valido." };
|
|
2576
2577
|
}
|
|
2577
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2578
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
2578
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: GuidValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2579
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: GuidValidatorDirective, isStandalone: true, selector: "[guid]", providers: [
|
|
2579
2580
|
{
|
|
2580
2581
|
provide: NG_VALIDATORS,
|
|
2581
2582
|
useExisting: forwardRef(() => GuidValidatorDirective),
|
|
@@ -2583,7 +2584,7 @@ class GuidValidatorDirective {
|
|
|
2583
2584
|
},
|
|
2584
2585
|
], ngImport: i0 }); }
|
|
2585
2586
|
}
|
|
2586
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2587
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: GuidValidatorDirective, decorators: [{
|
|
2587
2588
|
type: Directive,
|
|
2588
2589
|
args: [{
|
|
2589
2590
|
selector: "[guid]",
|
|
@@ -2620,8 +2621,8 @@ class MaxTermsValidatorDirective {
|
|
|
2620
2621
|
const terms = input.match(/\S+/g)?.length ?? 0;
|
|
2621
2622
|
return terms <= this.maxTerms() ? null : { maxTerms: "Non valido." };
|
|
2622
2623
|
}
|
|
2623
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2624
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
2624
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: MaxTermsValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2625
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: MaxTermsValidatorDirective, isStandalone: true, selector: "[maxTerms]", inputs: { maxTerms: { classPropertyName: "maxTerms", publicName: "maxTerms", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
2625
2626
|
{
|
|
2626
2627
|
provide: NG_VALIDATORS,
|
|
2627
2628
|
useExisting: forwardRef(() => MaxTermsValidatorDirective),
|
|
@@ -2629,7 +2630,7 @@ class MaxTermsValidatorDirective {
|
|
|
2629
2630
|
},
|
|
2630
2631
|
], ngImport: i0 }); }
|
|
2631
2632
|
}
|
|
2632
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2633
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: MaxTermsValidatorDirective, decorators: [{
|
|
2633
2634
|
type: Directive,
|
|
2634
2635
|
args: [{
|
|
2635
2636
|
selector: "[maxTerms]",
|
|
@@ -2660,8 +2661,8 @@ class NotEmptyValidatorDirective {
|
|
|
2660
2661
|
return null;
|
|
2661
2662
|
return input.trim().length > 0 ? null : { notEmpty: true };
|
|
2662
2663
|
}
|
|
2663
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2664
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
2664
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NotEmptyValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2665
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: NotEmptyValidatorDirective, isStandalone: true, selector: "[notEmpty]", providers: [
|
|
2665
2666
|
{
|
|
2666
2667
|
provide: NG_VALIDATORS,
|
|
2667
2668
|
useExisting: forwardRef(() => NotEmptyValidatorDirective),
|
|
@@ -2669,7 +2670,7 @@ class NotEmptyValidatorDirective {
|
|
|
2669
2670
|
},
|
|
2670
2671
|
], ngImport: i0 }); }
|
|
2671
2672
|
}
|
|
2672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2673
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NotEmptyValidatorDirective, decorators: [{
|
|
2673
2674
|
type: Directive,
|
|
2674
2675
|
args: [{
|
|
2675
2676
|
selector: "[notEmpty]",
|
|
@@ -2742,8 +2743,8 @@ class NotEqualValidatorDirective {
|
|
|
2742
2743
|
}
|
|
2743
2744
|
return errors;
|
|
2744
2745
|
}
|
|
2745
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2746
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
2746
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NotEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2747
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: NotEqualValidatorDirective, isStandalone: true, selector: "[notEqual]", inputs: { notEqual: { classPropertyName: "notEqual", publicName: "notEqual", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
2747
2748
|
{
|
|
2748
2749
|
provide: NG_VALIDATORS,
|
|
2749
2750
|
useExisting: forwardRef(() => NotEqualValidatorDirective),
|
|
@@ -2751,7 +2752,7 @@ class NotEqualValidatorDirective {
|
|
|
2751
2752
|
},
|
|
2752
2753
|
], ngImport: i0 }); }
|
|
2753
2754
|
}
|
|
2754
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NotEqualValidatorDirective, decorators: [{
|
|
2755
2756
|
type: Directive,
|
|
2756
2757
|
args: [{
|
|
2757
2758
|
selector: "[notEqual]",
|
|
@@ -2787,8 +2788,8 @@ class NotFutureValidatorDirective {
|
|
|
2787
2788
|
const d = endOfDay(parsed);
|
|
2788
2789
|
return d <= today ? null : { notFuture: "Non valido." };
|
|
2789
2790
|
}
|
|
2790
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2791
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
2791
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NotFutureValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2792
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: NotFutureValidatorDirective, isStandalone: true, selector: "[notFuture]", providers: [
|
|
2792
2793
|
{
|
|
2793
2794
|
provide: NG_VALIDATORS,
|
|
2794
2795
|
useExisting: forwardRef(() => NotFutureValidatorDirective),
|
|
@@ -2796,7 +2797,7 @@ class NotFutureValidatorDirective {
|
|
|
2796
2797
|
},
|
|
2797
2798
|
], ngImport: i0 }); }
|
|
2798
2799
|
}
|
|
2799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NotFutureValidatorDirective, decorators: [{
|
|
2800
2801
|
type: Directive,
|
|
2801
2802
|
args: [{
|
|
2802
2803
|
selector: "[notFuture]",
|
|
@@ -2825,8 +2826,8 @@ class PasswordValidatorDirective {
|
|
|
2825
2826
|
const strength = SystemUtils.calculatePasswordStrength(input);
|
|
2826
2827
|
return strength.isValid ? null : { password: "Non valido." };
|
|
2827
2828
|
}
|
|
2828
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2829
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
2829
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: PasswordValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2830
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: PasswordValidatorDirective, isStandalone: true, selector: "[password]", providers: [
|
|
2830
2831
|
{
|
|
2831
2832
|
provide: NG_VALIDATORS,
|
|
2832
2833
|
useExisting: forwardRef(() => PasswordValidatorDirective),
|
|
@@ -2834,7 +2835,7 @@ class PasswordValidatorDirective {
|
|
|
2834
2835
|
},
|
|
2835
2836
|
], ngImport: i0 }); }
|
|
2836
2837
|
}
|
|
2837
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: PasswordValidatorDirective, decorators: [{
|
|
2838
2839
|
type: Directive,
|
|
2839
2840
|
args: [{
|
|
2840
2841
|
selector: "[password]",
|
|
@@ -2868,10 +2869,10 @@ class RemoveFocusDirective {
|
|
|
2868
2869
|
setTimeout(() => el.blur(), 0);
|
|
2869
2870
|
}
|
|
2870
2871
|
}
|
|
2871
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2872
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
2872
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: RemoveFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2873
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: RemoveFocusDirective, isStandalone: true, selector: "[removeFocus]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
|
|
2873
2874
|
}
|
|
2874
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2875
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: RemoveFocusDirective, decorators: [{
|
|
2875
2876
|
type: Directive,
|
|
2876
2877
|
args: [{
|
|
2877
2878
|
selector: '[removeFocus]',
|
|
@@ -2902,8 +2903,8 @@ class SqlDateValidatorDirective {
|
|
|
2902
2903
|
const d = endOfDay(parsed);
|
|
2903
2904
|
return d.getFullYear() > 1750 ? null : { sqlDate: "Non valido." };
|
|
2904
2905
|
}
|
|
2905
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2906
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
2906
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SqlDateValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2907
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: SqlDateValidatorDirective, isStandalone: true, selector: "[sqlDate]", providers: [
|
|
2907
2908
|
{
|
|
2908
2909
|
provide: NG_VALIDATORS,
|
|
2909
2910
|
useExisting: forwardRef(() => SqlDateValidatorDirective),
|
|
@@ -2911,7 +2912,7 @@ class SqlDateValidatorDirective {
|
|
|
2911
2912
|
},
|
|
2912
2913
|
], ngImport: i0 }); }
|
|
2913
2914
|
}
|
|
2914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2915
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SqlDateValidatorDirective, decorators: [{
|
|
2915
2916
|
type: Directive,
|
|
2916
2917
|
args: [{
|
|
2917
2918
|
selector: "[sqlDate]",
|
|
@@ -2977,8 +2978,8 @@ class TimeValidatorDirective {
|
|
|
2977
2978
|
}
|
|
2978
2979
|
return null;
|
|
2979
2980
|
}
|
|
2980
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
2981
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
2981
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TimeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2982
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: TimeValidatorDirective, isStandalone: true, selector: "[time]", inputs: { slots: { classPropertyName: "slots", publicName: "slots", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
2982
2983
|
{
|
|
2983
2984
|
provide: NG_VALIDATORS,
|
|
2984
2985
|
useExisting: forwardRef(() => TimeValidatorDirective),
|
|
@@ -2986,7 +2987,7 @@ class TimeValidatorDirective {
|
|
|
2986
2987
|
},
|
|
2987
2988
|
], ngImport: i0 }); }
|
|
2988
2989
|
}
|
|
2989
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
2990
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: TimeValidatorDirective, decorators: [{
|
|
2990
2991
|
type: Directive,
|
|
2991
2992
|
args: [{
|
|
2992
2993
|
selector: "[time]",
|
|
@@ -3017,8 +3018,8 @@ class UrlValidatorDirective {
|
|
|
3017
3018
|
return null;
|
|
3018
3019
|
return SystemUtils.parseUrl(input) ? null : { url: "Non valido." };
|
|
3019
3020
|
}
|
|
3020
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3021
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0
|
|
3021
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: UrlValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3022
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: UrlValidatorDirective, isStandalone: true, selector: "[url]", providers: [
|
|
3022
3023
|
{
|
|
3023
3024
|
provide: NG_VALIDATORS,
|
|
3024
3025
|
useExisting: forwardRef(() => UrlValidatorDirective),
|
|
@@ -3026,7 +3027,7 @@ class UrlValidatorDirective {
|
|
|
3026
3027
|
},
|
|
3027
3028
|
], ngImport: i0 }); }
|
|
3028
3029
|
}
|
|
3029
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3030
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: UrlValidatorDirective, decorators: [{
|
|
3030
3031
|
type: Directive,
|
|
3031
3032
|
args: [{
|
|
3032
3033
|
selector: "[url]",
|
|
@@ -3069,8 +3070,8 @@ class ValidIfDirective {
|
|
|
3069
3070
|
}
|
|
3070
3071
|
return isValid ? null : { validIf: "Non valido." };
|
|
3071
3072
|
}
|
|
3072
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3073
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
3073
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ValidIfDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3074
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: ValidIfDirective, isStandalone: true, selector: "[validIf]", inputs: { validIf: { classPropertyName: "validIf", publicName: "validIf", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
3074
3075
|
{
|
|
3075
3076
|
provide: NG_VALIDATORS,
|
|
3076
3077
|
useExisting: forwardRef(() => ValidIfDirective),
|
|
@@ -3078,7 +3079,7 @@ class ValidIfDirective {
|
|
|
3078
3079
|
},
|
|
3079
3080
|
], ngImport: i0 }); }
|
|
3080
3081
|
}
|
|
3081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3082
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ValidIfDirective, decorators: [{
|
|
3082
3083
|
type: Directive,
|
|
3083
3084
|
args: [{
|
|
3084
3085
|
selector: "[validIf]",
|
|
@@ -3112,10 +3113,10 @@ class ValidatorDirective {
|
|
|
3112
3113
|
const fn = this.validator();
|
|
3113
3114
|
return fn ? fn(control) : null;
|
|
3114
3115
|
}
|
|
3115
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3116
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0
|
|
3116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3117
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", 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 }); }
|
|
3117
3118
|
}
|
|
3118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ValidatorDirective, decorators: [{
|
|
3119
3120
|
type: Directive,
|
|
3120
3121
|
args: [{
|
|
3121
3122
|
selector: '[validator]',
|
|
@@ -3148,10 +3149,10 @@ class FormatHtmlPipe {
|
|
|
3148
3149
|
.replaceAll('"', '"');
|
|
3149
3150
|
return this.sanitizer.bypassSecurityTrustHtml(escaped.replaceAll(/(?:\r\n|\r|\n)/g, '<br>'));
|
|
3150
3151
|
}
|
|
3151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3152
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FormatHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3153
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: FormatHtmlPipe, isStandalone: true, name: "formatHtml" }); }
|
|
3153
3154
|
}
|
|
3154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FormatHtmlPipe, decorators: [{
|
|
3155
3156
|
type: Pipe,
|
|
3156
3157
|
args: [{
|
|
3157
3158
|
name: 'formatHtml',
|
|
@@ -3176,10 +3177,10 @@ class FormatMarkdownPipe {
|
|
|
3176
3177
|
transform(value) {
|
|
3177
3178
|
return this.sanitizer.bypassSecurityTrustHtml(SystemUtils.markdownToHtml(value ?? ''));
|
|
3178
3179
|
}
|
|
3179
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3180
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3180
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FormatMarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3181
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: FormatMarkdownPipe, isStandalone: true, name: "formatMarkdown" }); }
|
|
3181
3182
|
}
|
|
3182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FormatMarkdownPipe, decorators: [{
|
|
3183
3184
|
type: Pipe,
|
|
3184
3185
|
args: [{
|
|
3185
3186
|
name: 'formatMarkdown',
|
|
@@ -3236,10 +3237,10 @@ class FormatPipe {
|
|
|
3236
3237
|
}
|
|
3237
3238
|
return undefined;
|
|
3238
3239
|
}
|
|
3239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3240
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3241
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: FormatPipe, isStandalone: true, name: "format" }); }
|
|
3241
3242
|
}
|
|
3242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: FormatPipe, decorators: [{
|
|
3243
3244
|
type: Pipe,
|
|
3244
3245
|
args: [{
|
|
3245
3246
|
name: 'format',
|
|
@@ -3272,10 +3273,10 @@ class ReplacePipe {
|
|
|
3272
3273
|
const replacement = (regexValue === '\n' && !replaceValue) ? '<br>' : (replaceValue ?? '');
|
|
3273
3274
|
return this.sanitizer.bypassSecurityTrustHtml(value.replace(new RegExp(regexValue, 'g'), replacement));
|
|
3274
3275
|
}
|
|
3275
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3276
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ReplacePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3277
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: ReplacePipe, isStandalone: true, name: "replace" }); }
|
|
3277
3278
|
}
|
|
3278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ReplacePipe, decorators: [{
|
|
3279
3280
|
type: Pipe,
|
|
3280
3281
|
args: [{
|
|
3281
3282
|
name: 'replace',
|
|
@@ -3301,10 +3302,10 @@ class SafeHtmlPipe {
|
|
|
3301
3302
|
transform(value) {
|
|
3302
3303
|
return this.sanitizer.bypassSecurityTrustHtml(value ?? '');
|
|
3303
3304
|
}
|
|
3304
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3305
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3306
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
|
|
3306
3307
|
}
|
|
3307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
3308
3309
|
type: Pipe,
|
|
3309
3310
|
args: [{
|
|
3310
3311
|
name: 'safeHtml',
|
|
@@ -3330,10 +3331,10 @@ class SafeUrlPipe {
|
|
|
3330
3331
|
transform(value) {
|
|
3331
3332
|
return this.sanitizer.bypassSecurityTrustResourceUrl(value ?? '');
|
|
3332
3333
|
}
|
|
3333
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3334
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3334
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3335
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" }); }
|
|
3335
3336
|
}
|
|
3336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SafeUrlPipe, decorators: [{
|
|
3337
3338
|
type: Pipe,
|
|
3338
3339
|
args: [{
|
|
3339
3340
|
name: 'safeUrl',
|
|
@@ -3362,10 +3363,10 @@ class SearchCallbackPipe {
|
|
|
3362
3363
|
return items;
|
|
3363
3364
|
return items.filter(item => callback(item));
|
|
3364
3365
|
}
|
|
3365
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3366
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3366
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SearchCallbackPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3367
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: SearchCallbackPipe, isStandalone: true, name: "callback", pure: false }); }
|
|
3367
3368
|
}
|
|
3368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3369
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SearchCallbackPipe, decorators: [{
|
|
3369
3370
|
type: Pipe,
|
|
3370
3371
|
args: [{
|
|
3371
3372
|
name: 'callback',
|
|
@@ -3418,10 +3419,10 @@ class SearchFilterPipe {
|
|
|
3418
3419
|
metadata.count = result.length;
|
|
3419
3420
|
return result;
|
|
3420
3421
|
}
|
|
3421
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3422
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0
|
|
3422
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SearchFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3423
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.0", ngImport: i0, type: SearchFilterPipe, isStandalone: true, name: "search" }); }
|
|
3423
3424
|
}
|
|
3424
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SearchFilterPipe, decorators: [{
|
|
3425
3426
|
type: Pipe,
|
|
3426
3427
|
args: [{
|
|
3427
3428
|
name: 'search',
|
|
@@ -3829,10 +3830,10 @@ class BroadcastService {
|
|
|
3829
3830
|
observeMessage(id) {
|
|
3830
3831
|
return this.subject.pipe(filter$1(info => info.id === id), map$1(info => info.data));
|
|
3831
3832
|
}
|
|
3832
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3833
|
-
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0
|
|
3833
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: BroadcastService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
3834
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.0", ngImport: i0, type: BroadcastService }); }
|
|
3834
3835
|
}
|
|
3835
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: BroadcastService, decorators: [{
|
|
3836
3837
|
type: Service
|
|
3837
3838
|
}] });
|
|
3838
3839
|
|
|
@@ -3890,10 +3891,10 @@ class EnvironmentService {
|
|
|
3890
3891
|
get appServiceLoginUri() { return this._effectiveServiceLoginUri(); }
|
|
3891
3892
|
/** @param value - The login endpoint URI of the backend service. */
|
|
3892
3893
|
set appServiceLoginUri(value) { this.appServiceLoginUriSignal.set(value); }
|
|
3893
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3894
|
-
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0
|
|
3894
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
3895
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.0", ngImport: i0, type: EnvironmentService }); }
|
|
3895
3896
|
}
|
|
3896
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3897
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: EnvironmentService, decorators: [{
|
|
3897
3898
|
type: Service
|
|
3898
3899
|
}] });
|
|
3899
3900
|
|
|
@@ -3924,10 +3925,10 @@ class ScreenService {
|
|
|
3924
3925
|
get isIEOrEdge() {
|
|
3925
3926
|
return SystemUtils.isBrowser() && /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
|
|
3926
3927
|
}
|
|
3927
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3928
|
-
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0
|
|
3928
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ScreenService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
3929
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.0", ngImport: i0, type: ScreenService }); }
|
|
3929
3930
|
}
|
|
3930
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3931
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ScreenService, decorators: [{
|
|
3931
3932
|
type: Service
|
|
3932
3933
|
}] });
|
|
3933
3934
|
|
|
@@ -3956,10 +3957,10 @@ class SplashService {
|
|
|
3956
3957
|
bootstrapped() { this.api?.disarm(); }
|
|
3957
3958
|
/** Fade out and remove the splash overlay from the DOM. */
|
|
3958
3959
|
hide() { this.api?.hide(); }
|
|
3959
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
3960
|
-
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0
|
|
3960
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SplashService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
3961
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.0", ngImport: i0, type: SplashService }); }
|
|
3961
3962
|
}
|
|
3962
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
3963
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: SplashService, decorators: [{
|
|
3963
3964
|
type: Service
|
|
3964
3965
|
}] });
|
|
3965
3966
|
|
|
@@ -4087,10 +4088,10 @@ class ThemeService {
|
|
|
4087
4088
|
this.themeChanged.next(this.getTheme());
|
|
4088
4089
|
this.broadcastChannel.sendMessage(this.broadcastMessage, theme);
|
|
4089
4090
|
}
|
|
4090
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0
|
|
4091
|
-
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0
|
|
4091
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Service }); }
|
|
4092
|
+
static { this.ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.0", ngImport: i0, type: ThemeService }); }
|
|
4092
4093
|
}
|
|
4093
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0
|
|
4094
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: ThemeService, decorators: [{
|
|
4094
4095
|
type: Service
|
|
4095
4096
|
}], ctorParameters: () => [] });
|
|
4096
4097
|
|
|
@@ -4102,5 +4103,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4102
4103
|
* Generated bundle index. Do not edit.
|
|
4103
4104
|
*/
|
|
4104
4105
|
|
|
4105
|
-
export { AutoFocusDirective, BroadcastChannelManager, BroadcastService, CHANNEL_NAME, CopyClipboardDirective, DateFnsAdapter, DateFormat, DateInterval, DateIntervalChangeDirective, DeleteModel, EmailsValidatorDirective, EnvironmentService, EqualsValidatorDirective, FileInfo, FileSizeValidatorDirective, FormatHtmlPipe, FormatMarkdownPipe, FormatPipe, GroupModel, GuidValidatorDirective, IDModel, ImportModel, MAT_DATE_FNS_FORMATS, MaxTermsValidatorDirective, NotEmptyValidatorDirective, NotEqualValidatorDirective, NotFutureValidatorDirective, PasswordValidatorDirective, QueryModel, RelationModel, RemoveFocusDirective, ReplacePipe, SafeHtmlPipe, SafeUrlPipe, ScreenService, SearchCallbackPipe, SearchFilterPipe, SelectableModel, SplashService, SqlDateValidatorDirective, SystemUtils, ThemeService, TimeValidatorDirective, UpdateRelationsModel, UrlValidatorDirective, UtilsMessages, ValidIfDirective, ValidatorDirective, ValueModel, provideArsDateFns };
|
|
4106
|
+
export { ARS_TIME_ZONE, ArsLocalDateInterceptor, AutoFocusDirective, BroadcastChannelManager, BroadcastService, CHANNEL_NAME, CopyClipboardDirective, DEFAULT_TIME_ZONE, DateFnsAdapter, DateFormat, DateInterval, DateIntervalChangeDirective, DeleteModel, EmailsValidatorDirective, EnvironmentService, EqualsValidatorDirective, FileInfo, FileSizeValidatorDirective, FormatHtmlPipe, FormatMarkdownPipe, FormatPipe, GroupModel, GuidValidatorDirective, IDModel, ImportModel, MAT_DATE_FNS_FORMATS, MaxTermsValidatorDirective, NotEmptyValidatorDirective, NotEqualValidatorDirective, NotFutureValidatorDirective, PasswordValidatorDirective, QueryModel, RelationModel, RemoveFocusDirective, ReplacePipe, SafeHtmlPipe, SafeUrlPipe, ScreenService, SearchCallbackPipe, SearchFilterPipe, SelectableModel, SplashService, SqlDateValidatorDirective, SystemUtils, ThemeService, TimeValidatorDirective, UpdateRelationsModel, UrlValidatorDirective, UtilsMessages, ValidIfDirective, ValidatorDirective, ValueModel, arsLocalDateInterceptor, provideArsDateFns, provideArsLocalDates, toLocalDateOnlyString, toLocalDateTimeString };
|
|
4106
4107
|
//# sourceMappingURL=arsedizioni-ars-utils-core.mjs.map
|