@esfaenza/material-dayjs-adapter 12.2.6 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@esfaenza/material-dayjs-adapter" />
4
5
  export * from './public-api';
@@ -0,0 +1,373 @@
1
+ // Angular
2
+ import { Inject, Injectable } from "@angular/core";
3
+ import { DateAdapter, MAT_DATE_LOCALE } from "@angular/material/core";
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Adapter per permettere a Material di funzionare senza problemi con DayJs. Per altri provider di date (es. moment) l'adapter viene fornito
7
+ * nativamente da Angular. Per DayJs invece bisogna reimplementarselo
8
+ */
9
+ export class DayJsDateAdapter extends DateAdapter {
10
+ /**
11
+ * Costruttore
12
+ *
13
+ * @ignore
14
+ */
15
+ constructor(dateLocale) {
16
+ super();
17
+ this.setLocale(dateLocale);
18
+ }
19
+ /**
20
+ * Imposta il locale utilizzato per tutte le date
21
+ *
22
+ * @param {string} locale Locale da impostare
23
+ */
24
+ setLocale(locale) {
25
+ super.setLocale(locale);
26
+ // il localeData si potrebbe prendere da this.dayJs().localeData(); ma io voglio usare le date solo nel formato italiano quindi cablo quello
27
+ switch (locale) {
28
+ case 'it':
29
+ import("dayjs/locale/it").then(mod => { this.loadLoacleDataModule(mod.default); });
30
+ break;
31
+ // In dayjs, nel locale "en" e basta non esistono i 3/4 delle info perché sono le cose generiche ereditate dai locali en-gb, en-au ecc...
32
+ // quindi mi baso sul locale inglese Britannico, ma comunque I'ts Coming Rome
33
+ case 'en':
34
+ import("dayjs/locale/en-gb").then(mod => { this.loadLoacleDataModule(mod.default); });
35
+ break;
36
+ default: throw `Locale non riconosicuto '${locale}'. Locali consentiti: 'it', 'en'`;
37
+ }
38
+ }
39
+ /**
40
+ * Effettua il caricamento del localeData coi nomi dei mesi, giorni ecc partendo dal modulo importato
41
+ *
42
+ * @param {any} mod Modulo caricato contenente il locale desiderato
43
+ */
44
+ loadLoacleDataModule(mod) {
45
+ this._localeData = {
46
+ firstDayOfWeek: mod.weekStart,
47
+ longMonths: mod.months,
48
+ shortMonths: mod.monthsShort,
49
+ dates: this.range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),
50
+ longDaysOfWeek: mod.weekdays,
51
+ shortDaysOfWeek: mod.weekdaysShort,
52
+ narrowDaysOfWeek: mod.weekdaysMin,
53
+ };
54
+ }
55
+ /**
56
+ * Ottiene le ore da un DayJs
57
+ *
58
+ * @param {Dayjs} date Data Dayjs
59
+ *
60
+ * @returns {number} Ore
61
+ */
62
+ getHour(date) {
63
+ return date.get("hour");
64
+ }
65
+ /**
66
+ * Ottiene i minuti da un DayJs
67
+ *
68
+ * @param {Dayjs} date Data Dayjs
69
+ *
70
+ * @returns {number} Minuti
71
+ */
72
+ getMinute(date) {
73
+ return date.get("minute");
74
+ }
75
+ /**
76
+ * Ottiene i secondi da un DayJs
77
+ *
78
+ * @param {Dayjs} date Data Dayjs
79
+ *
80
+ * @returns {number} Secondi
81
+ */
82
+ getSecond(date) {
83
+ return date.get("second");
84
+ }
85
+ /**
86
+ * Imposta le ore di una data Dayjs
87
+ *
88
+ * @param {Dayjs} date Data da modificare
89
+ * @param {number} value Valore da impostare per le ore
90
+ */
91
+ setHour(date, value) {
92
+ date.$H = value;
93
+ }
94
+ /**
95
+ * Imposta i minuti di una data Dayjs
96
+ *
97
+ * @param {Dayjs} date Data da modificare
98
+ * @param {number} value Valore da impostare per i minuti
99
+ */
100
+ setMinute(date, value) {
101
+ date.$m = value;
102
+ }
103
+ /**
104
+ * Imposta i secondi di una data Dayjs
105
+ *
106
+ * @param {Dayjs} date Data da modificare
107
+ * @param {number} value Valore da impostare per i secondi
108
+ */
109
+ setSecond(date, value) {
110
+ date.$s = value;
111
+ }
112
+ /**
113
+ * Ottiene l'anno da un DayJs
114
+ *
115
+ * @param {Dayjs} date Data Dayjs
116
+ *
117
+ * @returns {number} Anno
118
+ */
119
+ getYear(date) {
120
+ return date.get("year");
121
+ }
122
+ /**
123
+ * Ottiene il mese da un DayJs
124
+ *
125
+ * @param {Dayjs} date Data Dayjs
126
+ *
127
+ * @returns {number} Mese
128
+ */
129
+ getMonth(date) {
130
+ return date.get("month");
131
+ }
132
+ /**
133
+ * Ottiene il giorno da un DayJs
134
+ *
135
+ * @param {Dayjs} date Data Dayjs
136
+ *
137
+ * @returns {number} Giorno
138
+ */
139
+ getDate(date) {
140
+ return date.get("date");
141
+ }
142
+ /**
143
+ * Ottiene il giorno della settimana da un DayJs
144
+ *
145
+ * @param {Dayjs} date Data Dayjs
146
+ *
147
+ * @returns {number} Giorno della settimana da 1 a 7
148
+ */
149
+ getDayOfWeek(date) {
150
+ return date.get("day");
151
+ }
152
+ /**
153
+ * Ottiene i nomi dei mesi
154
+ *
155
+ * @param {"long" | "short" | "narrow"} style Stile dei nomi richiesto
156
+ *
157
+ * @returns {string[]} Lista dei mesi espressi in base al parametro **style**
158
+ */
159
+ getMonthNames(style) {
160
+ return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;
161
+ }
162
+ /**
163
+ * Ottiene i nomi dei giorni del mese
164
+ *
165
+ * @returns {string[]} Lista dei giorni del mese (da '1' a '31')
166
+ */
167
+ getDateNames() {
168
+ return this._localeData.dates;
169
+ }
170
+ /**
171
+ * Ottiene i nomi dei giorni della settimana
172
+ *
173
+ * @param {"long" | "short" | "narrow"} style Stile dei nomi richiesto
174
+ *
175
+ * @returns {string[]} Lista dei giorni della settimana espressi in base al parametro **style**
176
+ */
177
+ getDayOfWeekNames(style) {
178
+ if (style == 'long')
179
+ return this._localeData.longDaysOfWeek;
180
+ else if (style == 'short')
181
+ return this._localeData.shortDaysOfWeek;
182
+ return this._localeData.narrowDaysOfWeek;
183
+ }
184
+ /**
185
+ * Ottiene il nome dell'anno
186
+ *
187
+ * @param {Dayjs} date Data Dayjs
188
+ *
189
+ * @returns {string} Anno
190
+ */
191
+ getYearName(date) {
192
+ return this.getYear(date).toString();
193
+ }
194
+ /**
195
+ * Ottiene il primo giorno della settimana
196
+ *
197
+ * @returns {number} Indice del primo giorno della settimana
198
+ */
199
+ getFirstDayOfWeek() {
200
+ return this._localeData.firstDayOfWeek;
201
+ }
202
+ /**
203
+ * Ottiene il numero di giorni nel mese corrente
204
+ *
205
+ * @param {Dayjs} date Data Dayjs
206
+ *
207
+ * @returns {number} Numero di giorni
208
+ */
209
+ getNumDaysInMonth(date) {
210
+ return date.daysInMonth();
211
+ }
212
+ /**
213
+ * Ottiene il clone di una data Dayjs
214
+ *
215
+ * @param {Dayjs} Data da clonare
216
+ *
217
+ * @returns {Dayjs} Clone
218
+ */
219
+ clone(date) {
220
+ // Visto che ho modificato l'istanza originale a manazza (vedi setHour, setMinute, setSecond) l'oggetto è danneggiato e per restituire un clone buono
221
+ // devo ricrearlo prendendo pezzo per pezzo
222
+ // Il mese è un indice 0-11 quindi devo dargli un +1 qua
223
+ return dayjs(`${this.getYear(date)}-${this.getMonth(date) + 1}-${this.getDate(date)} ${this.getHour(date)}:${this.getMinute(date)}:${this.getSecond(date)}`);
224
+ }
225
+ /**
226
+ * Crea una data partendo da anno, mese e giorno
227
+ *
228
+ * @param {number} year Anno
229
+ * @param {number} month Mese
230
+ * @param {number} date Giorno
231
+ *
232
+ * @returns {Dayjs} Oggetto generato in base ai parametri **year**, **month**, e **date**
233
+ */
234
+ createDate(year, month, date) {
235
+ if (month < 0 || month > 11)
236
+ throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
237
+ if (date < 1)
238
+ throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
239
+ //Il mese è un indice 0-11 quindi devo dargli un +1 qua
240
+ const result = dayjs(`${year}-${month + 1}-${date}`);
241
+ if (!result.isValid())
242
+ throw Error(`Invalid date "${date}" for month with index "${month}".`);
243
+ return result;
244
+ }
245
+ /**
246
+ * Restituisce la data che rappresenta la giornata di oggi
247
+ *
248
+ * @returns {Dayjs} Oggi
249
+ */
250
+ today() {
251
+ return dayjs();
252
+ }
253
+ /**
254
+ * Effettua il parse di una data, eventualmente in base al formato specificato
255
+ *
256
+ * @param {any} value Valore da parsare
257
+ * @param {string} parseFormat Formato in cui leggere il valore
258
+ *
259
+ * @returns {Dayjs} Data generata
260
+ */
261
+ parse(value, parseFormat) {
262
+ if (value && typeof value == 'string')
263
+ return dayjs(value, parseFormat);
264
+ return value ? dayjs(value) : null;
265
+ }
266
+ /**
267
+ * Formatta una data in base al formato specificato
268
+ *
269
+ * @param {Dayjs} date Data da formattare
270
+ * @param {string} displayFormat Formato in cui mostrare la data
271
+ *
272
+ * @returns {string} Data formattata
273
+ */
274
+ format(date, displayFormat) {
275
+ if (!this.isValid(date))
276
+ throw Error('DateAdapter: Cannot format invalid date.');
277
+ return date.format(displayFormat);
278
+ }
279
+ /**
280
+ * Aggiunge ad una data il numero specificato di anni
281
+ *
282
+ * @param {Dayjs} date Data a cui aggiungere gli anni
283
+ * @param {number} years Anni da aggiungere
284
+ *
285
+ * @returns {Dayjs} Data con l'aggiunta degli anni specificati
286
+ */
287
+ addCalendarYears(date, years) {
288
+ return date.add(years, "year");
289
+ }
290
+ /**
291
+ * Aggiunge ad una data il numero specificato di mesi
292
+ *
293
+ * @param {Dayjs} date Data a cui aggiungere i mesi
294
+ * @param {months} months Mesi da aggiungere
295
+ *
296
+ * @returns {Dayjs} Data con l'aggiunta dei mesi specificati
297
+ */
298
+ addCalendarMonths(date, months) {
299
+ return date.add(months, "month");
300
+ }
301
+ /**
302
+ * Aggiunge ad una data il numero specificato di giorni
303
+ *
304
+ * @param {Dayjs} date Data a cui aggiungere i giorni
305
+ * @param {months} days Giorni da aggiungere
306
+ *
307
+ * @returns {Dayjs} Data con l'aggiunta dei giorni specificati
308
+ */
309
+ addCalendarDays(date, days) {
310
+ return date.add(days, "day");
311
+ }
312
+ /**
313
+ * Trasforma la data specificata in una stringa ISO8601
314
+ *
315
+ * @param {Dayjs} date Data
316
+ *
317
+ * @returns {string} Rappresentazione in ISO8601
318
+ */
319
+ toIso8601(date) {
320
+ return date.toISOString();
321
+ }
322
+ /**
323
+ * Controlla se l'oggetto passato è effettivamente un DayJs
324
+ *
325
+ * @param {any} obj Oggetto da verificare se è una data o meno
326
+ *
327
+ * @returns {boolean} **true** se l'oggetto è un DayJs, **false** altrimenti
328
+ */
329
+ isDateInstance(obj) {
330
+ return dayjs.isDayjs(obj);
331
+ }
332
+ /**
333
+ * Controlla il DayJs passato e verifica se è valido
334
+ *
335
+ * @param {Dayjs} date Data da verificare
336
+ *
337
+ * @returns {boolean} **true** se il DayJs è valido, **false** altrimenti
338
+ */
339
+ isValid(date) {
340
+ return date.isValid();
341
+ }
342
+ /**
343
+ * Restituisce un DayJs invalido
344
+ *
345
+ * @returns {DayJs} Data Invalida
346
+ */
347
+ invalid() {
348
+ return dayjs("Invalid Date");
349
+ }
350
+ /**
351
+ * Crea un range di una lunghezza specifica e per ogni indice del range richiama un callback che valorizza l'elemento di quell'indice
352
+ *
353
+ * @param {number} length Lunghezza del range
354
+ * @param {Function} valueFunction Callback che deve generare il valore desiderato per ogni indice
355
+ *
356
+ * @returns {T[]} Array dei valori generati
357
+ */
358
+ range(length, valueFunction) {
359
+ const valuesArray = Array(length);
360
+ for (let i = 0; i < length; i++)
361
+ valuesArray[i] = valueFunction(i);
362
+ return valuesArray;
363
+ }
364
+ }
365
+ DayJsDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DayJsDateAdapter, deps: [{ token: MAT_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable });
366
+ DayJsDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DayJsDateAdapter });
367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DayJsDateAdapter, decorators: [{
368
+ type: Injectable
369
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
370
+ type: Inject,
371
+ args: [MAT_DATE_LOCALE]
372
+ }] }]; } });
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF5anNEYXRlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWRheWpzLWFkYXB0ZXIvc3JjL2xpYi9hZGFwdGVyL0RheWpzRGF0ZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBV3RFOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFrQjtJQWVwRDs7OztPQUlHO0lBQ0gsWUFBcUMsVUFBa0I7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLE1BQWM7UUFDM0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4Qiw0SUFBNEk7UUFDNUksUUFBUSxNQUFNLEVBQUU7WUFDWixLQUFLLElBQUk7Z0JBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU07WUFDcEcseUlBQXlJO1lBQ3pJLDZFQUE2RTtZQUM3RSxLQUFLLElBQUk7Z0JBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU07WUFDdkcsT0FBTyxD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QUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQUMsSUFBVyxFQUFFLElBQVk7UUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLElBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWMsQ0FBQyxHQUFRO1FBQzFCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksT0FBTyxDQUFDLElBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1YsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxLQUFLLENBQUksTUFBYyxFQUFFLGFBQW1DO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUMzQixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OzZHQXBaUSxnQkFBZ0Isa0JBb0JMLGVBQWU7aUhBcEIxQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBcUJNLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XHJcblxyXG4vLyBEYXlqc1xyXG5pbXBvcnQgeyBEYXlqcyB9IGZyb20gXCJkYXlqc1wiO1xyXG5cclxuLyoqXHJcbiAqIERpY2hpYXJhemlvbmUgZGVsbGEgdmFyaWFiaWxlIGdsb2JhbGUgZGF5anMuIEwnb25lcmUgZGkgXCJjcmVhcmxhXCIgw6ggYWZmaWRhdG8gYWxsJ2FwcGxpY2F6aW9uZSBjaGUgdXRpbGl6emEgcXVlc3RhIGxpYnJlcmlhLCBcclxuICogY2hlIGRvdnLDoCBpbXBvcnRhcmUgbG8gc2NyaXB0IGdsb2JhbGUgZGkgZGF5anMgbmVsbGEgQ0xJXHJcbiAqL1xyXG5kZWNsYXJlIHZhciBkYXlqczogYW55O1xyXG5cclxuLyoqXHJcbiAqIEFkYXB0ZXIgcGVyIHBlcm1ldHRlcmUgYSBNYXRlcmlhbCBkaSBmdW56aW9uYXJlIHNlbnphIHByb2JsZW1pIGNvbiBEYXlKcy4gUGVyIGFsdHJpIHByb3ZpZGVyIGRpIGRhdGUgKGVzLiBtb21lbnQpIGwnYWRhcHRlciB2aWVuZSBmb3JuaXRvIFxyXG4gKiBuYXRpdmFtZW50ZSBkYSBBbmd1bGFyLiBQZXIgRGF5SnMgaW52ZWNlIGJpc29nbmEgcmVpbXBsZW1lbnRhcnNlbG9cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERheUpzRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxEYXlqcz57XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWNoZSBkZWkgZGF0aSBkZWwgbG9jYWxlIEl0YWxpYW5vXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2xvY2FsZURhdGE6IHtcclxuICAgICAgICBmaXJzdERheU9mV2VlazogbnVtYmVyLFxyXG4gICAgICAgIGxvbmdNb250aHM6IHN0cmluZ1tdLFxyXG4gICAgICAgIHNob3J0TW9udGhzOiBzdHJpbmdbXSxcclxuICAgICAgICBkYXRlczogc3RyaW5nW10sXHJcbiAgICAgICAgbG9uZ0RheXNPZldlZWs6IHN0cmluZ1tdLFxyXG4gICAgICAgIHNob3J0RGF5c09mV2Vlazogc3RyaW5nW10sXHJcbiAgICAgICAgbmFycm93RGF5c09mV2Vlazogc3RyaW5nW11cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3N0cnV0dG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RBVEVfTE9DQUxFKSBkYXRlTG9jYWxlOiBzdHJpbmcpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICB0aGlzLnNldExvY2FsZShkYXRlTG9jYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgaWwgbG9jYWxlIHV0aWxpenphdG8gcGVyIHR1dHRlIGxlIGRhdGVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGxvY2FsZSBMb2NhbGUgZGEgaW1wb3N0YXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcclxuICAgICAgICBzdXBlci5zZXRMb2NhbGUobG9jYWxlKTtcclxuXHJcbiAgICAgICAgLy8gaWwgbG9jYWxlRGF0YSBzaSBwb3RyZWJiZSBwcmVuZGVyZSBkYSB0aGlzLmRheUpzKCkubG9jYWxlRGF0YSgpOyBtYSBpbyB2b2dsaW8gdXNhcmUgbGUgZGF0ZSBzb2xvIG5lbCBmb3JtYXRvIGl0YWxpYW5vIHF1aW5kaSBjYWJsbyBxdWVsbG9cclxuICAgICAgICBzd2l0Y2ggKGxvY2FsZSkge1xyXG4gICAgICAgICAgICBjYXNlICdpdCc6IGltcG9ydChcImRheWpzL2xvY2FsZS9pdFwiKS50aGVuKG1vZCA9PiB7IHRoaXMubG9hZExvYWNsZURhdGFNb2R1bGUobW9kLmRlZmF1bHQpIH0pOyBicmVhaztcclxuICAgICAgICAgICAgLy8gSW4gZGF5anMsIG5lbCBsb2NhbGUgXCJlblwiIGUgYmFzdGEgbm9uIGVzaXN0b25vIGkgMy80IGRlbGxlIGluZm8gcGVyY2jDqSBzb25vIGxlIGNvc2UgZ2VuZXJpY2hlIGVyZWRpdGF0ZSBkYWkgbG9jYWxpIGVuLWdiLCBlbi1hdSBlY2MuLi5cclxuICAgICAgICAgICAgLy8gcXVpbmRpIG1pIGJhc28gc3VsIGxvY2FsZSBpbmdsZXNlIEJyaXRhbm5pY28sIG1hIGNvbXVucXVlIEkndHMgQ29taW5nIFJvbWVcclxuICAgICAgICAgICAgY2FzZSAnZW4nOiBpbXBvcnQoXCJkYXlqcy9sb2NhbGUvZW4tZ2JcIikudGhlbihtb2QgPT4geyB0aGlzLmxvYWRMb2FjbGVEYXRhTW9kdWxlKG1vZC5kZWZhdWx0KSB9KTsgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IGBMb2NhbGUgbm9uIHJpY29ub3NpY3V0byAnJHtsb2NhbGV9Jy4gTG9jYWxpIGNvbnNlbnRpdGk6ICdpdCcsICdlbidgO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGlsIGNhcmljYW1lbnRvIGRlbCBsb2NhbGVEYXRhIGNvaSBub21pIGRlaSBtZXNpLCBnaW9ybmkgZWNjIHBhcnRlbmRvIGRhbCBtb2R1bG8gaW1wb3J0YXRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBtb2QgTW9kdWxvIGNhcmljYXRvIGNvbnRlbmVudGUgaWwgbG9jYWxlIGRlc2lkZXJhdG9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2FkTG9hY2xlRGF0YU1vZHVsZShtb2Q6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX2xvY2FsZURhdGEgPSB7XHJcbiAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrOiBtb2Qud2Vla1N0YXJ0LFxyXG4gICAgICAgICAgICBsb25nTW9udGhzOiBtb2QubW9udGhzLFxyXG4gICAgICAgICAgICBzaG9ydE1vbnRoczogbW9kLm1vbnRoc1Nob3J0LFxyXG4gICAgICAgICAgICBkYXRlczogdGhpcy5yYW5nZSgzMSwgKGkpID0+IHRoaXMuY3JlYXRlRGF0ZSgyMDE3LCAwLCBpICsgMSkuZm9ybWF0KCdEJykpLFxyXG4gICAgICAgICAgICBsb25nRGF5c09mV2VlazogbW9kLndlZWtkYXlzLFxyXG4gICAgICAgICAgICBzaG9ydERheXNPZldlZWs6IG1vZC53ZWVrZGF5c1Nob3J0LFxyXG4gICAgICAgICAgICBuYXJyb3dEYXlzT2ZXZWVrOiBtb2Qud2Vla2RheXNNaW4sXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgbGUgb3JlIGRhIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBPcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEhvdXIoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcImhvdXJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGkgbWludXRpIGRhIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBNaW51dGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldE1pbnV0ZShkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0KFwibWludXRlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIHNlY29uZGkgZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFNlY29uZGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFNlY29uZChkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0KFwic2Vjb25kXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBsZSBvcmUgZGkgdW5hIGRhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGRhIG1vZGlmaWNhcmVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBWYWxvcmUgZGEgaW1wb3N0YXJlIHBlciBsZSBvcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEhvdXIoZGF0ZTogRGF5anMsIHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAoPGFueT5kYXRlKS4kSCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBpIG1pbnV0aSBkaSB1bmEgZGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgZGEgbW9kaWZpY2FyZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFZhbG9yZSBkYSBpbXBvc3RhcmUgcGVyIGkgbWludXRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRNaW51dGUoZGF0ZTogRGF5anMsIHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAoPGFueT5kYXRlKS4kbSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBpIHNlY29uZGkgZGkgdW5hIGRhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGRhIG1vZGlmaWNhcmVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBWYWxvcmUgZGEgaW1wb3N0YXJlIHBlciBpIHNlY29uZGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFNlY29uZChkYXRlOiBEYXlqcywgdmFsdWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgICg8YW55PmRhdGUpLiRzID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGwnYW5ubyBkYSB1biBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gQW5ub1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0KFwieWVhclwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgbWVzZSBkYSB1biBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gTWVzZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TW9udGgoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcIm1vbnRoXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpbCBnaW9ybm8gZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEdpb3Jub1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0KFwiZGF0ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgZ2lvcm5vIGRlbGxhIHNldHRpbWFuYSBkYSB1biBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gR2lvcm5vIGRlbGxhIHNldHRpbWFuYSBkYSAxIGEgN1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF5T2ZXZWVrKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXQoXCJkYXlcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGkgbm9taSBkZWkgbWVzaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1wibG9uZ1wiIHwgXCJzaG9ydFwiIHwgXCJuYXJyb3dcIn0gc3R5bGUgU3RpbGUgZGVpIG5vbWkgcmljaGllc3RvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmdbXX0gTGlzdGEgZGVpIG1lc2kgZXNwcmVzc2kgaW4gYmFzZSBhbCBwYXJhbWV0cm8gKipzdHlsZSoqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRNb250aE5hbWVzKHN0eWxlOiBcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCIpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHN0eWxlID09ICdsb25nJyA/IHRoaXMuX2xvY2FsZURhdGEubG9uZ01vbnRocyA6IHRoaXMuX2xvY2FsZURhdGEuc2hvcnRNb250aHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGkgbm9taSBkZWkgZ2lvcm5pIGRlbCBtZXNlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmdbXX0gTGlzdGEgZGVpIGdpb3JuaSBkZWwgbWVzZSAoZGEgJzEnIGEgJzMxJylcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEuZGF0ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGkgbm9taSBkZWkgZ2lvcm5pIGRlbGxhIHNldHRpbWFuYVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1wibG9uZ1wiIHwgXCJzaG9ydFwiIHwgXCJuYXJyb3dcIn0gc3R5bGUgU3RpbGUgZGVpIG5vbWkgcmljaGllc3RvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmdbXX0gTGlzdGEgZGVpIGdpb3JuaSBkZWxsYSBzZXR0aW1hbmEgZXNwcmVzc2kgaW4gYmFzZSBhbCBwYXJhbWV0cm8gKipzdHlsZSoqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGlmIChzdHlsZSA9PSAnbG9uZycpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmxvbmdEYXlzT2ZXZWVrO1xyXG4gICAgICAgIGVsc2UgaWYgKHN0eWxlID09ICdzaG9ydCcpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0RGF5c09mV2VlaztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubmFycm93RGF5c09mV2VlaztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgbm9tZSBkZWxsJ2Fubm9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IEFubm9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFllYXJOYW1lKGRhdGU6IERheWpzKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRZZWFyKGRhdGUpLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIHByaW1vIGdpb3JubyBkZWxsYSBzZXR0aW1hbmFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gSW5kaWNlIGRlbCBwcmltbyBnaW9ybm8gZGVsbGEgc2V0dGltYW5hXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpbCBudW1lcm8gZGkgZ2lvcm5pIG5lbCBtZXNlIGNvcnJlbnRlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBOdW1lcm8gZGkgZ2lvcm5pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGgoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgY2xvbmUgZGkgdW5hIGRhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gRGF0YSBkYSBjbG9uYXJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtEYXlqc30gQ2xvbmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsb25lKGRhdGU6IERheWpzKTogRGF5anMge1xyXG4gICAgICAgIC8vIFZpc3RvIGNoZSBobyBtb2RpZmljYXRvIGwnaXN0YW56YSBvcmlnaW5hbGUgYSBtYW5henphICh2ZWRpIHNldEhvdXIsIHNldE1pbnV0ZSwgc2V0U2Vjb25kKSBsJ29nZ2V0dG8gw6ggZGFubmVnZ2lhdG8gZSBwZXIgcmVzdGl0dWlyZSB1biBjbG9uZSBidW9ub1xyXG4gICAgICAgIC8vIGRldm8gcmljcmVhcmxvIHByZW5kZW5kbyBwZXp6byBwZXIgcGV6em9cclxuICAgICAgICAvLyBJbCBtZXNlIMOoIHVuIGluZGljZSAwLTExIHF1aW5kaSBkZXZvIGRhcmdsaSB1biArMSBxdWFcclxuICAgICAgICByZXR1cm4gZGF5anMoYCR7dGhpcy5nZXRZZWFyKGRhdGUpfS0ke3RoaXMuZ2V0TW9udGgoZGF0ZSkgKyAxfS0ke3RoaXMuZ2V0RGF0ZShkYXRlKX0gJHt0aGlzLmdldEhvdXIoZGF0ZSl9OiR7dGhpcy5nZXRNaW51dGUoZGF0ZSl9OiR7dGhpcy5nZXRTZWNvbmQoZGF0ZSl9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhIHVuYSBkYXRhIHBhcnRlbmRvIGRhIGFubm8sIG1lc2UgZSBnaW9ybm9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHllYXIgQW5ub1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1vbnRoIE1lc2VcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkYXRlIEdpb3Jub1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IE9nZ2V0dG8gZ2VuZXJhdG8gaW4gYmFzZSBhaSBwYXJhbWV0cmkgKip5ZWFyKiosICoqbW9udGgqKiwgZSAqKmRhdGUqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERheWpzIHtcclxuICAgICAgICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEpXHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIGluZGV4IFwiJHttb250aH1cIi4gTW9udGggaW5kZXggaGFzIHRvIGJlIGJldHdlZW4gMCBhbmQgMTEuYCk7XHJcblxyXG4gICAgICAgIGlmIChkYXRlIDwgMSlcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIi4gRGF0ZSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCk7XHJcblxyXG4gICAgICAgIC8vSWwgbWVzZSDDqCB1biBpbmRpY2UgMC0xMSBxdWluZGkgZGV2byBkYXJnbGkgdW4gKzEgcXVhXHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZGF5anMoYCR7eWVhcn0tJHttb250aCArIDF9LSR7ZGF0ZX1gKVxyXG5cclxuICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpXHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiLmApO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzdGl0dWlzY2UgbGEgZGF0YSBjaGUgcmFwcHJlc2VudGEgbGEgZ2lvcm5hdGEgZGkgb2dnaVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IE9nZ2lcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRvZGF5KCk6IERheWpzIHtcclxuICAgICAgICByZXR1cm4gZGF5anMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGlsIHBhcnNlIGRpIHVuYSBkYXRhLCBldmVudHVhbG1lbnRlIGluIGJhc2UgYWwgZm9ybWF0byBzcGVjaWZpY2F0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgVmFsb3JlIGRhIHBhcnNhcmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJzZUZvcm1hdCBGb3JtYXRvIGluIGN1aSBsZWdnZXJlIGlsIHZhbG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IERhdGEgZ2VuZXJhdGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhcnNlKHZhbHVlOiBhbnksIHBhcnNlRm9ybWF0OiBzdHJpbmcpOiBEYXlqcyB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJylcclxuICAgICAgICAgICAgcmV0dXJuIGRheWpzKHZhbHVlLCBwYXJzZUZvcm1hdCk7XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IGRheWpzKHZhbHVlKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXR0YSB1bmEgZGF0YSBpbiBiYXNlIGFsIGZvcm1hdG8gc3BlY2lmaWNhdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGRhIGZvcm1hdHRhcmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkaXNwbGF5Rm9ybWF0IEZvcm1hdG8gaW4gY3VpIG1vc3RyYXJlIGxhIGRhdGFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gRGF0YSBmb3JtYXR0YXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmb3JtYXQoZGF0ZTogRGF5anMsIGRpc3BsYXlGb3JtYXQ6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpXHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdEYXRlQWRhcHRlcjogQ2Fubm90IGZvcm1hdCBpbnZhbGlkIGRhdGUuJyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIHJldHVybiBkYXRlLmZvcm1hdChkaXNwbGF5Rm9ybWF0KVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWdnaXVuZ2UgYWQgdW5hIGRhdGEgaWwgbnVtZXJvIHNwZWNpZmljYXRvIGRpIGFubmlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGEgY3VpIGFnZ2l1bmdlcmUgZ2xpIGFubmlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5ZWFycyBBbm5pIGRhIGFnZ2l1bmdlcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBEYXRhIGNvbiBsJ2FnZ2l1bnRhIGRlZ2xpIGFubmkgc3BlY2lmaWNhdGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF5anMsIHllYXJzOiBudW1iZXIpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuYWRkKHllYXJzLCBcInllYXJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZ2dpdW5nZSBhZCB1bmEgZGF0YSBpbCBudW1lcm8gc3BlY2lmaWNhdG8gZGkgbWVzaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgYSBjdWkgYWdnaXVuZ2VyZSBpIG1lc2lcclxuICAgICAqIEBwYXJhbSB7bW9udGhzfSBtb250aHMgTWVzaSBkYSBhZ2dpdW5nZXJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtEYXlqc30gRGF0YSBjb24gbCdhZ2dpdW50YSBkZWkgbWVzaSBzcGVjaWZpY2F0aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF5anMsIG1vbnRoczogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZChtb250aHMsIFwibW9udGhcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZ2dpdW5nZSBhZCB1bmEgZGF0YSBpbCBudW1lcm8gc3BlY2lmaWNhdG8gZGkgZ2lvcm5pXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBhIGN1aSBhZ2dpdW5nZXJlIGkgZ2lvcm5pXHJcbiAgICAgKiBAcGFyYW0ge21vbnRoc30gZGF5cyBHaW9ybmkgZGEgYWdnaXVuZ2VyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IERhdGEgY29uIGwnYWdnaXVudGEgZGVpIGdpb3JuaSBzcGVjaWZpY2F0aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IERheWpzLCBkYXlzOiBudW1iZXIpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuYWRkKGRheXMsIFwiZGF5XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhc2Zvcm1hIGxhIGRhdGEgc3BlY2lmaWNhdGEgaW4gdW5hIHN0cmluZ2EgSVNPODYwMVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmFwcHJlc2VudGF6aW9uZSBpbiBJU084NjAxXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0b0lzbzg2MDEoZGF0ZTogRGF5anMpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250cm9sbGEgc2UgbCdvZ2dldHRvIHBhc3NhdG8gw6ggZWZmZXR0aXZhbWVudGUgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IG9iaiBPZ2dldHRvIGRhIHZlcmlmaWNhcmUgc2Ugw6ggdW5hIGRhdGEgbyBtZW5vXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAqKnRydWUqKiBzZSBsJ29nZ2V0dG8gw6ggdW4gRGF5SnMsICoqZmFsc2UqKiBhbHRyaW1lbnRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXlqcy5pc0RheWpzKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250cm9sbGEgaWwgRGF5SnMgcGFzc2F0byBlIHZlcmlmaWNhIHNlIMOoIHZhbGlkb1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgZGEgdmVyaWZpY2FyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gKip0cnVlKiogc2UgaWwgRGF5SnMgw6ggdmFsaWRvLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXlqcyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmlzVmFsaWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3RpdHVpc2NlIHVuIERheUpzIGludmFsaWRvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtEYXlKc30gRGF0YSBJbnZhbGlkYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW52YWxpZCgpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIGRheWpzKFwiSW52YWxpZCBEYXRlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYSB1biByYW5nZSBkaSB1bmEgbHVuZ2hlenphIHNwZWNpZmljYSBlIHBlciBvZ25pIGluZGljZSBkZWwgcmFuZ2UgcmljaGlhbWEgdW4gY2FsbGJhY2sgY2hlIHZhbG9yaXp6YSBsJ2VsZW1lbnRvIGRpIHF1ZWxsJ2luZGljZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoIEx1bmdoZXp6YSBkZWwgcmFuZ2VcclxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHZhbHVlRnVuY3Rpb24gQ2FsbGJhY2sgY2hlIGRldmUgZ2VuZXJhcmUgaWwgdmFsb3JlIGRlc2lkZXJhdG8gcGVyIG9nbmkgaW5kaWNlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtUW119IEFycmF5IGRlaSB2YWxvcmkgZ2VuZXJhdGlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByYW5nZTxUPihsZW5ndGg6IG51bWJlciwgdmFsdWVGdW5jdGlvbjogKGluZGV4OiBudW1iZXIpID0+IFQpOiBUW10ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkobGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB2YWx1ZXNBcnJheVtpXSA9IHZhbHVlRnVuY3Rpb24oaSk7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlc0FycmF5O1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,35 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
3
+ import { DayJsDateAdapter } from './DayjsDateAdapter';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Formati di default per la presentazione degli input quali il DatePicker di Angular Material.
7
+ * Cablati a quelli italiani ignorando quelli di BurgerLand per non impazzire
8
+ */
9
+ export const MAT_DAYJS_DATE_FORMATS = {
10
+ parse: { dateInput: 'DD/MM/YYYY' },
11
+ display: {
12
+ dateInput: 'DD/MM/YYYY',
13
+ monthYearLabel: 'MM YYYY',
14
+ dateA11yLabel: 'DD/MM/YYYY',
15
+ monthYearA11yLabel: 'MM YYYY',
16
+ }
17
+ };
18
+ export class MatDayjsDateModule {
19
+ }
20
+ MatDayjsDateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MatDayjsDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ MatDayjsDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MatDayjsDateModule });
22
+ MatDayjsDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MatDayjsDateModule, providers: [
23
+ { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
24
+ { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
25
+ ] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MatDayjsDateModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ providers: [
30
+ { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
31
+ { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
32
+ ],
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0RGF5anNEYXRlTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtZGF5anMtYWRhcHRlci9zcmMvbGliL2FkYXB0ZXIvTWF0RGF5anNEYXRlTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFtQjtJQUNwRCxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQ2xDLE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLGFBQWEsRUFBRSxZQUFZO1FBQzNCLGtCQUFrQixFQUFFLFNBQVM7S0FDaEM7Q0FDRixDQUFDO0FBUUYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsYUFMbEI7UUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7UUFDL0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQztLQUM3RTsyRkFFVSxrQkFBa0I7a0JBTjlCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRTt3QkFDL0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQztxQkFDN0U7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXlKc0RhdGVBZGFwdGVyIH0gZnJvbSAnLi9EYXlqc0RhdGVBZGFwdGVyJztcclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRpIGRpIGRlZmF1bHQgcGVyIGxhIHByZXNlbnRhemlvbmUgZGVnbGkgaW5wdXQgcXVhbGkgaWwgRGF0ZVBpY2tlciBkaSBBbmd1bGFyIE1hdGVyaWFsLiBcclxuICogQ2FibGF0aSBhIHF1ZWxsaSBpdGFsaWFuaSBpZ25vcmFuZG8gcXVlbGxpIGRpIEJ1cmdlckxhbmQgcGVyIG5vbiBpbXBhenppcmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBNQVRfREFZSlNfREFURV9GT1JNQVRTOiBNYXREYXRlRm9ybWF0cyA9IHtcclxuICBwYXJzZTogeyBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgICAgZGF0ZUlucHV0OiAnREQvTU0vWVlZWScsXHJcbiAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU0gWVlZWScsXHJcbiAgICAgIGRhdGVBMTF5TGFiZWw6ICdERC9NTS9ZWVlZJyxcclxuICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU0gWVlZWScsXHJcbiAgfVxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1BVF9EQVlKU19EQVRFX0ZPUk1BVFMgfSxcclxuICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXlKc0RhdGVBZGFwdGVyLCBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXX1cclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0RGF5anNEYXRlTW9kdWxlIHt9XHJcbiJdfQ==