@libs-ui/utils 0.2.8 → 0.2.10-6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cache.d.ts +15 -15
- package/communicate-micro.d.ts +5 -4
- package/constants.d.ts +1 -0
- package/encode-url.define.d.ts +1 -0
- package/esm2022/cache.mjs +69 -89
- package/esm2022/communicate-micro.mjs +22 -19
- package/esm2022/constants.mjs +2 -1
- package/esm2022/encode-url.define.mjs +11 -0
- package/esm2022/file.mjs +10 -0
- package/esm2022/format-date.mjs +79 -0
- package/esm2022/helpers.mjs +156 -26
- package/esm2022/http-params.mjs +3 -3
- package/esm2022/index.mjs +6 -1
- package/esm2022/key-cache.mjs +16 -8
- package/esm2022/pattern.mjs +21 -21
- package/esm2022/two-way-signal-object.mjs +59 -0
- package/esm2022/uuid.mjs +3 -2
- package/esm2022/xss-filter.mjs +10 -0
- package/fesm2022/libs-ui-utils.mjs +478 -194
- package/fesm2022/libs-ui-utils.mjs.map +1 -1
- package/file.d.ts +1 -0
- package/format-date.d.ts +6 -0
- package/helpers.d.ts +12 -4
- package/http-params.d.ts +1 -1
- package/index.d.ts +5 -0
- package/package.json +3 -2
- package/pattern.d.ts +20 -20
- package/two-way-signal-object.d.ts +2 -0
- package/xss-filter.d.ts +3 -0
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Subject, fromEvent } from "rxjs";
|
|
3
|
-
import { decrypt } from "./crypto";
|
|
4
|
-
import { decrypt3rd } from "./crypto-3rd";
|
|
2
|
+
import { Subject, filter, fromEvent, takeUntil } from "rxjs";
|
|
3
|
+
import { decrypt, encrypt } from "./crypto";
|
|
4
|
+
import { decrypt3rd, encrypt3rd } from "./crypto-3rd";
|
|
5
5
|
import { isEmbedFrame } from "./function-check-embed-frame";
|
|
6
|
+
import { UtilsCache } from "./cache";
|
|
7
|
+
export class UtilsCommunicateMicroKeyGlobal {
|
|
8
|
+
static KEY_MESSAGE_MODAL = 'LIBS_UI_MODEL_EVENT';
|
|
9
|
+
}
|
|
6
10
|
export class UtilsCommunicateMicro {
|
|
7
|
-
static KEY_GET_ALL_MESSAGE = 'MICRO_SITES_ALL_MESSAGE';
|
|
8
11
|
static PREFIX_TYPE = '3RD_INTEGRATE_MICRO_SITE_';
|
|
12
|
+
static KEY_GET_ALL_MESSAGE = 'MICRO_SITES_ALL_MESSAGE';
|
|
9
13
|
static initdEvent;
|
|
10
14
|
static subs = new Map();
|
|
11
15
|
static allMessageSub = new Subject();
|
|
12
|
-
static initEvent(currentWindow) {
|
|
16
|
+
static initEvent(currentWindow, onDestroy) {
|
|
13
17
|
if (this.initdEvent) {
|
|
14
18
|
return;
|
|
15
19
|
}
|
|
@@ -17,7 +21,7 @@ export class UtilsCommunicateMicro {
|
|
|
17
21
|
if (!this.subs.get(UtilsCommunicateMicro.KEY_GET_ALL_MESSAGE)) {
|
|
18
22
|
this.subs.set(UtilsCommunicateMicro.KEY_GET_ALL_MESSAGE, UtilsCommunicateMicro.allMessageSub);
|
|
19
23
|
}
|
|
20
|
-
fromEvent(currentWindow, 'message').subscribe(e => {
|
|
24
|
+
fromEvent(currentWindow, 'message').pipe(takeUntil(onDestroy)).subscribe(e => {
|
|
21
25
|
const event = { data: { ...e.data } };
|
|
22
26
|
const data = event.data;
|
|
23
27
|
const type = data.type;
|
|
@@ -45,6 +49,10 @@ export class UtilsCommunicateMicro {
|
|
|
45
49
|
this.allMessageSub.next(event);
|
|
46
50
|
}
|
|
47
51
|
});
|
|
52
|
+
UtilsCommunicateMicro.GetMessage(UtilsCache.typeKeyClearLocalStorage).pipe(filter(e => e.data.response !== UtilsCache.idService), takeUntil(onDestroy)).subscribe(() => {
|
|
53
|
+
console.log('clear all cache by event');
|
|
54
|
+
UtilsCache.ClearAll();
|
|
55
|
+
});
|
|
48
56
|
}
|
|
49
57
|
static PostMessageToParent(data) {
|
|
50
58
|
data = this.convertData(data);
|
|
@@ -84,9 +92,8 @@ export class UtilsCommunicateMicro {
|
|
|
84
92
|
JSON.parse(decrypt3rd(data.response));
|
|
85
93
|
return data;
|
|
86
94
|
}
|
|
87
|
-
catch (
|
|
88
|
-
|
|
89
|
-
data.response = decrypt3rd(JSON.stringify(data.response));
|
|
95
|
+
catch (_) {
|
|
96
|
+
data.response = encrypt3rd(JSON.stringify(data.response));
|
|
90
97
|
return data;
|
|
91
98
|
}
|
|
92
99
|
}
|
|
@@ -94,9 +101,8 @@ export class UtilsCommunicateMicro {
|
|
|
94
101
|
JSON.parse(decrypt(data.response));
|
|
95
102
|
return data;
|
|
96
103
|
}
|
|
97
|
-
catch (
|
|
98
|
-
|
|
99
|
-
data.response = decrypt(JSON.stringify(data.response));
|
|
104
|
+
catch (_) {
|
|
105
|
+
data.response = encrypt(JSON.stringify(data.response));
|
|
100
106
|
return data;
|
|
101
107
|
}
|
|
102
108
|
}
|
|
@@ -116,6 +122,9 @@ export class UtilsCommunicateMicro {
|
|
|
116
122
|
if (!Array.isArray(messageType) || !messageType.length) {
|
|
117
123
|
throw new Error('message type empty');
|
|
118
124
|
}
|
|
125
|
+
if (messageType.length === 1) {
|
|
126
|
+
return this.GetMessage(messageType[0]);
|
|
127
|
+
}
|
|
119
128
|
const types = messageType.sort().join(';');
|
|
120
129
|
let sub = this.subs.get(types);
|
|
121
130
|
if (sub) {
|
|
@@ -133,11 +142,5 @@ export class UtilsCommunicateMicro {
|
|
|
133
142
|
});
|
|
134
143
|
});
|
|
135
144
|
}
|
|
136
|
-
postMessageToParent(data) {
|
|
137
|
-
UtilsCommunicateMicro.PostMessageToParent(data);
|
|
138
|
-
}
|
|
139
|
-
postMessageToChildren(data) {
|
|
140
|
-
UtilsCommunicateMicro.PostMessageToChildren(data);
|
|
141
|
-
}
|
|
142
145
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGUtbWljcm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb21tdW5pY2F0ZS1taWNyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3hCLE1BQU0sQ0FBVSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztJQUNqRSxNQUFNLENBQVUsV0FBVyxHQUFHLDJCQUEyQixDQUFDO0lBQ3pELE1BQU0sQ0FBQyxVQUFVLENBQVc7SUFDNUIsTUFBTSxDQUFDLElBQUksR0FBdUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM1RCxNQUFNLENBQUMsYUFBYSxHQUEwQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTdELE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBcUI7UUFDM0MsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7UUFFRCxTQUFTLENBQWUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFNB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QUFDO1FBQ2IsQ0FBQztRQUVELEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVuQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQThCLEVBQUUsV0FBMEI7UUFDbkYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQWE7UUFDL0IscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQWE7UUFDakMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0IH0gZnJvbSBcIi4vY3J5cHRvXCI7XG5pbXBvcnQgeyBkZWNyeXB0M3JkIH0gZnJvbSBcIi4vY3J5cHRvLTNyZFwiO1xuaW1wb3J0IHsgaXNFbWJlZEZyYW1lIH0gZnJvbSBcIi4vZnVuY3Rpb24tY2hlY2stZW1iZWQtZnJhbWVcIjtcblxuZXhwb3J0IGNsYXNzIFV0aWxzQ29tbXVuaWNhdGVNaWNybyB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEtFWV9HRVRfQUxMX01FU1NBR0UgPSAnTUlDUk9fU0lURVNfQUxMX01FU1NBR0UnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSRUZJWF9UWVBFID0gJzNSRF9JTlRFR1JBVEVfTUlDUk9fU0lURV8nO1xuICBwcml2YXRlIHN0YXRpYyBpbml0ZEV2ZW50PzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzdGF0aWMgc3ViczogTWFwPHN0cmluZywgU3ViamVjdDxNZXNzYWdlRXZlbnQ+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBzdGF0aWMgYWxsTWVzc2FnZVN1YjogU3ViamVjdDxNZXNzYWdlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgc3RhdGljIGluaXRFdmVudChjdXJyZW50V2luZG93OiBXaW5kb3cpIHtcbiAgICBpZiAodGhpcy5pbml0ZEV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdGRFdmVudCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLnN1YnMuZ2V0KFV0aWxzQ29tbXVuaWNhdGVNaWNyby5LRVlfR0VUX0FMTF9NRVNTQUdFKSkge1xuICAgICAgdGhpcy5zdWJzLnNldChVdGlsc0NvbW11bmljYXRlTWljcm8uS0VZX0dFVF9BTExfTUVTU0FHRSwgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLmFsbE1lc3NhZ2VTdWIpO1xuICAgIH1cblxuICAgIGZyb21FdmVudDxNZXNzYWdlRXZlbnQ+KGN1cnJlbnRXaW5kb3csICdtZXNzYWdlJykuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgY29uc3QgZXZlbnQgPSB7IGRhdGE6IHsgLi4uZS5kYXRhIH0gfSBhcyBNZXNzYWdlRXZlbnQ7XG5cbiAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhO1xuICAgICAgY29uc3QgdHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzdWIgPSBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZSh0eXBlKTtcblxuICAgICAgaWYgKCF0eXBlIHx8ICFkYXRhLnJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlLmluY2x1ZGVzKFV0aWxzQ29tbXVuaWNhdGVNaWNyby5QUkVGSVhfVFlQRSkpIHtcblxuICAgICAgICAgIGRhdGEucmVzcG9uc2UgPSBKU09OLnBhcnNlKGRlY3J5cHQzcmQoZGF0YS5yZXNwb25zZSkpO1xuICAgICAgICAgIHN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgICB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5yZXNwb25zZSA9IEpTT04ucGFyc2UoZGVjcnlwdChkYXRhLnJlc3BvbnNlKSk7XG4gICAgICAgIHN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5hbGxNZXNzYWdlU3ViLm5leHQoZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBQb3N0TWVzc2FnZVRvUGFyZW50KGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaXNFbWJlZEZyYW1lKCkpIHtcbiAgICAgICAgd2luZG93Py5wYXJlbnQ/LnBvc3RNZXNzYWdlKGRhdGEsIFwiKlwiKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdz8udG9wPy5wb3N0TWVzc2FnZShkYXRhLCBcIipcIik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb0NoaWxkcmVuKGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIGNvbnN0IGlmcmFtZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaWZyYW1lXCIpO1xuXG4gICAgQXJyYXkuZnJvbShpZnJhbWVzKS5mb3JFYWNoKGlmcmFtZSA9PiB7XG4gICAgICBpZnJhbWU/LmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHN0YXRpYyBQb3N0TWVzc2FnZVRvT3BlbmVyKGRhdGE6IGFueSkge1xuICAgIGlmICghd2luZG93Lm9wZW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcblxuICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoZGF0YSwgJyonKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbnZlcnREYXRhKGRhdGE6IGFueSkge1xuICAgIGlmICghZGF0YSB8fCAhZGF0YS50eXBlIHx8ICFkYXRhLnJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZGF0YSA9IHsgLi4uZGF0YSB9O1xuICAgIGNvbnN0IHR5cGUgPSBkYXRhLnR5cGU7XG5cbiAgICBpZiAodHlwZS5pbmNsdWRlcyh0aGlzLlBSRUZJWF9UWVBFKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZShkZWNyeXB0M3JkKGRhdGEucmVzcG9uc2UpKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgZGF0YS5yZXNwb25zZSA9IGRlY3J5cHQzcmQoSlNPTi5zdHJpbmdpZnkoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBKU09OLnBhcnNlKGRlY3J5cHQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgZGF0YS5yZXNwb25zZSA9IGRlY3J5cHQoSlNPTi5zdHJpbmdpZnkoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgR2V0TWVzc2FnZShtZXNzYWdlVHlwZTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPik6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiB7XG4gICAgaWYgKCF0aGlzLmluaXRkRXZlbnQpIHtcbiAgICAgIHRocm93IEVycm9yKFwiY2jGsGEga2jGoWkgdOG6oW8gaMOgbSBs4bqvbmcgbmdoZSBz4buxIGtp4buHbiwgZ+G7jWkgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLmluaXRFdmVudCh3aW5kb3cpIHThuqFpIHJvb3QgY29tcG9uZW50XCIpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWVzc2FnZVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgc3ViID0gdGhpcy5zdWJzLmdldChtZXNzYWdlVHlwZSk7XG5cbiAgICAgIGlmICghc3ViKSB7XG4gICAgICAgIHN1YiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgIHRoaXMuc3Vicy5zZXQobWVzc2FnZVR5cGUsIHN1Yik7XG5cbiAgICAgICAgcmV0dXJuIHN1YjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN1YjtcbiAgICB9XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1lc3NhZ2VUeXBlKSB8fCAhbWVzc2FnZVR5cGUubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21lc3NhZ2UgdHlwZSBlbXB0eScpO1xuICAgIH1cbiAgICBjb25zdCB0eXBlcyA9IG1lc3NhZ2VUeXBlLnNvcnQoKS5qb2luKCc7Jyk7XG5cbiAgICBsZXQgc3ViID0gdGhpcy5zdWJzLmdldCh0eXBlcyk7XG5cbiAgICBpZiAoc3ViKSB7XG4gICAgICByZXR1cm4gc3ViO1xuICAgIH1cblxuICAgIHN1YiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgdGhpcy5zdWJzLnNldCh0eXBlcywgc3ViKTtcbiAgICB0aGlzLmluaXRTdWJqZWN0KHN1YiwgbWVzc2FnZVR5cGUpO1xuXG4gICAgcmV0dXJuIHN1YjtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluaXRTdWJqZWN0KHN1YlJvb3Q6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiwgbWVzc2FnZVR5cGU6IEFycmF5PHN0cmluZz4pIHtcbiAgICBtZXNzYWdlVHlwZS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLkdldE1lc3NhZ2Uoa2V5KS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgIHN1YlJvb3QubmV4dChlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcG9zdE1lc3NhZ2VUb1BhcmVudChkYXRhOiB1bmtub3duKSB7XG4gICAgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLlBvc3RNZXNzYWdlVG9QYXJlbnQoZGF0YSk7XG4gIH1cblxuICBwb3N0TWVzc2FnZVRvQ2hpbGRyZW4oZGF0YTogdW5rbm93bikge1xuICAgIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5Qb3N0TWVzc2FnZVRvQ2hpbGRyZW4oZGF0YSk7XG4gIH1cbn1cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGUtbWljcm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb21tdW5pY2F0ZS1taWNyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxNQUFNLE9BQU8sOEJBQThCO0lBQ2xDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQzs7QUFHMUQsTUFBTSxPQUFPLHFCQUFxQjtJQUN6QixNQUFNLENBQVUsV0FBVyxHQUFHLDJCQUEyQixDQUFDO0lBQ3pELE1BQU0sQ0FBVSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztJQUNoRSxNQUFNLENBQUMsVUFBVSxDQUFXO0lBQzVCLE1BQU0sQ0FBQyxJQUFJLEdBQXVDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDNUQsTUFBTSxDQUFDLGFBQWEsR0FBMEIsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUU3RCxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQXFCLEVBQUUsU0FBd0I7UUFDckUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsbUJBQW1C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QyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgU3ViamVjdCwgZmlsdGVyLCBmcm9tRXZlbnQsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0LCBlbmNyeXB0IH0gZnJvbSBcIi4vY3J5cHRvXCI7XG5pbXBvcnQgeyBkZWNyeXB0M3JkLCBlbmNyeXB0M3JkIH0gZnJvbSBcIi4vY3J5cHRvLTNyZFwiO1xuaW1wb3J0IHsgaXNFbWJlZEZyYW1lIH0gZnJvbSBcIi4vZnVuY3Rpb24tY2hlY2stZW1iZWQtZnJhbWVcIjtcbmltcG9ydCB7IFV0aWxzQ2FjaGUgfSBmcm9tIFwiLi9jYWNoZVwiO1xuZXhwb3J0IGNsYXNzIFV0aWxzQ29tbXVuaWNhdGVNaWNyb0tleUdsb2JhbCB7XG4gIHB1YmxpYyBzdGF0aWMgS0VZX01FU1NBR0VfTU9EQUwgPSAnTElCU19VSV9NT0RFTF9FVkVOVCc7XG59XG5cbmV4cG9ydCBjbGFzcyBVdGlsc0NvbW11bmljYXRlTWljcm8ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSRUZJWF9UWVBFID0gJzNSRF9JTlRFR1JBVEVfTUlDUk9fU0lURV8nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBLRVlfR0VUX0FMTF9NRVNTQUdFID0gJ01JQ1JPX1NJVEVTX0FMTF9NRVNTQUdFJztcbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGRFdmVudD86IGJvb2xlYW47XG4gIHByaXZhdGUgc3RhdGljIHN1YnM6IE1hcDxzdHJpbmcsIFN1YmplY3Q8TWVzc2FnZUV2ZW50Pj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgc3RhdGljIGFsbE1lc3NhZ2VTdWI6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHN0YXRpYyBpbml0RXZlbnQoY3VycmVudFdpbmRvdzogV2luZG93LCBvbkRlc3Ryb3k6IFN1YmplY3Q8dm9pZD4pIHtcbiAgICBpZiAodGhpcy5pbml0ZEV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdGRFdmVudCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLnN1YnMuZ2V0KFV0aWxzQ29tbXVuaWNhdGVNaWNyby5LRVlfR0VUX0FMTF9NRVNTQUdFKSkge1xuICAgICAgdGhpcy5zdWJzLnNldChVdGlsc0NvbW11bmljYXRlTWljcm8uS0VZX0dFVF9BTExfTUVTU0FHRSwgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLmFsbE1lc3NhZ2VTdWIpO1xuICAgIH1cblxuICAgIGZyb21FdmVudDxNZXNzYWdlRXZlbnQ+KGN1cnJlbnRXaW5kb3csICdtZXNzYWdlJykucGlwZSh0YWtlVW50aWwob25EZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgY29uc3QgZXZlbnQgPSB7IGRhdGE6IHsgLi4uZS5kYXRhIH0gfSBhcyBNZXNzYWdlRXZlbnQ7XG5cbiAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhO1xuICAgICAgY29uc3QgdHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzdWIgPSBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZSh0eXBlKTtcblxuICAgICAgaWYgKCF0eXBlIHx8ICFkYXRhLnJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlLmluY2x1ZGVzKFV0aWxzQ29tbXVuaWNhdGVNaWNyby5QUkVGSVhfVFlQRSkpIHtcblxuICAgICAgICAgIGRhdGEucmVzcG9uc2UgPSBKU09OLnBhcnNlKGRlY3J5cHQzcmQoZGF0YS5yZXNwb25zZSkpO1xuICAgICAgICAgIHN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgICB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5yZXNwb25zZSA9IEpTT04ucGFyc2UoZGVjcnlwdChkYXRhLnJlc3BvbnNlKSk7XG4gICAgICAgIHN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5hbGxNZXNzYWdlU3ViLm5leHQoZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5HZXRNZXNzYWdlKFV0aWxzQ2FjaGUudHlwZUtleUNsZWFyTG9jYWxTdG9yYWdlKS5waXBlKGZpbHRlcihlID0+IGUuZGF0YS5yZXNwb25zZSAhPT0gVXRpbHNDYWNoZS5pZFNlcnZpY2UpLCB0YWtlVW50aWwob25EZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdjbGVhciBhbGwgY2FjaGUgYnkgZXZlbnQnKTtcbiAgICAgIFV0aWxzQ2FjaGUuQ2xlYXJBbGwoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBQb3N0TWVzc2FnZVRvUGFyZW50KGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaXNFbWJlZEZyYW1lKCkpIHtcbiAgICAgICAgd2luZG93Py5wYXJlbnQ/LnBvc3RNZXNzYWdlKGRhdGEsIFwiKlwiKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdz8udG9wPy5wb3N0TWVzc2FnZShkYXRhLCBcIipcIik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb0NoaWxkcmVuKGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIGNvbnN0IGlmcmFtZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaWZyYW1lXCIpO1xuXG4gICAgQXJyYXkuZnJvbShpZnJhbWVzKS5mb3JFYWNoKGlmcmFtZSA9PiB7XG4gICAgICBpZnJhbWU/LmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHN0YXRpYyBQb3N0TWVzc2FnZVRvT3BlbmVyKGRhdGE6IGFueSkge1xuICAgIGlmICghd2luZG93Lm9wZW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcblxuICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoZGF0YSwgJyonKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbnZlcnREYXRhKGRhdGE6IGFueSkge1xuICAgIGlmICghZGF0YSB8fCAhZGF0YS50eXBlIHx8ICFkYXRhLnJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZGF0YSA9IHsgLi4uZGF0YSB9O1xuICAgIGNvbnN0IHR5cGUgPSBkYXRhLnR5cGU7XG5cbiAgICBpZiAodHlwZS5pbmNsdWRlcyh0aGlzLlBSRUZJWF9UWVBFKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZShkZWNyeXB0M3JkKGRhdGEucmVzcG9uc2UpKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgZGF0YS5yZXNwb25zZSA9IGVuY3J5cHQzcmQoSlNPTi5zdHJpbmdpZnkoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBKU09OLnBhcnNlKGRlY3J5cHQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICBkYXRhLnJlc3BvbnNlID0gZW5jcnlwdChKU09OLnN0cmluZ2lmeShkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBHZXRNZXNzYWdlKG1lc3NhZ2VUeXBlOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogU3ViamVjdDxNZXNzYWdlRXZlbnQ+IHtcbiAgICBpZiAoIXRoaXMuaW5pdGRFdmVudCkge1xuICAgICAgdGhyb3cgRXJyb3IoXCJjaMawYSBraMahaSB04bqhbyBow6BtIGzhuq9uZyBuZ2hlIHPhu7Ega2nhu4duLCBn4buNaSBVdGlsc0NvbW11bmljYXRlTWljcm8uaW5pdEV2ZW50KHdpbmRvdykgdOG6oWkgcm9vdCBjb21wb25lbnRcIilcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBzdWIgPSB0aGlzLnN1YnMuZ2V0KG1lc3NhZ2VUeXBlKTtcblxuICAgICAgaWYgKCFzdWIpIHtcbiAgICAgICAgc3ViID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgdGhpcy5zdWJzLnNldChtZXNzYWdlVHlwZSwgc3ViKTtcblxuICAgICAgICByZXR1cm4gc3ViO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3ViO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobWVzc2FnZVR5cGUpIHx8ICFtZXNzYWdlVHlwZS5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWVzc2FnZSB0eXBlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlVHlwZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLkdldE1lc3NhZ2UobWVzc2FnZVR5cGVbMF0pO1xuICAgIH1cbiAgICBjb25zdCB0eXBlcyA9IG1lc3NhZ2VUeXBlLnNvcnQoKS5qb2luKCc7Jyk7XG5cbiAgICBsZXQgc3ViID0gdGhpcy5zdWJzLmdldCh0eXBlcyk7XG5cbiAgICBpZiAoc3ViKSB7XG4gICAgICByZXR1cm4gc3ViO1xuICAgIH1cblxuICAgIHN1YiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgdGhpcy5zdWJzLnNldCh0eXBlcywgc3ViKTtcbiAgICB0aGlzLmluaXRTdWJqZWN0KHN1YiwgbWVzc2FnZVR5cGUpO1xuXG4gICAgcmV0dXJuIHN1YjtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluaXRTdWJqZWN0KHN1YlJvb3Q6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiwgbWVzc2FnZVR5cGU6IEFycmF5PHN0cmluZz4pIHtcbiAgICBtZXNzYWdlVHlwZS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLkdldE1lc3NhZ2Uoa2V5KS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgIHN1YlJvb3QubmV4dChlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/esm2022/constants.mjs
CHANGED
|
@@ -5,4 +5,5 @@ export const ERROR_MESSAGE_MAX_VALID = 'i18n_message_error_input_max_value';
|
|
|
5
5
|
export const ERROR_MESSAGE_MIN_LENGTH = 'i18n_message_error_input_min_length';
|
|
6
6
|
export const ERROR_MESSAGE_MAX_LENGTH = 'i18n_message_error_input_max_length';
|
|
7
7
|
export const CHARACTER_DATA_EMPTY = '__';
|
|
8
|
-
|
|
8
|
+
export const DEFAULT_START_PAGE_0 = 'defaultStartPage0';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDRCQUE0QixDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEID0gJ2kxOG5fdmFsaWRfZW1wdHlfbWVzc2FnZSc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9QQVRURU5fVkFMSUQgPSAnaTE4bl92YWxpZF9wYXR0ZXJuX21lc3NhZ2UnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9taW5fdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUFYX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX0xFTkdUSCA9ICdpMThuX21lc3NhZ2VfZXJyb3JfaW5wdXRfbWluX2xlbmd0aCc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9NQVhfTEVOR1RIID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfbGVuZ3RoJztcbmV4cG9ydCBjb25zdCBDSEFSQUNURVJfREFUQV9FTVBUWSA9ICdfXyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFSVF9QQUdFXzAgPSAnZGVmYXVsdFN0YXJ0UGFnZTAnOyJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { isNil, omitBy } from './helpers';
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3
|
+
export const endCodeUrl = (objectData, isBody) => {
|
|
4
|
+
objectData = omitBy(objectData, param => param === '' || isNil(param));
|
|
5
|
+
let res = '';
|
|
6
|
+
for (const p in objectData) {
|
|
7
|
+
res += `&${p}=${encodeURIComponent(objectData[p])}`;
|
|
8
|
+
}
|
|
9
|
+
return res === '' ? '' : `${isBody ? '' : '?'}${res.substring(1)}`;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RlLXVybC5kZWZpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9lbmNvZGUtdXJsLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyw4REFBOEQ7QUFDOUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBZSxFQUFFLE1BQWUsRUFBVSxFQUFFO0lBQ3JFLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFFYixLQUFLLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzNCLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNyRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc05pbCwgb21pdEJ5IH0gZnJvbSAnLi9oZWxwZXJzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgZW5kQ29kZVVybCA9IChvYmplY3REYXRhOiBhbnksIGlzQm9keTogYm9vbGVhbik6IHN0cmluZyA9PiB7XG4gIG9iamVjdERhdGEgPSBvbWl0Qnkob2JqZWN0RGF0YSwgcGFyYW0gPT4gcGFyYW0gPT09ICcnIHx8IGlzTmlsKHBhcmFtKSk7XG4gIGxldCByZXMgPSAnJztcblxuICBmb3IgKGNvbnN0IHAgaW4gb2JqZWN0RGF0YSkge1xuICAgIHJlcyArPSBgJiR7cH09JHtlbmNvZGVVUklDb21wb25lbnQob2JqZWN0RGF0YVtwXSl9YDtcbiAgfVxuXG4gIHJldHVybiByZXMgPT09ICcnID8gJycgOiBgJHtpc0JvZHkgPyAnJyA6ICc/J30ke3Jlcy5zdWJzdHJpbmcoMSl9YDtcbn07Il19
|
package/esm2022/file.mjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const convertFileToBase64 = (file) => {
|
|
2
|
+
return new Promise((resolve) => {
|
|
3
|
+
const reader = new FileReader();
|
|
4
|
+
reader.readAsDataURL(file);
|
|
5
|
+
reader.onload = (event) => {
|
|
6
|
+
resolve(event.target?.result ?? '');
|
|
7
|
+
};
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFVLEVBQWlDLEVBQUU7SUFDL0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNvbnZlcnRGaWxlVG9CYXNlNjQgPSAoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nIHwgQXJyYXlCdWZmZXI+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQpID0+IHtcbiAgICAgIHJlc29sdmUoZXZlbnQudGFyZ2V0Py5yZXN1bHQgPz8gJycpO1xuICAgIH07XG4gIH0pO1xufTsiXX0=
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import "dayjs/locale/vi";
|
|
3
|
+
import "dayjs/locale/en";
|
|
4
|
+
import localeData from "dayjs/plugin/localeData";
|
|
5
|
+
import updateLocale from 'dayjs/plugin/updateLocale';
|
|
6
|
+
import { UtilsCache } from './cache';
|
|
7
|
+
dayjs.extend(localeData);
|
|
8
|
+
dayjs.extend(updateLocale);
|
|
9
|
+
let functionFormatDate = undefined;
|
|
10
|
+
export const updateFunctionFormatDate = (functionCustom) => {
|
|
11
|
+
functionFormatDate = functionCustom;
|
|
12
|
+
};
|
|
13
|
+
export const formatDate = (time, format = 'YYYY/MM/DD HH:mm', lang) => {
|
|
14
|
+
if (!time) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
lang = lang || UtilsCache.getLang();
|
|
18
|
+
if (functionFormatDate) {
|
|
19
|
+
return functionFormatDate(time, format, lang);
|
|
20
|
+
}
|
|
21
|
+
time = typeof time === 'number' ? dayjs.unix(time).locale(lang) : dayjs(time).locale(lang);
|
|
22
|
+
if (lang === 'vi') {
|
|
23
|
+
dayjs.updateLocale('vi', {
|
|
24
|
+
monthsShort: 'Thg 1_Thg 2_Thg 3_Thg 4_Thg 5_Thg 6_Thg 7_Thg 8_Thg 9_Thg 10_Thg 11_Thg 12'.split('_')
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (typeof time === 'number') {
|
|
28
|
+
return dayjs.unix(time).format(getFormatData(getTypeByFormat(format), lang));
|
|
29
|
+
}
|
|
30
|
+
return dayjs(time).format(getFormatData(getTypeByFormat(format), lang));
|
|
31
|
+
};
|
|
32
|
+
const getTypeByFormat = (format) => {
|
|
33
|
+
if (format === 'dm' || format === 'dmy' || format === 'dmy hm' || format === 'my') {
|
|
34
|
+
return format;
|
|
35
|
+
}
|
|
36
|
+
if (format === 'DD/MM/YYYY' || format === 'YYYY-MM-DD' || format === 'dd/MM/yyyy' || format === 'dd-MM-yyyy' || format === 'dd/mm/yyyy') {
|
|
37
|
+
return 'dmy';
|
|
38
|
+
}
|
|
39
|
+
if (format === 'MM-DD' || format === 'dd/MM' || format === 'dd/mm') {
|
|
40
|
+
return 'dm';
|
|
41
|
+
}
|
|
42
|
+
if (format === 'M/YYYY' || format === 'YYYY-MM' || format === 'MM/yyyy') {
|
|
43
|
+
return 'my';
|
|
44
|
+
}
|
|
45
|
+
if (format === 'YYYY/MM/DD hh:mm:ss' || format === 'dmy hms' || format === 'dd/mm/yyyy hh:mm:ss') {
|
|
46
|
+
return 'dmy hms';
|
|
47
|
+
}
|
|
48
|
+
return 'dmy hm';
|
|
49
|
+
};
|
|
50
|
+
const getFormatData = (type, lang) => {
|
|
51
|
+
switch (type) {
|
|
52
|
+
case 'dm':
|
|
53
|
+
if (lang === 'vi') {
|
|
54
|
+
return 'D MMM';
|
|
55
|
+
}
|
|
56
|
+
return 'MMM D';
|
|
57
|
+
case 'dmy':
|
|
58
|
+
if (lang === 'vi') {
|
|
59
|
+
return 'D MMM, YYYY';
|
|
60
|
+
}
|
|
61
|
+
return 'MMM D, YYYY';
|
|
62
|
+
case 'dmy hm':
|
|
63
|
+
if (lang === 'vi') {
|
|
64
|
+
return 'D MMM, YYYY HH:mm';
|
|
65
|
+
}
|
|
66
|
+
return 'MMM D, YYYY HH:mm';
|
|
67
|
+
case 'my':
|
|
68
|
+
if (lang === 'vi') {
|
|
69
|
+
return 'MMM, YYYY';
|
|
70
|
+
}
|
|
71
|
+
return 'MMM YYYY ';
|
|
72
|
+
case 'dmy hms':
|
|
73
|
+
if (lang === 'vi') {
|
|
74
|
+
return 'D MMM, YYYY HH:mm:ss';
|
|
75
|
+
}
|
|
76
|
+
return 'MMM D, YYYY HH:mm:ss';
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9mb3JtYXQtZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQXNCLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLFVBQVUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLFlBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUczQixJQUFJLGtCQUFrQixHQUEwQyxTQUFTLENBQUM7QUFHMUUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxjQUF5QyxFQUFFLEVBQUU7SUFDcEYsa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBQ3RDLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQXNELEVBQUUsTUFBTSxHQUFHLGtCQUFrQixFQUFFLElBQWEsRUFBVSxFQUFFO0lBQ3ZJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELElBQUksR0FBRyxJQUFJLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBWSxDQUFDO0lBQzlDLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN2QixPQUFPLGtCQUFrQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxD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QyxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRheWpzLCB7IG1vbnRoc1Nob3J0IH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IFwiZGF5anMvbG9jYWxlL3ZpXCI7XG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvZW5cIjtcbmltcG9ydCBsb2NhbGVEYXRhIGZyb20gXCJkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YVwiO1xuaW1wb3J0IHVwZGF0ZUxvY2FsZSBmcm9tICdkYXlqcy9wbHVnaW4vdXBkYXRlTG9jYWxlJztcbmltcG9ydCB7IFV0aWxzQ2FjaGUgfSBmcm9tICcuL2NhY2hlJztcbmRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcbmRheWpzLmV4dGVuZCh1cGRhdGVMb2NhbGUpO1xuXG5leHBvcnQgdHlwZSBUWVBFX0ZVTkNUSU9OX0ZPUk1BVF9EQVRFID0gKHRpbWU6IHN0cmluZyB8IG51bWJlciB8IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkIHwgbnVsbCwgZm9ybWF0OiBzdHJpbmcsIGxhbmc/OiBzdHJpbmcpID0+IHN0cmluZztcbmxldCBmdW5jdGlvbkZvcm1hdERhdGU6IFRZUEVfRlVOQ1RJT05fRk9STUFUX0RBVEUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUZ1bmN0aW9uRm9ybWF0RGF0ZSA9IChmdW5jdGlvbkN1c3RvbTogVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSkgPT4ge1xuICBmdW5jdGlvbkZvcm1hdERhdGUgPSBmdW5jdGlvbkN1c3RvbTtcbn1cblxuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGUgPSAodGltZTogc3RyaW5nIHwgbnVtYmVyIHwgZGF5anMuRGF5anMgfCB1bmRlZmluZWQgfCBudWxsLCBmb3JtYXQgPSAnWVlZWS9NTS9ERCBISDptbScsIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIXRpbWUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgbGFuZyA9IGxhbmcgfHwgVXRpbHNDYWNoZS5nZXRMYW5nKCkgYXMgc3RyaW5nO1xuICBpZiAoZnVuY3Rpb25Gb3JtYXREYXRlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uRm9ybWF0RGF0ZSh0aW1lLCBmb3JtYXQsIGxhbmcpO1xuICB9XG5cbiAgdGltZSA9IHR5cGVvZiB0aW1lID09PSAnbnVtYmVyJyA/IGRheWpzLnVuaXgodGltZSkubG9jYWxlKGxhbmcpIDogZGF5anModGltZSkubG9jYWxlKGxhbmcpO1xuICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgIGRheWpzLnVwZGF0ZUxvY2FsZSgndmknLCB7XG4gICAgICBtb250aHNTaG9ydDogJ1RoZyAxX1RoZyAyX1RoZyAzX1RoZyA0X1RoZyA1X1RoZyA2X1RoZyA3X1RoZyA4X1RoZyA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyJy5zcGxpdCgnXycpXG4gICAgfSk7XG4gIH1cbiAgaWYgKHR5cGVvZiB0aW1lID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBkYXlqcy51bml4KHRpbWUpLmZvcm1hdChnZXRGb3JtYXREYXRhKGdldFR5cGVCeUZvcm1hdChmb3JtYXQpLCBsYW5nKSk7XG4gIH1cblxuICByZXR1cm4gZGF5anModGltZSkuZm9ybWF0KGdldEZvcm1hdERhdGEoZ2V0VHlwZUJ5Rm9ybWF0KGZvcm1hdCksIGxhbmcpKTtcbn1cblxuY29uc3QgZ2V0VHlwZUJ5Rm9ybWF0ID0gKGZvcm1hdDogc3RyaW5nKTogJ2RtJyB8ICdkbXknIHwgJ2RteSBobScgfCAnbXknIHwgJ2RteSBobXMnID0+IHtcbiAgaWYgKGZvcm1hdCA9PT0gJ2RtJyB8fCBmb3JtYXQgPT09ICdkbXknIHx8IGZvcm1hdCA9PT0gJ2RteSBobScgfHwgZm9ybWF0ID09PSAnbXknKSB7XG4gICAgcmV0dXJuIGZvcm1hdDtcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdERC9NTS9ZWVlZJyB8fCBmb3JtYXQgPT09ICdZWVlZLU1NLUREJyB8fCBmb3JtYXQgPT09ICdkZC9NTS95eXl5JyB8fCBmb3JtYXQgPT09ICdkZC1NTS15eXl5JyB8fCBmb3JtYXQgPT09ICdkZC9tbS95eXl5Jykge1xuICAgIHJldHVybiAnZG15JztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdNTS1ERCcgfHwgZm9ybWF0ID09PSAnZGQvTU0nIHx8IGZvcm1hdCA9PT0gJ2RkL21tJykge1xuICAgIHJldHVybiAnZG0nO1xuICB9XG5cbiAgaWYgKGZvcm1hdCA9PT0gJ00vWVlZWScgfHwgZm9ybWF0ID09PSAnWVlZWS1NTScgfHwgZm9ybWF0ID09PSAnTU0veXl5eScpIHtcbiAgICByZXR1cm4gJ215JztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdZWVlZL01NL0REIGhoOm1tOnNzJyB8fCBmb3JtYXQgPT09ICdkbXkgaG1zJyB8fCBmb3JtYXQgPT09ICdkZC9tbS95eXl5IGhoOm1tOnNzJykge1xuICAgIHJldHVybiAnZG15IGhtcyc7XG4gIH1cblxuICByZXR1cm4gJ2RteSBobSc7XG59O1xuXG5jb25zdCBnZXRGb3JtYXREYXRhID0gKHR5cGU6ICdkbScgfCAnZG15JyB8ICdkbXkgaG0nIHwgJ215JyB8ICdkbXkgaG1zJywgbGFuZzogc3RyaW5nKSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2RtJzpcbiAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgIHJldHVybiAnRCBNTU0nO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01NTSBEJztcblxuICAgIGNhc2UgJ2RteSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ0QgTU1NLCBZWVlZJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdNTU0gRCwgWVlZWSc7XG5cbiAgICBjYXNlICdkbXkgaG0nOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSwgWVlZWSBISDptbSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQsIFlZWVkgSEg6bW0nO1xuXG4gICAgY2FzZSAnbXknOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdNTU0sIFlZWVknO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01NTSBZWVlZICc7XG5cbiAgICBjYXNlICdkbXkgaG1zJzpcbiAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgIHJldHVybiAnRCBNTU0sIFlZWVkgSEg6bW06c3MnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01NTSBELCBZWVlZIEhIOm1tOnNzJztcbiAgfVxufTtcbiJdfQ==
|
package/esm2022/helpers.mjs
CHANGED
|
@@ -1,30 +1,57 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import {
|
|
2
|
+
import { HttpParams } from "@angular/common/http";
|
|
3
|
+
import { ElementRef, TemplateRef, isSignal } from "@angular/core";
|
|
4
|
+
import { Observable } from "rxjs";
|
|
5
|
+
/**Các hàm tương tự thư viện lodash */
|
|
3
6
|
export const isNil = (value) => {
|
|
4
7
|
return value === null || value === undefined;
|
|
5
8
|
};
|
|
6
9
|
export const isEmpty = (value) => {
|
|
7
10
|
return value === null || value === '' || value === undefined || (typeof value === 'object' && (JSON.stringify(value) === '{}' || JSON.stringify(value) === '[]'));
|
|
8
11
|
};
|
|
12
|
+
export const omitBy = (objData, predicate) => {
|
|
13
|
+
if (!objData || typeof objData !== 'object' || Array.isArray(objData)) {
|
|
14
|
+
return objData;
|
|
15
|
+
}
|
|
16
|
+
const newObj = {};
|
|
17
|
+
Object.keys(objData).forEach(key => {
|
|
18
|
+
const valueOfKey = get(objData, key);
|
|
19
|
+
if (!predicate(valueOfKey)) {
|
|
20
|
+
set(newObj, key, valueOfKey);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return newObj;
|
|
24
|
+
};
|
|
9
25
|
export const get = (obj, path, defaultValue = undefined) => {
|
|
10
26
|
if (obj == null) {
|
|
11
27
|
return defaultValue;
|
|
12
28
|
}
|
|
13
|
-
|
|
29
|
+
if (isSignal(obj)) {
|
|
30
|
+
obj = obj();
|
|
31
|
+
}
|
|
32
|
+
if (obj instanceof HttpParams) {
|
|
33
|
+
return obj.get(`${path}`);
|
|
34
|
+
}
|
|
35
|
+
const paths = Array.isArray(path) ? path : path.replace(/\[(\d+)]/g, '.$1').split('.').filter(key => key);
|
|
14
36
|
for (let i = 0; i < paths.length; i++) {
|
|
15
37
|
if (obj == null || !Object.prototype.hasOwnProperty.call(obj, paths[i])) {
|
|
16
38
|
return defaultValue;
|
|
17
39
|
}
|
|
18
|
-
|
|
40
|
+
const val = isSignal(obj[paths[i]]) ? obj[paths[i]]() : obj[paths[i]];
|
|
41
|
+
obj = val;
|
|
19
42
|
}
|
|
20
43
|
return obj;
|
|
21
44
|
};
|
|
22
45
|
export const set = (obj, path, value) => {
|
|
23
|
-
if (!obj || typeof obj !== "object") {
|
|
46
|
+
if (!obj || (typeof obj !== "object" && !isSignal(obj)) || (isSignal(obj) && typeof obj() !== "object")) {
|
|
24
47
|
throw new Error("The first argument must be an object");
|
|
25
48
|
}
|
|
26
|
-
|
|
27
|
-
|
|
49
|
+
if (obj instanceof HttpParams) {
|
|
50
|
+
return obj.set(`${path}`, value);
|
|
51
|
+
}
|
|
52
|
+
const pathArray = Array.isArray(path) ? path : path.replace(/\[(\d+)]/g, '.[$1]').split('.').filter(key => key);
|
|
53
|
+
let current = isSignal(obj) ? obj() : obj;
|
|
54
|
+
let lastIsSignal = false;
|
|
28
55
|
pathArray.forEach((key, index) => {
|
|
29
56
|
if (index < pathArray.length - 1) {
|
|
30
57
|
if (!(key in current) || typeof current[key] !== "object") {
|
|
@@ -32,53 +59,156 @@ export const set = (obj, path, value) => {
|
|
|
32
59
|
key = key.replace(/\[(\d+)]/g, '$1');
|
|
33
60
|
current[key] = /\[(\d+)]/g.test(nextKey) ? [] : {};
|
|
34
61
|
}
|
|
35
|
-
current = current[key];
|
|
62
|
+
current = key ? current[key] : current;
|
|
63
|
+
lastIsSignal = isSignal(current);
|
|
64
|
+
current = lastIsSignal ? current() : current;
|
|
36
65
|
return;
|
|
37
66
|
}
|
|
38
67
|
// Gán giá trị ở cuối đường dẫn
|
|
68
|
+
key = key.replace(/\[(\d+)]/g, '$1');
|
|
69
|
+
if (lastIsSignal) {
|
|
70
|
+
current.update((data) => {
|
|
71
|
+
data[key] = value;
|
|
72
|
+
return { ...data };
|
|
73
|
+
});
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
39
76
|
current[key] = value;
|
|
40
77
|
});
|
|
41
78
|
return obj;
|
|
42
79
|
};
|
|
43
|
-
export const cloneDeep = (
|
|
44
|
-
if (
|
|
45
|
-
return
|
|
80
|
+
export const cloneDeep = (data) => {
|
|
81
|
+
if (data === null || typeof data !== 'object') {
|
|
82
|
+
return data;
|
|
46
83
|
}
|
|
47
|
-
if (
|
|
48
|
-
return
|
|
84
|
+
if (data instanceof HttpParams) {
|
|
85
|
+
return data;
|
|
49
86
|
}
|
|
50
|
-
if (
|
|
51
|
-
return new
|
|
87
|
+
if (data instanceof Date) {
|
|
88
|
+
return new Date(data.getTime());
|
|
52
89
|
}
|
|
53
|
-
if (
|
|
90
|
+
if (data instanceof RegExp) {
|
|
91
|
+
return new RegExp(data.source, data.flags);
|
|
92
|
+
}
|
|
93
|
+
if (data instanceof Map) {
|
|
54
94
|
const mapCopy = new Map();
|
|
55
|
-
|
|
95
|
+
data.forEach((val, key) => {
|
|
56
96
|
mapCopy.set(cloneDeep(key), cloneDeep(val));
|
|
57
97
|
});
|
|
58
98
|
return mapCopy;
|
|
59
99
|
}
|
|
60
|
-
if (
|
|
100
|
+
if (data instanceof Set) {
|
|
61
101
|
const setCopy = new Set();
|
|
62
|
-
|
|
102
|
+
data.forEach(val => {
|
|
63
103
|
setCopy.add(cloneDeep(val));
|
|
64
104
|
});
|
|
65
105
|
return setCopy;
|
|
66
106
|
}
|
|
67
|
-
if (Array.isArray(
|
|
68
|
-
return
|
|
107
|
+
if (Array.isArray(data)) {
|
|
108
|
+
return data.map(item => cloneDeep(item));
|
|
109
|
+
}
|
|
110
|
+
if (data instanceof Promise || data instanceof Observable) {
|
|
111
|
+
return data;
|
|
112
|
+
}
|
|
113
|
+
if (isSignal(data)) {
|
|
114
|
+
return cloneDeep(data());
|
|
69
115
|
}
|
|
70
116
|
const result = {};
|
|
71
|
-
for (const key in
|
|
72
|
-
|
|
73
|
-
|
|
117
|
+
for (const key in data) {
|
|
118
|
+
const value = data[key];
|
|
119
|
+
if (value instanceof TemplateRef || value instanceof ElementRef || value instanceof Element || data instanceof Promise || data instanceof Observable || data instanceof HttpParams) {
|
|
120
|
+
result[key] = value;
|
|
74
121
|
continue;
|
|
75
122
|
}
|
|
76
|
-
if (Object.prototype.hasOwnProperty.call(
|
|
77
|
-
result[key] = cloneDeep(value
|
|
123
|
+
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
|
124
|
+
result[key] = cloneDeep(value);
|
|
78
125
|
}
|
|
79
126
|
}
|
|
80
127
|
return result;
|
|
81
128
|
};
|
|
129
|
+
export const keyBy = (data, key) => {
|
|
130
|
+
if (!data || !data.length || !key) {
|
|
131
|
+
return {};
|
|
132
|
+
}
|
|
133
|
+
return data.reduce((dir, nextItem) => {
|
|
134
|
+
const valueOfKey = nextItem[key];
|
|
135
|
+
if (typeof valueOfKey !== 'string' && typeof valueOfKey !== 'number') {
|
|
136
|
+
return dir;
|
|
137
|
+
}
|
|
138
|
+
dir[valueOfKey] = nextItem;
|
|
139
|
+
return dir;
|
|
140
|
+
}, {});
|
|
141
|
+
};
|
|
142
|
+
export const groupBy = (data, key) => {
|
|
143
|
+
if (!data || !Object.keys(data).length || !key) {
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
return data.reduce((dir, nextItem) => {
|
|
147
|
+
const valueOfKey = nextItem[key];
|
|
148
|
+
if (typeof valueOfKey !== 'string' && typeof valueOfKey !== 'number') {
|
|
149
|
+
return dir;
|
|
150
|
+
}
|
|
151
|
+
if (!dir[valueOfKey]) {
|
|
152
|
+
dir[valueOfKey] = [];
|
|
153
|
+
}
|
|
154
|
+
dir[valueOfKey].push(nextItem);
|
|
155
|
+
return dir;
|
|
156
|
+
}, {});
|
|
157
|
+
};
|
|
158
|
+
export const range = (start, end, step) => {
|
|
159
|
+
if (end === undefined || end === null) {
|
|
160
|
+
end = start;
|
|
161
|
+
start = 0;
|
|
162
|
+
}
|
|
163
|
+
if (!step) {
|
|
164
|
+
step = end < 0 ? -1 : 1;
|
|
165
|
+
}
|
|
166
|
+
if (end < start && step > 0) {
|
|
167
|
+
step *= -1;
|
|
168
|
+
}
|
|
169
|
+
const valueStartByStep = step + start;
|
|
170
|
+
const direction = start < end ? 'asc' : 'desc';
|
|
171
|
+
if ((direction === 'asc' && (valueStartByStep < start || valueStartByStep > end)) || (direction === 'desc' && (valueStartByStep > start || valueStartByStep < end))) {
|
|
172
|
+
return [start];
|
|
173
|
+
}
|
|
174
|
+
const arr = new Array();
|
|
175
|
+
for (let index = 0; index < Math.abs(end - start); index++) {
|
|
176
|
+
let value = start + index * step;
|
|
177
|
+
if (index === 0) {
|
|
178
|
+
value = start;
|
|
179
|
+
}
|
|
180
|
+
if ((direction === 'asc' && (value < start || value > end)) || (direction === 'desc' && (value > start || value < end))) {
|
|
181
|
+
return arr;
|
|
182
|
+
}
|
|
183
|
+
arr.push(value);
|
|
184
|
+
}
|
|
185
|
+
return arr;
|
|
186
|
+
};
|
|
187
|
+
export const isEqual = (value1, value2) => {
|
|
188
|
+
if (value1 === value2 || (value1 === null && value2 === null) || (value1 === undefined && value2 === undefined)) {
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
if (typeof value1 !== 'object' || typeof value2 !== 'object' || (Array.isArray(value1) && !Array.isArray(value2))) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
if (Array.isArray(value1)) {
|
|
195
|
+
if (value1.length !== value2.length) {
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
return !value1.some((item, index) => !isEqual(item, value2[index]));
|
|
199
|
+
}
|
|
200
|
+
if (Object.keys(value1).length !== Object.keys(value2).length) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
return !Object.keys(value1).some((key) => !isEqual(value1[key], value2[key]));
|
|
204
|
+
};
|
|
205
|
+
export const uniqBy = (data, key) => {
|
|
206
|
+
if (!key || !data || !data.length || typeof data[0] !== 'object') {
|
|
207
|
+
return Array.from(new Set(data));
|
|
208
|
+
}
|
|
209
|
+
const dataUnique = keyBy(data, key);
|
|
210
|
+
return Object.keys(dataUnique).map(key => dataUnique[key]);
|
|
211
|
+
};
|
|
82
212
|
export const generateInterface = (obj, interfaceName) => {
|
|
83
213
|
const generateType = (value) => {
|
|
84
214
|
if (value === null) {
|
|
@@ -125,4 +255,4 @@ export const generateInterface = (obj, interfaceName) => {
|
|
|
125
255
|
const interfaceStr = `interface ${interfaceName} ${generateType(obj)}`;
|
|
126
256
|
return interfaceStr;
|
|
127
257
|
};
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQWMsRUFBVyxFQUFFO0lBQy9DLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ3hDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDcEssQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBd0IsRUFBRSxJQUF1QixFQUFFLGVBQW9CLFNBQVMsRUFBTyxFQUFFO0lBQzNHLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RixLQUFLLElBQUksQ0FB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QUFRLEVBQUUsQ0FBQztZQUN0QixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDekIsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3JELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDM0MsWUFBWSxJQUFJLEtBQUssR0FBRyxLQUFLLFNBQVMsS0FBSyxDQUFDO2dCQUM5QyxDQUFDO1lBQ0gsQ0FBQztZQUNELFlBQVksSUFBSSxHQUFHLENBQUM7WUFDcEIsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsYUFBYSxhQUFhLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDdkUsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgaXNOaWwgPSAodmFsdWU6IHVua25vd24pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgKEpTT04uc3RyaW5naWZ5KHZhbHVlKSA9PT0gJ3t9JyB8fCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgPT09ICdbXScpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXQgPSAob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlOiBhbnkgPSB1bmRlZmluZWQpOiBhbnkgPT4ge1xuICBpZiAob2JqID09IG51bGwpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG4gIGNvbnN0IHBhdGhzID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLnJlcGxhY2UoL1xcWyhcXGQrKV0vZywgJy4kMScpLnNwbGl0KCcuJyk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHBhdGhzW2ldKSkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgb2JqID0gb2JqW3BhdGhzW2ldXTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0ID0gKG9iajogUmVjb3JkPHN0cmluZywgYW55PiwgcGF0aDogc3RyaW5nIHwgc3RyaW5nW10sIHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0XCIpO1xuICB9XG5cbiAgY29uc3QgcGF0aEFycmF5ID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLnJlcGxhY2UoL1xcWyhcXGQrKV0vZywgJy5bJDFdJykuc3BsaXQoJy4nKTtcblxuICBsZXQgY3VycmVudDogYW55ID0gb2JqO1xuXG4gIHBhdGhBcnJheS5mb3JFYWNoKChrZXksIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4IDwgcGF0aEFycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgIGlmICghKGtleSBpbiBjdXJyZW50KSB8fCB0eXBlb2YgY3VycmVudFtrZXldICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGNvbnN0IG5leHRLZXkgPSBwYXRoQXJyYXlbaW5kZXggKyAxXTtcblxuICAgICAgICBrZXkgPSBrZXkucmVwbGFjZSgvXFxbKFxcZCspXS9nLCAnJDEnKTtcbiAgICAgICAgY3VycmVudFtrZXldID0gL1xcWyhcXGQrKV0vZy50ZXN0KG5leHRLZXkpID8gW10gOiB7fTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIEfDoW4gZ2nDoSB0cuG7iyDhu58gY3Xhu5FpIMSRxrDhu51uZyBk4bqrblxuICAgIGN1cnJlbnRba2V5XSA9IHZhbHVlO1xuICB9KTtcblxuICByZXR1cm4gb2JqO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsb25lRGVlcCA9ICh2YWx1ZTogYW55KTogYW55ID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFRpbWUoKSk7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cCh2YWx1ZS5zb3VyY2UsIHZhbHVlLmZsYWdzKTtcbiAgfVxuXG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcCkge1xuICAgIGNvbnN0IG1hcENvcHkgPSBuZXcgTWFwKCk7XG4gICAgdmFsdWUuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgIG1hcENvcHkuc2V0KGNsb25lRGVlcChrZXkpLCBjbG9uZURlZXAodmFsKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG1hcENvcHk7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICBjb25zdCBzZXRDb3B5ID0gbmV3IFNldCgpO1xuICAgIHZhbHVlLmZvckVhY2godmFsID0+IHtcbiAgICAgIHNldENvcHkuYWRkKGNsb25lRGVlcCh2YWwpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2V0Q29weTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAoaXRlbSA9PiBjbG9uZURlZXAoaXRlbSkpO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlW2tleV0gaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiB8fCB2YWx1ZVtrZXldIGluc3RhbmNlb2YgRWxlbWVudFJlZiB8fCB2YWx1ZVtrZXldIGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZVtrZXldO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgIHJlc3VsdFtrZXldID0gY2xvbmVEZWVwKHZhbHVlW2tleV0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVJbnRlcmZhY2UgPSAob2JqOiBhbnksIGludGVyZmFjZU5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGdlbmVyYXRlVHlwZSA9ICh2YWx1ZTogYW55KTogc3RyaW5nID0+IHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnbnVsbCc7XG4gICAgfVxuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cbiAgICBpZiAodHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiAnc3RyaW5nJztcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiAnYm9vbGVhbic7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuICdhbnknO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiAnRGF0ZSc7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICByZXR1cm4gJ1JlZ0V4cCc7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAnQXJyYXk8YW55Pic7XG4gICAgICB9XG4gICAgICByZXR1cm4gYEFycmF5PCR7Z2VuZXJhdGVUeXBlKHZhbHVlWzBdKX0+YDtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGxldCBpbnRlcmZhY2VTdHIgPSAne1xcbic7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gZ2VuZXJhdGVUeXBlKHZhbHVlW2tleV0pO1xuICAgICAgICAgIGludGVyZmFjZVN0ciArPSBgICAke2tleX06ICR7dmFsdWVUeXBlfTtcXG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpbnRlcmZhY2VTdHIgKz0gJ30nO1xuICAgICAgcmV0dXJuIGludGVyZmFjZVN0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gJ2FueSc7XG4gIH07XG5cbiAgY29uc3QgaW50ZXJmYWNlU3RyID0gYGludGVyZmFjZSAke2ludGVyZmFjZU5hbWV9ICR7Z2VuZXJhdGVUeXBlKG9iail9YDtcbiAgcmV0dXJuIGludGVyZmFjZVN0cjtcbn07Il19
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBYyxFQUE2QixFQUFFO0lBQ2pFLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ3hDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDcEssQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUksT0FBNEIsRUFBRSxTQUFnQyxFQUFLLEVBQUU7SUFDN0YsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sT0FBWSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxFQUFPLENBQUM7SUFFdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDakMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDM0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDOUIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQVUsR0FBUSxFQUFFLElBQXVCLEVBQUUsZUFBb0IsU0FBUyxFQUFLLEVBQUU7SUFDbEcsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEIsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEIsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUcsR0FBRyxZQUFZLFVBQVUsRUFBQyxDQUFDO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFNLENBQUM7SUFDbkMsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hFLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEUsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFVLEdBQVEsRUFBRSxJQUF1QixFQUFFLEtBQVUsRUFBSyxFQUFFO0lBQy9FLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDeEcsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFHLEdBQUcsWUFBWSxVQUFVLEVBQUMsQ0FBQztRQUM1QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBQyxLQUFLLENBQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFaEgsSUFBSSxPQUFPLEdBQVEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBRS9DLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztJQUN6QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQy9CLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMxRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUVyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDdkMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzdDLE9BQU87UUFDVCxDQUFDO1FBRUQsK0JBQStCO1FBQy9CLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDbEIsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFVLElBQVMsRUFBSyxFQUFFO0lBQ2pELElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFHLElBQUksWUFBWSxVQUFVLEVBQUMsQ0FBQztRQUM3QixPQUFPLElBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxJQUFJLFlBQVksTUFBTSxFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQU0sQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBTSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFHLElBQUksWUFBWSxPQUFPLElBQUksSUFBSSxZQUFZLFVBQVUsRUFBQyxDQUFDO1FBQ3hELE9BQU8sSUFBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7SUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxLQUFLLFlBQVksV0FBVyxJQUFJLEtBQUssWUFBWSxVQUFVLElBQUksS0FBSyxZQUFZLE9BQU8sSUFBSSxJQUFJLFlBQVksT0FBTyxJQUFJLElBQUksWUFBWSxVQUFVLElBQUksSUFBSSxZQUFZLFVBQVUsRUFBRSxDQUFDO1lBQ25MLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsU0FBUztRQUNYLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBd0IsRUFBRSxHQUFXLEVBQWUsRUFBRTtJQUMxRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNuQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckUsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQ0QsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUMzQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQXdCLEVBQUUsR0FBVyxFQUFlLEVBQUU7SUFDNUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0MsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ25DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyRSxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQ0QsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQWEsRUFBRSxHQUFZLEVBQUUsSUFBYSxFQUFpQixFQUFFO0lBQ2pGLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNaLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksR0FBRyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QyxNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMvQyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEssT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBRWhDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzNELElBQUksS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEgsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFXLEVBQUUsTUFBVyxFQUFXLEVBQUU7SUFDM0QsSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2hILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztRQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFJLElBQWMsRUFBRSxHQUFZLEVBQVksRUFBRTtJQUNsRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNqRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQWtDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFbEUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBUSxFQUFFLGFBQXFCLEVBQVUsRUFBRTtJQUMzRSxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVUsRUFBVSxFQUFFO1FBQzFDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25CLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLEtBQUssQ0FBQztRQUUxQixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDNUIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztZQUNELE9BQU8sU0FBUyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEIsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNyRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLFlBQVksSUFBSSxLQUFLLEdBQUcsS0FBSyxTQUFTLEtBQUssQ0FBQztnQkFDOUMsQ0FBQztZQUNILENBQUM7WUFDRCxZQUFZLElBQUksR0FBRyxDQUFDO1lBQ3BCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLGFBQWEsYUFBYSxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ3ZFLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmLCBpc1NpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUWVBFX09CSkVDVCB9IGZyb20gXCJAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuLyoqQ8OhYyBow6BtIHTGsMahbmcgdOG7sSB0aMawIHZp4buHbiBsb2Rhc2ggKi9cbmV4cG9ydCBjb25zdCBpc05pbCA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIG51bGwgfCB1bmRlZmluZWQgPT4ge1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0VtcHR5ID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAoSlNPTi5zdHJpbmdpZnkodmFsdWUpID09PSAne30nIHx8IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA9PT0gJ1tdJykpO1xufTtcblxuZXhwb3J0IGNvbnN0IG9taXRCeSA9IDxUPihvYmpEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBwcmVkaWNhdGU6ICh2YWw6IGFueSkgPT4gYm9vbGVhbik6IFQgPT4ge1xuICBpZiAoIW9iakRhdGEgfHwgdHlwZW9mIG9iakRhdGEgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkob2JqRGF0YSkpIHtcbiAgICByZXR1cm4gb2JqRGF0YSBhcyBUO1xuICB9XG4gIGNvbnN0IG5ld09iaiA9IHt9IGFzIFQ7XG5cbiAgT2JqZWN0LmtleXMob2JqRGF0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IHZhbHVlT2ZLZXkgPSBnZXQob2JqRGF0YSwga2V5KTtcbiAgICBpZiAoIXByZWRpY2F0ZSh2YWx1ZU9mS2V5KSkge1xuICAgICAgc2V0KG5ld09iaiwga2V5LCB2YWx1ZU9mS2V5KVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIG5ld09iajtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXQgPSA8VCA9IGFueT4ob2JqOiBhbnksIHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU6IGFueSA9IHVuZGVmaW5lZCk6IFQgPT4ge1xuICBpZiAob2JqID09IG51bGwpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG4gIGlmIChpc1NpZ25hbChvYmopKSB7XG4gICAgb2JqID0gb2JqKCk7XG4gIH1cbiAgaWYob2JqIGluc3RhbmNlb2YgSHR0cFBhcmFtcyl7XG4gICAgICByZXR1cm4gb2JqLmdldChgJHtwYXRofWApIGFzIFQ7XG4gIH1cbiAgY29uc3QgcGF0aHMgPSBBcnJheS5pc0FycmF5KHBhdGgpID8gcGF0aCA6IHBhdGgucmVwbGFjZSgvXFxbKFxcZCspXS9nLCAnLiQxJykuc3BsaXQoJy4nKS5maWx0ZXIoa2V5ID0+IGtleSk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHBhdGhzW2ldKSkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgY29uc3QgdmFsID0gaXNTaWduYWwob2JqW3BhdGhzW2ldXSkgPyBvYmpbcGF0aHNbaV1dKCkgOiBvYmpbcGF0aHNbaV1dO1xuXG4gICAgb2JqID0gdmFsO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXQgPSA8VCA9IGFueT4ob2JqOiBhbnksIHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdLCB2YWx1ZTogYW55KTogVCA9PiB7XG4gIGlmICghb2JqIHx8ICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmICFpc1NpZ25hbChvYmopKSB8fCAoaXNTaWduYWwob2JqKSAmJiB0eXBlb2Ygb2JqKCkgIT09IFwib2JqZWN0XCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0XCIpO1xuICB9XG5cbiAgaWYob2JqIGluc3RhbmNlb2YgSHR0cFBhcmFtcyl7XG4gICAgcmV0dXJuIG9iai5zZXQoYCR7cGF0aH1gLHZhbHVlKSBhcyBUO1xuICB9XG5cbiAgY29uc3QgcGF0aEFycmF5ID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLnJlcGxhY2UoL1xcWyhcXGQrKV0vZywgJy5bJDFdJykuc3BsaXQoJy4nKS5maWx0ZXIoa2V5ID0+IGtleSk7XG5cbiAgbGV0IGN1cnJlbnQ6IGFueSA9IGlzU2lnbmFsKG9iaikgPyBvYmooKSA6IG9iajtcblxuICBsZXQgbGFzdElzU2lnbmFsID0gZmFsc2U7XG4gIHBhdGhBcnJheS5mb3JFYWNoKChrZXksIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4IDwgcGF0aEFycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgIGlmICghKGtleSBpbiBjdXJyZW50KSB8fCB0eXBlb2YgY3VycmVudFtrZXldICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGNvbnN0IG5leHRLZXkgPSBwYXRoQXJyYXlbaW5kZXggKyAxXTtcblxuICAgICAgICBrZXkgPSBrZXkucmVwbGFjZSgvXFxbKFxcZCspXS9nLCAnJDEnKTtcbiAgICAgICAgY3VycmVudFtrZXldID0gL1xcWyhcXGQrKV0vZy50ZXN0KG5leHRLZXkpID8gW10gOiB7fTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBrZXkgPyBjdXJyZW50W2tleV0gOiBjdXJyZW50O1xuICAgICAgbGFzdElzU2lnbmFsID0gaXNTaWduYWwoY3VycmVudCk7XG4gICAgICBjdXJyZW50ID0gbGFzdElzU2lnbmFsID8gY3VycmVudCgpIDogY3VycmVudDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBHw6FuIGdpw6EgdHLhu4sg4bufIGN14buRaSDEkcaw4budbmcgZOG6q25cbiAgICBrZXkgPSBrZXkucmVwbGFjZSgvXFxbKFxcZCspXS9nLCAnJDEnKTtcbiAgICBpZiAobGFzdElzU2lnbmFsKSB7XG4gICAgICBjdXJyZW50LnVwZGF0ZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGRhdGFba2V5XSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4geyAuLi5kYXRhIH07XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY3VycmVudFtrZXldID0gdmFsdWU7XG4gIH0pO1xuXG4gIHJldHVybiBvYmo7XG59O1xuXG5leHBvcnQgY29uc3QgY2xvbmVEZWVwID0gPFQgPSBhbnk+KGRhdGE6IGFueSk6IFQgPT4ge1xuICBpZiAoZGF0YSA9PT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGlmKGRhdGEgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKXtcbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRhLmdldFRpbWUoKSkgYXMgVDtcbiAgfVxuXG4gIGlmIChkYXRhIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoZGF0YS5zb3VyY2UsIGRhdGEuZmxhZ3MpIGFzIFQ7XG4gIH1cblxuICBpZiAoZGF0YSBpbnN0YW5jZW9mIE1hcCkge1xuICAgIGNvbnN0IG1hcENvcHkgPSBuZXcgTWFwKCk7XG4gICAgZGF0YS5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgbWFwQ29weS5zZXQoY2xvbmVEZWVwKGtleSksIGNsb25lRGVlcCh2YWwpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbWFwQ29weSBhcyBUO1xuICB9XG5cbiAgaWYgKGRhdGEgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICBjb25zdCBzZXRDb3B5ID0gbmV3IFNldCgpO1xuICAgIGRhdGEuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgc2V0Q29weS5hZGQoY2xvbmVEZWVwKHZhbCkpO1xuICAgIH0pO1xuICAgIHJldHVybiBzZXRDb3B5IGFzIFQ7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IGNsb25lRGVlcChpdGVtKSkgYXMgVDtcbiAgfVxuXG4gIGlmKGRhdGEgaW5zdGFuY2VvZiBQcm9taXNlIHx8IGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKXtcbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG5cbiAgaWYgKGlzU2lnbmFsKGRhdGEpKSB7XG4gICAgcmV0dXJuIGNsb25lRGVlcChkYXRhKCkpO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGRhdGFba2V5XTtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiB8fCB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnRSZWYgfHwgdmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50IHx8IGRhdGEgaW5zdGFuY2VvZiBQcm9taXNlIHx8IGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlIHx8IGRhdGEgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KSkge1xuICAgICAgcmVzdWx0W2tleV0gPSBjbG9uZURlZXAodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQgYXMgVDtcbn07XG5cbmV4cG9ydCBjb25zdCBrZXlCeSA9IChkYXRhOiBBcnJheTxUWVBFX09CSkVDVD4sIGtleTogc3RyaW5nKTogVFlQRV9PQkpFQ1QgPT4ge1xuICBpZiAoIWRhdGEgfHwgIWRhdGEubGVuZ3RoIHx8ICFrZXkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgcmV0dXJuIGRhdGEucmVkdWNlKChkaXIsIG5leHRJdGVtKSA9PiB7XG4gICAgY29uc3QgdmFsdWVPZktleSA9IG5leHRJdGVtW2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZU9mS2V5ICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWVPZktleSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBkaXI7XG4gICAgfVxuICAgIGRpclt2YWx1ZU9mS2V5XSA9IG5leHRJdGVtO1xuICAgIHJldHVybiBkaXI7XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBncm91cEJ5ID0gKGRhdGE6IEFycmF5PFRZUEVfT0JKRUNUPiwga2V5OiBzdHJpbmcpOiBUWVBFX09CSkVDVCA9PiB7XG4gIGlmICghZGF0YSB8fCAhT2JqZWN0LmtleXMoZGF0YSkubGVuZ3RoIHx8ICFrZXkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgcmV0dXJuIGRhdGEucmVkdWNlKChkaXIsIG5leHRJdGVtKSA9PiB7XG4gICAgY29uc3QgdmFsdWVPZktleSA9IG5leHRJdGVtW2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZU9mS2V5ICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWVPZktleSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBkaXI7XG4gICAgfVxuICAgIGlmICghZGlyW3ZhbHVlT2ZLZXldKSB7XG4gICAgICBkaXJbdmFsdWVPZktleV0gPSBbXTtcbiAgICB9XG4gICAgZGlyW3ZhbHVlT2ZLZXldLnB1c2gobmV4dEl0ZW0pO1xuICAgIHJldHVybiBkaXI7XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByYW5nZSA9IChzdGFydDogbnVtYmVyLCBlbmQ/OiBudW1iZXIsIHN0ZXA/OiBudW1iZXIpOiBBcnJheTxudW1iZXI+ID0+IHtcbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA9PT0gbnVsbCkge1xuICAgIGVuZCA9IHN0YXJ0O1xuICAgIHN0YXJ0ID0gMDtcbiAgfVxuXG4gIGlmICghc3RlcCkge1xuICAgIHN0ZXAgPSBlbmQgPCAwID8gLTEgOiAxO1xuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0ICYmIHN0ZXAgPiAwKSB7XG4gICAgc3RlcCAqPSAtMTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlU3RhcnRCeVN0ZXAgPSBzdGVwICsgc3RhcnQ7XG4gIGNvbnN0IGRpcmVjdGlvbiA9IHN0YXJ0IDwgZW5kID8gJ2FzYycgOiAnZGVzYyc7XG4gIGlmICgoZGlyZWN0aW9uID09PSAnYXNjJyAmJiAodmFsdWVTdGFydEJ5U3RlcCA8IHN0YXJ0IHx8IHZhbHVlU3RhcnRCeVN0ZXAgPiBlbmQpKSB8fCAoZGlyZWN0aW9uID09PSAnZGVzYycgJiYgKHZhbHVlU3RhcnRCeVN0ZXAgPiBzdGFydCB8fCB2YWx1ZVN0YXJ0QnlTdGVwIDwgZW5kKSkpIHtcbiAgICByZXR1cm4gW3N0YXJ0XTtcbiAgfVxuXG4gIGNvbnN0IGFyciA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE1hdGguYWJzKGVuZCAtIHN0YXJ0KTsgaW5kZXgrKykge1xuICAgIGxldCB2YWx1ZSA9IHN0YXJ0ICsgaW5kZXggKiBzdGVwO1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgdmFsdWUgPSBzdGFydDtcbiAgICB9XG5cbiAgICBpZiAoKGRpcmVjdGlvbiA9PT0gJ2FzYycgJiYgKHZhbHVlIDwgc3RhcnQgfHwgdmFsdWUgPiBlbmQpKSB8fCAoZGlyZWN0aW9uID09PSAnZGVzYycgJiYgKHZhbHVlID4gc3RhcnQgfHwgdmFsdWUgPCBlbmQpKSkge1xuICAgICAgcmV0dXJuIGFycjtcbiAgICB9XG5cbiAgICBhcnIucHVzaCh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gYXJyO1xufVxuXG5leHBvcnQgY29uc3QgaXNFcXVhbCA9ICh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuID0+IHtcbiAgaWYgKHZhbHVlMSA9PT0gdmFsdWUyIHx8ICh2YWx1ZTEgPT09IG51bGwgJiYgdmFsdWUyID09PSBudWxsKSB8fCAodmFsdWUxID09PSB1bmRlZmluZWQgJiYgdmFsdWUyID09PSB1bmRlZmluZWQpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZTEgIT09ICdvYmplY3QnIHx8IHR5cGVvZiB2YWx1ZTIgIT09ICdvYmplY3QnIHx8IChBcnJheS5pc0FycmF5KHZhbHVlMSkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUyKSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZTEpKSB7XG4gICAgaWYgKHZhbHVlMS5sZW5ndGggIT09IHZhbHVlMi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiAhdmFsdWUxLnNvbWUoKGl0ZW0sIGluZGV4KSA9PiAhaXNFcXVhbChpdGVtLCB2YWx1ZTJbaW5kZXhdKSk7XG4gIH1cblxuICBpZiAoT2JqZWN0LmtleXModmFsdWUxKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHZhbHVlMikubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAhT2JqZWN0LmtleXModmFsdWUxKS5zb21lKChrZXkpID0+ICFpc0VxdWFsKHZhbHVlMVtrZXldLCB2YWx1ZTJba2V5XSkpO1xufVxuXG5leHBvcnQgY29uc3QgdW5pcUJ5ID0gPFQ+KGRhdGE6IEFycmF5PFQ+LCBrZXk/OiBzdHJpbmcpOiBBcnJheTxUPiA9PiB7XG4gIGlmICgha2V5IHx8ICFkYXRhIHx8ICFkYXRhLmxlbmd0aCB8fCB0eXBlb2YgZGF0YVswXSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGRhdGEpKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGFVbmlxdWUgPSBrZXlCeShkYXRhIGFzIEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+LCBrZXkpO1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhkYXRhVW5pcXVlKS5tYXAoa2V5ID0+IGRhdGFVbmlxdWVba2V5XSk7XG59XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUludGVyZmFjZSA9IChvYmo6IGFueSwgaW50ZXJmYWNlTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZ2VuZXJhdGVUeXBlID0gKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICdudWxsJztcbiAgICB9XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcblxuICAgIGlmICh0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuICdzdHJpbmcnO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuICdib29sZWFuJztcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gJ2FueSc7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuICdEYXRlJztcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgIHJldHVybiAnUmVnRXhwJztcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuICdBcnJheTxhbnk+JztcbiAgICAgIH1cbiAgICAgIHJldHVybiBgQXJyYXk8JHtnZW5lcmF0ZVR5cGUodmFsdWVbMF0pfT5gO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgbGV0IGludGVyZmFjZVN0ciA9ICd7XFxuJztcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZVR5cGUgPSBnZW5lcmF0ZVR5cGUodmFsdWVba2V5XSk7XG4gICAgICAgICAgaW50ZXJmYWNlU3RyICs9IGAgICR7a2V5fTogJHt2YWx1ZVR5cGV9O1xcbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGludGVyZmFjZVN0ciArPSAnfSc7XG4gICAgICByZXR1cm4gaW50ZXJmYWNlU3RyO1xuICAgIH1cblxuICAgIHJldHVybiAnYW55JztcbiAgfTtcblxuICBjb25zdCBpbnRlcmZhY2VTdHIgPSBgaW50ZXJmYWNlICR7aW50ZXJmYWNlTmFtZX0gJHtnZW5lcmF0ZVR5cGUob2JqKX1gO1xuICByZXR1cm4gaW50ZXJmYWNlU3RyO1xufTsiXX0=
|