ect-date-formatter 1.16.0 → 1.16.1
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 +1 -1
- package/{esm2020 → esm2022}/ect-date-formatter.mjs +4 -4
- package/esm2022/lib/ect-date-formatter.module.mjs +28 -0
- package/esm2022/lib/ect-date-formatter.service.mjs +307 -0
- package/{esm2020 → esm2022}/public-api.mjs +23 -23
- package/{fesm2015 → fesm2022}/ect-date-formatter.mjs +345 -346
- package/{fesm2020 → fesm2022}/ect-date-formatter.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/ect-date-formatter.module.d.ts +7 -7
- package/lib/ect-date-formatter.service.d.ts +44 -44
- package/package.json +6 -12
- package/public-api.d.ts +2 -2
- package/esm2020/lib/ect-date-formatter.module.mjs +0 -27
- package/esm2020/lib/ect-date-formatter.service.mjs +0 -306
- package/fesm2015/ect-date-formatter.mjs.map +0 -1
- package/fesm2020/ect-date-formatter.mjs +0 -360
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class EctDateFormatterService {
|
|
4
|
-
getISO8601DateFormat(date) {
|
|
5
|
-
return this.get4DigitYear(date) + '-' + this.get2DigitMonth(date) + '-' + this.get2DigitDay(date);
|
|
6
|
-
}
|
|
7
|
-
getISO8601TimeFormat(date) {
|
|
8
|
-
return this.get2Digit24Hours(date) + ':' + this.get2DigitMinutes(date) + ':' + this.get2DigitSeconds(date);
|
|
9
|
-
}
|
|
10
|
-
getISO8601DateAndTimeFormat(date) {
|
|
11
|
-
return this.getISO8601DateFormat(date) + 'T' + this.getISO8601TimeFormat(date);
|
|
12
|
-
}
|
|
13
|
-
getFormatPartsByDivider(input) {
|
|
14
|
-
if (input.indexOf(' ') > 0) {
|
|
15
|
-
return {
|
|
16
|
-
parts: input.split(' '),
|
|
17
|
-
divider: ' '
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
if (input.indexOf('/') > 0) {
|
|
21
|
-
return {
|
|
22
|
-
parts: input.split('/'),
|
|
23
|
-
divider: '/'
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
if (input.indexOf(':') > 0) {
|
|
27
|
-
return {
|
|
28
|
-
parts: input.split(':'),
|
|
29
|
-
divider: ':'
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (input.indexOf(';') > 0) {
|
|
33
|
-
return {
|
|
34
|
-
parts: input.split(';'),
|
|
35
|
-
divider: ';'
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
if (input.indexOf('.') > 0) {
|
|
39
|
-
return {
|
|
40
|
-
parts: input.split('.'),
|
|
41
|
-
divider: '.'
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
if (input.indexOf(',') > 0) {
|
|
45
|
-
return {
|
|
46
|
-
parts: input.split(','),
|
|
47
|
-
divider: ','
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
if (input.indexOf('-') > 0) {
|
|
51
|
-
return {
|
|
52
|
-
parts: input.split('-'),
|
|
53
|
-
divider: '-'
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
if (input.indexOf('_') > 0) {
|
|
57
|
-
return {
|
|
58
|
-
parts: input.split('_'),
|
|
59
|
-
divider: '_'
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return { parts: [], divider: '' };
|
|
63
|
-
}
|
|
64
|
-
/*
|
|
65
|
-
Date Formatting Rules
|
|
66
|
-
|
|
67
|
-
yy/YY – two-digit year, e.g. 21
|
|
68
|
-
yyyy/YYYY – four-digit year, e.g. 2021
|
|
69
|
-
m/M – one-digit month for months below 10, e.g. 3
|
|
70
|
-
mm/MM – two-digit month, e.g. 03
|
|
71
|
-
mmm/MMM – three-letter abbreviation for month, e.g. Mar
|
|
72
|
-
mmmm/MMMM – month spelled out in full, e.g. March
|
|
73
|
-
d/D – one-digit day of the month for days below 10, e.g. 2
|
|
74
|
-
dd/DD – two-digit day of the month, e.g. 02
|
|
75
|
-
ddd/DDD – three-letter abbreviation for day of the week, e.g. Fri
|
|
76
|
-
dddd/DDDD – day of the week spelled out in full, e.g. Friday
|
|
77
|
-
|
|
78
|
-
*/
|
|
79
|
-
formatDate(date, format) {
|
|
80
|
-
const formatPartsAndDivider = this.getFormatPartsByDivider(format);
|
|
81
|
-
let dateValue = '';
|
|
82
|
-
formatPartsAndDivider.parts.forEach(part => {
|
|
83
|
-
if (dateValue !== '')
|
|
84
|
-
dateValue += formatPartsAndDivider.divider;
|
|
85
|
-
switch (part) {
|
|
86
|
-
case 'yy':
|
|
87
|
-
case 'YY':
|
|
88
|
-
dateValue += this.get2DigitYear(date);
|
|
89
|
-
break;
|
|
90
|
-
case 'yyyy':
|
|
91
|
-
case 'YYYY':
|
|
92
|
-
dateValue += this.get4DigitYear(date);
|
|
93
|
-
break;
|
|
94
|
-
case 'm':
|
|
95
|
-
case 'M':
|
|
96
|
-
dateValue += this.get1DigitMonth(date);
|
|
97
|
-
break;
|
|
98
|
-
case 'mm':
|
|
99
|
-
case 'MM':
|
|
100
|
-
dateValue += this.get2DigitMonth(date);
|
|
101
|
-
break;
|
|
102
|
-
case 'mmm':
|
|
103
|
-
case 'MMM':
|
|
104
|
-
dateValue += this.get3DigitMonth(date);
|
|
105
|
-
break;
|
|
106
|
-
case 'mmmm':
|
|
107
|
-
case 'MMMM':
|
|
108
|
-
dateValue += this.get4DigitMonth(date);
|
|
109
|
-
break;
|
|
110
|
-
case 'd':
|
|
111
|
-
case 'D':
|
|
112
|
-
dateValue += this.get1DigitDay(date);
|
|
113
|
-
break;
|
|
114
|
-
case 'dd':
|
|
115
|
-
case 'DD':
|
|
116
|
-
dateValue += this.get2DigitDay(date);
|
|
117
|
-
break;
|
|
118
|
-
case 'ddd':
|
|
119
|
-
case 'DDD':
|
|
120
|
-
dateValue += this.get3DigitDay(date);
|
|
121
|
-
break;
|
|
122
|
-
case 'dddd':
|
|
123
|
-
case 'DDDD':
|
|
124
|
-
dateValue += this.get4DigitDay(date);
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
return dateValue;
|
|
129
|
-
}
|
|
130
|
-
/*
|
|
131
|
-
Time Formatting Rules
|
|
132
|
-
|
|
133
|
-
h - hour to 1 digit on 12 hour clock - without leading 0
|
|
134
|
-
hh - hour to 2 digits on 12 hour clock - with leading 0
|
|
135
|
-
H - hour to 1 digit on 24 hour clock - without leading 0
|
|
136
|
-
HH - hour to 2 digits on 24 hour clock - with leading 0
|
|
137
|
-
m - minute to 1 digit - without leading 0
|
|
138
|
-
mm/mi/MI - minute to 2 digits - with leading 0
|
|
139
|
-
s/S - second to 1 digit - without leading 0
|
|
140
|
-
ss/SS - second to 2 digits - with leading 0
|
|
141
|
-
f/F - tenth of a second e.g. 2009-06-15T13:45:30.6170000 -> 6
|
|
142
|
-
ff/FF - hundredths of a second e.g. 2009-06-15T13:45:30.6170000 -> 61
|
|
143
|
-
fff/FFF - milliseconds e.g. 6/15/2009 13:45:30.617 -> 617
|
|
144
|
-
ffff/FFFF - ten thousandths of a second e.g. 2009-06-15T13:45:30.6175000 -> 6175
|
|
145
|
-
fffff/FFFFF - hundred thousandths of a second e.g. 2009-06-15T13:45:30.6175400 -> 61754
|
|
146
|
-
ffffff/FFFFFF - millionths of a second e.g. 2009-06-15T13:45:30.6175420 -> 617542
|
|
147
|
-
t/T - first character of AM/PM
|
|
148
|
-
tt/TT - both characters of AM/PM
|
|
149
|
-
|
|
150
|
-
*/
|
|
151
|
-
formatTime(date, format) {
|
|
152
|
-
const formatPartsAndDivider = this.getFormatPartsByDivider(format);
|
|
153
|
-
let timeValue = '';
|
|
154
|
-
formatPartsAndDivider.parts.forEach(part => {
|
|
155
|
-
if (timeValue !== '')
|
|
156
|
-
timeValue += formatPartsAndDivider.divider;
|
|
157
|
-
switch (part) {
|
|
158
|
-
case 'h':
|
|
159
|
-
timeValue += this.get1Digit12Hours(date);
|
|
160
|
-
break;
|
|
161
|
-
case 'hh':
|
|
162
|
-
timeValue += this.get2Digit12Hours(date);
|
|
163
|
-
break;
|
|
164
|
-
case 'H':
|
|
165
|
-
timeValue += this.get1Digit24Hours(date);
|
|
166
|
-
break;
|
|
167
|
-
case 'HH':
|
|
168
|
-
timeValue += this.get2Digit24Hours(date);
|
|
169
|
-
break;
|
|
170
|
-
case 'm':
|
|
171
|
-
timeValue += this.get1DigitMinutes(date);
|
|
172
|
-
break;
|
|
173
|
-
case 'mi':
|
|
174
|
-
case 'mm':
|
|
175
|
-
case 'MI':
|
|
176
|
-
timeValue += this.get2DigitMinutes(date);
|
|
177
|
-
break;
|
|
178
|
-
case 's':
|
|
179
|
-
case 'S':
|
|
180
|
-
timeValue += this.get1DigitSeconds(date);
|
|
181
|
-
break;
|
|
182
|
-
case 'ss':
|
|
183
|
-
case 'SS':
|
|
184
|
-
timeValue += this.get2DigitSeconds(date);
|
|
185
|
-
break;
|
|
186
|
-
case 't':
|
|
187
|
-
case 'T':
|
|
188
|
-
timeValue += this.get1DigitAmPm(date);
|
|
189
|
-
break;
|
|
190
|
-
case 'tt':
|
|
191
|
-
case 'TT':
|
|
192
|
-
timeValue += this.get2DigitAmPm(date);
|
|
193
|
-
break;
|
|
194
|
-
case 'f':
|
|
195
|
-
case 'F':
|
|
196
|
-
timeValue += this.getXDigitMillisecond(date, 'f');
|
|
197
|
-
break;
|
|
198
|
-
case 'ff':
|
|
199
|
-
case 'FF':
|
|
200
|
-
timeValue += this.getXDigitMillisecond(date, 'fff');
|
|
201
|
-
break;
|
|
202
|
-
case 'fff':
|
|
203
|
-
case 'FFF':
|
|
204
|
-
timeValue += this.getXDigitMillisecond(date, 'fff');
|
|
205
|
-
break;
|
|
206
|
-
case 'ffff':
|
|
207
|
-
case 'FFFF':
|
|
208
|
-
timeValue += this.getXDigitMillisecond(date, 'ffff');
|
|
209
|
-
break;
|
|
210
|
-
case 'fffff':
|
|
211
|
-
case 'FFFFF':
|
|
212
|
-
timeValue += this.getXDigitMillisecond(date, 'fffff');
|
|
213
|
-
break;
|
|
214
|
-
case 'ffffff':
|
|
215
|
-
case 'FFFFFF':
|
|
216
|
-
timeValue += this.getXDigitMillisecond(date, 'ffffff');
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
return timeValue;
|
|
221
|
-
}
|
|
222
|
-
get1DigitDay(date) {
|
|
223
|
-
const day = date.getDate();
|
|
224
|
-
return '' + day;
|
|
225
|
-
}
|
|
226
|
-
get2DigitDay(date) {
|
|
227
|
-
const day = date.getDate();
|
|
228
|
-
return this.padDateElement(day);
|
|
229
|
-
}
|
|
230
|
-
get3DigitDay(date) {
|
|
231
|
-
return date.toLocaleString('default', { weekday: 'short' });
|
|
232
|
-
}
|
|
233
|
-
get4DigitDay(date) {
|
|
234
|
-
return date.toLocaleString('default', { weekday: 'long' });
|
|
235
|
-
}
|
|
236
|
-
get1DigitMonth(date) {
|
|
237
|
-
const month = date.getMonth() + 1;
|
|
238
|
-
return '' + month;
|
|
239
|
-
}
|
|
240
|
-
get2DigitMonth(date) {
|
|
241
|
-
const month = date.getMonth() + 1;
|
|
242
|
-
return this.padDateElement(month);
|
|
243
|
-
}
|
|
244
|
-
get3DigitMonth(date) {
|
|
245
|
-
return date.toLocaleString('default', { month: 'long' }).substring(0, 3);
|
|
246
|
-
}
|
|
247
|
-
get4DigitMonth(date) {
|
|
248
|
-
return date.toLocaleString('default', { month: 'long' });
|
|
249
|
-
}
|
|
250
|
-
get2DigitYear(date) {
|
|
251
|
-
const fullYear = '' + date.getFullYear();
|
|
252
|
-
return fullYear[2];
|
|
253
|
-
}
|
|
254
|
-
get4DigitYear(date) {
|
|
255
|
-
return date.getFullYear().toString();
|
|
256
|
-
}
|
|
257
|
-
get1Digit12Hours(date) {
|
|
258
|
-
return date.getHours().toString();
|
|
259
|
-
}
|
|
260
|
-
get2Digit12Hours(date) {
|
|
261
|
-
const hours = date.getHours();
|
|
262
|
-
return this.padDateElement(hours);
|
|
263
|
-
}
|
|
264
|
-
get1Digit24Hours(date) {
|
|
265
|
-
return date.getHours().toString();
|
|
266
|
-
}
|
|
267
|
-
get2Digit24Hours(date) {
|
|
268
|
-
const hours = date.getHours();
|
|
269
|
-
return this.padDateElement(hours);
|
|
270
|
-
}
|
|
271
|
-
get1DigitMinutes(date) {
|
|
272
|
-
return date.getMinutes().toString();
|
|
273
|
-
}
|
|
274
|
-
get2DigitMinutes(date) {
|
|
275
|
-
const minutes = date.getMinutes();
|
|
276
|
-
return this.padDateElement(minutes);
|
|
277
|
-
}
|
|
278
|
-
get1DigitSeconds(date) {
|
|
279
|
-
return date.getSeconds().toString();
|
|
280
|
-
}
|
|
281
|
-
get2DigitSeconds(date) {
|
|
282
|
-
const seconds = date.getSeconds();
|
|
283
|
-
return this.padDateElement(seconds);
|
|
284
|
-
}
|
|
285
|
-
get1DigitAmPm(date) {
|
|
286
|
-
return date.toLocaleDateString('t');
|
|
287
|
-
}
|
|
288
|
-
get2DigitAmPm(date) {
|
|
289
|
-
return date.toLocaleDateString('tt');
|
|
290
|
-
}
|
|
291
|
-
getXDigitMillisecond(date, format) {
|
|
292
|
-
return date.toLocaleDateString(format);
|
|
293
|
-
}
|
|
294
|
-
padDateElement(value) {
|
|
295
|
-
return (value < 10) ? '0' + value : '' + value;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
EctDateFormatterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EctDateFormatterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
299
|
-
EctDateFormatterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EctDateFormatterService, providedIn: 'root' });
|
|
300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EctDateFormatterService, decorators: [{
|
|
301
|
-
type: Injectable,
|
|
302
|
-
args: [{
|
|
303
|
-
providedIn: 'root'
|
|
304
|
-
}]
|
|
305
|
-
}] });
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWN0LWRhdGUtZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9lY3QtZGF0ZS1mb3JtYXR0ZXIvc3JjL2xpYi9lY3QtZGF0ZS1mb3JtYXR0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWtCM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxvQkFBb0IsQ0FBQyxJQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBVTtRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELDJCQUEyQixDQUFDLElBQVU7UUFDcEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBYTtRQUMzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJ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SSxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7WUFDN0MsUUFBTyxJQUFJLEVBQUU7Z0JBQ1gsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJLENBQUM7Z0JBQ1YsS0FBSyxJQUFJLENBQUM7Z0JBQ1YsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHLENBQUM7Z0JBQ1QsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJLENBQUM7Z0JBQ1YsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHLENBQUM7Z0JBQ1QsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2dCQUNSLEtBQUssSUFBSSxDQUFDO2dC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QUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVU7UUFDOUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxJQUFVLEVBQUUsTUFBTTtRQUM3QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWE7UUFDbEMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNqRCxDQUFDOztvSEFuVVUsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zIHtcbiAgcGFydHM6IHN0cmluZ1tdO1xuICBkaXZpZGVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVjdERhdGVGb3JtYXR0ZXJTZXJ2aWNlIHtcbiAgZ2V0SVNPODYwMURhdGVGb3JtYXQoZGF0ZTogRGF0ZSk6IHN0cmluZztcbiAgZ2V0SVNPODYwMVRpbWVGb3JtYXQoZGF0ZTogRGF0ZSk6IHN0cmluZztcbiAgZ2V0SVNPODYwMURhdGVBbmRUaW1lRm9ybWF0KGRhdGU6IERhdGUpOiBzdHJpbmc7XG4gIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmc7XG4gIGZvcm1hdFRpbWUoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVjdERhdGVGb3JtYXR0ZXJTZXJ2aWNlIGltcGxlbWVudHMgSUVjdERhdGVGb3JtYXR0ZXJTZXJ2aWNlIHtcblxuICBnZXRJU084NjAxRGF0ZUZvcm1hdChkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXQ0RGlnaXRZZWFyKGRhdGUpICsgJy0nICsgdGhpcy5nZXQyRGlnaXRNb250aChkYXRlKSArICctJyArIHRoaXMuZ2V0MkRpZ2l0RGF5KGRhdGUpO1xuICB9XG5cbiAgZ2V0SVNPODYwMVRpbWVGb3JtYXQoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0MkRpZ2l0MjRIb3VycyhkYXRlKSArICc6JyArIHRoaXMuZ2V0MkRpZ2l0TWludXRlcyhkYXRlKSArICc6JyArIHRoaXMuZ2V0MkRpZ2l0U2Vjb25kcyhkYXRlKTtcbiAgfVxuXG4gIGdldElTTzg2MDFEYXRlQW5kVGltZUZvcm1hdChkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJU084NjAxRGF0ZUZvcm1hdChkYXRlKSArICdUJyArIHRoaXMuZ2V0SVNPODYwMVRpbWVGb3JtYXQoZGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1hdFBhcnRzQnlEaXZpZGVyKGlucHV0OiBzdHJpbmcpOiBJRGF0ZVRpbWVGb3JtYXRTZWN0aW9ucyB7XG4gICAgaWYgKGlucHV0LmluZGV4T2YoJyAnKSA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnRzOiBpbnB1dC5zcGxpdCgnICcpLFxuICAgICAgICBkaXZpZGVyOiAnICdcbiAgICAgIH0gYXMgSURhdGVUaW1lRm9ybWF0U2VjdGlvbnM7XG4gICAgfVxuICAgIGlmIChpbnB1dC5pbmRleE9mKCcvJykgPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0czogaW5wdXQuc3BsaXQoJy8nKSxcbiAgICAgICAgZGl2aWRlcjogJy8nXG4gICAgICB9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xuICAgIH1cbiAgICBpZiAoaW5wdXQuaW5kZXhPZignOicpID4gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFydHM6IGlucHV0LnNwbGl0KCc6JyksXG4gICAgICAgIGRpdmlkZXI6ICc6J1xuICAgICAgfSBhcyBJRGF0ZVRpbWVGb3JtYXRTZWN0aW9ucztcbiAgICB9XG4gICAgaWYgKGlucHV0LmluZGV4T2YoJzsnKSA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnRzOiBpbnB1dC5zcGxpdCgnOycpLFxuICAgICAgICBkaXZpZGVyOiAnOydcbiAgICAgIH0gYXMgSURhdGVUaW1lRm9ybWF0U2VjdGlvbnM7XG4gICAgfVxuICAgIGlmIChpbnB1dC5pbmRleE9mKCcuJykgPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0czogaW5wdXQuc3BsaXQoJy4nKSxcbiAgICAgICAgZGl2aWRlcjogJy4nXG4gICAgICB9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xuICAgIH1cbiAgICBpZiAoaW5wdXQuaW5kZXhPZignLCcpID4gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFydHM6IGlucHV0LnNwbGl0KCcsJyksXG4gICAgICAgIGRpdmlkZXI6ICcsJ1xuICAgICAgfSBhcyBJRGF0ZVRpbWVGb3JtYXRTZWN0aW9ucztcbiAgICB9XG4gICAgaWYgKGlucHV0LmluZGV4T2YoJy0nKSA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnRzOiBpbnB1dC5zcGxpdCgnLScpLFxuICAgICAgICBkaXZpZGVyOiAnLSdcbiAgICAgIH0gYXMgSURhdGVUaW1lRm9ybWF0U2VjdGlvbnM7XG4gICAgfVxuICAgIGlmIChpbnB1dC5pbmRleE9mKCdfJykgPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0czogaW5wdXQuc3BsaXQoJ18nKSxcbiAgICAgICAgZGl2aWRlcjogJ18nXG4gICAgICB9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xuICAgIH1cblxuICAgIHJldHVybiB7IHBhcnRzOiBbXSwgZGl2aWRlcjogJyd9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xuICB9XG5cblxuICAvKlxuICBEYXRlIEZvcm1hdHRpbmcgUnVsZXNcblxuICB5eS9ZWSDigJMgdHdvLWRpZ2l0IHllYXIsIGUuZy4gMjFcbiAgeXl5eS9ZWVlZIOKAkyBmb3VyLWRpZ2l0IHllYXIsIGUuZy4gMjAyMVxuICBtL00g4oCTIG9uZS1kaWdpdCBtb250aCBmb3IgbW9udGhzIGJlbG93IDEwLCBlLmcuIDNcbiAgbW0vTU0g4oCTIHR3by1kaWdpdCBtb250aCwgZS5nLiAwM1xuICBtbW0vTU1NIOKAkyB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aCwgZS5nLiBNYXJcbiAgbW1tbS9NTU1NIOKAkyBtb250aCBzcGVsbGVkIG91dCBpbiBmdWxsLCBlLmcuIE1hcmNoXG4gIGQvRCDigJMgb25lLWRpZ2l0IGRheSBvZiB0aGUgbW9udGggZm9yIGRheXMgYmVsb3cgMTAsIGUuZy4gMlxuICBkZC9ERCDigJMgdHdvLWRpZ2l0IGRheSBvZiB0aGUgbW9udGgsIGUuZy4gMDJcbiAgZGRkL0RERCDigJMgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgZGF5IG9mIHRoZSB3ZWVrLCBlLmcuIEZyaVxuICBkZGRkL0REREQg4oCTIGRheSBvZiB0aGUgd2VlayBzcGVsbGVkIG91dCBpbiBmdWxsLCBlLmcuIEZyaWRheVxuXG4gICovXG4gIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdFBhcnRzQW5kRGl2aWRlciA9IHRoaXMuZ2V0Rm9ybWF0UGFydHNCeURpdmlkZXIoZm9ybWF0KTtcbiAgICBsZXQgZGF0ZVZhbHVlID0gJyc7XG4gICAgZm9ybWF0UGFydHNBbmREaXZpZGVyLnBhcnRzLmZvckVhY2gocGFydCA9PiB7XG4gICAgICBpZiAoZGF0ZVZhbHVlICE9PSAnJylcbiAgICAgICAgZGF0ZVZhbHVlICs9IGZvcm1hdFBhcnRzQW5kRGl2aWRlci5kaXZpZGVyO1xuICAgICAgc3dpdGNoKHBhcnQpIHtcbiAgICAgICAgY2FzZSAneXknOlxuICAgICAgICBjYXNlICdZWSc6XG4gICAgICAgICAgZGF0ZVZhbHVlICs9IHRoaXMuZ2V0MkRpZ2l0WWVhcihkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAneXl5eSc6XG4gICAgICAgIGNhc2UgJ1lZWVknOlxuICAgICAgICAgIGRhdGVWYWx1ZSArPSB0aGlzLmdldDREaWdpdFllYXIoZGF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ20nOlxuICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICBkYXRlVmFsdWUgKz0gdGhpcy5nZXQxRGlnaXRNb250aChkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgZGF0ZVZhbHVlICs9IHRoaXMuZ2V0MkRpZ2l0TW9udGgoZGF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21tbSc6XG4gICAgICAgIGNhc2UgJ01NTSc6XG4gICAgICAgICAgZGF0ZVZhbHVlICs9IHRoaXMuZ2V0M0RpZ2l0TW9udGgoZGF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21tbW0nOlxuICAgICAgICBjYXNlICdNTU1NJzpcbiAgICAgICAgICBkYXRlVmFsdWUgKz0gdGhpcy5nZXQ0RGlnaXRNb250aChkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgIGRhdGVWYWx1ZSArPSB0aGlzLmdldDFEaWdpdERheShkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICBjYXNlICdERCc6XG4gICAgICAgICAgZGF0ZVZhbHVlICs9IHRoaXMuZ2V0MkRpZ2l0RGF5KGRhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZGQnOlxuICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgIGRhdGVWYWx1ZSArPSB0aGlzLmdldDNEaWdpdERheShkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGRkZCc6XG4gICAgICAgIGNhc2UgJ0REREQnOlxuICAgICAgICAgIGRhdGVWYWx1ZSArPSB0aGlzLmdldDREaWdpdERheShkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0ZVZhbHVlO1xuICB9XG5cbiAgLypcbiAgVGltZSBGb3JtYXR0aW5nIFJ1bGVzXG5cbiAgaCAtIGhvdXIgdG8gMSBkaWdpdCBvbiAxMiBob3VyIGNsb2NrIC0gd2l0aG91dCBsZWFkaW5nIDBcbiAgaGggLSBob3VyIHRvIDIgZGlnaXRzIG9uIDEyIGhvdXIgY2xvY2sgLSB3aXRoIGxlYWRpbmcgMFxuICBIIC0gaG91ciB0byAxIGRpZ2l0IG9uIDI0IGhvdXIgY2xvY2sgLSB3aXRob3V0IGxlYWRpbmcgMFxuICBISCAtIGhvdXIgdG8gMiBkaWdpdHMgb24gMjQgaG91ciBjbG9jayAtIHdpdGggbGVhZGluZyAwXG4gIG0gLSBtaW51dGUgdG8gMSBkaWdpdCAtIHdpdGhvdXQgbGVhZGluZyAwXG4gIG1tL21pL01JIC0gbWludXRlIHRvIDIgZGlnaXRzIC0gd2l0aCBsZWFkaW5nIDBcbiAgcy9TIC0gc2Vjb25kIHRvIDEgZGlnaXQgLSB3aXRob3V0IGxlYWRpbmcgMFxuICBzcy9TUyAtIHNlY29uZCB0byAyIGRpZ2l0cyAtIHdpdGggbGVhZGluZyAwXG4gIGYvRiAtIHRlbnRoIG9mIGEgc2Vjb25kIGUuZy4gMjAwOS0wNi0xNVQxMzo0NTozMC42MTcwMDAwIC0+IDZcbiAgZmYvRkYgLSBodW5kcmVkdGhzIG9mIGEgc2Vjb25kIGUuZy4gMjAwOS0wNi0xNVQxMzo0NTozMC42MTcwMDAwIC0+IDYxXG4gIGZmZi9GRkYgLSBtaWxsaXNlY29uZHMgZS5nLiA2LzE1LzIwMDkgMTM6NDU6MzAuNjE3IC0+IDYxN1xuICBmZmZmL0ZGRkYgLSB0ZW4gdGhvdXNhbmR0aHMgb2YgYSBzZWNvbmQgZS5nLiAyMDA5LTA2LTE1VDEzOjQ1OjMwLjYxNzUwMDAgLT4gNjE3NVxuICBmZmZmZi9GRkZGRiAtIGh1bmRyZWQgdGhvdXNhbmR0aHMgb2YgYSBzZWNvbmQgZS5nLiAyMDA5LTA2LTE1VDEzOjQ1OjMwLjYxNzU0MDAgLT4gNjE3NTRcbiAgZmZmZmZmL0ZGRkZGRiAtIG1pbGxpb250aHMgb2YgYSBzZWNvbmQgZS5nLiAyMDA5LTA2LTE1VDEzOjQ1OjMwLjYxNzU0MjAgLT4gNjE3NTQyXG4gIHQvVCAtIGZpcnN0IGNoYXJhY3RlciBvZiBBTS9QTVxuICB0dC9UVCAtIGJvdGggY2hhcmFjdGVycyBvZiBBTS9QTVxuXG4gICovXG4gIGZvcm1hdFRpbWUoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdFBhcnRzQW5kRGl2aWRlciA9IHRoaXMuZ2V0Rm9ybWF0UGFydHNCeURpdmlkZXIoZm9ybWF0KTtcbiAgICBsZXQgdGltZVZhbHVlID0gJyc7XG4gICAgZm9ybWF0UGFydHNBbmREaXZpZGVyLnBhcnRzLmZvckVhY2gocGFydCA9PiB7XG4gICAgICBpZiAodGltZVZhbHVlICE9PSAnJylcbiAgICAgICAgdGltZVZhbHVlICs9IGZvcm1hdFBhcnRzQW5kRGl2aWRlci5kaXZpZGVyO1xuICAgICAgc3dpdGNoKHBhcnQpIHtcbiAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0MURpZ2l0MTJIb3VycyhkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldDJEaWdpdDEySG91cnMoZGF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0gnOlxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldDFEaWdpdDI0SG91cnMoZGF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0hIJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXQyRGlnaXQyNEhvdXJzKGRhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXQxRGlnaXRNaW51dGVzKGRhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtaSc6XG4gICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgY2FzZSAnTUknOlxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldDJEaWdpdE1pbnV0ZXMoZGF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICBjYXNlICdTJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXQxRGlnaXRTZWNvbmRzKGRhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgIGNhc2UgJ1NTJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXQyRGlnaXRTZWNvbmRzKGRhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0JzpcbiAgICAgICAgY2FzZSAnVCc6XG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0MURpZ2l0QW1QbShkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndHQnOlxuICAgICAgICBjYXNlICdUVCc6XG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0MkRpZ2l0QW1QbShkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZic6XG4gICAgICAgIGNhc2UgJ0YnOlxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldFhEaWdpdE1pbGxpc2Vjb25kKGRhdGUsICdmJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ZmJzpcbiAgICAgICAgY2FzZSAnRkYnOlxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldFhEaWdpdE1pbGxpc2Vjb25kKGRhdGUsICdmZmYnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZmZmJzpcbiAgICAgICAgY2FzZSAnRkZGJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXRYRGlnaXRNaWxsaXNlY29uZChkYXRlLCAnZmZmJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ZmZmYnOlxuICAgICAgICBjYXNlICdGRkZGJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXRYRGlnaXRNaWxsaXNlY29uZChkYXRlLCAnZmZmZicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmZmZmZic6XG4gICAgICAgIGNhc2UgJ0ZGRkZGJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXRYRGlnaXRNaWxsaXNlY29uZChkYXRlLCAnZmZmZmYnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZmZmZmZmJzpcbiAgICAgICAgY2FzZSAnRkZGRkZGJzpcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXRYRGlnaXRNaWxsaXNlY29uZChkYXRlLCAnZmZmZmZmJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRpbWVWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0MURpZ2l0RGF5KGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xuICAgIHJldHVybiAnJyArIGRheTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0MkRpZ2l0RGF5KGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xuICAgIHJldHVybiB0aGlzLnBhZERhdGVFbGVtZW50KGRheSk7XG4gIH1cblxuICBwcml2YXRlIGdldDNEaWdpdERheShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZygnZGVmYXVsdCcsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0NERpZ2l0RGF5KGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlU3RyaW5nKCdkZWZhdWx0JywgeyB3ZWVrZGF5OiAnbG9uZycgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldDFEaWdpdE1vbnRoKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgICByZXR1cm4gJycgKyBtb250aDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0MkRpZ2l0TW9udGgoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICAgIHJldHVybiB0aGlzLnBhZERhdGVFbGVtZW50KG1vbnRoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0M0RpZ2l0TW9udGgoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2RlZmF1bHQnLCB7IG1vbnRoOiAnbG9uZycgfSkuc3Vic3RyaW5nKDAsMyk7XG4gIH1cblxuICBwcml2YXRlIGdldDREaWdpdE1vbnRoKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlU3RyaW5nKCdkZWZhdWx0JywgeyBtb250aDogJ2xvbmcnIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQyRGlnaXRZZWFyKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZ1bGxZZWFyID0gJycgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgcmV0dXJuIGZ1bGxZZWFyWzJdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQ0RGlnaXRZZWFyKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0MURpZ2l0MTJIb3VycyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGdldDJEaWdpdDEySG91cnMoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldEhvdXJzKCk7XG4gICAgcmV0dXJuIHRoaXMucGFkRGF0ZUVsZW1lbnQoaG91cnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQxRGlnaXQyNEhvdXJzKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0MkRpZ2l0MjRIb3VycyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0SG91cnMoKTtcbiAgICByZXR1cm4gdGhpcy5wYWREYXRlRWxlbWVudChob3Vycyk7XG4gIH1cblxuICBwcml2YXRlIGdldDFEaWdpdE1pbnV0ZXMoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGdldDJEaWdpdE1pbnV0ZXMoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpO1xuICAgIHJldHVybiB0aGlzLnBhZERhdGVFbGVtZW50KG1pbnV0ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQxRGlnaXRTZWNvbmRzKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLmdldFNlY29uZHMoKS50b1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQyRGlnaXRTZWNvbmRzKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFNlY29uZHMoKTtcbiAgICByZXR1cm4gdGhpcy5wYWREYXRlRWxlbWVudChzZWNvbmRzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0MURpZ2l0QW1QbShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoJ3QnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0MkRpZ2l0QW1QbShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoJ3R0Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldFhEaWdpdE1pbGxpc2Vjb25kKGRhdGU6IERhdGUsIGZvcm1hdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGZvcm1hdCk7XG4gIH1cblxuICBwcml2YXRlIHBhZERhdGVFbGVtZW50KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiAodmFsdWUgPCAxMCkgPyAnMCcgKyB2YWx1ZSA6ICcnICsgdmFsdWU7XG4gIH1cblxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ect-date-formatter.mjs","sources":["../../../projects/ect-date-formatter/src/lib/ect-date-formatter.service.ts","../../../projects/ect-date-formatter/src/lib/ect-date-formatter.module.ts","../../../projects/ect-date-formatter/src/public-api.ts","../../../projects/ect-date-formatter/src/ect-date-formatter.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nexport interface IDateTimeFormatSections {\n parts: string[];\n divider: string;\n}\n\nexport interface IEctDateFormatterService {\n getISO8601DateFormat(date: Date): string;\n getISO8601TimeFormat(date: Date): string;\n getISO8601DateAndTimeFormat(date: Date): string;\n formatDate(date: Date, format: string): string;\n formatTime(date: Date, format: string): string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EctDateFormatterService implements IEctDateFormatterService {\n\n getISO8601DateFormat(date: Date): string {\n return this.get4DigitYear(date) + '-' + this.get2DigitMonth(date) + '-' + this.get2DigitDay(date);\n }\n\n getISO8601TimeFormat(date: Date): string {\n return this.get2Digit24Hours(date) + ':' + this.get2DigitMinutes(date) + ':' + this.get2DigitSeconds(date);\n }\n\n getISO8601DateAndTimeFormat(date: Date): string {\n return this.getISO8601DateFormat(date) + 'T' + this.getISO8601TimeFormat(date);\n }\n\n private getFormatPartsByDivider(input: string): IDateTimeFormatSections {\n if (input.indexOf(' ') > 0) {\n return {\n parts: input.split(' '),\n divider: ' '\n } as IDateTimeFormatSections;\n }\n if (input.indexOf('/') > 0) {\n return {\n parts: input.split('/'),\n divider: '/'\n } as IDateTimeFormatSections;\n }\n if (input.indexOf(':') > 0) {\n return {\n parts: input.split(':'),\n divider: ':'\n } as IDateTimeFormatSections;\n }\n if (input.indexOf(';') > 0) {\n return {\n parts: input.split(';'),\n divider: ';'\n } as IDateTimeFormatSections;\n }\n if (input.indexOf('.') > 0) {\n return {\n parts: input.split('.'),\n divider: '.'\n } as IDateTimeFormatSections;\n }\n if (input.indexOf(',') > 0) {\n return {\n parts: input.split(','),\n divider: ','\n } as IDateTimeFormatSections;\n }\n if (input.indexOf('-') > 0) {\n return {\n parts: input.split('-'),\n divider: '-'\n } as IDateTimeFormatSections;\n }\n if (input.indexOf('_') > 0) {\n return {\n parts: input.split('_'),\n divider: '_'\n } as IDateTimeFormatSections;\n }\n\n return { parts: [], divider: ''} as IDateTimeFormatSections;\n }\n\n\n /*\n Date Formatting Rules\n\n yy/YY – two-digit year, e.g. 21\n yyyy/YYYY – four-digit year, e.g. 2021\n m/M – one-digit month for months below 10, e.g. 3\n mm/MM – two-digit month, e.g. 03\n mmm/MMM – three-letter abbreviation for month, e.g. Mar\n mmmm/MMMM – month spelled out in full, e.g. March\n d/D – one-digit day of the month for days below 10, e.g. 2\n dd/DD – two-digit day of the month, e.g. 02\n ddd/DDD – three-letter abbreviation for day of the week, e.g. Fri\n dddd/DDDD – day of the week spelled out in full, e.g. Friday\n\n */\n formatDate(date: Date, format: string): string {\n const formatPartsAndDivider = this.getFormatPartsByDivider(format);\n let dateValue = '';\n formatPartsAndDivider.parts.forEach(part => {\n if (dateValue !== '')\n dateValue += formatPartsAndDivider.divider;\n switch(part) {\n case 'yy':\n case 'YY':\n dateValue += this.get2DigitYear(date);\n break;\n case 'yyyy':\n case 'YYYY':\n dateValue += this.get4DigitYear(date);\n break;\n case 'm':\n case 'M':\n dateValue += this.get1DigitMonth(date);\n break;\n case 'mm':\n case 'MM':\n dateValue += this.get2DigitMonth(date);\n break;\n case 'mmm':\n case 'MMM':\n dateValue += this.get3DigitMonth(date);\n break;\n case 'mmmm':\n case 'MMMM':\n dateValue += this.get4DigitMonth(date);\n break;\n case 'd':\n case 'D':\n dateValue += this.get1DigitDay(date);\n break;\n case 'dd':\n case 'DD':\n dateValue += this.get2DigitDay(date);\n break;\n case 'ddd':\n case 'DDD':\n dateValue += this.get3DigitDay(date);\n break;\n case 'dddd':\n case 'DDDD':\n dateValue += this.get4DigitDay(date);\n break;\n }\n });\n return dateValue;\n }\n\n /*\n Time Formatting Rules\n\n h - hour to 1 digit on 12 hour clock - without leading 0\n hh - hour to 2 digits on 12 hour clock - with leading 0\n H - hour to 1 digit on 24 hour clock - without leading 0\n HH - hour to 2 digits on 24 hour clock - with leading 0\n m - minute to 1 digit - without leading 0\n mm/mi/MI - minute to 2 digits - with leading 0\n s/S - second to 1 digit - without leading 0\n ss/SS - second to 2 digits - with leading 0\n f/F - tenth of a second e.g. 2009-06-15T13:45:30.6170000 -> 6\n ff/FF - hundredths of a second e.g. 2009-06-15T13:45:30.6170000 -> 61\n fff/FFF - milliseconds e.g. 6/15/2009 13:45:30.617 -> 617\n ffff/FFFF - ten thousandths of a second e.g. 2009-06-15T13:45:30.6175000 -> 6175\n fffff/FFFFF - hundred thousandths of a second e.g. 2009-06-15T13:45:30.6175400 -> 61754\n ffffff/FFFFFF - millionths of a second e.g. 2009-06-15T13:45:30.6175420 -> 617542\n t/T - first character of AM/PM\n tt/TT - both characters of AM/PM\n\n */\n formatTime(date: Date, format: string): string {\n const formatPartsAndDivider = this.getFormatPartsByDivider(format);\n let timeValue = '';\n formatPartsAndDivider.parts.forEach(part => {\n if (timeValue !== '')\n timeValue += formatPartsAndDivider.divider;\n switch(part) {\n case 'h':\n timeValue += this.get1Digit12Hours(date);\n break;\n case 'hh':\n timeValue += this.get2Digit12Hours(date);\n break;\n case 'H':\n timeValue += this.get1Digit24Hours(date);\n break;\n case 'HH':\n timeValue += this.get2Digit24Hours(date);\n break;\n case 'm':\n timeValue += this.get1DigitMinutes(date);\n break;\n case 'mi':\n case 'mm':\n case 'MI':\n timeValue += this.get2DigitMinutes(date);\n break;\n case 's':\n case 'S':\n timeValue += this.get1DigitSeconds(date);\n break;\n case 'ss':\n case 'SS':\n timeValue += this.get2DigitSeconds(date);\n break;\n case 't':\n case 'T':\n timeValue += this.get1DigitAmPm(date);\n break;\n case 'tt':\n case 'TT':\n timeValue += this.get2DigitAmPm(date);\n break;\n case 'f':\n case 'F':\n timeValue += this.getXDigitMillisecond(date, 'f');\n break;\n case 'ff':\n case 'FF':\n timeValue += this.getXDigitMillisecond(date, 'fff');\n break;\n case 'fff':\n case 'FFF':\n timeValue += this.getXDigitMillisecond(date, 'fff');\n break;\n case 'ffff':\n case 'FFFF':\n timeValue += this.getXDigitMillisecond(date, 'ffff');\n break;\n case 'fffff':\n case 'FFFFF':\n timeValue += this.getXDigitMillisecond(date, 'fffff');\n break;\n case 'ffffff':\n case 'FFFFFF':\n timeValue += this.getXDigitMillisecond(date, 'ffffff');\n break;\n }\n });\n return timeValue;\n }\n\n private get1DigitDay(date: Date): string {\n const day = date.getDate();\n return '' + day;\n }\n\n private get2DigitDay(date: Date): string {\n const day = date.getDate();\n return this.padDateElement(day);\n }\n\n private get3DigitDay(date: Date): string {\n return date.toLocaleString('default', { weekday: 'short' });\n }\n\n private get4DigitDay(date: Date): string {\n return date.toLocaleString('default', { weekday: 'long' });\n }\n\n private get1DigitMonth(date: Date): string {\n const month = date.getMonth() + 1;\n return '' + month;\n }\n\n private get2DigitMonth(date: Date): string {\n const month = date.getMonth() + 1;\n return this.padDateElement(month);\n }\n\n private get3DigitMonth(date: Date): string {\n return date.toLocaleString('default', { month: 'long' }).substring(0,3);\n }\n\n private get4DigitMonth(date: Date): string {\n return date.toLocaleString('default', { month: 'long' });\n }\n\n private get2DigitYear(date: Date): string {\n const fullYear = '' + date.getFullYear();\n return fullYear[2];\n }\n\n private get4DigitYear(date: Date): string {\n return date.getFullYear().toString();\n }\n\n private get1Digit12Hours(date: Date): string {\n return date.getHours().toString();\n }\n\n private get2Digit12Hours(date: Date): string {\n const hours = date.getHours();\n return this.padDateElement(hours);\n }\n\n private get1Digit24Hours(date: Date): string {\n return date.getHours().toString();\n }\n\n private get2Digit24Hours(date: Date): string {\n const hours = date.getHours();\n return this.padDateElement(hours);\n }\n\n private get1DigitMinutes(date: Date): string {\n return date.getMinutes().toString();\n }\n\n private get2DigitMinutes(date: Date): string {\n const minutes = date.getMinutes();\n return this.padDateElement(minutes);\n }\n\n private get1DigitSeconds(date: Date): string {\n return date.getSeconds().toString();\n }\n\n private get2DigitSeconds(date: Date): string {\n const seconds = date.getSeconds();\n return this.padDateElement(seconds);\n }\n\n private get1DigitAmPm(date: Date): string {\n return date.toLocaleDateString('t');\n }\n\n private get2DigitAmPm(date: Date): string {\n return date.toLocaleDateString('tt');\n }\n\n private getXDigitMillisecond(date: Date, format): string {\n return date.toLocaleDateString(format);\n }\n\n private padDateElement(value: number): string {\n return (value < 10) ? '0' + value : '' + value;\n }\n\n}\n","import { EctDateFormatterService } from './ect-date-formatter.service';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\nimport { NgModule, LOCALE_ID } from '@angular/core';\r\n\r\n@NgModule({\r\n declarations: [ ],\r\n imports: [\r\n HttpClientModule\r\n ],\r\n exports: [ ],\r\n providers: [\r\n EctDateFormatterService,\r\n { provide: LOCALE_ID, useValue: 'en-GB' }\r\n ]\r\n})\r\nexport class EctDateFormatterModule { }\r\n","/*\n Copyright (c) 2023 Exodus Cloud Technology Solutions Ltd\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n*/\n\nexport * from './lib/ect-date-formatter.service';\nexport * from './lib/ect-date-formatter.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|