@angular/material-moment-adapter 10.0.1 → 10.0.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/esm2015/adapter/index.js
CHANGED
|
@@ -11,35 +11,27 @@ import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from './moment-dat
|
|
|
11
11
|
import { MAT_MOMENT_DATE_FORMATS } from './moment-date-formats';
|
|
12
12
|
export * from './moment-date-adapter';
|
|
13
13
|
export * from './moment-date-formats';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
];
|
|
28
|
-
return MomentDateModule;
|
|
29
|
-
})();
|
|
30
|
-
export { MomentDateModule };
|
|
14
|
+
export class MomentDateModule {
|
|
15
|
+
}
|
|
16
|
+
MomentDateModule.decorators = [
|
|
17
|
+
{ type: NgModule, args: [{
|
|
18
|
+
providers: [
|
|
19
|
+
{
|
|
20
|
+
provide: DateAdapter,
|
|
21
|
+
useClass: MomentDateAdapter,
|
|
22
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
},] }
|
|
26
|
+
];
|
|
31
27
|
const ɵ0 = MAT_MOMENT_DATE_FORMATS;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
];
|
|
41
|
-
return MatMomentDateModule;
|
|
42
|
-
})();
|
|
43
|
-
export { MatMomentDateModule };
|
|
28
|
+
export class MatMomentDateModule {
|
|
29
|
+
}
|
|
30
|
+
MatMomentDateModule.decorators = [
|
|
31
|
+
{ type: NgModule, args: [{
|
|
32
|
+
imports: [MomentDateModule],
|
|
33
|
+
providers: [{ provide: MAT_DATE_FORMATS, useValue: ɵ0 }],
|
|
34
|
+
},] }
|
|
35
|
+
];
|
|
44
36
|
export { ɵ0 };
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXIvYWRhcHRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBV3RDLE1BQU0sT0FBTyxnQkFBZ0I7OztZQVQ1QixRQUFRLFNBQUM7Z0JBQ1IsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixRQUFRLEVBQUUsaUJBQWlCO3dCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7cUJBQ3pEO2lCQUNGO2FBQ0Y7O1dBTW1ELHVCQUF1QjtBQUUzRSxNQUFNLE9BQU8sbUJBQW1COzs7WUFKL0IsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUMzQixTQUFTLEVBQUUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQXlCLEVBQUMsQ0FBQzthQUM1RSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge01BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIE1vbWVudERhdGVBZGFwdGVyfSBmcm9tICcuL21vbWVudC1kYXRlLWFkYXB0ZXInO1xuaW1wb3J0IHtNQVRfTU9NRU5UX0RBVEVfRk9STUFUU30gZnJvbSAnLi9tb21lbnQtZGF0ZS1mb3JtYXRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb21lbnQtZGF0ZS1hZGFwdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbW9tZW50LWRhdGUtZm9ybWF0cyc7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU11cbiAgICB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1vbWVudERhdGVNb2R1bGUge31cblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbTW9tZW50RGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3twcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTUFUX01PTUVOVF9EQVRFX0ZPUk1BVFN9XSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0TW9tZW50RGF0ZU1vZHVsZSB7fVxuIl19
|
|
@@ -36,160 +36,156 @@ function range(length, valueFunction) {
|
|
|
36
36
|
return valuesArray;
|
|
37
37
|
}
|
|
38
38
|
/** Adapts Moment.js Dates for use with Angular Material. */
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
setLocale(locale)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return this._localeData.longDaysOfWeek;
|
|
81
|
-
}
|
|
82
|
-
if (style == 'short') {
|
|
83
|
-
return this._localeData.shortDaysOfWeek;
|
|
84
|
-
}
|
|
85
|
-
return this._localeData.narrowDaysOfWeek;
|
|
86
|
-
}
|
|
87
|
-
getYearName(date) {
|
|
88
|
-
return this.clone(date).format('YYYY');
|
|
89
|
-
}
|
|
90
|
-
getFirstDayOfWeek() {
|
|
91
|
-
return this._localeData.firstDayOfWeek;
|
|
92
|
-
}
|
|
93
|
-
getNumDaysInMonth(date) {
|
|
94
|
-
return this.clone(date).daysInMonth();
|
|
95
|
-
}
|
|
96
|
-
clone(date) {
|
|
97
|
-
return date.clone().locale(this.locale);
|
|
98
|
-
}
|
|
99
|
-
createDate(year, month, date) {
|
|
100
|
-
// Moment.js will create an invalid date if any of the components are out of bounds, but we
|
|
101
|
-
// explicitly check each case so we can throw more descriptive errors.
|
|
102
|
-
if (month < 0 || month > 11) {
|
|
103
|
-
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
104
|
-
}
|
|
105
|
-
if (date < 1) {
|
|
106
|
-
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
107
|
-
}
|
|
108
|
-
const result = this._createMoment({ year, month, date }).locale(this.locale);
|
|
109
|
-
// If the result isn't valid, the date must have been out of bounds for this month.
|
|
110
|
-
if (!result.isValid()) {
|
|
111
|
-
throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
|
112
|
-
}
|
|
113
|
-
return result;
|
|
39
|
+
export class MomentDateAdapter extends DateAdapter {
|
|
40
|
+
constructor(dateLocale, _options) {
|
|
41
|
+
super();
|
|
42
|
+
this._options = _options;
|
|
43
|
+
this.setLocale(dateLocale || moment.locale());
|
|
44
|
+
}
|
|
45
|
+
setLocale(locale) {
|
|
46
|
+
super.setLocale(locale);
|
|
47
|
+
let momentLocaleData = moment.localeData(locale);
|
|
48
|
+
this._localeData = {
|
|
49
|
+
firstDayOfWeek: momentLocaleData.firstDayOfWeek(),
|
|
50
|
+
longMonths: momentLocaleData.months(),
|
|
51
|
+
shortMonths: momentLocaleData.monthsShort(),
|
|
52
|
+
dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),
|
|
53
|
+
longDaysOfWeek: momentLocaleData.weekdays(),
|
|
54
|
+
shortDaysOfWeek: momentLocaleData.weekdaysShort(),
|
|
55
|
+
narrowDaysOfWeek: momentLocaleData.weekdaysMin(),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
getYear(date) {
|
|
59
|
+
return this.clone(date).year();
|
|
60
|
+
}
|
|
61
|
+
getMonth(date) {
|
|
62
|
+
return this.clone(date).month();
|
|
63
|
+
}
|
|
64
|
+
getDate(date) {
|
|
65
|
+
return this.clone(date).date();
|
|
66
|
+
}
|
|
67
|
+
getDayOfWeek(date) {
|
|
68
|
+
return this.clone(date).day();
|
|
69
|
+
}
|
|
70
|
+
getMonthNames(style) {
|
|
71
|
+
// Moment.js doesn't support narrow month names, so we just use short if narrow is requested.
|
|
72
|
+
return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;
|
|
73
|
+
}
|
|
74
|
+
getDateNames() {
|
|
75
|
+
return this._localeData.dates;
|
|
76
|
+
}
|
|
77
|
+
getDayOfWeekNames(style) {
|
|
78
|
+
if (style == 'long') {
|
|
79
|
+
return this._localeData.longDaysOfWeek;
|
|
114
80
|
}
|
|
115
|
-
|
|
116
|
-
return this.
|
|
81
|
+
if (style == 'short') {
|
|
82
|
+
return this._localeData.shortDaysOfWeek;
|
|
117
83
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
84
|
+
return this._localeData.narrowDaysOfWeek;
|
|
85
|
+
}
|
|
86
|
+
getYearName(date) {
|
|
87
|
+
return this.clone(date).format('YYYY');
|
|
88
|
+
}
|
|
89
|
+
getFirstDayOfWeek() {
|
|
90
|
+
return this._localeData.firstDayOfWeek;
|
|
91
|
+
}
|
|
92
|
+
getNumDaysInMonth(date) {
|
|
93
|
+
return this.clone(date).daysInMonth();
|
|
94
|
+
}
|
|
95
|
+
clone(date) {
|
|
96
|
+
return date.clone().locale(this.locale);
|
|
97
|
+
}
|
|
98
|
+
createDate(year, month, date) {
|
|
99
|
+
// Moment.js will create an invalid date if any of the components are out of bounds, but we
|
|
100
|
+
// explicitly check each case so we can throw more descriptive errors.
|
|
101
|
+
if (month < 0 || month > 11) {
|
|
102
|
+
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
130
103
|
}
|
|
131
|
-
|
|
132
|
-
|
|
104
|
+
if (date < 1) {
|
|
105
|
+
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
133
106
|
}
|
|
134
|
-
|
|
135
|
-
|
|
107
|
+
const result = this._createMoment({ year, month, date }).locale(this.locale);
|
|
108
|
+
// If the result isn't valid, the date must have been out of bounds for this month.
|
|
109
|
+
if (!result.isValid()) {
|
|
110
|
+
throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
|
136
111
|
}
|
|
137
|
-
|
|
138
|
-
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
today() {
|
|
115
|
+
return this._createMoment().locale(this.locale);
|
|
116
|
+
}
|
|
117
|
+
parse(value, parseFormat) {
|
|
118
|
+
if (value && typeof value == 'string') {
|
|
119
|
+
return this._createMoment(value, parseFormat, this.locale);
|
|
139
120
|
}
|
|
140
|
-
|
|
141
|
-
|
|
121
|
+
return value ? this._createMoment(value).locale(this.locale) : null;
|
|
122
|
+
}
|
|
123
|
+
format(date, displayFormat) {
|
|
124
|
+
date = this.clone(date);
|
|
125
|
+
if (!this.isValid(date)) {
|
|
126
|
+
throw Error('MomentDateAdapter: Cannot format invalid date.');
|
|
142
127
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
128
|
+
return date.format(displayFormat);
|
|
129
|
+
}
|
|
130
|
+
addCalendarYears(date, years) {
|
|
131
|
+
return this.clone(date).add({ years });
|
|
132
|
+
}
|
|
133
|
+
addCalendarMonths(date, months) {
|
|
134
|
+
return this.clone(date).add({ months });
|
|
135
|
+
}
|
|
136
|
+
addCalendarDays(date, days) {
|
|
137
|
+
return this.clone(date).add({ days });
|
|
138
|
+
}
|
|
139
|
+
toIso8601(date) {
|
|
140
|
+
return this.clone(date).format();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Returns the given value if given a valid Moment or null. Deserializes valid ISO 8601 strings
|
|
144
|
+
* (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty
|
|
145
|
+
* string into null. Returns an invalid date for all other values.
|
|
146
|
+
*/
|
|
147
|
+
deserialize(value) {
|
|
148
|
+
let date;
|
|
149
|
+
if (value instanceof Date) {
|
|
150
|
+
date = this._createMoment(value).locale(this.locale);
|
|
151
|
+
}
|
|
152
|
+
else if (this.isDateInstance(value)) {
|
|
153
|
+
// Note: assumes that cloning also sets the correct locale.
|
|
154
|
+
return this.clone(value);
|
|
155
|
+
}
|
|
156
|
+
if (typeof value === 'string') {
|
|
157
|
+
if (!value) {
|
|
158
|
+
return null;
|
|
165
159
|
}
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
isDateInstance(obj) {
|
|
169
|
-
return moment.isMoment(obj);
|
|
170
|
-
}
|
|
171
|
-
isValid(date) {
|
|
172
|
-
return this.clone(date).isValid();
|
|
160
|
+
date = this._createMoment(value, moment.ISO_8601).locale(this.locale);
|
|
173
161
|
}
|
|
174
|
-
|
|
175
|
-
return
|
|
176
|
-
}
|
|
177
|
-
/** Creates a Moment instance while respecting the current UTC settings. */
|
|
178
|
-
_createMoment(date, format, locale) {
|
|
179
|
-
const { strict, useUtc } = this._options || {};
|
|
180
|
-
return useUtc
|
|
181
|
-
? moment.utc(date, format, locale, strict)
|
|
182
|
-
: moment(date, format, locale, strict);
|
|
162
|
+
if (date && this.isValid(date)) {
|
|
163
|
+
return this._createMoment(date).locale(this.locale);
|
|
183
164
|
}
|
|
165
|
+
return super.deserialize(value);
|
|
166
|
+
}
|
|
167
|
+
isDateInstance(obj) {
|
|
168
|
+
return moment.isMoment(obj);
|
|
169
|
+
}
|
|
170
|
+
isValid(date) {
|
|
171
|
+
return this.clone(date).isValid();
|
|
184
172
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
{
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1tb21lbnQtYWRhcHRlci9hZGFwdGVyL21vbWVudC1kYXRlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLGdGQUFnRjtBQUNoRiw2RkFBNkY7QUFDN0YsaUdBQWlHO0FBQ2pHLDJCQUEyQjtBQUMzQiw2REFBNkQ7QUFDN0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBQyxPQUFPLElBQUksYUFBYSxFQUFpRCxNQUFNLFFBQVEsQ0FBQztBQUVoRyxNQUFNLE1BQU0sR0FBRyxhQUFhLElBQUksT0FBTyxDQUFDO0FBbUJ4QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBQy9ELGlDQUFpQyxFQUFFO0lBQ2pDLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7Q0FDbkQsQ0FBQyxDQUFDO0FBR0gsb0JBQW9CO0FBQ3BCLE1BQU0sVUFBVSx1Q0FBdUM7SUFDckQsT0FBTztRQUNMLE1BQU0sRUFBRSxLQUFLO0tBQ2QsQ0FBQztBQUNKLENBQUM7QUFHRCxpREFBaUQ7QUFDakQsU0FBUyxLQUFLLENBQUksTUFBYyxFQUFFLGFBQW1DO0lBQ25FLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFB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QUM7UUFFRCxPQUFPO1lBQ0wsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELDJFQUEyRTtRQUNuRSxhQUFhLENBQ25CLElBQWlCLEVBQ2pCLE1BQWtDLEVBQ2xDLE1BQWU7WUFFZixNQUFNLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxHQUFnQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUUxRSxPQUFPLE1BQU07Z0JBQ1gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO2dCQUMxQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7OztnQkFuTUYsVUFBVTs7OzZDQWlCSSxRQUFRLFlBQUksTUFBTSxTQUFDLGVBQWU7Z0RBQzVDLFFBQVEsWUFBSSxNQUFNLFNBQUMsK0JBQStCOztJQWtMdkQsd0JBQUM7S0FBQTtTQW5NWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuLy8gRGVwZW5kaW5nIG9uIHdoZXRoZXIgcm9sbHVwIGlzIHVzZWQsIG1vbWVudCBuZWVkcyB0byBiZSBpbXBvcnRlZCBkaWZmZXJlbnRseS5cbi8vIFNpbmNlIE1vbWVudC5qcyBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IGV4cG9ydCwgd2Ugbm9ybWFsbHkgbmVlZCB0byBpbXBvcnQgdXNpbmcgdGhlIGAqIGFzYFxuLy8gc3ludGF4LiBIb3dldmVyLCByb2xsdXAgY3JlYXRlcyBhIHN5bnRoZXRpYyBkZWZhdWx0IG1vZHVsZSBhbmQgd2UgdGh1cyBuZWVkIHRvIGltcG9ydCBpdCB1c2luZ1xuLy8gdGhlIGBkZWZhdWx0IGFzYCBzeW50YXguXG4vLyBUT0RPKG1tYWxlcmJhKTogU2VlIGlmIHdlIGNhbiBjbGVhbiB0aGlzIHVwIGF0IHNvbWUgcG9pbnQuXG5pbXBvcnQgKiBhcyBfbW9tZW50IGZyb20gJ21vbWVudCc7XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZHVwbGljYXRlLWltcG9ydHNcbmltcG9ydCB7ZGVmYXVsdCBhcyBfcm9sbHVwTW9tZW50LCBNb21lbnQsIE1vbWVudEZvcm1hdFNwZWNpZmljYXRpb24sIE1vbWVudElucHV0fSBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBtb21lbnQgPSBfcm9sbHVwTW9tZW50IHx8IF9tb21lbnQ7XG5cbi8qKiBDb25maWd1cmFibGUgb3B0aW9ucyBmb3Ige0BzZWUgTW9tZW50RGF0ZUFkYXB0ZXJ9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRNb21lbnREYXRlQWRhcHRlck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBkYXRlcyBoYXZlIHRvIG1hdGNoIHRoZSBmb3JtYXQgZXhhY3RseS5cbiAgICogU2VlIGh0dHBzOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3BhcnNpbmcvc3RyaWN0LW1vZGUvLlxuICAgKi9cbiAgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVHVybnMgdGhlIHVzZSBvZiB1dGMgZGF0ZXMgb24gb3Igb2ZmLlxuICAgKiBDaGFuZ2luZyB0aGlzIHdpbGwgY2hhbmdlIGhvdyBBbmd1bGFyIE1hdGVyaWFsIGNvbXBvbmVudHMgbGlrZSBEYXRlUGlja2VyIG91dHB1dCBkYXRlcy5cbiAgICoge0BkZWZhdWx0IGZhbHNlfVxuICAgKi9cbiAgdXNlVXRjPzogYm9vbGVhbjtcbn1cblxuLyoqIEluamVjdGlvblRva2VuIGZvciBtb21lbnQgZGF0ZSBhZGFwdGVyIHRvIGNvbmZpZ3VyZSBvcHRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0TW9tZW50RGF0ZUFkYXB0ZXJPcHRpb25zPihcbiAgJ01BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMnLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNfRkFDVE9SWVxufSk7XG5cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TX0ZBQ1RPUlkoKTogTWF0TW9tZW50RGF0ZUFkYXB0ZXJPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICB1c2VVdGM6IGZhbHNlXG4gIH07XG59XG5cblxuLyoqIENyZWF0ZXMgYW4gYXJyYXkgYW5kIGZpbGxzIGl0IHdpdGggdmFsdWVzLiAqL1xuZnVuY3Rpb24gcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgY29uc3QgdmFsdWVzQXJyYXkgPSBBcnJheShsZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgdmFsdWVzQXJyYXlbaV0gPSB2YWx1ZUZ1bmN0aW9uKGkpO1xuICB9XG4gIHJldHVybiB2YWx1ZXNBcnJheTtcbn1cblxuXG4vKiogQWRhcHRzIE1vbWVudC5qcyBEYXRlcyBmb3IgdXNlIHdpdGggQW5ndWxhciBNYXRlcmlhbC4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb21lbnREYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPE1vbWVudD4ge1xuICAvLyBOb3RlOiBhbGwgb2YgdGhlIG1ldGhvZHMgdGhhdCBhY2NlcHQgYSBgTW9tZW50YCBpbnB1dCBwYXJhbWV0ZXIgaW1tZWRpYXRlbHkgY2FsbCBgdGhpcy5jbG9uZWBcbiAgLy8gb24gaXQuIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIGEgYE1vbWVudGAgdGhhdCBoYXMgdGhlIGNvcnJlY3QgbG9jYWxlIHNldHRpbmdcbiAgLy8gd2hpbGUgYXZvaWRpbmcgbXV0YXRpbmcgdGhlIG9yaWdpbmFsIG9iamVjdCBwYXNzZWQgdG8gdXMuIEp1c3QgY2FsbGluZyBgLmxvY2FsZSguLi4pYCBvbiB0aGVcbiAgLy8gaW5wdXQgd291bGQgbXV0YXRlIHRoZSBvYmplY3QuXG5cbiAgcHJpdmF0ZSBfbG9jYWxlRGF0YToge1xuICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXIsXG4gICAgbG9uZ01vbnRoczogc3RyaW5nW10sXG4gICAgc2hvcnRNb250aHM6IHN0cmluZ1tdLFxuICAgIGRhdGVzOiBzdHJpbmdbXSxcbiAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW10sXG4gICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXSxcbiAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RBVEVfTE9DQUxFKSBkYXRlTG9jYWxlOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TKVxuICAgIHByaXZhdGUgX29wdGlvbnM/OiBNYXRNb21lbnREYXRlQWRhcHRlck9wdGlvbnMpIHtcblxuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZXRMb2NhbGUoZGF0ZUxvY2FsZSB8fCBtb21lbnQubG9jYWxlKCkpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgc3VwZXIuc2V0TG9jYWxlKGxvY2FsZSk7XG5cbiAgICBsZXQgbW9tZW50TG9jYWxlRGF0YSA9IG1vbWVudC5sb2NhbGVEYXRhKGxvY2FsZSk7XG4gICAgdGhpcy5fbG9jYWxlRGF0YSA9IHtcbiAgICAgIGZpcnN0RGF5T2ZXZWVrOiBtb21lbnRMb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrKCksXG4gICAgICBsb25nTW9udGhzOiBtb21lbnRMb2NhbGVEYXRhLm1vbnRocygpLFxuICAgICAgc2hvcnRNb250aHM6IG1vbWVudExvY2FsZURhdGEubW9udGhzU2hvcnQoKSxcbiAgICAgIGRhdGVzOiByYW5nZSgzMSwgKGkpID0+IHRoaXMuY3JlYXRlRGF0ZSgyMDE3LCAwLCBpICsgMSkuZm9ybWF0KCdEJykpLFxuICAgICAgbG9uZ0RheXNPZldlZWs6IG1vbWVudExvY2FsZURhdGEud2Vla2RheXMoKSxcbiAgICAgIHNob3J0RGF5c09mV2VlazogbW9tZW50TG9jYWxlRGF0YS53ZWVrZGF5c1Nob3J0KCksXG4gICAgICBuYXJyb3dEYXlzT2ZXZWVrOiBtb21lbnRMb2NhbGVEYXRhLndlZWtkYXlzTWluKCksXG4gICAgfTtcbiAgfVxuXG4gIGdldFllYXIoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS55ZWFyKCk7XG4gIH1cblxuICBnZXRNb250aChkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1vbnRoKCk7XG4gIH1cblxuICBnZXREYXRlKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZGF0ZSgpO1xuICB9XG5cbiAgZ2V0RGF5T2ZXZWVrKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZGF5KCk7XG4gIH1cblxuICBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgLy8gTW9tZW50LmpzIGRvZXNuJ3Qgc3VwcG9ydCBuYXJyb3cgbW9udGggbmFtZXMsIHNvIHdlIGp1c3QgdXNlIHNob3J0IGlmIG5hcnJvdyBpcyByZXF1ZXN0ZWQuXG4gICAgcmV0dXJuIHN0eWxlID09ICdsb25nJyA/IHRoaXMuX2xvY2FsZURhdGEubG9uZ01vbnRocyA6IHRoaXMuX2xvY2FsZURhdGEuc2hvcnRNb250aHM7XG4gIH1cblxuICBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmRhdGVzO1xuICB9XG5cbiAgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoc3R5bGUgPT0gJ2xvbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nRGF5c09mV2VlaztcbiAgICB9XG4gICAgaWYgKHN0eWxlID09ICdzaG9ydCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0RGF5c09mV2VlaztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubmFycm93RGF5c09mV2VlaztcbiAgfVxuXG4gIGdldFllYXJOYW1lKGRhdGU6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZm9ybWF0KCdZWVlZJyk7XG4gIH1cblxuICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrO1xuICB9XG5cbiAgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5kYXlzSW5Nb250aCgpO1xuICB9XG5cbiAgY2xvbmUoZGF0ZTogTW9tZW50KTogTW9tZW50IHtcbiAgICByZXR1cm4gZGF0ZS5jbG9uZSgpLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG4gIH1cblxuICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogTW9tZW50IHtcbiAgICAvLyBNb21lbnQuanMgd2lsbCBjcmVhdGUgYW4gaW52YWxpZCBkYXRlIGlmIGFueSBvZiB0aGUgY29tcG9uZW50cyBhcmUgb3V0IG9mIGJvdW5kcywgYnV0IHdlXG4gICAgLy8gZXhwbGljaXRseSBjaGVjayBlYWNoIGNhc2Ugc28gd2UgY2FuIHRocm93IG1vcmUgZGVzY3JpcHRpdmUgZXJyb3JzLlxuICAgIGlmIChtb250aCA8IDAgfHwgbW9udGggPiAxMSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgbW9udGggaW5kZXggXCIke21vbnRofVwiLiBNb250aCBpbmRleCBoYXMgdG8gYmUgYmV0d2VlbiAwIGFuZCAxMS5gKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZSA8IDEpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZU1vbWVudCh7eWVhciwgbW9udGgsIGRhdGV9KS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuXG4gICAgLy8gSWYgdGhlIHJlc3VsdCBpc24ndCB2YWxpZCwgdGhlIGRhdGUgbXVzdCBoYXZlIGJlZW4gb3V0IG9mIGJvdW5kcyBmb3IgdGhpcyBtb250aC5cbiAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB0b2RheSgpOiBNb21lbnQge1xuICAgIHJldHVybiB0aGlzLl9jcmVhdGVNb21lbnQoKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICB9XG5cbiAgcGFyc2UodmFsdWU6IGFueSwgcGFyc2VGb3JtYXQ6IHN0cmluZyB8IHN0cmluZ1tdKTogTW9tZW50IHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZU1vbWVudCh2YWx1ZSwgcGFyc2VGb3JtYXQsIHRoaXMubG9jYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlID8gdGhpcy5fY3JlYXRlTW9tZW50KHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpIDogbnVsbDtcbiAgfVxuXG4gIGZvcm1hdChkYXRlOiBNb21lbnQsIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgZGF0ZSA9IHRoaXMuY2xvbmUoZGF0ZSk7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHRocm93IEVycm9yKCdNb21lbnREYXRlQWRhcHRlcjogQ2Fubm90IGZvcm1hdCBpbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlLmZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcbiAgfVxuXG4gIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogTW9tZW50LCB5ZWFyczogbnVtYmVyKTogTW9tZW50IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoe3llYXJzfSk7XG4gIH1cblxuICBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBNb21lbnQsIG1vbnRoczogbnVtYmVyKTogTW9tZW50IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoe21vbnRoc30pO1xuICB9XG5cbiAgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IE1vbWVudCwgZGF5czogbnVtYmVyKTogTW9tZW50IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoe2RheXN9KTtcbiAgfVxuXG4gIHRvSXNvODYwMShkYXRlOiBNb21lbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmZvcm1hdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGlmIGdpdmVuIGEgdmFsaWQgTW9tZW50IG9yIG51bGwuIERlc2VyaWFsaXplcyB2YWxpZCBJU08gODYwMSBzdHJpbmdzXG4gICAqIChodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGFuZCB2YWxpZCBEYXRlIG9iamVjdHMgaW50byB2YWxpZCBNb21lbnRzIGFuZCBlbXB0eVxuICAgKiBzdHJpbmcgaW50byBudWxsLiBSZXR1cm5zIGFuIGludmFsaWQgZGF0ZSBmb3IgYWxsIG90aGVyIHZhbHVlcy5cbiAgICovXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnkpOiBNb21lbnQgfCBudWxsIHtcbiAgICBsZXQgZGF0ZTtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBkYXRlID0gdGhpcy5fY3JlYXRlTW9tZW50KHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkpIHtcbiAgICAgIC8vIE5vdGU6IGFzc3VtZXMgdGhhdCBjbG9uaW5nIGFsc28gc2V0cyB0aGUgY29ycmVjdCBsb2NhbGUuXG4gICAgICByZXR1cm4gdGhpcy5jbG9uZSh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZGF0ZSA9IHRoaXMuX2NyZWF0ZU1vbWVudCh2YWx1ZSwgbW9tZW50LklTT184NjAxKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgIH1cbiAgICBpZiAoZGF0ZSAmJiB0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVNb21lbnQoZGF0ZSkubG9jYWxlKHRoaXMubG9jYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgfVxuXG4gIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1vbWVudC5pc01vbWVudChvYmopO1xuICB9XG5cbiAgaXNWYWxpZChkYXRlOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5pc1ZhbGlkKCk7XG4gIH1cblxuICBpbnZhbGlkKCk6IE1vbWVudCB7XG4gICAgcmV0dXJuIG1vbWVudC5pbnZhbGlkKCk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIE1vbWVudCBpbnN0YW5jZSB3aGlsZSByZXNwZWN0aW5nIHRoZSBjdXJyZW50IFVUQyBzZXR0aW5ncy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlTW9tZW50KFxuICAgIGRhdGU6IE1vbWVudElucHV0LFxuICAgIGZvcm1hdD86IE1vbWVudEZvcm1hdFNwZWNpZmljYXRpb24sXG4gICAgbG9jYWxlPzogc3RyaW5nLFxuICApOiBNb21lbnQge1xuICAgIGNvbnN0IHtzdHJpY3QsIHVzZVV0Y306IE1hdE1vbWVudERhdGVBZGFwdGVyT3B0aW9ucyA9IHRoaXMuX29wdGlvbnMgfHwge307XG5cbiAgICByZXR1cm4gdXNlVXRjXG4gICAgICA/IG1vbWVudC51dGMoZGF0ZSwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdClcbiAgICAgIDogbW9tZW50KGRhdGUsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpO1xuICB9XG59XG4iXX0=
|
|
173
|
+
invalid() {
|
|
174
|
+
return moment.invalid();
|
|
175
|
+
}
|
|
176
|
+
/** Creates a Moment instance while respecting the current UTC settings. */
|
|
177
|
+
_createMoment(date, format, locale) {
|
|
178
|
+
const { strict, useUtc } = this._options || {};
|
|
179
|
+
return useUtc
|
|
180
|
+
? moment.utc(date, format, locale, strict)
|
|
181
|
+
: moment(date, format, locale, strict);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
MomentDateAdapter.decorators = [
|
|
185
|
+
{ type: Injectable }
|
|
186
|
+
];
|
|
187
|
+
MomentDateAdapter.ctorParameters = () => [
|
|
188
|
+
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] }] },
|
|
189
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_MOMENT_DATE_ADAPTER_OPTIONS,] }] }
|
|
190
|
+
];
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1tb21lbnQtYWRhcHRlci9hZGFwdGVyL21vbWVudC1kYXRlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLGdGQUFnRjtBQUNoRiw2RkFBNkY7QUFDN0YsaUdBQWlHO0FBQ2pHLDJCQUEyQjtBQUMzQiw2REFBNkQ7QUFDN0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBQyxPQUFPLElBQUksYUFBYSxFQUFpRCxNQUFNLFFBQVEsQ0FBQztBQUVoRyxNQUFNLE1BQU0sR0FBRyxhQUFhLElBQUksT0FBTyxDQUFDO0FBbUJ4QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBQy9ELGlDQUFpQyxFQUFFO0lBQ2pDLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7Q0FDbkQsQ0FBQyxDQUFDO0FBR0gsb0JBQW9CO0FBQ3BCLE1BQU0sVUFBVSx1Q0FBdUM7SUFDckQsT0FBTztRQUNMLE1BQU0sRUFBRSxLQUFLO0tBQ2QsQ0FBQztBQUNKLENBQUM7QUFHRCxpREFBaUQ7QUFDakQsU0FBUyxLQUFLLENBQUksTUFBYyxFQUFFLGFBQW1DO0lBQ25FLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFB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LE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsMkVBQTJFO0lBQ25FLGFBQWEsQ0FDbkIsSUFBaUIsRUFDakIsTUFBa0MsRUFDbEMsTUFBZTtRQUVmLE1BQU0sRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLEdBQWdDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRTFFLE9BQU8sTUFBTTtZQUNYLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUMxQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7OztZQW5NRixVQUFVOzs7eUNBaUJJLFFBQVEsWUFBSSxNQUFNLFNBQUMsZUFBZTs0Q0FDNUMsUUFBUSxZQUFJLE1BQU0sU0FBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuLy8gRGVwZW5kaW5nIG9uIHdoZXRoZXIgcm9sbHVwIGlzIHVzZWQsIG1vbWVudCBuZWVkcyB0byBiZSBpbXBvcnRlZCBkaWZmZXJlbnRseS5cbi8vIFNpbmNlIE1vbWVudC5qcyBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IGV4cG9ydCwgd2Ugbm9ybWFsbHkgbmVlZCB0byBpbXBvcnQgdXNpbmcgdGhlIGAqIGFzYFxuLy8gc3ludGF4LiBIb3dldmVyLCByb2xsdXAgY3JlYXRlcyBhIHN5bnRoZXRpYyBkZWZhdWx0IG1vZHVsZSBhbmQgd2UgdGh1cyBuZWVkIHRvIGltcG9ydCBpdCB1c2luZ1xuLy8gdGhlIGBkZWZhdWx0IGFzYCBzeW50YXguXG4vLyBUT0RPKG1tYWxlcmJhKTogU2VlIGlmIHdlIGNhbiBjbGVhbiB0aGlzIHVwIGF0IHNvbWUgcG9pbnQuXG5pbXBvcnQgKiBhcyBfbW9tZW50IGZyb20gJ21vbWVudCc7XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZHVwbGljYXRlLWltcG9ydHNcbmltcG9ydCB7ZGVmYXVsdCBhcyBfcm9sbHVwTW9tZW50LCBNb21lbnQsIE1vbWVudEZvcm1hdFNwZWNpZmljYXRpb24sIE1vbWVudElucHV0fSBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBtb21lbnQgPSBfcm9sbHVwTW9tZW50IHx8IF9tb21lbnQ7XG5cbi8qKiBDb25maWd1cmFibGUgb3B0aW9ucyBmb3Ige0BzZWUgTW9tZW50RGF0ZUFkYXB0ZXJ9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRNb21lbnREYXRlQWRhcHRlck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBkYXRlcyBoYXZlIHRvIG1hdGNoIHRoZSBmb3JtYXQgZXhhY3RseS5cbiAgICogU2VlIGh0dHBzOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3BhcnNpbmcvc3RyaWN0LW1vZGUvLlxuICAgKi9cbiAgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVHVybnMgdGhlIHVzZSBvZiB1dGMgZGF0ZXMgb24gb3Igb2ZmLlxuICAgKiBDaGFuZ2luZyB0aGlzIHdpbGwgY2hhbmdlIGhvdyBBbmd1bGFyIE1hdGVyaWFsIGNvbXBvbmVudHMgbGlrZSBEYXRlUGlja2VyIG91dHB1dCBkYXRlcy5cbiAgICoge0BkZWZhdWx0IGZhbHNlfVxuICAgKi9cbiAgdXNlVXRjPzogYm9vbGVhbjtcbn1cblxuLyoqIEluamVjdGlvblRva2VuIGZvciBtb21lbnQgZGF0ZSBhZGFwdGVyIHRvIGNvbmZpZ3VyZSBvcHRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0TW9tZW50RGF0ZUFkYXB0ZXJPcHRpb25zPihcbiAgJ01BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMnLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNfRkFDVE9SWVxufSk7XG5cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TX0ZBQ1RPUlkoKTogTWF0TW9tZW50RGF0ZUFkYXB0ZXJPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICB1c2VVdGM6IGZhbHNlXG4gIH07XG59XG5cblxuLyoqIENyZWF0ZXMgYW4gYXJyYXkgYW5kIGZpbGxzIGl0IHdpdGggdmFsdWVzLiAqL1xuZnVuY3Rpb24gcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgY29uc3QgdmFsdWVzQXJyYXkgPSBBcnJheShsZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgdmFsdWVzQXJyYXlbaV0gPSB2YWx1ZUZ1bmN0aW9uKGkpO1xuICB9XG4gIHJldHVybiB2YWx1ZXNBcnJheTtcbn1cblxuXG4vKiogQWRhcHRzIE1vbWVudC5qcyBEYXRlcyBmb3IgdXNlIHdpdGggQW5ndWxhciBNYXRlcmlhbC4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb21lbnREYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPE1vbWVudD4ge1xuICAvLyBOb3RlOiBhbGwgb2YgdGhlIG1ldGhvZHMgdGhhdCBhY2NlcHQgYSBgTW9tZW50YCBpbnB1dCBwYXJhbWV0ZXIgaW1tZWRpYXRlbHkgY2FsbCBgdGhpcy5jbG9uZWBcbiAgLy8gb24gaXQuIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIGEgYE1vbWVudGAgdGhhdCBoYXMgdGhlIGNvcnJlY3QgbG9jYWxlIHNldHRpbmdcbiAgLy8gd2hpbGUgYXZvaWRpbmcgbXV0YXRpbmcgdGhlIG9yaWdpbmFsIG9iamVjdCBwYXNzZWQgdG8gdXMuIEp1c3QgY2FsbGluZyBgLmxvY2FsZSguLi4pYCBvbiB0aGVcbiAgLy8gaW5wdXQgd291bGQgbXV0YXRlIHRoZSBvYmplY3QuXG5cbiAgcHJpdmF0ZSBfbG9jYWxlRGF0YToge1xuICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXIsXG4gICAgbG9uZ01vbnRoczogc3RyaW5nW10sXG4gICAgc2hvcnRNb250aHM6IHN0cmluZ1tdLFxuICAgIGRhdGVzOiBzdHJpbmdbXSxcbiAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW10sXG4gICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXSxcbiAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RBVEVfTE9DQUxFKSBkYXRlTG9jYWxlOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TKVxuICAgIHByaXZhdGUgX29wdGlvbnM/OiBNYXRNb21lbnREYXRlQWRhcHRlck9wdGlvbnMpIHtcblxuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZXRMb2NhbGUoZGF0ZUxvY2FsZSB8fCBtb21lbnQubG9jYWxlKCkpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgc3VwZXIuc2V0TG9jYWxlKGxvY2FsZSk7XG5cbiAgICBsZXQgbW9tZW50TG9jYWxlRGF0YSA9IG1vbWVudC5sb2NhbGVEYXRhKGxvY2FsZSk7XG4gICAgdGhpcy5fbG9jYWxlRGF0YSA9IHtcbiAgICAgIGZpcnN0RGF5T2ZXZWVrOiBtb21lbnRMb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrKCksXG4gICAgICBsb25nTW9udGhzOiBtb21lbnRMb2NhbGVEYXRhLm1vbnRocygpLFxuICAgICAgc2hvcnRNb250aHM6IG1vbWVudExvY2FsZURhdGEubW9udGhzU2hvcnQoKSxcbiAgICAgIGRhdGVzOiByYW5nZSgzMSwgKGkpID0+IHRoaXMuY3JlYXRlRGF0ZSgyMDE3LCAwLCBpICsgMSkuZm9ybWF0KCdEJykpLFxuICAgICAgbG9uZ0RheXNPZldlZWs6IG1vbWVudExvY2FsZURhdGEud2Vla2RheXMoKSxcbiAgICAgIHNob3J0RGF5c09mV2VlazogbW9tZW50TG9jYWxlRGF0YS53ZWVrZGF5c1Nob3J0KCksXG4gICAgICBuYXJyb3dEYXlzT2ZXZWVrOiBtb21lbnRMb2NhbGVEYXRhLndlZWtkYXlzTWluKCksXG4gICAgfTtcbiAgfVxuXG4gIGdldFllYXIoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS55ZWFyKCk7XG4gIH1cblxuICBnZXRNb250aChkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1vbnRoKCk7XG4gIH1cblxuICBnZXREYXRlKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZGF0ZSgpO1xuICB9XG5cbiAgZ2V0RGF5T2ZXZWVrKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZGF5KCk7XG4gIH1cblxuICBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgLy8gTW9tZW50LmpzIGRvZXNuJ3Qgc3VwcG9ydCBuYXJyb3cgbW9udGggbmFtZXMsIHNvIHdlIGp1c3QgdXNlIHNob3J0IGlmIG5hcnJvdyBpcyByZXF1ZXN0ZWQuXG4gICAgcmV0dXJuIHN0eWxlID09ICdsb25nJyA/IHRoaXMuX2xvY2FsZURhdGEubG9uZ01vbnRocyA6IHRoaXMuX2xvY2FsZURhdGEuc2hvcnRNb250aHM7XG4gIH1cblxuICBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmRhdGVzO1xuICB9XG5cbiAgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoc3R5bGUgPT0gJ2xvbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nRGF5c09mV2VlaztcbiAgICB9XG4gICAgaWYgKHN0eWxlID09ICdzaG9ydCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0RGF5c09mV2VlaztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubmFycm93RGF5c09mV2VlaztcbiAgfVxuXG4gIGdldFllYXJOYW1lKGRhdGU6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZm9ybWF0KCdZWVlZJyk7XG4gIH1cblxuICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrO1xuICB9XG5cbiAgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5kYXlzSW5Nb250aCgpO1xuICB9XG5cbiAgY2xvbmUoZGF0ZTogTW9tZW50KTogTW9tZW50IHtcbiAgICByZXR1cm4gZGF0ZS5jbG9uZSgpLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG4gIH1cblxuICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogTW9tZW50IHtcbiAgICAvLyBNb21lbnQuanMgd2lsbCBjcmVhdGUgYW4gaW52YWxpZCBkYXRlIGlmIGFueSBvZiB0aGUgY29tcG9uZW50cyBhcmUgb3V0IG9mIGJvdW5kcywgYnV0IHdlXG4gICAgLy8gZXhwbGljaXRseSBjaGVjayBlYWNoIGNhc2Ugc28gd2UgY2FuIHRocm93IG1vcmUgZGVzY3JpcHRpdmUgZXJyb3JzLlxuICAgIGlmIChtb250aCA8IDAgfHwgbW9udGggPiAxMSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgbW9udGggaW5kZXggXCIke21vbnRofVwiLiBNb250aCBpbmRleCBoYXMgdG8gYmUgYmV0d2VlbiAwIGFuZCAxMS5gKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZSA8IDEpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZU1vbWVudCh7eWVhciwgbW9udGgsIGRhdGV9KS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuXG4gICAgLy8gSWYgdGhlIHJlc3VsdCBpc24ndCB2YWxpZCwgdGhlIGRhdGUgbXVzdCBoYXZlIGJlZW4gb3V0IG9mIGJvdW5kcyBmb3IgdGhpcyBtb250aC5cbiAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB0b2RheSgpOiBNb21lbnQge1xuICAgIHJldHVybiB0aGlzLl9jcmVhdGVNb21lbnQoKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICB9XG5cbiAgcGFyc2UodmFsdWU6IGFueSwgcGFyc2VGb3JtYXQ6IHN0cmluZyB8IHN0cmluZ1tdKTogTW9tZW50IHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZU1vbWVudCh2YWx1ZSwgcGFyc2VGb3JtYXQsIHRoaXMubG9jYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlID8gdGhpcy5fY3JlYXRlTW9tZW50KHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpIDogbnVsbDtcbiAgfVxuXG4gIGZvcm1hdChkYXRlOiBNb21lbnQsIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgZGF0ZSA9IHRoaXMuY2xvbmUoZGF0ZSk7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHRocm93IEVycm9yKCdNb21lbnREYXRlQWRhcHRlcjogQ2Fubm90IGZvcm1hdCBpbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlLmZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcbiAgfVxuXG4gIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogTW9tZW50LCB5ZWFyczogbnVtYmVyKTogTW9tZW50IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoe3llYXJzfSk7XG4gIH1cblxuICBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBNb21lbnQsIG1vbnRoczogbnVtYmVyKTogTW9tZW50IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoe21vbnRoc30pO1xuICB9XG5cbiAgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IE1vbWVudCwgZGF5czogbnVtYmVyKTogTW9tZW50IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoe2RheXN9KTtcbiAgfVxuXG4gIHRvSXNvODYwMShkYXRlOiBNb21lbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmZvcm1hdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGlmIGdpdmVuIGEgdmFsaWQgTW9tZW50IG9yIG51bGwuIERlc2VyaWFsaXplcyB2YWxpZCBJU08gODYwMSBzdHJpbmdzXG4gICAqIChodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGFuZCB2YWxpZCBEYXRlIG9iamVjdHMgaW50byB2YWxpZCBNb21lbnRzIGFuZCBlbXB0eVxuICAgKiBzdHJpbmcgaW50byBudWxsLiBSZXR1cm5zIGFuIGludmFsaWQgZGF0ZSBmb3IgYWxsIG90aGVyIHZhbHVlcy5cbiAgICovXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnkpOiBNb21lbnQgfCBudWxsIHtcbiAgICBsZXQgZGF0ZTtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBkYXRlID0gdGhpcy5fY3JlYXRlTW9tZW50KHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkpIHtcbiAgICAgIC8vIE5vdGU6IGFzc3VtZXMgdGhhdCBjbG9uaW5nIGFsc28gc2V0cyB0aGUgY29ycmVjdCBsb2NhbGUuXG4gICAgICByZXR1cm4gdGhpcy5jbG9uZSh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZGF0ZSA9IHRoaXMuX2NyZWF0ZU1vbWVudCh2YWx1ZSwgbW9tZW50LklTT184NjAxKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgIH1cbiAgICBpZiAoZGF0ZSAmJiB0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVNb21lbnQoZGF0ZSkubG9jYWxlKHRoaXMubG9jYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgfVxuXG4gIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1vbWVudC5pc01vbWVudChvYmopO1xuICB9XG5cbiAgaXNWYWxpZChkYXRlOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5pc1ZhbGlkKCk7XG4gIH1cblxuICBpbnZhbGlkKCk6IE1vbWVudCB7XG4gICAgcmV0dXJuIG1vbWVudC5pbnZhbGlkKCk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIE1vbWVudCBpbnN0YW5jZSB3aGlsZSByZXNwZWN0aW5nIHRoZSBjdXJyZW50IFVUQyBzZXR0aW5ncy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlTW9tZW50KFxuICAgIGRhdGU6IE1vbWVudElucHV0LFxuICAgIGZvcm1hdD86IE1vbWVudEZvcm1hdFNwZWNpZmljYXRpb24sXG4gICAgbG9jYWxlPzogc3RyaW5nLFxuICApOiBNb21lbnQge1xuICAgIGNvbnN0IHtzdHJpY3QsIHVzZVV0Y306IE1hdE1vbWVudERhdGVBZGFwdGVyT3B0aW9ucyA9IHRoaXMuX29wdGlvbnMgfHwge307XG5cbiAgICByZXR1cm4gdXNlVXRjXG4gICAgICA/IG1vbWVudC51dGMoZGF0ZSwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdClcbiAgICAgIDogbW9tZW50KGRhdGUsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpO1xuICB9XG59XG4iXX0=
|
|
@@ -31,161 +31,158 @@ function range(length, valueFunction) {
|
|
|
31
31
|
return valuesArray;
|
|
32
32
|
}
|
|
33
33
|
/** Adapts Moment.js Dates for use with Angular Material. */
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
setLocale(locale)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return this._localeData.longDaysOfWeek;
|
|
76
|
-
}
|
|
77
|
-
if (style == 'short') {
|
|
78
|
-
return this._localeData.shortDaysOfWeek;
|
|
79
|
-
}
|
|
80
|
-
return this._localeData.narrowDaysOfWeek;
|
|
81
|
-
}
|
|
82
|
-
getYearName(date) {
|
|
83
|
-
return this.clone(date).format('YYYY');
|
|
84
|
-
}
|
|
85
|
-
getFirstDayOfWeek() {
|
|
86
|
-
return this._localeData.firstDayOfWeek;
|
|
87
|
-
}
|
|
88
|
-
getNumDaysInMonth(date) {
|
|
89
|
-
return this.clone(date).daysInMonth();
|
|
90
|
-
}
|
|
91
|
-
clone(date) {
|
|
92
|
-
return date.clone().locale(this.locale);
|
|
93
|
-
}
|
|
94
|
-
createDate(year, month, date) {
|
|
95
|
-
// Moment.js will create an invalid date if any of the components are out of bounds, but we
|
|
96
|
-
// explicitly check each case so we can throw more descriptive errors.
|
|
97
|
-
if (month < 0 || month > 11) {
|
|
98
|
-
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
99
|
-
}
|
|
100
|
-
if (date < 1) {
|
|
101
|
-
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
102
|
-
}
|
|
103
|
-
const result = this._createMoment({ year, month, date }).locale(this.locale);
|
|
104
|
-
// If the result isn't valid, the date must have been out of bounds for this month.
|
|
105
|
-
if (!result.isValid()) {
|
|
106
|
-
throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
|
107
|
-
}
|
|
108
|
-
return result;
|
|
109
|
-
}
|
|
110
|
-
today() {
|
|
111
|
-
return this._createMoment().locale(this.locale);
|
|
34
|
+
class MomentDateAdapter extends DateAdapter {
|
|
35
|
+
constructor(dateLocale, _options) {
|
|
36
|
+
super();
|
|
37
|
+
this._options = _options;
|
|
38
|
+
this.setLocale(dateLocale || moment.locale());
|
|
39
|
+
}
|
|
40
|
+
setLocale(locale) {
|
|
41
|
+
super.setLocale(locale);
|
|
42
|
+
let momentLocaleData = moment.localeData(locale);
|
|
43
|
+
this._localeData = {
|
|
44
|
+
firstDayOfWeek: momentLocaleData.firstDayOfWeek(),
|
|
45
|
+
longMonths: momentLocaleData.months(),
|
|
46
|
+
shortMonths: momentLocaleData.monthsShort(),
|
|
47
|
+
dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),
|
|
48
|
+
longDaysOfWeek: momentLocaleData.weekdays(),
|
|
49
|
+
shortDaysOfWeek: momentLocaleData.weekdaysShort(),
|
|
50
|
+
narrowDaysOfWeek: momentLocaleData.weekdaysMin(),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
getYear(date) {
|
|
54
|
+
return this.clone(date).year();
|
|
55
|
+
}
|
|
56
|
+
getMonth(date) {
|
|
57
|
+
return this.clone(date).month();
|
|
58
|
+
}
|
|
59
|
+
getDate(date) {
|
|
60
|
+
return this.clone(date).date();
|
|
61
|
+
}
|
|
62
|
+
getDayOfWeek(date) {
|
|
63
|
+
return this.clone(date).day();
|
|
64
|
+
}
|
|
65
|
+
getMonthNames(style) {
|
|
66
|
+
// Moment.js doesn't support narrow month names, so we just use short if narrow is requested.
|
|
67
|
+
return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;
|
|
68
|
+
}
|
|
69
|
+
getDateNames() {
|
|
70
|
+
return this._localeData.dates;
|
|
71
|
+
}
|
|
72
|
+
getDayOfWeekNames(style) {
|
|
73
|
+
if (style == 'long') {
|
|
74
|
+
return this._localeData.longDaysOfWeek;
|
|
112
75
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return this._createMoment(value, parseFormat, this.locale);
|
|
116
|
-
}
|
|
117
|
-
return value ? this._createMoment(value).locale(this.locale) : null;
|
|
76
|
+
if (style == 'short') {
|
|
77
|
+
return this._localeData.shortDaysOfWeek;
|
|
118
78
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
79
|
+
return this._localeData.narrowDaysOfWeek;
|
|
80
|
+
}
|
|
81
|
+
getYearName(date) {
|
|
82
|
+
return this.clone(date).format('YYYY');
|
|
83
|
+
}
|
|
84
|
+
getFirstDayOfWeek() {
|
|
85
|
+
return this._localeData.firstDayOfWeek;
|
|
86
|
+
}
|
|
87
|
+
getNumDaysInMonth(date) {
|
|
88
|
+
return this.clone(date).daysInMonth();
|
|
89
|
+
}
|
|
90
|
+
clone(date) {
|
|
91
|
+
return date.clone().locale(this.locale);
|
|
92
|
+
}
|
|
93
|
+
createDate(year, month, date) {
|
|
94
|
+
// Moment.js will create an invalid date if any of the components are out of bounds, but we
|
|
95
|
+
// explicitly check each case so we can throw more descriptive errors.
|
|
96
|
+
if (month < 0 || month > 11) {
|
|
97
|
+
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
125
98
|
}
|
|
126
|
-
|
|
127
|
-
|
|
99
|
+
if (date < 1) {
|
|
100
|
+
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
128
101
|
}
|
|
129
|
-
|
|
130
|
-
|
|
102
|
+
const result = this._createMoment({ year, month, date }).locale(this.locale);
|
|
103
|
+
// If the result isn't valid, the date must have been out of bounds for this month.
|
|
104
|
+
if (!result.isValid()) {
|
|
105
|
+
throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
|
131
106
|
}
|
|
132
|
-
|
|
133
|
-
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
today() {
|
|
110
|
+
return this._createMoment().locale(this.locale);
|
|
111
|
+
}
|
|
112
|
+
parse(value, parseFormat) {
|
|
113
|
+
if (value && typeof value == 'string') {
|
|
114
|
+
return this._createMoment(value, parseFormat, this.locale);
|
|
134
115
|
}
|
|
135
|
-
|
|
136
|
-
|
|
116
|
+
return value ? this._createMoment(value).locale(this.locale) : null;
|
|
117
|
+
}
|
|
118
|
+
format(date, displayFormat) {
|
|
119
|
+
date = this.clone(date);
|
|
120
|
+
if (!this.isValid(date)) {
|
|
121
|
+
throw Error('MomentDateAdapter: Cannot format invalid date.');
|
|
137
122
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
123
|
+
return date.format(displayFormat);
|
|
124
|
+
}
|
|
125
|
+
addCalendarYears(date, years) {
|
|
126
|
+
return this.clone(date).add({ years });
|
|
127
|
+
}
|
|
128
|
+
addCalendarMonths(date, months) {
|
|
129
|
+
return this.clone(date).add({ months });
|
|
130
|
+
}
|
|
131
|
+
addCalendarDays(date, days) {
|
|
132
|
+
return this.clone(date).add({ days });
|
|
133
|
+
}
|
|
134
|
+
toIso8601(date) {
|
|
135
|
+
return this.clone(date).format();
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Returns the given value if given a valid Moment or null. Deserializes valid ISO 8601 strings
|
|
139
|
+
* (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty
|
|
140
|
+
* string into null. Returns an invalid date for all other values.
|
|
141
|
+
*/
|
|
142
|
+
deserialize(value) {
|
|
143
|
+
let date;
|
|
144
|
+
if (value instanceof Date) {
|
|
145
|
+
date = this._createMoment(value).locale(this.locale);
|
|
146
|
+
}
|
|
147
|
+
else if (this.isDateInstance(value)) {
|
|
148
|
+
// Note: assumes that cloning also sets the correct locale.
|
|
149
|
+
return this.clone(value);
|
|
150
|
+
}
|
|
151
|
+
if (typeof value === 'string') {
|
|
152
|
+
if (!value) {
|
|
153
|
+
return null;
|
|
160
154
|
}
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
isDateInstance(obj) {
|
|
164
|
-
return moment.isMoment(obj);
|
|
165
|
-
}
|
|
166
|
-
isValid(date) {
|
|
167
|
-
return this.clone(date).isValid();
|
|
155
|
+
date = this._createMoment(value, moment.ISO_8601).locale(this.locale);
|
|
168
156
|
}
|
|
169
|
-
|
|
170
|
-
return
|
|
171
|
-
}
|
|
172
|
-
/** Creates a Moment instance while respecting the current UTC settings. */
|
|
173
|
-
_createMoment(date, format, locale) {
|
|
174
|
-
const { strict, useUtc } = this._options || {};
|
|
175
|
-
return useUtc
|
|
176
|
-
? moment.utc(date, format, locale, strict)
|
|
177
|
-
: moment(date, format, locale, strict);
|
|
157
|
+
if (date && this.isValid(date)) {
|
|
158
|
+
return this._createMoment(date).locale(this.locale);
|
|
178
159
|
}
|
|
160
|
+
return super.deserialize(value);
|
|
161
|
+
}
|
|
162
|
+
isDateInstance(obj) {
|
|
163
|
+
return moment.isMoment(obj);
|
|
164
|
+
}
|
|
165
|
+
isValid(date) {
|
|
166
|
+
return this.clone(date).isValid();
|
|
179
167
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
{
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
168
|
+
invalid() {
|
|
169
|
+
return moment.invalid();
|
|
170
|
+
}
|
|
171
|
+
/** Creates a Moment instance while respecting the current UTC settings. */
|
|
172
|
+
_createMoment(date, format, locale) {
|
|
173
|
+
const { strict, useUtc } = this._options || {};
|
|
174
|
+
return useUtc
|
|
175
|
+
? moment.utc(date, format, locale, strict)
|
|
176
|
+
: moment(date, format, locale, strict);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
MomentDateAdapter.decorators = [
|
|
180
|
+
{ type: Injectable }
|
|
181
|
+
];
|
|
182
|
+
MomentDateAdapter.ctorParameters = () => [
|
|
183
|
+
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE,] }] },
|
|
184
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_MOMENT_DATE_ADAPTER_OPTIONS,] }] }
|
|
185
|
+
];
|
|
189
186
|
|
|
190
187
|
/**
|
|
191
188
|
* @license
|
|
@@ -213,34 +210,28 @@ const MAT_MOMENT_DATE_FORMATS = {
|
|
|
213
210
|
* Use of this source code is governed by an MIT-style license that can be
|
|
214
211
|
* found in the LICENSE file at https://angular.io/license
|
|
215
212
|
*/
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
];
|
|
230
|
-
return MomentDateModule;
|
|
231
|
-
})();
|
|
213
|
+
class MomentDateModule {
|
|
214
|
+
}
|
|
215
|
+
MomentDateModule.decorators = [
|
|
216
|
+
{ type: NgModule, args: [{
|
|
217
|
+
providers: [
|
|
218
|
+
{
|
|
219
|
+
provide: DateAdapter,
|
|
220
|
+
useClass: MomentDateAdapter,
|
|
221
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]
|
|
222
|
+
}
|
|
223
|
+
],
|
|
224
|
+
},] }
|
|
225
|
+
];
|
|
232
226
|
const ɵ0 = MAT_MOMENT_DATE_FORMATS;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
];
|
|
242
|
-
return MatMomentDateModule;
|
|
243
|
-
})();
|
|
227
|
+
class MatMomentDateModule {
|
|
228
|
+
}
|
|
229
|
+
MatMomentDateModule.decorators = [
|
|
230
|
+
{ type: NgModule, args: [{
|
|
231
|
+
imports: [MomentDateModule],
|
|
232
|
+
providers: [{ provide: MAT_DATE_FORMATS, useValue: ɵ0 }],
|
|
233
|
+
},] }
|
|
234
|
+
];
|
|
244
235
|
|
|
245
236
|
/**
|
|
246
237
|
* @license
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material-moment-adapter.js","sources":["../../../../../../src/material-moment-adapter/adapter/moment-date-adapter.ts","../../../../../../src/material-moment-adapter/adapter/moment-date-formats.ts","../../../../../../src/material-moment-adapter/adapter/index.ts","../../../../../../src/material-moment-adapter/public-api.ts","../../../../../../src/material-moment-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.io/license\n */\n\nimport {Inject, Injectable, Optional, InjectionToken} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\n// Depending on whether rollup is used, moment needs to be imported differently.\n// Since Moment.js doesn't have a default export, we normally need to import using the `* as`\n// syntax. However, rollup creates a synthetic default module and we thus need to import it using\n// the `default as` syntax.\n// TODO(mmalerba): See if we can clean this up at some point.\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport {default as _rollupMoment, Moment, MomentFormatSpecification, MomentInput} from 'moment';\n\nconst moment = _rollupMoment || _moment;\n\n/** Configurable options for {@see MomentDateAdapter}. */\nexport interface MatMomentDateAdapterOptions {\n\n /**\n * When enabled, the dates have to match the format exactly.\n * See https://momentjs.com/guides/#/parsing/strict-mode/.\n */\n strict?: boolean;\n\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 * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for moment date adapter to configure options. */\nexport const MAT_MOMENT_DATE_ADAPTER_OPTIONS = new InjectionToken<MatMomentDateAdapterOptions>(\n 'MAT_MOMENT_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\n\n/** @docs-private */\nexport function MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY(): MatMomentDateAdapterOptions {\n return {\n useUtc: false\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\n/** Adapts Moment.js Dates for use with Angular Material. */\n@Injectable()\nexport class MomentDateAdapter extends DateAdapter<Moment> {\n // Note: all of the methods that accept a `Moment` input parameter immediately call `this.clone`\n // on it. This is to ensure that we're working with a `Moment` that has the correct locale setting\n // while avoiding mutating the original object passed to us. Just calling `.locale(...)` on the\n // input would mutate the object.\n\n private _localeData: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(@Optional() @Inject(MAT_DATE_LOCALE) dateLocale: string,\n @Optional() @Inject(MAT_MOMENT_DATE_ADAPTER_OPTIONS)\n private _options?: MatMomentDateAdapterOptions) {\n\n super();\n this.setLocale(dateLocale || moment.locale());\n }\n\n setLocale(locale: string) {\n super.setLocale(locale);\n\n let momentLocaleData = moment.localeData(locale);\n this._localeData = {\n firstDayOfWeek: momentLocaleData.firstDayOfWeek(),\n longMonths: momentLocaleData.months(),\n shortMonths: momentLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: momentLocaleData.weekdays(),\n shortDaysOfWeek: momentLocaleData.weekdaysShort(),\n narrowDaysOfWeek: momentLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Moment): number {\n return this.clone(date).year();\n }\n\n getMonth(date: Moment): number {\n return this.clone(date).month();\n }\n\n getDate(date: Moment): number {\n return this.clone(date).date();\n }\n\n getDayOfWeek(date: Moment): number {\n return this.clone(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Moment.js doesn't support narrow month names, so we just use short if narrow is requested.\n return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this._localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style == 'long') {\n return this._localeData.longDaysOfWeek;\n }\n if (style == 'short') {\n return this._localeData.shortDaysOfWeek;\n }\n return this._localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Moment): string {\n return this.clone(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this._localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Moment): number {\n return this.clone(date).daysInMonth();\n }\n\n clone(date: Moment): Moment {\n return date.clone().locale(this.locale);\n }\n\n createDate(year: number, month: number, date: number): Moment {\n // Moment.js will create an invalid date if any of the components are out of bounds, but we\n // explicitly check each case so we can throw more descriptive errors.\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 const result = this._createMoment({year, month, date}).locale(this.locale);\n\n // If the result isn't valid, the date must have been out of bounds for this month.\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n\n today(): Moment {\n return this._createMoment().locale(this.locale);\n }\n\n parse(value: any, parseFormat: string | string[]): Moment | null {\n if (value && typeof value == 'string') {\n return this._createMoment(value, parseFormat, this.locale);\n }\n return value ? this._createMoment(value).locale(this.locale) : null;\n }\n\n format(date: Moment, displayFormat: string): string {\n date = this.clone(date);\n if (!this.isValid(date)) {\n throw Error('MomentDateAdapter: Cannot format invalid date.');\n }\n return date.format(displayFormat);\n }\n\n addCalendarYears(date: Moment, years: number): Moment {\n return this.clone(date).add({years});\n }\n\n addCalendarMonths(date: Moment, months: number): Moment {\n return this.clone(date).add({months});\n }\n\n addCalendarDays(date: Moment, days: number): Moment {\n return this.clone(date).add({days});\n }\n\n toIso8601(date: Moment): string {\n return this.clone(date).format();\n }\n\n /**\n * Returns the given value if given a valid Moment or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty\n * string into null. Returns an invalid date for all other values.\n */\n deserialize(value: any): Moment | null {\n let date;\n if (value instanceof Date) {\n date = this._createMoment(value).locale(this.locale);\n } else if (this.isDateInstance(value)) {\n // Note: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this._createMoment(value, moment.ISO_8601).locale(this.locale);\n }\n if (date && this.isValid(date)) {\n return this._createMoment(date).locale(this.locale);\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return moment.isMoment(obj);\n }\n\n isValid(date: Moment): boolean {\n return this.clone(date).isValid();\n }\n\n invalid(): Moment {\n return moment.invalid();\n }\n\n /** Creates a Moment instance while respecting the current UTC settings. */\n private _createMoment(\n date: MomentInput,\n format?: MomentFormatSpecification,\n locale?: string,\n ): Moment {\n const {strict, useUtc}: MatMomentDateAdapterOptions = this._options || {};\n\n return useUtc\n ? moment.utc(date, format, locale, strict)\n : moment(date, format, locale, strict);\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.io/license\n */\n\nimport {MatDateFormats} from '@angular/material/core';\n\n\nexport const MAT_MOMENT_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'l',\n },\n display: {\n dateInput: 'l',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\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.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from './moment-date-adapter';\nimport {MAT_MOMENT_DATE_FORMATS} from './moment-date-formats';\n\nexport * from './moment-date-adapter';\nexport * from './moment-date-formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n }\n ],\n})\nexport class MomentDateModule {}\n\n\n@NgModule({\n imports: [MomentDateModule],\n providers: [{provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}],\n})\nexport class MatMomentDateModule {}\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.io/license\n */\n\nexport * from './adapter/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_rollupMoment","_moment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"material-moment-adapter.js","sources":["../../../../../../src/material-moment-adapter/adapter/moment-date-adapter.ts","../../../../../../src/material-moment-adapter/adapter/moment-date-formats.ts","../../../../../../src/material-moment-adapter/adapter/index.ts","../../../../../../src/material-moment-adapter/public-api.ts","../../../../../../src/material-moment-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.io/license\n */\n\nimport {Inject, Injectable, Optional, InjectionToken} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\n// Depending on whether rollup is used, moment needs to be imported differently.\n// Since Moment.js doesn't have a default export, we normally need to import using the `* as`\n// syntax. However, rollup creates a synthetic default module and we thus need to import it using\n// the `default as` syntax.\n// TODO(mmalerba): See if we can clean this up at some point.\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport {default as _rollupMoment, Moment, MomentFormatSpecification, MomentInput} from 'moment';\n\nconst moment = _rollupMoment || _moment;\n\n/** Configurable options for {@see MomentDateAdapter}. */\nexport interface MatMomentDateAdapterOptions {\n\n /**\n * When enabled, the dates have to match the format exactly.\n * See https://momentjs.com/guides/#/parsing/strict-mode/.\n */\n strict?: boolean;\n\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 * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for moment date adapter to configure options. */\nexport const MAT_MOMENT_DATE_ADAPTER_OPTIONS = new InjectionToken<MatMomentDateAdapterOptions>(\n 'MAT_MOMENT_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\n\n/** @docs-private */\nexport function MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY(): MatMomentDateAdapterOptions {\n return {\n useUtc: false\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\n/** Adapts Moment.js Dates for use with Angular Material. */\n@Injectable()\nexport class MomentDateAdapter extends DateAdapter<Moment> {\n // Note: all of the methods that accept a `Moment` input parameter immediately call `this.clone`\n // on it. This is to ensure that we're working with a `Moment` that has the correct locale setting\n // while avoiding mutating the original object passed to us. Just calling `.locale(...)` on the\n // input would mutate the object.\n\n private _localeData: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(@Optional() @Inject(MAT_DATE_LOCALE) dateLocale: string,\n @Optional() @Inject(MAT_MOMENT_DATE_ADAPTER_OPTIONS)\n private _options?: MatMomentDateAdapterOptions) {\n\n super();\n this.setLocale(dateLocale || moment.locale());\n }\n\n setLocale(locale: string) {\n super.setLocale(locale);\n\n let momentLocaleData = moment.localeData(locale);\n this._localeData = {\n firstDayOfWeek: momentLocaleData.firstDayOfWeek(),\n longMonths: momentLocaleData.months(),\n shortMonths: momentLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: momentLocaleData.weekdays(),\n shortDaysOfWeek: momentLocaleData.weekdaysShort(),\n narrowDaysOfWeek: momentLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Moment): number {\n return this.clone(date).year();\n }\n\n getMonth(date: Moment): number {\n return this.clone(date).month();\n }\n\n getDate(date: Moment): number {\n return this.clone(date).date();\n }\n\n getDayOfWeek(date: Moment): number {\n return this.clone(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Moment.js doesn't support narrow month names, so we just use short if narrow is requested.\n return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this._localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style == 'long') {\n return this._localeData.longDaysOfWeek;\n }\n if (style == 'short') {\n return this._localeData.shortDaysOfWeek;\n }\n return this._localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Moment): string {\n return this.clone(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this._localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Moment): number {\n return this.clone(date).daysInMonth();\n }\n\n clone(date: Moment): Moment {\n return date.clone().locale(this.locale);\n }\n\n createDate(year: number, month: number, date: number): Moment {\n // Moment.js will create an invalid date if any of the components are out of bounds, but we\n // explicitly check each case so we can throw more descriptive errors.\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 const result = this._createMoment({year, month, date}).locale(this.locale);\n\n // If the result isn't valid, the date must have been out of bounds for this month.\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n\n today(): Moment {\n return this._createMoment().locale(this.locale);\n }\n\n parse(value: any, parseFormat: string | string[]): Moment | null {\n if (value && typeof value == 'string') {\n return this._createMoment(value, parseFormat, this.locale);\n }\n return value ? this._createMoment(value).locale(this.locale) : null;\n }\n\n format(date: Moment, displayFormat: string): string {\n date = this.clone(date);\n if (!this.isValid(date)) {\n throw Error('MomentDateAdapter: Cannot format invalid date.');\n }\n return date.format(displayFormat);\n }\n\n addCalendarYears(date: Moment, years: number): Moment {\n return this.clone(date).add({years});\n }\n\n addCalendarMonths(date: Moment, months: number): Moment {\n return this.clone(date).add({months});\n }\n\n addCalendarDays(date: Moment, days: number): Moment {\n return this.clone(date).add({days});\n }\n\n toIso8601(date: Moment): string {\n return this.clone(date).format();\n }\n\n /**\n * Returns the given value if given a valid Moment or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty\n * string into null. Returns an invalid date for all other values.\n */\n deserialize(value: any): Moment | null {\n let date;\n if (value instanceof Date) {\n date = this._createMoment(value).locale(this.locale);\n } else if (this.isDateInstance(value)) {\n // Note: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this._createMoment(value, moment.ISO_8601).locale(this.locale);\n }\n if (date && this.isValid(date)) {\n return this._createMoment(date).locale(this.locale);\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return moment.isMoment(obj);\n }\n\n isValid(date: Moment): boolean {\n return this.clone(date).isValid();\n }\n\n invalid(): Moment {\n return moment.invalid();\n }\n\n /** Creates a Moment instance while respecting the current UTC settings. */\n private _createMoment(\n date: MomentInput,\n format?: MomentFormatSpecification,\n locale?: string,\n ): Moment {\n const {strict, useUtc}: MatMomentDateAdapterOptions = this._options || {};\n\n return useUtc\n ? moment.utc(date, format, locale, strict)\n : moment(date, format, locale, strict);\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.io/license\n */\n\nimport {MatDateFormats} from '@angular/material/core';\n\n\nexport const MAT_MOMENT_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'l',\n },\n display: {\n dateInput: 'l',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\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.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from './moment-date-adapter';\nimport {MAT_MOMENT_DATE_FORMATS} from './moment-date-formats';\n\nexport * from './moment-date-adapter';\nexport * from './moment-date-formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n }\n ],\n})\nexport class MomentDateModule {}\n\n\n@NgModule({\n imports: [MomentDateModule],\n providers: [{provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}],\n})\nexport class MatMomentDateModule {}\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.io/license\n */\n\nexport * from './adapter/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_rollupMoment","_moment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/material-moment-adapter",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.2",
|
|
4
4
|
"description": "Angular Material Moment 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": "10.0.
|
|
15
|
+
"@angular/material": "10.0.2",
|
|
16
16
|
"@angular/core": "^10.0.0 || ^11.0.0-0",
|
|
17
17
|
"moment": "^2.18.1"
|
|
18
18
|
},
|