@osovitny/anatoly 3.17.2 → 3.17.4
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/esm2022/lib/core/consts/settings.mjs +13 -1
- package/esm2022/lib/core/converts/convert.mjs +1 -34
- package/esm2022/lib/core/converts/dateConvert.mjs +58 -0
- package/esm2022/lib/core/index.mjs +3 -1
- package/esm2022/lib/core/is.mjs +98 -0
- package/esm2022/lib/core/localization/localization.service.mjs +63 -87
- package/esm2022/lib/core/localization/localize.pipe.mjs +13 -14
- package/esm2022/lib/core/services/starter.service.mjs +3 -3
- package/esm2022/lib/core/utils.mjs +1 -7
- package/fesm2022/osovitny-anatoly.mjs +281 -178
- package/fesm2022/osovitny-anatoly.mjs.map +1 -1
- package/lib/core/consts/settings.d.ts +11 -0
- package/lib/core/converts/convert.d.ts +0 -5
- package/lib/core/converts/dateConvert.d.ts +7 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/core/is.d.ts +23 -0
- package/lib/core/localization/localization.service.d.ts +7 -8
- package/lib/core/utils.d.ts +0 -2
- package/package.json +2 -2
|
@@ -50,4 +50,16 @@ export const ClientApps = AppCoreSettings?.clientApps;
|
|
|
50
50
|
//ClientApp
|
|
51
51
|
export const AppName = document.getElementById('appName').getAttribute('data-appname');
|
|
52
52
|
export const AppSettings = getAppSettingsByName(AppName);
|
|
53
|
-
|
|
53
|
+
//DateFormats
|
|
54
|
+
export const dateFormats = {
|
|
55
|
+
medium: "dd MMM yyyy",
|
|
56
|
+
short: "dd/MM/yyyy"
|
|
57
|
+
};
|
|
58
|
+
export const timeFormats = {
|
|
59
|
+
medium: "HH:mm:ss",
|
|
60
|
+
short: "HH:mm"
|
|
61
|
+
};
|
|
62
|
+
export const dateTimeFormats = {
|
|
63
|
+
medium: 'dd MMM yyyy HH:mm'
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb25zdHMvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCRTtBQUVGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxFQUFFO0lBQ25DLElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUV0QixJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWxCLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBSTtJQUN2QyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUM7SUFFdEIsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbEIsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNyQixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0QyxDQUNDLFFBQVEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FDdEIsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FDNUQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUVyRCxRQUFRO0FBQ1IsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxHQUFHLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsZUFBZSxFQUFFLFVBQVUsQ0FBQztBQUV0RCxXQUFXO0FBQ1gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFzQixDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM3RyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekQsYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixNQUFNLEVBQUUsYUFBYTtJQUNyQixLQUFLLEVBQUUsWUFBWTtDQUNwQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsbUJBQW1CO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjYgSnVuIDIwMjBcclxuXHJcbiAgRXhhbXBsZXM6XHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvYmxvYi9tYWluL3NyYy9zZXJ2ZXIvZWRpdG9yU2VydmljZXMudHNcclxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9ibG9iL21haW4vc3JjL2NvbXBpbGVyL2NvcmUudHNcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwU2V0dGluZ3NCeUlkKGlkKSB7XHJcbiAgbGV0IGFwcHMgPSBDbGllbnRBcHBzO1xyXG5cclxuICBpZiAoYXBwcyAmJiBpZCkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcHBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBhcHAgPSBhcHBzW2ldO1xyXG5cclxuICAgICAgaWYgKGFwcC5pZCA9PSBpZCkge1xyXG4gICAgICAgIHJldHVybiBhcHA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwU2V0dGluZ3NCeU5hbWUobmFtZSkge1xyXG4gIGxldCBhcHBzID0gQ2xpZW50QXBwcztcclxuXHJcbiAgaWYgKGFwcHMgJiYgbmFtZSkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcHBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBhcHAgPSBhcHBzW2ldO1xyXG5cclxuICAgICAgaWYgKGFwcC5uYW1lID09IG5hbWUpIHtcclxuICAgICAgICByZXR1cm4gYXBwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEFwcENvcmVTZXR0aW5ncyA9IEpTT04ucGFyc2UoXHJcbiAgKChcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHBDb3JlU2V0dGluZ3MnKVxyXG4gICkgYXMgSFRNTElucHV0RWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWFwcGNvcmVzZXR0aW5ncycpXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3QgTDEwTlVybCA9IGAke0FwcENvcmVTZXR0aW5ncz8ubDEwblVybH1gO1xyXG5cclxuLy9XZWJBcHBcclxuZXhwb3J0IGNvbnN0IEFwcFZlcnNpb24gPSBgJHtBcHBDb3JlU2V0dGluZ3M/LnZlcnNpb259YDtcclxuZXhwb3J0IGNvbnN0IEFwaVVybCA9IGAke0FwcENvcmVTZXR0aW5ncz8uYXBpVXJsfWA7XHJcbmV4cG9ydCBjb25zdCBDbGllbnRBcHBzID0gQXBwQ29yZVNldHRpbmdzPy5jbGllbnRBcHBzO1xyXG5cclxuLy9DbGllbnRBcHBcclxuZXhwb3J0IGNvbnN0IEFwcE5hbWUgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcE5hbWUnKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtYXBwbmFtZScpO1xyXG5leHBvcnQgY29uc3QgQXBwU2V0dGluZ3MgPSBnZXRBcHBTZXR0aW5nc0J5TmFtZShBcHBOYW1lKTtcclxuXHJcbi8vRGF0ZUZvcm1hdHNcclxuZXhwb3J0IGNvbnN0IGRhdGVGb3JtYXRzID0ge1xyXG4gIG1lZGl1bTogXCJkZCBNTU0geXl5eVwiLFxyXG4gIHNob3J0OiBcImRkL01NL3l5eXlcIlxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHRpbWVGb3JtYXRzID0ge1xyXG4gIG1lZGl1bTogXCJISDptbTpzc1wiLFxyXG4gIHNob3J0OiBcIkhIOm1tXCJcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkYXRlVGltZUZvcm1hdHMgPSB7XHJcbiAgbWVkaXVtOiAnZGQgTU1NIHl5eXkgSEg6bW0nXHJcbn07XHJcblxyXG4iXX0=
|
|
@@ -93,38 +93,5 @@ export class Convert {
|
|
|
93
93
|
return Boolean(value);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
/* Date ---------------------------------------------------------------------BEGIN*/
|
|
97
|
-
static localToUtcDate(value) {
|
|
98
|
-
if (value) {
|
|
99
|
-
return new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate());
|
|
100
|
-
}
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
static localToUtcDateTime(value) {
|
|
104
|
-
if (value) {
|
|
105
|
-
return new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(), value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds());
|
|
106
|
-
}
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
static utcToLocalDate(value) {
|
|
110
|
-
if (value) {
|
|
111
|
-
return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate()));
|
|
112
|
-
}
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
static utcToLocalDateTime(value) {
|
|
116
|
-
if (value) {
|
|
117
|
-
return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds()));
|
|
118
|
-
}
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
static dateToString(date) {
|
|
122
|
-
return date.getFullYear() +
|
|
123
|
-
'-' + this.pad(date.getMonth() + 1) +
|
|
124
|
-
'-' + this.pad(date.getDate()) +
|
|
125
|
-
' ' + this.pad(date.getHours()) +
|
|
126
|
-
':' + this.pad(date.getMinutes()) +
|
|
127
|
-
':' + this.pad(date.getSeconds());
|
|
128
|
-
}
|
|
129
96
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2NvbnZlcnRzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNLE9BQU8sT0FBTztJQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTTtRQUN2QixJQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLO1FBQzNDLEtBQUssSUFBSSxDQUFDLElBQUksV0FBVztZQUFFLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLENBQUM7UUFFakUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxXQUFZO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxJQUFJLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSzt3QkFDekIsT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUE7UUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFD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LENBQUMsZUFBZSxFQUFFLENBQUMsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUk7UUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3ZCLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbkMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlCLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5IEp1bmUgMjAyMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcclxuICBwcml2YXRlIHN0YXRpYyBwYWQobnVtYmVyKSB7XHJcbiAgICBpZiAobnVtYmVyIDwgMTApIHtcclxuICAgICAgcmV0dXJuICcwJyArIG51bWJlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBudW1iZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVudW1Ub1N0cmluZyhlbnVtZXJhdGlvbiwgdmFsdWUpIHtcclxuICAgIGZvciAobGV0IGsgaW4gZW51bWVyYXRpb24pIGlmIChlbnVtZXJhdGlvbltrXSA9PSB2YWx1ZSkgcmV0dXJuIGs7XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVudW1Ub0FycmF5KGVudW1lcmF0aW9uLCB2YWx1ZUFzSW50ID0gdHJ1ZSwgbm90SW5jbHVkZXM/KSB7XHJcbiAgICBjb25zdCBub3RJbmNsdWRlRmlsZXIgPSAodmFsdWUpID0+IHtcclxuICAgICAgaWYgKGlzTmFOKE51bWJlcih2YWx1ZSkpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAobm90SW5jbHVkZXMpIHtcclxuICAgICAgICBmb3IgKGxldCBpIGluIG5vdEluY2x1ZGVzKSB7XHJcbiAgICAgICAgICBpZiAobm90SW5jbHVkZXNbaV0gPT0gdmFsdWUpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZUFzSW50KSB7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtZXJhdGlvbilcclxuICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobm90SW5jbHVkZUZpbGVyKVxyXG4gICAgICAgICAgICAgICAgICAgLm1hcChrZXkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhcnNlSW50KGtleSksXHJcbiAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGVudW1lcmF0aW9uW2tleV1cclxuICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bWVyYXRpb24pXHJcbiAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG5vdEluY2x1ZGVGaWxlcilcclxuICAgICAgICAgICAgICAgICAgIC5tYXAoa2V5ID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBrZXksXHJcbiAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGVudW1lcmF0aW9uW2tleV1cclxuICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5nVG9BcnJheShzdHI6IHN0cmluZywgc2VwYXJhdG9yOiBzdHJpbmcgPSAnLCcpIHtcclxuICAgIGlmIChzdHIpIHtcclxuICAgICAgcmV0dXJuIHN0ci5zcGxpdChzZXBhcmF0b3IpLmZpbHRlcihlbGVtZW50ID0+IGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5nVG9JbnRBcnJheShzdHI6IHN0cmluZywgc2VwYXJhdG9yOiBzdHJpbmcgPSAnLCcpIHtcclxuICAgIGlmIChzdHIpIHtcclxuICAgICAgcmV0dXJuIHN0ci5zcGxpdChzZXBhcmF0b3IpLmZpbHRlcihlbGVtZW50ID0+IGVsZW1lbnQpLm1hcCh2YWx1ZSA9PiBwYXJzZUludCh2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29tcGFueTJTdHJpbmcoY29tcDphbnkpOnN0cmluZyB7XHJcbiAgICBsZXQgY29tcGFueSA9IEpTT04ucGFyc2UoY29tcCk7XHJcbiAgICBpZihjb21wYW55KVxyXG4gICAge1xyXG4gICAgICByZXR1cm4gYCR7Y29tcGFueS5uYW1lfSAke2NvbXBhbnkucGhvbmV9ICR7Y29tcGFueS5lbWFpbH0gJHtjb21wYW55LndlYnNpdGVVcmx9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYWRkcmVzczJTdHJpbmcoYWRyOmFueSk6c3RyaW5nIHtcclxuICAgIGxldCBhZGRyZXNzID0gSlNPTi5wYXJzZShhZHIpO1xyXG4gICAgcmV0dXJuIGAke2FkZHJlc3Muc3RyZWV0fSAke2FkZHJlc3Muc3RyZWV0Mn0gJHthZGRyZXNzLmNpdHl9ICR7YWRkcmVzcy5zdGF0ZU9yUmVnaW9ufSAke2FkZHJlc3MuemlwY29kZX0gJHthZGRyZXNzLmNvdW50cnl9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5nVG9Cb29sZWFuKHZhbHVlKSB7XHJcbiAgICBzd2l0Y2ggKHZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpKSB7XHJcbiAgICAgIGNhc2UgXCJ0cnVlXCI6XHJcbiAgICAgIGNhc2UgXCJ5ZXNcIjpcclxuICAgICAgY2FzZSBcIjFcIjpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICAgIGNhc2UgXCJmYWxzZVwiOlxyXG4gICAgICBjYXNlIFwibm9cIjpcclxuICAgICAgY2FzZSBcIjBcIjpcclxuICAgICAgY2FzZSBudWxsOlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogRGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1CRUdJTiovXHJcbiAgcHVibGljIHN0YXRpYyBsb2NhbFRvVXRjRGF0ZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUuZ2V0VVRDRnVsbFllYXIoKSwgdmFsdWUuZ2V0VVRDTW9udGgoKSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbG9jYWxUb1V0Y0RhdGVUaW1lKHZhbHVlOiBEYXRlKTogRGF0ZSB8IG51bGwge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpLCB2YWx1ZS5nZXRVVENEYXRlKCksXHJcbiAgICAgICAgICB2YWx1ZS5nZXRVVENIb3VycygpLCB2YWx1ZS5nZXRVVENNaW51dGVzKCksIHZhbHVlLmdldFVUQ1NlY29uZHMoKSwgdmFsdWUuZ2V0VVRDTWlsbGlzZWNvbmRzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdXRjVG9Mb2NhbERhdGUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB1dGNUb0xvY2FsRGF0ZVRpbWUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSxcclxuICAgICAgICAgIHZhbHVlLmdldEhvdXJzKCksIHZhbHVlLmdldE1pbnV0ZXMoKSwgdmFsdWUuZ2V0U2Vjb25kcygpLCB2YWx1ZS5nZXRNaWxsaXNlY29uZHMoKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGF0ZVRvU3RyaW5nKGRhdGUpIHtcclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAnLScgKyB0aGlzLnBhZChkYXRlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAgICctJyArIHRoaXMucGFkKGRhdGUuZ2V0RGF0ZSgpKSArXHJcbiAgICAgICcgJyArIHRoaXMucGFkKGRhdGUuZ2V0SG91cnMoKSkgK1xyXG4gICAgICAnOicgKyB0aGlzLnBhZChkYXRlLmdldE1pbnV0ZXMoKSkgK1xyXG4gICAgICAnOicgKyB0aGlzLnBhZChkYXRlLmdldFNlY29uZHMoKSk7XHJcbiAgfVxyXG4gIC8qIERhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5EKi9cclxufVxyXG4iXX0=
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2NvbnZlcnRzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNLE9BQU8sT0FBTztJQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTTtRQUN2QixJQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLO1FBQzNDLEtBQUssSUFBSSxDQUFDLElBQUksV0FBVztZQUFFLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLENBQUM7UUFFakUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxXQUFZO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxJQUFJLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSzt3QkFDekIsT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUE7UUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztpQkFDakIsTUFBTSxDQUFDLGVBQWUsQ0FBQztpQkFDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDWCxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7YUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQzthQUNJLENBQUM7WUFDSixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2lCQUNqQixNQUFNLENBQUMsZUFBZSxDQUFDO2lCQUN2QixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNYLEtBQUssRUFBRSxHQUFHO2dCQUNWLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDO2FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFXLEVBQUUsWUFBb0IsR0FBRztRQUM5RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLFlBQW9CLEdBQUc7UUFDakUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RixDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFRO1FBQ25DLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBRyxPQUFPLEVBQ1YsQ0FBQztZQUNDLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQU87UUFDbEMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLO1FBQ2pDLFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbkMsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssR0FBRztnQkFDTixPQUFPLElBQUksQ0FBQztZQUVkLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLEdBQUcsQ0FBQztZQUNULEtBQUssSUFBSTtnQkFDUCxPQUFPLEtBQUssQ0FBQztZQUVmO2dCQUNFLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjkgSnVuZSAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xyXG4gIHByaXZhdGUgc3RhdGljIHBhZChudW1iZXIpIHtcclxuICAgIGlmIChudW1iZXIgPCAxMCkge1xyXG4gICAgICByZXR1cm4gJzAnICsgbnVtYmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bWJlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW51bVRvU3RyaW5nKGVudW1lcmF0aW9uLCB2YWx1ZSkge1xyXG4gICAgZm9yIChsZXQgayBpbiBlbnVtZXJhdGlvbikgaWYgKGVudW1lcmF0aW9uW2tdID09IHZhbHVlKSByZXR1cm4gaztcclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW51bVRvQXJyYXkoZW51bWVyYXRpb24sIHZhbHVlQXNJbnQgPSB0cnVlLCBub3RJbmNsdWRlcz8pIHtcclxuICAgIGNvbnN0IG5vdEluY2x1ZGVGaWxlciA9ICh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAoaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChub3RJbmNsdWRlcykge1xyXG4gICAgICAgIGZvciAobGV0IGkgaW4gbm90SW5jbHVkZXMpIHtcclxuICAgICAgICAgIGlmIChub3RJbmNsdWRlc1tpXSA9PSB2YWx1ZSlcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlQXNJbnQpIHtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudW1lcmF0aW9uKVxyXG4gICAgICAgICAgICAgICAgICAgLmZpbHRlcihub3RJbmNsdWRlRmlsZXIpXHJcbiAgICAgICAgICAgICAgICAgICAubWFwKGtleSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQoa2V5KSxcclxuICAgICAgICAgICAgICAgICAgICAgdGV4dDogZW51bWVyYXRpb25ba2V5XVxyXG4gICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtZXJhdGlvbilcclxuICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobm90SW5jbHVkZUZpbGVyKVxyXG4gICAgICAgICAgICAgICAgICAgLm1hcChrZXkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGtleSxcclxuICAgICAgICAgICAgICAgICAgICAgdGV4dDogZW51bWVyYXRpb25ba2V5XVxyXG4gICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0FycmF5KHN0cjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICByZXR1cm4gc3RyLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0ludEFycmF5KHN0cjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICByZXR1cm4gc3RyLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCkubWFwKHZhbHVlID0+IHBhcnNlSW50KHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb21wYW55MlN0cmluZyhjb21wOmFueSk6c3RyaW5nIHtcclxuICAgIGxldCBjb21wYW55ID0gSlNPTi5wYXJzZShjb21wKTtcclxuICAgIGlmKGNvbXBhbnkpXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBgJHtjb21wYW55Lm5hbWV9ICR7Y29tcGFueS5waG9uZX0gJHtjb21wYW55LmVtYWlsfSAke2NvbXBhbnkud2Vic2l0ZVVybH1gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhZGRyZXNzMlN0cmluZyhhZHI6YW55KTpzdHJpbmcge1xyXG4gICAgbGV0IGFkZHJlc3MgPSBKU09OLnBhcnNlKGFkcik7XHJcbiAgICByZXR1cm4gYCR7YWRkcmVzcy5zdHJlZXR9ICR7YWRkcmVzcy5zdHJlZXQyfSAke2FkZHJlc3MuY2l0eX0gJHthZGRyZXNzLnN0YXRlT3JSZWdpb259ICR7YWRkcmVzcy56aXBjb2RlfSAke2FkZHJlc3MuY291bnRyeX1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0Jvb2xlYW4odmFsdWUpIHtcclxuICAgIHN3aXRjaCAodmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCkpIHtcclxuICAgICAgY2FzZSBcInRydWVcIjpcclxuICAgICAgY2FzZSBcInllc1wiOlxyXG4gICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgY2FzZSBcImZhbHNlXCI6XHJcbiAgICAgIGNhc2UgXCJub1wiOlxyXG4gICAgICBjYXNlIFwiMFwiOlxyXG4gICAgICBjYXNlIG51bGw6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny vadim@osovitny.com
|
|
8
|
+
Anatoly Osovitny anatoly@osovitny.com
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
09 Feb 2024
|
|
12
|
+
|
|
13
|
+
Source:
|
|
14
|
+
https://github.com/date-fns/date-fns/blob/main/src/toDate/index.ts
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
export class DateConvert {
|
|
20
|
+
static toDate(argument) {
|
|
21
|
+
const argStr = Object.prototype.toString.call(argument);
|
|
22
|
+
if (argument instanceof Date || (typeof argument === "object" && argStr === "[object Date]")) {
|
|
23
|
+
return argument;
|
|
24
|
+
}
|
|
25
|
+
else if (typeof argument === "number" || argStr === "[object Number]" ||
|
|
26
|
+
typeof argument === "string" || argStr === "[object String]") {
|
|
27
|
+
return new Date(argument);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return new Date(NaN);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
static localToUtcDate(value) {
|
|
34
|
+
if (value) {
|
|
35
|
+
return new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate());
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
static localToUtcDateTime(value) {
|
|
40
|
+
if (value) {
|
|
41
|
+
return new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(), value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds());
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
static utcToLocalDate(value) {
|
|
46
|
+
if (value) {
|
|
47
|
+
return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate()));
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
static utcToLocalDateTime(value) {
|
|
52
|
+
if (value) {
|
|
53
|
+
return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds()));
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUNvbnZlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb252ZXJ0cy9kYXRlQ29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNLE9BQU8sV0FBVztJQUNmLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBZ0M7UUFDbkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhELElBQUksUUFBUSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM3RixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO2FBQ0ksSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLGlCQUFpQjtZQUM1RCxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDdEUsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQVc7UUFDdEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQVc7UUFDMUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQzNFLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUNoRyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBVztRQUN0QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQVc7UUFDMUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFDM0UsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQ3JGLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDkgRmViIDIwMjRcclxuXHJcbiAgU291cmNlOlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFpbi9zcmMvdG9EYXRlL2luZGV4LnRzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVDb252ZXJ0IHtcclxuICBwdWJsaWMgc3RhdGljIHRvRGF0ZShhcmd1bWVudDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyk6IERhdGUge1xyXG4gICAgY29uc3QgYXJnU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KTtcclxuXHJcbiAgICBpZiAoYXJndW1lbnQgaW5zdGFuY2VvZiBEYXRlIHx8ICh0eXBlb2YgYXJndW1lbnQgPT09IFwib2JqZWN0XCIgJiYgYXJnU3RyID09PSBcIltvYmplY3QgRGF0ZV1cIikpIHtcclxuICAgICAgcmV0dXJuIGFyZ3VtZW50O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcIm51bWJlclwiIHx8IGFyZ1N0ciA9PT0gXCJbb2JqZWN0IE51bWJlcl1cIiB8fFxyXG4gICAgICAgICAgICAgdHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiIHx8IGFyZ1N0ciA9PT0gXCJbb2JqZWN0IFN0cmluZ11cIikge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoYXJndW1lbnQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBsb2NhbFRvVXRjRGF0ZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUuZ2V0VVRDRnVsbFllYXIoKSwgdmFsdWUuZ2V0VVRDTW9udGgoKSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbG9jYWxUb1V0Y0RhdGVUaW1lKHZhbHVlOiBEYXRlKTogRGF0ZSB8IG51bGwge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpLCB2YWx1ZS5nZXRVVENEYXRlKCksXHJcbiAgICAgICAgICB2YWx1ZS5nZXRVVENIb3VycygpLCB2YWx1ZS5nZXRVVENNaW51dGVzKCksIHZhbHVlLmdldFVUQ1NlY29uZHMoKSwgdmFsdWUuZ2V0VVRDTWlsbGlzZWNvbmRzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdXRjVG9Mb2NhbERhdGUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB1dGNUb0xvY2FsRGF0ZVRpbWUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSxcclxuICAgICAgICAgIHZhbHVlLmdldEhvdXJzKCksIHZhbHVlLmdldE1pbnV0ZXMoKSwgdmFsdWUuZ2V0U2Vjb25kcygpLCB2YWx1ZS5nZXRNaWxsaXNlY29uZHMoKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
export * from './consts/settings';
|
|
18
18
|
//converts
|
|
19
19
|
export * from './converts/convert';
|
|
20
|
+
export * from './converts/dateConvert';
|
|
20
21
|
export * from './converts/xmlFormatter';
|
|
21
22
|
export * from './go/base-go.service';
|
|
22
23
|
export * from './guards/once-import.guard';
|
|
@@ -48,6 +49,7 @@ export * from './services/web-storage.service';
|
|
|
48
49
|
export * from './browser';
|
|
49
50
|
export * from './dom';
|
|
50
51
|
export * from './guid';
|
|
52
|
+
export * from './is';
|
|
51
53
|
export * from './subs';
|
|
52
54
|
export * from './utils';
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLFFBQVE7QUFDUixjQUFjLG1CQUFtQixDQUFDO0FBRWxDLFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxjQUFjO0FBQ2QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxTQUFTO0FBQ1QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLFFBQVE7QUFDUixjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGVBQWU7QUFDZixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxhQUFhO0FBQ2IsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxVQUFVO0FBQ1YsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUU5QyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLE1BQU0sQ0FBQztBQUNyQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyIEF1ZyAyMDIyXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9jb25zdHNcclxuZXhwb3J0ICogZnJvbSAnLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5cclxuLy9jb252ZXJ0c1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnRzL2NvbnZlcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnRzL2RhdGVDb252ZXJ0JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJ0cy94bWxGb3JtYXR0ZXInO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9nby9iYXNlLWdvLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9vbmNlLWltcG9ydC5ndWFyZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvcic7XHJcblxyXG4vL2xvY2FsaXphdGlvblxyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9zZXR0aW5ncy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlJztcclxuXHJcbi8vbG9nZ2luZ1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZ2dpbmcvZ2xvYmFsRXJyb3JIYW5kbGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG4vL21vZGVsc1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9hcHBjb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuLy9ub3RpZmljYXRpb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9ucy9hbGVydHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMvaW50ZXJmYWNlcy9ub3RpZmljYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMvc2VydmljZXMvbm90aWZpY2F0aW9uLXNlcnZpY2UnO1xyXG5cclxuLy9wZXJmb3JtYW5jZVxyXG5leHBvcnQgKiBmcm9tICcuL3BlcmZvcm1hbmNlL3N0b3B3YXRjaCc7XHJcblxyXG4vL3NlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kbS5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1hbmFseXRpY3Muc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pZGxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc3RhcnRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy93ZWItc3RvcmFnZS5zZXJ2aWNlJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9icm93c2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9kb20nO1xyXG5leHBvcnQgKiBmcm9tICcuL2d1aWQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2lzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdWJzJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny vadim@osovitny.com
|
|
8
|
+
Anatoly Osovitny anatoly@osovitny.com
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
09 Feb 2024
|
|
12
|
+
|
|
13
|
+
Sources:
|
|
14
|
+
https://github.com/date-fns/date-fns/blob/main/src/isDate/index.ts
|
|
15
|
+
https://github.com/date-fns/date-fns/blob/main/src/isValid/index.ts
|
|
16
|
+
|
|
17
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
18
|
+
</file>
|
|
19
|
+
*/
|
|
20
|
+
export class is {
|
|
21
|
+
/**
|
|
22
|
+
* @name isDate
|
|
23
|
+
* @summary Is the given value a date?
|
|
24
|
+
*/
|
|
25
|
+
static date(value) {
|
|
26
|
+
return (value instanceof Date ||
|
|
27
|
+
(typeof value === "object" && Object.prototype.toString.call(value) === "[object Date]"));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @name isDateValid
|
|
31
|
+
* @summary Is the given date valid?
|
|
32
|
+
*/
|
|
33
|
+
static dateValid(date) {
|
|
34
|
+
if (!is.date(date) && typeof date !== "number") {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
let d = new Date(date);
|
|
38
|
+
return !isNaN(Number(d));
|
|
39
|
+
}
|
|
40
|
+
static dateInvalid(date) {
|
|
41
|
+
return !is.dateValid(date);
|
|
42
|
+
}
|
|
43
|
+
static objectNullOrEmpty(obj) {
|
|
44
|
+
return !obj || Object.keys(obj).length == 0;
|
|
45
|
+
}
|
|
46
|
+
static string(value) {
|
|
47
|
+
return (typeof value === 'string' || value instanceof String);
|
|
48
|
+
}
|
|
49
|
+
static emptyString(value) {
|
|
50
|
+
return (is.string(value) && (value.length == 0));
|
|
51
|
+
}
|
|
52
|
+
static notEmptyString(value) {
|
|
53
|
+
return (is.string(value) && (value.length > 0));
|
|
54
|
+
}
|
|
55
|
+
static number(value) {
|
|
56
|
+
return (typeof value === 'number');
|
|
57
|
+
}
|
|
58
|
+
static boolean(value) {
|
|
59
|
+
return (typeof value === 'boolean');
|
|
60
|
+
}
|
|
61
|
+
static array(value) {
|
|
62
|
+
return (value instanceof Array);
|
|
63
|
+
}
|
|
64
|
+
static emptyArray(value) {
|
|
65
|
+
return (is.array(value) && (value.length == 0));
|
|
66
|
+
}
|
|
67
|
+
static notEmptyArray(value) {
|
|
68
|
+
return (is.array(value) && (value.length > 0));
|
|
69
|
+
}
|
|
70
|
+
static undefined(value) {
|
|
71
|
+
return (typeof value === 'undefined');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/*
|
|
75
|
+
is = {
|
|
76
|
+
DONE string: function (obj) { return (typeof obj === 'string'); },
|
|
77
|
+
DONE emptyString: function (obj) { return (is.string(obj) && (obj.length == 0)); },
|
|
78
|
+
DONE nonEmptyString: function (obj) { return (is.string(obj) && (obj.length > 0)); },
|
|
79
|
+
DONE number: function (obj) { return (typeof obj === 'number'); },
|
|
80
|
+
DONE bool: function (obj) { return (typeof obj === 'boolean'); },
|
|
81
|
+
DONE array: function (obj) { return (obj instanceof Array); },
|
|
82
|
+
DONE emptyArray: function (obj) { return (is.array(obj) && (obj.length == 0)); },
|
|
83
|
+
DONE notEmptyArray: function (obj) { return (is.array(obj) && (obj.length > 0)); },
|
|
84
|
+
DONE undefined: function (obj) { return (typeof obj === 'undefined'); },
|
|
85
|
+
|
|
86
|
+
'null': function (obj) { return (obj === null); },
|
|
87
|
+
notNull: function (obj) { return (obj !== null); },
|
|
88
|
+
invalid: function (obj) { return (is['null'](obj) || is.undefined(obj)); },
|
|
89
|
+
valid: function (obj) { return (!is['null'](obj) && !is.undefined(obj)); },
|
|
90
|
+
|
|
91
|
+
document: function (obj) { return (obj === document); },
|
|
92
|
+
window: function (obj) { return (obj === window); },
|
|
93
|
+
element: function (obj) { return (obj instanceof HTMLElement); },
|
|
94
|
+
event: function (obj) { return (obj instanceof Event); },
|
|
95
|
+
link: function (obj) { return (is.element(obj) && (obj.tagName == 'A')); }
|
|
96
|
+
};
|
|
97
|
+
*/
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9pcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0JFO0FBRUYsTUFBTSxPQUFPLEVBQUU7SUFDYjs7O01BR0U7SUFDSyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFDdEIsT0FBTyxDQUNMLEtBQUssWUFBWSxJQUFJO1lBQ3JCLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxlQUFlLENBQUMsQ0FDekYsQ0FBQztJQUNKLENBQUM7SUFFRDs7O01BR0U7SUFDSyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUk7UUFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0MsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQzVCLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRztRQUNqQyxPQUFPLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1FBQ3hCLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUs7UUFDN0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSztRQUNoQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1FBQ3hCLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1FBQ3pCLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLO1FBQ3ZCLE9BQU8sQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSztRQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLO1FBQy9CLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUs7UUFDM0IsT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVCRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAwOSBGZWIgMjAyNFxyXG5cclxuICBTb3VyY2VzOlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFpbi9zcmMvaXNEYXRlL2luZGV4LnRzXHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYWluL3NyYy9pc1ZhbGlkL2luZGV4LnRzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIGlzIHtcclxuICAvKipcclxuICAgKiBAbmFtZSBpc0RhdGVcclxuICAgKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gdmFsdWUgYSBkYXRlP1xyXG4gICovXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgfHxcclxuICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgRGF0ZV1cIilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAbmFtZSBpc0RhdGVWYWxpZFxyXG4gICAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIHZhbGlkP1xyXG4gICovXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlVmFsaWQoZGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFpcy5kYXRlKGRhdGUpICYmIHR5cGVvZiBkYXRlICE9PSBcIm51bWJlclwiKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmV0dXJuICFpc05hTihOdW1iZXIoZCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlSW52YWxpZChkYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWlzLmRhdGVWYWxpZChkYXRlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgb2JqZWN0TnVsbE9yRW1wdHkob2JqKSB7XHJcbiAgICByZXR1cm4gIW9iaiB8fCBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA9PSAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmcodmFsdWUpIHtcclxuICAgIHJldHVybiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVtcHR5U3RyaW5nKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKGlzLnN0cmluZyh2YWx1ZSkgJiYgKHZhbHVlLmxlbmd0aCA9PSAwKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIG5vdEVtcHR5U3RyaW5nKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKGlzLnN0cmluZyh2YWx1ZSkgJiYgKHZhbHVlLmxlbmd0aCA+IDApKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbnVtYmVyKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBib29sZWFuKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYXJyYXkodmFsdWUpIHtcclxuICAgIHJldHVybiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVtcHR5QXJyYXkodmFsdWUpIHtcclxuICAgIHJldHVybiAoaXMuYXJyYXkodmFsdWUpICYmICh2YWx1ZS5sZW5ndGggPT0gMCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBub3RFbXB0eUFycmF5KHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKGlzLmFycmF5KHZhbHVlKSAmJiAodmFsdWUubGVuZ3RoID4gMCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB1bmRlZmluZWQodmFsdWUpIHtcclxuICAgIHJldHVybiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyk7XHJcbiAgfVxyXG59XHJcblxyXG4vKlxyXG5pcyA9IHtcclxuICBET05FIHN0cmluZzogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKTsgfSxcclxuICBET05FIGVtcHR5U3RyaW5nOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiAoaXMuc3RyaW5nKG9iaikgJiYgKG9iai5sZW5ndGggPT0gMCkpOyB9LFxyXG4gIERPTkUgbm9uRW1wdHlTdHJpbmc6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIChpcy5zdHJpbmcob2JqKSAmJiAob2JqLmxlbmd0aCA+IDApKTsgfSxcclxuICBET05FIG51bWJlcjogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gKHR5cGVvZiBvYmogPT09ICdudW1iZXInKTsgfSxcclxuICBET05FIGJvb2w6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuICh0eXBlb2Ygb2JqID09PSAnYm9vbGVhbicpOyB9LFxyXG4gIERPTkUgYXJyYXk6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIChvYmogaW5zdGFuY2VvZiBBcnJheSk7IH0sXHJcbiAgRE9ORSBlbXB0eUFycmF5OiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiAoaXMuYXJyYXkob2JqKSAmJiAob2JqLmxlbmd0aCA9PSAwKSk7IH0sXHJcbiAgRE9ORSBub3RFbXB0eUFycmF5OiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiAoaXMuYXJyYXkob2JqKSAmJiAob2JqLmxlbmd0aCA+IDApKTsgfSxcclxuICBET05FIHVuZGVmaW5lZDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKTsgfSxcclxuXHJcbiAgJ251bGwnOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiAob2JqID09PSBudWxsKTsgfSxcclxuICBub3ROdWxsOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiAob2JqICE9PSBudWxsKTsgfSxcclxuICBpbnZhbGlkOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiAoaXNbJ251bGwnXShvYmopIHx8IGlzLnVuZGVmaW5lZChvYmopKTsgfSxcclxuICB2YWxpZDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gKCFpc1snbnVsbCddKG9iaikgJiYgIWlzLnVuZGVmaW5lZChvYmopKTsgfSxcclxuXHJcbiAgZG9jdW1lbnQ6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIChvYmogPT09IGRvY3VtZW50KTsgfSxcclxuICB3aW5kb3c6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIChvYmogPT09IHdpbmRvdyk7IH0sXHJcbiAgZWxlbWVudDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gKG9iaiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTsgfSxcclxuICBldmVudDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gKG9iaiBpbnN0YW5jZW9mIEV2ZW50KTsgfSxcclxuICBsaW5rOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiAoaXMuZWxlbWVudChvYmopICYmIChvYmoudGFnTmFtZSA9PSAnQScpKTsgfVxyXG59O1xyXG4qL1xyXG4iXX0=
|
|
@@ -10,21 +10,26 @@
|
|
|
10
10
|
Created:
|
|
11
11
|
05 May 2020
|
|
12
12
|
|
|
13
|
+
Source:
|
|
14
|
+
https://date-fns.org/v3.3.1/docs/formatDistance
|
|
15
|
+
https://date-fns.org/v3.3.1/docs/formatDistanceToNow
|
|
16
|
+
|
|
13
17
|
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
18
|
</file>
|
|
15
19
|
*/
|
|
16
20
|
//Node
|
|
17
21
|
import { Injectable, Output, EventEmitter } from '@angular/core';
|
|
18
|
-
//
|
|
19
|
-
import { format,
|
|
22
|
+
//date-fns
|
|
23
|
+
import { format, formatDistanceToNow, formatDistance } from 'date-fns';
|
|
20
24
|
import { utcToZonedTime } from 'date-fns-tz';
|
|
21
25
|
// VadimOS: IE11-fix. DON'T change next imports!
|
|
22
26
|
// Reason: https://github.com/date-fns/date-fns/issues/666
|
|
23
27
|
import enUS from 'date-fns/locale/en-US';
|
|
24
28
|
//App
|
|
25
|
-
import { Convert } from '../converts/convert';
|
|
26
29
|
import { Subs } from '../subs';
|
|
27
|
-
import {
|
|
30
|
+
import { dateFormats, dateTimeFormats } from '../consts/settings';
|
|
31
|
+
import { DateConvert } from '../converts/dateConvert';
|
|
32
|
+
import { is } from '../is';
|
|
28
33
|
import * as i0 from "@angular/core";
|
|
29
34
|
import * as i1 from "@ngx-translate/core";
|
|
30
35
|
export class LocalizationService {
|
|
@@ -87,7 +92,7 @@ export class LocalizationService {
|
|
|
87
92
|
}
|
|
88
93
|
return dfnLocale;
|
|
89
94
|
}
|
|
90
|
-
//getLocalized
|
|
95
|
+
//getLocalized
|
|
91
96
|
getLocalizedValue(key, params) {
|
|
92
97
|
const value = this.translate.instant(key);
|
|
93
98
|
if (!params || params.length === 0) {
|
|
@@ -95,91 +100,36 @@ export class LocalizationService {
|
|
|
95
100
|
}
|
|
96
101
|
return this.format(value, params);
|
|
97
102
|
}
|
|
98
|
-
getLocalizedDate(
|
|
99
|
-
let date =
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
return format(localDate, 'dd MMM yyyy', this.dateFnsLocale);
|
|
103
|
-
}
|
|
104
|
-
return "Invalid Date";
|
|
105
|
-
}
|
|
106
|
-
getLocalizedDateTime(key) {
|
|
107
|
-
let date = new Date(key);
|
|
108
|
-
if (isValid(date)) {
|
|
109
|
-
let localDate = Convert.utcToLocalDateTime(date);
|
|
110
|
-
return format(localDate, 'dd MMM yyyy HH:mm', this.dateFnsLocale);
|
|
103
|
+
getLocalizedDate(value) {
|
|
104
|
+
let date = DateConvert.toDate(value);
|
|
105
|
+
if (is.dateInvalid(date)) {
|
|
106
|
+
return "Invalid Date";
|
|
111
107
|
}
|
|
112
|
-
return
|
|
108
|
+
return format(date, dateFormats.medium, this.dateFnsLocale);
|
|
113
109
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
110
|
+
getLocalizedDateTime(value) {
|
|
111
|
+
let date = DateConvert.toDate(value);
|
|
112
|
+
if (is.dateInvalid(date)) {
|
|
113
|
+
return "Invalid Date";
|
|
117
114
|
}
|
|
118
|
-
return
|
|
115
|
+
return format(date, dateTimeFormats.medium, this.dateFnsLocale);
|
|
119
116
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
return "Invalid Date";
|
|
117
|
+
//UTC ---------------------------------------------------------------------BEGIN
|
|
118
|
+
getUTCToLocalizedDate(value) {
|
|
119
|
+
return this.safeUtcToZonedTime(value, dateFormats.medium);
|
|
125
120
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if (!Utils.isString(key)) {
|
|
129
|
-
key = key.toString();
|
|
130
|
-
}
|
|
131
|
-
if (key) {
|
|
132
|
-
if (key.indexOf("T") == -1) {
|
|
133
|
-
key = key.replace(" ", "T");
|
|
134
|
-
}
|
|
135
|
-
if (key.indexOf("Z") == -1) {
|
|
136
|
-
key = key + "Z";
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
140
|
-
if (browserTimeZone) {
|
|
141
|
-
let localDateTime = utcToZonedTime(key, browserTimeZone);
|
|
142
|
-
return format(localDateTime, 'dd.MM.yyyy', this.dateFnsLocale);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
return format(new Date(key), 'dd.MM.yyyy', this.dateFnsLocale);
|
|
146
|
-
}
|
|
121
|
+
getUTCToLocalizedDateTime(value) {
|
|
122
|
+
return this.safeUtcToZonedTime(value, dateTimeFormats.medium);
|
|
147
123
|
}
|
|
148
|
-
|
|
149
|
-
if (!
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
if (key) {
|
|
153
|
-
if (key.indexOf("T") == -1) {
|
|
154
|
-
key = key.replace(" ", "T");
|
|
155
|
-
}
|
|
156
|
-
if (key.indexOf("Z") == -1) {
|
|
157
|
-
key = key + "Z";
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
161
|
-
if (browserTimeZone) {
|
|
162
|
-
let localDateTime = utcToZonedTime(key, browserTimeZone);
|
|
163
|
-
return format(localDateTime, 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
|
|
124
|
+
safeUtcToZonedTime(date, conversionFormat = null) {
|
|
125
|
+
if (!date) {
|
|
126
|
+
return null;
|
|
164
127
|
}
|
|
165
|
-
else {
|
|
166
|
-
return format(new Date(key), 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
//https://date-fns.org/v1.30.1/docs/distanceInWords
|
|
170
|
-
getUTCToLocalizedDistanceToNowInWords(date) {
|
|
171
|
-
date = this.safeUtcToZonedTime(date);
|
|
172
|
-
if (isValid(new Date(date))) {
|
|
173
|
-
return formatDistanceToNow(new Date(date), this.dateFnsLocale);
|
|
174
|
-
}
|
|
175
|
-
return "Invalid Date";
|
|
176
|
-
}
|
|
177
|
-
safeUtcToZonedTime(date) {
|
|
178
128
|
let result = date;
|
|
179
129
|
try {
|
|
180
|
-
if (date) {
|
|
181
|
-
if (date.indexOf("T")
|
|
182
|
-
date = date.replace("
|
|
130
|
+
if (typeof date === 'string') {
|
|
131
|
+
if (date.indexOf("T") > -1) {
|
|
132
|
+
date = date.replace("T", " ");
|
|
183
133
|
}
|
|
184
134
|
if (date.indexOf("Z") == -1) {
|
|
185
135
|
date = date + "Z";
|
|
@@ -187,19 +137,45 @@ export class LocalizationService {
|
|
|
187
137
|
}
|
|
188
138
|
let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
189
139
|
if (browserTimeZone) {
|
|
190
|
-
|
|
140
|
+
if (conversionFormat) {
|
|
141
|
+
result = utcToZonedTime(date, browserTimeZone);
|
|
142
|
+
result = format(result, conversionFormat, this.dateFnsLocale);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
result = utcToZonedTime(date, browserTimeZone).toString();
|
|
146
|
+
}
|
|
191
147
|
}
|
|
192
148
|
else {
|
|
193
|
-
|
|
149
|
+
if (conversionFormat) {
|
|
150
|
+
result = format(new Date(date), conversionFormat, this.dateFnsLocale);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
result = new Date(date).toString();
|
|
154
|
+
}
|
|
194
155
|
}
|
|
195
156
|
}
|
|
196
157
|
catch {
|
|
197
|
-
|
|
198
|
-
console.log("UTC to Local conversion failed for :" + date.toString());
|
|
199
|
-
}
|
|
158
|
+
result = "Invalid Date";
|
|
200
159
|
}
|
|
201
160
|
return result;
|
|
202
161
|
}
|
|
162
|
+
//UTC ---------------------------------------------------------------------END
|
|
163
|
+
//Distance ----------------------------------------------------------------BEGIN
|
|
164
|
+
getLocalizedDistanceInWords(endedDateStr, startedDateStr) {
|
|
165
|
+
let endedDate = DateConvert.toDate(endedDateStr);
|
|
166
|
+
let startedDate = DateConvert.toDate(startedDateStr);
|
|
167
|
+
if (is.dateInvalid(endedDate) || is.dateInvalid(startedDate)) {
|
|
168
|
+
return "Invalid Date";
|
|
169
|
+
}
|
|
170
|
+
return formatDistance(endedDate, startedDate, this.dateFnsLocale);
|
|
171
|
+
}
|
|
172
|
+
getLocalizedDistanceToNowInWords(value) {
|
|
173
|
+
let date = DateConvert.toDate(value);
|
|
174
|
+
if (is.dateInvalid(date)) {
|
|
175
|
+
return "Invalid Date";
|
|
176
|
+
}
|
|
177
|
+
return formatDistanceToNow(date, this.dateFnsLocale);
|
|
178
|
+
}
|
|
203
179
|
static { this.ɵfac = function LocalizationService_Factory(t) { return new (t || LocalizationService)(i0.ɵɵinject(i1.TranslateService)); }; }
|
|
204
180
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LocalizationService, factory: LocalizationService.ɵfac, providedIn: 'root' }); }
|
|
205
181
|
}
|
|
@@ -211,4 +187,4 @@ export class LocalizationService {
|
|
|
211
187
|
}], () => [{ type: i1.TranslateService }], { langchange: [{
|
|
212
188
|
type: Output
|
|
213
189
|
}] }); })();
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRzVFLFVBQVU7QUFDVixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxnREFBZ0Q7QUFDaEQsMERBQTBEO0FBQzFELE9BQU8sSUFBSSxNQUFNLHVCQUF1QixDQUFDO0FBRXpDLEtBQUs7QUFDTCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFLakMsTUFBTSxPQUFPLG1CQUFtQjtJQVc5QixZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVZ2QyxTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUdoQyxNQUFNO1FBQ0UsdUJBQWtCLEdBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRS9CLFNBQVM7UUFDQyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHM0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FB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QW1CLG1CQUZsQixNQUFNOztpRkFFUCxtQkFBbUI7Y0FIL0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CO2lEQVVXLFVBQVU7a0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDUgTWF5IDIwMjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBMYW5nQ2hhbmdlRXZlbnQgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbi8vRGF0ZSBmbnNcclxuaW1wb3J0IHsgZm9ybWF0LCBpc1ZhbGlkLCBmb3JtYXREaXN0YW5jZVRvTm93LCBmb3JtYXREaXN0YW5jZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdXRjVG9ab25lZFRpbWUgfSBmcm9tICdkYXRlLWZucy10eic7XHJcblxyXG4vLyBWYWRpbU9TOiBJRTExLWZpeC4gRE9OJ1QgY2hhbmdlIG5leHQgaW1wb3J0cyFcclxuLy8gUmVhc29uOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzY2NlxyXG5pbXBvcnQgZW5VUyBmcm9tICdkYXRlLWZucy9sb2NhbGUvZW4tVVMnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQ29udmVydCB9IGZyb20gJy4uL2NvbnZlcnRzL2NvbnZlcnQnO1xyXG5pbXBvcnQgeyBTdWJzIH0gZnJvbSAnLi4vc3Vicyc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzID0gbmV3IFN1YnMoKTtcclxuICBwcml2YXRlIGRhdGVGbnNMb2NhbGU6IGFueTtcclxuXHJcbiAgLy9pMTBuXHJcbiAgcHJpdmF0ZSBzdXBwb3J0ZWRMYW5ndWFnZXM6IGFueSA9IFsnZW4nLCAncnUnLCAnZXMnXTtcclxuICBwcml2YXRlIGRlZmF1bHRMYW5ndWFnZSA9ICdlbic7XHJcblxyXG4gIC8vT3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBsYW5nY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuc2V0U3VwcG9ydGVkTGFuZ3VhZ2VzKHRoaXMuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcclxuICAgIHRoaXMuc2V0RGVmYXVsdExhbmd1YWdlKHRoaXMuZGVmYXVsdExhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdChzdHI6IHN0cmluZywgYXJncykge1xyXG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC97KFxcZCspfS9nLCBmdW5jdGlvbiAobWF0Y2gsIG51bWJlcikge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIGFyZ3NbbnVtYmVyXSAhPSAndW5kZWZpbmVkJ1xyXG4gICAgICAgID8gYXJnc1tudW1iZXJdXHJcbiAgICAgICAgOiBtYXRjaFxyXG4gICAgICAgIDtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbmZpZ3VyZVNldHRpbmdzKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICAvL2kxMG5cclxuICAgIGNvbnN0IGJyb3dzZXJMYW5nID0gdHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCk7XHJcbiAgICBjb25zdCBsYW5nID0gYnJvd3NlckxhbmcubWF0Y2goL2VufHJ1fGVzLykgPyBicm93c2VyTGFuZyA6IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG5cclxuICAgIC8vZGF0ZXNcclxuICAgIHRoaXMuZGF0ZUZuc0xvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcblxyXG4gICAgdGhpcy5zdWJzLnNpbmsgPSB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdMYW5ndWFnZSBDaGFuZ2VkJyk7XHJcbiAgICAgIHRoaXMubGFuZ2NoYW5nZS5lbWl0KGV2ZW50LmxhbmcpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGxhbmc7XHJcbiAgfVxyXG5cclxuICAvL0xhbmd1YWdlc1xyXG4gIHNldFN1cHBvcnRlZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5hZGRMYW5ncyhsYW5ndWFnZXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZyk7XHJcbiAgfVxyXG5cclxuICBzZXRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcclxuICB9XHJcblxyXG4gIC8vRGF0ZXNcclxuICBnZXREYXRlZm5zTG9jYWxlKCk6IGFueSB7XHJcbiAgICBsZXQgZGZuTG9jYWxlOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmdldEJyb3dzZXJMYW5ndWFnZSgpKSB7XHJcbiAgICAgIGNhc2UgJ2VuJzpcclxuICAgICAgICBkZm5Mb2NhbGUgPSB7IGxvY2FsZTogZW5VUyB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBkZm5Mb2NhbGUgPSB7IGxvY2FsZTogZW5VUyB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZm5Mb2NhbGU7XHJcbiAgfVxyXG5cclxuICAvL2dldExvY2FsaXplZC4uLlxyXG4gIGdldExvY2FsaXplZFZhbHVlKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5KTtcclxuXHJcbiAgICBpZiAoIXBhcmFtcyB8fCBwYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQodmFsdWUsIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWREYXRlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUoa2V5KTtcclxuXHJcbiAgICBpZiAoaXNWYWxpZChkYXRlKSkge1xyXG4gICAgICBsZXQgbG9jYWxEYXRlID0gQ29udmVydC51dGNUb0xvY2FsRGF0ZShkYXRlKTtcclxuICAgICAgcmV0dXJuIGZvcm1hdChsb2NhbERhdGUsICdkZCBNTU0geXl5eScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWREYXRlVGltZShrZXk6IHN0cmluZykge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZShrZXkpO1xyXG5cclxuICAgIGlmIChpc1ZhbGlkKGRhdGUpKSB7XHJcbiAgICAgIGxldCBsb2NhbERhdGUgPSBDb252ZXJ0LnV0Y1RvTG9jYWxEYXRlVGltZShkYXRlKTtcclxuICAgICAgcmV0dXJuIGZvcm1hdChsb2NhbERhdGUsICdkZCBNTU0geXl5eSBISDptbScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWREaXN0YW5jZUluV29yZHMoZW5kZWREYXRlOiBzdHJpbmcsIHN0YXJ0ZWREYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGlzVmFsaWQobmV3IERhdGUoZW5kZWREYXRlKSkgJiYgaXNWYWxpZChuZXcgRGF0ZShzdGFydGVkRGF0ZSkpKSB7XHJcbiAgICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShuZXcgRGF0ZShlbmRlZERhdGUpLCBuZXcgRGF0ZShzdGFydGVkRGF0ZSksIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWREaXN0YW5jZVRvTm93SW5Xb3JkcyhkYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGlzVmFsaWQobmV3IERhdGUoZGF0ZSkpKSB7XHJcbiAgICAgIHJldHVybiBmb3JtYXREaXN0YW5jZVRvTm93KG5ldyBEYXRlKGRhdGUpLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gIH1cclxuXHJcbiAgLy9VVEMgT3BlcmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIGdldFVUQ1RvTG9jYWxpemVkRGF0ZShrZXkpIHtcclxuICAgIGlmICghVXRpbHMuaXNTdHJpbmcoa2V5KSkge1xyXG4gICAgICBrZXkgPSBrZXkudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGlmIChrZXkuaW5kZXhPZihcIlRcIikgPT0gLTEpIHtcclxuICAgICAgICBrZXkgPSBrZXkucmVwbGFjZShcIiBcIiwgXCJUXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChrZXkuaW5kZXhPZihcIlpcIikgPT0gLTEpIHtcclxuICAgICAgICBrZXkgPSBrZXkgKyBcIlpcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCBicm93c2VyVGltZVpvbmUgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7XHJcblxyXG4gICAgaWYgKGJyb3dzZXJUaW1lWm9uZSkge1xyXG4gICAgICBsZXQgbG9jYWxEYXRlVGltZSA9IHV0Y1RvWm9uZWRUaW1lKGtleSwgYnJvd3NlclRpbWVab25lKTtcclxuICAgICAgcmV0dXJuIGZvcm1hdChsb2NhbERhdGVUaW1lLCAnZGQuTU0ueXl5eScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdChuZXcgRGF0ZShrZXkpLCAnZGQuTU0ueXl5eScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRVVENUb0xvY2FsaXplZERhdGVUaW1lKGtleTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIVV0aWxzLmlzU3RyaW5nKGtleSkpIHtcclxuICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICBpZiAoa2V5LmluZGV4T2YoXCJUXCIpID09IC0xKSB7XHJcbiAgICAgICAga2V5ID0ga2V5LnJlcGxhY2UoXCIgXCIsIFwiVFwiKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoa2V5LmluZGV4T2YoXCJaXCIpID09IC0xKSB7XHJcbiAgICAgICAga2V5ID0ga2V5ICsgXCJaXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgYnJvd3NlclRpbWVab25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xyXG5cclxuICAgIGlmIChicm93c2VyVGltZVpvbmUpIHtcclxuICAgICAgbGV0IGxvY2FsRGF0ZVRpbWUgPSB1dGNUb1pvbmVkVGltZShrZXksIGJyb3dzZXJUaW1lWm9uZSk7XHJcbiAgICAgIHJldHVybiBmb3JtYXQobG9jYWxEYXRlVGltZSwgJ2RkLk1NLnl5eXkgSEg6bW0nLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBmb3JtYXQobmV3IERhdGUoa2V5KSwgJ2RkLk1NLnl5eXkgSEg6bW0nLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9odHRwczovL2RhdGUtZm5zLm9yZy92MS4zMC4xL2RvY3MvZGlzdGFuY2VJbldvcmRzXHJcbiAgZ2V0VVRDVG9Mb2NhbGl6ZWREaXN0YW5jZVRvTm93SW5Xb3JkcyhkYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgZGF0ZSA9IHRoaXMuc2FmZVV0Y1RvWm9uZWRUaW1lKGRhdGUpO1xyXG5cclxuICAgIGlmIChpc1ZhbGlkKG5ldyBEYXRlKGRhdGUpKSkge1xyXG4gICAgICByZXR1cm4gZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZShkYXRlKSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICB9XHJcblxyXG4gIHNhZmVVdGNUb1pvbmVkVGltZShkYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSBkYXRlO1xyXG5cclxuICAgIHRyeVxyXG4gICAge1xyXG4gICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgIGlmIChkYXRlLmluZGV4T2YoXCJUXCIpID09IC0xKSB7XHJcbiAgICAgICAgICBkYXRlID0gZGF0ZS5yZXBsYWNlKFwiIFwiLCBcIlRcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGF0ZS5pbmRleE9mKFwiWlwiKSA9PSAtMSkge1xyXG4gICAgICAgICAgZGF0ZSA9IGRhdGUgKyBcIlpcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBicm93c2VyVGltZVpvbmUgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7XHJcbiAgICAgIGlmIChicm93c2VyVGltZVpvbmUpIHtcclxuICAgICAgICByZXN1bHQgPSB1dGNUb1pvbmVkVGltZShkYXRlLCBicm93c2VyVGltZVpvbmUpLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2hcclxuICAgIHtcclxuICAgICAgaWYgKGRhdGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlVUQyB0byBMb2NhbCBjb252ZXJzaW9uIGZhaWxlZCBmb3IgOlwiICsgZGF0ZS50b1N0cmluZygpKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUUsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsZ0RBQWdEO0FBQ2hELDBEQUEwRDtBQUMxRCxPQUFPLElBQUksTUFBTSx1QkFBdUIsQ0FBQztBQUV6QyxLQUFLO0FBQ0wsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sT0FBTyxDQUFDOzs7QUFLM0IsTUFBTSxPQUFPLG1CQUFtQjtJQVc5QixZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVZ2QyxTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUdoQyxNQUFNO1FBQ0UsdUJBQWtCLEdBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRS9CLFNBQVM7UUFDQyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHM0QsSUFB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LE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsOEVBQThFO0lBRTlFLGdGQUFnRjtJQUNoRiwyQkFBMkIsQ0FBQyxZQUFvQixFQUFFLGNBQXNCO1FBQ3RFLElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVyRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzdELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsS0FBYTtRQUM1QyxJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztvRkF2TFUsbUJBQW1CO3VFQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CLG1CQUZsQixNQUFNOztpRkFFUCxtQkFBbUI7Y0FIL0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CO2lEQVVXLFVBQVU7a0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDUgTWF5IDIwMjBcclxuXHJcbiAgU291cmNlOlxyXG4gICAgaHR0cHM6Ly9kYXRlLWZucy5vcmcvdjMuMy4xL2RvY3MvZm9ybWF0RGlzdGFuY2VcclxuICAgIGh0dHBzOi8vZGF0ZS1mbnMub3JnL3YzLjMuMS9kb2NzL2Zvcm1hdERpc3RhbmNlVG9Ob3dcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBMYW5nQ2hhbmdlRXZlbnQgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbi8vZGF0ZS1mbnNcclxuaW1wb3J0IHsgZm9ybWF0LCBmb3JtYXREaXN0YW5jZVRvTm93LCBmb3JtYXREaXN0YW5jZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdXRjVG9ab25lZFRpbWUgfSBmcm9tICdkYXRlLWZucy10eic7XHJcblxyXG4vLyBWYWRpbU9TOiBJRTExLWZpeC4gRE9OJ1QgY2hhbmdlIG5leHQgaW1wb3J0cyFcclxuLy8gUmVhc29uOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzY2NlxyXG5pbXBvcnQgZW5VUyBmcm9tICdkYXRlLWZucy9sb2NhbGUvZW4tVVMnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgU3VicyB9IGZyb20gJy4uL3N1YnMnO1xyXG5pbXBvcnQgeyBkYXRlRm9ybWF0cywgZGF0ZVRpbWVGb3JtYXRzIH0gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuaW1wb3J0IHsgRGF0ZUNvbnZlcnQgfSBmcm9tICcuLi9jb252ZXJ0cy9kYXRlQ29udmVydCc7XHJcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi4vaXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzID0gbmV3IFN1YnMoKTtcclxuICBwcml2YXRlIGRhdGVGbnNMb2NhbGU6IGFueTtcclxuXHJcbiAgLy9pMTBuXHJcbiAgcHJpdmF0ZSBzdXBwb3J0ZWRMYW5ndWFnZXM6IGFueSA9IFsnZW4nLCAncnUnLCAnZXMnXTtcclxuICBwcml2YXRlIGRlZmF1bHRMYW5ndWFnZSA9ICdlbic7XHJcblxyXG4gIC8vT3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBsYW5nY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuc2V0U3VwcG9ydGVkTGFuZ3VhZ2VzKHRoaXMuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcclxuICAgIHRoaXMuc2V0RGVmYXVsdExhbmd1YWdlKHRoaXMuZGVmYXVsdExhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdChzdHI6IHN0cmluZywgYXJncykge1xyXG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC97KFxcZCspfS9nLCBmdW5jdGlvbiAobWF0Y2gsIG51bWJlcikge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIGFyZ3NbbnVtYmVyXSAhPSAndW5kZWZpbmVkJ1xyXG4gICAgICAgID8gYXJnc1tudW1iZXJdXHJcbiAgICAgICAgOiBtYXRjaFxyXG4gICAgICAgIDtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbmZpZ3VyZVNldHRpbmdzKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICAvL2kxMG5cclxuICAgIGNvbnN0IGJyb3dzZXJMYW5nID0gdHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCk7XHJcbiAgICBjb25zdCBsYW5nID0gYnJvd3NlckxhbmcubWF0Y2goL2VufHJ1fGVzLykgPyBicm93c2VyTGFuZyA6IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG5cclxuICAgIC8vZGF0ZXNcclxuICAgIHRoaXMuZGF0ZUZuc0xvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcblxyXG4gICAgdGhpcy5zdWJzLnNpbmsgPSB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdMYW5ndWFnZSBDaGFuZ2VkJyk7XHJcbiAgICAgIHRoaXMubGFuZ2NoYW5nZS5lbWl0KGV2ZW50LmxhbmcpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGxhbmc7XHJcbiAgfVxyXG5cclxuICAvL0xhbmd1YWdlc1xyXG4gIHNldFN1cHBvcnRlZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5hZGRMYW5ncyhsYW5ndWFnZXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZyk7XHJcbiAgfVxyXG5cclxuICBzZXRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcclxuICB9XHJcblxyXG4gIC8vRGF0ZXNcclxuICBnZXREYXRlZm5zTG9jYWxlKCk6IGFueSB7XHJcbiAgICBsZXQgZGZuTG9jYWxlOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmdldEJyb3dzZXJMYW5ndWFnZSgpKSB7XHJcbiAgICAgIGNhc2UgJ2VuJzpcclxuICAgICAgICBkZm5Mb2NhbGUgPSB7IGxvY2FsZTogZW5VUyB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBkZm5Mb2NhbGUgPSB7IGxvY2FsZTogZW5VUyB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZm5Mb2NhbGU7XHJcbiAgfVxyXG5cclxuICAvL2dldExvY2FsaXplZFxyXG4gIGdldExvY2FsaXplZFZhbHVlKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5KTtcclxuXHJcbiAgICBpZiAoIXBhcmFtcyB8fCBwYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQodmFsdWUsIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWREYXRlKHZhbHVlKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXRlID0gRGF0ZUNvbnZlcnQudG9EYXRlKHZhbHVlKTtcclxuICAgIGlmIChpcy5kYXRlSW52YWxpZChkYXRlKSkge1xyXG4gICAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGRhdGVGb3JtYXRzLm1lZGl1bSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERhdGVUaW1lKHZhbHVlKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXRlID0gRGF0ZUNvbnZlcnQudG9EYXRlKHZhbHVlKTtcclxuICAgIGlmIChpcy5kYXRlSW52YWxpZChkYXRlKSkge1xyXG4gICAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGRhdGVUaW1lRm9ybWF0cy5tZWRpdW0sIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgfVxyXG5cclxuICAvL1VUQyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1CRUdJTlxyXG4gIGdldFVUQ1RvTG9jYWxpemVkRGF0ZSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FmZVV0Y1RvWm9uZWRUaW1lKHZhbHVlLCBkYXRlRm9ybWF0cy5tZWRpdW0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VVRDVG9Mb2NhbGl6ZWREYXRlVGltZSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FmZVV0Y1RvWm9uZWRUaW1lKHZhbHVlLCBkYXRlVGltZUZvcm1hdHMubWVkaXVtKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FmZVV0Y1RvWm9uZWRUaW1lKGRhdGUsIGNvbnZlcnNpb25Gb3JtYXQgPSBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICghZGF0ZSl7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXN1bHQgPSBkYXRlO1xyXG5cclxuICAgIHRyeVxyXG4gICAge1xyXG4gICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgaWYgKGRhdGUuaW5kZXhPZihcIlRcIikgPiAtMSkge1xyXG4gICAgICAgICAgZGF0ZSA9IGRhdGUucmVwbGFjZShcIlRcIiwgXCIgXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGUuaW5kZXhPZihcIlpcIikgPT0gLTEpIHtcclxuICAgICAgICAgIGRhdGUgPSBkYXRlICsgXCJaXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgYnJvd3NlclRpbWVab25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xyXG5cclxuICAgICAgaWYgKGJyb3dzZXJUaW1lWm9uZSkge1xyXG4gICAgICAgIGlmIChjb252ZXJzaW9uRm9ybWF0KSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB1dGNUb1pvbmVkVGltZShkYXRlLCBicm93c2VyVGltZVpvbmUpO1xyXG4gICAgICAgICAgcmVzdWx0ID0gZm9ybWF0KHJlc3VsdCwgY29udmVyc2lvbkZvcm1hdCwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB1dGNUb1pvbmVkVGltZShkYXRlLCBicm93c2VyVGltZVpvbmUpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChjb252ZXJzaW9uRm9ybWF0KSB7XHJcbiAgICAgICAgICByZXN1bHQgPSBmb3JtYXQobmV3IERhdGUoZGF0ZSksIGNvbnZlcnNpb25Gb3JtYXQsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSkudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoXHJcbiAgICB7XHJcbiAgICAgIHJlc3VsdCA9IFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbiAgLy9VVEMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5EXHJcblxyXG4gIC8vRGlzdGFuY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUJFR0lOXHJcbiAgZ2V0TG9jYWxpemVkRGlzdGFuY2VJbldvcmRzKGVuZGVkRGF0ZVN0cjogc3RyaW5nLCBzdGFydGVkRGF0ZVN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBlbmRlZERhdGUgPSBEYXRlQ29udmVydC50b0RhdGUoZW5kZWREYXRlU3RyKTtcclxuICAgIGxldCBzdGFydGVkRGF0ZSA9IERhdGVDb252ZXJ0LnRvRGF0ZShzdGFydGVkRGF0ZVN0cik7XHJcblxyXG4gICAgaWYgKGlzLmRhdGVJbnZhbGlkKGVuZGVkRGF0ZSkgfHwgaXMuZGF0ZUludmFsaWQoc3RhcnRlZERhdGUpKSB7XHJcbiAgICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShlbmRlZERhdGUsIHN0YXJ0ZWREYXRlLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxpemVkRGlzdGFuY2VUb05vd0luV29yZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGF0ZSA9IERhdGVDb252ZXJ0LnRvRGF0ZSh2YWx1ZSk7XHJcbiAgICBpZiAoaXMuZGF0ZUludmFsaWQoZGF0ZSkpIHtcclxuICAgICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlVG9Ob3coZGF0ZSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICB9XHJcbiAgLy9EaXN0YW5jZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5EXHJcbn1cclxuXHJcbiJdfQ==
|