@igo2/utils 17.0.0-next.4 → 17.0.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/compression/compressedData.interface.mjs +1 -1
- package/esm2022/lib/compression/compression.utils.mjs +1 -1
- package/esm2022/lib/compression/index.mjs +1 -1
- package/esm2022/lib/datetime.utils.mjs +1 -1
- package/esm2022/lib/index.mjs +1 -1
- package/esm2022/lib/object-utils.mjs +1 -1
- package/esm2022/lib/string-utils.mjs +1 -1
- package/esm2022/lib/user-agent.mjs +1 -1
- package/fesm2022/igo2-utils.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
npm install --save @igo2/utils
|
|
1
|
+
npm install --save @igo2/utils
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlc3NlZERhdGEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9jb21wcmVzc2lvbi9jb21wcmVzc2VkRGF0YS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29tcHJlc3NlZERhdGEge1xuICBsZW5ndGg6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xuICBvYmplY3Q6IGFueTtcbn1cbiJdfQ==
|
|
@@ -129,4 +129,4 @@ export class Compression {
|
|
|
129
129
|
/* tslint:enable:no-bitwise*/
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlc3Npb24udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2NvbXByZXNzaW9uL2NvbXByZXNzaW9uLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7QUFJNUMsU0FBUyxTQUFTLENBQUMsQ0FBUyxFQUFFLFdBQW1CLEVBQUUsTUFBYztJQUMvRCw4QkFBOEI7SUFDOUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLDZCQUE2QjtBQUMvQixDQUFDO0FBRUQsTUFBTSxPQUFPLFdBQVc7SUFDZCxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDeEMsV0FBVyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBRWhEO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6Qix1Q0FBdUM7UUFDdkMsaUJBQWlCO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFD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LEVBQUUsRUFBRSxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNiLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQ1YsR0FBRyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNmLEdBQUcsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ3ZDLEtBQUssR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZDLEdBQUcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakMsSUFBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNYLDZCQUE2QjtJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ29tcHJlc3NlZERhdGEgfSBmcm9tICcuL2NvbXByZXNzZWREYXRhLmludGVyZmFjZSc7XHJcblxyXG5mdW5jdGlvbiBnZXROdW1iZXIodjogbnVtYmVyLCBlbmRwb3NpdGlvbjogbnVtYmVyLCBsZW5ndGg6IG51bWJlcikge1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWJpdHdpc2UqL1xyXG4gIGNvbnN0IG1hc2sgPSAoMSA8PCBsZW5ndGgpIC0gMTtcclxuICByZXR1cm4gKHYgPj4gZW5kcG9zaXRpb24pICYgbWFzaztcclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWJpdHdpc2UqL1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tcHJlc3Npb24ge1xyXG4gIHByaXZhdGUgYmFzZTY0SW5kZXggPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xyXG4gIHByaXZhdGUgaW5kZXhCYXNlNjQgPSBuZXcgTWFwPG51bWJlciwgc3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVCYXNlNjRJbmRleCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUJhc2U2NEluZGV4KCkge1xyXG4gICAgLy8gaHR0cHM6Ly9mci53aWtpcGVkaWEub3JnL3dpa2kvQmFzZTY0XHJcbiAgICAvLyBBLVogPT4gWzAsIDI1XVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyNjsgaSsrKSB7XHJcbiAgICAgIHRoaXMuYmFzZTY0SW5kZXguc2V0KFN0cmluZy5mcm9tQ2hhckNvZGUoJ0EnLmNoYXJDb2RlQXQoMCkgKyBpKSwgaSk7XHJcbiAgICAgIHRoaXMuaW5kZXhCYXNlNjQuc2V0KGksIFN0cmluZy5mcm9tQ2hhckNvZGUoJ0EnLmNoYXJDb2RlQXQoMCkgKyBpKSk7XHJcbiAgICB9XHJcbiAgICAvLyBhLXogPT4gWzI2LCA1MV1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjY7IGkrKykge1xyXG4gICAgICB0aGlzLmJhc2U2NEluZGV4LnNldChTdHJpbmcuZnJvbUNoYXJDb2RlKCdhJy5jaGFyQ29kZUF0KDApICsgaSksIGkgKyAyNik7XHJcbiAgICAgIHRoaXMuaW5kZXhCYXNlNjQuc2V0KGkgKyAyNiwgU3RyaW5nLmZyb21DaGFyQ29kZSgnYScuY2hhckNvZGVBdCgwKSArIGkpKTtcclxuICAgIH1cclxuICAgIC8vIDAtOSA9PiBbNTIsIDYxXVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuYmFzZTY0SW5kZXguc2V0KFN0cmluZy5mcm9tQ2hhckNvZGUoJzAnLmNoYXJDb2RlQXQoMCkgKyBpKSwgaSArIDUyKTtcclxuICAgICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoaSArIDUyLCBTdHJpbmcuZnJvbUNoYXJDb2RlKCcwJy5jaGFyQ29kZUF0KDApICsgaSkpO1xyXG4gICAgfVxyXG4gICAgLy8gKyAvID0+IFs2MiwgNjNdXHJcbiAgICB0aGlzLmJhc2U2NEluZGV4LnNldCgnKycsIDYyKTtcclxuICAgIHRoaXMuYmFzZTY0SW5kZXguc2V0KCcvJywgNjMpO1xyXG4gICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoNjIsICcrJyk7XHJcbiAgICB0aGlzLmluZGV4QmFzZTY0LnNldCg2MywgJy8nKTtcclxuICB9XHJcblxyXG4gIGNvbXByZXNzQmxvYihibG9iOiBCbG9iKTogT2JzZXJ2YWJsZTxDb21wcmVzc2VkRGF0YT4ge1xyXG4gICAgaWYgKCFibG9iKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxDb21wcmVzc2VkRGF0YT4pID0+IHtcclxuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYmFzZTY0ID0gcmVhZGVyLnJlc3VsdC52YWx1ZU9mKCkgYXMgc3RyaW5nO1xyXG4gICAgICAgIGNvbnN0IHRleHQ2NCA9IGJhc2U2NC5zdWJzdHIoYmFzZTY0LmluZGV4T2YoJywnKSArIDEpO1xyXG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWQgPSB0aGlzLmNvbXByZXNzU3RyaW5nQmFzZTY0KHRleHQ2NCk7XHJcbiAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGE6IENvbXByZXNzZWREYXRhID0ge1xyXG4gICAgICAgICAgbGVuZ3RoOiB0ZXh0NjQubGVuZ3RoLFxyXG4gICAgICAgICAgdHlwZTogYmxvYi50eXBlLFxyXG4gICAgICAgICAgb2JqZWN0OiBjb21wcmVzc2VkXHJcbiAgICAgICAgfTtcclxuICAgICAgICBvYnNlcnZlci5uZXh0KGNvbXByZXNzZWREYXRhKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9ic2VydmFibGU7XHJcbiAgfVxyXG5cclxuICBkZWNvbXByZXNzQmxvYihjb21wcmVzc2VkRGF0YTogQ29tcHJlc3NlZERhdGEpOiBCbG9iIHtcclxuICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWJpdHdpc2UqL1xyXG4gICAgY29uc3Qgb2JqZWN0ID0gY29tcHJlc3NlZERhdGEub2JqZWN0O1xyXG4gICAgY29uc3QgbGVuZ3RoID0gY29tcHJlc3NlZERhdGEubGVuZ3RoO1xyXG4gICAgY29uc3QgZGVjb21wcmVzc2VkOiBzdHJpbmcgPSB0aGlzLmRlY29tcHJlc3NTdHJpbmdCYXNlNjQob2JqZWN0LCBsZW5ndGgpO1xyXG4gICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGRlY29tcHJlc3NlZCk7XHJcbiAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBieXRlTnVtYmVyc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogY29tcHJlc3NlZERhdGEudHlwZSB9KTtcclxuICAgIC8qIHRzbGludDplbmFibGU6bm8tYml0d2lzZSovXHJcbiAgICByZXR1cm4gYmxvYjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHJlc3NTdHJpbmdCYXNlNjQoczogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWJpdHdpc2UqL1xyXG4gICAgbGV0IG91dCA9ICcnO1xyXG4gICAgbGV0IGJpdHMgPSAxNjtcclxuICAgIGxldCBjaHIgPSAwO1xyXG4gICAgbGV0IHJlbSA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IGMgb2Ygcykge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYmFzZTY0SW5kZXguZ2V0KGMpO1xyXG4gICAgICBpZiAoYml0cyA+IDYpIHtcclxuICAgICAgICBiaXRzIC09IDY7XHJcbiAgICAgICAgY2hyICs9IHZhbHVlIDw8IGJpdHM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVtID0gNiAtIGJpdHM7XHJcbiAgICAgICAgY2hyICs9IHZhbHVlID4+IHJlbTtcclxuICAgICAgICBvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpO1xyXG4gICAgICAgIGNociA9IHZhbHVlIDw8ICgxNiAtIHJlbSk7XHJcbiAgICAgICAgYml0cyA9IDE2IC0gcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocy5sZW5ndGggJSA4ICE9PSAwKSB7XHJcbiAgICAgIG91dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocik7XHJcbiAgICB9XHJcbiAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWJpdHdpc2UqL1xyXG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoOTczMSkgKyBvdXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlY29tcHJlc3NTdHJpbmdCYXNlNjQoYzogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1iaXR3aXNlKi9cclxuICAgIGlmICghYykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGMuY2hhckNvZGVBdCgwKSAhPT0gOTczMSkge1xyXG4gICAgICByZXR1cm4gYztcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY2hyID0gMDtcclxuICAgIGxldCByZW0gPSAwO1xyXG4gICAgbGV0IGJpdHMgPSAxNjtcclxuICAgIGxldCBvdXQgPSAnJztcclxuICAgIGxldCBqID0gMTtcclxuICAgIGxldCB2YWx1ZSA9IGMuY2hhckNvZGVBdChqKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGJpdHMgPiA2KSB7XHJcbiAgICAgICAgYml0cyAtPSA2O1xyXG4gICAgICAgIGNociA9IGdldE51bWJlcih2YWx1ZSwgYml0cywgNik7XHJcbiAgICAgICAgb3V0ICs9IHRoaXMuaW5kZXhCYXNlNjQuZ2V0KGNocik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVtID0gNiAtIGJpdHM7XHJcbiAgICAgICAgY2hyID0gZ2V0TnVtYmVyKHZhbHVlLCAwLCBiaXRzKSA8PCByZW07XHJcbiAgICAgICAgdmFsdWUgPSBjLmNoYXJDb2RlQXQoKytqKTtcclxuICAgICAgICBjaHIgKz0gZ2V0TnVtYmVyKHZhbHVlLCAxNiAtIHJlbSwgcmVtKTtcclxuICAgICAgICBvdXQgKz0gdGhpcy5pbmRleEJhc2U2NC5nZXQoY2hyKTtcclxuICAgICAgICBiaXRzID0gMTYgLSByZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvdXQ7XHJcbiAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWJpdHdpc2UqL1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlc3Npb24udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2NvbXByZXNzaW9uL2NvbXByZXNzaW9uLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7QUFJNUMsU0FBUyxTQUFTLENBQUMsQ0FBUyxFQUFFLFdBQW1CLEVBQUUsTUFBYztJQUMvRCw4QkFBOEI7SUFDOUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLDZCQUE2QjtBQUMvQixDQUFDO0FBRUQsTUFBTSxPQUFPLFdBQVc7SUFDZCxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDeEMsV0FBVyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBRWhEO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6Qix1Q0FBdUM7UUFDdkMsaUJBQWlCO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFD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LEVBQUUsRUFBRSxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNiLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQ1YsR0FBRyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNmLEdBQUcsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ3ZDLEtBQUssR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZDLEdBQUcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakMsSUFBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNYLDZCQUE2QjtJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb21wcmVzc2VkRGF0YSB9IGZyb20gJy4vY29tcHJlc3NlZERhdGEuaW50ZXJmYWNlJztcblxuZnVuY3Rpb24gZ2V0TnVtYmVyKHY6IG51bWJlciwgZW5kcG9zaXRpb246IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpIHtcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYml0d2lzZSovXG4gIGNvbnN0IG1hc2sgPSAoMSA8PCBsZW5ndGgpIC0gMTtcbiAgcmV0dXJuICh2ID4+IGVuZHBvc2l0aW9uKSAmIG1hc2s7XG4gIC8qIHRzbGludDplbmFibGU6bm8tYml0d2lzZSovXG59XG5cbmV4cG9ydCBjbGFzcyBDb21wcmVzc2lvbiB7XG4gIHByaXZhdGUgYmFzZTY0SW5kZXggPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcml2YXRlIGluZGV4QmFzZTY0ID0gbmV3IE1hcDxudW1iZXIsIHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmdlbmVyYXRlQmFzZTY0SW5kZXgoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVCYXNlNjRJbmRleCgpIHtcbiAgICAvLyBodHRwczovL2ZyLndpa2lwZWRpYS5vcmcvd2lraS9CYXNlNjRcbiAgICAvLyBBLVogPT4gWzAsIDI1XVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjY7IGkrKykge1xuICAgICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoU3RyaW5nLmZyb21DaGFyQ29kZSgnQScuY2hhckNvZGVBdCgwKSArIGkpLCBpKTtcbiAgICAgIHRoaXMuaW5kZXhCYXNlNjQuc2V0KGksIFN0cmluZy5mcm9tQ2hhckNvZGUoJ0EnLmNoYXJDb2RlQXQoMCkgKyBpKSk7XG4gICAgfVxuICAgIC8vIGEteiA9PiBbMjYsIDUxXVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjY7IGkrKykge1xuICAgICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoU3RyaW5nLmZyb21DaGFyQ29kZSgnYScuY2hhckNvZGVBdCgwKSArIGkpLCBpICsgMjYpO1xuICAgICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoaSArIDI2LCBTdHJpbmcuZnJvbUNoYXJDb2RlKCdhJy5jaGFyQ29kZUF0KDApICsgaSkpO1xuICAgIH1cbiAgICAvLyAwLTkgPT4gWzUyLCA2MV1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyBpKyspIHtcbiAgICAgIHRoaXMuYmFzZTY0SW5kZXguc2V0KFN0cmluZy5mcm9tQ2hhckNvZGUoJzAnLmNoYXJDb2RlQXQoMCkgKyBpKSwgaSArIDUyKTtcbiAgICAgIHRoaXMuaW5kZXhCYXNlNjQuc2V0KGkgKyA1MiwgU3RyaW5nLmZyb21DaGFyQ29kZSgnMCcuY2hhckNvZGVBdCgwKSArIGkpKTtcbiAgICB9XG4gICAgLy8gKyAvID0+IFs2MiwgNjNdXG4gICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoJysnLCA2Mik7XG4gICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoJy8nLCA2Myk7XG4gICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoNjIsICcrJyk7XG4gICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoNjMsICcvJyk7XG4gIH1cblxuICBjb21wcmVzc0Jsb2IoYmxvYjogQmxvYik6IE9ic2VydmFibGU8Q29tcHJlc3NlZERhdGE+IHtcbiAgICBpZiAoIWJsb2IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxDb21wcmVzc2VkRGF0YT4pID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IHJlYWRlci5yZXN1bHQudmFsdWVPZigpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3QgdGV4dDY0ID0gYmFzZTY0LnN1YnN0cihiYXNlNjQuaW5kZXhPZignLCcpICsgMSk7XG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWQgPSB0aGlzLmNvbXByZXNzU3RyaW5nQmFzZTY0KHRleHQ2NCk7XG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhOiBDb21wcmVzc2VkRGF0YSA9IHtcbiAgICAgICAgICBsZW5ndGg6IHRleHQ2NC5sZW5ndGgsXG4gICAgICAgICAgdHlwZTogYmxvYi50eXBlLFxuICAgICAgICAgIG9iamVjdDogY29tcHJlc3NlZFxuICAgICAgICB9O1xuICAgICAgICBvYnNlcnZlci5uZXh0KGNvbXByZXNzZWREYXRhKTtcbiAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGU7XG4gIH1cblxuICBkZWNvbXByZXNzQmxvYihjb21wcmVzc2VkRGF0YTogQ29tcHJlc3NlZERhdGEpOiBCbG9iIHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1iaXR3aXNlKi9cbiAgICBjb25zdCBvYmplY3QgPSBjb21wcmVzc2VkRGF0YS5vYmplY3Q7XG4gICAgY29uc3QgbGVuZ3RoID0gY29tcHJlc3NlZERhdGEubGVuZ3RoO1xuICAgIGNvbnN0IGRlY29tcHJlc3NlZDogc3RyaW5nID0gdGhpcy5kZWNvbXByZXNzU3RyaW5nQmFzZTY0KG9iamVjdCwgbGVuZ3RoKTtcbiAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoZGVjb21wcmVzc2VkKTtcbiAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBjb21wcmVzc2VkRGF0YS50eXBlIH0pO1xuICAgIC8qIHRzbGludDplbmFibGU6bm8tYml0d2lzZSovXG4gICAgcmV0dXJuIGJsb2I7XG4gIH1cblxuICBwcml2YXRlIGNvbXByZXNzU3RyaW5nQmFzZTY0KHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tYml0d2lzZSovXG4gICAgbGV0IG91dCA9ICcnO1xuICAgIGxldCBiaXRzID0gMTY7XG4gICAgbGV0IGNociA9IDA7XG4gICAgbGV0IHJlbSA9IDA7XG4gICAgZm9yIChjb25zdCBjIG9mIHMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5iYXNlNjRJbmRleC5nZXQoYyk7XG4gICAgICBpZiAoYml0cyA+IDYpIHtcbiAgICAgICAgYml0cyAtPSA2O1xuICAgICAgICBjaHIgKz0gdmFsdWUgPDwgYml0cztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbSA9IDYgLSBiaXRzO1xuICAgICAgICBjaHIgKz0gdmFsdWUgPj4gcmVtO1xuICAgICAgICBvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpO1xuICAgICAgICBjaHIgPSB2YWx1ZSA8PCAoMTYgLSByZW0pO1xuICAgICAgICBiaXRzID0gMTYgLSByZW07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzLmxlbmd0aCAlIDggIT09IDApIHtcbiAgICAgIG91dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocik7XG4gICAgfVxuICAgIC8qIHRzbGludDplbmFibGU6bm8tYml0d2lzZSovXG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoOTczMSkgKyBvdXQ7XG4gIH1cblxuICBwcml2YXRlIGRlY29tcHJlc3NTdHJpbmdCYXNlNjQoYzogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tYml0d2lzZSovXG4gICAgaWYgKCFjKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGMuY2hhckNvZGVBdCgwKSAhPT0gOTczMSkge1xuICAgICAgcmV0dXJuIGM7XG4gICAgfVxuXG4gICAgbGV0IGNociA9IDA7XG4gICAgbGV0IHJlbSA9IDA7XG4gICAgbGV0IGJpdHMgPSAxNjtcbiAgICBsZXQgb3V0ID0gJyc7XG4gICAgbGV0IGogPSAxO1xuICAgIGxldCB2YWx1ZSA9IGMuY2hhckNvZGVBdChqKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYml0cyA+IDYpIHtcbiAgICAgICAgYml0cyAtPSA2O1xuICAgICAgICBjaHIgPSBnZXROdW1iZXIodmFsdWUsIGJpdHMsIDYpO1xuICAgICAgICBvdXQgKz0gdGhpcy5pbmRleEJhc2U2NC5nZXQoY2hyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbSA9IDYgLSBiaXRzO1xuICAgICAgICBjaHIgPSBnZXROdW1iZXIodmFsdWUsIDAsIGJpdHMpIDw8IHJlbTtcbiAgICAgICAgdmFsdWUgPSBjLmNoYXJDb2RlQXQoKytqKTtcbiAgICAgICAgY2hyICs9IGdldE51bWJlcih2YWx1ZSwgMTYgLSByZW0sIHJlbSk7XG4gICAgICAgIG91dCArPSB0aGlzLmluZGV4QmFzZTY0LmdldChjaHIpO1xuICAgICAgICBiaXRzID0gMTYgLSByZW07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1iaXR3aXNlKi9cbiAgfVxufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './compressedData.interface';
|
|
2
2
|
export * from './compression.utils';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2NvbXByZXNzaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcHJlc3NlZERhdGEuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcHJlc3Npb24udXRpbHMnO1xuIl19
|
|
@@ -2,4 +2,4 @@ import moment from 'moment';
|
|
|
2
2
|
export function dateTransform(date, format) {
|
|
3
3
|
return moment(date).format(format);
|
|
4
4
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2RhdGV0aW1lLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVUsRUFBRSxNQUFjO0lBQ3RELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRyYW5zZm9ybShkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBtb21lbnQoZGF0ZSkuZm9ybWF0KGZvcm1hdCk7XG59XG4iXX0=
|
package/esm2022/lib/index.mjs
CHANGED
|
@@ -15,4 +15,4 @@ export * from './theme.utils';
|
|
|
15
15
|
export * from './user-agent';
|
|
16
16
|
export * from './uuid';
|
|
17
17
|
export * from './watcher';
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZTY0JztcbmV4cG9ydCAqIGZyb20gJy4vY2FjaGUudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGlwYm9hcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wcmVzc2lvbic7XG5leHBvcnQgKiBmcm9tICcuL2NoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYW5nZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRldGltZS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2RvbS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9udW1iZXItdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJlbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdGhlbWUudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLWFnZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXVpZCc7XG5leHBvcnQgKiBmcm9tICcuL3dhdGNoZXInO1xuIl19
|
|
@@ -245,4 +245,4 @@ export class ObjectUtils {
|
|
|
245
245
|
return Object.keys(obj).length === 0;
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9vYmplY3QtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNyQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RSxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbEIsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxDQUNMLElBQUk7WUFDSixPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3hCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBSSxLQUFLLElBQUk7WUFDYixDQUFDLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQ2QsTUFBYyxFQUNkLE1BQWMsRUFDZCxlQUFlLEdBQUcsS0FBSztRQUV2QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLFdB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S0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVyxFQUFFLElBQWM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDNUIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN0QyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVULE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE9iamVjdFV0aWxzIHtcclxuICBzdGF0aWMgcmVzb2x2ZShvYmo6IG9iamVjdCwga2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3Qga2V5c0FycmF5ID0ga2V5LnJlcGxhY2UoL1xcWy9nLCAnLicpLnJlcGxhY2UoL1xcXS9nLCAnJykuc3BsaXQoJy4nKTtcclxuICAgIGxldCBjdXJyZW50ID0gb2JqO1xyXG4gICAgd2hpbGUgKGtleXNBcnJheS5sZW5ndGgpIHtcclxuICAgICAgaWYgKHR5cGVvZiBjdXJyZW50ICE9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgY3VycmVudCA9IGN1cnJlbnRba2V5c0FycmF5LnNoaWZ0KCldO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjdXJyZW50O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzT2JqZWN0KGl0ZW06IG9iamVjdCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgaXRlbSAmJlxyXG4gICAgICB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiZcclxuICAgICAgaXRlbSAhPT0gbnVsbCAmJlxyXG4gICAgICAhKGl0ZW0gaW5zdGFuY2VvZiBEYXRlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBtZXJnZURlZXAoXHJcbiAgICB0YXJnZXQ6IG9iamVjdCxcclxuICAgIHNvdXJjZTogb2JqZWN0LFxyXG4gICAgaWdub3JlVW5kZWZpbmVkID0gZmFsc2VcclxuICApOiBhbnkge1xyXG4gICAgY29uc3Qgb3V0cHV0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGFyZ2V0KTtcclxuICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdCh0YXJnZXQpICYmIE9iamVjdFV0aWxzLmlzT2JqZWN0KHNvdXJjZSkpIHtcclxuICAgICAgT2JqZWN0LmtleXMoc291cmNlKVxyXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4gIWlnbm9yZVVuZGVmaW5lZCB8fCBzb3VyY2Vba2V5XSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIC5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdChzb3VyY2Vba2V5XSkpIHtcclxuICAgICAgICAgICAgaWYgKCEoa2V5IGluIHRhcmdldCkpIHtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG91dHB1dCwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBPYmplY3RVdGlscy5tZXJnZURlZXAoXHJcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZVtrZXldLFxyXG4gICAgICAgICAgICAgICAgaWdub3JlVW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG91dHB1dDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjb3B5RGVlcChzcmMpOiBhbnkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gQXJyYXkuaXNBcnJheShzcmMpID8gW10gOiB7fTtcclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBzcmMpIHtcclxuICAgICAgaWYgKHNyYy5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gc3JjW3Byb3BdO1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICB0YXJnZXRbcHJvcF0gPSB0aGlzLmNvcHlEZWVwKHZhbHVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGFyZ2V0W3Byb3BdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlbW92ZUR1cGxpY2F0ZUNhc2VJbnNlbnNpdGl2ZShvYmo6IG9iamVjdCkge1xyXG4gICAgY29uc3Qgc3VtbWFyeUNhcGl0YWxpemVPYmplY3QgPSB7fTtcclxuICAgIGNvbnN0IGNhcGl0YWxpemVPYmplY3QgPSB7fTtcclxuICAgIGNvbnN0IHVwcGVyQ2FzZUNvdW50ID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBvYmopIHtcclxuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgICAgICBjb25zdCB1cHBlckNhc2VQcm9wZXJ0eSA9IHByb3BlcnR5LnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgICAgaWYgKCFzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdC5oYXNPd25Qcm9wZXJ0eSh1cHBlckNhc2VQcm9wZXJ0eSkpIHtcclxuICAgICAgICAgIHN1bW1hcnlDYXBpdGFsaXplT2JqZWN0W3VwcGVyQ2FzZVByb3BlcnR5XSA9IFtcclxuICAgICAgICAgICAgeyBbcHJvcGVydHldOiBvYmpbcHJvcGVydHldIH1cclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHN1bW1hcnlDYXBpdGFsaXplT2JqZWN0W3VwcGVyQ2FzZVByb3BlcnR5XS5wdXNoKHtcclxuICAgICAgICAgICAgW3Byb3BlcnR5XTogb2JqW3Byb3BlcnR5XVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgdXBwZXJjYXNlIGxldHRlcnNNbmFcclxuICAgICAgICB1cHBlckNhc2VDb3VudC5wdXNoKHtcclxuICAgICAgICAgIGtleTogcHJvcGVydHksXHJcbiAgICAgICAgICBjb3VudDogcHJvcGVydHkucmVwbGFjZSgvW15BLVpdL2csICcnKS5sZW5ndGhcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBjYXBpdGFsaXplZFByb3BlcnR5IGluIHN1bW1hcnlDYXBpdGFsaXplT2JqZWN0KSB7XHJcbiAgICAgIGlmIChzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdC5oYXNPd25Qcm9wZXJ0eShjYXBpdGFsaXplZFByb3BlcnR5KSkge1xyXG4gICAgICAgIGlmIChzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdC5oYXNPd25Qcm9wZXJ0eShjYXBpdGFsaXplZFByb3BlcnR5KSkge1xyXG4gICAgICAgICAgY29uc3QgY2FwaXRhbGl6ZWRQcm9wZXJ0eU9iamVjdCA9XHJcbiAgICAgICAgICAgIHN1bW1hcnlDYXBpdGFsaXplT2JqZWN0W2NhcGl0YWxpemVkUHJvcGVydHldO1xyXG4gICAgICAgICAgaWYgKGNhcGl0YWxpemVkUHJvcGVydHlPYmplY3QubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIC8vIGZvciBzaW5nbGUgcGFyYW1zIChubyBkdXBsaWNhdGVzKVxyXG4gICAgICAgICAgICBjb25zdCBzaW5nbGVQb3NzaWJpbGl0eSA9IGNhcGl0YWxpemVkUHJvcGVydHlPYmplY3RbMF07XHJcbiAgICAgICAgICAgIGNhcGl0YWxpemVPYmplY3RbY2FwaXRhbGl6ZWRQcm9wZXJ0eV0gPVxyXG4gICAgICAgICAgICAgIHNpbmdsZVBvc3NpYmlsaXR5W09iamVjdC5rZXlzKHNpbmdsZVBvc3NpYmlsaXR5KVswXV07XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNhcGl0YWxpemVkUHJvcGVydHlPYmplY3QubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAvLyBkZWZpbmluZyB0aGUgY2xvc2VzdCB0byBsb3dlcmNhc2UgcHJvcGVydHlcclxuICAgICAgICAgICAgY29uc3QgcGFyYW1DbG9zZXN0VG9Mb3dlcmNhc2UgPSB1cHBlckNhc2VDb3VudFxyXG4gICAgICAgICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAoZikgPT4gZi5rZXkudG9Mb3dlckNhc2UoKSA9PT0gY2FwaXRhbGl6ZWRQcm9wZXJ0eS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnJlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2LnkgPCBjdXJyZW50LnkgPyBwcmV2IDogY3VycmVudDtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY2FwaXRhbGl6ZU9iamVjdFtwYXJhbUNsb3Nlc3RUb0xvd2VyY2FzZS5rZXkudG9VcHBlckNhc2UoKV0gPVxyXG4gICAgICAgICAgICAgIG9ialtwYXJhbUNsb3Nlc3RUb0xvd2VyY2FzZS5rZXldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBvYmopIHtcclxuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgICAgICBkZWxldGUgb2JqW3Byb3BlcnR5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gY2FwaXRhbGl6ZU9iamVjdCkge1xyXG4gICAgICBpZiAoY2FwaXRhbGl6ZU9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgICAgICBvYmpbcHJvcGVydHldID0gY2FwaXRhbGl6ZU9iamVjdFtwcm9wZXJ0eV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyByZW1vdmVVbmRlZmluZWQob2JqOiBvYmplY3QpOiBhbnkge1xyXG4gICAgY29uc3Qgb3V0cHV0ID0ge307XHJcbiAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICBPYmplY3Qua2V5cyhvYmopXHJcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBvYmpba2V5XSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIC5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdChvYmpba2V5XSkgfHwgQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcclxuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQob2JqW2tleV0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBvYmpba2V5XTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICByZXR1cm4gb2JqLm1hcCgobykgPT4gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKG8pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlbW92ZU51bGwob2JqOiBvYmplY3QpOiBhbnkge1xyXG4gICAgY29uc3Qgb3V0cHV0ID0ge307XHJcbiAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICBPYmplY3Qua2V5cyhvYmopXHJcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBvYmpba2V5XSAhPT0gbnVsbClcclxuICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqW2tleV0pIHx8IEFycmF5LmlzQXJyYXkob2JqW2tleV0pKSB7XHJcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gT2JqZWN0VXRpbHMucmVtb3ZlTnVsbChvYmpba2V5XSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvdXRwdXRba2V5XSA9IG9ialtrZXldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICAgIHJldHVybiBvYmoubWFwKChvKSA9PiBPYmplY3RVdGlscy5yZW1vdmVOdWxsKG8pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG5hdHVyYWxDb21wYXJlKGEsIGIsIGRpcmVjdGlvbiA9ICdhc2MnLCBudWxsc0ZpcnN0PzogYm9vbGVhbikge1xyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2Rlc2MnKSB7XHJcbiAgICAgIGIgPSBbYSwgKGEgPSBiKV1bMF07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbnVsbHNGaXJzdCA9IHVuZGVmaW5lZCA6IGVuZCBpZiBkaXJlY3Rpb24gPSAnYXNjJywgZmlyc3QgaWYgZGlyZWN0aW9uID0gJ2Rlc2MnXHJcbiAgICAvLyBudWxsc0ZpcnN0ID0gdHJ1ZSA6IGFsd2F5cyBmaXJzdFxyXG4gICAgLy8gbnVsbHNGaXJzdCA9IGZhbHNlIDogYWx3YXlzIGVuZFxyXG4gICAgaWYgKFxyXG4gICAgICBhID09PSBudWxsIHx8XHJcbiAgICAgIGEgPT09ICcnIHx8XHJcbiAgICAgIGEgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICBiID09PSBudWxsIHx8XHJcbiAgICAgIGIgPT09ICcnIHx8XHJcbiAgICAgIGIgPT09IHVuZGVmaW5lZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IG51bGxTY29yZSA9XHJcbiAgICAgICAgYSA9PT0gYlxyXG4gICAgICAgICAgPyAwXHJcbiAgICAgICAgICA6IGEgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IDNcclxuICAgICAgICAgICAgOiBiID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICA/IC0zXHJcbiAgICAgICAgICAgICAgOiBhID09PSBudWxsXHJcbiAgICAgICAgICAgICAgICA/IDJcclxuICAgICAgICAgICAgICAgIDogYiA9PT0gbnVsbFxyXG4gICAgICAgICAgICAgICAgICA/IC0yXHJcbiAgICAgICAgICAgICAgICAgIDogYSA9PT0gJydcclxuICAgICAgICAgICAgICAgICAgICA/IDFcclxuICAgICAgICAgICAgICAgICAgICA6IC0xO1xyXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAnZGVzYycpIHtcclxuICAgICAgICByZXR1cm4gbnVsbHNGaXJzdCAhPT0gZmFsc2UgPyBudWxsU2NvcmUgOiBudWxsU2NvcmUgKiAtMTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbHNGaXJzdCA9PT0gdHJ1ZSA/IG51bGxTY29yZSAqIC0xIDogbnVsbFNjb3JlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGF4ID0gW107XHJcbiAgICBjb25zdCBieCA9IFtdO1xyXG4gICAgYSA9ICcnICsgYTtcclxuICAgIGIgPSAnJyArIGI7XHJcblxyXG4gICAgYS5yZXBsYWNlKC8oXFxkKyl8KFxcRCspL2csIChfLCAkMSwgJDIpID0+IHtcclxuICAgICAgYXgucHVzaChbJDEgfHwgSW5maW5pdHksICQyIHx8ICcnXSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBiLnJlcGxhY2UoLyhcXGQrKXwoXFxEKykvZywgKF8sICQxLCAkMikgPT4ge1xyXG4gICAgICBieC5wdXNoKFskMSB8fCBJbmZpbml0eSwgJDIgfHwgJyddKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHdoaWxlIChheC5sZW5ndGggJiYgYngubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGFuID0gYXguc2hpZnQoKTtcclxuICAgICAgY29uc3QgYm4gPSBieC5zaGlmdCgpO1xyXG4gICAgICBjb25zdCBubiA9IGFuWzBdIC0gYm5bMF0gfHwgYW5bMV0ubG9jYWxlQ29tcGFyZShiblsxXSk7XHJcbiAgICAgIGlmIChubikge1xyXG4gICAgICAgIHJldHVybiBubjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBheC5sZW5ndGggLSBieC5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0d28gb2JqZWN0IGFyZSBlcXVpdmFsZW50LlxyXG4gICAqIE9iamVjdHMgYXJlIGNvbnNpZGVyZWQgZXF1aXZhbGVudCBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgcHJvcGVydGllcyBhbmRcclxuICAgKiBpZiBhbGwgb2YgdGhlaXIgcHJvcGVydGllcyAoZmlyc3QtbGV2ZWwgb25seSkgc2hhcmUgdGhlIHNhbWUgdmFsdWUuXHJcbiAgICogQHBhcmFtIG9iajEgRmlyc3Qgb2JqZWN0XHJcbiAgICogQHBhcmFtIG9iajIgU2Vjb25kIG9iamVjdFxyXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdHdvIG9iamVjdHMgYXJlciBlcXVpdmFsZW50XHJcbiAgICovXHJcbiAgc3RhdGljIG9iamVjdHNBcmVFcXVpdmFsZW50KG9iajE6IG9iamVjdCwgb2JqMjogb2JqZWN0KTogYm9vbGVhbiB7XHJcbiAgICBpZiAob2JqMSA9PT0gb2JqMikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYmoxUHJvcHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmoxKTtcclxuICAgIGNvbnN0IG9iajJQcm9wcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iajIpO1xyXG4gICAgaWYgKG9iajFQcm9wcy5sZW5ndGggIT09IG9iajJQcm9wcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBvYmoxUHJvcHMpIHtcclxuICAgICAgaWYgKG9iajFbcHJvcF0gIT09IG9iajJbcHJvcF0pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBhIG5ldyBvYmplY3Qgd2l0aCBhbiBhcnJheSBvZiBrZXlzIHJlbW92ZWRcclxuICAgKiBAcGFyYW0gb2JqIFNvdXJjZSBvYmplY3RcclxuICAgKiBAcGFyYW0ga2V5cyBLZXlzIHRvIHJlbW92ZVxyXG4gICAqIEByZXR1cm5zIEEgbmV3IG9iamVjdFxyXG4gICAqL1xyXG4gIHN0YXRpYyByZW1vdmVLZXlzKG9iajogb2JqZWN0LCBrZXlzOiBzdHJpbmdbXSk6IG9iamVjdCB7XHJcbiAgICBjb25zdCBuZXdPYmogPSBPYmplY3Qua2V5cyhvYmopXHJcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5cy5pbmRleE9mKGtleSkgPCAwKVxyXG4gICAgICAucmVkdWNlKChfb2JqLCBrZXkpID0+IHtcclxuICAgICAgICBfb2JqW2tleV0gPSBvYmpba2V5XTtcclxuICAgICAgICByZXR1cm4gX29iajtcclxuICAgICAgfSwge30pO1xyXG5cclxuICAgIHJldHVybiBuZXdPYmo7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNFbXB0eShvYmo6IG9iamVjdCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9vYmplY3QtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNyQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RSxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbEIsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxDQUNMLElBQUk7WUFDSixPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3hCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBSSxLQUFLLElBQUk7WUFDYixDQUFDLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQ2QsTUFBYyxFQUNkLE1BQWMsRUFDZCxlQUFlLEdBQUcsS0FBSztRQUV2QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLFdB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S0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVyxFQUFFLElBQWM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDNUIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN0QyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVULE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE9iamVjdFV0aWxzIHtcbiAgc3RhdGljIHJlc29sdmUob2JqOiBvYmplY3QsIGtleTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBrZXlzQXJyYXkgPSBrZXkucmVwbGFjZSgvXFxbL2csICcuJykucmVwbGFjZSgvXFxdL2csICcnKS5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuICAgIHdoaWxlIChrZXlzQXJyYXkubGVuZ3RoKSB7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnQgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjdXJyZW50ID0gY3VycmVudFtrZXlzQXJyYXkuc2hpZnQoKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cblxuICBzdGF0aWMgaXNPYmplY3QoaXRlbTogb2JqZWN0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGl0ZW0gJiZcbiAgICAgIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiZcbiAgICAgIGl0ZW0gIT09IG51bGwgJiZcbiAgICAgICEoaXRlbSBpbnN0YW5jZW9mIERhdGUpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBtZXJnZURlZXAoXG4gICAgdGFyZ2V0OiBvYmplY3QsXG4gICAgc291cmNlOiBvYmplY3QsXG4gICAgaWdub3JlVW5kZWZpbmVkID0gZmFsc2VcbiAgKTogYW55IHtcbiAgICBjb25zdCBvdXRwdXQgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQpO1xuICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdCh0YXJnZXQpICYmIE9iamVjdFV0aWxzLmlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgIE9iamVjdC5rZXlzKHNvdXJjZSlcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiAhaWdub3JlVW5kZWZpbmVkIHx8IHNvdXJjZVtrZXldICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgICBpZiAoIShrZXkgaW4gdGFyZ2V0KSkge1xuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG91dHB1dCwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXRwdXRba2V5XSA9IE9iamVjdFV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSxcbiAgICAgICAgICAgICAgICBzb3VyY2Vba2V5XSxcbiAgICAgICAgICAgICAgICBpZ25vcmVVbmRlZmluZWRcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cblxuICBzdGF0aWMgY29weURlZXAoc3JjKTogYW55IHtcbiAgICBjb25zdCB0YXJnZXQgPSBBcnJheS5pc0FycmF5KHNyYykgPyBbXSA6IHt9O1xuICAgIGZvciAoY29uc3QgcHJvcCBpbiBzcmMpIHtcbiAgICAgIGlmIChzcmMuaGFzT3duUHJvcGVydHkocHJvcCkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBzcmNbcHJvcF07XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGFyZ2V0W3Byb3BdID0gdGhpcy5jb3B5RGVlcCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W3Byb3BdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIHN0YXRpYyByZW1vdmVEdXBsaWNhdGVDYXNlSW5zZW5zaXRpdmUob2JqOiBvYmplY3QpIHtcbiAgICBjb25zdCBzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdCA9IHt9O1xuICAgIGNvbnN0IGNhcGl0YWxpemVPYmplY3QgPSB7fTtcbiAgICBjb25zdCB1cHBlckNhc2VDb3VudCA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBvYmopIHtcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICAgIGNvbnN0IHVwcGVyQ2FzZVByb3BlcnR5ID0gcHJvcGVydHkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgaWYgKCFzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdC5oYXNPd25Qcm9wZXJ0eSh1cHBlckNhc2VQcm9wZXJ0eSkpIHtcbiAgICAgICAgICBzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdFt1cHBlckNhc2VQcm9wZXJ0eV0gPSBbXG4gICAgICAgICAgICB7IFtwcm9wZXJ0eV06IG9ialtwcm9wZXJ0eV0gfVxuICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3VtbWFyeUNhcGl0YWxpemVPYmplY3RbdXBwZXJDYXNlUHJvcGVydHldLnB1c2goe1xuICAgICAgICAgICAgW3Byb3BlcnR5XTogb2JqW3Byb3BlcnR5XVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgdXBwZXJjYXNlIGxldHRlcnNNbmFcbiAgICAgICAgdXBwZXJDYXNlQ291bnQucHVzaCh7XG4gICAgICAgICAga2V5OiBwcm9wZXJ0eSxcbiAgICAgICAgICBjb3VudDogcHJvcGVydHkucmVwbGFjZSgvW15BLVpdL2csICcnKS5sZW5ndGhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2FwaXRhbGl6ZWRQcm9wZXJ0eSBpbiBzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdCkge1xuICAgICAgaWYgKHN1bW1hcnlDYXBpdGFsaXplT2JqZWN0Lmhhc093blByb3BlcnR5KGNhcGl0YWxpemVkUHJvcGVydHkpKSB7XG4gICAgICAgIGlmIChzdW1tYXJ5Q2FwaXRhbGl6ZU9iamVjdC5oYXNPd25Qcm9wZXJ0eShjYXBpdGFsaXplZFByb3BlcnR5KSkge1xuICAgICAgICAgIGNvbnN0IGNhcGl0YWxpemVkUHJvcGVydHlPYmplY3QgPVxuICAgICAgICAgICAgc3VtbWFyeUNhcGl0YWxpemVPYmplY3RbY2FwaXRhbGl6ZWRQcm9wZXJ0eV07XG4gICAgICAgICAgaWYgKGNhcGl0YWxpemVkUHJvcGVydHlPYmplY3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAvLyBmb3Igc2luZ2xlIHBhcmFtcyAobm8gZHVwbGljYXRlcylcbiAgICAgICAgICAgIGNvbnN0IHNpbmdsZVBvc3NpYmlsaXR5ID0gY2FwaXRhbGl6ZWRQcm9wZXJ0eU9iamVjdFswXTtcbiAgICAgICAgICAgIGNhcGl0YWxpemVPYmplY3RbY2FwaXRhbGl6ZWRQcm9wZXJ0eV0gPVxuICAgICAgICAgICAgICBzaW5nbGVQb3NzaWJpbGl0eVtPYmplY3Qua2V5cyhzaW5nbGVQb3NzaWJpbGl0eSlbMF1dO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY2FwaXRhbGl6ZWRQcm9wZXJ0eU9iamVjdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAvLyBkZWZpbmluZyB0aGUgY2xvc2VzdCB0byBsb3dlcmNhc2UgcHJvcGVydHlcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtQ2xvc2VzdFRvTG93ZXJjYXNlID0gdXBwZXJDYXNlQ291bnRcbiAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoZikgPT4gZi5rZXkudG9Mb3dlckNhc2UoKSA9PT0gY2FwaXRhbGl6ZWRQcm9wZXJ0eS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2LnkgPCBjdXJyZW50LnkgPyBwcmV2IDogY3VycmVudDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXBpdGFsaXplT2JqZWN0W3BhcmFtQ2xvc2VzdFRvTG93ZXJjYXNlLmtleS50b1VwcGVyQ2FzZSgpXSA9XG4gICAgICAgICAgICAgIG9ialtwYXJhbUNsb3Nlc3RUb0xvd2VyY2FzZS5rZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIG9iaikge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICAgICAgZGVsZXRlIG9ialtwcm9wZXJ0eV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBjYXBpdGFsaXplT2JqZWN0KSB7XG4gICAgICBpZiAoY2FwaXRhbGl6ZU9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICAgICAgb2JqW3Byb3BlcnR5XSA9IGNhcGl0YWxpemVPYmplY3RbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyByZW1vdmVVbmRlZmluZWQob2JqOiBvYmplY3QpOiBhbnkge1xuICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdChvYmopKSB7XG4gICAgICBPYmplY3Qua2V5cyhvYmopXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4gb2JqW2tleV0gIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdChvYmpba2V5XSkgfHwgQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKG9ialtrZXldKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiBvYmoubWFwKChvKSA9PiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQobykpO1xuICAgIH1cblxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBzdGF0aWMgcmVtb3ZlTnVsbChvYmo6IG9iamVjdCk6IGFueSB7XG4gICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgaWYgKE9iamVjdFV0aWxzLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIE9iamVjdC5rZXlzKG9iailcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBvYmpba2V5XSAhPT0gbnVsbClcbiAgICAgICAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdChvYmpba2V5XSkgfHwgQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gT2JqZWN0VXRpbHMucmVtb3ZlTnVsbChvYmpba2V5XSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcCgobykgPT4gT2JqZWN0VXRpbHMucmVtb3ZlTnVsbChvKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHN0YXRpYyBuYXR1cmFsQ29tcGFyZShhLCBiLCBkaXJlY3Rpb24gPSAnYXNjJywgbnVsbHNGaXJzdD86IGJvb2xlYW4pIHtcbiAgICBpZiAoZGlyZWN0aW9uID09PSAnZGVzYycpIHtcbiAgICAgIGIgPSBbYSwgKGEgPSBiKV1bMF07XG4gICAgfVxuXG4gICAgLy8gbnVsbHNGaXJzdCA9IHVuZGVmaW5lZCA6IGVuZCBpZiBkaXJlY3Rpb24gPSAnYXNjJywgZmlyc3QgaWYgZGlyZWN0aW9uID0gJ2Rlc2MnXG4gICAgLy8gbnVsbHNGaXJzdCA9IHRydWUgOiBhbHdheXMgZmlyc3RcbiAgICAvLyBudWxsc0ZpcnN0ID0gZmFsc2UgOiBhbHdheXMgZW5kXG4gICAgaWYgKFxuICAgICAgYSA9PT0gbnVsbCB8fFxuICAgICAgYSA9PT0gJycgfHxcbiAgICAgIGEgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgYiA9PT0gbnVsbCB8fFxuICAgICAgYiA9PT0gJycgfHxcbiAgICAgIGIgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29uc3QgbnVsbFNjb3JlID1cbiAgICAgICAgYSA9PT0gYlxuICAgICAgICAgID8gMFxuICAgICAgICAgIDogYSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IDNcbiAgICAgICAgICAgIDogYiA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8gLTNcbiAgICAgICAgICAgICAgOiBhID09PSBudWxsXG4gICAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgICAgOiBiID09PSBudWxsXG4gICAgICAgICAgICAgICAgICA/IC0yXG4gICAgICAgICAgICAgICAgICA6IGEgPT09ICcnXG4gICAgICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgICAgICA6IC0xO1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2Rlc2MnKSB7XG4gICAgICAgIHJldHVybiBudWxsc0ZpcnN0ICE9PSBmYWxzZSA/IG51bGxTY29yZSA6IG51bGxTY29yZSAqIC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxzRmlyc3QgPT09IHRydWUgPyBudWxsU2NvcmUgKiAtMSA6IG51bGxTY29yZTtcbiAgICB9XG5cbiAgICBjb25zdCBheCA9IFtdO1xuICAgIGNvbnN0IGJ4ID0gW107XG4gICAgYSA9ICcnICsgYTtcbiAgICBiID0gJycgKyBiO1xuXG4gICAgYS5yZXBsYWNlKC8oXFxkKyl8KFxcRCspL2csIChfLCAkMSwgJDIpID0+IHtcbiAgICAgIGF4LnB1c2goWyQxIHx8IEluZmluaXR5LCAkMiB8fCAnJ10pO1xuICAgIH0pO1xuXG4gICAgYi5yZXBsYWNlKC8oXFxkKyl8KFxcRCspL2csIChfLCAkMSwgJDIpID0+IHtcbiAgICAgIGJ4LnB1c2goWyQxIHx8IEluZmluaXR5LCAkMiB8fCAnJ10pO1xuICAgIH0pO1xuXG4gICAgd2hpbGUgKGF4Lmxlbmd0aCAmJiBieC5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGFuID0gYXguc2hpZnQoKTtcbiAgICAgIGNvbnN0IGJuID0gYnguc2hpZnQoKTtcbiAgICAgIGNvbnN0IG5uID0gYW5bMF0gLSBiblswXSB8fCBhblsxXS5sb2NhbGVDb21wYXJlKGJuWzFdKTtcbiAgICAgIGlmIChubikge1xuICAgICAgICByZXR1cm4gbm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGF4Lmxlbmd0aCAtIGJ4Lmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0d28gb2JqZWN0IGFyZSBlcXVpdmFsZW50LlxuICAgKiBPYmplY3RzIGFyZSBjb25zaWRlcmVkIGVxdWl2YWxlbnQgaWYgdGhleSBoYXZlIHRoZSBzYW1lIHByb3BlcnRpZXMgYW5kXG4gICAqIGlmIGFsbCBvZiB0aGVpciBwcm9wZXJ0aWVzIChmaXJzdC1sZXZlbCBvbmx5KSBzaGFyZSB0aGUgc2FtZSB2YWx1ZS5cbiAgICogQHBhcmFtIG9iajEgRmlyc3Qgb2JqZWN0XG4gICAqIEBwYXJhbSBvYmoyIFNlY29uZCBvYmplY3RcbiAgICogQHJldHVybnMgV2hldGhlciB0d28gb2JqZWN0cyBhcmVyIGVxdWl2YWxlbnRcbiAgICovXG4gIHN0YXRpYyBvYmplY3RzQXJlRXF1aXZhbGVudChvYmoxOiBvYmplY3QsIG9iajI6IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIGlmIChvYmoxID09PSBvYmoyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBvYmoxUHJvcHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmoxKTtcbiAgICBjb25zdCBvYmoyUHJvcHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmoyKTtcbiAgICBpZiAob2JqMVByb3BzLmxlbmd0aCAhPT0gb2JqMlByb3BzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBvYmoxUHJvcHMpIHtcbiAgICAgIGlmIChvYmoxW3Byb3BdICE9PSBvYmoyW3Byb3BdKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBuZXcgb2JqZWN0IHdpdGggYW4gYXJyYXkgb2Yga2V5cyByZW1vdmVkXG4gICAqIEBwYXJhbSBvYmogU291cmNlIG9iamVjdFxuICAgKiBAcGFyYW0ga2V5cyBLZXlzIHRvIHJlbW92ZVxuICAgKiBAcmV0dXJucyBBIG5ldyBvYmplY3RcbiAgICovXG4gIHN0YXRpYyByZW1vdmVLZXlzKG9iajogb2JqZWN0LCBrZXlzOiBzdHJpbmdbXSk6IG9iamVjdCB7XG4gICAgY29uc3QgbmV3T2JqID0gT2JqZWN0LmtleXMob2JqKVxuICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXlzLmluZGV4T2Yoa2V5KSA8IDApXG4gICAgICAucmVkdWNlKChfb2JqLCBrZXkpID0+IHtcbiAgICAgICAgX29ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgIHJldHVybiBfb2JqO1xuICAgICAgfSwge30pO1xuXG4gICAgcmV0dXJuIG5ld09iajtcbiAgfVxuXG4gIHN0YXRpYyBpc0VtcHR5KG9iajogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xuICB9XG59XG4iXX0=
|
|
@@ -110,4 +110,4 @@ export class StringUtils {
|
|
|
110
110
|
value.length > 1);
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9zdHJpbmctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNmLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8seUJBQXlCLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyx3QkFBd0IsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ25ELENBQUM7UUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUNwQixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDdEUsQ0FBQyxDQUFDLHdCQUF3QjtRQUMzQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUN2QixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDdEUsQ0FBQyxDQUFDLDJCQUEyQjtRQUM5QixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxzQkFBc0I7UUFDdkMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixVQUFVLENBQUMsR0FBRyxHQUFHLHdCQUF3QixHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLFVBQVUsQ0FBQyxHQUFHLEdBQUcseUJBQXlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7UUFDMUUsQ0FBQztRQUNELE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQzNFLE1BQU07WUFDSixRQUFRLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxFQUFFO2dCQUM3QixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNULE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3pDLGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN0QixNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxpRUFBaUU7UUFFM0csT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLEtBQUs7b0JBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyQ0FBMkM7b0JBQzdELENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxLQUFLO29CQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyx1Q0FBdUM7b0JBQ3BELENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNkLEVBQUUsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx3REFBd0Q7UUFDcEgsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsa0ZBQWtGO1FBRTlGLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pELEVBQUUsRUFBRSxDQUFDO1FBQ1AsQ0FBQyxDQUFDLG1EQUFtRDtRQUNyRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrRUFBa0U7UUFDdkcsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUU7UUFFbEcsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLDhCQUE4QjtRQUN6RCxJQUFJLEVBQUUsR0FBUTtZQUNaLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLHFEQUFxRDtZQUMxRSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9EQUFvRDtZQUM5RCxHQUFHLEVBQUUsRUFBRSxFQUFFLGdDQUFnQztZQUN6QyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUN6QixDQUFDLENBQUMsdURBQXVEO1FBQzFELElBQUksR0FBRyxHQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsbUVBQW1FO1FBRS9GLElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ25CLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3RELDRDQUE0QztnQkFDNUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FDcEMsT0FBTyxFQUNQLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUNuQyxFQUFFLENBQUMsR0FBRyxDQUNQLENBQUMsQ0FBQyxnREFBZ0Q7Z0JBQ25ELEdBQUcsQ0FBQyxHQUFHO29CQUNMLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUc7d0JBQ2hCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxnREFBZ0Q7d0JBQy9ELENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxpREFBaUQ7Z0JBQzNFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbkMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLGdEQUFnRDtnQkFDNUQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsNEdBQTRHO1FBQzVHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWTtZQUM3QixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUU7WUFDYixFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUU7WUFDYixFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUU7WUFDYixDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQixPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWE7UUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sQ0FDTCxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUNoQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNyQixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDakIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XHJcbiAgc3RhdGljIGRpZmYoczE6IHN0cmluZywgczI6IHN0cmluZywgcCA9IDQpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFzMSAmJiAhczIpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKCFzMSkge1xyXG4gICAgICByZXR1cm4gJzxzcGFuIGNsYXNzPVwiaW5zZXJ0ZWRcIj4nICsgczIgKyAnPC9zcGFuPic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXMyKSB7XHJcbiAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9XCJkZWxldGVkXCI+JyArIHMxICsgJzwvc3Bhbj4nO1xyXG4gICAgfVxyXG4gICAgczEgPSBzMS50b1N0cmluZygpO1xyXG4gICAgczIgPSBzMi50b1N0cmluZygpO1xyXG4gICAgY29uc3QgY2hhbmdlRGF0YSA9IFN0cmluZ1V0aWxzLmdldENoYW5nZXMoczEsIHMyLCAnJywgcCk7XHJcbiAgICBjb25zdCBuZXh0UyA9IHMyLnNsaWNlKFxyXG4gICAgICBjaGFuZ2VEYXRhLm10Yy5sZW5ndGggKyBjaGFuZ2VEYXRhLmlucy5sZW5ndGggKyBjaGFuZ2VEYXRhLnNicy5sZW5ndGhcclxuICAgICk7IC8vIHJlbWFpbmluZyBwYXJ0IG9mIFwic1wiXHJcbiAgICBjb25zdCBuZXh0VGhpcyA9IHMxLnNsaWNlKFxyXG4gICAgICBjaGFuZ2VEYXRhLm10Yy5sZW5ndGggKyBjaGFuZ2VEYXRhLmRlbC5sZW5ndGggKyBjaGFuZ2VEYXRhLnNicy5sZW5ndGhcclxuICAgICk7IC8vIHJlbWFpbmluZyBwYXJ0IG9mIFwidGhpc1wiXHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7IC8vIHRoZSBnbG9yaW91cyByZXN1bHRcclxuICAgIGlmIChjaGFuZ2VEYXRhLmRlbC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNoYW5nZURhdGEuZGVsID0gJzxzcGFuIGNsYXNzPVwiZGVsZXRlZFwiPicgKyBjaGFuZ2VEYXRhLmRlbCArICc8L3NwYW4+JztcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VEYXRhLmlucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNoYW5nZURhdGEuaW5zID0gJzxzcGFuIGNsYXNzPVwiaW5zZXJ0ZWRcIj4nICsgY2hhbmdlRGF0YS5pbnMgKyAnPC9zcGFuPic7XHJcbiAgICB9XHJcbiAgICByZXN1bHQgPSBjaGFuZ2VEYXRhLm10YyArIGNoYW5nZURhdGEuZGVsICsgY2hhbmdlRGF0YS5pbnMgKyBjaGFuZ2VEYXRhLnNicztcclxuICAgIHJlc3VsdCArPVxyXG4gICAgICBuZXh0VGhpcyAhPT0gJycgfHwgbmV4dFMgIT09ICcnXHJcbiAgICAgICAgPyBTdHJpbmdVdGlscy5kaWZmKG5leHRUaGlzLCBuZXh0UywgcClcclxuICAgICAgICA6ICcnO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGdldE1hdGNoaW5nU3Vic3RyaW5nKHMsIGwsIG0pIHtcclxuICAgIC8vIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoaW5nIHN1YnN0cmluZyBpbi1iZXR3ZWVuIHRoZSB0d28gc3RyaW5nc1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgbGV0IG1hdGNoID0gZmFsc2U7XHJcbiAgICBjb25zdCBzbGVuID0gcy5sZW5ndGg7XHJcbiAgICBjb25zdCBvID0geyBmaXM6IHNsZW4sIG10YzogbSwgc2JzOiAnJyB9OyAvLyB0ZW1wb3Jhcnkgb2JqZWN0IHVzZWQgdG8gY29uc3RydWN0IHRoZSBjZCAoY2hhbmdlIGRhdGEpIG9iamVjdFxyXG5cclxuICAgIHdoaWxlIChpIDwgc2xlbikge1xyXG4gICAgICBsW2ldID09PSBzW2ldXHJcbiAgICAgICAgPyBtYXRjaFxyXG4gICAgICAgICAgPyAoby5zYnMgKz0gc1tpXSkgLy8gby5zYnMgaG9sZHMgdGhlIG1hdGNoaW5nIHN1YnN0cmluZyBpdHNlZlxyXG4gICAgICAgICAgOiAoKG1hdGNoID0gdHJ1ZSksIChvLmZpcyA9IGkpLCAoby5zYnMgPSBzW2ldKSlcclxuICAgICAgICA6IG1hdGNoXHJcbiAgICAgICAgICA/IChpID0gc2xlbikgLy8gc3RvcCBhZnRlciB0aGUgZmlyc3QgZm91bmQgc3Vic3RyaW5nXHJcbiAgICAgICAgICA6IChpID0gaSk7XHJcbiAgICAgICsraTtcclxuICAgIH1cclxuICAgIHJldHVybiBvO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0Q2hhbmdlcyhzMSwgczIsIG0sIHApIHtcclxuICAgIGNvbnN0IGlzVGhpc0xvbmdlciA9IHMxLmxlbmd0aCA+PSBzMS5sZW5ndGggPyB0cnVlIDogZmFsc2U7XHJcbiAgICBsZXQgW2xvbmdlciwgc2hvcnRlcl0gPSBpc1RoaXNMb25nZXIgPyBbczEsIHMyXSA6IFtzMiwgczFdOyAvLyBhc3NpZ25tZW50IG9mIGxvbmdlciBhbmQgc2hvcnRlciBieSBlczYgZGVzdHJ1Y3R1cmluZ1xyXG4gICAgbGV0IGJpID0gMDsgLy8gYmFzZSBpbmRleCBkZXNpZ25hdGluZyB0aGUgaW5kZXggb2YgZmlyc3QgbWlzbWFjdGhpbmcgY2hhcmFjdGVyIGluIGJvdGggc3RyaW5nc1xyXG5cclxuICAgIHdoaWxlIChzaG9ydGVyW2JpXSA9PT0gbG9uZ2VyW2JpXSAmJiBiaSA8IHNob3J0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICsrYmk7XHJcbiAgICB9IC8vIG1ha2UgYmkgdGhlIGluZGV4IG9mIGZpcnN0IG1pc21hdGNoaW5nIGNoYXJhY3RlclxyXG4gICAgbG9uZ2VyID0gbG9uZ2VyLnNwbGl0KCcnKS5zbGljZShiaSk7IC8vIGFzIHRoZSBsb25nZXIgc3RyaW5nIHdpbGwgYmUgcm90YXRlZCBpdCBpcyBjb252ZXJ0ZWQgaW50byBhcnJheVxyXG4gICAgc2hvcnRlciA9IHNob3J0ZXIuc2xpY2UoYmkpOyAvLyBzaG9ydGVyIGFuZCBsb25nZXIgbm93IHN0YXJ0cyBmcm9tIHRoZSBmaXJzdCBtaXNtYXRjaGluZyBjaGFyYWN0ZXJcclxuXHJcbiAgICBjb25zdCBsZW4gPSBsb25nZXIubGVuZ3RoOyAvLyBsZW5ndGggb2YgdGhlIGxvbmdlciBzdHJpbmdcclxuICAgIGxldCBjZDogYW55ID0ge1xyXG4gICAgICBmaXM6IHNob3J0ZXIubGVuZ3RoLCAvLyB0aGUgaW5kZXggb2YgbWF0Y2hpbmcgc3RyaW5nIGluIHRoZSBzaG9ydGVyIHN0cmluZ1xyXG4gICAgICBmaWw6IGxlbiwgLy8gdGhlIGluZGV4IG9mIG1hdGNoaW5nIHN0cmluZyBpbiB0aGUgbG9uZ2VyIHN0cmluZ1xyXG4gICAgICBzYnM6ICcnLCAvLyB0aGUgbWF0Y2hpbmcgc3Vic3RyaW5nIGl0c2VsZlxyXG4gICAgICBtdGM6IG0gKyBzMi5zbGljZSgwLCBiaSlcclxuICAgIH07IC8vIGlmIGV4aXN0cyBtdGMgaG9sZHMgdGhlIG1hdGNoaW5nIHN0cmluZyBhdCB0aGUgZnJvbnRcclxuICAgIGxldCBzdWI6IGFueSA9IHsgc2JzOiAnJyB9OyAvLyByZXR1cm5lZCBzdWJzdHJpbmcgcGVyIDEgY2hhcmFjdGVyIHJvdGF0aW9uIG9mIHRoZSBsb25nZXIgc3RyaW5nXHJcblxyXG4gICAgaWYgKHNob3J0ZXIgIT09ICcnKSB7XHJcbiAgICAgIGZvciAobGV0IHJjID0gMDsgcmMgPCBsZW4gJiYgc3ViLnNicy5sZW5ndGggPCBwOyByYysrKSB7XHJcbiAgICAgICAgLy8gcmMgLT4gcm90YXRlIGNvdW50LCBwIC0+IHByZWNpc2lvbiBmYWN0b3JcclxuICAgICAgICBzdWIgPSBTdHJpbmdVdGlscy5nZXRNYXRjaGluZ1N1YnN0cmluZyhcclxuICAgICAgICAgIHNob3J0ZXIsXHJcbiAgICAgICAgICBTdHJpbmdVdGlscy5yb3RhdGVBcnJheShsb25nZXIsIHJjKSxcclxuICAgICAgICAgIGNkLm10Y1xyXG4gICAgICAgICk7IC8vIHJvdGF0ZSBsb25nZXIgc3RyaW5nIDEgY2hhciBhbmQgZ2V0IHN1YnN0cmluZ1xyXG4gICAgICAgIHN1Yi5maWwgPVxyXG4gICAgICAgICAgcmMgPCBsZW4gLSBzdWIuZmlzXHJcbiAgICAgICAgICAgID8gc3ViLmZpcyArIHJjIC8vIG1pc21hdGNoIGlzIGxvbmdlciB0aGFuIHRoZSBtaXNtYXRjaCBpbiBzaG9ydFxyXG4gICAgICAgICAgICA6IHN1Yi5maXMgLSBsZW4gKyByYzsgLy8gbWlzbWF0Y2ggaXMgc2hvcnRlciB0aGFuIHRoZSBtaXNtYXRjaCBpbiBzaG9ydFxyXG4gICAgICAgIGlmIChzdWIuc2JzLmxlbmd0aCA+IGNkLnNicy5sZW5ndGgpIHtcclxuICAgICAgICAgIGNkID0gc3ViOyAvLyBvbmx5IGtlZXAgdGhlIG9uZSB3aXRoIHRoZSBsb25nZXN0IHN1YnN0cmluZy5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGluc2VydCB0aGUgbWlzbWF0Y2hpbmcgZGVsZXRlIHN1YnNydCBhbmQgaW5zZXJ0IHN1YnN0ciB0byB0aGUgY2Qgb2JqZWN0IGFuZCBhdHRhY2ggdGhlIHByZXZpb3VzIHN1YnN0cmluZ1xyXG4gICAgW2NkLmRlbCwgY2QuaW5zXSA9IGlzVGhpc0xvbmdlclxyXG4gICAgICA/IFtsb25nZXIuc2xpY2UoMCwgY2QuZmlsKS5qb2luKCcnKSwgc2hvcnRlci5zbGljZSgwLCBjZC5maXMpXVxyXG4gICAgICA6IFtzaG9ydGVyLnNsaWNlKDAsIGNkLmZpcyksIGxvbmdlci5zbGljZSgwLCBjZC5maWwpLmpvaW4oJycpXTtcclxuICAgIHJldHVybiBjZC5kZWwuaW5kZXhPZignICcpID09PSAtMSB8fFxyXG4gICAgICBjZC5pbnMuaW5kZXhPZignICcpID09PSAtMSB8fFxyXG4gICAgICBjZC5kZWwgPT09ICcnIHx8XHJcbiAgICAgIGNkLmlucyA9PT0gJycgfHxcclxuICAgICAgY2Quc2JzID09PSAnJ1xyXG4gICAgICA/IGNkXHJcbiAgICAgIDogU3RyaW5nVXRpbHMuZ2V0Q2hhbmdlcyhjZC5kZWwsIGNkLmlucywgY2QubXRjLCBwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIHJvdGF0ZUFycmF5KGFycmF5LCBuKSB7XHJcbiAgICBjb25zdCBsZW4gPSBhcnJheS5sZW5ndGg7XHJcbiAgICBjb25zdCByZXMgPSBuZXcgQXJyYXkoYXJyYXkubGVuZ3RoKTtcclxuICAgIGlmIChuICUgbGVuID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBhcnJheS5zbGljZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgIHJlc1tpXSA9IGFycmF5WyhpICsgKGxlbiArIChuICUgbGVuKSkpICUgbGVuXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpc1ZhbGlkTnVtYmVyKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhaXNOYU4oTnVtYmVyKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNPY3RhbE51bWJlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBTdHJpbmdVdGlscy5pc1ZhbGlkTnVtYmVyKHZhbHVlKSAmJlxyXG4gICAgICB2YWx1ZS5zdGFydHNXaXRoKCcwJykgJiZcclxuICAgICAgdmFsdWUubGVuZ3RoID4gMVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9zdHJpbmctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFVLEVBQUUsRUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNmLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8seUJBQXlCLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyx3QkFBd0IsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ25ELENBQUM7UUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUNwQixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDdEUsQ0FBQyxDQUFDLHdCQUF3QjtRQUMzQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUN2QixVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxD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QztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XG4gIHN0YXRpYyBkaWZmKHMxOiBzdHJpbmcsIHMyOiBzdHJpbmcsIHAgPSA0KTogc3RyaW5nIHtcbiAgICBpZiAoIXMxICYmICFzMikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBpZiAoIXMxKSB7XG4gICAgICByZXR1cm4gJzxzcGFuIGNsYXNzPVwiaW5zZXJ0ZWRcIj4nICsgczIgKyAnPC9zcGFuPic7XG4gICAgfVxuICAgIGlmICghczIpIHtcbiAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9XCJkZWxldGVkXCI+JyArIHMxICsgJzwvc3Bhbj4nO1xuICAgIH1cbiAgICBzMSA9IHMxLnRvU3RyaW5nKCk7XG4gICAgczIgPSBzMi50b1N0cmluZygpO1xuICAgIGNvbnN0IGNoYW5nZURhdGEgPSBTdHJpbmdVdGlscy5nZXRDaGFuZ2VzKHMxLCBzMiwgJycsIHApO1xuICAgIGNvbnN0IG5leHRTID0gczIuc2xpY2UoXG4gICAgICBjaGFuZ2VEYXRhLm10Yy5sZW5ndGggKyBjaGFuZ2VEYXRhLmlucy5sZW5ndGggKyBjaGFuZ2VEYXRhLnNicy5sZW5ndGhcbiAgICApOyAvLyByZW1haW5pbmcgcGFydCBvZiBcInNcIlxuICAgIGNvbnN0IG5leHRUaGlzID0gczEuc2xpY2UoXG4gICAgICBjaGFuZ2VEYXRhLm10Yy5sZW5ndGggKyBjaGFuZ2VEYXRhLmRlbC5sZW5ndGggKyBjaGFuZ2VEYXRhLnNicy5sZW5ndGhcbiAgICApOyAvLyByZW1haW5pbmcgcGFydCBvZiBcInRoaXNcIlxuICAgIGxldCByZXN1bHQgPSAnJzsgLy8gdGhlIGdsb3Jpb3VzIHJlc3VsdFxuICAgIGlmIChjaGFuZ2VEYXRhLmRlbC5sZW5ndGggPiAwKSB7XG4gICAgICBjaGFuZ2VEYXRhLmRlbCA9ICc8c3BhbiBjbGFzcz1cImRlbGV0ZWRcIj4nICsgY2hhbmdlRGF0YS5kZWwgKyAnPC9zcGFuPic7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VEYXRhLmlucy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGFuZ2VEYXRhLmlucyA9ICc8c3BhbiBjbGFzcz1cImluc2VydGVkXCI+JyArIGNoYW5nZURhdGEuaW5zICsgJzwvc3Bhbj4nO1xuICAgIH1cbiAgICByZXN1bHQgPSBjaGFuZ2VEYXRhLm10YyArIGNoYW5nZURhdGEuZGVsICsgY2hhbmdlRGF0YS5pbnMgKyBjaGFuZ2VEYXRhLnNicztcbiAgICByZXN1bHQgKz1cbiAgICAgIG5leHRUaGlzICE9PSAnJyB8fCBuZXh0UyAhPT0gJydcbiAgICAgICAgPyBTdHJpbmdVdGlscy5kaWZmKG5leHRUaGlzLCBuZXh0UywgcClcbiAgICAgICAgOiAnJztcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TWF0Y2hpbmdTdWJzdHJpbmcocywgbCwgbSkge1xuICAgIC8vIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoaW5nIHN1YnN0cmluZyBpbi1iZXR3ZWVuIHRoZSB0d28gc3RyaW5nc1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgbWF0Y2ggPSBmYWxzZTtcbiAgICBjb25zdCBzbGVuID0gcy5sZW5ndGg7XG4gICAgY29uc3QgbyA9IHsgZmlzOiBzbGVuLCBtdGM6IG0sIHNiczogJycgfTsgLy8gdGVtcG9yYXJ5IG9iamVjdCB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgY2QgKGNoYW5nZSBkYXRhKSBvYmplY3RcblxuICAgIHdoaWxlIChpIDwgc2xlbikge1xuICAgICAgbFtpXSA9PT0gc1tpXVxuICAgICAgICA/IG1hdGNoXG4gICAgICAgICAgPyAoby5zYnMgKz0gc1tpXSkgLy8gby5zYnMgaG9sZHMgdGhlIG1hdGNoaW5nIHN1YnN0cmluZyBpdHNlZlxuICAgICAgICAgIDogKChtYXRjaCA9IHRydWUpLCAoby5maXMgPSBpKSwgKG8uc2JzID0gc1tpXSkpXG4gICAgICAgIDogbWF0Y2hcbiAgICAgICAgICA/IChpID0gc2xlbikgLy8gc3RvcCBhZnRlciB0aGUgZmlyc3QgZm91bmQgc3Vic3RyaW5nXG4gICAgICAgICAgOiAoaSA9IGkpO1xuICAgICAgKytpO1xuICAgIH1cbiAgICByZXR1cm4gbztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldENoYW5nZXMoczEsIHMyLCBtLCBwKSB7XG4gICAgY29uc3QgaXNUaGlzTG9uZ2VyID0gczEubGVuZ3RoID49IHMxLmxlbmd0aCA/IHRydWUgOiBmYWxzZTtcbiAgICBsZXQgW2xvbmdlciwgc2hvcnRlcl0gPSBpc1RoaXNMb25nZXIgPyBbczEsIHMyXSA6IFtzMiwgczFdOyAvLyBhc3NpZ25tZW50IG9mIGxvbmdlciBhbmQgc2hvcnRlciBieSBlczYgZGVzdHJ1Y3R1cmluZ1xuICAgIGxldCBiaSA9IDA7IC8vIGJhc2UgaW5kZXggZGVzaWduYXRpbmcgdGhlIGluZGV4IG9mIGZpcnN0IG1pc21hY3RoaW5nIGNoYXJhY3RlciBpbiBib3RoIHN0cmluZ3NcblxuICAgIHdoaWxlIChzaG9ydGVyW2JpXSA9PT0gbG9uZ2VyW2JpXSAmJiBiaSA8IHNob3J0ZXIubGVuZ3RoKSB7XG4gICAgICArK2JpO1xuICAgIH0gLy8gbWFrZSBiaSB0aGUgaW5kZXggb2YgZmlyc3QgbWlzbWF0Y2hpbmcgY2hhcmFjdGVyXG4gICAgbG9uZ2VyID0gbG9uZ2VyLnNwbGl0KCcnKS5zbGljZShiaSk7IC8vIGFzIHRoZSBsb25nZXIgc3RyaW5nIHdpbGwgYmUgcm90YXRlZCBpdCBpcyBjb252ZXJ0ZWQgaW50byBhcnJheVxuICAgIHNob3J0ZXIgPSBzaG9ydGVyLnNsaWNlKGJpKTsgLy8gc2hvcnRlciBhbmQgbG9uZ2VyIG5vdyBzdGFydHMgZnJvbSB0aGUgZmlyc3QgbWlzbWF0Y2hpbmcgY2hhcmFjdGVyXG5cbiAgICBjb25zdCBsZW4gPSBsb25nZXIubGVuZ3RoOyAvLyBsZW5ndGggb2YgdGhlIGxvbmdlciBzdHJpbmdcbiAgICBsZXQgY2Q6IGFueSA9IHtcbiAgICAgIGZpczogc2hvcnRlci5sZW5ndGgsIC8vIHRoZSBpbmRleCBvZiBtYXRjaGluZyBzdHJpbmcgaW4gdGhlIHNob3J0ZXIgc3RyaW5nXG4gICAgICBmaWw6IGxlbiwgLy8gdGhlIGluZGV4IG9mIG1hdGNoaW5nIHN0cmluZyBpbiB0aGUgbG9uZ2VyIHN0cmluZ1xuICAgICAgc2JzOiAnJywgLy8gdGhlIG1hdGNoaW5nIHN1YnN0cmluZyBpdHNlbGZcbiAgICAgIG10YzogbSArIHMyLnNsaWNlKDAsIGJpKVxuICAgIH07IC8vIGlmIGV4aXN0cyBtdGMgaG9sZHMgdGhlIG1hdGNoaW5nIHN0cmluZyBhdCB0aGUgZnJvbnRcbiAgICBsZXQgc3ViOiBhbnkgPSB7IHNiczogJycgfTsgLy8gcmV0dXJuZWQgc3Vic3RyaW5nIHBlciAxIGNoYXJhY3RlciByb3RhdGlvbiBvZiB0aGUgbG9uZ2VyIHN0cmluZ1xuXG4gICAgaWYgKHNob3J0ZXIgIT09ICcnKSB7XG4gICAgICBmb3IgKGxldCByYyA9IDA7IHJjIDwgbGVuICYmIHN1Yi5zYnMubGVuZ3RoIDwgcDsgcmMrKykge1xuICAgICAgICAvLyByYyAtPiByb3RhdGUgY291bnQsIHAgLT4gcHJlY2lzaW9uIGZhY3RvclxuICAgICAgICBzdWIgPSBTdHJpbmdVdGlscy5nZXRNYXRjaGluZ1N1YnN0cmluZyhcbiAgICAgICAgICBzaG9ydGVyLFxuICAgICAgICAgIFN0cmluZ1V0aWxzLnJvdGF0ZUFycmF5KGxvbmdlciwgcmMpLFxuICAgICAgICAgIGNkLm10Y1xuICAgICAgICApOyAvLyByb3RhdGUgbG9uZ2VyIHN0cmluZyAxIGNoYXIgYW5kIGdldCBzdWJzdHJpbmdcbiAgICAgICAgc3ViLmZpbCA9XG4gICAgICAgICAgcmMgPCBsZW4gLSBzdWIuZmlzXG4gICAgICAgICAgICA/IHN1Yi5maXMgKyByYyAvLyBtaXNtYXRjaCBpcyBsb25nZXIgdGhhbiB0aGUgbWlzbWF0Y2ggaW4gc2hvcnRcbiAgICAgICAgICAgIDogc3ViLmZpcyAtIGxlbiArIHJjOyAvLyBtaXNtYXRjaCBpcyBzaG9ydGVyIHRoYW4gdGhlIG1pc21hdGNoIGluIHNob3J0XG4gICAgICAgIGlmIChzdWIuc2JzLmxlbmd0aCA+IGNkLnNicy5sZW5ndGgpIHtcbiAgICAgICAgICBjZCA9IHN1YjsgLy8gb25seSBrZWVwIHRoZSBvbmUgd2l0aCB0aGUgbG9uZ2VzdCBzdWJzdHJpbmcuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gaW5zZXJ0IHRoZSBtaXNtYXRjaGluZyBkZWxldGUgc3Vic3J0IGFuZCBpbnNlcnQgc3Vic3RyIHRvIHRoZSBjZCBvYmplY3QgYW5kIGF0dGFjaCB0aGUgcHJldmlvdXMgc3Vic3RyaW5nXG4gICAgW2NkLmRlbCwgY2QuaW5zXSA9IGlzVGhpc0xvbmdlclxuICAgICAgPyBbbG9uZ2VyLnNsaWNlKDAsIGNkLmZpbCkuam9pbignJyksIHNob3J0ZXIuc2xpY2UoMCwgY2QuZmlzKV1cbiAgICAgIDogW3Nob3J0ZXIuc2xpY2UoMCwgY2QuZmlzKSwgbG9uZ2VyLnNsaWNlKDAsIGNkLmZpbCkuam9pbignJyldO1xuICAgIHJldHVybiBjZC5kZWwuaW5kZXhPZignICcpID09PSAtMSB8fFxuICAgICAgY2QuaW5zLmluZGV4T2YoJyAnKSA9PT0gLTEgfHxcbiAgICAgIGNkLmRlbCA9PT0gJycgfHxcbiAgICAgIGNkLmlucyA9PT0gJycgfHxcbiAgICAgIGNkLnNicyA9PT0gJydcbiAgICAgID8gY2RcbiAgICAgIDogU3RyaW5nVXRpbHMuZ2V0Q2hhbmdlcyhjZC5kZWwsIGNkLmlucywgY2QubXRjLCBwKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJvdGF0ZUFycmF5KGFycmF5LCBuKSB7XG4gICAgY29uc3QgbGVuID0gYXJyYXkubGVuZ3RoO1xuICAgIGNvbnN0IHJlcyA9IG5ldyBBcnJheShhcnJheS5sZW5ndGgpO1xuICAgIGlmIChuICUgbGVuID09PSAwKSB7XG4gICAgICByZXR1cm4gYXJyYXkuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICByZXNbaV0gPSBhcnJheVsoaSArIChsZW4gKyAobiAlIGxlbikpKSAlIGxlbl07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZE51bWJlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc05hTihOdW1iZXIodmFsdWUpKTtcbiAgfVxuXG4gIHN0YXRpYyBpc09jdGFsTnVtYmVyKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgU3RyaW5nVXRpbHMuaXNWYWxpZE51bWJlcih2YWx1ZSkgJiZcbiAgICAgIHZhbHVlLnN0YXJ0c1dpdGgoJzAnKSAmJlxuICAgICAgdmFsdWUubGVuZ3RoID4gMVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as Bowser from 'bowser';
|
|
2
2
|
export const userAgent = Bowser.getParser(window.navigator.userAgent);
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdXNlci1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQU1qQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEJvd3NlciBmcm9tICdib3dzZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudCBleHRlbmRzIEJvd3Nlci5QYXJzZXIuUGFyc2VyIHtcbiAgY29tcGFyZVZlcnNpb246ICh2ZXJzaW9uOiBzdHJpbmcpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCB1c2VyQWdlbnQgPSBCb3dzZXIuZ2V0UGFyc2VyKFxuICB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudFxuKSBhcyBVc2VyQWdlbnQ7XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-utils.mjs","sources":["../../../packages/utils/src/lib/base64.ts","../../../packages/utils/src/lib/cache.utils.ts","../../../packages/utils/src/lib/user-agent.ts","../../../packages/utils/src/lib/clipboard.ts","../../../packages/utils/src/lib/compression/compression.utils.ts","../../../packages/utils/src/lib/change.interface.ts","../../../packages/utils/src/lib/string-utils.ts","../../../packages/utils/src/lib/change.ts","../../../packages/utils/src/lib/datetime.utils.ts","../../../packages/utils/src/lib/dom.utils.ts","../../../packages/utils/src/lib/file.ts","../../../packages/utils/src/lib/object-utils.ts","../../../packages/utils/src/lib/number-utils.ts","../../../packages/utils/src/lib/strenum.ts","../../../packages/utils/src/lib/theme.utils.ts","../../../packages/utils/src/lib/uuid.ts","../../../packages/utils/src/lib/watcher.ts","../../../packages/utils/src/public_api.ts","../../../packages/utils/src/igo2-utils.ts"],"sourcesContent":["/* eslint-disable */\n\nconst ALPHA =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nexport class Base64 {\n private static PADCHAR: string = '=';\n private static ALPHA: string = ALPHA;\n\n private static getByte(s: string, i: number): number {\n const x = s.charCodeAt(i);\n return x;\n }\n\n private static getByte64(s: string, i: number): number {\n const idx = this.ALPHA.indexOf(s.charAt(i));\n return idx;\n }\n\n public static decode(s: string): string {\n let pads = 0,\n i,\n b10,\n imax = s.length,\n x = [];\n\n s = String(s);\n\n if (imax === 0) {\n return s;\n }\n\n if (s.charAt(imax - 1) === this.PADCHAR) {\n pads = 1;\n if (s.charAt(imax - 2) === this.PADCHAR) {\n pads = 2;\n }\n imax -= 4;\n }\n\n for (i = 0; i < imax; i += 4) {\n b10 =\n (this.getByte64(s, i) << 18) |\n (this.getByte64(s, i + 1) << 12) |\n (this.getByte64(s, i + 2) << 6) |\n this.getByte64(s, i + 3);\n x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255, b10 & 255));\n }\n\n switch (pads) {\n case 1:\n b10 =\n (this.getByte64(s, i) << 18) |\n (this.getByte64(s, i + 1) << 12) |\n (this.getByte64(s, i + 2) << 6);\n x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255));\n break;\n case 2:\n b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12);\n x.push(String.fromCharCode(b10 >> 16));\n break;\n }\n\n return x.join('');\n }\n\n public static encode(s: string): string {\n s = String(s);\n\n let i,\n b10,\n x = [],\n imax = s.length - (s.length % 3);\n\n if (s.length === 0) {\n return s;\n }\n\n for (i = 0; i < imax; i += 3) {\n b10 =\n (this.getByte(s, i) << 16) |\n (this.getByte(s, i + 1) << 8) |\n this.getByte(s, i + 2);\n x.push(this.ALPHA.charAt(b10 >> 18));\n x.push(this.ALPHA.charAt((b10 >> 12) & 63));\n x.push(this.ALPHA.charAt((b10 >> 6) & 63));\n x.push(this.ALPHA.charAt(b10 & 63));\n }\n\n switch (s.length - imax) {\n case 1:\n b10 = this.getByte(s, i) << 16;\n x.push(\n this.ALPHA.charAt(b10 >> 18) +\n this.ALPHA.charAt((b10 >> 12) & 63) +\n this.PADCHAR +\n this.PADCHAR\n );\n break;\n case 2:\n b10 = (this.getByte(s, i) << 16) | (this.getByte(s, i + 1) << 8);\n x.push(\n this.ALPHA.charAt(b10 >> 18) +\n this.ALPHA.charAt((b10 >> 12) & 63) +\n this.ALPHA.charAt((b10 >> 6) & 63) +\n this.PADCHAR\n );\n break;\n }\n\n return x.join('');\n }\n}\n","import { HttpParams } from '@angular/common/http';\n\nexport function customCacheHasher(parameters: unknown[]): unknown[] {\n return parameters.map((param) => {\n if (param instanceof HttpParams) {\n return param.toString();\n }\n return param !== undefined ? JSON.parse(JSON.stringify(param)) : param;\n });\n}\n","import * as Bowser from 'bowser';\r\n\r\nexport interface UserAgent extends Bowser.Parser.Parser {\r\n compareVersion: (version: string) => boolean;\r\n}\r\n\r\nexport const userAgent = Bowser.getParser(\r\n window.navigator.userAgent\r\n) as UserAgent;\r\n","import { userAgent } from './user-agent';\n\nexport class Clipboard {\n static copy(element: HTMLTextAreaElement | string): boolean {\n let successful = false;\n if (typeof element === 'string') {\n const textArea = Clipboard.createTextArea(element);\n Clipboard.selectText(textArea);\n successful = Clipboard.copyTextToClipboard();\n Clipboard.destroyTextArea(textArea);\n } else {\n Clipboard.selectText(element);\n successful = Clipboard.copyTextToClipboard();\n }\n return successful;\n }\n\n private static createTextArea(text: string): HTMLTextAreaElement {\n const textArea = document.createElement('textArea') as HTMLTextAreaElement;\n textArea.value = text;\n document.body.appendChild(textArea);\n return textArea;\n }\n\n private static destroyTextArea(textArea) {\n document.body.removeChild(textArea);\n }\n\n private static selectText(textArea) {\n if (userAgent.getOSName() === 'iOS') {\n const oldContentEditable = textArea.contentEditable;\n const oldReadOnly = textArea.readOnly;\n const range = document.createRange();\n const selection = window.getSelection();\n\n textArea.contenteditable = true;\n textArea.readonly = false;\n range.selectNodeContents(textArea);\n selection.removeAllRanges();\n selection.addRange(range);\n textArea.setSelectionRange(0, 999999);\n textArea.contentEditable = oldContentEditable;\n textArea.readOnly = oldReadOnly;\n } else {\n textArea.select();\n }\n }\n\n private static copyTextToClipboard(): boolean {\n if (!(userAgent.getOSName() === 'iOS' && userAgent.compareVersion('<10'))) {\n return document.execCommand('copy');\n }\n return false;\n }\n}\n","import { Observable, Observer } from 'rxjs';\r\n\r\nimport { CompressedData } from './compressedData.interface';\r\n\r\nfunction getNumber(v: number, endposition: number, length: number) {\r\n /* tslint:disable:no-bitwise*/\r\n const mask = (1 << length) - 1;\r\n return (v >> endposition) & mask;\r\n /* tslint:enable:no-bitwise*/\r\n}\r\n\r\nexport class Compression {\r\n private base64Index = new Map<string, number>();\r\n private indexBase64 = new Map<number, string>();\r\n\r\n constructor() {\r\n this.generateBase64Index();\r\n }\r\n\r\n private generateBase64Index() {\r\n // https://fr.wikipedia.org/wiki/Base64\r\n // A-Z => [0, 25]\r\n for (let i = 0; i < 26; i++) {\r\n this.base64Index.set(String.fromCharCode('A'.charCodeAt(0) + i), i);\r\n this.indexBase64.set(i, String.fromCharCode('A'.charCodeAt(0) + i));\r\n }\r\n // a-z => [26, 51]\r\n for (let i = 0; i < 26; i++) {\r\n this.base64Index.set(String.fromCharCode('a'.charCodeAt(0) + i), i + 26);\r\n this.indexBase64.set(i + 26, String.fromCharCode('a'.charCodeAt(0) + i));\r\n }\r\n // 0-9 => [52, 61]\r\n for (let i = 0; i < 10; i++) {\r\n this.base64Index.set(String.fromCharCode('0'.charCodeAt(0) + i), i + 52);\r\n this.indexBase64.set(i + 52, String.fromCharCode('0'.charCodeAt(0) + i));\r\n }\r\n // + / => [62, 63]\r\n this.base64Index.set('+', 62);\r\n this.base64Index.set('/', 63);\r\n this.indexBase64.set(62, '+');\r\n this.indexBase64.set(63, '/');\r\n }\r\n\r\n compressBlob(blob: Blob): Observable<CompressedData> {\r\n if (!blob) {\r\n return;\r\n }\r\n\r\n const observable = new Observable((observer: Observer<CompressedData>) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = () => {\r\n const base64 = reader.result.valueOf() as string;\r\n const text64 = base64.substr(base64.indexOf(',') + 1);\r\n const compressed = this.compressStringBase64(text64);\r\n const compressedData: CompressedData = {\r\n length: text64.length,\r\n type: blob.type,\r\n object: compressed\r\n };\r\n observer.next(compressedData);\r\n };\r\n });\r\n return observable;\r\n }\r\n\r\n decompressBlob(compressedData: CompressedData): Blob {\r\n /* tslint:disable:no-bitwise*/\r\n const object = compressedData.object;\r\n const length = compressedData.length;\r\n const decompressed: string = this.decompressStringBase64(object, length);\r\n const byteCharacters = atob(decompressed);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: compressedData.type });\r\n /* tslint:enable:no-bitwise*/\r\n return blob;\r\n }\r\n\r\n private compressStringBase64(s: string): string {\r\n /* tslint:disable:no-bitwise*/\r\n let out = '';\r\n let bits = 16;\r\n let chr = 0;\r\n let rem = 0;\r\n for (const c of s) {\r\n const value = this.base64Index.get(c);\r\n if (bits > 6) {\r\n bits -= 6;\r\n chr += value << bits;\r\n } else {\r\n rem = 6 - bits;\r\n chr += value >> rem;\r\n out += String.fromCharCode(chr);\r\n chr = value << (16 - rem);\r\n bits = 16 - rem;\r\n }\r\n }\r\n if (s.length % 8 !== 0) {\r\n out += String.fromCharCode(chr);\r\n }\r\n /* tslint:enable:no-bitwise*/\r\n return String.fromCharCode(9731) + out;\r\n }\r\n\r\n private decompressStringBase64(c: string, length: number): string {\r\n /* tslint:disable:no-bitwise*/\r\n if (!c) {\r\n return;\r\n }\r\n\r\n if (c.charCodeAt(0) !== 9731) {\r\n return c;\r\n }\r\n\r\n let chr = 0;\r\n let rem = 0;\r\n let bits = 16;\r\n let out = '';\r\n let j = 1;\r\n let value = c.charCodeAt(j);\r\n for (let i = 0; i < length; i++) {\r\n if (bits > 6) {\r\n bits -= 6;\r\n chr = getNumber(value, bits, 6);\r\n out += this.indexBase64.get(chr);\r\n } else {\r\n rem = 6 - bits;\r\n chr = getNumber(value, 0, bits) << rem;\r\n value = c.charCodeAt(++j);\r\n chr += getNumber(value, 16 - rem, rem);\r\n out += this.indexBase64.get(chr);\r\n bits = 16 - rem;\r\n }\r\n }\r\n return out;\r\n /* tslint:enable:no-bitwise*/\r\n }\r\n}\r\n","export enum ChangeType {\n ADDED = 'added',\n DELETED = 'deleted',\n MODIFIED = 'modified'\n}\n\nexport interface Change {\n type: ChangeType;\n keysChanged?: {\n key: string;\n newValue: any;\n oldValue: any;\n }[];\n}\n\nexport interface GroupingChanges {\n added: ChangeItem[];\n deleted: ChangeItem[];\n modified: ChangeItem[];\n}\n\nexport interface ChangeItem {\n change: Change;\n value: any;\n oldValue?: any;\n newValue?: any;\n}\n","export class StringUtils {\r\n static diff(s1: string, s2: string, p = 4): string {\r\n if (!s1 && !s2) {\r\n return '';\r\n }\r\n if (!s1) {\r\n return '<span class=\"inserted\">' + s2 + '</span>';\r\n }\r\n if (!s2) {\r\n return '<span class=\"deleted\">' + s1 + '</span>';\r\n }\r\n s1 = s1.toString();\r\n s2 = s2.toString();\r\n const changeData = StringUtils.getChanges(s1, s2, '', p);\r\n const nextS = s2.slice(\r\n changeData.mtc.length + changeData.ins.length + changeData.sbs.length\r\n ); // remaining part of \"s\"\r\n const nextThis = s1.slice(\r\n changeData.mtc.length + changeData.del.length + changeData.sbs.length\r\n ); // remaining part of \"this\"\r\n let result = ''; // the glorious result\r\n if (changeData.del.length > 0) {\r\n changeData.del = '<span class=\"deleted\">' + changeData.del + '</span>';\r\n }\r\n if (changeData.ins.length > 0) {\r\n changeData.ins = '<span class=\"inserted\">' + changeData.ins + '</span>';\r\n }\r\n result = changeData.mtc + changeData.del + changeData.ins + changeData.sbs;\r\n result +=\r\n nextThis !== '' || nextS !== ''\r\n ? StringUtils.diff(nextThis, nextS, p)\r\n : '';\r\n return result;\r\n }\r\n\r\n private static getMatchingSubstring(s, l, m) {\r\n // returns the first matching substring in-between the two strings\r\n let i = 0;\r\n let match = false;\r\n const slen = s.length;\r\n const o = { fis: slen, mtc: m, sbs: '' }; // temporary object used to construct the cd (change data) object\r\n\r\n while (i < slen) {\r\n l[i] === s[i]\r\n ? match\r\n ? (o.sbs += s[i]) // o.sbs holds the matching substring itsef\r\n : ((match = true), (o.fis = i), (o.sbs = s[i]))\r\n : match\r\n ? (i = slen) // stop after the first found substring\r\n : (i = i);\r\n ++i;\r\n }\r\n return o;\r\n }\r\n\r\n private static getChanges(s1, s2, m, p) {\r\n const isThisLonger = s1.length >= s1.length ? true : false;\r\n let [longer, shorter] = isThisLonger ? [s1, s2] : [s2, s1]; // assignment of longer and shorter by es6 destructuring\r\n let bi = 0; // base index designating the index of first mismacthing character in both strings\r\n\r\n while (shorter[bi] === longer[bi] && bi < shorter.length) {\r\n ++bi;\r\n } // make bi the index of first mismatching character\r\n longer = longer.split('').slice(bi); // as the longer string will be rotated it is converted into array\r\n shorter = shorter.slice(bi); // shorter and longer now starts from the first mismatching character\r\n\r\n const len = longer.length; // length of the longer string\r\n let cd: any = {\r\n fis: shorter.length, // the index of matching string in the shorter string\r\n fil: len, // the index of matching string in the longer string\r\n sbs: '', // the matching substring itself\r\n mtc: m + s2.slice(0, bi)\r\n }; // if exists mtc holds the matching string at the front\r\n let sub: any = { sbs: '' }; // returned substring per 1 character rotation of the longer string\r\n\r\n if (shorter !== '') {\r\n for (let rc = 0; rc < len && sub.sbs.length < p; rc++) {\r\n // rc -> rotate count, p -> precision factor\r\n sub = StringUtils.getMatchingSubstring(\r\n shorter,\r\n StringUtils.rotateArray(longer, rc),\r\n cd.mtc\r\n ); // rotate longer string 1 char and get substring\r\n sub.fil =\r\n rc < len - sub.fis\r\n ? sub.fis + rc // mismatch is longer than the mismatch in short\r\n : sub.fis - len + rc; // mismatch is shorter than the mismatch in short\r\n if (sub.sbs.length > cd.sbs.length) {\r\n cd = sub; // only keep the one with the longest substring.\r\n }\r\n }\r\n }\r\n // insert the mismatching delete subsrt and insert substr to the cd object and attach the previous substring\r\n [cd.del, cd.ins] = isThisLonger\r\n ? [longer.slice(0, cd.fil).join(''), shorter.slice(0, cd.fis)]\r\n : [shorter.slice(0, cd.fis), longer.slice(0, cd.fil).join('')];\r\n return cd.del.indexOf(' ') === -1 ||\r\n cd.ins.indexOf(' ') === -1 ||\r\n cd.del === '' ||\r\n cd.ins === '' ||\r\n cd.sbs === ''\r\n ? cd\r\n : StringUtils.getChanges(cd.del, cd.ins, cd.mtc, p);\r\n }\r\n\r\n private static rotateArray(array, n) {\r\n const len = array.length;\r\n const res = new Array(array.length);\r\n if (n % len === 0) {\r\n return array.slice();\r\n } else {\r\n for (let i = 0; i < len; i++) {\r\n res[i] = array[(i + (len + (n % len))) % len];\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n static isValidNumber(value: string): boolean {\r\n return !isNaN(Number(value));\r\n }\r\n\r\n static isOctalNumber(value: string): boolean {\r\n return (\r\n StringUtils.isValidNumber(value) &&\r\n value.startsWith('0') &&\r\n value.length > 1\r\n );\r\n }\r\n}\r\n","import { ChangeType, GroupingChanges } from './change.interface';\nimport { StringUtils } from './string-utils';\n\nexport class ChangeUtils {\n static findChanges(\n obj1: any[],\n obj2: any[],\n ignoreKeys: string[] = []\n ): GroupingChanges {\n const items: GroupingChanges = {\n added: [],\n deleted: [],\n modified: []\n };\n\n if (!obj1 || !obj2) {\n return items;\n }\n\n const obj1Clone: any = [...obj1];\n const obj2Clone: any = [...obj2];\n\n for (const fromItem of obj1Clone) {\n const index = obj2Clone.findIndex((s) => s.id === fromItem.id);\n\n if (index === -1) {\n items.deleted.push({\n change: { type: ChangeType.DELETED },\n value: fromItem\n });\n continue;\n }\n\n const toItem = obj2Clone.splice(index, 1)[0];\n const fromItemClone = JSON.parse(JSON.stringify(fromItem));\n const toItemClone = JSON.parse(JSON.stringify(toItem));\n\n const keysChanged = ChangeUtils.compareObject(\n fromItemClone,\n toItemClone,\n undefined,\n ignoreKeys\n );\n\n if (keysChanged.length) {\n items.modified.push({\n change: {\n type: ChangeType.MODIFIED,\n keysChanged\n },\n value: fromItemClone,\n oldValue: fromItem,\n newValue: toItem\n });\n }\n }\n\n items.added = obj2Clone.map((itemAdded) => {\n return {\n change: { type: ChangeType.ADDED },\n value: itemAdded\n };\n });\n\n return items;\n }\n\n private static compareObject(fromItem, toItem, baseKey?, ignoreKeys = []) {\n const fromItemClone = JSON.parse(JSON.stringify(fromItem));\n const toItemClone = JSON.parse(JSON.stringify(toItem));\n\n const keys: any = new Set([\n ...Object.keys(fromItem),\n ...Object.keys(toItem)\n ]);\n let keysChanged = [];\n keys.forEach((key) => {\n const keyString = baseKey ? `${baseKey}.${key}` : key;\n if (ignoreKeys.indexOf(keyString) !== -1) {\n return;\n }\n\n if (Array.isArray(fromItem[key])) {\n fromItem[key] = fromItem[key].join(',<br>');\n }\n if (Array.isArray(toItem[key])) {\n toItem[key] = toItem[key].join(',<br>');\n }\n\n if (\n typeof fromItem[key] === 'object' &&\n typeof toItem[key] === 'object' &&\n fromItem[key] !== null &&\n toItem[key] !== null\n ) {\n keysChanged = keysChanged.concat(\n this.compareObject(fromItem[key], toItem[key], keyString)\n );\n } else {\n if (fromItem[key] !== toItem[key]) {\n keysChanged.push({\n key: keyString,\n oldValue: fromItemClone[key],\n newValue: toItemClone[key]\n });\n fromItem[key] = StringUtils.diff(fromItem[key], toItem[key]);\n }\n }\n });\n\n return keysChanged;\n }\n}\n","import moment from 'moment';\r\n\r\nexport function dateTransform(date: Date, format: string): string {\r\n return moment(date).format(format);\r\n}\r\n","export class DomUtils {\n static create<K extends keyof HTMLElementTagNameMap>(\n doc: Document,\n tagName: K,\n options?: Partial<HTMLElementTagNameMap[K]>\n ): HTMLElementTagNameMap[K] {\n const el = doc.createElement(tagName);\n\n for (const key in options) {\n el[key] = options[key];\n }\n\n return el;\n }\n\n static remove(node: HTMLElement | SVGElement): void {\n if (!node.parentNode) {\n return;\n }\n node.parentNode.removeChild(node);\n }\n}\n","/**\n * Trigger download of a file\n *\n * @param content File content\n * @param mimeType File mime type\n * @param fileName File name\n */\nexport function downloadContent(\n content: string,\n mimeType: string,\n fileName: string\n) {\n const uri = `data:${mimeType},${encodeURIComponent(content)}`;\n downloadFromUri(uri, fileName);\n}\n\n/**\n * Trigger download of a file\n *\n * @param content File content\n * @param mimeType File mime type\n * @param fileName File name\n */\nexport function downloadFromUri(uri: string, fileName: string) {\n const element = document.createElement('a');\n element.setAttribute('href', uri);\n element.setAttribute('download', fileName);\n element.style.display = 'none';\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n}\n","export class ObjectUtils {\r\n static resolve(obj: object, key: string): any {\r\n const keysArray = key.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\r\n let current = obj;\r\n while (keysArray.length) {\r\n if (typeof current !== 'object') {\r\n return undefined;\r\n }\r\n current = current[keysArray.shift()];\r\n }\r\n\r\n return current;\r\n }\r\n\r\n static isObject(item: object) {\r\n return (\r\n item &&\r\n typeof item === 'object' &&\r\n !Array.isArray(item) &&\r\n item !== null &&\r\n !(item instanceof Date)\r\n );\r\n }\r\n\r\n static mergeDeep(\r\n target: object,\r\n source: object,\r\n ignoreUndefined = false\r\n ): any {\r\n const output = Object.assign({}, target);\r\n if (ObjectUtils.isObject(target) && ObjectUtils.isObject(source)) {\r\n Object.keys(source)\r\n .filter((key) => !ignoreUndefined || source[key] !== undefined)\r\n .forEach((key) => {\r\n if (ObjectUtils.isObject(source[key])) {\r\n if (!(key in target)) {\r\n Object.assign(output, { [key]: source[key] });\r\n } else {\r\n output[key] = ObjectUtils.mergeDeep(\r\n target[key],\r\n source[key],\r\n ignoreUndefined\r\n );\r\n }\r\n } else {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n\r\n static copyDeep(src): any {\r\n const target = Array.isArray(src) ? [] : {};\r\n for (const prop in src) {\r\n if (src.hasOwnProperty(prop)) {\r\n const value = src[prop];\r\n if (value && typeof value === 'object') {\r\n target[prop] = this.copyDeep(value);\r\n } else {\r\n target[prop] = value;\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n\r\n static removeDuplicateCaseInsensitive(obj: object) {\r\n const summaryCapitalizeObject = {};\r\n const capitalizeObject = {};\r\n const upperCaseCount = [];\r\n\r\n for (const property in obj) {\r\n if (obj.hasOwnProperty(property)) {\r\n const upperCaseProperty = property.toUpperCase();\r\n if (!summaryCapitalizeObject.hasOwnProperty(upperCaseProperty)) {\r\n summaryCapitalizeObject[upperCaseProperty] = [\r\n { [property]: obj[property] }\r\n ];\r\n } else {\r\n summaryCapitalizeObject[upperCaseProperty].push({\r\n [property]: obj[property]\r\n });\r\n }\r\n // counting the number of uppercase lettersMna\r\n upperCaseCount.push({\r\n key: property,\r\n count: property.replace(/[^A-Z]/g, '').length\r\n });\r\n }\r\n }\r\n for (const capitalizedProperty in summaryCapitalizeObject) {\r\n if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {\r\n if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {\r\n const capitalizedPropertyObject =\r\n summaryCapitalizeObject[capitalizedProperty];\r\n if (capitalizedPropertyObject.length === 1) {\r\n // for single params (no duplicates)\r\n const singlePossibility = capitalizedPropertyObject[0];\r\n capitalizeObject[capitalizedProperty] =\r\n singlePossibility[Object.keys(singlePossibility)[0]];\r\n } else if (capitalizedPropertyObject.length > 1) {\r\n // defining the closest to lowercase property\r\n const paramClosestToLowercase = upperCaseCount\r\n .filter(\r\n (f) => f.key.toLowerCase() === capitalizedProperty.toLowerCase()\r\n )\r\n .reduce((prev, current) => {\r\n return prev.y < current.y ? prev : current;\r\n });\r\n capitalizeObject[paramClosestToLowercase.key.toUpperCase()] =\r\n obj[paramClosestToLowercase.key];\r\n }\r\n }\r\n }\r\n }\r\n for (const property in obj) {\r\n if (obj.hasOwnProperty(property)) {\r\n delete obj[property];\r\n }\r\n }\r\n\r\n for (const property in capitalizeObject) {\r\n if (capitalizeObject.hasOwnProperty(property)) {\r\n obj[property] = capitalizeObject[property];\r\n }\r\n }\r\n }\r\n\r\n static removeUndefined(obj: object): any {\r\n const output = {};\r\n if (ObjectUtils.isObject(obj)) {\r\n Object.keys(obj)\r\n .filter((key) => obj[key] !== undefined)\r\n .forEach((key) => {\r\n if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {\r\n output[key] = ObjectUtils.removeUndefined(obj[key]);\r\n } else {\r\n output[key] = obj[key];\r\n }\r\n });\r\n\r\n return output;\r\n }\r\n\r\n if (Array.isArray(obj)) {\r\n return obj.map((o) => ObjectUtils.removeUndefined(o));\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n static removeNull(obj: object): any {\r\n const output = {};\r\n if (ObjectUtils.isObject(obj)) {\r\n Object.keys(obj)\r\n .filter((key) => obj[key] !== null)\r\n .forEach((key) => {\r\n if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {\r\n output[key] = ObjectUtils.removeNull(obj[key]);\r\n } else {\r\n output[key] = obj[key];\r\n }\r\n });\r\n\r\n return output;\r\n }\r\n\r\n if (Array.isArray(obj)) {\r\n return obj.map((o) => ObjectUtils.removeNull(o));\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n static naturalCompare(a, b, direction = 'asc', nullsFirst?: boolean) {\r\n if (direction === 'desc') {\r\n b = [a, (a = b)][0];\r\n }\r\n\r\n // nullsFirst = undefined : end if direction = 'asc', first if direction = 'desc'\r\n // nullsFirst = true : always first\r\n // nullsFirst = false : always end\r\n if (\r\n a === null ||\r\n a === '' ||\r\n a === undefined ||\r\n b === null ||\r\n b === '' ||\r\n b === undefined\r\n ) {\r\n const nullScore =\r\n a === b\r\n ? 0\r\n : a === undefined\r\n ? 3\r\n : b === undefined\r\n ? -3\r\n : a === null\r\n ? 2\r\n : b === null\r\n ? -2\r\n : a === ''\r\n ? 1\r\n : -1;\r\n if (direction === 'desc') {\r\n return nullsFirst !== false ? nullScore : nullScore * -1;\r\n }\r\n return nullsFirst === true ? nullScore * -1 : nullScore;\r\n }\r\n\r\n const ax = [];\r\n const bx = [];\r\n a = '' + a;\r\n b = '' + b;\r\n\r\n a.replace(/(\\d+)|(\\D+)/g, (_, $1, $2) => {\r\n ax.push([$1 || Infinity, $2 || '']);\r\n });\r\n\r\n b.replace(/(\\d+)|(\\D+)/g, (_, $1, $2) => {\r\n bx.push([$1 || Infinity, $2 || '']);\r\n });\r\n\r\n while (ax.length && bx.length) {\r\n const an = ax.shift();\r\n const bn = bx.shift();\r\n const nn = an[0] - bn[0] || an[1].localeCompare(bn[1]);\r\n if (nn) {\r\n return nn;\r\n }\r\n }\r\n\r\n return ax.length - bx.length;\r\n }\r\n\r\n /**\r\n * Return true if two object are equivalent.\r\n * Objects are considered equivalent if they have the same properties and\r\n * if all of their properties (first-level only) share the same value.\r\n * @param obj1 First object\r\n * @param obj2 Second object\r\n * @returns Whether two objects arer equivalent\r\n */\r\n static objectsAreEquivalent(obj1: object, obj2: object): boolean {\r\n if (obj1 === obj2) {\r\n return true;\r\n }\r\n\r\n const obj1Props = Object.getOwnPropertyNames(obj1);\r\n const obj2Props = Object.getOwnPropertyNames(obj2);\r\n if (obj1Props.length !== obj2Props.length) {\r\n return false;\r\n }\r\n\r\n for (const prop of obj1Props) {\r\n if (obj1[prop] !== obj2[prop]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Return a new object with an array of keys removed\r\n * @param obj Source object\r\n * @param keys Keys to remove\r\n * @returns A new object\r\n */\r\n static removeKeys(obj: object, keys: string[]): object {\r\n const newObj = Object.keys(obj)\r\n .filter((key) => keys.indexOf(key) < 0)\r\n .reduce((_obj, key) => {\r\n _obj[key] = obj[key];\r\n return _obj;\r\n }, {});\r\n\r\n return newObj;\r\n }\r\n\r\n static isEmpty(obj: object): boolean {\r\n return Object.keys(obj).length === 0;\r\n }\r\n}\r\n","export class NumberUtils {\n static roundToNDecimal(num: number, decimal: number = 3): number {\n const roundFactor = Math.pow(10, decimal);\n return Math.round(num * roundFactor) / roundFactor;\n }\n}\n","/** Utility function to create a K:V from a list of strings */\nexport function strEnum<T extends string>(o: Array<T>): { [K in T]: K } {\n return o.reduce((res, key) => {\n res[key] = key;\n return res;\n }, Object.create(null));\n}\n","import { DomUtils } from './dom.utils';\n\nconst PATH_PREBUILT_THEMES = 'assets/igo2/core/theming/prebuilt-themes';\nconst LINK_ID = 'theme-styles';\n\nexport function loadTheme(\n doc: Document,\n themeName: string,\n path: string = PATH_PREBUILT_THEMES\n): void {\n const src = `${path}/${themeName}.css`;\n const head = doc.getElementsByTagName('head')[0];\n\n let themeLink = doc.getElementById(LINK_ID) as HTMLLinkElement;\n themeLink ? (themeLink.href = src) : createHtmlLink(doc, src, head);\n}\n\nfunction createHtmlLink(doc: Document, src: string, parent: HTMLElement): void {\n const element = DomUtils.create(doc, 'link', {\n id: LINK_ID,\n rel: 'stylesheet',\n href: src\n });\n parent.appendChild(element);\n}\n","export function S4() {\n // eslint-disable-next-line no-bitwise\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n}\n\nexport function uuid() {\n const id = `${S4()}${S4()}-${S4()}-${S4()}-${S4()}-${S4()}${S4()}${S4()}`;\n return id.toLowerCase();\n}\n","import { Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nexport enum SubjectStatus {\n Error = 0,\n Done = 1,\n Working = 2,\n Waiting = 3\n}\n\nexport abstract class Watcher {\n public status$ = new Subject<SubjectStatus>();\n protected status$$: Subscription;\n\n get status(): SubjectStatus {\n return this._status;\n }\n set status(value: SubjectStatus) {\n this._status = value;\n this.status$.next(value);\n }\n private _status: SubjectStatus;\n\n protected abstract watch();\n\n protected abstract unwatch();\n\n subscribe(callback: Function, scope?: any) {\n this.watch();\n\n this.status$$ = this.status$\n .pipe(distinctUntilChanged())\n .subscribe((status: SubjectStatus) => {\n this.handleStatusChange(status);\n callback.call(scope, this);\n });\n }\n\n unsubscribe() {\n this.unwatch();\n if (this.status$$ !== undefined) {\n this.status$$.unsubscribe();\n this.status$$ = undefined;\n }\n this.status = SubjectStatus.Waiting;\n }\n\n protected handleStatusChange(status: SubjectStatus) {}\n}\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igo2-utils.mjs","sources":["../../../packages/utils/src/lib/base64.ts","../../../packages/utils/src/lib/cache.utils.ts","../../../packages/utils/src/lib/user-agent.ts","../../../packages/utils/src/lib/clipboard.ts","../../../packages/utils/src/lib/compression/compression.utils.ts","../../../packages/utils/src/lib/change.interface.ts","../../../packages/utils/src/lib/string-utils.ts","../../../packages/utils/src/lib/change.ts","../../../packages/utils/src/lib/datetime.utils.ts","../../../packages/utils/src/lib/dom.utils.ts","../../../packages/utils/src/lib/file.ts","../../../packages/utils/src/lib/object-utils.ts","../../../packages/utils/src/lib/number-utils.ts","../../../packages/utils/src/lib/strenum.ts","../../../packages/utils/src/lib/theme.utils.ts","../../../packages/utils/src/lib/uuid.ts","../../../packages/utils/src/lib/watcher.ts","../../../packages/utils/src/public_api.ts","../../../packages/utils/src/igo2-utils.ts"],"sourcesContent":["/* eslint-disable */\n\nconst ALPHA =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nexport class Base64 {\n private static PADCHAR: string = '=';\n private static ALPHA: string = ALPHA;\n\n private static getByte(s: string, i: number): number {\n const x = s.charCodeAt(i);\n return x;\n }\n\n private static getByte64(s: string, i: number): number {\n const idx = this.ALPHA.indexOf(s.charAt(i));\n return idx;\n }\n\n public static decode(s: string): string {\n let pads = 0,\n i,\n b10,\n imax = s.length,\n x = [];\n\n s = String(s);\n\n if (imax === 0) {\n return s;\n }\n\n if (s.charAt(imax - 1) === this.PADCHAR) {\n pads = 1;\n if (s.charAt(imax - 2) === this.PADCHAR) {\n pads = 2;\n }\n imax -= 4;\n }\n\n for (i = 0; i < imax; i += 4) {\n b10 =\n (this.getByte64(s, i) << 18) |\n (this.getByte64(s, i + 1) << 12) |\n (this.getByte64(s, i + 2) << 6) |\n this.getByte64(s, i + 3);\n x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255, b10 & 255));\n }\n\n switch (pads) {\n case 1:\n b10 =\n (this.getByte64(s, i) << 18) |\n (this.getByte64(s, i + 1) << 12) |\n (this.getByte64(s, i + 2) << 6);\n x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255));\n break;\n case 2:\n b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12);\n x.push(String.fromCharCode(b10 >> 16));\n break;\n }\n\n return x.join('');\n }\n\n public static encode(s: string): string {\n s = String(s);\n\n let i,\n b10,\n x = [],\n imax = s.length - (s.length % 3);\n\n if (s.length === 0) {\n return s;\n }\n\n for (i = 0; i < imax; i += 3) {\n b10 =\n (this.getByte(s, i) << 16) |\n (this.getByte(s, i + 1) << 8) |\n this.getByte(s, i + 2);\n x.push(this.ALPHA.charAt(b10 >> 18));\n x.push(this.ALPHA.charAt((b10 >> 12) & 63));\n x.push(this.ALPHA.charAt((b10 >> 6) & 63));\n x.push(this.ALPHA.charAt(b10 & 63));\n }\n\n switch (s.length - imax) {\n case 1:\n b10 = this.getByte(s, i) << 16;\n x.push(\n this.ALPHA.charAt(b10 >> 18) +\n this.ALPHA.charAt((b10 >> 12) & 63) +\n this.PADCHAR +\n this.PADCHAR\n );\n break;\n case 2:\n b10 = (this.getByte(s, i) << 16) | (this.getByte(s, i + 1) << 8);\n x.push(\n this.ALPHA.charAt(b10 >> 18) +\n this.ALPHA.charAt((b10 >> 12) & 63) +\n this.ALPHA.charAt((b10 >> 6) & 63) +\n this.PADCHAR\n );\n break;\n }\n\n return x.join('');\n }\n}\n","import { HttpParams } from '@angular/common/http';\n\nexport function customCacheHasher(parameters: unknown[]): unknown[] {\n return parameters.map((param) => {\n if (param instanceof HttpParams) {\n return param.toString();\n }\n return param !== undefined ? JSON.parse(JSON.stringify(param)) : param;\n });\n}\n","import * as Bowser from 'bowser';\n\nexport interface UserAgent extends Bowser.Parser.Parser {\n compareVersion: (version: string) => boolean;\n}\n\nexport const userAgent = Bowser.getParser(\n window.navigator.userAgent\n) as UserAgent;\n","import { userAgent } from './user-agent';\n\nexport class Clipboard {\n static copy(element: HTMLTextAreaElement | string): boolean {\n let successful = false;\n if (typeof element === 'string') {\n const textArea = Clipboard.createTextArea(element);\n Clipboard.selectText(textArea);\n successful = Clipboard.copyTextToClipboard();\n Clipboard.destroyTextArea(textArea);\n } else {\n Clipboard.selectText(element);\n successful = Clipboard.copyTextToClipboard();\n }\n return successful;\n }\n\n private static createTextArea(text: string): HTMLTextAreaElement {\n const textArea = document.createElement('textArea') as HTMLTextAreaElement;\n textArea.value = text;\n document.body.appendChild(textArea);\n return textArea;\n }\n\n private static destroyTextArea(textArea) {\n document.body.removeChild(textArea);\n }\n\n private static selectText(textArea) {\n if (userAgent.getOSName() === 'iOS') {\n const oldContentEditable = textArea.contentEditable;\n const oldReadOnly = textArea.readOnly;\n const range = document.createRange();\n const selection = window.getSelection();\n\n textArea.contenteditable = true;\n textArea.readonly = false;\n range.selectNodeContents(textArea);\n selection.removeAllRanges();\n selection.addRange(range);\n textArea.setSelectionRange(0, 999999);\n textArea.contentEditable = oldContentEditable;\n textArea.readOnly = oldReadOnly;\n } else {\n textArea.select();\n }\n }\n\n private static copyTextToClipboard(): boolean {\n if (!(userAgent.getOSName() === 'iOS' && userAgent.compareVersion('<10'))) {\n return document.execCommand('copy');\n }\n return false;\n }\n}\n","import { Observable, Observer } from 'rxjs';\n\nimport { CompressedData } from './compressedData.interface';\n\nfunction getNumber(v: number, endposition: number, length: number) {\n /* tslint:disable:no-bitwise*/\n const mask = (1 << length) - 1;\n return (v >> endposition) & mask;\n /* tslint:enable:no-bitwise*/\n}\n\nexport class Compression {\n private base64Index = new Map<string, number>();\n private indexBase64 = new Map<number, string>();\n\n constructor() {\n this.generateBase64Index();\n }\n\n private generateBase64Index() {\n // https://fr.wikipedia.org/wiki/Base64\n // A-Z => [0, 25]\n for (let i = 0; i < 26; i++) {\n this.base64Index.set(String.fromCharCode('A'.charCodeAt(0) + i), i);\n this.indexBase64.set(i, String.fromCharCode('A'.charCodeAt(0) + i));\n }\n // a-z => [26, 51]\n for (let i = 0; i < 26; i++) {\n this.base64Index.set(String.fromCharCode('a'.charCodeAt(0) + i), i + 26);\n this.indexBase64.set(i + 26, String.fromCharCode('a'.charCodeAt(0) + i));\n }\n // 0-9 => [52, 61]\n for (let i = 0; i < 10; i++) {\n this.base64Index.set(String.fromCharCode('0'.charCodeAt(0) + i), i + 52);\n this.indexBase64.set(i + 52, String.fromCharCode('0'.charCodeAt(0) + i));\n }\n // + / => [62, 63]\n this.base64Index.set('+', 62);\n this.base64Index.set('/', 63);\n this.indexBase64.set(62, '+');\n this.indexBase64.set(63, '/');\n }\n\n compressBlob(blob: Blob): Observable<CompressedData> {\n if (!blob) {\n return;\n }\n\n const observable = new Observable((observer: Observer<CompressedData>) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onload = () => {\n const base64 = reader.result.valueOf() as string;\n const text64 = base64.substr(base64.indexOf(',') + 1);\n const compressed = this.compressStringBase64(text64);\n const compressedData: CompressedData = {\n length: text64.length,\n type: blob.type,\n object: compressed\n };\n observer.next(compressedData);\n };\n });\n return observable;\n }\n\n decompressBlob(compressedData: CompressedData): Blob {\n /* tslint:disable:no-bitwise*/\n const object = compressedData.object;\n const length = compressedData.length;\n const decompressed: string = this.decompressStringBase64(object, length);\n const byteCharacters = atob(decompressed);\n const byteNumbers = new Array(byteCharacters.length);\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n const blob = new Blob([byteArray], { type: compressedData.type });\n /* tslint:enable:no-bitwise*/\n return blob;\n }\n\n private compressStringBase64(s: string): string {\n /* tslint:disable:no-bitwise*/\n let out = '';\n let bits = 16;\n let chr = 0;\n let rem = 0;\n for (const c of s) {\n const value = this.base64Index.get(c);\n if (bits > 6) {\n bits -= 6;\n chr += value << bits;\n } else {\n rem = 6 - bits;\n chr += value >> rem;\n out += String.fromCharCode(chr);\n chr = value << (16 - rem);\n bits = 16 - rem;\n }\n }\n if (s.length % 8 !== 0) {\n out += String.fromCharCode(chr);\n }\n /* tslint:enable:no-bitwise*/\n return String.fromCharCode(9731) + out;\n }\n\n private decompressStringBase64(c: string, length: number): string {\n /* tslint:disable:no-bitwise*/\n if (!c) {\n return;\n }\n\n if (c.charCodeAt(0) !== 9731) {\n return c;\n }\n\n let chr = 0;\n let rem = 0;\n let bits = 16;\n let out = '';\n let j = 1;\n let value = c.charCodeAt(j);\n for (let i = 0; i < length; i++) {\n if (bits > 6) {\n bits -= 6;\n chr = getNumber(value, bits, 6);\n out += this.indexBase64.get(chr);\n } else {\n rem = 6 - bits;\n chr = getNumber(value, 0, bits) << rem;\n value = c.charCodeAt(++j);\n chr += getNumber(value, 16 - rem, rem);\n out += this.indexBase64.get(chr);\n bits = 16 - rem;\n }\n }\n return out;\n /* tslint:enable:no-bitwise*/\n }\n}\n","export enum ChangeType {\n ADDED = 'added',\n DELETED = 'deleted',\n MODIFIED = 'modified'\n}\n\nexport interface Change {\n type: ChangeType;\n keysChanged?: {\n key: string;\n newValue: any;\n oldValue: any;\n }[];\n}\n\nexport interface GroupingChanges {\n added: ChangeItem[];\n deleted: ChangeItem[];\n modified: ChangeItem[];\n}\n\nexport interface ChangeItem {\n change: Change;\n value: any;\n oldValue?: any;\n newValue?: any;\n}\n","export class StringUtils {\n static diff(s1: string, s2: string, p = 4): string {\n if (!s1 && !s2) {\n return '';\n }\n if (!s1) {\n return '<span class=\"inserted\">' + s2 + '</span>';\n }\n if (!s2) {\n return '<span class=\"deleted\">' + s1 + '</span>';\n }\n s1 = s1.toString();\n s2 = s2.toString();\n const changeData = StringUtils.getChanges(s1, s2, '', p);\n const nextS = s2.slice(\n changeData.mtc.length + changeData.ins.length + changeData.sbs.length\n ); // remaining part of \"s\"\n const nextThis = s1.slice(\n changeData.mtc.length + changeData.del.length + changeData.sbs.length\n ); // remaining part of \"this\"\n let result = ''; // the glorious result\n if (changeData.del.length > 0) {\n changeData.del = '<span class=\"deleted\">' + changeData.del + '</span>';\n }\n if (changeData.ins.length > 0) {\n changeData.ins = '<span class=\"inserted\">' + changeData.ins + '</span>';\n }\n result = changeData.mtc + changeData.del + changeData.ins + changeData.sbs;\n result +=\n nextThis !== '' || nextS !== ''\n ? StringUtils.diff(nextThis, nextS, p)\n : '';\n return result;\n }\n\n private static getMatchingSubstring(s, l, m) {\n // returns the first matching substring in-between the two strings\n let i = 0;\n let match = false;\n const slen = s.length;\n const o = { fis: slen, mtc: m, sbs: '' }; // temporary object used to construct the cd (change data) object\n\n while (i < slen) {\n l[i] === s[i]\n ? match\n ? (o.sbs += s[i]) // o.sbs holds the matching substring itsef\n : ((match = true), (o.fis = i), (o.sbs = s[i]))\n : match\n ? (i = slen) // stop after the first found substring\n : (i = i);\n ++i;\n }\n return o;\n }\n\n private static getChanges(s1, s2, m, p) {\n const isThisLonger = s1.length >= s1.length ? true : false;\n let [longer, shorter] = isThisLonger ? [s1, s2] : [s2, s1]; // assignment of longer and shorter by es6 destructuring\n let bi = 0; // base index designating the index of first mismacthing character in both strings\n\n while (shorter[bi] === longer[bi] && bi < shorter.length) {\n ++bi;\n } // make bi the index of first mismatching character\n longer = longer.split('').slice(bi); // as the longer string will be rotated it is converted into array\n shorter = shorter.slice(bi); // shorter and longer now starts from the first mismatching character\n\n const len = longer.length; // length of the longer string\n let cd: any = {\n fis: shorter.length, // the index of matching string in the shorter string\n fil: len, // the index of matching string in the longer string\n sbs: '', // the matching substring itself\n mtc: m + s2.slice(0, bi)\n }; // if exists mtc holds the matching string at the front\n let sub: any = { sbs: '' }; // returned substring per 1 character rotation of the longer string\n\n if (shorter !== '') {\n for (let rc = 0; rc < len && sub.sbs.length < p; rc++) {\n // rc -> rotate count, p -> precision factor\n sub = StringUtils.getMatchingSubstring(\n shorter,\n StringUtils.rotateArray(longer, rc),\n cd.mtc\n ); // rotate longer string 1 char and get substring\n sub.fil =\n rc < len - sub.fis\n ? sub.fis + rc // mismatch is longer than the mismatch in short\n : sub.fis - len + rc; // mismatch is shorter than the mismatch in short\n if (sub.sbs.length > cd.sbs.length) {\n cd = sub; // only keep the one with the longest substring.\n }\n }\n }\n // insert the mismatching delete subsrt and insert substr to the cd object and attach the previous substring\n [cd.del, cd.ins] = isThisLonger\n ? [longer.slice(0, cd.fil).join(''), shorter.slice(0, cd.fis)]\n : [shorter.slice(0, cd.fis), longer.slice(0, cd.fil).join('')];\n return cd.del.indexOf(' ') === -1 ||\n cd.ins.indexOf(' ') === -1 ||\n cd.del === '' ||\n cd.ins === '' ||\n cd.sbs === ''\n ? cd\n : StringUtils.getChanges(cd.del, cd.ins, cd.mtc, p);\n }\n\n private static rotateArray(array, n) {\n const len = array.length;\n const res = new Array(array.length);\n if (n % len === 0) {\n return array.slice();\n } else {\n for (let i = 0; i < len; i++) {\n res[i] = array[(i + (len + (n % len))) % len];\n }\n }\n return res;\n }\n\n static isValidNumber(value: string): boolean {\n return !isNaN(Number(value));\n }\n\n static isOctalNumber(value: string): boolean {\n return (\n StringUtils.isValidNumber(value) &&\n value.startsWith('0') &&\n value.length > 1\n );\n }\n}\n","import { ChangeType, GroupingChanges } from './change.interface';\nimport { StringUtils } from './string-utils';\n\nexport class ChangeUtils {\n static findChanges(\n obj1: any[],\n obj2: any[],\n ignoreKeys: string[] = []\n ): GroupingChanges {\n const items: GroupingChanges = {\n added: [],\n deleted: [],\n modified: []\n };\n\n if (!obj1 || !obj2) {\n return items;\n }\n\n const obj1Clone: any = [...obj1];\n const obj2Clone: any = [...obj2];\n\n for (const fromItem of obj1Clone) {\n const index = obj2Clone.findIndex((s) => s.id === fromItem.id);\n\n if (index === -1) {\n items.deleted.push({\n change: { type: ChangeType.DELETED },\n value: fromItem\n });\n continue;\n }\n\n const toItem = obj2Clone.splice(index, 1)[0];\n const fromItemClone = JSON.parse(JSON.stringify(fromItem));\n const toItemClone = JSON.parse(JSON.stringify(toItem));\n\n const keysChanged = ChangeUtils.compareObject(\n fromItemClone,\n toItemClone,\n undefined,\n ignoreKeys\n );\n\n if (keysChanged.length) {\n items.modified.push({\n change: {\n type: ChangeType.MODIFIED,\n keysChanged\n },\n value: fromItemClone,\n oldValue: fromItem,\n newValue: toItem\n });\n }\n }\n\n items.added = obj2Clone.map((itemAdded) => {\n return {\n change: { type: ChangeType.ADDED },\n value: itemAdded\n };\n });\n\n return items;\n }\n\n private static compareObject(fromItem, toItem, baseKey?, ignoreKeys = []) {\n const fromItemClone = JSON.parse(JSON.stringify(fromItem));\n const toItemClone = JSON.parse(JSON.stringify(toItem));\n\n const keys: any = new Set([\n ...Object.keys(fromItem),\n ...Object.keys(toItem)\n ]);\n let keysChanged = [];\n keys.forEach((key) => {\n const keyString = baseKey ? `${baseKey}.${key}` : key;\n if (ignoreKeys.indexOf(keyString) !== -1) {\n return;\n }\n\n if (Array.isArray(fromItem[key])) {\n fromItem[key] = fromItem[key].join(',<br>');\n }\n if (Array.isArray(toItem[key])) {\n toItem[key] = toItem[key].join(',<br>');\n }\n\n if (\n typeof fromItem[key] === 'object' &&\n typeof toItem[key] === 'object' &&\n fromItem[key] !== null &&\n toItem[key] !== null\n ) {\n keysChanged = keysChanged.concat(\n this.compareObject(fromItem[key], toItem[key], keyString)\n );\n } else {\n if (fromItem[key] !== toItem[key]) {\n keysChanged.push({\n key: keyString,\n oldValue: fromItemClone[key],\n newValue: toItemClone[key]\n });\n fromItem[key] = StringUtils.diff(fromItem[key], toItem[key]);\n }\n }\n });\n\n return keysChanged;\n }\n}\n","import moment from 'moment';\n\nexport function dateTransform(date: Date, format: string): string {\n return moment(date).format(format);\n}\n","export class DomUtils {\n static create<K extends keyof HTMLElementTagNameMap>(\n doc: Document,\n tagName: K,\n options?: Partial<HTMLElementTagNameMap[K]>\n ): HTMLElementTagNameMap[K] {\n const el = doc.createElement(tagName);\n\n for (const key in options) {\n el[key] = options[key];\n }\n\n return el;\n }\n\n static remove(node: HTMLElement | SVGElement): void {\n if (!node.parentNode) {\n return;\n }\n node.parentNode.removeChild(node);\n }\n}\n","/**\n * Trigger download of a file\n *\n * @param content File content\n * @param mimeType File mime type\n * @param fileName File name\n */\nexport function downloadContent(\n content: string,\n mimeType: string,\n fileName: string\n) {\n const uri = `data:${mimeType},${encodeURIComponent(content)}`;\n downloadFromUri(uri, fileName);\n}\n\n/**\n * Trigger download of a file\n *\n * @param content File content\n * @param mimeType File mime type\n * @param fileName File name\n */\nexport function downloadFromUri(uri: string, fileName: string) {\n const element = document.createElement('a');\n element.setAttribute('href', uri);\n element.setAttribute('download', fileName);\n element.style.display = 'none';\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n}\n","export class ObjectUtils {\n static resolve(obj: object, key: string): any {\n const keysArray = key.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n let current = obj;\n while (keysArray.length) {\n if (typeof current !== 'object') {\n return undefined;\n }\n current = current[keysArray.shift()];\n }\n\n return current;\n }\n\n static isObject(item: object) {\n return (\n item &&\n typeof item === 'object' &&\n !Array.isArray(item) &&\n item !== null &&\n !(item instanceof Date)\n );\n }\n\n static mergeDeep(\n target: object,\n source: object,\n ignoreUndefined = false\n ): any {\n const output = Object.assign({}, target);\n if (ObjectUtils.isObject(target) && ObjectUtils.isObject(source)) {\n Object.keys(source)\n .filter((key) => !ignoreUndefined || source[key] !== undefined)\n .forEach((key) => {\n if (ObjectUtils.isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] });\n } else {\n output[key] = ObjectUtils.mergeDeep(\n target[key],\n source[key],\n ignoreUndefined\n );\n }\n } else {\n Object.assign(output, { [key]: source[key] });\n }\n });\n }\n return output;\n }\n\n static copyDeep(src): any {\n const target = Array.isArray(src) ? [] : {};\n for (const prop in src) {\n if (src.hasOwnProperty(prop)) {\n const value = src[prop];\n if (value && typeof value === 'object') {\n target[prop] = this.copyDeep(value);\n } else {\n target[prop] = value;\n }\n }\n }\n return target;\n }\n\n static removeDuplicateCaseInsensitive(obj: object) {\n const summaryCapitalizeObject = {};\n const capitalizeObject = {};\n const upperCaseCount = [];\n\n for (const property in obj) {\n if (obj.hasOwnProperty(property)) {\n const upperCaseProperty = property.toUpperCase();\n if (!summaryCapitalizeObject.hasOwnProperty(upperCaseProperty)) {\n summaryCapitalizeObject[upperCaseProperty] = [\n { [property]: obj[property] }\n ];\n } else {\n summaryCapitalizeObject[upperCaseProperty].push({\n [property]: obj[property]\n });\n }\n // counting the number of uppercase lettersMna\n upperCaseCount.push({\n key: property,\n count: property.replace(/[^A-Z]/g, '').length\n });\n }\n }\n for (const capitalizedProperty in summaryCapitalizeObject) {\n if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {\n if (summaryCapitalizeObject.hasOwnProperty(capitalizedProperty)) {\n const capitalizedPropertyObject =\n summaryCapitalizeObject[capitalizedProperty];\n if (capitalizedPropertyObject.length === 1) {\n // for single params (no duplicates)\n const singlePossibility = capitalizedPropertyObject[0];\n capitalizeObject[capitalizedProperty] =\n singlePossibility[Object.keys(singlePossibility)[0]];\n } else if (capitalizedPropertyObject.length > 1) {\n // defining the closest to lowercase property\n const paramClosestToLowercase = upperCaseCount\n .filter(\n (f) => f.key.toLowerCase() === capitalizedProperty.toLowerCase()\n )\n .reduce((prev, current) => {\n return prev.y < current.y ? prev : current;\n });\n capitalizeObject[paramClosestToLowercase.key.toUpperCase()] =\n obj[paramClosestToLowercase.key];\n }\n }\n }\n }\n for (const property in obj) {\n if (obj.hasOwnProperty(property)) {\n delete obj[property];\n }\n }\n\n for (const property in capitalizeObject) {\n if (capitalizeObject.hasOwnProperty(property)) {\n obj[property] = capitalizeObject[property];\n }\n }\n }\n\n static removeUndefined(obj: object): any {\n const output = {};\n if (ObjectUtils.isObject(obj)) {\n Object.keys(obj)\n .filter((key) => obj[key] !== undefined)\n .forEach((key) => {\n if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {\n output[key] = ObjectUtils.removeUndefined(obj[key]);\n } else {\n output[key] = obj[key];\n }\n });\n\n return output;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((o) => ObjectUtils.removeUndefined(o));\n }\n\n return obj;\n }\n\n static removeNull(obj: object): any {\n const output = {};\n if (ObjectUtils.isObject(obj)) {\n Object.keys(obj)\n .filter((key) => obj[key] !== null)\n .forEach((key) => {\n if (ObjectUtils.isObject(obj[key]) || Array.isArray(obj[key])) {\n output[key] = ObjectUtils.removeNull(obj[key]);\n } else {\n output[key] = obj[key];\n }\n });\n\n return output;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((o) => ObjectUtils.removeNull(o));\n }\n\n return obj;\n }\n\n static naturalCompare(a, b, direction = 'asc', nullsFirst?: boolean) {\n if (direction === 'desc') {\n b = [a, (a = b)][0];\n }\n\n // nullsFirst = undefined : end if direction = 'asc', first if direction = 'desc'\n // nullsFirst = true : always first\n // nullsFirst = false : always end\n if (\n a === null ||\n a === '' ||\n a === undefined ||\n b === null ||\n b === '' ||\n b === undefined\n ) {\n const nullScore =\n a === b\n ? 0\n : a === undefined\n ? 3\n : b === undefined\n ? -3\n : a === null\n ? 2\n : b === null\n ? -2\n : a === ''\n ? 1\n : -1;\n if (direction === 'desc') {\n return nullsFirst !== false ? nullScore : nullScore * -1;\n }\n return nullsFirst === true ? nullScore * -1 : nullScore;\n }\n\n const ax = [];\n const bx = [];\n a = '' + a;\n b = '' + b;\n\n a.replace(/(\\d+)|(\\D+)/g, (_, $1, $2) => {\n ax.push([$1 || Infinity, $2 || '']);\n });\n\n b.replace(/(\\d+)|(\\D+)/g, (_, $1, $2) => {\n bx.push([$1 || Infinity, $2 || '']);\n });\n\n while (ax.length && bx.length) {\n const an = ax.shift();\n const bn = bx.shift();\n const nn = an[0] - bn[0] || an[1].localeCompare(bn[1]);\n if (nn) {\n return nn;\n }\n }\n\n return ax.length - bx.length;\n }\n\n /**\n * Return true if two object are equivalent.\n * Objects are considered equivalent if they have the same properties and\n * if all of their properties (first-level only) share the same value.\n * @param obj1 First object\n * @param obj2 Second object\n * @returns Whether two objects arer equivalent\n */\n static objectsAreEquivalent(obj1: object, obj2: object): boolean {\n if (obj1 === obj2) {\n return true;\n }\n\n const obj1Props = Object.getOwnPropertyNames(obj1);\n const obj2Props = Object.getOwnPropertyNames(obj2);\n if (obj1Props.length !== obj2Props.length) {\n return false;\n }\n\n for (const prop of obj1Props) {\n if (obj1[prop] !== obj2[prop]) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Return a new object with an array of keys removed\n * @param obj Source object\n * @param keys Keys to remove\n * @returns A new object\n */\n static removeKeys(obj: object, keys: string[]): object {\n const newObj = Object.keys(obj)\n .filter((key) => keys.indexOf(key) < 0)\n .reduce((_obj, key) => {\n _obj[key] = obj[key];\n return _obj;\n }, {});\n\n return newObj;\n }\n\n static isEmpty(obj: object): boolean {\n return Object.keys(obj).length === 0;\n }\n}\n","export class NumberUtils {\n static roundToNDecimal(num: number, decimal: number = 3): number {\n const roundFactor = Math.pow(10, decimal);\n return Math.round(num * roundFactor) / roundFactor;\n }\n}\n","/** Utility function to create a K:V from a list of strings */\nexport function strEnum<T extends string>(o: Array<T>): { [K in T]: K } {\n return o.reduce((res, key) => {\n res[key] = key;\n return res;\n }, Object.create(null));\n}\n","import { DomUtils } from './dom.utils';\n\nconst PATH_PREBUILT_THEMES = 'assets/igo2/core/theming/prebuilt-themes';\nconst LINK_ID = 'theme-styles';\n\nexport function loadTheme(\n doc: Document,\n themeName: string,\n path: string = PATH_PREBUILT_THEMES\n): void {\n const src = `${path}/${themeName}.css`;\n const head = doc.getElementsByTagName('head')[0];\n\n let themeLink = doc.getElementById(LINK_ID) as HTMLLinkElement;\n themeLink ? (themeLink.href = src) : createHtmlLink(doc, src, head);\n}\n\nfunction createHtmlLink(doc: Document, src: string, parent: HTMLElement): void {\n const element = DomUtils.create(doc, 'link', {\n id: LINK_ID,\n rel: 'stylesheet',\n href: src\n });\n parent.appendChild(element);\n}\n","export function S4() {\n // eslint-disable-next-line no-bitwise\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n}\n\nexport function uuid() {\n const id = `${S4()}${S4()}-${S4()}-${S4()}-${S4()}-${S4()}${S4()}${S4()}`;\n return id.toLowerCase();\n}\n","import { Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nexport enum SubjectStatus {\n Error = 0,\n Done = 1,\n Working = 2,\n Waiting = 3\n}\n\nexport abstract class Watcher {\n public status$ = new Subject<SubjectStatus>();\n protected status$$: Subscription;\n\n get status(): SubjectStatus {\n return this._status;\n }\n set status(value: SubjectStatus) {\n this._status = value;\n this.status$.next(value);\n }\n private _status: SubjectStatus;\n\n protected abstract watch();\n\n protected abstract unwatch();\n\n subscribe(callback: Function, scope?: any) {\n this.watch();\n\n this.status$$ = this.status$\n .pipe(distinctUntilChanged())\n .subscribe((status: SubjectStatus) => {\n this.handleStatusChange(status);\n callback.call(scope, this);\n });\n }\n\n unsubscribe() {\n this.unwatch();\n if (this.status$$ !== undefined) {\n this.status$$.unsubscribe();\n this.status$$ = undefined;\n }\n this.status = SubjectStatus.Waiting;\n }\n\n protected handleStatusChange(status: SubjectStatus) {}\n}\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|