@angular/material-luxon-adapter 19.0.0-next.1 → 19.0.0-next.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.
@@ -193,10 +193,10 @@ class LuxonDateAdapter extends DateAdapter {
193
193
  outputCalendar: this._defaultOutputCalendar,
194
194
  };
195
195
  }
196
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: MAT_LUXON_DATE_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
197
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateAdapter }); }
196
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: LuxonDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: MAT_LUXON_DATE_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
197
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: LuxonDateAdapter }); }
198
198
  }
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateAdapter, decorators: [{
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: LuxonDateAdapter, decorators: [{
200
200
  type: Injectable
201
201
  }], ctorParameters: () => [{ type: undefined, decorators: [{
202
202
  type: Optional
@@ -223,9 +223,9 @@ const MAT_LUXON_DATE_FORMATS = {
223
223
  };
224
224
 
225
225
  class LuxonDateModule {
226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
227
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule }); }
228
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule, providers: [
226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: LuxonDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
227
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.2", ngImport: i0, type: LuxonDateModule }); }
228
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: LuxonDateModule, providers: [
229
229
  {
230
230
  provide: DateAdapter,
231
231
  useClass: LuxonDateAdapter,
@@ -233,7 +233,7 @@ class LuxonDateModule {
233
233
  },
234
234
  ] }); }
235
235
  }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule, decorators: [{
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: LuxonDateModule, decorators: [{
237
237
  type: NgModule,
238
238
  args: [{
239
239
  providers: [
@@ -246,11 +246,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
246
246
  }]
247
247
  }] });
248
248
  class MatLuxonDateModule {
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
250
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule }); }
251
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule, providers: [provideLuxonDateAdapter()] }); }
249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatLuxonDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
250
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatLuxonDateModule }); }
251
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatLuxonDateModule, providers: [provideLuxonDateAdapter()] }); }
252
252
  }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.2", ngImport: i0, type: MatLuxonDateModule, decorators: [{
254
254
  type: NgModule,
255
255
  args: [{
256
256
  providers: [provideLuxonDateAdapter()],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/material-luxon-adapter",
3
- "version": "19.0.0-next.1",
3
+ "version": "19.0.0-next.3",
4
4
  "description": "Angular Material Luxon Adapter",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "homepage": "https://github.com/angular/components#readme",
14
14
  "peerDependencies": {
15
- "@angular/material": "19.0.0-next.1",
15
+ "@angular/material": "19.0.0-next.3",
16
16
  "@angular/core": "^19.0.0-0 || ^19.1.0-0 || ^19.2.0-0 || ^19.3.0-0 || ^20.0.0-0",
17
17
  "luxon": "^3.0.0"
18
18
  },
@@ -37,8 +37,6 @@
37
37
  },
38
38
  ".": {
39
39
  "types": "./index.d.ts",
40
- "esm2022": "./esm2022/material-luxon-adapter_public_index.mjs",
41
- "esm": "./esm2022/material-luxon-adapter_public_index.mjs",
42
40
  "default": "./fesm2022/material-luxon-adapter.mjs"
43
41
  }
44
42
  }
