@angular/material-date-fns-adapter 19.0.0-next.0 → 19.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -4
- package/esm2022/adapter/date-fns-adapter.mjs +0 -195
- package/esm2022/adapter/date-fns-formats.mjs +0 -19
- package/esm2022/adapter/index.mjs +0 -59
- package/esm2022/index.mjs +0 -9
- package/esm2022/material-date-fns-adapter_public_index.mjs +0 -5
- package/esm2022/public-api.mjs +0 -9
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/material-date-fns-adapter",
|
|
3
|
-
"version": "19.0.0-next.
|
|
3
|
+
"version": "19.0.0-next.2",
|
|
4
4
|
"description": "Angular Material date-fns 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.
|
|
15
|
+
"@angular/material": "19.0.0-next.2",
|
|
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
|
"date-fns": ">2.20.0 <4.0"
|
|
18
18
|
},
|
|
@@ -37,8 +37,6 @@
|
|
|
37
37
|
},
|
|
38
38
|
".": {
|
|
39
39
|
"types": "./index.d.ts",
|
|
40
|
-
"esm2022": "./esm2022/material-date-fns-adapter_public_index.mjs",
|
|
41
|
-
"esm": "./esm2022/material-date-fns-adapter_public_index.mjs",
|
|
42
40
|
"default": "./fesm2022/material-date-fns-adapter.mjs"
|
|
43
41
|
}
|
|
44
42
|
}
|
|
@@ -1,195 +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 } from '@angular/core';
|
|
9
|
-
import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
10
|
-
import { getMonth, getYear, getDate, getDay, getDaysInMonth, formatISO, addYears, addMonths, addDays, isValid, isDate, format, parseISO, parse, } from 'date-fns';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
/** Creates an array and fills it with values. */
|
|
13
|
-
function range(length, valueFunction) {
|
|
14
|
-
const valuesArray = Array(length);
|
|
15
|
-
for (let i = 0; i < length; i++) {
|
|
16
|
-
valuesArray[i] = valueFunction(i);
|
|
17
|
-
}
|
|
18
|
-
return valuesArray;
|
|
19
|
-
}
|
|
20
|
-
// date-fns doesn't have a way to read/print month names or days of the week directly,
|
|
21
|
-
// so we get them by formatting a date with a format that produces the desired month/day.
|
|
22
|
-
const MONTH_FORMATS = {
|
|
23
|
-
long: 'LLLL',
|
|
24
|
-
short: 'LLL',
|
|
25
|
-
narrow: 'LLLLL',
|
|
26
|
-
};
|
|
27
|
-
const DAY_OF_WEEK_FORMATS = {
|
|
28
|
-
long: 'EEEE',
|
|
29
|
-
short: 'EEE',
|
|
30
|
-
narrow: 'EEEEE',
|
|
31
|
-
};
|
|
32
|
-
/** Adds date-fns support to Angular Material. */
|
|
33
|
-
export class DateFnsAdapter extends DateAdapter {
|
|
34
|
-
constructor(matDateLocale) {
|
|
35
|
-
super();
|
|
36
|
-
this.setLocale(matDateLocale);
|
|
37
|
-
}
|
|
38
|
-
getYear(date) {
|
|
39
|
-
return getYear(date);
|
|
40
|
-
}
|
|
41
|
-
getMonth(date) {
|
|
42
|
-
return getMonth(date);
|
|
43
|
-
}
|
|
44
|
-
getDate(date) {
|
|
45
|
-
return getDate(date);
|
|
46
|
-
}
|
|
47
|
-
getDayOfWeek(date) {
|
|
48
|
-
return getDay(date);
|
|
49
|
-
}
|
|
50
|
-
getMonthNames(style) {
|
|
51
|
-
const pattern = MONTH_FORMATS[style];
|
|
52
|
-
return range(12, i => this.format(new Date(2017, i, 1), pattern));
|
|
53
|
-
}
|
|
54
|
-
getDateNames() {
|
|
55
|
-
const dtf = typeof Intl !== 'undefined'
|
|
56
|
-
? new Intl.DateTimeFormat(this.locale.code, {
|
|
57
|
-
day: 'numeric',
|
|
58
|
-
timeZone: 'utc',
|
|
59
|
-
})
|
|
60
|
-
: null;
|
|
61
|
-
return range(31, i => {
|
|
62
|
-
if (dtf) {
|
|
63
|
-
// date-fns doesn't appear to support this functionality.
|
|
64
|
-
// Fall back to `Intl` on supported browsers.
|
|
65
|
-
const date = new Date();
|
|
66
|
-
date.setUTCFullYear(2017, 0, i + 1);
|
|
67
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
68
|
-
return dtf.format(date).replace(/[\u200e\u200f]/g, '');
|
|
69
|
-
}
|
|
70
|
-
return i + '';
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
getDayOfWeekNames(style) {
|
|
74
|
-
const pattern = DAY_OF_WEEK_FORMATS[style];
|
|
75
|
-
return range(7, i => this.format(new Date(2017, 0, i + 1), pattern));
|
|
76
|
-
}
|
|
77
|
-
getYearName(date) {
|
|
78
|
-
return this.format(date, 'y');
|
|
79
|
-
}
|
|
80
|
-
getFirstDayOfWeek() {
|
|
81
|
-
return this.locale.options?.weekStartsOn ?? 0;
|
|
82
|
-
}
|
|
83
|
-
getNumDaysInMonth(date) {
|
|
84
|
-
return getDaysInMonth(date);
|
|
85
|
-
}
|
|
86
|
-
clone(date) {
|
|
87
|
-
return new Date(date.getTime());
|
|
88
|
-
}
|
|
89
|
-
createDate(year, month, date) {
|
|
90
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
91
|
-
// Check for invalid month and date (except upper bound on date which we have to check after
|
|
92
|
-
// creating the Date).
|
|
93
|
-
if (month < 0 || month > 11) {
|
|
94
|
-
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
95
|
-
}
|
|
96
|
-
if (date < 1) {
|
|
97
|
-
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// Passing the year to the constructor causes year numbers <100 to be converted to 19xx.
|
|
101
|
-
// To work around this we use `setFullYear` and `setHours` instead.
|
|
102
|
-
const result = new Date();
|
|
103
|
-
result.setFullYear(year, month, date);
|
|
104
|
-
result.setHours(0, 0, 0, 0);
|
|
105
|
-
// Check that the date wasn't above the upper bound for the month, causing the month to overflow
|
|
106
|
-
if (result.getMonth() != month && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
107
|
-
throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
|
108
|
-
}
|
|
109
|
-
return result;
|
|
110
|
-
}
|
|
111
|
-
today() {
|
|
112
|
-
return new Date();
|
|
113
|
-
}
|
|
114
|
-
parse(value, parseFormat) {
|
|
115
|
-
if (typeof value == 'string' && value.length > 0) {
|
|
116
|
-
const iso8601Date = parseISO(value);
|
|
117
|
-
if (this.isValid(iso8601Date)) {
|
|
118
|
-
return iso8601Date;
|
|
119
|
-
}
|
|
120
|
-
const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];
|
|
121
|
-
if (!parseFormat.length) {
|
|
122
|
-
throw Error('Formats array must not be empty.');
|
|
123
|
-
}
|
|
124
|
-
for (const currentFormat of formats) {
|
|
125
|
-
const fromFormat = parse(value, currentFormat, new Date(), { locale: this.locale });
|
|
126
|
-
if (this.isValid(fromFormat)) {
|
|
127
|
-
return fromFormat;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return this.invalid();
|
|
131
|
-
}
|
|
132
|
-
else if (typeof value === 'number') {
|
|
133
|
-
return new Date(value);
|
|
134
|
-
}
|
|
135
|
-
else if (value instanceof Date) {
|
|
136
|
-
return this.clone(value);
|
|
137
|
-
}
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
|
-
format(date, displayFormat) {
|
|
141
|
-
if (!this.isValid(date)) {
|
|
142
|
-
throw Error('DateFnsAdapter: Cannot format invalid date.');
|
|
143
|
-
}
|
|
144
|
-
return format(date, displayFormat, { locale: this.locale });
|
|
145
|
-
}
|
|
146
|
-
addCalendarYears(date, years) {
|
|
147
|
-
return addYears(date, years);
|
|
148
|
-
}
|
|
149
|
-
addCalendarMonths(date, months) {
|
|
150
|
-
return addMonths(date, months);
|
|
151
|
-
}
|
|
152
|
-
addCalendarDays(date, days) {
|
|
153
|
-
return addDays(date, days);
|
|
154
|
-
}
|
|
155
|
-
toIso8601(date) {
|
|
156
|
-
return formatISO(date, { representation: 'date' });
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings
|
|
160
|
-
* (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an
|
|
161
|
-
* invalid date for all other values.
|
|
162
|
-
*/
|
|
163
|
-
deserialize(value) {
|
|
164
|
-
if (typeof value === 'string') {
|
|
165
|
-
if (!value) {
|
|
166
|
-
return null;
|
|
167
|
-
}
|
|
168
|
-
const date = parseISO(value);
|
|
169
|
-
if (this.isValid(date)) {
|
|
170
|
-
return date;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return super.deserialize(value);
|
|
174
|
-
}
|
|
175
|
-
isDateInstance(obj) {
|
|
176
|
-
return isDate(obj);
|
|
177
|
-
}
|
|
178
|
-
isValid(date) {
|
|
179
|
-
return isValid(date);
|
|
180
|
-
}
|
|
181
|
-
invalid() {
|
|
182
|
-
return new Date(NaN);
|
|
183
|
-
}
|
|
184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DateFnsAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
185
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DateFnsAdapter }); }
|
|
186
|
-
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DateFnsAdapter, decorators: [{
|
|
188
|
-
type: Injectable
|
|
189
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
190
|
-
type: Optional
|
|
191
|
-
}, {
|
|
192
|
-
type: Inject,
|
|
193
|
-
args: [MAT_DATE_LOCALE]
|
|
194
|
-
}] }] });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mbnMtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1kYXRlLWZucy1hZGFwdGVyL2FkYXB0ZXIvZGF0ZS1mbnMtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBRUwsUUFBUSxFQUNSLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxFQUNOLGNBQWMsRUFDZCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssR0FDTixNQUFNLFVBQVUsQ0FBQzs7QUFFbEIsaURBQWlEO0FBQ2pELFNBQVMsS0FBSyxDQUFJLE1BQWMsRUFBRSxhQUFtQztJQUNuRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYseUZBQXlGO0FBQ3pGLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsT0FBTztDQUNoQixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixJQUFJLEVBQUUsTUFB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QUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBUTtRQUNyQixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVU7UUFDaEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7cUhBMUxVLGNBQWMsa0JBQ08sZUFBZTt5SEFEcEMsY0FBYzs7a0dBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBRUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgTG9jYWxlLFxuICBnZXRNb250aCxcbiAgZ2V0WWVhcixcbiAgZ2V0RGF0ZSxcbiAgZ2V0RGF5LFxuICBnZXREYXlzSW5Nb250aCxcbiAgZm9ybWF0SVNPLFxuICBhZGRZZWFycyxcbiAgYWRkTW9udGhzLFxuICBhZGREYXlzLFxuICBpc1ZhbGlkLFxuICBpc0RhdGUsXG4gIGZvcm1hdCxcbiAgcGFyc2VJU08sXG4gIHBhcnNlLFxufSBmcm9tICdkYXRlLWZucyc7XG5cbi8qKiBDcmVhdGVzIGFuIGFycmF5IGFuZCBmaWxscyBpdCB3aXRoIHZhbHVlcy4gKi9cbmZ1bmN0aW9uIHJhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkobGVuZ3RoKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHZhbHVlc0FycmF5W2ldID0gdmFsdWVGdW5jdGlvbihpKTtcbiAgfVxuICByZXR1cm4gdmFsdWVzQXJyYXk7XG59XG5cbi8vIGRhdGUtZm5zIGRvZXNuJ3QgaGF2ZSBhIHdheSB0byByZWFkL3ByaW50IG1vbnRoIG5hbWVzIG9yIGRheXMgb2YgdGhlIHdlZWsgZGlyZWN0bHksXG4vLyBzbyB3ZSBnZXQgdGhlbSBieSBmb3JtYXR0aW5nIGEgZGF0ZSB3aXRoIGEgZm9ybWF0IHRoYXQgcHJvZHVjZXMgdGhlIGRlc2lyZWQgbW9udGgvZGF5LlxuY29uc3QgTU9OVEhfRk9STUFUUyA9IHtcbiAgbG9uZzogJ0xMTEwnLFxuICBzaG9ydDogJ0xMTCcsXG4gIG5hcnJvdzogJ0xMTExMJyxcbn07XG5cbmNvbnN0IERBWV9PRl9XRUVLX0ZPUk1BVFMgPSB7XG4gIGxvbmc6ICdFRUVFJyxcbiAgc2hvcnQ6ICdFRUUnLFxuICBuYXJyb3c6ICdFRUVFRScsXG59O1xuXG4vKiogQWRkcyBkYXRlLWZucyBzdXBwb3J0IHRvIEFuZ3VsYXIgTWF0ZXJpYWwuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF0ZUZuc0FkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxEYXRlLCBMb2NhbGU+IHtcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNQVRfREFURV9MT0NBTEUpIG1hdERhdGVMb2NhbGU6IHt9KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNldExvY2FsZShtYXREYXRlTG9jYWxlIGFzIExvY2FsZSk7XG4gIH1cblxuICBnZXRZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBnZXRZZWFyKGRhdGUpO1xuICB9XG5cbiAgZ2V0TW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGdldE1vbnRoKGRhdGUpO1xuICB9XG5cbiAgZ2V0RGF0ZShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZ2V0RGF0ZShkYXRlKTtcbiAgfVxuXG4gIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZ2V0RGF5KGRhdGUpO1xuICB9XG5cbiAgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHBhdHRlcm4gPSBNT05USF9GT1JNQVRTW3N0eWxlXTtcbiAgICByZXR1cm4gcmFuZ2UoMTIsIGkgPT4gdGhpcy5mb3JtYXQobmV3IERhdGUoMjAxNywgaSwgMSksIHBhdHRlcm4pKTtcbiAgfVxuXG4gIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZHRmID1cbiAgICAgIHR5cGVvZiBJbnRsICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLmNvZGUsIHtcbiAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgdGltZVpvbmU6ICd1dGMnLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcblxuICAgIHJldHVybiByYW5nZSgzMSwgaSA9PiB7XG4gICAgICBpZiAoZHRmKSB7XG4gICAgICAgIC8vIGRhdGUtZm5zIGRvZXNuJ3QgYXBwZWFyIHRvIHN1cHBvcnQgdGhpcyBmdW5jdGlvbmFsaXR5LlxuICAgICAgICAvLyBGYWxsIGJhY2sgdG8gYEludGxgIG9uIHN1cHBvcnRlZCBicm93c2Vycy5cbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoMjAxNywgMCwgaSArIDEpO1xuICAgICAgICBkYXRlLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICByZXR1cm4gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9bXFx1MjAwZVxcdTIwMGZdL2csICcnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGkgKyAnJztcbiAgICB9KTtcbiAgfVxuXG4gIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcGF0dGVybiA9IERBWV9PRl9XRUVLX0ZPUk1BVFNbc3R5bGVdO1xuICAgIHJldHVybiByYW5nZSg3LCBpID0+IHRoaXMuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSwgcGF0dGVybikpO1xuICB9XG5cbiAgZ2V0WWVhck5hbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0KGRhdGUsICd5Jyk7XG4gIH1cblxuICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmxvY2FsZS5vcHRpb25zPy53ZWVrU3RhcnRzT24gPz8gMDtcbiAgfVxuXG4gIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBnZXREYXlzSW5Nb250aChkYXRlKTtcbiAgfVxuXG4gIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyXG4gICAgICAvLyBjcmVhdGluZyB0aGUgRGF0ZSkuXG4gICAgICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgbW9udGggaW5kZXggXCIke21vbnRofVwiLiBNb250aCBpbmRleCBoYXMgdG8gYmUgYmV0d2VlbiAwIGFuZCAxMS5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGUgPCAxKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBhc3NpbmcgdGhlIHllYXIgdG8gdGhlIGNvbnN0cnVjdG9yIGNhdXNlcyB5ZWFyIG51bWJlcnMgPDEwMCB0byBiZSBjb252ZXJ0ZWQgdG8gMTl4eC5cbiAgICAvLyBUbyB3b3JrIGFyb3VuZCB0aGlzIHdlIHVzZSBgc2V0RnVsbFllYXJgIGFuZCBgc2V0SG91cnNgIGluc3RlYWQuXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoKTtcbiAgICByZXN1bHQuc2V0RnVsbFllYXIoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIHJlc3VsdC5zZXRIb3VycygwLCAwLCAwLCAwKTtcblxuICAgIC8vIENoZWNrIHRoYXQgdGhlIGRhdGUgd2Fzbid0IGFib3ZlIHRoZSB1cHBlciBib3VuZCBmb3IgdGhlIG1vbnRoLCBjYXVzaW5nIHRoZSBtb250aCB0byBvdmVyZmxvd1xuICAgIGlmIChyZXN1bHQuZ2V0TW9udGgoKSAhPSBtb250aCAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHRvZGF5KCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgcGFyc2UodmFsdWU6IGFueSwgcGFyc2VGb3JtYXQ6IHN0cmluZyB8IHN0cmluZ1tdKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaXNvODYwMURhdGUgPSBwYXJzZUlTTyh2YWx1ZSk7XG5cbiAgICAgIGlmICh0aGlzLmlzVmFsaWQoaXNvODYwMURhdGUpKSB7XG4gICAgICAgIHJldHVybiBpc284NjAxRGF0ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm9ybWF0cyA9IEFycmF5LmlzQXJyYXkocGFyc2VGb3JtYXQpID8gcGFyc2VGb3JtYXQgOiBbcGFyc2VGb3JtYXRdO1xuXG4gICAgICBpZiAoIXBhcnNlRm9ybWF0Lmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBFcnJvcignRm9ybWF0cyBhcnJheSBtdXN0IG5vdCBiZSBlbXB0eS4nKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjdXJyZW50Rm9ybWF0IG9mIGZvcm1hdHMpIHtcbiAgICAgICAgY29uc3QgZnJvbUZvcm1hdCA9IHBhcnNlKHZhbHVlLCBjdXJyZW50Rm9ybWF0LCBuZXcgRGF0ZSgpLCB7bG9jYWxlOiB0aGlzLmxvY2FsZX0pO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoZnJvbUZvcm1hdCkpIHtcbiAgICAgICAgICByZXR1cm4gZnJvbUZvcm1hdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5pbnZhbGlkKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jbG9uZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmb3JtYXQoZGF0ZTogRGF0ZSwgZGlzcGxheUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0RhdGVGbnNBZGFwdGVyOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGRpc3BsYXlGb3JtYXQsIHtsb2NhbGU6IHRoaXMubG9jYWxlfSk7XG4gIH1cblxuICBhZGRDYWxlbmRhclllYXJzKGRhdGU6IERhdGUsIHllYXJzOiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gYWRkWWVhcnMoZGF0ZSwgeWVhcnMpO1xuICB9XG5cbiAgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF0ZSwgbW9udGhzOiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gYWRkTW9udGhzKGRhdGUsIG1vbnRocyk7XG4gIH1cblxuICBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIGFkZERheXMoZGF0ZSwgZGF5cyk7XG4gIH1cblxuICB0b0lzbzg2MDEoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdElTTyhkYXRlLCB7cmVwcmVzZW50YXRpb246ICdkYXRlJ30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGlmIGdpdmVuIGEgdmFsaWQgRGF0ZSBvciBudWxsLiBEZXNlcmlhbGl6ZXMgdmFsaWQgSVNPIDg2MDEgc3RyaW5nc1xuICAgKiAoaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBpbnRvIHZhbGlkIERhdGVzIGFuZCBlbXB0eSBzdHJpbmcgaW50byBudWxsLiBSZXR1cm5zIGFuXG4gICAqIGludmFsaWQgZGF0ZSBmb3IgYWxsIG90aGVyIHZhbHVlcy5cbiAgICovXG4gIG92ZXJyaWRlIGRlc2VyaWFsaXplKHZhbHVlOiBhbnkpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBkYXRlID0gcGFyc2VJU08odmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgfVxuXG4gIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRGF0ZShvYmopO1xuICB9XG5cbiAgaXNWYWxpZChkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWQoZGF0ZSk7XG4gIH1cblxuICBpbnZhbGlkKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG59XG4iXX0=
|
|
@@ -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_DATE_FNS_FORMATS = {
|
|
9
|
-
parse: {
|
|
10
|
-
dateInput: 'P',
|
|
11
|
-
},
|
|
12
|
-
display: {
|
|
13
|
-
dateInput: 'P',
|
|
14
|
-
monthYearLabel: 'LLL uuuu',
|
|
15
|
-
dateA11yLabel: 'PP',
|
|
16
|
-
monthYearA11yLabel: 'LLLL uuuu',
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mbnMtZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1kYXRlLWZucy1hZGFwdGVyL2FkYXB0ZXIvZGF0ZS1mbnMtZm9ybWF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBbUI7SUFDbEQsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLEdBQUc7S0FDZjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxHQUFHO1FBQ2QsY0FBYyxFQUFFLFVBQVU7UUFDMUIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtNYXREYXRlRm9ybWF0c30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBNQVRfREFURV9GTlNfRk9STUFUUzogTWF0RGF0ZUZvcm1hdHMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnUCcsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdQJyxcbiAgICBtb250aFllYXJMYWJlbDogJ0xMTCB1dXV1JyxcbiAgICBkYXRlQTExeUxhYmVsOiAnUFAnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ0xMTEwgdXV1dScsXG4gIH0sXG59O1xuIl19
|
|
@@ -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 { DateFnsAdapter } from './date-fns-adapter';
|
|
11
|
-
import { MAT_DATE_FNS_FORMATS } from './date-fns-formats';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
export * from './date-fns-adapter';
|
|
14
|
-
export * from './date-fns-formats';
|
|
15
|
-
export class DateFnsModule {
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DateFnsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: DateFnsModule }); }
|
|
18
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DateFnsModule, providers: [
|
|
19
|
-
{
|
|
20
|
-
provide: DateAdapter,
|
|
21
|
-
useClass: DateFnsAdapter,
|
|
22
|
-
deps: [MAT_DATE_LOCALE],
|
|
23
|
-
},
|
|
24
|
-
] }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DateFnsModule, decorators: [{
|
|
27
|
-
type: NgModule,
|
|
28
|
-
args: [{
|
|
29
|
-
providers: [
|
|
30
|
-
{
|
|
31
|
-
provide: DateAdapter,
|
|
32
|
-
useClass: DateFnsAdapter,
|
|
33
|
-
deps: [MAT_DATE_LOCALE],
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
}]
|
|
37
|
-
}] });
|
|
38
|
-
export class MatDateFnsModule {
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateFnsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
40
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateFnsModule }); }
|
|
41
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateFnsModule, providers: [provideDateFnsAdapter()] }); }
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateFnsModule, decorators: [{
|
|
44
|
-
type: NgModule,
|
|
45
|
-
args: [{
|
|
46
|
-
providers: [provideDateFnsAdapter()],
|
|
47
|
-
}]
|
|
48
|
-
}] });
|
|
49
|
-
export function provideDateFnsAdapter(formats = MAT_DATE_FNS_FORMATS) {
|
|
50
|
-
return [
|
|
51
|
-
{
|
|
52
|
-
provide: DateAdapter,
|
|
53
|
-
useClass: DateFnsAdapter,
|
|
54
|
-
deps: [MAT_DATE_LOCALE],
|
|
55
|
-
},
|
|
56
|
-
{ provide: MAT_DATE_FORMATS, useValue: formats },
|
|
57
|
-
];
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtZGF0ZS1mbnMtYWRhcHRlci9hZGFwdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxHQUVoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFeEQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBV25DLE1BQU0sT0FBTyxhQUFhO3FIQUFiLGFBQWE7c0hBQWIsYUFBYTtzSEFBYixhQUFhLGFBUmI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUN4QjtTQUNGOztrR0FFVSxhQUFhO2tCQVR6QixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGNBQWM7NEJBQ3hCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzt5QkFDeEI7cUJBQ0Y7aUJBQ0Y7O0FBTUQsTUFBTSxPQUFPLGdCQUFnQjtxSEFBaEIsZ0JBQWdCO3NIQUFoQixnQkFBZ0I7c0hBQWhCLGdCQUFnQixhQUZoQixDQUFDLHFCQUFxQixFQUFFLENBQUM7O2tHQUV6QixnQkFBZ0I7a0JBSDVCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztpQkFDckM7O0FBR0QsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFVBQTBCLG9CQUFvQjtJQUNsRixPQUFPO1FBQ0w7WUFDRSxPQUFPLEVBQUUsV0FBVztZQUNwQixRQUFRLEVBQUUsY0FBYztZQUN4QixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7U0FDeEI7UUFDRCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFDO0tBQy9DLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7TmdNb2R1bGUsIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERhdGVBZGFwdGVyLFxuICBNQVRfREFURV9GT1JNQVRTLFxuICBNQVRfREFURV9MT0NBTEUsXG4gIE1hdERhdGVGb3JtYXRzLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7RGF0ZUZuc0FkYXB0ZXJ9IGZyb20gJy4vZGF0ZS1mbnMtYWRhcHRlcic7XG5pbXBvcnQge01BVF9EQVRFX0ZOU19GT1JNQVRTfSBmcm9tICcuL2RhdGUtZm5zLWZvcm1hdHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtZm5zLWFkYXB0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWZucy1mb3JtYXRzJztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogRGF0ZUZuc0FkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlRm5zTW9kdWxlIHt9XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW3Byb3ZpZGVEYXRlRm5zQWRhcHRlcigpXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0RGF0ZUZuc01vZHVsZSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURhdGVGbnNBZGFwdGVyKGZvcm1hdHM6IE1hdERhdGVGb3JtYXRzID0gTUFUX0RBVEVfRk5TX0ZPUk1BVFMpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBEYXRlRm5zQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdLFxuICAgIH0sXG4gICAge3Byb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBmb3JtYXRzfSxcbiAgXTtcbn1cbiJdfQ==
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtZGF0ZS1mbnMtYWRhcHRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZGF0ZS1mbnMtYWRhcHRlcl9wdWJsaWNfaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtZGF0ZS1mbnMtYWRhcHRlci9tYXRlcmlhbC1kYXRlLWZucy1hZGFwdGVyX3B1YmxpY19pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
package/esm2022/public-api.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 './adapter/index';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1kYXRlLWZucy1hZGFwdGVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXIvaW5kZXgnO1xuIl19
|