@netwin/angular-datetime-picker 19.0.0-rc.4 → 19.0.0-rc.6
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/README.md +27 -1
- package/assets/style/picker.min.css +1 -1
- package/fesm2022/netwin-angular-datetime-picker.mjs +4178 -1486
- package/fesm2022/netwin-angular-datetime-picker.mjs.map +1 -1
- package/lib/date-time/adapter/date-time-adapter.class.d.ts +19 -9
- package/lib/date-time/adapter/date-time-format.class.d.ts +12 -8
- package/lib/date-time/adapter/native-date-time-adapter.class.d.ts +16 -5
- package/lib/date-time/adapter/native-date-time-format.class.d.ts +3 -0
- package/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time-adapter.class.d.ts +15 -4
- package/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time-format.class.d.ts +3 -0
- package/lib/date-time/calendar-body.component.d.ts +18 -13
- package/lib/date-time/calendar-month-view.component.d.ts +17 -12
- package/lib/date-time/calendar-multi-year-view.component.d.ts +12 -12
- package/lib/date-time/calendar-year-view.component.d.ts +7 -6
- package/lib/date-time/calendar.component.d.ts +37 -17
- package/lib/date-time/date-time-inline.component.d.ts +79 -156
- package/lib/date-time/date-time-picker-container.component.d.ts +131 -0
- package/lib/date-time/date-time-picker-input.directive.d.ts +172 -0
- package/lib/date-time/date-time-picker-intl.service.d.ts +6 -0
- package/lib/date-time/date-time-picker-trigger.directive.d.ts +23 -0
- package/lib/date-time/date-time-picker.animations.d.ts +8 -0
- package/lib/date-time/date-time-picker.component.d.ts +171 -0
- package/lib/date-time/date-time.class.d.ts +103 -0
- package/lib/date-time/date-time.module.d.ts +17 -11
- package/lib/date-time/numberedFixLen.pipe.d.ts +10 -0
- package/lib/date-time/timer-box.component.d.ts +4 -3
- package/lib/date-time/timer.component.d.ts +19 -16
- package/lib/dialog/dialog-config.class.d.ts +169 -0
- package/lib/dialog/dialog-container.component.d.ts +69 -0
- package/lib/dialog/dialog-ref.class.d.ts +51 -0
- package/lib/dialog/dialog.module.d.ts +11 -0
- package/lib/dialog/dialog.service.d.ts +76 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/object.utils.d.ts +8 -0
- package/package.json +5 -7
- package/public_api.d.ts +16 -12
- package/esm2022/lib/date-time/adapter/date-time-adapter.class.mjs +0 -114
- package/esm2022/lib/date-time/adapter/date-time-format.class.mjs +0 -4
- package/esm2022/lib/date-time/adapter/native-date-time-adapter.class.mjs +0 -238
- package/esm2022/lib/date-time/adapter/native-date-time-format.class.mjs +0 -15
- package/esm2022/lib/date-time/adapter/native-date-time.module.mjs +0 -42
- package/esm2022/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time-adapter.class.mjs +0 -215
- package/esm2022/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time-format.class.mjs +0 -15
- package/esm2022/lib/date-time/calendar-body.component.mjs +0 -137
- package/esm2022/lib/date-time/calendar-month-view.component.mjs +0 -420
- package/esm2022/lib/date-time/calendar-multi-year-view.component.mjs +0 -360
- package/esm2022/lib/date-time/calendar-year-view.component.mjs +0 -354
- package/esm2022/lib/date-time/calendar.component.mjs +0 -357
- package/esm2022/lib/date-time/date-time-inline.component.mjs +0 -463
- package/esm2022/lib/date-time/date-time-picker-intl.service.mjs +0 -55
- package/esm2022/lib/date-time/date-time.module.mjs +0 -59
- package/esm2022/lib/date-time/options-provider.mjs +0 -34
- package/esm2022/lib/date-time/timer-box.component.mjs +0 -130
- package/esm2022/lib/date-time/timer.component.mjs +0 -280
- package/esm2022/lib/types/date-view.mjs +0 -19
- package/esm2022/lib/types/index.mjs +0 -4
- package/esm2022/lib/types/picker-type.mjs +0 -2
- package/esm2022/lib/types/select-mode.mjs +0 -2
- package/esm2022/lib/utils/array.utils.mjs +0 -5
- package/esm2022/lib/utils/constants.mjs +0 -31
- package/esm2022/lib/utils/date.utils.mjs +0 -46
- package/esm2022/netwin-angular-datetime-picker.mjs +0 -5
- package/esm2022/public_api.mjs +0 -23
- package/lib/types/date-view.d.ts +0 -17
- package/lib/types/index.d.ts +0 -3
- package/lib/types/picker-type.d.ts +0 -7
- package/lib/types/select-mode.d.ts +0 -8
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
import { Platform } from '@angular/cdk/platform';
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { range } from '../../utils/array.utils';
|
|
4
|
-
import { DEFAULT_DATE_NAMES, DEFAULT_DAY_OF_WEEK_NAMES, DEFAULT_MONTH_NAMES, SUPPORTS_INTL_API } from '../../utils/constants';
|
|
5
|
-
import { createDate, getNumDaysInMonth } from '../../utils/date.utils';
|
|
6
|
-
import { DateTimeAdapter, OWL_DATE_TIME_LOCALE } from './date-time-adapter.class';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
/**
|
|
9
|
-
* Matches strings that have the form of a valid RFC 3339 string
|
|
10
|
-
* (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date
|
|
11
|
-
* because the regex will match strings an with out of bounds month, date, etc.
|
|
12
|
-
*/
|
|
13
|
-
const ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:[+-]\d{2}:\d{2}))?)?$/;
|
|
14
|
-
export class NativeDateTimeAdapter extends DateTimeAdapter {
|
|
15
|
-
constructor() {
|
|
16
|
-
super();
|
|
17
|
-
this.platform = inject(Platform);
|
|
18
|
-
this.owlDateTimeLocale = inject(OWL_DATE_TIME_LOCALE, { optional: true });
|
|
19
|
-
super.setLocale(this.owlDateTimeLocale);
|
|
20
|
-
this._clampDate = this.platform.TRIDENT || this.platform.EDGE;
|
|
21
|
-
}
|
|
22
|
-
getYear(date) {
|
|
23
|
-
return date.getFullYear();
|
|
24
|
-
}
|
|
25
|
-
getMonth(date) {
|
|
26
|
-
return date.getMonth();
|
|
27
|
-
}
|
|
28
|
-
getDay(date) {
|
|
29
|
-
return date.getDay();
|
|
30
|
-
}
|
|
31
|
-
getDate(date) {
|
|
32
|
-
return date.getDate();
|
|
33
|
-
}
|
|
34
|
-
getHours(date) {
|
|
35
|
-
return date.getHours();
|
|
36
|
-
}
|
|
37
|
-
getMinutes(date) {
|
|
38
|
-
return date.getMinutes();
|
|
39
|
-
}
|
|
40
|
-
getSeconds(date) {
|
|
41
|
-
return date.getSeconds();
|
|
42
|
-
}
|
|
43
|
-
getTime(date) {
|
|
44
|
-
return date.getTime();
|
|
45
|
-
}
|
|
46
|
-
getNumDaysInMonth(date) {
|
|
47
|
-
return getNumDaysInMonth(date);
|
|
48
|
-
}
|
|
49
|
-
differenceInCalendarDays(dateLeft, dateRight) {
|
|
50
|
-
if (this.isValid(dateLeft) && this.isValid(dateRight)) {
|
|
51
|
-
const dateLeftStartOfDay = this.createDate(this.getYear(dateLeft), this.getMonth(dateLeft), this.getDate(dateLeft));
|
|
52
|
-
const dateRightStartOfDay = this.createDate(this.getYear(dateRight), this.getMonth(dateRight), this.getDate(dateRight));
|
|
53
|
-
const timeStampLeft = this.getTime(dateLeftStartOfDay) - dateLeftStartOfDay.getTimezoneOffset() * this.milliseondsInMinute;
|
|
54
|
-
const timeStampRight = this.getTime(dateRightStartOfDay) - dateRightStartOfDay.getTimezoneOffset() * this.milliseondsInMinute;
|
|
55
|
-
return Math.round((timeStampLeft - timeStampRight) / this.millisecondsInDay);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
getYearName(date) {
|
|
62
|
-
if (SUPPORTS_INTL_API) {
|
|
63
|
-
const dtf = new Intl.DateTimeFormat(this.getLocale(), {
|
|
64
|
-
year: 'numeric',
|
|
65
|
-
timeZone: 'utc'
|
|
66
|
-
});
|
|
67
|
-
return this.stripDirectionalityCharacters(this._format(dtf, date));
|
|
68
|
-
}
|
|
69
|
-
return String(this.getYear(date));
|
|
70
|
-
}
|
|
71
|
-
getMonthNames(style) {
|
|
72
|
-
if (SUPPORTS_INTL_API) {
|
|
73
|
-
const dtf = new Intl.DateTimeFormat(this.getLocale(), {
|
|
74
|
-
month: style,
|
|
75
|
-
timeZone: 'utc'
|
|
76
|
-
});
|
|
77
|
-
return range(12, (i) => this.stripDirectionalityCharacters(this._format(dtf, new Date(2017, i, 1))));
|
|
78
|
-
}
|
|
79
|
-
return DEFAULT_MONTH_NAMES[style];
|
|
80
|
-
}
|
|
81
|
-
getDayOfWeekNames(style) {
|
|
82
|
-
if (SUPPORTS_INTL_API) {
|
|
83
|
-
const dtf = new Intl.DateTimeFormat(this.getLocale(), {
|
|
84
|
-
weekday: style,
|
|
85
|
-
timeZone: 'utc'
|
|
86
|
-
});
|
|
87
|
-
return range(7, (i) => this.stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));
|
|
88
|
-
}
|
|
89
|
-
return DEFAULT_DAY_OF_WEEK_NAMES[style];
|
|
90
|
-
}
|
|
91
|
-
getDateNames() {
|
|
92
|
-
if (SUPPORTS_INTL_API) {
|
|
93
|
-
const dtf = new Intl.DateTimeFormat(this.getLocale(), {
|
|
94
|
-
day: 'numeric',
|
|
95
|
-
timeZone: 'utc'
|
|
96
|
-
});
|
|
97
|
-
return range(31, (i) => this.stripDirectionalityCharacters(this._format(dtf, new Date(2017, 0, i + 1))));
|
|
98
|
-
}
|
|
99
|
-
return DEFAULT_DATE_NAMES;
|
|
100
|
-
}
|
|
101
|
-
toIso8601(date) {
|
|
102
|
-
return date.toISOString();
|
|
103
|
-
}
|
|
104
|
-
isEqual(dateLeft, dateRight) {
|
|
105
|
-
if (this.isValid(dateLeft) && this.isValid(dateRight)) {
|
|
106
|
-
return dateLeft.getTime() === dateRight.getTime();
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
return false;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
isSameDay(dateLeft, dateRight) {
|
|
113
|
-
if (this.isValid(dateLeft) && this.isValid(dateRight)) {
|
|
114
|
-
const dateLeftStartOfDay = this.clone(dateLeft);
|
|
115
|
-
const dateRightStartOfDay = this.clone(dateRight);
|
|
116
|
-
dateLeftStartOfDay.setHours(0, 0, 0, 0);
|
|
117
|
-
dateRightStartOfDay.setHours(0, 0, 0, 0);
|
|
118
|
-
return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
isValid(date) {
|
|
125
|
-
return date && !isNaN(date.getTime());
|
|
126
|
-
}
|
|
127
|
-
invalid() {
|
|
128
|
-
return new Date(NaN);
|
|
129
|
-
}
|
|
130
|
-
isDateInstance(obj) {
|
|
131
|
-
return obj instanceof Date;
|
|
132
|
-
}
|
|
133
|
-
addCalendarYears(date, amount) {
|
|
134
|
-
return this.addCalendarMonths(date, amount * 12);
|
|
135
|
-
}
|
|
136
|
-
addCalendarMonths(date, amount) {
|
|
137
|
-
const result = this.clone(date);
|
|
138
|
-
amount = Number(amount);
|
|
139
|
-
const desiredMonth = result.getMonth() + amount;
|
|
140
|
-
const dateWithDesiredMonth = new Date(0);
|
|
141
|
-
dateWithDesiredMonth.setFullYear(result.getFullYear(), desiredMonth, 1);
|
|
142
|
-
dateWithDesiredMonth.setHours(0, 0, 0, 0);
|
|
143
|
-
const daysInMonth = this.getNumDaysInMonth(dateWithDesiredMonth);
|
|
144
|
-
// Set the last day of the new month
|
|
145
|
-
// if the original date was the last day of the longer month
|
|
146
|
-
result.setMonth(desiredMonth, Math.min(daysInMonth, result.getDate()));
|
|
147
|
-
return result;
|
|
148
|
-
}
|
|
149
|
-
addCalendarDays(date, amount) {
|
|
150
|
-
const result = this.clone(date);
|
|
151
|
-
amount = Number(amount);
|
|
152
|
-
result.setDate(result.getDate() + amount);
|
|
153
|
-
return result;
|
|
154
|
-
}
|
|
155
|
-
setHours(date, amount) {
|
|
156
|
-
const result = this.clone(date);
|
|
157
|
-
result.setHours(amount);
|
|
158
|
-
return result;
|
|
159
|
-
}
|
|
160
|
-
setMinutes(date, amount) {
|
|
161
|
-
const result = this.clone(date);
|
|
162
|
-
result.setMinutes(amount);
|
|
163
|
-
return result;
|
|
164
|
-
}
|
|
165
|
-
setSeconds(date, amount) {
|
|
166
|
-
const result = this.clone(date);
|
|
167
|
-
result.setSeconds(amount);
|
|
168
|
-
return result;
|
|
169
|
-
}
|
|
170
|
-
createDate(year, month, date, hours = 0, minutes = 0, seconds = 0) {
|
|
171
|
-
return createDate(year, month, date, hours, minutes, seconds);
|
|
172
|
-
}
|
|
173
|
-
clone(date) {
|
|
174
|
-
return this.createDate(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHours(date), this.getMinutes(date), this.getSeconds(date));
|
|
175
|
-
}
|
|
176
|
-
now() {
|
|
177
|
-
return new Date();
|
|
178
|
-
}
|
|
179
|
-
format(date, displayFormat) {
|
|
180
|
-
if (!this.isValid(date)) {
|
|
181
|
-
throw Error('JSNativeDate: Cannot format invalid date.');
|
|
182
|
-
}
|
|
183
|
-
if (SUPPORTS_INTL_API) {
|
|
184
|
-
if (this._clampDate && (date.getFullYear() < 1 || date.getFullYear() > 9999)) {
|
|
185
|
-
date = this.clone(date);
|
|
186
|
-
date.setFullYear(Math.max(1, Math.min(9999, date.getFullYear())));
|
|
187
|
-
}
|
|
188
|
-
displayFormat = { ...displayFormat, timeZone: 'utc' };
|
|
189
|
-
const dtf = new Intl.DateTimeFormat(this.getLocale(), displayFormat);
|
|
190
|
-
return this.stripDirectionalityCharacters(this._format(dtf, date));
|
|
191
|
-
}
|
|
192
|
-
return this.stripDirectionalityCharacters(date.toDateString());
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings
|
|
196
|
-
* (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an
|
|
197
|
-
* invalid date for all other values.
|
|
198
|
-
*/
|
|
199
|
-
deserialize(value) {
|
|
200
|
-
if (value === '') {
|
|
201
|
-
return null;
|
|
202
|
-
}
|
|
203
|
-
// The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the
|
|
204
|
-
// string is the right format first.
|
|
205
|
-
if (typeof value === 'string' && ISO_8601_REGEX.test(value)) {
|
|
206
|
-
const date = new Date(value);
|
|
207
|
-
if (this.isValid(date)) {
|
|
208
|
-
return date;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
return super.deserialize(value);
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while
|
|
215
|
-
* other browsers do not. We remove them to make output consistent and because they interfere with
|
|
216
|
-
* date parsing.
|
|
217
|
-
*/
|
|
218
|
-
stripDirectionalityCharacters(str) {
|
|
219
|
-
return str.replace(/[\u200e\u200f]/g, '');
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* When converting Date object to string, javascript built-in functions may return wrong
|
|
223
|
-
* results because it applies its internal DST rules. The DST rules around the world change
|
|
224
|
-
* very frequently, and the current valid rule is not always valid in previous years though.
|
|
225
|
-
* We work around this problem building a new Date object which has its internal UTC
|
|
226
|
-
* representation with the local date and time.
|
|
227
|
-
*/
|
|
228
|
-
_format(dtf, date) {
|
|
229
|
-
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
|
|
230
|
-
return dtf.format(d);
|
|
231
|
-
}
|
|
232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NativeDateTimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
233
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NativeDateTimeAdapter }); }
|
|
234
|
-
}
|
|
235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NativeDateTimeAdapter, decorators: [{
|
|
236
|
-
type: Injectable
|
|
237
|
-
}], ctorParameters: () => [] });
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtdGltZS1hZGFwdGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGlja2VyL3NyYy9saWIvZGF0ZS10aW1lL2FkYXB0ZXIvbmF0aXZlLWRhdGUtdGltZS1hZGFwdGVyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNsQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRWxGOzs7O0dBSUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxnRkFBZ0YsQ0FBQztBQUd4RyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBcUI7SUFROUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVJPLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFPcEYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2hF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aUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLE9BQU8sQ0FBQyxHQUF3QixFQUFFLElBQVU7UUFDbEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQ2hCLElBQUksQ0FBQyxHQUFHLENBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUN2QixDQUNGLENBQUM7UUFDRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQzsrR0F2U1UscUJBQXFCO21IQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJyYXkudXRpbHMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9EQVRFX05BTUVTLFxuICBERUZBVUxUX0RBWV9PRl9XRUVLX05BTUVTLFxuICBERUZBVUxUX01PTlRIX05BTUVTLFxuICBTVVBQT1JUU19JTlRMX0FQSVxufSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlRGF0ZSwgZ2V0TnVtRGF5c0luTW9udGggfSBmcm9tICcuLi8uLi91dGlscy9kYXRlLnV0aWxzJztcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciwgT1dMX0RBVEVfVElNRV9MT0NBTEUgfSBmcm9tICcuL2RhdGUtdGltZS1hZGFwdGVyLmNsYXNzJztcblxuLyoqXG4gKiBNYXRjaGVzIHN0cmluZ3MgdGhhdCBoYXZlIHRoZSBmb3JtIG9mIGEgdmFsaWQgUkZDIDMzMzkgc3RyaW5nXG4gKiAoaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkpLiBOb3RlIHRoYXQgdGhlIHN0cmluZyBtYXkgbm90IGFjdHVhbGx5IGJlIGEgdmFsaWQgZGF0ZVxuICogYmVjYXVzZSB0aGUgcmVnZXggd2lsbCBtYXRjaCBzdHJpbmdzIGFuIHdpdGggb3V0IG9mIGJvdW5kcyBtb250aCwgZGF0ZSwgZXRjLlxuICovXG5jb25zdCBJU09fODYwMV9SRUdFWCA9IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0oPzpUXFxkezJ9OlxcZHsyfTpcXGR7Mn0oPzpcXC5cXGQrKT8oPzpafCg/OlsrLV1cXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVUaW1lQWRhcHRlciBleHRlbmRzIERhdGVUaW1lQWRhcHRlcjxEYXRlPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3dsRGF0ZVRpbWVMb2NhbGUgPSBpbmplY3QoT1dMX0RBVEVfVElNRV9MT0NBTEUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqIFdoZXRoZXIgdG8gY2xhbXAgdGhlIGRhdGUgYmV0d2VlbiAxIGFuZCA5OTk5IHRvIGF2b2lkIElFIGFuZCBFZGdlIGVycm9ycy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfY2xhbXBEYXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgc3VwZXIuc2V0TG9jYWxlKHRoaXMub3dsRGF0ZVRpbWVMb2NhbGUpO1xuICAgIHRoaXMuX2NsYW1wRGF0ZSA9IHRoaXMucGxhdGZvcm0uVFJJREVOVCB8fCB0aGlzLnBsYXRmb3JtLkVER0U7XG4gIH1cblxuICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF5KGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpO1xuICB9XG5cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEhvdXJzKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldEhvdXJzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWludXRlcyhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRNaW51dGVzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2Vjb25kcyhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRTZWNvbmRzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGltZShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGdldE51bURheXNJbk1vbnRoKGRhdGUpO1xuICB9XG5cbiAgcHVibGljIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhkYXRlTGVmdDogRGF0ZSwgZGF0ZVJpZ2h0OiBEYXRlKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGVMZWZ0KSAmJiB0aGlzLmlzVmFsaWQoZGF0ZVJpZ2h0KSkge1xuICAgICAgY29uc3QgZGF0ZUxlZnRTdGFydE9mRGF5ID0gdGhpcy5jcmVhdGVEYXRlKFxuICAgICAgICB0aGlzLmdldFllYXIoZGF0ZUxlZnQpLFxuICAgICAgICB0aGlzLmdldE1vbnRoKGRhdGVMZWZ0KSxcbiAgICAgICAgdGhpcy5nZXREYXRlKGRhdGVMZWZ0KVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGRhdGVSaWdodFN0YXJ0T2ZEYXkgPSB0aGlzLmNyZWF0ZURhdGUoXG4gICAgICAgIHRoaXMuZ2V0WWVhcihkYXRlUmlnaHQpLFxuICAgICAgICB0aGlzLmdldE1vbnRoKGRhdGVSaWdodCksXG4gICAgICAgIHRoaXMuZ2V0RGF0ZShkYXRlUmlnaHQpXG4gICAgICApO1xuXG4gICAgICBjb25zdCB0aW1lU3RhbXBMZWZ0ID1cbiAgICAgICAgdGhpcy5nZXRUaW1lKGRhdGVMZWZ0U3RhcnRPZkRheSkgLSBkYXRlTGVmdFN0YXJ0T2ZEYXkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIHRoaXMubWlsbGlzZW9uZHNJbk1pbnV0ZTtcbiAgICAgIGNvbnN0IHRpbWVTdGFtcFJpZ2h0ID1cbiAgICAgICAgdGhpcy5nZXRUaW1lKGRhdGVSaWdodFN0YXJ0T2ZEYXkpIC0gZGF0ZVJpZ2h0U3RhcnRPZkRheS5nZXRUaW1lem9uZU9mZnNldCgpICogdGhpcy5taWxsaXNlb25kc0luTWludXRlO1xuICAgICAgcmV0dXJuIE1hdGgucm91bmQoKHRpbWVTdGFtcExlZnQgLSB0aW1lU3RhbXBSaWdodCkgLyB0aGlzLm1pbGxpc2Vjb25kc0luRGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFllYXJOYW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGlmIChTVVBQT1JUU19JTlRMX0FQSSkge1xuICAgICAgY29uc3QgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5nZXRMb2NhbGUoKSwge1xuICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgIHRpbWVab25lOiAndXRjJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0aGlzLl9mb3JtYXQoZHRmLCBkYXRlKSk7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodGhpcy5nZXRZZWFyKGRhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoU1VQUE9SVFNfSU5UTF9BUEkpIHtcbiAgICAgIGNvbnN0IGR0ZiA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuZ2V0TG9jYWxlKCksIHtcbiAgICAgICAgbW9udGg6IHN0eWxlLFxuICAgICAgICB0aW1lWm9uZTogJ3V0YydcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJhbmdlKDEyLCAoaSkgPT4gdGhpcy5zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0aGlzLl9mb3JtYXQoZHRmLCBuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIERFRkFVTFRfTU9OVEhfTkFNRVNbc3R5bGVdO1xuICB9XG5cbiAgcHVibGljIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoU1VQUE9SVFNfSU5UTF9BUEkpIHtcbiAgICAgIGNvbnN0IGR0ZiA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuZ2V0TG9jYWxlKCksIHtcbiAgICAgICAgd2Vla2RheTogc3R5bGUsXG4gICAgICAgIHRpbWVab25lOiAndXRjJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmFuZ2UoNywgKGkpID0+IHRoaXMuc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGR0ZiwgbmV3IERhdGUoMjAxNywgMCwgaSArIDEpKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBERUZBVUxUX0RBWV9PRl9XRUVLX05BTUVTW3N0eWxlXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgaWYgKFNVUFBPUlRTX0lOVExfQVBJKSB7XG4gICAgICBjb25zdCBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmdldExvY2FsZSgpLCB7XG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICB0aW1lWm9uZTogJ3V0YydcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJhbmdlKDMxLCAoaSkgPT4gdGhpcy5zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0aGlzLl9mb3JtYXQoZHRmLCBuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKSk7XG4gICAgfVxuICAgIHJldHVybiBERUZBVUxUX0RBVEVfTkFNRVM7XG4gIH1cblxuICBwdWJsaWMgdG9Jc284NjAxKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XG4gIH1cblxuICBwdWJsaWMgaXNFcXVhbChkYXRlTGVmdDogRGF0ZSwgZGF0ZVJpZ2h0OiBEYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZChkYXRlTGVmdCkgJiYgdGhpcy5pc1ZhbGlkKGRhdGVSaWdodCkpIHtcbiAgICAgIHJldHVybiBkYXRlTGVmdC5nZXRUaW1lKCkgPT09IGRhdGVSaWdodC5nZXRUaW1lKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNTYW1lRGF5KGRhdGVMZWZ0OiBEYXRlLCBkYXRlUmlnaHQ6IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGVMZWZ0KSAmJiB0aGlzLmlzVmFsaWQoZGF0ZVJpZ2h0KSkge1xuICAgICAgY29uc3QgZGF0ZUxlZnRTdGFydE9mRGF5ID0gdGhpcy5jbG9uZShkYXRlTGVmdCk7XG4gICAgICBjb25zdCBkYXRlUmlnaHRTdGFydE9mRGF5ID0gdGhpcy5jbG9uZShkYXRlUmlnaHQpO1xuICAgICAgZGF0ZUxlZnRTdGFydE9mRGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgZGF0ZVJpZ2h0U3RhcnRPZkRheS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgIHJldHVybiBkYXRlTGVmdFN0YXJ0T2ZEYXkuZ2V0VGltZSgpID09PSBkYXRlUmlnaHRTdGFydE9mRGF5LmdldFRpbWUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1ZhbGlkKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgcHVibGljIGludmFsaWQoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiB1bmtub3duKTogb2JqIGlzIERhdGUge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDYWxlbmRhck1vbnRocyhkYXRlLCBhbW91bnQgKiAxMik7XG4gIH1cblxuICBwdWJsaWMgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmNsb25lKGRhdGUpO1xuICAgIGFtb3VudCA9IE51bWJlcihhbW91bnQpO1xuXG4gICAgY29uc3QgZGVzaXJlZE1vbnRoID0gcmVzdWx0LmdldE1vbnRoKCkgKyBhbW91bnQ7XG4gICAgY29uc3QgZGF0ZVdpdGhEZXNpcmVkTW9udGggPSBuZXcgRGF0ZSgwKTtcbiAgICBkYXRlV2l0aERlc2lyZWRNb250aC5zZXRGdWxsWWVhcihyZXN1bHQuZ2V0RnVsbFllYXIoKSwgZGVzaXJlZE1vbnRoLCAxKTtcbiAgICBkYXRlV2l0aERlc2lyZWRNb250aC5zZXRIb3VycygwLCAwLCAwLCAwKTtcblxuICAgIGNvbnN0IGRheXNJbk1vbnRoID0gdGhpcy5nZXROdW1EYXlzSW5Nb250aChkYXRlV2l0aERlc2lyZWRNb250aCk7XG4gICAgLy8gU2V0IHRoZSBsYXN0IGRheSBvZiB0aGUgbmV3IG1vbnRoXG4gICAgLy8gaWYgdGhlIG9yaWdpbmFsIGRhdGUgd2FzIHRoZSBsYXN0IGRheSBvZiB0aGUgbG9uZ2VyIG1vbnRoXG4gICAgcmVzdWx0LnNldE1vbnRoKGRlc2lyZWRNb250aCwgTWF0aC5taW4oZGF5c0luTW9udGgsIHJlc3VsdC5nZXREYXRlKCkpKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY2xvbmUoZGF0ZSk7XG4gICAgYW1vdW50ID0gTnVtYmVyKGFtb3VudCk7XG4gICAgcmVzdWx0LnNldERhdGUocmVzdWx0LmdldERhdGUoKSArIGFtb3VudCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRIb3VycyhkYXRlOiBEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY2xvbmUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldEhvdXJzKGFtb3VudCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNaW51dGVzKGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jbG9uZShkYXRlKTtcbiAgICByZXN1bHQuc2V0TWludXRlcyhhbW91bnQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0U2Vjb25kcyhkYXRlOiBEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY2xvbmUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldFNlY29uZHMoYW1vdW50KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZURhdGUoXG4gICAgeWVhcjogbnVtYmVyLFxuICAgIG1vbnRoOiBudW1iZXIsXG4gICAgZGF0ZTogbnVtYmVyLFxuICAgIGhvdXJzOiBudW1iZXIgPSAwLFxuICAgIG1pbnV0ZXM6IG51bWJlciA9IDAsXG4gICAgc2Vjb25kczogbnVtYmVyID0gMFxuICApOiBEYXRlIHtcbiAgICByZXR1cm4gY3JlYXRlRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpO1xuICB9XG5cbiAgcHVibGljIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlKFxuICAgICAgdGhpcy5nZXRZZWFyKGRhdGUpLFxuICAgICAgdGhpcy5nZXRNb250aChkYXRlKSxcbiAgICAgIHRoaXMuZ2V0RGF0ZShkYXRlKSxcbiAgICAgIHRoaXMuZ2V0SG91cnMoZGF0ZSksXG4gICAgICB0aGlzLmdldE1pbnV0ZXMoZGF0ZSksXG4gICAgICB0aGlzLmdldFNlY29uZHMoZGF0ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5vdygpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXQoZGF0ZTogRGF0ZSwgZGlzcGxheUZvcm1hdDogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICB0aHJvdyBFcnJvcignSlNOYXRpdmVEYXRlOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoU1VQUE9SVFNfSU5UTF9BUEkpIHtcbiAgICAgIGlmICh0aGlzLl9jbGFtcERhdGUgJiYgKGRhdGUuZ2V0RnVsbFllYXIoKSA8IDEgfHwgZGF0ZS5nZXRGdWxsWWVhcigpID4gOTk5OSkpIHtcbiAgICAgICAgZGF0ZSA9IHRoaXMuY2xvbmUoZGF0ZSk7XG4gICAgICAgIGRhdGUuc2V0RnVsbFllYXIoTWF0aC5tYXgoMSwgTWF0aC5taW4oOTk5OSwgZGF0ZS5nZXRGdWxsWWVhcigpKSkpO1xuICAgICAgfVxuXG4gICAgICBkaXNwbGF5Rm9ybWF0ID0geyAuLi5kaXNwbGF5Rm9ybWF0LCB0aW1lWm9uZTogJ3V0YycgfTtcbiAgICAgIGNvbnN0IGR0ZiA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuZ2V0TG9jYWxlKCksIGRpc3BsYXlGb3JtYXQpO1xuICAgICAgcmV0dXJuIHRoaXMuc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGR0ZiwgZGF0ZSkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKGRhdGUudG9EYXRlU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGlmIGdpdmVuIGEgdmFsaWQgRGF0ZSBvciBudWxsLiBEZXNlcmlhbGl6ZXMgdmFsaWQgSVNPIDg2MDEgc3RyaW5nc1xuICAgKiAoaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBpbnRvIHZhbGlkIERhdGVzIGFuZCBlbXB0eSBzdHJpbmcgaW50byBudWxsLiBSZXR1cm5zIGFuXG4gICAqIGludmFsaWQgZGF0ZSBmb3IgYWxsIG90aGVyIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZSh2YWx1ZTogdW5rbm93bik6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBUaGUgYERhdGVgIGNvbnN0cnVjdG9yIGFjY2VwdHMgZm9ybWF0cyBvdGhlciB0aGFuIElTTyA4NjAxLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVcbiAgICAvLyBzdHJpbmcgaXMgdGhlIHJpZ2h0IGZvcm1hdCBmaXJzdC5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBJU09fODYwMV9SRUdFWC50ZXN0KHZhbHVlKSkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJpcCBvdXQgdW5pY29kZSBMVFIgYW5kIFJUTCBjaGFyYWN0ZXJzLiBFZGdlIGFuZCBJRSBpbnNlcnQgdGhlc2UgaW50byBmb3JtYXR0ZWQgZGF0ZXMgd2hpbGVcbiAgICogb3RoZXIgYnJvd3NlcnMgZG8gbm90LiBXZSByZW1vdmUgdGhlbSB0byBtYWtlIG91dHB1dCBjb25zaXN0ZW50IGFuZCBiZWNhdXNlIHRoZXkgaW50ZXJmZXJlIHdpdGhcbiAgICogZGF0ZSBwYXJzaW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBzdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bXFx1MjAwZVxcdTIwMGZdL2csICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGNvbnZlcnRpbmcgRGF0ZSBvYmplY3QgdG8gc3RyaW5nLCBqYXZhc2NyaXB0IGJ1aWx0LWluIGZ1bmN0aW9ucyBtYXkgcmV0dXJuIHdyb25nXG4gICAqIHJlc3VsdHMgYmVjYXVzZSBpdCBhcHBsaWVzIGl0cyBpbnRlcm5hbCBEU1QgcnVsZXMuIFRoZSBEU1QgcnVsZXMgYXJvdW5kIHRoZSB3b3JsZCBjaGFuZ2VcbiAgICogdmVyeSBmcmVxdWVudGx5LCBhbmQgdGhlIGN1cnJlbnQgdmFsaWQgcnVsZSBpcyBub3QgYWx3YXlzIHZhbGlkIGluIHByZXZpb3VzIHllYXJzIHRob3VnaC5cbiAgICogV2Ugd29yayBhcm91bmQgdGhpcyBwcm9ibGVtIGJ1aWxkaW5nIGEgbmV3IERhdGUgb2JqZWN0IHdoaWNoIGhhcyBpdHMgaW50ZXJuYWwgVVRDXG4gICAqIHJlcHJlc2VudGF0aW9uIHdpdGggdGhlIGxvY2FsIGRhdGUgYW5kIHRpbWUuXG4gICAqL1xuICBwcml2YXRlIF9mb3JtYXQoZHRmOiBJbnRsLkRhdGVUaW1lRm9ybWF0LCBkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoXG4gICAgICBEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKVxuICAgICAgKVxuICAgICk7XG4gICAgcmV0dXJuIGR0Zi5mb3JtYXQoZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const OWL_NATIVE_DATE_TIME_FORMATS = {
|
|
2
|
-
fullPickerInput: {
|
|
3
|
-
year: 'numeric',
|
|
4
|
-
month: 'numeric',
|
|
5
|
-
day: 'numeric',
|
|
6
|
-
hour: 'numeric',
|
|
7
|
-
minute: 'numeric'
|
|
8
|
-
},
|
|
9
|
-
datePickerInput: { year: 'numeric', month: 'numeric', day: 'numeric' },
|
|
10
|
-
timePickerInput: { hour: 'numeric', minute: 'numeric' },
|
|
11
|
-
monthYearLabel: { year: 'numeric', month: 'short' },
|
|
12
|
-
dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },
|
|
13
|
-
monthYearA11yLabel: { year: 'numeric', month: 'long' }
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtdGltZS1mb3JtYXQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvYWRhcHRlci9uYXRpdmUtZGF0ZS10aW1lLWZvcm1hdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBdUI7SUFDOUQsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsU0FBUztRQUNoQixHQUFHLEVBQUUsU0FBUztRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsTUFBTSxFQUFFLFNBQVM7S0FDbEI7SUFDRCxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRTtJQUN0RSxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7SUFDdkQsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ25ELGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFO0lBQ2pFLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0NBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPd2xEYXRlVGltZUZvcm1hdHMgfSBmcm9tICcuL2RhdGUtdGltZS1mb3JtYXQuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgT1dMX05BVElWRV9EQVRFX1RJTUVfRk9STUFUUzogT3dsRGF0ZVRpbWVGb3JtYXRzID0ge1xuICBmdWxsUGlja2VySW5wdXQ6IHtcbiAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgbW9udGg6ICdudW1lcmljJyxcbiAgICBkYXk6ICdudW1lcmljJyxcbiAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgbWludXRlOiAnbnVtZXJpYydcbiAgfSxcbiAgZGF0ZVBpY2tlcklucHV0OiB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdudW1lcmljJywgZGF5OiAnbnVtZXJpYycgfSxcbiAgdGltZVBpY2tlcklucHV0OiB7IGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYycgfSxcbiAgbW9udGhZZWFyTGFiZWw6IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJ3Nob3J0JyB9LFxuICBkYXRlQTExeUxhYmVsOiB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdsb25nJywgZGF5OiAnbnVtZXJpYycgfSxcbiAgbW9udGhZZWFyQTExeUxhYmVsOiB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdsb25nJyB9XG59O1xuIl19
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { PlatformModule } from '@angular/cdk/platform';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { DateTimeAdapter } from './date-time-adapter.class';
|
|
4
|
-
import { OWL_DATE_TIME_FORMATS } from './date-time-format.class';
|
|
5
|
-
import { NativeDateTimeAdapter } from './native-date-time-adapter.class';
|
|
6
|
-
import { OWL_NATIVE_DATE_TIME_FORMATS } from './native-date-time-format.class';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class NativeDateTimeModule {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NativeDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: NativeDateTimeModule, imports: [PlatformModule] }); }
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NativeDateTimeModule, providers: [{ provide: DateTimeAdapter, useClass: NativeDateTimeAdapter }], imports: [PlatformModule] }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NativeDateTimeModule, decorators: [{
|
|
14
|
-
type: NgModule,
|
|
15
|
-
args: [{
|
|
16
|
-
imports: [PlatformModule],
|
|
17
|
-
providers: [{ provide: DateTimeAdapter, useClass: NativeDateTimeAdapter }]
|
|
18
|
-
}]
|
|
19
|
-
}] });
|
|
20
|
-
export class OwlNativeDateTimeModule {
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlNativeDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
22
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: OwlNativeDateTimeModule, imports: [NativeDateTimeModule] }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlNativeDateTimeModule, providers: [
|
|
24
|
-
{
|
|
25
|
-
provide: OWL_DATE_TIME_FORMATS,
|
|
26
|
-
useValue: OWL_NATIVE_DATE_TIME_FORMATS
|
|
27
|
-
}
|
|
28
|
-
], imports: [NativeDateTimeModule] }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlNativeDateTimeModule, decorators: [{
|
|
31
|
-
type: NgModule,
|
|
32
|
-
args: [{
|
|
33
|
-
imports: [NativeDateTimeModule],
|
|
34
|
-
providers: [
|
|
35
|
-
{
|
|
36
|
-
provide: OWL_DATE_TIME_FORMATS,
|
|
37
|
-
useValue: OWL_NATIVE_DATE_TIME_FORMATS
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}]
|
|
41
|
-
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtdGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvYWRhcHRlci9uYXRpdmUtZGF0ZS10aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBTS9FLE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjtnSEFBcEIsb0JBQW9CLFlBSHJCLGNBQWM7Z0hBR2Isb0JBQW9CLGFBRnBCLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLFlBRGhFLGNBQWM7OzRGQUdiLG9CQUFvQjtrQkFKaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztpQkFDM0U7O0FBWUQsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO2dIQUF2Qix1QkFBdUIsWUFYdkIsb0JBQW9CO2dIQVdwQix1QkFBdUIsYUFQdkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsNEJBQTRCO2FBQ3ZDO1NBQ0YsWUFOUyxvQkFBb0I7OzRGQVFuQix1QkFBdUI7a0JBVG5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsNEJBQTRCO3lCQUN2QztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVGltZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtdGltZS1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7IE9XTF9EQVRFX1RJTUVfRk9STUFUUyB9IGZyb20gJy4vZGF0ZS10aW1lLWZvcm1hdC5jbGFzcyc7XG5pbXBvcnQgeyBOYXRpdmVEYXRlVGltZUFkYXB0ZXIgfSBmcm9tICcuL25hdGl2ZS1kYXRlLXRpbWUtYWRhcHRlci5jbGFzcyc7XG5pbXBvcnQgeyBPV0xfTkFUSVZFX0RBVEVfVElNRV9GT1JNQVRTIH0gZnJvbSAnLi9uYXRpdmUtZGF0ZS10aW1lLWZvcm1hdC5jbGFzcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtQbGF0Zm9ybU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRGF0ZVRpbWVBZGFwdGVyLCB1c2VDbGFzczogTmF0aXZlRGF0ZVRpbWVBZGFwdGVyIH1dXG59KVxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVUaW1lTW9kdWxlIHt9XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtOYXRpdmVEYXRlVGltZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9XTF9EQVRFX1RJTUVfRk9STUFUUyxcbiAgICAgIHVzZVZhbHVlOiBPV0xfTkFUSVZFX0RBVEVfVElNRV9GT1JNQVRTXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE93bE5hdGl2ZURhdGVUaW1lTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import { Platform } from '@angular/cdk/platform';
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { range } from '../../../utils/array.utils';
|
|
4
|
-
import { DEFAULT_DATE_NAMES, DEFAULT_DAY_OF_WEEK_NAMES, DEFAULT_MONTH_NAMES, SUPPORTS_INTL_API } from '../../../utils/constants';
|
|
5
|
-
import { createDate, getNumDaysInMonth } from '../../../utils/date.utils';
|
|
6
|
-
import { DateTimeAdapter, OWL_DATE_TIME_LOCALE } from '../date-time-adapter.class';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class UnixTimestampDateTimeAdapter extends DateTimeAdapter {
|
|
9
|
-
constructor() {
|
|
10
|
-
super();
|
|
11
|
-
this.platform = inject(Platform);
|
|
12
|
-
this.owlDateTimeLocale = inject(OWL_DATE_TIME_LOCALE, { optional: true });
|
|
13
|
-
super.setLocale(this.owlDateTimeLocale);
|
|
14
|
-
this._clampDate = this.platform.TRIDENT || this.platform.EDGE;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while
|
|
18
|
-
* other browsers do not. We remove them to make output consistent and because they interfere with
|
|
19
|
-
* date parsing.
|
|
20
|
-
*/
|
|
21
|
-
static { this.search_ltr_rtl_pattern = '/[\u200e\u200f]/g'; }
|
|
22
|
-
static stripDirectionalityCharacters(str) {
|
|
23
|
-
return str.replace(UnixTimestampDateTimeAdapter.search_ltr_rtl_pattern, '');
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* When converting Date object to string, javascript built-in functions may return wrong
|
|
27
|
-
* results because it applies its internal DST rules. The DST rules around the world change
|
|
28
|
-
* very frequently, and the current valid rule is not always valid in previous years though.
|
|
29
|
-
* We work around this problem building a new Date object which has its internal UTC
|
|
30
|
-
* representation with the local date and time.
|
|
31
|
-
*/
|
|
32
|
-
static _format(dtf, date) {
|
|
33
|
-
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
|
|
34
|
-
return dtf.format(d);
|
|
35
|
-
}
|
|
36
|
-
addCalendarDays(date, amount) {
|
|
37
|
-
const result = new Date(date);
|
|
38
|
-
amount = Number(amount);
|
|
39
|
-
result.setDate(result.getDate() + amount);
|
|
40
|
-
return result.getTime();
|
|
41
|
-
}
|
|
42
|
-
addCalendarMonths(date, amount) {
|
|
43
|
-
const result = new Date(date);
|
|
44
|
-
amount = Number(amount);
|
|
45
|
-
const desiredMonth = result.getMonth() + amount;
|
|
46
|
-
const dateWithDesiredMonth = new Date(0);
|
|
47
|
-
dateWithDesiredMonth.setFullYear(result.getFullYear(), desiredMonth, 1);
|
|
48
|
-
dateWithDesiredMonth.setHours(0, 0, 0, 0);
|
|
49
|
-
const daysInMonth = this.getNumDaysInMonth(dateWithDesiredMonth.getTime());
|
|
50
|
-
// Set the last day of the new month
|
|
51
|
-
// if the original date was the last day of the longer month
|
|
52
|
-
result.setMonth(desiredMonth, Math.min(daysInMonth, result.getDate()));
|
|
53
|
-
return result.getTime();
|
|
54
|
-
}
|
|
55
|
-
addCalendarYears(date, amount) {
|
|
56
|
-
return this.addCalendarMonths(date, amount * 12);
|
|
57
|
-
}
|
|
58
|
-
clone(date) {
|
|
59
|
-
return date;
|
|
60
|
-
}
|
|
61
|
-
createDate(year, month, date, hours = 0, minutes = 0, seconds = 0) {
|
|
62
|
-
return createDate(year, month, date, hours, minutes, seconds).getTime();
|
|
63
|
-
}
|
|
64
|
-
differenceInCalendarDays(dateLeft, dateRight) {
|
|
65
|
-
if (this.isValid(dateLeft) && this.isValid(dateRight)) {
|
|
66
|
-
const dateLeftStartOfDay = this.createDate(this.getYear(dateLeft), this.getMonth(dateLeft), this.getDate(dateLeft));
|
|
67
|
-
const dateRightStartOfDay = this.createDate(this.getYear(dateRight), this.getMonth(dateRight), this.getDate(dateRight));
|
|
68
|
-
const timeStampLeft = this.getTime(dateLeftStartOfDay) - new Date(dateLeftStartOfDay).getTimezoneOffset() * this.milliseondsInMinute;
|
|
69
|
-
const timeStampRight = this.getTime(dateRightStartOfDay) -
|
|
70
|
-
new Date(dateRightStartOfDay).getTimezoneOffset() * this.milliseondsInMinute;
|
|
71
|
-
return Math.round((timeStampLeft - timeStampRight) / this.millisecondsInDay);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
format(date, displayFormat) {
|
|
78
|
-
if (!this.isValid(date)) {
|
|
79
|
-
throw Error('JSNativeDate: Cannot format invalid date.');
|
|
80
|
-
}
|
|
81
|
-
const jsDate = new Date(date);
|
|
82
|
-
if (SUPPORTS_INTL_API) {
|
|
83
|
-
if (this._clampDate && (jsDate.getFullYear() < 1 || jsDate.getFullYear() > 9999)) {
|
|
84
|
-
jsDate.setFullYear(Math.max(1, Math.min(9999, jsDate.getFullYear())));
|
|
85
|
-
}
|
|
86
|
-
displayFormat = { ...displayFormat, timeZone: 'utc' };
|
|
87
|
-
const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);
|
|
88
|
-
return UnixTimestampDateTimeAdapter.stripDirectionalityCharacters(UnixTimestampDateTimeAdapter._format(dtf, jsDate));
|
|
89
|
-
}
|
|
90
|
-
return UnixTimestampDateTimeAdapter.stripDirectionalityCharacters(jsDate.toDateString());
|
|
91
|
-
}
|
|
92
|
-
getDate(date) {
|
|
93
|
-
return new Date(date).getDate();
|
|
94
|
-
}
|
|
95
|
-
getDateNames() {
|
|
96
|
-
if (SUPPORTS_INTL_API) {
|
|
97
|
-
const dtf = new Intl.DateTimeFormat(this.locale, {
|
|
98
|
-
day: 'numeric',
|
|
99
|
-
timeZone: 'utc'
|
|
100
|
-
});
|
|
101
|
-
return range(31, (i) => UnixTimestampDateTimeAdapter.stripDirectionalityCharacters(UnixTimestampDateTimeAdapter._format(dtf, new Date(2017, 0, i + 1))));
|
|
102
|
-
}
|
|
103
|
-
return DEFAULT_DATE_NAMES;
|
|
104
|
-
}
|
|
105
|
-
getDay(date) {
|
|
106
|
-
return new Date(date).getDay();
|
|
107
|
-
}
|
|
108
|
-
getDayOfWeekNames(style) {
|
|
109
|
-
if (SUPPORTS_INTL_API) {
|
|
110
|
-
const dtf = new Intl.DateTimeFormat(this.locale, {
|
|
111
|
-
weekday: style,
|
|
112
|
-
timeZone: 'utc'
|
|
113
|
-
});
|
|
114
|
-
return range(7, (i) => UnixTimestampDateTimeAdapter.stripDirectionalityCharacters(UnixTimestampDateTimeAdapter._format(dtf, new Date(2017, 0, i + 1))));
|
|
115
|
-
}
|
|
116
|
-
return DEFAULT_DAY_OF_WEEK_NAMES[style];
|
|
117
|
-
}
|
|
118
|
-
getHours(date) {
|
|
119
|
-
return new Date(date).getHours();
|
|
120
|
-
}
|
|
121
|
-
getMinutes(date) {
|
|
122
|
-
return new Date(date).getMinutes();
|
|
123
|
-
}
|
|
124
|
-
getMonth(date) {
|
|
125
|
-
return new Date(date).getMonth();
|
|
126
|
-
}
|
|
127
|
-
getMonthNames(style) {
|
|
128
|
-
if (SUPPORTS_INTL_API) {
|
|
129
|
-
const dtf = new Intl.DateTimeFormat(this.locale, {
|
|
130
|
-
month: style,
|
|
131
|
-
timeZone: 'utc'
|
|
132
|
-
});
|
|
133
|
-
return range(12, (i) => UnixTimestampDateTimeAdapter.stripDirectionalityCharacters(UnixTimestampDateTimeAdapter._format(dtf, new Date(2017, i, 1))));
|
|
134
|
-
}
|
|
135
|
-
return DEFAULT_MONTH_NAMES[style];
|
|
136
|
-
}
|
|
137
|
-
getNumDaysInMonth(date) {
|
|
138
|
-
return getNumDaysInMonth(new Date(date));
|
|
139
|
-
}
|
|
140
|
-
getSeconds(date) {
|
|
141
|
-
return new Date(date).getSeconds();
|
|
142
|
-
}
|
|
143
|
-
getTime(date) {
|
|
144
|
-
return date;
|
|
145
|
-
}
|
|
146
|
-
getYear(date) {
|
|
147
|
-
return new Date(date).getFullYear();
|
|
148
|
-
}
|
|
149
|
-
getYearName(date) {
|
|
150
|
-
if (SUPPORTS_INTL_API) {
|
|
151
|
-
const dtf = new Intl.DateTimeFormat(this.locale, {
|
|
152
|
-
year: 'numeric',
|
|
153
|
-
timeZone: 'utc'
|
|
154
|
-
});
|
|
155
|
-
return UnixTimestampDateTimeAdapter.stripDirectionalityCharacters(UnixTimestampDateTimeAdapter._format(dtf, new Date(date)));
|
|
156
|
-
}
|
|
157
|
-
return String(this.getYear(date));
|
|
158
|
-
}
|
|
159
|
-
invalid() {
|
|
160
|
-
return NaN;
|
|
161
|
-
}
|
|
162
|
-
isDateInstance(obj) {
|
|
163
|
-
return typeof obj === 'number';
|
|
164
|
-
}
|
|
165
|
-
isEqual(dateLeft, dateRight) {
|
|
166
|
-
if (this.isValid(dateLeft) && this.isValid(dateRight)) {
|
|
167
|
-
return dateLeft === dateRight;
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
isSameDay(dateLeft, dateRight) {
|
|
174
|
-
if (this.isValid(dateLeft) && this.isValid(dateRight)) {
|
|
175
|
-
const dateLeftStartOfDay = new Date(dateLeft);
|
|
176
|
-
const dateRightStartOfDay = new Date(dateRight);
|
|
177
|
-
dateLeftStartOfDay.setHours(0, 0, 0, 0);
|
|
178
|
-
dateRightStartOfDay.setHours(0, 0, 0, 0);
|
|
179
|
-
return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
isValid(date) {
|
|
186
|
-
return (date || date === 0) && !isNaN(date);
|
|
187
|
-
}
|
|
188
|
-
now() {
|
|
189
|
-
return new Date().getTime();
|
|
190
|
-
}
|
|
191
|
-
setHours(date, amount) {
|
|
192
|
-
const result = new Date(date);
|
|
193
|
-
result.setHours(amount);
|
|
194
|
-
return result.getTime();
|
|
195
|
-
}
|
|
196
|
-
setMinutes(date, amount) {
|
|
197
|
-
const result = new Date(date);
|
|
198
|
-
result.setMinutes(amount);
|
|
199
|
-
return result.getTime();
|
|
200
|
-
}
|
|
201
|
-
setSeconds(date, amount) {
|
|
202
|
-
const result = new Date(date);
|
|
203
|
-
result.setSeconds(amount);
|
|
204
|
-
return result.getTime();
|
|
205
|
-
}
|
|
206
|
-
toIso8601(date) {
|
|
207
|
-
return new Date(date).toISOString();
|
|
208
|
-
}
|
|
209
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: UnixTimestampDateTimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
210
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: UnixTimestampDateTimeAdapter }); }
|
|
211
|
-
}
|
|
212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: UnixTimestampDateTimeAdapter, decorators: [{
|
|
213
|
-
type: Injectable
|
|
214
|
-
}], ctorParameters: () => [] });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5peC10aW1lc3RhbXAtZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvYWRhcHRlci91bml4LXRpbWVzdGFtcC1hZGFwdGVyL3VuaXgtdGltZXN0YW1wLWRhdGUtdGltZS1hZGFwdGVyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNsQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR25GLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxlQUF1QjtJQVF2RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBUk8sYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQU9wRixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7O09BSUc7YUFDWSwyQkFBc0IsR0FBRyxtQkFBbUIsQUFBdEIsQ0FBdUI7SUFDcEQsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVc7UUFDdEQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQXdCLEVBQUUsSUFBVTtRQUN6RCxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FDaEIsSUFBSSxDQUFDLEdBQUcsQ0FDTixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLEVBQ2QsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUNmLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUNqQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQ3ZCLENBQ0YsQ0FBQztRQUNGLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU0sZUFBZSxDQUFDLElBQVksRUFBRSxNQUFjO1FBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVksRUFBRSxNQUFjO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNoRCxNQUFNLG9CQUFvQixHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMzRSxvQ0FBb0M7UUFDcEMsNERBQTREO1FBQzVELE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLElBQVksRUFBRSxNQUFjO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FDZixJQUFZLEVBQ1osS0FBYSxFQUNiLElBQVksRUFDWixRQUFnQixDQUFDLEVBQ2pCLFVBQWtCLENBQUMsRUFDbkIsVUFBa0IsQ0FBQztRQUVuQixPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQ2pFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUN2QixDQUFDO1lBQ0YsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUN4QixDQUFDO1lBRUYsTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQ2pILE1BQU0sY0FBYyxHQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO2dCQUNqQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQy9FLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsSUFBWSxFQUFFLGFBQXlDO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pGLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7WUFFRCxhQUFhLEdBQUcsRUFBRSxHQUFHLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDaEUsT0FBTyw0QkFBNEIsQ0FBQyw2QkFBNkIsQ0FDL0QsNEJBQTRCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FDbEQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLDRCQUE0QixDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDL0MsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDckIsNEJBQTRCLENBQUMsNkJBQTZCLENBQ3hELDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDcEUsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFZO1FBQ3hCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWtDO1FBQ3pELElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDL0MsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDcEIsNEJBQTRCLENBQUMsNkJBQTZCLENBQ3hELDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDcEUsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8seUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFZO1FBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFZO1FBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFrQztRQUNyRCxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQy9DLEtBQUssRUFBRSxLQUFLO2dCQUNaLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLDRCQUE0QixDQUFDLDZCQUE2QixDQUN4RCw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDaEUsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVk7UUFDbkMsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBWTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBWTtRQUM3QixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQy9DLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUMsQ0FBQztZQUNILE9BQU8sNEJBQTRCLENBQUMsNkJBQTZCLENBQy9ELDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDMUQsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTSxjQUFjLENBQUMsR0FBWTtRQUNoQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDaEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxPQUFPLFFBQVEsS0FBSyxTQUFTLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDbEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxNQUFNLGtCQUFrQixHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEQsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxPQUFPLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBWSxFQUFFLE1BQWM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sVUFBVSxDQUFDLElBQVksRUFBRSxNQUFjO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZLEVBQUUsTUFBYztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7K0dBN1JVLDRCQUE0QjttSEFBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByYW5nZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FycmF5LnV0aWxzJztcbmltcG9ydCB7XG4gIERFRkFVTFRfREFURV9OQU1FUyxcbiAgREVGQVVMVF9EQVlfT0ZfV0VFS19OQU1FUyxcbiAgREVGQVVMVF9NT05USF9OQU1FUyxcbiAgU1VQUE9SVFNfSU5UTF9BUElcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IGNyZWF0ZURhdGUsIGdldE51bURheXNJbk1vbnRoIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZGF0ZS51dGlscyc7XG5pbXBvcnQgeyBEYXRlVGltZUFkYXB0ZXIsIE9XTF9EQVRFX1RJTUVfTE9DQUxFIH0gZnJvbSAnLi4vZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVW5peFRpbWVzdGFtcERhdGVUaW1lQWRhcHRlciBleHRlbmRzIERhdGVUaW1lQWRhcHRlcjxudW1iZXI+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybSA9IGluamVjdChQbGF0Zm9ybSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvd2xEYXRlVGltZUxvY2FsZSA9IGluamVjdChPV0xfREFURV9USU1FX0xPQ0FMRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKiogV2hldGhlciB0byBjbGFtcCB0aGUgZGF0ZSBiZXR3ZWVuIDEgYW5kIDk5OTkgdG8gYXZvaWQgSUUgYW5kIEVkZ2UgZXJyb3JzLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGFtcERhdGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBzdXBlci5zZXRMb2NhbGUodGhpcy5vd2xEYXRlVGltZUxvY2FsZSk7XG4gICAgdGhpcy5fY2xhbXBEYXRlID0gdGhpcy5wbGF0Zm9ybS5UUklERU5UIHx8IHRoaXMucGxhdGZvcm0uRURHRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJpcCBvdXQgdW5pY29kZSBMVFIgYW5kIFJUTCBjaGFyYWN0ZXJzLiBFZGdlIGFuZCBJRSBpbnNlcnQgdGhlc2UgaW50byBmb3JtYXR0ZWQgZGF0ZXMgd2hpbGVcbiAgICogb3RoZXIgYnJvd3NlcnMgZG8gbm90LiBXZSByZW1vdmUgdGhlbSB0byBtYWtlIG91dHB1dCBjb25zaXN0ZW50IGFuZCBiZWNhdXNlIHRoZXkgaW50ZXJmZXJlIHdpdGhcbiAgICogZGF0ZSBwYXJzaW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgc2VhcmNoX2x0cl9ydGxfcGF0dGVybiA9ICcvW1xcdTIwMGVcXHUyMDBmXS9nJztcbiAgcHJpdmF0ZSBzdGF0aWMgc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnMoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLnNlYXJjaF9sdHJfcnRsX3BhdHRlcm4sICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGNvbnZlcnRpbmcgRGF0ZSBvYmplY3QgdG8gc3RyaW5nLCBqYXZhc2NyaXB0IGJ1aWx0LWluIGZ1bmN0aW9ucyBtYXkgcmV0dXJuIHdyb25nXG4gICAqIHJlc3VsdHMgYmVjYXVzZSBpdCBhcHBsaWVzIGl0cyBpbnRlcm5hbCBEU1QgcnVsZXMuIFRoZSBEU1QgcnVsZXMgYXJvdW5kIHRoZSB3b3JsZCBjaGFuZ2VcbiAgICogdmVyeSBmcmVxdWVudGx5LCBhbmQgdGhlIGN1cnJlbnQgdmFsaWQgcnVsZSBpcyBub3QgYWx3YXlzIHZhbGlkIGluIHByZXZpb3VzIHllYXJzIHRob3VnaC5cbiAgICogV2Ugd29yayBhcm91bmQgdGhpcyBwcm9ibGVtIGJ1aWxkaW5nIGEgbmV3IERhdGUgb2JqZWN0IHdoaWNoIGhhcyBpdHMgaW50ZXJuYWwgVVRDXG4gICAqIHJlcHJlc2VudGF0aW9uIHdpdGggdGhlIGxvY2FsIGRhdGUgYW5kIHRpbWUuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBfZm9ybWF0KGR0ZjogSW50bC5EYXRlVGltZUZvcm1hdCwgZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKFxuICAgICAgRGF0ZS5VVEMoXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCksXG4gICAgICAgIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKClcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBkdGYuZm9ybWF0KGQpO1xuICB9XG5cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBudW1iZXIsIGFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBhbW91bnQgPSBOdW1iZXIoYW1vdW50KTtcbiAgICByZXN1bHQuc2V0RGF0ZShyZXN1bHQuZ2V0RGF0ZSgpICsgYW1vdW50KTtcbiAgICByZXR1cm4gcmVzdWx0LmdldFRpbWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBudW1iZXIsIGFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBhbW91bnQgPSBOdW1iZXIoYW1vdW50KTtcblxuICAgIGNvbnN0IGRlc2lyZWRNb250aCA9IHJlc3VsdC5nZXRNb250aCgpICsgYW1vdW50O1xuICAgIGNvbnN0IGRhdGVXaXRoRGVzaXJlZE1vbnRoID0gbmV3IERhdGUoMCk7XG4gICAgZGF0ZVdpdGhEZXNpcmVkTW9udGguc2V0RnVsbFllYXIocmVzdWx0LmdldEZ1bGxZZWFyKCksIGRlc2lyZWRNb250aCwgMSk7XG4gICAgZGF0ZVdpdGhEZXNpcmVkTW9udGguc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0TnVtRGF5c0luTW9udGgoZGF0ZVdpdGhEZXNpcmVkTW9udGguZ2V0VGltZSgpKTtcbiAgICAvLyBTZXQgdGhlIGxhc3QgZGF5IG9mIHRoZSBuZXcgbW9udGhcbiAgICAvLyBpZiB0aGUgb3JpZ2luYWwgZGF0ZSB3YXMgdGhlIGxhc3QgZGF5IG9mIHRoZSBsb25nZXIgbW9udGhcbiAgICByZXN1bHQuc2V0TW9udGgoZGVzaXJlZE1vbnRoLCBNYXRoLm1pbihkYXlzSW5Nb250aCwgcmVzdWx0LmdldERhdGUoKSkpO1xuICAgIHJldHVybiByZXN1bHQuZ2V0VGltZSgpO1xuICB9XG5cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogbnVtYmVyLCBhbW91bnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgYW1vdW50ICogMTIpO1xuICB9XG5cbiAgcHVibGljIGNsb25lKGRhdGU6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRGF0ZShcbiAgICB5ZWFyOiBudW1iZXIsXG4gICAgbW9udGg6IG51bWJlcixcbiAgICBkYXRlOiBudW1iZXIsXG4gICAgaG91cnM6IG51bWJlciA9IDAsXG4gICAgbWludXRlczogbnVtYmVyID0gMCxcbiAgICBzZWNvbmRzOiBudW1iZXIgPSAwXG4gICk6IG51bWJlciB7XG4gICAgcmV0dXJuIGNyZWF0ZURhdGUoeWVhciwgbW9udGgsIGRhdGUsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKS5nZXRUaW1lKCk7XG4gIH1cblxuICBwdWJsaWMgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRhdGVMZWZ0OiBudW1iZXIsIGRhdGVSaWdodDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGVMZWZ0KSAmJiB0aGlzLmlzVmFsaWQoZGF0ZVJpZ2h0KSkge1xuICAgICAgY29uc3QgZGF0ZUxlZnRTdGFydE9mRGF5ID0gdGhpcy5jcmVhdGVEYXRlKFxuICAgICAgICB0aGlzLmdldFllYXIoZGF0ZUxlZnQpLFxuICAgICAgICB0aGlzLmdldE1vbnRoKGRhdGVMZWZ0KSxcbiAgICAgICAgdGhpcy5nZXREYXRlKGRhdGVMZWZ0KVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGRhdGVSaWdodFN0YXJ0T2ZEYXkgPSB0aGlzLmNyZWF0ZURhdGUoXG4gICAgICAgIHRoaXMuZ2V0WWVhcihkYXRlUmlnaHQpLFxuICAgICAgICB0aGlzLmdldE1vbnRoKGRhdGVSaWdodCksXG4gICAgICAgIHRoaXMuZ2V0RGF0ZShkYXRlUmlnaHQpXG4gICAgICApO1xuXG4gICAgICBjb25zdCB0aW1lU3RhbXBMZWZ0ID1cbiAgICAgICAgdGhpcy5nZXRUaW1lKGRhdGVMZWZ0U3RhcnRPZkRheSkgLSBuZXcgRGF0ZShkYXRlTGVmdFN0YXJ0T2ZEYXkpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiB0aGlzLm1pbGxpc2VvbmRzSW5NaW51dGU7XG4gICAgICBjb25zdCB0aW1lU3RhbXBSaWdodCA9XG4gICAgICAgIHRoaXMuZ2V0VGltZShkYXRlUmlnaHRTdGFydE9mRGF5KSAtXG4gICAgICAgIG5ldyBEYXRlKGRhdGVSaWdodFN0YXJ0T2ZEYXkpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiB0aGlzLm1pbGxpc2VvbmRzSW5NaW51dGU7XG4gICAgICByZXR1cm4gTWF0aC5yb3VuZCgodGltZVN0YW1wTGVmdCAtIHRpbWVTdGFtcFJpZ2h0KSAvIHRoaXMubWlsbGlzZWNvbmRzSW5EYXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0KGRhdGU6IG51bWJlciwgZGlzcGxheUZvcm1hdDogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICB0aHJvdyBFcnJvcignSlNOYXRpdmVEYXRlOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBqc0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcblxuICAgIGlmIChTVVBQT1JUU19JTlRMX0FQSSkge1xuICAgICAgaWYgKHRoaXMuX2NsYW1wRGF0ZSAmJiAoanNEYXRlLmdldEZ1bGxZZWFyKCkgPCAxIHx8IGpzRGF0ZS5nZXRGdWxsWWVhcigpID4gOTk5OSkpIHtcbiAgICAgICAganNEYXRlLnNldEZ1bGxZZWFyKE1hdGgubWF4KDEsIE1hdGgubWluKDk5OTksIGpzRGF0ZS5nZXRGdWxsWWVhcigpKSkpO1xuICAgICAgfVxuXG4gICAgICBkaXNwbGF5Rm9ybWF0ID0geyAuLi5kaXNwbGF5Rm9ybWF0LCB0aW1lWm9uZTogJ3V0YycgfTtcbiAgICAgIGNvbnN0IGR0ZiA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLCBkaXNwbGF5Rm9ybWF0KTtcbiAgICAgIHJldHVybiBVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLnN0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKFxuICAgICAgICBVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLl9mb3JtYXQoZHRmLCBqc0RhdGUpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLnN0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKGpzRGF0ZS50b0RhdGVTdHJpbmcoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS5nZXREYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIGlmIChTVVBQT1JUU19JTlRMX0FQSSkge1xuICAgICAgY29uc3QgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsIHtcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIHRpbWVab25lOiAndXRjJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmFuZ2UoMzEsIChpKSA9PlxuICAgICAgICBVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLnN0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKFxuICAgICAgICAgIFVuaXhUaW1lc3RhbXBEYXRlVGltZUFkYXB0ZXIuX2Zvcm1hdChkdGYsIG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIERFRkFVTFRfREFURV9OQU1FUztcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXkoZGF0ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkuZ2V0RGF5KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IEFycmF5PHN0cmluZz4ge1xuICAgIGlmIChTVVBQT1JUU19JTlRMX0FQSSkge1xuICAgICAgY29uc3QgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsIHtcbiAgICAgICAgd2Vla2RheTogc3R5bGUsXG4gICAgICAgIHRpbWVab25lOiAndXRjJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmFuZ2UoNywgKGkpID0+XG4gICAgICAgIFVuaXhUaW1lc3RhbXBEYXRlVGltZUFkYXB0ZXIuc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnMoXG4gICAgICAgICAgVW5peFRpbWVzdGFtcERhdGVUaW1lQWRhcHRlci5fZm9ybWF0KGR0ZiwgbmV3IERhdGUoMjAxNywgMCwgaSArIDEpKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBERUZBVUxUX0RBWV9PRl9XRUVLX05BTUVTW3N0eWxlXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRIb3VycyhkYXRlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS5nZXRIb3VycygpO1xuICB9XG5cbiAgcHVibGljIGdldE1pbnV0ZXMoZGF0ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkuZ2V0TWludXRlcygpO1xuICB9XG5cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLmdldE1vbnRoKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgaWYgKFNVUFBPUlRTX0lOVExfQVBJKSB7XG4gICAgICBjb25zdCBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZSwge1xuICAgICAgICBtb250aDogc3R5bGUsXG4gICAgICAgIHRpbWVab25lOiAndXRjJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmFuZ2UoMTIsIChpKSA9PlxuICAgICAgICBVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLnN0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKFxuICAgICAgICAgIFVuaXhUaW1lc3RhbXBEYXRlVGltZUFkYXB0ZXIuX2Zvcm1hdChkdGYsIG5ldyBEYXRlKDIwMTcsIGksIDEpKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gREVGQVVMVF9NT05USF9OQU1FU1tzdHlsZV07XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZ2V0TnVtRGF5c0luTW9udGgobmV3IERhdGUoZGF0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldFNlY29uZHMoZGF0ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkuZ2V0U2Vjb25kcygpO1xuICB9XG5cbiAgcHVibGljIGdldFRpbWUoZGF0ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRZZWFyKGRhdGU6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLmdldEZ1bGxZZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0WWVhck5hbWUoZGF0ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoU1VQUE9SVFNfSU5UTF9BUEkpIHtcbiAgICAgIGNvbnN0IGR0ZiA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLCB7XG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgdGltZVpvbmU6ICd1dGMnXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLnN0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKFxuICAgICAgICBVbml4VGltZXN0YW1wRGF0ZVRpbWVBZGFwdGVyLl9mb3JtYXQoZHRmLCBuZXcgRGF0ZShkYXRlKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodGhpcy5nZXRZZWFyKGRhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBpbnZhbGlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IHVua25vd24pOiBvYmogaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ251bWJlcic7XG4gIH1cblxuICBwdWJsaWMgaXNFcXVhbChkYXRlTGVmdDogbnVtYmVyLCBkYXRlUmlnaHQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzVmFsaWQoZGF0ZUxlZnQpICYmIHRoaXMuaXNWYWxpZChkYXRlUmlnaHQpKSB7XG4gICAgICByZXR1cm4gZGF0ZUxlZnQgPT09IGRhdGVSaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1NhbWVEYXkoZGF0ZUxlZnQ6IG51bWJlciwgZGF0ZVJpZ2h0OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGVMZWZ0KSAmJiB0aGlzLmlzVmFsaWQoZGF0ZVJpZ2h0KSkge1xuICAgICAgY29uc3QgZGF0ZUxlZnRTdGFydE9mRGF5ID0gbmV3IERhdGUoZGF0ZUxlZnQpO1xuICAgICAgY29uc3QgZGF0ZVJpZ2h0U3RhcnRPZkRheSA9IG5ldyBEYXRlKGRhdGVSaWdodCk7XG4gICAgICBkYXRlTGVmdFN0YXJ0T2ZEYXkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICBkYXRlUmlnaHRTdGFydE9mRGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgcmV0dXJuIGRhdGVMZWZ0U3RhcnRPZkRheS5nZXRUaW1lKCkgPT09IGRhdGVSaWdodFN0YXJ0T2ZEYXkuZ2V0VGltZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzVmFsaWQoZGF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChkYXRlIHx8IGRhdGUgPT09IDApICYmICFpc05hTihkYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBub3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SG91cnMoZGF0ZTogbnVtYmVyLCBhbW91bnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldEhvdXJzKGFtb3VudCk7XG4gICAgcmV0dXJuIHJlc3VsdC5nZXRUaW1lKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWludXRlcyhkYXRlOiBudW1iZXIsIGFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXN1bHQuc2V0TWludXRlcyhhbW91bnQpO1xuICAgIHJldHVybiByZXN1bHQuZ2V0VGltZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFNlY29uZHMoZGF0ZTogbnVtYmVyLCBhbW91bnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldFNlY29uZHMoYW1vdW50KTtcbiAgICByZXR1cm4gcmVzdWx0LmdldFRpbWUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0lzbzg2MDEoZGF0ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const OWL_UNIX_TIMESTAMP_DATE_TIME_FORMATS = {
|
|
2
|
-
fullPickerInput: {
|
|
3
|
-
year: 'numeric',
|
|
4
|
-
month: 'numeric',
|
|
5
|
-
day: 'numeric',
|
|
6
|
-
hour: 'numeric',
|
|
7
|
-
minute: 'numeric'
|
|
8
|
-
},
|
|
9
|
-
datePickerInput: { year: 'numeric', month: 'numeric', day: 'numeric' },
|
|
10
|
-
timePickerInput: { hour: 'numeric', minute: 'numeric' },
|
|
11
|
-
monthYearLabel: { year: 'numeric', month: 'short' },
|
|
12
|
-
dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },
|
|
13
|
-
monthYearA11yLabel: { year: 'numeric', month: 'long' }
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5peC10aW1lc3RhbXAtZGF0ZS10aW1lLWZvcm1hdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BpY2tlci9zcmMvbGliL2RhdGUtdGltZS9hZGFwdGVyL3VuaXgtdGltZXN0YW1wLWFkYXB0ZXIvdW5peC10aW1lc3RhbXAtZGF0ZS10aW1lLWZvcm1hdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBdUI7SUFDdEUsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsU0FBUztRQUNoQixHQUFHLEVBQUUsU0FBUztRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsTUFBTSxFQUFFLFNBQVM7S0FDbEI7SUFDRCxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRTtJQUN0RSxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7SUFDdkQsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ25ELGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFO0lBQ2pFLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0NBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPd2xEYXRlVGltZUZvcm1hdHMgfSBmcm9tICcuLi9kYXRlLXRpbWUtZm9ybWF0LmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IE9XTF9VTklYX1RJTUVTVEFNUF9EQVRFX1RJTUVfRk9STUFUUzogT3dsRGF0ZVRpbWVGb3JtYXRzID0ge1xuICBmdWxsUGlja2VySW5wdXQ6IHtcbiAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgbW9udGg6ICdudW1lcmljJyxcbiAgICBkYXk6ICdudW1lcmljJyxcbiAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgbWludXRlOiAnbnVtZXJpYydcbiAgfSxcbiAgZGF0ZVBpY2tlcklucHV0OiB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdudW1lcmljJywgZGF5OiAnbnVtZXJpYycgfSxcbiAgdGltZVBpY2tlcklucHV0OiB7IGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYycgfSxcbiAgbW9udGhZZWFyTGFiZWw6IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJ3Nob3J0JyB9LFxuICBkYXRlQTExeUxhYmVsOiB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdsb25nJywgZGF5OiAnbnVtZXJpYycgfSxcbiAgbW9udGhZZWFyQTExeUxhYmVsOiB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdsb25nJyB9XG59O1xuIl19
|