@@ -1,59 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { NgModule } from '@angular/core';
9
- import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, } from '@angular/material/core';
10
- import { MAT_LUXON_DATE_ADAPTER_OPTIONS, LuxonDateAdapter } from './luxon-date-adapter';
11
- import { MAT_LUXON_DATE_FORMATS } from './luxon-date-formats';
12
- import * as i0 from "@angular/core";
13
- export * from './luxon-date-adapter';
14
- export * from './luxon-date-formats';
15
- export class LuxonDateModule {
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule, providers: [
19
- {
20
- provide: DateAdapter,
21
- useClass: LuxonDateAdapter,
22
- deps: [MAT_DATE_LOCALE, MAT_LUXON_DATE_ADAPTER_OPTIONS],
23
- },
24
- ] }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateModule, decorators: [{
27
- type: NgModule,
28
- args: [{
29
- providers: [
30
- {
31
- provide: DateAdapter,
32
- useClass: LuxonDateAdapter,
33
- deps: [MAT_DATE_LOCALE, MAT_LUXON_DATE_ADAPTER_OPTIONS],
34
- },
35
- ],
36
- }]
37
- }] });
38
- export class MatLuxonDateModule {
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
40
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule }); }
41
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule, providers: [provideLuxonDateAdapter()] }); }
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatLuxonDateModule, decorators: [{
44
- type: NgModule,
45
- args: [{
46
- providers: [provideLuxonDateAdapter()],
47
- }]
48
- }] });
49
- export function provideLuxonDateAdapter(formats = MAT_LUXON_DATE_FORMATS) {
50
- return [
51
- {
52
- provide: DateAdapter,
53
- useClass: LuxonDateAdapter,
54
- deps: [MAT_DATE_LOCALE, MAT_LUXON_DATE_ADAPTER_OPTIONS],
55
- },
56
- { provide: MAT_DATE_FORMATS, useValue: formats },
57
- ];
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtbHV4b24tYWRhcHRlci9hZGFwdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxHQUVoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyw4QkFBOEIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDOztBQUU1RCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFXckMsTUFBTSxPQUFPLGVBQWU7cUhBQWYsZUFBZTtzSEFBZixlQUFlO3NIQUFmLGVBQWUsYUFSZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUM7YUFDeEQ7U0FDRjs7a0dBRVUsZUFBZTtrQkFUM0IsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFFBQVEsRUFBRSxnQkFBZ0I7NEJBQzFCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSw4QkFBOEIsQ0FBQzt5QkFDeEQ7cUJBQ0Y7aUJBQ0Y7O0FBTUQsTUFBTSxPQUFPLGtCQUFrQjtxSEFBbEIsa0JBQWtCO3NIQUFsQixrQkFBa0I7c0hBQWxCLGtCQUFrQixhQUZsQixDQUFDLHVCQUF1QixFQUFFLENBQUM7O2tHQUUzQixrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztpQkFDdkM7O0FBR0QsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxVQUEwQixzQkFBc0I7SUFFaEQsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLFdBQVc7WUFDcEIsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUM7U0FDeEQ7UUFDRCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFDO0tBQy9DLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7TmdNb2R1bGUsIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERhdGVBZGFwdGVyLFxuICBNQVRfREFURV9GT1JNQVRTLFxuICBNQVRfREFURV9MT0NBTEUsXG4gIE1hdERhdGVGb3JtYXRzLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TUFUX0xVWE9OX0RBVEVfQURBUFRFUl9PUFRJT05TLCBMdXhvbkRhdGVBZGFwdGVyfSBmcm9tICcuL2x1eG9uLWRhdGUtYWRhcHRlcic7XG5pbXBvcnQge01BVF9MVVhPTl9EQVRFX0ZPUk1BVFN9IGZyb20gJy4vbHV4b24tZGF0ZS1mb3JtYXRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9sdXhvbi1kYXRlLWFkYXB0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sdXhvbi1kYXRlLWZvcm1hdHMnO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBMdXhvbkRhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX0xVWE9OX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMdXhvbkRhdGVNb2R1bGUge31cblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUx1eG9uRGF0ZUFkYXB0ZXIoKV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdEx1eG9uRGF0ZU1vZHVsZSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUx1eG9uRGF0ZUFkYXB0ZXIoXG4gIGZvcm1hdHM6IE1hdERhdGVGb3JtYXRzID0gTUFUX0xVWE9OX0RBVEVfRk9STUFUUyxcbik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IEx1eG9uRGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTFVYT05fREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgIH0sXG4gICAge3Byb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBmb3JtYXRzfSxcbiAgXTtcbn1cbiJdfQ==
@@ -1,218 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { Inject, Injectable, Optional, InjectionToken } from '@angular/core';
9
- import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
10
- import { DateTime as LuxonDateTime, Info as LuxonInfo, } from 'luxon';
11
- import * as i0 from "@angular/core";
12
- /** InjectionToken for LuxonDateAdapter to configure options. */
13
- export const MAT_LUXON_DATE_ADAPTER_OPTIONS = new InjectionToken('MAT_LUXON_DATE_ADAPTER_OPTIONS', {
14
- providedIn: 'root',
15
- factory: MAT_LUXON_DATE_ADAPTER_OPTIONS_FACTORY,
16
- });
17
- /** @docs-private */
18
- export function MAT_LUXON_DATE_ADAPTER_OPTIONS_FACTORY() {
19
- return {
20
- useUtc: false,
21
- firstDayOfWeek: 0,
22
- defaultOutputCalendar: 'gregory',
23
- };
24
- }
25
- /** Creates an array and fills it with values. */
26
- function range(length, valueFunction) {
27
- const valuesArray = Array(length);
28
- for (let i = 0; i < length; i++) {
29
- valuesArray[i] = valueFunction(i);
30
- }
31
- return valuesArray;
32
- }
33
- /** Adapts Luxon Dates for use with Angular Material. */
34
- export class LuxonDateAdapter extends DateAdapter {
35
- constructor(dateLocale, options) {
36
- super();
37
- this._useUTC = !!options?.useUtc;
38
- this._firstDayOfWeek = options?.firstDayOfWeek || 0;
39
- this._defaultOutputCalendar = options?.defaultOutputCalendar || 'gregory';
40
- this.setLocale(dateLocale || LuxonDateTime.local().locale);
41
- }
42
- getYear(date) {
43
- return date.year;
44
- }
45
- getMonth(date) {
46
- // Luxon works with 1-indexed months whereas our code expects 0-indexed.
47
- return date.month - 1;
48
- }
49
- getDate(date) {
50
- return date.day;
51
- }
52
- getDayOfWeek(date) {
53
- return date.weekday;
54
- }
55
- getMonthNames(style) {
56
- // Adding outputCalendar option, because LuxonInfo doesn't get effected by LuxonSettings
57
- return LuxonInfo.months(style, {
58
- locale: this.locale,
59
- outputCalendar: this._defaultOutputCalendar,
60
- });
61
- }
62
- getDateNames() {
63
- // At the time of writing, Luxon doesn't offer similar
64
- // functionality so we have to fall back to the Intl API.
65
- const dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric', timeZone: 'utc' });
66
- // Format a UTC date in order to avoid DST issues.
67
- return range(31, i => dtf.format(LuxonDateTime.utc(2017, 1, i + 1).toJSDate()));
68
- }
69
- getDayOfWeekNames(style) {
70
- // Note that we shift the array once, because Luxon returns Monday as the
71
- // first day of the week, whereas our logic assumes that it's Sunday. See:
72
- // https://moment.github.io/luxon/api-docs/index.html#infoweekdays
73
- const days = LuxonInfo.weekdays(style, { locale: this.locale });
74
- days.unshift(days.pop());
75
- return days;
76
- }
77
- getYearName(date) {
78
- return date.toFormat('yyyy', this._getOptions());
79
- }
80
- getFirstDayOfWeek() {
81
- return this._firstDayOfWeek;
82
- }
83
- getNumDaysInMonth(date) {
84
- return date.daysInMonth;
85
- }
86
- clone(date) {
87
- return LuxonDateTime.fromObject(date.toObject(), this._getOptions());
88
- }
89
- createDate(year, month, date) {
90
- const options = this._getOptions();
91
- if (month < 0 || month > 11) {
92
- throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
93
- }
94
- if (date < 1) {
95
- throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
96
- }
97
- // Luxon uses 1-indexed months so we need to add one to the month.
98
- const result = this._useUTC
99
- ? LuxonDateTime.utc(year, month + 1, date, options)
100
- : LuxonDateTime.local(year, month + 1, date, options);
101
- if (!this.isValid(result)) {
102
- throw Error(`Invalid date "${date}". Reason: "${result.invalidReason}".`);
103
- }
104
- return result;
105
- }
106
- today() {
107
- const options = this._getOptions();
108
- return this._useUTC ? LuxonDateTime.utc(options) : LuxonDateTime.local(options);
109
- }
110
- parse(value, parseFormat) {
111
- const options = this._getOptions();
112
- if (typeof value == 'string' && value.length > 0) {
113
- const iso8601Date = LuxonDateTime.fromISO(value, options);
114
- if (this.isValid(iso8601Date)) {
115
- return iso8601Date;
116
- }
117
- const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];
118
- if (!parseFormat.length) {
119
- throw Error('Formats array must not be empty.');
120
- }
121
- for (const format of formats) {
122
- const fromFormat = LuxonDateTime.fromFormat(value, format, options);
123
- if (this.isValid(fromFormat)) {
124
- return fromFormat;
125
- }
126
- }
127
- return this.invalid();
128
- }
129
- else if (typeof value === 'number') {
130
- return LuxonDateTime.fromMillis(value, options);
131
- }
132
- else if (value instanceof Date) {
133
- return LuxonDateTime.fromJSDate(value, options);
134
- }
135
- else if (value instanceof LuxonDateTime) {
136
- return LuxonDateTime.fromMillis(value.toMillis(), options);
137
- }
138
- return null;
139
- }
140
- format(date, displayFormat) {
141
- if (!this.isValid(date)) {
142
- throw Error('LuxonDateAdapter: Cannot format invalid date.');
143
- }
144
- if (this._useUTC) {
145
- return date.setLocale(this.locale).setZone('utc').toFormat(displayFormat);
146
- }
147
- else {
148
- return date.setLocale(this.locale).toFormat(displayFormat);
149
- }
150
- }
151
- addCalendarYears(date, years) {
152
- return date.reconfigure(this._getOptions()).plus({ years });
153
- }
154
- addCalendarMonths(date, months) {
155
- return date.reconfigure(this._getOptions()).plus({ months });
156
- }
157
- addCalendarDays(date, days) {
158
- return date.reconfigure(this._getOptions()).plus({ days });
159
- }
160
- toIso8601(date) {
161
- return date.toISO();
162
- }
163
- /**
164
- * Returns the given value if given a valid Luxon or null. Deserializes valid ISO 8601 strings
165
- * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid DateTime and empty
166
- * string into null. Returns an invalid date for all other values.
167
- */
168
- deserialize(value) {
169
- const options = this._getOptions();
170
- let date;
171
- if (value instanceof Date) {
172
- date = LuxonDateTime.fromJSDate(value, options);
173
- }
174
- if (typeof value === 'string') {
175
- if (!value) {
176
- return null;
177
- }
178
- date = LuxonDateTime.fromISO(value, options);
179
- }
180
- if (date && this.isValid(date)) {
181
- return date;
182
- }
183
- return super.deserialize(value);
184
- }
185
- isDateInstance(obj) {
186
- return obj instanceof LuxonDateTime;
187
- }
188
- isValid(date) {
189
- return date.isValid;
190
- }
191
- invalid() {
192
- return LuxonDateTime.invalid('Invalid Luxon DateTime object.');
193
- }
194
- /** Gets the options that should be used when constructing a new `DateTime` object. */
195
- _getOptions() {
196
- return {
197
- zone: this._useUTC ? 'utc' : undefined,
198
- locale: this.locale,
199
- outputCalendar: this._defaultOutputCalendar,
200
- };
201
- }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: MAT_LUXON_DATE_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
203
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateAdapter }); }
204
- }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: LuxonDateAdapter, decorators: [{
206
- type: Injectable
207
- }], ctorParameters: () => [{ type: undefined, decorators: [{
208
- type: Optional
209
- }, {
210
- type: Inject,
211
- args: [MAT_DATE_LOCALE]
212
- }] }, { type: undefined, decorators: [{
213
- type: Optional
214
- }, {
215
- type: Inject,
216
- args: [MAT_LUXON_DATE_ADAPTER_OPTIONS]
217
- }] }] });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV4b24tZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWx1eG9uLWFkYXB0ZXIvYWRhcHRlci9sdXhvbi1kYXRlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxRQUFRLElBQUksYUFBYSxFQUN6QixJQUFJLElBQUksU0FBUyxHQUdsQixNQUFNLE9BQU8sQ0FBQzs7QUF1QmYsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCxnQ0FBZ0MsRUFDaEM7SUFDRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsc0NBQXNDO0NBQ2hELENBQ0YsQ0FBQztBQUVGLG9CQUFvQjtBQUNwQixNQUFNLFVBQVUsc0NBQXNDO0lBQ3BELE9BQU87UUFDTCxNQUFNLEVBQUUsS0FBSztRQUNiLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLHFCQUFxQixFQUFFLFNBQVM7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxpREFBaUQ7QUFDakQsU0FBUyxLQUFLLENBQUksTUFBYyxFQUFFLGFBQW1DO0lBQ25FLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxXQUFX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Q0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsY0FBYyxFQUFFLElBQUksQ0FBQyxzQkFBc0I7U0FDNUMsQ0FBQztJQUNKLENBQUM7cUhBbk5VLGdCQUFnQixrQkFNTCxlQUFlLDZCQUUzQiw4QkFBOEI7eUhBUjdCLGdCQUFnQjs7a0dBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBT04sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgRGF0ZVRpbWUgYXMgTHV4b25EYXRlVGltZSxcbiAgSW5mbyBhcyBMdXhvbkluZm8sXG4gIERhdGVUaW1lT3B0aW9ucyBhcyBMdXhvbkRhdGVUaW1lT3B0aW9ucyxcbiAgQ2FsZW5kYXJTeXN0ZW0gYXMgTHV4b25DYWxlbmRhclN5c3RlbSxcbn0gZnJvbSAnbHV4b24nO1xuXG4vKiogQ29uZmlndXJhYmxlIG9wdGlvbnMgZm9yIHRoZSBgTHV4b25EYXRlQWRhcHRlcmAuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hdEx1eG9uRGF0ZUFkYXB0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFR1cm5zIHRoZSB1c2Ugb2YgdXRjIGRhdGVzIG9uIG9yIG9mZi5cbiAgICogQ2hhbmdpbmcgdGhpcyB3aWxsIGNoYW5nZSBob3cgQW5ndWxhciBNYXRlcmlhbCBjb21wb25lbnRzIGxpa2UgRGF0ZVBpY2tlciBvdXRwdXQgZGF0ZXMuXG4gICAqL1xuICB1c2VVdGM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrLlxuICAgKiBDaGFuZ2luZyB0aGlzIHdpbGwgY2hhbmdlIGhvdyBBbmd1bGFyIE1hdGVyaWFsIGNvbXBvbmVudHMgbGlrZSBEYXRlUGlja2VyIHNob3dzIHN0YXJ0IG9mIHdlZWsuXG4gICAqL1xuICBmaXJzdERheU9mV2VlazogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBvdXRwdXQgQ2FsZW5kYXIuXG4gICAqIENoYW5naW5nIHRoaXMgd2lsbCBjaGFuZ2UgaG93IEFuZ3VsYXIgTWF0ZXJpYWwgY29tcG9uZW50cyBsaWtlIERhdGVQaWNrZXIgb3V0cHV0IGRhdGVzLlxuICAgKi9cbiAgZGVmYXVsdE91dHB1dENhbGVuZGFyOiBMdXhvbkNhbGVuZGFyU3lzdGVtO1xufVxuXG4vKiogSW5qZWN0aW9uVG9rZW4gZm9yIEx1eG9uRGF0ZUFkYXB0ZXIgdG8gY29uZmlndXJlIG9wdGlvbnMuICovXG5leHBvcnQgY29uc3QgTUFUX0xVWE9OX0RBVEVfQURBUFRFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE1hdEx1eG9uRGF0ZUFkYXB0ZXJPcHRpb25zPihcbiAgJ01BVF9MVVhPTl9EQVRFX0FEQVBURVJfT1BUSU9OUycsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogTUFUX0xVWE9OX0RBVEVfQURBUFRFUl9PUFRJT05TX0ZBQ1RPUlksXG4gIH0sXG4pO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1BVF9MVVhPTl9EQVRFX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZKCk6IE1hdEx1eG9uRGF0ZUFkYXB0ZXJPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICB1c2VVdGM6IGZhbHNlLFxuICAgIGZpcnN0RGF5T2ZXZWVrOiAwLFxuICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhcjogJ2dyZWdvcnknLFxuICB9O1xufVxuXG4vKiogQ3JlYXRlcyBhbiBhcnJheSBhbmQgZmlsbHMgaXQgd2l0aCB2YWx1ZXMuICovXG5mdW5jdGlvbiByYW5nZTxUPihsZW5ndGg6IG51bWJlciwgdmFsdWVGdW5jdGlvbjogKGluZGV4OiBudW1iZXIpID0+IFQpOiBUW10ge1xuICBjb25zdCB2YWx1ZXNBcnJheSA9IEFycmF5KGxlbmd0aCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICB2YWx1ZXNBcnJheVtpXSA9IHZhbHVlRnVuY3Rpb24oaSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlc0FycmF5O1xufVxuXG4vKiogQWRhcHRzIEx1eG9uIERhdGVzIGZvciB1c2Ugd2l0aCBBbmd1bGFyIE1hdGVyaWFsLiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEx1eG9uRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxMdXhvbkRhdGVUaW1lPiB7XG4gIHByaXZhdGUgX3VzZVVUQzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfZmlyc3REYXlPZldlZWs6IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGVmYXVsdE91dHB1dENhbGVuZGFyOiBMdXhvbkNhbGVuZGFyU3lzdGVtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RBVEVfTE9DQUxFKSBkYXRlTG9jYWxlOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KE1BVF9MVVhPTl9EQVRFX0FEQVBURVJfT1BUSU9OUylcbiAgICBvcHRpb25zPzogTWF0THV4b25EYXRlQWRhcHRlck9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fdXNlVVRDID0gISFvcHRpb25zPy51c2VVdGM7XG4gICAgdGhpcy5fZmlyc3REYXlPZldlZWsgPSBvcHRpb25zPy5maXJzdERheU9mV2VlayB8fCAwO1xuICAgIHRoaXMuX2RlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG9wdGlvbnM/LmRlZmF1bHRPdXRwdXRDYWxlbmRhciB8fCAnZ3JlZ29yeSc7XG4gICAgdGhpcy5zZXRMb2NhbGUoZGF0ZUxvY2FsZSB8fCBMdXhvbkRhdGVUaW1lLmxvY2FsKCkubG9jYWxlKTtcbiAgfVxuXG4gIGdldFllYXIoZGF0ZTogTHV4b25EYXRlVGltZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUueWVhcjtcbiAgfVxuXG4gIGdldE1vbnRoKGRhdGU6IEx1eG9uRGF0ZVRpbWUpOiBudW1iZXIge1xuICAgIC8vIEx1eG9uIHdvcmtzIHdpdGggMS1pbmRleGVkIG1vbnRocyB3aGVyZWFzIG91ciBjb2RlIGV4cGVjdHMgMC1pbmRleGVkLlxuICAgIHJldHVybiBkYXRlLm1vbnRoIC0gMTtcbiAgfVxuXG4gIGdldERhdGUoZGF0ZTogTHV4b25EYXRlVGltZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZGF5O1xuICB9XG5cbiAgZ2V0RGF5T2ZXZWVrKGRhdGU6IEx1eG9uRGF0ZVRpbWUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLndlZWtkYXk7XG4gIH1cblxuICBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgLy8gQWRkaW5nIG91dHB1dENhbGVuZGFyIG9wdGlvbiwgYmVjYXVzZSBMdXhvbkluZm8gZG9lc24ndCBnZXQgZWZmZWN0ZWQgYnkgTHV4b25TZXR0aW5nc1xuICAgIHJldHVybiBMdXhvbkluZm8ubW9udGhzKHN0eWxlLCB7XG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgb3V0cHV0Q2FsZW5kYXI6IHRoaXMuX2RlZmF1bHRPdXRwdXRDYWxlbmRhcixcbiAgICB9KTtcbiAgfVxuXG4gIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgLy8gQXQgdGhlIHRpbWUgb2Ygd3JpdGluZywgTHV4b24gZG9lc24ndCBvZmZlciBzaW1pbGFyXG4gICAgLy8gZnVuY3Rpb25hbGl0eSBzbyB3ZSBoYXZlIHRvIGZhbGwgYmFjayB0byB0aGUgSW50bCBBUEkuXG4gICAgY29uc3QgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsIHtkYXk6ICdudW1lcmljJywgdGltZVpvbmU6ICd1dGMnfSk7XG5cbiAgICAvLyBGb3JtYXQgYSBVVEMgZGF0ZSBpbiBvcmRlciB0byBhdm9pZCBEU1QgaXNzdWVzLlxuICAgIHJldHVybiByYW5nZSgzMSwgaSA9PiBkdGYuZm9ybWF0KEx1eG9uRGF0ZVRpbWUudXRjKDIwMTcsIDEsIGkgKyAxKS50b0pTRGF0ZSgpKSk7XG4gIH1cblxuICBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIC8vIE5vdGUgdGhhdCB3ZSBzaGlmdCB0aGUgYXJyYXkgb25jZSwgYmVjYXVzZSBMdXhvbiByZXR1cm5zIE1vbmRheSBhcyB0aGVcbiAgICAvLyBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIHdoZXJlYXMgb3VyIGxvZ2ljIGFzc3VtZXMgdGhhdCBpdCdzIFN1bmRheS4gU2VlOlxuICAgIC8vIGh0dHBzOi8vbW9tZW50LmdpdGh1Yi5pby9sdXhvbi9hcGktZG9jcy9pbmRleC5odG1sI2luZm93ZWVrZGF5c1xuICAgIGNvbnN0IGRheXMgPSBMdXhvbkluZm8ud2Vla2RheXMoc3R5bGUsIHtsb2NhbGU6IHRoaXMubG9jYWxlfSk7XG4gICAgZGF5cy51bnNoaWZ0KGRheXMucG9wKCkhKTtcbiAgICByZXR1cm4gZGF5cztcbiAgfVxuXG4gIGdldFllYXJOYW1lKGRhdGU6IEx1eG9uRGF0ZVRpbWUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLnRvRm9ybWF0KCd5eXl5JywgdGhpcy5fZ2V0T3B0aW9ucygpKTtcbiAgfVxuXG4gIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrO1xuICB9XG5cbiAgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogTHV4b25EYXRlVGltZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGghO1xuICB9XG5cbiAgY2xvbmUoZGF0ZTogTHV4b25EYXRlVGltZSk6IEx1eG9uRGF0ZVRpbWUge1xuICAgIHJldHVybiBMdXhvbkRhdGVUaW1lLmZyb21PYmplY3QoZGF0ZS50b09iamVjdCgpLCB0aGlzLl9nZXRPcHRpb25zKCkpO1xuICB9XG5cbiAgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IEx1eG9uRGF0ZVRpbWUge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9nZXRPcHRpb25zKCk7XG5cbiAgICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIGluZGV4IFwiJHttb250aH1cIi4gTW9udGggaW5kZXggaGFzIHRvIGJlIGJldHdlZW4gMCBhbmQgMTEuYCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiLiBEYXRlIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICAvLyBMdXhvbiB1c2VzIDEtaW5kZXhlZCBtb250aHMgc28gd2UgbmVlZCB0byBhZGQgb25lIHRvIHRoZSBtb250aC5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl91c2VVVENcbiAgICAgID8gTHV4b25EYXRlVGltZS51dGMoeWVhciwgbW9udGggKyAxLCBkYXRlLCBvcHRpb25zKVxuICAgICAgOiBMdXhvbkRhdGVUaW1lLmxvY2FsKHllYXIsIG1vbnRoICsgMSwgZGF0ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIXRoaXMuaXNWYWxpZChyZXN1bHQpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiLiBSZWFzb246IFwiJHtyZXN1bHQuaW52YWxpZFJlYXNvbn1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgdG9kYXkoKTogTHV4b25EYXRlVGltZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnMoKTtcblxuICAgIHJldHVybiB0aGlzLl91c2VVVEMgPyBMdXhvbkRhdGVUaW1lLnV0YyhvcHRpb25zKSA6IEx1eG9uRGF0ZVRpbWUubG9jYWwob3B0aW9ucyk7XG4gIH1cblxuICBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdDogc3RyaW5nIHwgc3RyaW5nW10pOiBMdXhvbkRhdGVUaW1lIHwgbnVsbCB7XG4gICAgY29uc3Qgb3B0aW9uczogTHV4b25EYXRlVGltZU9wdGlvbnMgPSB0aGlzLl9nZXRPcHRpb25zKCk7XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGlzbzg2MDFEYXRlID0gTHV4b25EYXRlVGltZS5mcm9tSVNPKHZhbHVlLCBvcHRpb25zKTtcblxuICAgICAgaWYgKHRoaXMuaXNWYWxpZChpc284NjAxRGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGlzbzg2MDFEYXRlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuaXNBcnJheShwYXJzZUZvcm1hdCkgPyBwYXJzZUZvcm1hdCA6IFtwYXJzZUZvcm1hdF07XG5cbiAgICAgIGlmICghcGFyc2VGb3JtYXQubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdGb3JtYXRzIGFycmF5IG11c3Qgbm90IGJlIGVtcHR5LicpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgICAgIGNvbnN0IGZyb21Gb3JtYXQgPSBMdXhvbkRhdGVUaW1lLmZyb21Gb3JtYXQodmFsdWUsIGZvcm1hdCwgb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZChmcm9tRm9ybWF0KSkge1xuICAgICAgICAgIHJldHVybiBmcm9tRm9ybWF0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmludmFsaWQoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBMdXhvbkRhdGVUaW1lLmZyb21NaWxsaXModmFsdWUsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gTHV4b25EYXRlVGltZS5mcm9tSlNEYXRlKHZhbHVlLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgTHV4b25EYXRlVGltZSkge1xuICAgICAgcmV0dXJuIEx1eG9uRGF0ZVRpbWUuZnJvbU1pbGxpcyh2YWx1ZS50b01pbGxpcygpLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGZvcm1hdChkYXRlOiBMdXhvbkRhdGVUaW1lLCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICB0aHJvdyBFcnJvcignTHV4b25EYXRlQWRhcHRlcjogQ2Fubm90IGZvcm1hdCBpbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl91c2VVVEMpIHtcbiAgICAgIHJldHVybiBkYXRlLnNldExvY2FsZSh0aGlzLmxvY2FsZSkuc2V0Wm9uZSgndXRjJykudG9Gb3JtYXQoZGlzcGxheUZvcm1hdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkYXRlLnNldExvY2FsZSh0aGlzLmxvY2FsZSkudG9Gb3JtYXQoZGlzcGxheUZvcm1hdCk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBMdXhvbkRhdGVUaW1lLCB5ZWFyczogbnVtYmVyKTogTHV4b25EYXRlVGltZSB7XG4gICAgcmV0dXJuIGRhdGUucmVjb25maWd1cmUodGhpcy5fZ2V0T3B0aW9ucygpKS5wbHVzKHt5ZWFyc30pO1xuICB9XG5cbiAgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogTHV4b25EYXRlVGltZSwgbW9udGhzOiBudW1iZXIpOiBMdXhvbkRhdGVUaW1lIHtcbiAgICByZXR1cm4gZGF0ZS5yZWNvbmZpZ3VyZSh0aGlzLl9nZXRPcHRpb25zKCkpLnBsdXMoe21vbnRoc30pO1xuICB9XG5cbiAgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IEx1eG9uRGF0ZVRpbWUsIGRheXM6IG51bWJlcik6IEx1eG9uRGF0ZVRpbWUge1xuICAgIHJldHVybiBkYXRlLnJlY29uZmlndXJlKHRoaXMuX2dldE9wdGlvbnMoKSkucGx1cyh7ZGF5c30pO1xuICB9XG5cbiAgdG9Jc284NjAxKGRhdGU6IEx1eG9uRGF0ZVRpbWUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLnRvSVNPKCkhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGlmIGdpdmVuIGEgdmFsaWQgTHV4b24gb3IgbnVsbC4gRGVzZXJpYWxpemVzIHZhbGlkIElTTyA4NjAxIHN0cmluZ3NcbiAgICogKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgYW5kIHZhbGlkIERhdGUgb2JqZWN0cyBpbnRvIHZhbGlkIERhdGVUaW1lIGFuZCBlbXB0eVxuICAgKiBzdHJpbmcgaW50byBudWxsLiBSZXR1cm5zIGFuIGludmFsaWQgZGF0ZSBmb3IgYWxsIG90aGVyIHZhbHVlcy5cbiAgICovXG4gIG92ZXJyaWRlIGRlc2VyaWFsaXplKHZhbHVlOiBhbnkpOiBMdXhvbkRhdGVUaW1lIHwgbnVsbCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnMoKTtcbiAgICBsZXQgZGF0ZTogTHV4b25EYXRlVGltZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBkYXRlID0gTHV4b25EYXRlVGltZS5mcm9tSlNEYXRlKHZhbHVlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBkYXRlID0gTHV4b25EYXRlVGltZS5mcm9tSVNPKHZhbHVlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGRhdGUgJiYgdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgfVxuXG4gIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIEx1eG9uRGF0ZVRpbWU7XG4gIH1cblxuICBpc1ZhbGlkKGRhdGU6IEx1eG9uRGF0ZVRpbWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZS5pc1ZhbGlkO1xuICB9XG5cbiAgaW52YWxpZCgpOiBMdXhvbkRhdGVUaW1lIHtcbiAgICByZXR1cm4gTHV4b25EYXRlVGltZS5pbnZhbGlkKCdJbnZhbGlkIEx1eG9uIERhdGVUaW1lIG9iamVjdC4nKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBvcHRpb25zIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBjb25zdHJ1Y3RpbmcgYSBuZXcgYERhdGVUaW1lYCBvYmplY3QuICovXG4gIHByaXZhdGUgX2dldE9wdGlvbnMoKTogTHV4b25EYXRlVGltZU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICB6b25lOiB0aGlzLl91c2VVVEMgPyAndXRjJyA6IHVuZGVmaW5lZCxcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBvdXRwdXRDYWxlbmRhcjogdGhpcy5fZGVmYXVsdE91dHB1dENhbGVuZGFyLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export const MAT_LUXON_DATE_FORMATS = {
9
- parse: {
10
- dateInput: 'D',
11
- },
12
- display: {
13
- dateInput: 'D',
14
- monthYearLabel: 'LLL yyyy',
15
- dateA11yLabel: 'DD',
16
- monthYearA11yLabel: 'LLLL yyyy',
17
- },
18
- };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV4b24tZGF0ZS1mb3JtYXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWx1eG9uLWFkYXB0ZXIvYWRhcHRlci9sdXhvbi1kYXRlLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW1CO0lBQ3BELEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxHQUFHO0tBQ2Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsR0FBRztRQUNkLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7TWF0RGF0ZUZvcm1hdHN9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgTUFUX0xVWE9OX0RBVEVfRk9STUFUUzogTWF0RGF0ZUZvcm1hdHMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnRCcsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdEJyxcbiAgICBtb250aFllYXJMYWJlbDogJ0xMTCB5eXl5JyxcbiAgICBkYXRlQTExeUxhYmVsOiAnREQnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ0xMTEwgeXl5eScsXG4gIH0sXG59O1xuIl19
package/esm2022/index.mjs DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export * from './public-api';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtbHV4b24tYWRhcHRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtbHV4b24tYWRhcHRlcl9wdWJsaWNfaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtbHV4b24tYWRhcHRlci9tYXRlcmlhbC1sdXhvbi1hZGFwdGVyX3B1YmxpY19pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export * from './adapter/index';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1sdXhvbi1hZGFwdGVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXIvaW5kZXgnO1xuIl19