@angular/material-luxon-adapter 22.2.0-next.5 → 22.2.0-rc.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.
|
@@ -21,6 +21,7 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
21
21
|
_useUTC;
|
|
22
22
|
_firstDayOfWeek;
|
|
23
23
|
_defaultOutputCalendar;
|
|
24
|
+
_timeZone;
|
|
24
25
|
constructor() {
|
|
25
26
|
super();
|
|
26
27
|
const dateLocale = inject(MAT_DATE_LOCALE, {
|
|
@@ -32,6 +33,7 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
32
33
|
this._useUTC = !!options?.useUtc;
|
|
33
34
|
this._firstDayOfWeek = options?.firstDayOfWeek;
|
|
34
35
|
this._defaultOutputCalendar = options?.defaultOutputCalendar || 'gregory';
|
|
36
|
+
this.setTimeZone(options?.timeZone);
|
|
35
37
|
this.setLocale(dateLocale || DateTime.local().locale);
|
|
36
38
|
}
|
|
37
39
|
getYear(date) {
|
|
@@ -67,7 +69,7 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
67
69
|
return days;
|
|
68
70
|
}
|
|
69
71
|
getYearName(date) {
|
|
70
|
-
return date.toFormat('yyyy', this.
|
|
72
|
+
return date.toFormat('yyyy', this._getLocaleOptions());
|
|
71
73
|
}
|
|
72
74
|
getFirstDayOfWeek() {
|
|
73
75
|
return this._firstDayOfWeek ?? Info.getStartOfWeek({
|
|
@@ -79,30 +81,28 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
79
81
|
}
|
|
80
82
|
clone(date) {
|
|
81
83
|
return DateTime.fromObject(date.toObject(), {
|
|
82
|
-
...this.
|
|
84
|
+
...this._getLocaleOptions(),
|
|
83
85
|
zone: date.zone
|
|
84
86
|
});
|
|
85
87
|
}
|
|
86
88
|
createDate(year, month, date) {
|
|
87
|
-
const options = this._getOptions();
|
|
88
89
|
if (month < 0 || month > 11) {
|
|
89
90
|
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
90
91
|
}
|
|
91
92
|
if (date < 1) {
|
|
92
93
|
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
93
94
|
}
|
|
94
|
-
const result = this._useUTC ? DateTime.utc(year, month + 1, date,
|
|
95
|
+
const result = this._useUTC ? DateTime.utc(year, month + 1, date, this._getLocaleOptions()) : DateTime.local(year, month + 1, date, this._getDateTimeOptions());
|
|
95
96
|
if (!this.isValid(result)) {
|
|
96
97
|
throw Error(`Invalid date "${date}". Reason: "${result.invalidReason}".`);
|
|
97
98
|
}
|
|
98
99
|
return result;
|
|
99
100
|
}
|
|
100
101
|
today() {
|
|
101
|
-
|
|
102
|
-
return this._useUTC ? DateTime.utc(options) : DateTime.local(options);
|
|
102
|
+
return this._useUTC ? DateTime.utc(this._getLocaleOptions()) : DateTime.local(this._getDateTimeOptions());
|
|
103
103
|
}
|
|
104
104
|
parse(value, parseFormat) {
|
|
105
|
-
const options = this.
|
|
105
|
+
const options = this._getDateTimeOptions();
|
|
106
106
|
if (typeof value == 'string' && value.length > 0) {
|
|
107
107
|
const iso8601Date = DateTime.fromISO(value, options);
|
|
108
108
|
if (this.isValid(iso8601Date)) {
|
|
@@ -139,17 +139,17 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
addCalendarYears(date, years) {
|
|
142
|
-
return date.reconfigure(this.
|
|
142
|
+
return date.reconfigure(this._getLocaleOptions()).plus({
|
|
143
143
|
years
|
|
144
144
|
});
|
|
145
145
|
}
|
|
146
146
|
addCalendarMonths(date, months) {
|
|
147
|
-
return date.reconfigure(this.
|
|
147
|
+
return date.reconfigure(this._getLocaleOptions()).plus({
|
|
148
148
|
months
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
addCalendarDays(date, days) {
|
|
152
|
-
return date.reconfigure(this.
|
|
152
|
+
return date.reconfigure(this._getLocaleOptions()).plus({
|
|
153
153
|
days
|
|
154
154
|
});
|
|
155
155
|
}
|
|
@@ -157,7 +157,7 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
157
157
|
return date.toISO();
|
|
158
158
|
}
|
|
159
159
|
deserialize(value) {
|
|
160
|
-
const options = this.
|
|
160
|
+
const options = this._getDateTimeOptions();
|
|
161
161
|
let date;
|
|
162
162
|
if (value instanceof Date) {
|
|
163
163
|
date = DateTime.fromJSDate(value, options);
|
|
@@ -218,20 +218,31 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
218
218
|
return result;
|
|
219
219
|
}
|
|
220
220
|
addSeconds(date, amount) {
|
|
221
|
-
return date.reconfigure(this.
|
|
221
|
+
return date.reconfigure(this._getLocaleOptions()).plus({
|
|
222
222
|
seconds: amount
|
|
223
223
|
});
|
|
224
224
|
}
|
|
225
|
-
|
|
225
|
+
setTimeZone(timeZone) {
|
|
226
|
+
if (this._useUTC && timeZone) {
|
|
227
|
+
throw Error(`Cannot set timeZone if the useUtc option is set to true.`);
|
|
228
|
+
}
|
|
229
|
+
this._timeZone = timeZone;
|
|
230
|
+
}
|
|
231
|
+
_getLocaleOptions() {
|
|
226
232
|
return {
|
|
227
|
-
zone: this._useUTC ? 'utc' : undefined,
|
|
228
233
|
locale: this.locale,
|
|
229
234
|
outputCalendar: this._defaultOutputCalendar
|
|
230
235
|
};
|
|
231
236
|
}
|
|
237
|
+
_getDateTimeOptions() {
|
|
238
|
+
return {
|
|
239
|
+
...this._getLocaleOptions(),
|
|
240
|
+
zone: this._useUTC ? 'utc' : this._timeZone
|
|
241
|
+
};
|
|
242
|
+
}
|
|
232
243
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
233
244
|
minVersion: "12.0.0",
|
|
234
|
-
version: "22.2.0-next.
|
|
245
|
+
version: "22.2.0-next.7",
|
|
235
246
|
ngImport: i0,
|
|
236
247
|
type: LuxonDateAdapter,
|
|
237
248
|
deps: [],
|
|
@@ -239,7 +250,7 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
239
250
|
});
|
|
240
251
|
static ɵprov = i0.ɵɵngDeclareService({
|
|
241
252
|
minVersion: "22.0.0",
|
|
242
|
-
version: "22.2.0-next.
|
|
253
|
+
version: "22.2.0-next.7",
|
|
243
254
|
ngImport: i0,
|
|
244
255
|
type: LuxonDateAdapter,
|
|
245
256
|
autoProvided: false
|
|
@@ -247,7 +258,7 @@ class LuxonDateAdapter extends DateAdapter {
|
|
|
247
258
|
}
|
|
248
259
|
i0.ɵɵngDeclareClassMetadata({
|
|
249
260
|
minVersion: "12.0.0",
|
|
250
|
-
version: "22.2.0-next.
|
|
261
|
+
version: "22.2.0-next.7",
|
|
251
262
|
ngImport: i0,
|
|
252
263
|
type: LuxonDateAdapter,
|
|
253
264
|
decorators: [{
|
|
@@ -277,7 +288,7 @@ const MAT_LUXON_DATE_FORMATS = {
|
|
|
277
288
|
class LuxonDateModule {
|
|
278
289
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
279
290
|
minVersion: "12.0.0",
|
|
280
|
-
version: "22.2.0-next.
|
|
291
|
+
version: "22.2.0-next.7",
|
|
281
292
|
ngImport: i0,
|
|
282
293
|
type: LuxonDateModule,
|
|
283
294
|
deps: [],
|
|
@@ -285,13 +296,13 @@ class LuxonDateModule {
|
|
|
285
296
|
});
|
|
286
297
|
static ɵmod = i0.ɵɵngDeclareNgModule({
|
|
287
298
|
minVersion: "14.0.0",
|
|
288
|
-
version: "22.2.0-next.
|
|
299
|
+
version: "22.2.0-next.7",
|
|
289
300
|
ngImport: i0,
|
|
290
301
|
type: LuxonDateModule
|
|
291
302
|
});
|
|
292
303
|
static ɵinj = i0.ɵɵngDeclareInjector({
|
|
293
304
|
minVersion: "12.0.0",
|
|
294
|
-
version: "22.2.0-next.
|
|
305
|
+
version: "22.2.0-next.7",
|
|
295
306
|
ngImport: i0,
|
|
296
307
|
type: LuxonDateModule,
|
|
297
308
|
providers: [{
|
|
@@ -302,7 +313,7 @@ class LuxonDateModule {
|
|
|
302
313
|
}
|
|
303
314
|
i0.ɵɵngDeclareClassMetadata({
|
|
304
315
|
minVersion: "12.0.0",
|
|
305
|
-
version: "22.2.0-next.
|
|
316
|
+
version: "22.2.0-next.7",
|
|
306
317
|
ngImport: i0,
|
|
307
318
|
type: LuxonDateModule,
|
|
308
319
|
decorators: [{
|
|
@@ -318,7 +329,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
318
329
|
class MatLuxonDateModule {
|
|
319
330
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
320
331
|
minVersion: "12.0.0",
|
|
321
|
-
version: "22.2.0-next.
|
|
332
|
+
version: "22.2.0-next.7",
|
|
322
333
|
ngImport: i0,
|
|
323
334
|
type: MatLuxonDateModule,
|
|
324
335
|
deps: [],
|
|
@@ -326,13 +337,13 @@ class MatLuxonDateModule {
|
|
|
326
337
|
});
|
|
327
338
|
static ɵmod = i0.ɵɵngDeclareNgModule({
|
|
328
339
|
minVersion: "14.0.0",
|
|
329
|
-
version: "22.2.0-next.
|
|
340
|
+
version: "22.2.0-next.7",
|
|
330
341
|
ngImport: i0,
|
|
331
342
|
type: MatLuxonDateModule
|
|
332
343
|
});
|
|
333
344
|
static ɵinj = i0.ɵɵngDeclareInjector({
|
|
334
345
|
minVersion: "12.0.0",
|
|
335
|
-
version: "22.2.0-next.
|
|
346
|
+
version: "22.2.0-next.7",
|
|
336
347
|
ngImport: i0,
|
|
337
348
|
type: MatLuxonDateModule,
|
|
338
349
|
providers: [provideLuxonDateAdapter()]
|
|
@@ -340,7 +351,7 @@ class MatLuxonDateModule {
|
|
|
340
351
|
}
|
|
341
352
|
i0.ɵɵngDeclareClassMetadata({
|
|
342
353
|
minVersion: "12.0.0",
|
|
343
|
-
version: "22.2.0-next.
|
|
354
|
+
version: "22.2.0-next.7",
|
|
344
355
|
ngImport: i0,
|
|
345
356
|
type: MatLuxonDateModule,
|
|
346
357
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material-luxon-adapter.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-luxon-adapter/adapter/luxon-date-adapter.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-luxon-adapter/adapter/luxon-date-formats.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-luxon-adapter/adapter/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Service, InjectionToken, inject} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {\n DateTime as LuxonDateTime,\n Info as LuxonInfo,\n DateTimeOptions as LuxonDateTimeOptions,\n CalendarSystem as LuxonCalendarSystem,\n} from 'luxon';\n\n/** Configurable options for the `LuxonDateAdapter`. */\nexport interface MatLuxonDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n useUtc: boolean;\n\n /**\n * Sets the first day of week.\n * Changing this will change how Angular Material components like DatePicker shows start of week.\n */\n firstDayOfWeek?: number;\n\n /**\n * Sets the output Calendar.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n defaultOutputCalendar: LuxonCalendarSystem;\n}\n\n/** InjectionToken for LuxonDateAdapter to configure options. */\nexport const MAT_LUXON_DATE_ADAPTER_OPTIONS = new InjectionToken<MatLuxonDateAdapterOptions>(\n 'MAT_LUXON_DATE_ADAPTER_OPTIONS',\n {\n providedIn: 'root',\n factory: () => ({\n useUtc: false,\n defaultOutputCalendar: 'gregory',\n }),\n },\n);\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Luxon Dates for use with Angular Material. */\n@Service({autoProvided: false})\nexport class LuxonDateAdapter extends DateAdapter<LuxonDateTime> {\n private _useUTC: boolean;\n private _firstDayOfWeek: number | undefined;\n private _defaultOutputCalendar: LuxonCalendarSystem;\n\n constructor() {\n super();\n\n const dateLocale = inject(MAT_DATE_LOCALE, {optional: true});\n const options = inject<MatLuxonDateAdapterOptions>(MAT_LUXON_DATE_ADAPTER_OPTIONS, {\n optional: true,\n });\n\n this._useUTC = !!options?.useUtc;\n this._firstDayOfWeek = options?.firstDayOfWeek;\n this._defaultOutputCalendar = options?.defaultOutputCalendar || 'gregory';\n this.setLocale(dateLocale || LuxonDateTime.local().locale);\n }\n\n getYear(date: LuxonDateTime): number {\n return date.year;\n }\n\n getMonth(date: LuxonDateTime): number {\n // Luxon works with 1-indexed months whereas our code expects 0-indexed.\n return date.month - 1;\n }\n\n getDate(date: LuxonDateTime): number {\n return date.day;\n }\n\n getDayOfWeek(date: LuxonDateTime): number {\n return date.weekday;\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Adding outputCalendar option, because LuxonInfo doesn't get effected by LuxonSettings\n return LuxonInfo.months(style, {\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n });\n }\n\n getDateNames(): string[] {\n // At the time of writing, Luxon doesn't offer similar\n // functionality so we have to fall back to the Intl API.\n const dtf = new Intl.DateTimeFormat(this.locale, {day: 'numeric', timeZone: 'utc'});\n\n // Format a UTC date in order to avoid DST issues.\n return range(31, i => dtf.format(LuxonDateTime.utc(2017, 1, i + 1).toJSDate()));\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Note that we shift the array once, because Luxon returns Monday as the\n // first day of the week, whereas our logic assumes that it's Sunday. See:\n // https://moment.github.io/luxon/api-docs/index.html#infoweekdays\n const days = LuxonInfo.weekdays(style, {locale: this.locale});\n days.unshift(days.pop()!);\n return days;\n }\n\n getYearName(date: LuxonDateTime): string {\n return date.toFormat('yyyy', this._getOptions());\n }\n\n getFirstDayOfWeek(): number {\n return this._firstDayOfWeek ?? LuxonInfo.getStartOfWeek({locale: this.locale});\n }\n\n getNumDaysInMonth(date: LuxonDateTime): number {\n return date.daysInMonth!;\n }\n\n clone(date: LuxonDateTime): LuxonDateTime {\n return LuxonDateTime.fromObject(date.toObject(), {\n ...this._getOptions(),\n zone: date.zone,\n });\n }\n\n createDate(year: number, month: number, date: number): LuxonDateTime {\n const options = this._getOptions();\n\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n // Luxon uses 1-indexed months so we need to add one to the month.\n const result = this._useUTC\n ? LuxonDateTime.utc(year, month + 1, date, options)\n : LuxonDateTime.local(year, month + 1, date, options);\n\n if (!this.isValid(result)) {\n throw Error(`Invalid date \"${date}\". Reason: \"${result.invalidReason}\".`);\n }\n\n return result;\n }\n\n today(): LuxonDateTime {\n const options = this._getOptions();\n\n return this._useUTC ? LuxonDateTime.utc(options) : LuxonDateTime.local(options);\n }\n\n parse(value: unknown, parseFormat: string | string[]): LuxonDateTime | null {\n const options: LuxonDateTimeOptions = this._getOptions();\n\n if (typeof value == 'string' && value.length > 0) {\n const iso8601Date = LuxonDateTime.fromISO(value, options);\n\n if (this.isValid(iso8601Date)) {\n return iso8601Date;\n }\n\n const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];\n\n if (!parseFormat.length) {\n throw Error('Formats array must not be empty.');\n }\n\n for (const format of formats) {\n const fromFormat = LuxonDateTime.fromFormat(value, format, options);\n\n if (this.isValid(fromFormat)) {\n return fromFormat;\n }\n }\n\n return this.invalid();\n } else if (typeof value === 'number') {\n return LuxonDateTime.fromMillis(value, options);\n } else if (value instanceof Date) {\n return LuxonDateTime.fromJSDate(value, options);\n } else if (value instanceof LuxonDateTime) {\n return LuxonDateTime.fromMillis(value.toMillis(), options);\n }\n\n return null;\n }\n\n format(date: LuxonDateTime, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('LuxonDateAdapter: Cannot format invalid date.');\n }\n if (this._useUTC) {\n return date.setLocale(this.locale).setZone('utc').toFormat(displayFormat);\n } else {\n return date.setLocale(this.locale).toFormat(displayFormat);\n }\n }\n\n addCalendarYears(date: LuxonDateTime, years: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({years});\n }\n\n addCalendarMonths(date: LuxonDateTime, months: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({months});\n }\n\n addCalendarDays(date: LuxonDateTime, days: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({days});\n }\n\n toIso8601(date: LuxonDateTime): string {\n return date.toISO()!;\n }\n\n /**\n * Returns the given value if given a valid Luxon or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid DateTime and empty\n * string into null. Returns an invalid date for all other values.\n */\n override deserialize(value: unknown): LuxonDateTime | null {\n const options = this._getOptions();\n let date: LuxonDateTime | undefined;\n if (value instanceof Date) {\n date = LuxonDateTime.fromJSDate(value, options);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = LuxonDateTime.fromISO(value, options);\n }\n if (date && this.isValid(date)) {\n return date;\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: unknown): obj is LuxonDateTime {\n return obj instanceof LuxonDateTime;\n }\n\n isValid(date: LuxonDateTime): boolean {\n return date.isValid;\n }\n\n invalid(): LuxonDateTime {\n return LuxonDateTime.invalid('Invalid Luxon DateTime object.');\n }\n\n override setTime(\n target: LuxonDateTime,\n hours: number,\n minutes: number,\n seconds: number,\n ): LuxonDateTime {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (hours < 0 || hours > 23) {\n throw Error(`Invalid hours \"${hours}\". Hours value must be between 0 and 23.`);\n }\n\n if (minutes < 0 || minutes > 59) {\n throw Error(`Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`);\n }\n\n if (seconds < 0 || seconds > 59) {\n throw Error(`Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`);\n }\n }\n\n return this.clone(target).set({\n hour: hours,\n minute: minutes,\n second: seconds,\n millisecond: 0,\n });\n }\n\n override getHours(date: LuxonDateTime): number {\n return date.hour;\n }\n\n override getMinutes(date: LuxonDateTime): number {\n return date.minute;\n }\n\n override getSeconds(date: LuxonDateTime): number {\n return date.second;\n }\n\n override parseTime(value: unknown, parseFormat: string | string[]): LuxonDateTime | null {\n const result = this.parse(value, parseFormat);\n\n if ((!result || !this.isValid(result)) && typeof value === 'string') {\n // It seems like Luxon doesn't work well cross-browser for strings that have\n // additional characters around the time. Try parsing without those characters.\n return this.parse(value.replace(/[^0-9:(AM|PM)]/gi, ''), parseFormat) || result;\n }\n\n return result;\n }\n\n override addSeconds(date: LuxonDateTime, amount: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({seconds: amount});\n }\n\n /** Gets the options that should be used when constructing a new `DateTime` object. */\n private _getOptions(): LuxonDateTimeOptions {\n return {\n zone: this._useUTC ? 'utc' : undefined,\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n };\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MatDateFormats} from '@angular/material/core';\n\nexport const MAT_LUXON_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'D',\n timeInput: 't',\n },\n display: {\n dateInput: 'D',\n timeInput: 't',\n monthYearLabel: 'LLL yyyy',\n dateA11yLabel: 'DD',\n monthYearA11yLabel: 'LLLL yyyy',\n timeOptionLabel: 't',\n },\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule, Provider} from '@angular/core';\nimport {DateAdapter, MAT_DATE_FORMATS, MatDateFormats} from '@angular/material/core';\nimport {LuxonDateAdapter} from './luxon-date-adapter';\nimport {MAT_LUXON_DATE_FORMATS} from './luxon-date-formats';\n\nexport * from './luxon-date-adapter';\nexport * from './luxon-date-formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: LuxonDateAdapter,\n },\n ],\n})\nexport class LuxonDateModule {}\n\n@NgModule({\n providers: [provideLuxonDateAdapter()],\n})\nexport class MatLuxonDateModule {}\n\nexport function provideLuxonDateAdapter(\n formats: MatDateFormats = MAT_LUXON_DATE_FORMATS,\n): Provider[] {\n return [\n {\n provide: DateAdapter,\n useClass: LuxonDateAdapter,\n },\n {provide: MAT_DATE_FORMATS, useValue: formats},\n ];\n}\n"],"names":["LuxonDateTime","LuxonInfo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"material-luxon-adapter.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-luxon-adapter/adapter/luxon-date-adapter.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-luxon-adapter/adapter/luxon-date-formats.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-luxon-adapter/adapter/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Service, InjectionToken, inject} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {\n DateTime as LuxonDateTime,\n Info as LuxonInfo,\n DateTimeOptions as LuxonDateTimeOptions,\n LocaleOptions as LuxonLocaleOptions,\n CalendarSystem as LuxonCalendarSystem,\n} from 'luxon';\n\n/** Configurable options for the `LuxonDateAdapter`. */\nexport interface MatLuxonDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n useUtc: boolean;\n\n /**\n * Sets the timeZone of DateTime objects.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * Throws an error if the useUtc parameter is set to true and the timeZone is also provided.\n */\n timeZone?: string;\n\n /**\n * Sets the first day of week.\n * Changing this will change how Angular Material components like DatePicker shows start of week.\n */\n firstDayOfWeek?: number;\n\n /**\n * Sets the output Calendar.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n defaultOutputCalendar: LuxonCalendarSystem;\n}\n\n/** InjectionToken for LuxonDateAdapter to configure options. */\nexport const MAT_LUXON_DATE_ADAPTER_OPTIONS = new InjectionToken<MatLuxonDateAdapterOptions>(\n 'MAT_LUXON_DATE_ADAPTER_OPTIONS',\n {\n providedIn: 'root',\n factory: () => ({\n useUtc: false,\n defaultOutputCalendar: 'gregory',\n }),\n },\n);\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Luxon Dates for use with Angular Material. */\n@Service({autoProvided: false})\nexport class LuxonDateAdapter extends DateAdapter<LuxonDateTime> {\n private _useUTC: boolean;\n private _firstDayOfWeek: number | undefined;\n private _defaultOutputCalendar: LuxonCalendarSystem;\n private _timeZone?: string;\n\n constructor() {\n super();\n\n const dateLocale = inject(MAT_DATE_LOCALE, {optional: true});\n const options = inject<MatLuxonDateAdapterOptions>(MAT_LUXON_DATE_ADAPTER_OPTIONS, {\n optional: true,\n });\n\n this._useUTC = !!options?.useUtc;\n this._firstDayOfWeek = options?.firstDayOfWeek;\n this._defaultOutputCalendar = options?.defaultOutputCalendar || 'gregory';\n this.setTimeZone(options?.timeZone);\n this.setLocale(dateLocale || LuxonDateTime.local().locale);\n }\n\n getYear(date: LuxonDateTime): number {\n return date.year;\n }\n\n getMonth(date: LuxonDateTime): number {\n // Luxon works with 1-indexed months whereas our code expects 0-indexed.\n return date.month - 1;\n }\n\n getDate(date: LuxonDateTime): number {\n return date.day;\n }\n\n getDayOfWeek(date: LuxonDateTime): number {\n return date.weekday;\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Adding outputCalendar option, because LuxonInfo doesn't get effected by LuxonSettings\n return LuxonInfo.months(style, {\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n });\n }\n\n getDateNames(): string[] {\n // At the time of writing, Luxon doesn't offer similar\n // functionality so we have to fall back to the Intl API.\n const dtf = new Intl.DateTimeFormat(this.locale, {day: 'numeric', timeZone: 'utc'});\n\n // Format a UTC date in order to avoid DST issues.\n return range(31, i => dtf.format(LuxonDateTime.utc(2017, 1, i + 1).toJSDate()));\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Note that we shift the array once, because Luxon returns Monday as the\n // first day of the week, whereas our logic assumes that it's Sunday. See:\n // https://moment.github.io/luxon/api-docs/index.html#infoweekdays\n const days = LuxonInfo.weekdays(style, {locale: this.locale});\n days.unshift(days.pop()!);\n return days;\n }\n\n getYearName(date: LuxonDateTime): string {\n return date.toFormat('yyyy', this._getLocaleOptions());\n }\n\n getFirstDayOfWeek(): number {\n return this._firstDayOfWeek ?? LuxonInfo.getStartOfWeek({locale: this.locale});\n }\n\n getNumDaysInMonth(date: LuxonDateTime): number {\n return date.daysInMonth!;\n }\n\n clone(date: LuxonDateTime): LuxonDateTime {\n return LuxonDateTime.fromObject(date.toObject(), {\n ...this._getLocaleOptions(),\n zone: date.zone,\n });\n }\n\n createDate(year: number, month: number, date: number): LuxonDateTime {\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n // Luxon uses 1-indexed months so we need to add one to the month.\n const result = this._useUTC\n ? LuxonDateTime.utc(year, month + 1, date, this._getLocaleOptions())\n : LuxonDateTime.local(year, month + 1, date, this._getDateTimeOptions());\n\n if (!this.isValid(result)) {\n throw Error(`Invalid date \"${date}\". Reason: \"${result.invalidReason}\".`);\n }\n\n return result;\n }\n\n today(): LuxonDateTime {\n return this._useUTC\n ? LuxonDateTime.utc(this._getLocaleOptions())\n : LuxonDateTime.local(this._getDateTimeOptions());\n }\n\n parse(value: unknown, parseFormat: string | string[]): LuxonDateTime | null {\n const options: LuxonDateTimeOptions = this._getDateTimeOptions();\n\n if (typeof value == 'string' && value.length > 0) {\n const iso8601Date = LuxonDateTime.fromISO(value, options);\n\n if (this.isValid(iso8601Date)) {\n return iso8601Date;\n }\n\n const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];\n\n if (!parseFormat.length) {\n throw Error('Formats array must not be empty.');\n }\n\n for (const format of formats) {\n const fromFormat = LuxonDateTime.fromFormat(value, format, options);\n\n if (this.isValid(fromFormat)) {\n return fromFormat;\n }\n }\n\n return this.invalid();\n } else if (typeof value === 'number') {\n return LuxonDateTime.fromMillis(value, options);\n } else if (value instanceof Date) {\n return LuxonDateTime.fromJSDate(value, options);\n } else if (value instanceof LuxonDateTime) {\n return LuxonDateTime.fromMillis(value.toMillis(), options);\n }\n\n return null;\n }\n\n format(date: LuxonDateTime, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('LuxonDateAdapter: Cannot format invalid date.');\n }\n if (this._useUTC) {\n return date.setLocale(this.locale).setZone('utc').toFormat(displayFormat);\n } else {\n return date.setLocale(this.locale).toFormat(displayFormat);\n }\n }\n\n addCalendarYears(date: LuxonDateTime, years: number): LuxonDateTime {\n return date.reconfigure(this._getLocaleOptions()).plus({years});\n }\n\n addCalendarMonths(date: LuxonDateTime, months: number): LuxonDateTime {\n return date.reconfigure(this._getLocaleOptions()).plus({months});\n }\n\n addCalendarDays(date: LuxonDateTime, days: number): LuxonDateTime {\n return date.reconfigure(this._getLocaleOptions()).plus({days});\n }\n\n toIso8601(date: LuxonDateTime): string {\n return date.toISO()!;\n }\n\n /**\n * Returns the given value if given a valid Luxon or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid DateTime and empty\n * string into null. Returns an invalid date for all other values.\n */\n override deserialize(value: unknown): LuxonDateTime | null {\n const options = this._getDateTimeOptions();\n let date: LuxonDateTime | undefined;\n if (value instanceof Date) {\n date = LuxonDateTime.fromJSDate(value, options);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = LuxonDateTime.fromISO(value, options);\n }\n if (date && this.isValid(date)) {\n return date;\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: unknown): obj is LuxonDateTime {\n return obj instanceof LuxonDateTime;\n }\n\n isValid(date: LuxonDateTime): boolean {\n return date.isValid;\n }\n\n invalid(): LuxonDateTime {\n return LuxonDateTime.invalid('Invalid Luxon DateTime object.');\n }\n\n override setTime(\n target: LuxonDateTime,\n hours: number,\n minutes: number,\n seconds: number,\n ): LuxonDateTime {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (hours < 0 || hours > 23) {\n throw Error(`Invalid hours \"${hours}\". Hours value must be between 0 and 23.`);\n }\n\n if (minutes < 0 || minutes > 59) {\n throw Error(`Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`);\n }\n\n if (seconds < 0 || seconds > 59) {\n throw Error(`Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`);\n }\n }\n\n return this.clone(target).set({\n hour: hours,\n minute: minutes,\n second: seconds,\n millisecond: 0,\n });\n }\n\n override getHours(date: LuxonDateTime): number {\n return date.hour;\n }\n\n override getMinutes(date: LuxonDateTime): number {\n return date.minute;\n }\n\n override getSeconds(date: LuxonDateTime): number {\n return date.second;\n }\n\n override parseTime(value: unknown, parseFormat: string | string[]): LuxonDateTime | null {\n const result = this.parse(value, parseFormat);\n\n if ((!result || !this.isValid(result)) && typeof value === 'string') {\n // It seems like Luxon doesn't work well cross-browser for strings that have\n // additional characters around the time. Try parsing without those characters.\n return this.parse(value.replace(/[^0-9:(AM|PM)]/gi, ''), parseFormat) || result;\n }\n\n return result;\n }\n\n override addSeconds(date: LuxonDateTime, amount: number): LuxonDateTime {\n return date.reconfigure(this._getLocaleOptions()).plus({seconds: amount});\n }\n\n /**\n * Sets the timeZone of DateTime objects.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * Throws an error if the useUtc parameter is set to true and the timeZone is also provided.\n */\n setTimeZone(timeZone?: string) {\n if (this._useUTC && timeZone) {\n throw Error(`Cannot set timeZone if the useUtc option is set to true.`);\n }\n this._timeZone = timeZone;\n }\n\n /** Gets the Locale options that should be used when Luxon expects a LocaleOptions parameter. */\n private _getLocaleOptions(): LuxonLocaleOptions {\n return {\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n };\n }\n\n /** Gets the DateTime options that should be used when Luxon expects a DateTimeOptions, e.g. when constructing/parsing a `DateTime` object. */\n private _getDateTimeOptions(): LuxonDateTimeOptions {\n return {\n ...this._getLocaleOptions(),\n zone: this._useUTC ? 'utc' : this._timeZone,\n };\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MatDateFormats} from '@angular/material/core';\n\nexport const MAT_LUXON_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'D',\n timeInput: 't',\n },\n display: {\n dateInput: 'D',\n timeInput: 't',\n monthYearLabel: 'LLL yyyy',\n dateA11yLabel: 'DD',\n monthYearA11yLabel: 'LLLL yyyy',\n timeOptionLabel: 't',\n },\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule, Provider} from '@angular/core';\nimport {DateAdapter, MAT_DATE_FORMATS, MatDateFormats} from '@angular/material/core';\nimport {LuxonDateAdapter} from './luxon-date-adapter';\nimport {MAT_LUXON_DATE_FORMATS} from './luxon-date-formats';\n\nexport * from './luxon-date-adapter';\nexport * from './luxon-date-formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: LuxonDateAdapter,\n },\n ],\n})\nexport class LuxonDateModule {}\n\n@NgModule({\n providers: [provideLuxonDateAdapter()],\n})\nexport class MatLuxonDateModule {}\n\nexport function provideLuxonDateAdapter(\n formats: MatDateFormats = MAT_LUXON_DATE_FORMATS,\n): Provider[] {\n return [\n {\n provide: DateAdapter,\n useClass: LuxonDateAdapter,\n },\n {provide: MAT_DATE_FORMATS, useValue: formats},\n ];\n}\n"],"names":["LuxonDateTime","LuxonInfo"],"mappings":";;;;;MA+Ca,8BAA8B,GAAG,IAAI,cAAc,CAC9D,gCAAgC,EAChC;AACE,EAAA,UAAU,EAAE,MAAM;AAClB,EAAA,OAAO,EAAE,OAAO;AACd,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,qBAAqB,EAAE;GACxB;AACF,CAAA;AAIH,SAAS,KAAK,CAAI,MAAc,EAAE,aAAmC,EAAA;AACnE,EAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;EACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAA,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;AACnC,EAAA;AACA,EAAA,OAAO,WAAW;AACpB;AAIM,MAAO,gBAAiB,SAAQ,WAA0B,CAAA;EACtD,OAAO;EACP,eAAe;EACf,sBAAsB;EACtB,SAAS;AAEjB,EAAA,WAAA,GAAA;AACE,IAAA,KAAK,EAAE;AAEP,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,EAAE;AAAC,MAAA,QAAQ,EAAE;AAAI,KAAC,CAAC;AAC5D,IAAA,MAAM,OAAO,GAAG,MAAM,CAA6B,8BAA8B,EAAE;AACjF,MAAA,QAAQ,EAAE;AACX,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM;AAChC,IAAA,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,cAAc;AAC9C,IAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO,EAAE,qBAAqB,IAAI,SAAS;AACzE,IAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;AACnC,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,IAAIA,QAAa,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AAC5D,EAAA;EAEA,OAAO,CAAC,IAAmB,EAAA;IACzB,OAAO,IAAI,CAAC,IAAI;AAClB,EAAA;EAEA,QAAQ,CAAC,IAAmB,EAAA;AAE1B,IAAA,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC;AACvB,EAAA;EAEA,OAAO,CAAC,IAAmB,EAAA;IACzB,OAAO,IAAI,CAAC,GAAG;AACjB,EAAA;EAEA,YAAY,CAAC,IAAmB,EAAA;IAC9B,OAAO,IAAI,CAAC,OAAO;AACrB,EAAA;EAEA,aAAa,CAAC,KAAkC,EAAA;AAE9C,IAAA,OAAOC,IAAS,CAAC,MAAM,CAAC,KAAK,EAAE;MAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;MACnB,cAAc,EAAE,IAAI,CAAC;AACtB,KAAA,CAAC;AACJ,EAAA;AAEA,EAAA,YAAY,GAAA;IAGV,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE;AAAC,MAAA,GAAG,EAAE,SAAS;AAAE,MAAA,QAAQ,EAAE;AAAK,KAAC,CAAC;IAGnF,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAACD,QAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjF,EAAA;EAEA,iBAAiB,CAAC,KAAkC,EAAA;AAIlD,IAAA,MAAM,IAAI,GAAGC,IAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;MAAC,MAAM,EAAE,IAAI,CAAC;AAAM,KAAC,CAAC;IAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC;AACzB,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,WAAW,CAAC,IAAmB,EAAA;IAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACxD,EAAA;AAEA,EAAA,iBAAiB,GAAA;AACf,IAAA,OAAO,IAAI,CAAC,eAAe,IAAIA,IAAS,CAAC,cAAc,CAAC;MAAC,MAAM,EAAE,IAAI,CAAC;AAAM,KAAC,CAAC;AAChF,EAAA;EAEA,iBAAiB,CAAC,IAAmB,EAAA;IACnC,OAAO,IAAI,CAAC,WAAY;AAC1B,EAAA;EAEA,KAAK,CAAC,IAAmB,EAAA;IACvB,OAAOD,QAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC/C,MAAA,GAAG,IAAI,CAAC,iBAAiB,EAAE;MAC3B,IAAI,EAAE,IAAI,CAAC;AACZ,KAAA,CAAC;AACJ,EAAA;AAEA,EAAA,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAA;AAClD,IAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE;AAC3B,MAAA,MAAM,KAAK,CAAC,CAAA,qBAAA,EAAwB,KAAK,4CAA4C,CAAC;AACxF,IAAA;IAEA,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,MAAA,MAAM,KAAK,CAAC,CAAA,cAAA,EAAiB,IAAI,mCAAmC,CAAC;AACvE,IAAA;AAGA,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAA,GAChBA,QAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAA,GACjEA,QAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAE1E,IAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;MACzB,MAAM,KAAK,CAAC,CAAA,cAAA,EAAiB,IAAI,eAAe,MAAM,CAAC,aAAa,CAAA,EAAA,CAAI,CAAC;AAC3E,IAAA;AAEA,IAAA,OAAO,MAAM;AACf,EAAA;AAEA,EAAA,KAAK,GAAA;IACH,OAAO,IAAI,CAAC,OAAA,GACRA,QAAa,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA,GAC1CA,QAAa,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACrD,EAAA;AAEA,EAAA,KAAK,CAAC,KAAc,EAAE,WAA8B,EAAA;AAClD,IAAA,MAAM,OAAO,GAAyB,IAAI,CAAC,mBAAmB,EAAE;IAEhE,IAAI,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;MAChD,MAAM,WAAW,GAAGA,QAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;AAEzD,MAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC7B,QAAA,OAAO,WAAW;AACpB,MAAA;AAEA,MAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,CAAC,WAAW,CAAC;AAExE,MAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACvB,MAAM,KAAK,CAAC,kCAAkC,CAAC;AACjD,MAAA;AAEA,MAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,UAAU,GAAGA,QAAa,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAEnE,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC5B,UAAA,OAAO,UAAU;AACnB,QAAA;AACF,MAAA;AAEA,MAAA,OAAO,IAAI,CAAC,OAAO,EAAE;AACvB,IAAA,CAAA,MAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,MAAA,OAAOA,QAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACjD,IAAA,CAAA,MAAO,IAAI,KAAK,YAAY,IAAI,EAAE;AAChC,MAAA,OAAOA,QAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACjD,IAAA,CAAA,MAAO,IAAI,KAAK,YAAYA,QAAa,EAAE;MACzC,OAAOA,QAAa,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;AAC5D,IAAA;AAEA,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,MAAM,CAAC,IAAmB,EAAE,aAAqB,EAAA;AAC/C,IAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MACvB,MAAM,KAAK,CAAC,+CAA+C,CAAC;AAC9D,IAAA;IACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,MAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3E,IAAA,CAAA,MAAO;AACL,MAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC5D,IAAA;AACF,EAAA;AAEA,EAAA,gBAAgB,CAAC,IAAmB,EAAE,KAAa,EAAA;AACjD,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC;AAAC,MAAA;AAAK,KAAC,CAAC;AACjE,EAAA;AAEA,EAAA,iBAAiB,CAAC,IAAmB,EAAE,MAAc,EAAA;AACnD,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC;AAAC,MAAA;AAAM,KAAC,CAAC;AAClE,EAAA;AAEA,EAAA,eAAe,CAAC,IAAmB,EAAE,IAAY,EAAA;AAC/C,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC;AAAC,MAAA;AAAI,KAAC,CAAC;AAChE,EAAA;EAEA,SAAS,CAAC,IAAmB,EAAA;AAC3B,IAAA,OAAO,IAAI,CAAC,KAAK,EAAG;AACtB,EAAA;EAOS,WAAW,CAAC,KAAc,EAAA;AACjC,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC1C,IAAA,IAAI,IAA+B;IACnC,IAAI,KAAK,YAAY,IAAI,EAAE;MACzB,IAAI,GAAGA,QAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACjD,IAAA;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,IAAI;AACb,MAAA;MACA,IAAI,GAAGA,QAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;AAC9C,IAAA;IACA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAA,OAAO,IAAI;AACb,IAAA;AACA,IAAA,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AACjC,EAAA;EAEA,cAAc,CAAC,GAAY,EAAA;IACzB,OAAO,GAAG,YAAYA,QAAa;AACrC,EAAA;EAEA,OAAO,CAAC,IAAmB,EAAA;IACzB,OAAO,IAAI,CAAC,OAAO;AACrB,EAAA;AAEA,EAAA,OAAO,GAAA;AACL,IAAA,OAAOA,QAAa,CAAC,OAAO,CAAC,gCAAgC,CAAC;AAChE,EAAA;EAES,OAAO,CACd,MAAqB,EACrB,KAAa,EACb,OAAe,EACf,OAAe,EAAA;AAEf,IAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,MAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE;AAC3B,QAAA,MAAM,KAAK,CAAC,CAAA,eAAA,EAAkB,KAAK,0CAA0C,CAAC;AAChF,MAAA;AAEA,MAAA,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE;AAC/B,QAAA,MAAM,KAAK,CAAC,CAAA,iBAAA,EAAoB,OAAO,4CAA4C,CAAC;AACtF,MAAA;AAEA,MAAA,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE;AAC/B,QAAA,MAAM,KAAK,CAAC,CAAA,iBAAA,EAAoB,OAAO,4CAA4C,CAAC;AACtF,MAAA;AACF,IAAA;IAEA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AAC5B,MAAA,IAAI,EAAE,KAAK;AACX,MAAA,MAAM,EAAE,OAAO;AACf,MAAA,MAAM,EAAE,OAAO;AACf,MAAA,WAAW,EAAE;AACd,KAAA,CAAC;AACJ,EAAA;EAES,QAAQ,CAAC,IAAmB,EAAA;IACnC,OAAO,IAAI,CAAC,IAAI;AAClB,EAAA;EAES,UAAU,CAAC,IAAmB,EAAA;IACrC,OAAO,IAAI,CAAC,MAAM;AACpB,EAAA;EAES,UAAU,CAAC,IAAmB,EAAA;IACrC,OAAO,IAAI,CAAC,MAAM;AACpB,EAAA;AAES,EAAA,SAAS,CAAC,KAAc,EAAE,WAA8B,EAAA;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;AAE7C,IAAA,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,KAAK,KAAK,QAAQ,EAAE;AAGnE,MAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,MAAM;AACjF,IAAA;AAEA,IAAA,OAAO,MAAM;AACf,EAAA;AAES,EAAA,UAAU,CAAC,IAAmB,EAAE,MAAc,EAAA;AACrD,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC;AAAC,MAAA,OAAO,EAAE;AAAM,KAAC,CAAC;AAC3E,EAAA;EAOA,WAAW,CAAC,QAAiB,EAAA;AAC3B,IAAA,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;MAC5B,MAAM,KAAK,CAAC,CAAA,wDAAA,CAA0D,CAAC;AACzE,IAAA;IACA,IAAI,CAAC,SAAS,GAAG,QAAQ;AAC3B,EAAA;AAGQ,EAAA,iBAAiB,GAAA;IACvB,OAAO;MACL,MAAM,EAAE,IAAI,CAAC,MAAM;MACnB,cAAc,EAAE,IAAI,CAAC;KACtB;AACH,EAAA;AAGQ,EAAA,mBAAmB,GAAA;IACzB,OAAO;AACL,MAAA,GAAG,IAAI,CAAC,iBAAiB,EAAE;MAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;KACnC;AACH,EAAA;;;;;UAlSW,gBAAgB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAhB,gBAAgB;AAAA,IAAA,YAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAhB,gBAAgB;AAAA,EAAA,UAAA,EAAA,CAAA;UAD5B,OAAO;WAAC;AAAC,MAAA,YAAY,EAAE;KAAM;;;;;AC1DvB,MAAM,sBAAsB,GAAmB;AACpD,EAAA,KAAK,EAAE;AACL,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE;GACZ;AACD,EAAA,OAAO,EAAE;AACP,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,kBAAkB,EAAE,WAAW;AAC/B,IAAA,eAAe,EAAE;AAClB;;;MCEU,eAAe,CAAA;;;;;UAAf,eAAe;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAf;AAAe,GAAA,CAAA;AAAf,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,eAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,IAAA,EAAA,eAAe;AAAA,IAAA,SAAA,EAPf,CACT;AACE,MAAA,OAAO,EAAE,WAAW;AACpB,MAAA,QAAQ,EAAE;KACX;AACF,GAAA,CAAA;;;;;;QAEU,eAAe;AAAA,EAAA,UAAA,EAAA,CAAA;UAR3B,QAAQ;AAAC,IAAA,IAAA,EAAA,CAAA;AACR,MAAA,SAAS,EAAE,CACT;AACE,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,QAAQ,EAAE;OACX;KAEJ;;;MAMY,kBAAkB,CAAA;;;;;UAAlB,kBAAkB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAlB;AAAkB,GAAA,CAAA;AAAlB,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,eAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,IAAA,EAAA,kBAAkB;AAAA,IAAA,SAAA,EAFlB,CAAC,uBAAuB,EAAE;AAAC,GAAA,CAAA;;;;;;QAE3B,kBAAkB;AAAA,EAAA,UAAA,EAAA,CAAA;UAH9B,QAAQ;AAAC,IAAA,IAAA,EAAA,CAAA;AACR,MAAA,SAAS,EAAE,CAAC,uBAAuB,EAAE;KACtC;;;AAGK,SAAU,uBAAuB,CACrC,OAAA,GAA0B,sBAAsB,EAAA;AAEhD,EAAA,OAAO,CACL;AACE,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,QAAQ,EAAE;AACX,GAAA,EACD;AAAC,IAAA,OAAO,EAAE,gBAAgB;AAAE,IAAA,QAAQ,EAAE;AAAO,GAAC,CAC/C;AACH;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/material-luxon-adapter",
|
|
3
|
-
"version": "22.2.0-
|
|
3
|
+
"version": "22.2.0-rc.0",
|
|
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": "22.2.0-
|
|
15
|
+
"@angular/material": "22.2.0-rc.0",
|
|
16
16
|
"@angular/core": "^22.0.0-0 || ^22.1.0-0 || ^22.2.0-0 || ^22.3.0-0 || ^23.0.0-0",
|
|
17
17
|
"luxon": "^3.7.2"
|
|
18
18
|
},
|
|
@@ -10,6 +10,12 @@ interface MatLuxonDateAdapterOptions {
|
|
|
10
10
|
* Changing this will change how Angular Material components like DatePicker output dates.
|
|
11
11
|
*/
|
|
12
12
|
useUtc: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Sets the timeZone of DateTime objects.
|
|
15
|
+
* Changing this will change how Angular Material components like DatePicker output dates.
|
|
16
|
+
* Throws an error if the useUtc parameter is set to true and the timeZone is also provided.
|
|
17
|
+
*/
|
|
18
|
+
timeZone?: string;
|
|
13
19
|
/**
|
|
14
20
|
* Sets the first day of week.
|
|
15
21
|
* Changing this will change how Angular Material components like DatePicker shows start of week.
|
|
@@ -28,6 +34,7 @@ declare class LuxonDateAdapter extends DateAdapter<DateTime> {
|
|
|
28
34
|
private _useUTC;
|
|
29
35
|
private _firstDayOfWeek;
|
|
30
36
|
private _defaultOutputCalendar;
|
|
37
|
+
private _timeZone?;
|
|
31
38
|
constructor();
|
|
32
39
|
getYear(date: DateTime): number;
|
|
33
40
|
getMonth(date: DateTime): number;
|
|
@@ -63,10 +70,18 @@ declare class LuxonDateAdapter extends DateAdapter<DateTime> {
|
|
|
63
70
|
getSeconds(date: DateTime): number;
|
|
64
71
|
parseTime(value: unknown, parseFormat: string | string[]): DateTime | null;
|
|
65
72
|
addSeconds(date: DateTime, amount: number): DateTime;
|
|
66
|
-
/**
|
|
67
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Sets the timeZone of DateTime objects.
|
|
75
|
+
* Changing this will change how Angular Material components like DatePicker output dates.
|
|
76
|
+
* Throws an error if the useUtc parameter is set to true and the timeZone is also provided.
|
|
77
|
+
*/
|
|
78
|
+
setTimeZone(timeZone?: string): void;
|
|
79
|
+
/** Gets the Locale options that should be used when Luxon expects a LocaleOptions parameter. */
|
|
80
|
+
private _getLocaleOptions;
|
|
81
|
+
/** Gets the DateTime options that should be used when Luxon expects a DateTimeOptions, e.g. when constructing/parsing a `DateTime` object. */
|
|
82
|
+
private _getDateTimeOptions;
|
|
68
83
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuxonDateAdapter, never>;
|
|
69
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
84
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
70
85
|
}
|
|
71
86
|
|
|
72
87
|
declare const MAT_LUXON_DATE_FORMATS: MatDateFormats;
|