@esfaenza/material-dayjs-adapter 12.2.9 → 13.1.3

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