@sumaris-net/ngx-components 18.15.3 → 18.16.0
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/doc/changelog.md +5 -0
- package/esm2022/src/app/core/about/about.modal.mjs +53 -20
- package/esm2022/src/app/core/services/local-settings.service.mjs +8 -4
- package/esm2022/src/app/core/services/network.utils.mjs +1 -1
- package/esm2022/src/app/shared/file/url.utils.mjs +3 -1
- package/esm2022/src/environments/environment.class.mjs +2 -1
- package/esm2022/src/environments/environment.mjs +2 -1
- package/fesm2022/sumaris-net.ngx-components.mjs +55 -17
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/about/about.modal.d.ts +23 -11
- package/src/app/core/services/local-settings.service.d.ts +25 -0
- package/src/app/core/services/network.utils.d.ts +1 -0
- package/src/assets/i18n/en-US.json +3 -1
- package/src/assets/i18n/en.json +3 -1
- package/src/assets/i18n/fr.json +3 -1
- package/src/assets/manifest.json +1 -1
- package/src/environments/environment.class.d.ts +1 -0
|
@@ -32,4 +32,4 @@ export class NetworkUtils {
|
|
|
32
32
|
return 'unknown';
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFvQyxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWtDNUMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3RCLElBQWdCLEVBQ2hCLElBQW1CLEVBQ25CLElBT0M7UUFFRCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFbkQsSUFBSSxPQUFPLEdBQUcsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsSUFBZSxDQUFDO1FBQ2pFLHdCQUF3QjtRQUN4QixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsT0FBTyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxVQUFVLENBQW1CLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQXdCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsSCxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixJQUFJLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7WUFDckMsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsY0FBYyxJQUFJLFNBQVMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBIdHRwVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvaHR0cC9odHRwLnV0aWxzJztcbmltcG9ydCB7IFBlZXIgfSBmcm9tICcuL21vZGVsL3BlZXIubW9kZWwnO1xuaW1wb3J0IHsgTm9kZUZlYXR1cmUgfSBmcm9tICcuL21vZGVsL25vZGUtZmVhdHVyZS5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzLCBDb25uZWN0aW9uVHlwZSwgTmV0d29yayB9IGZyb20gJ0BjYXBhY2l0b3IvbmV0d29yayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXBhY2l0b3IgfSBmcm9tICdAY2FwYWNpdG9yL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcbiAgc29mdHdhcmVOYW1lOiBzdHJpbmc7XG4gIHNvZnR3YXJlVmVyc2lvbjogc3RyaW5nO1xuICBub2RlTGFiZWw/OiBzdHJpbmc7XG4gIG5vZGVOYW1lPzogc3RyaW5nO1xuICBidWlsZERhdGU/OiBzdHJpbmc7XG4gIGZlYXR1cmVzPzogTm9kZUZlYXR1cmVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBNYW5pZmVzdCB7XG4gIC8vIG1hbmRhdG9yeVxuICBtYW5pZmVzdF92ZXJzaW9uOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8vIEFwcCBzdGFydCAocmVxdWlyZWQgYnkgcGxhdGZvcm0gc2VydmljZSlcbiAgc3RhcnRfdXJsOiBzdHJpbmc7XG5cbiAgLy8gb3B0aW9uYWxcbiAgc2hvcnRfbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHZlcnNpb25fbmFtZT86IHN0cmluZztcbiAgYXV0aG9yPzogc3RyaW5nO1xuICBkZWZhdWx0X2xvY2FsZT86IHN0cmluZztcblxuICAvLyBvcHRpb25hbCBVSVxuICBpY29ucz86IGFueSB8IGFueVtdO1xuICBiYWNrZ3JvdW5kX2NvbG9yPzogc3RyaW5nO1xuICB0aGVtZV9jb2xvcj86IHN0cmluZztcbiAgZGlzcGxheT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE5ldHdvcmtVdGlscyB7XG4gIHN0YXRpYyBhc3luYyBnZXROb2RlSW5mbyhcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHBlZXI6IHN0cmluZyB8IFBlZXIsXG4gICAgb3B0cz86IHtcbiAgICAgIGhlYWRlcnM/OlxuICAgICAgICB8IEh0dHBIZWFkZXJzXG4gICAgICAgIHwge1xuICAgICAgICAgICAgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgICAgICAgfTtcbiAgICAgIHJlc3BvbnNlVHlwZT86ICdqc29uJztcbiAgICB9XG4gICk6IFByb21pc2U8Tm9kZUluZm8+IHtcbiAgICBpZiAoIXBlZXIpIHRocm93IEVycm9yKFwiTWlzc2luZyBhcmd1bWVudCAncGVlcicuXCIpO1xuXG4gICAgbGV0IHBlZXJVcmwgPSBwZWVyIGluc3RhbmNlb2YgUGVlciA/IHBlZXIudXJsIDogKHBlZXIgYXMgc3RyaW5nKTtcbiAgICAvLyBSZW1vdmUgdHJhaWxpbmcgc2xhc2hcbiAgICBpZiAocGVlclVybC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICBwZWVyVXJsID0gcGVlclVybC5zdWJzdHIoMCwgcGVlclVybC5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICByZXR1cm4gSHR0cFV0aWxzLmdldEpzb24oaHR0cCwgcGVlclVybCArICcvYXBpL25vZGUvaW5mbycsIG9wdHMpO1xuICB9XG5cbiAgc3RhdGljIGlzUGx1Z2luQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDYXBhY2l0b3IuaXNQbHVnaW5BdmFpbGFibGUoJ05ldHdvcmsnKTtcbiAgfVxuXG4gIHN0YXRpYyBzdGF0dXNDaGFuZ2VzKCk6IE9ic2VydmFibGU8Q29ubmVjdGlvblN0YXR1cz4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxDb25uZWN0aW9uU3RhdHVzPigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlciA9IE5ldHdvcmsuYWRkTGlzdGVuZXIoJ25ldHdvcmtTdGF0dXNDaGFuZ2UnLCAoc3RhdHVzOiBDb25uZWN0aW9uU3RhdHVzKSA9PiBzdWJzY3JpYmVyLm5leHQoc3RhdHVzKSk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBoYW5kbGVyLnRoZW4oKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci5yZW1vdmUoKSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldENvbm5lY3Rpb25UeXBlKCk6IFByb21pc2U8Q29ubmVjdGlvblR5cGU+IHtcbiAgICBpZiAoTmV0d29ya1V0aWxzLmlzUGx1Z2luQXZhaWxhYmxlKCkpIHtcbiAgICAgIHJldHVybiAoYXdhaXQgTmV0d29yay5nZXRTdGF0dXMoKSk/LmNvbm5lY3Rpb25UeXBlIHx8ICd1bmtub3duJztcbiAgICB9XG4gICAgcmV0dXJuICd1bmtub3duJztcbiAgfVxufVxuIl19
|
|
@@ -34,6 +34,8 @@ export class UrlUtils {
|
|
|
34
34
|
* @return {string} The URL without the query string.
|
|
35
35
|
*/
|
|
36
36
|
static stripQuery(url) {
|
|
37
|
+
if (!url)
|
|
38
|
+
return url;
|
|
37
39
|
return /[^?]*/.exec(url)[0];
|
|
38
40
|
}
|
|
39
41
|
/**
|
|
@@ -192,4 +194,4 @@ export class UrlUtils {
|
|
|
192
194
|
return this.addTrailingSlash(basePath) + this.removeStartingSlash(relativePath);
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS91cmwudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEQsTUFBTSxPQUFnQixRQUFRO0lBQzVCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFtQjtRQUN0QyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBbUI7UUFDdEMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQW1CO1FBQ3RDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FB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QUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVc7UUFDcEMsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBZ0IsRUFBRSxZQUFvQjtRQUNsRCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sWUFBWSxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTmlsT3JCbGFuaywgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVXJsVXRpbHMge1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIFVSTCBpcyBhIHJlbGF0aXZlIFVSTC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBocmVmIC0gVGhlIFVSTCB0byBjaGVjay5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgVVJMIGlzIHJlbGF0aXZlLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBzdGF0aWMgaXNSZWxhdGl2ZVVybChocmVmOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKCFocmVmKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICFocmVmLnN0YXJ0c1dpdGgoJ2h0dHA6JykgJiYgIWhyZWYuc3RhcnRzV2l0aCgnaHR0cHM6JykgJiYgIWhyZWYuc3RhcnRzV2l0aCgnbWFpbHRvOicpICYmICFocmVmLnN0YXJ0c1dpdGgoJ3RlbDonKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gVVJMIGlzIGFuIGludGVybmFsIFVSTC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBocmVmIC0gVGhlIFVSTCB0byBiZSBjaGVja2VkLiBDYW4gYmUgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBVUkwgb3IgbnVsbC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBVUkwgaXMgaW50ZXJuYWwsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIHN0YXRpYyBpc0ludGVybmFsVXJsKGhyZWY6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZi5zdGFydHNXaXRoKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHx8IHRoaXMuaXNSZWxhdGl2ZVVybChocmVmKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0V4dGVybmFsVXJsKGhyZWY6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIXRoaXMuaXNJbnRlcm5hbFVybChocmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gVVJMLCByZXR1cm5pbmcgb25seSB0aGUgYmFzZSBVUkwuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIGZyb20gd2hpY2ggdGhlIHF1ZXJ5IHN0cmluZyB3aWxsIGJlIHN0cmlwcGVkLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgd2l0aG91dCB0aGUgcXVlcnkgc3RyaW5nLlxuICAgKi9cbiAgc3RhdGljIHN0cmlwUXVlcnkodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAvW14/XSovLmV4ZWModXJsKVswXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBmcmFnbWVudCBhbmQgcXVlcnkgY29tcG9uZW50cyBmcm9tIGEgZ2l2ZW4gVVJMIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgc3RyaW5nIHRvIHByb2Nlc3MuXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCB3aXRob3V0IGl0cyBmcmFnbWVudCBhbmQgcXVlcnkgY29tcG9uZW50cy5cbiAgICovXG4gIHN0YXRpYyBzdHJpcEZyYWdtZW50QW5kUXVlcnkodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdXJsKSByZXR1cm4gdXJsO1xuICAgIHJldHVybiB0aGlzLnN0cmlwUXVlcnkoL1teI10qLy5leGVjKHVybClbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyIGZyb20gdGhlIGdpdmVuIFVSTC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBmcmFnbWVudC5cbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZnJhZ21lbnQgaWRlbnRpZmllciBvZiB0aGUgVVJMLCBleGNsdWRpbmcgdGhlICcjJyBzeW1ib2wuXG4gICAqL1xuICBzdGF0aWMgZ2V0RnJhZ21lbnQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChpc05pbE9yQmxhbmsodXJsKSkgcmV0dXJuICcnO1xuXG4gICAgY29uc3QgbWF0Y2ggPSB1cmwubWF0Y2goLyMoLiopJC8pO1xuICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogJyc7XG4gIH1cblxuICBzdGF0aWMgcmVzb2x2ZVJlbGF0aXZlVXJsKGJhc2VVcmw6IHN0cmluZywgcmVsYXRpdmVQYXRoOiBzdHJpbmcsIG9wdHM/OiB7IGFic29sdXRlQnlEZWZhdWx0OiBib29sZWFuIH0pOiBzdHJpbmcge1xuICAgIGlmICghYmFzZVVybCkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyAnYmFzZVVybCcgYXJndW1lbnRcIik7XG4gICAgaWYgKCFyZWxhdGl2ZVBhdGgpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgJ3JlbGF0aXZlUGF0aCcgYXJndW1lbnRcIik7XG4gICAgaWYgKCF0aGlzLmlzUmVsYXRpdmVVcmwocmVsYXRpdmVQYXRoKSkgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgYmUgYSByZWxhdGl2ZSBwYXRoJyk7XG5cbiAgICAvLyBEZXRlY3QgYWJzb2x1dGUgVVJMXG4gICAgaWYgKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKCcvJykgfHwgKG9wdHM/LmFic29sdXRlQnlEZWZhdWx0ICYmICFyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aCgnLicpKSkge1xuICAgICAgYmFzZVVybCA9IHRoaXMuZ2V0Um9vdFVybChiYXNlVXJsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gVXJsVXRpbHMubm9ybWFsaXplVXJsKFVybFV0aWxzLmNvbmNhdChiYXNlVXJsLCByZWxhdGl2ZVBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIGdpdmVuIFVSTCBieSBub3JtYWxpemluZyBpdHMgcGFydHMsIHJlbW92aW5nIHVubmVjZXNzYXJ5IHBhdGggc2VnbWVudHMgbGlrZSBcIi5cIiBhbmQgXCIuLlwiLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBiZSByZXNvbHZlZC4gTXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcuXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHJlc29sdmVkIGFuZCBjbGVhbmVkIFVSTCBzdHJpbmcuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgcHJvdmlkZWQgVVJMIGlzIG1pc3Npbmcgb3IgdW5kZWZpbmVkLlxuICAgKi9cbiAgc3RhdGljIG5vcm1hbGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF1cmwpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgJ3VybCcgYXJndW1lbnRcIik7XG4gICAgcmV0dXJuIHRoaXMuY2xlYW5VcmwodXJsKVxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5yZWR1Y2UoKHJlcywgcGFydCkgPT4ge1xuICAgICAgICBpZiAocGFydCA9PT0gJy4nKSByZXR1cm4gcmVzO1xuICAgICAgICBpZiAocGFydCA9PT0gJy4uJyAmJiByZXMubGVuZ3RoID4gMCkgcmV0dXJuIHJlcy5zbGljZSgwLCAtMSk7XG4gICAgICAgIHJldHVybiByZXMuY29uY2F0KHBhcnQpO1xuICAgICAgfSwgW10pXG4gICAgICAuam9pbignLycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gY29tcGxldGVzIGEgYmFzZSBVUkwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBrZXktdmFsdWUgcGFpcnNcbiAgICogcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFkZC4gSXQgcHJvcGVybHkgZW5jb2RlcyB0aGVcbiAgICogcGFyYW1ldGVycyBhbmQgZW5zdXJlcyB0aGV5IGFyZSBhZGRlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzZXBhcmF0b3IgKCc/JyBvciAnJicpLlxuICAgKiBQYXJhbWV0ZXJzIHdpdGggbnVsbCBvciB1bmRlZmluZWQgdmFsdWVzIGFyZSBhdXRvbWF0aWNhbGx5IGZpbHRlcmVkIG91dC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSW4gYSB0ZW1wbGF0ZVxuICAgKiA8YSBbaHJlZl09XCInaHR0cHM6Ly9leGFtcGxlLmNvbScgfCBhcHBlbmRRdWVyeVBhcmFtczp7aWQ6IDEyMywgbmFtZTogJ3Rlc3QnfVwiPkxpbms8L2E+XG4gICAqIC8vIFJlc3VsdDogaHR0cHM6Ly9leGFtcGxlLmNvbT9pZD0xMjMmbmFtZT10ZXN0XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIElmIHRoZSBVUkwgYWxyZWFkeSBjb250YWlucyBwYXJhbWV0ZXJzXG4gICAqIDxhIFtocmVmXT1cIidodHRwczovL2V4YW1wbGUuY29tP3BhZ2U9MScgfCBhcHBlbmRRdWVyeVBhcmFtczp7c29ydDogJ2FzYyd9XCI+TGluazwvYT5cbiAgICogLy8gUmVzdWx0OiBodHRwczovL2V4YW1wbGUuY29tP3BhZ2U9MSZzb3J0PWFzY1xuICAgKlxuICAgKiBAcGFyYW0gdXJsXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtc1xuICAgKi9cbiAgc3RhdGljIGFwcGVuZFF1ZXJ5UGFyYW1zKHVybDogc3RyaW5nIHwgYW55W10sIHF1ZXJ5UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmxTdHIgPSB0eXBlb2YgdXJsID09PSAnc3RyaW5nJyA/IHVybCA6IHRoaXMuYWRkU3RhcnRpbmdTbGFzaCh1cmwuam9pbignLycpKTtcbiAgICBpZiAoaXNOaWxPckJsYW5rKHVybFN0cikgfHwgIXF1ZXJ5UGFyYW1zKSByZXR1cm4gdXJsU3RyO1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXMpXG4gICAgICAuZmlsdGVyKChbXywgdmFsdWVdKSA9PiBpc05vdE5pbCh2YWx1ZSkpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkpfT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcbiAgICAgIC5qb2luKCcmJyk7XG4gICAgaWYgKGlzTmlsT3JCbGFuayhxdWVyeVN0cmluZykpIHJldHVybiB1cmxTdHI7XG4gICAgcmV0dXJuIHVybFN0ciArICh1cmxTdHIuaW5jbHVkZXMoJz8nKSA/ICcmJyA6ICc/JykgKyBxdWVyeVN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhbmQgcmV0dXJucyB0aGUgcm9vdCBVUkwgZnJvbSB0aGUgZ2l2ZW4gY29tcGxldGUgVVJMIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBjb21wbGV0ZSBVUkwgc3RyaW5nIGZyb20gd2hpY2ggdGhlIHJvb3QgVVJMIHdpbGwgYmUgZXh0cmFjdGVkLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSByb290IFVSTCBpbmNsdWRpbmcgdGhlIHByb3RvY29sIGFuZCBob3N0IChhbmQgcG9ydCBpZiBwcmVzZW50KS5cbiAgICogQHRocm93cyB7RXJyb3J9IFRocm93cyBhbiBlcnJvciBpZiB0aGUgcHJvdmlkZWQgVVJMIGlzIG1pc3Npbmcgb3IgaXMgaW4gYW4gaW52YWxpZCBmb3JtYXQuXG4gICAqL1xuICBzdGF0aWMgZ2V0Um9vdFVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF1cmwpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgJ3VybCcgYXJndW1lbnRcIik7XG4gICAgbGV0IFtwcm90b2NvbCwgcGF0aF0gPSB1cmwuc3BsaXQoJy8vJywgMik7XG4gICAgaWYgKCFwcm90b2NvbCB8fCBpc05pbE9yQmxhbmsocGF0aCkpIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBVUkwgZm9ybWF0OiAke3VybH1gKTtcbiAgICBjb25zdCBob3N0QW5kUG9ydCA9IHBhdGguc3BsaXQoJy8nLCAyKVswXTtcbiAgICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RBbmRQb3J0fWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBwYXJlbnQgVVJMIG9yIGRpcmVjdG9yeSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIFVSTC5cbiAgICogVGhpcyBtZXRob2QgaGFuZGxlcyBib3RoIHJlbGF0aXZlIGFuZCBhYnNvbHV0ZSBVUkxzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCBmcm9tIHdoaWNoIHRvIGRlcml2ZSB0aGUgcGFyZW50IHBhdGguXG4gICAqICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgVVJMIG9yIHJlbGF0aXZlIHBhdGguXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHBhcmVudCBVUkwgb3IgZGlyZWN0b3J5IHBhdGguIFRocm93cyBhbiBlcnJvciBpZiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAgICovXG4gIHN0YXRpYyBnZXRQYXJlbnQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nICd1cmwnIGFyZ3VtZW50XCIpO1xuICAgIGNvbnN0IGNsZWFuVXJsID0gdGhpcy5zdHJpcEZyYWdtZW50QW5kUXVlcnkodXJsKTtcbiAgICBpZiAoY2xlYW5VcmwuZW5kc1dpdGgoJy8nKSkgcmV0dXJuIGNsZWFuVXJsOyAvLyBTa2lwIGlmIGFscmVhZHkgYSBwYXJlbnQgZGlyZWN0b3J5XG4gICAgY29uc3QgcGFyZW50UGF0aCA9IGNsZWFuVXJsICsgJy8nICsgJy4uJztcbiAgICBpZiAodGhpcy5pc1JlbGF0aXZlVXJsKHVybCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVSZWxhdGl2ZVVybCh3aW5kb3cubG9jYXRpb24uaHJlZiwgcGFyZW50UGF0aCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZVVybChwYXJlbnRQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbnMgdGhlIHByb3ZpZGVkIFVSTCBieSBlbmNvZGluZyBpdCBzYWZlbHkgYW5kIHJlcGxhY2luZyBzcGVjaWZpYyBwYXR0ZXJucy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhyZWYgLSBUaGUgVVJMIHN0cmluZyB0byBiZSBjbGVhbmVkLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd8bnVsbH0gVGhlIGNsZWFuZWQgYW5kIGVuY29kZWQgVVJMIHN0cmluZywgb3IgbnVsbCBpZiBhbiBlcnJvciBvY2N1cnMuXG4gICAqL1xuICBzdGF0aWMgY2xlYW5VcmwoaHJlZjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgaHJlZiA9IGVuY29kZVVSSShocmVmKS5yZXBsYWNlKC8lMjUvZywgJyUnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGhyZWY7XG4gIH1cblxuICBzdGF0aWMgYWRkVHJhaWxpbmdTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybC5lbmRzV2l0aCgnLycpID8gdXJsIDogdXJsICsgJy8nO1xuICB9XG5cbiAgc3RhdGljIGFkZFN0YXJ0aW5nU2xhc2godXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aCgnLycpID8gdXJsIDogJy8nICsgdXJsO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZVN0YXJ0aW5nU2xhc2godXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aCgnLycpID8gdXJsLnN1YnN0cmluZygxKSA6IHVybDtcbiAgfVxuXG4gIHN0YXRpYyBjb25jYXQoYmFzZVBhdGg6IHN0cmluZywgcmVsYXRpdmVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghYmFzZVBhdGgpIHJldHVybiByZWxhdGl2ZVBhdGg7XG4gICAgaWYgKCFyZWxhdGl2ZVBhdGgpIHJldHVybiBiYXNlUGF0aDtcbiAgICByZXR1cm4gdGhpcy5hZGRUcmFpbGluZ1NsYXNoKGJhc2VQYXRoKSArIHRoaXMucmVtb3ZlU3RhcnRpbmdTbGFzaChyZWxhdGl2ZVBhdGgpO1xuICB9XG59XG4iXX0=
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS91cmwudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEQsTUFBTSxPQUFnQixRQUFRO0lBQzVCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFtQjtRQUN0QyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBbUI7UUFDdEMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQW1CO1FBQ3RDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFD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QUFXO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBVztRQUNwQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFnQixFQUFFLFlBQW9CO1FBQ2xELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxZQUFZLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOaWxPckJsYW5rLCBpc05vdE5pbCB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVcmxVdGlscyB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gVVJMIGlzIGEgcmVsYXRpdmUgVVJMLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGhyZWYgLSBUaGUgVVJMIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBVUkwgaXMgcmVsYXRpdmUsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHN0YXRpYyBpc1JlbGF0aXZlVXJsKGhyZWY6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIWhyZWYuc3RhcnRzV2l0aCgnaHR0cDonKSAmJiAhaHJlZi5zdGFydHNXaXRoKCdodHRwczonKSAmJiAhaHJlZi5zdGFydHNXaXRoKCdtYWlsdG86JykgJiYgIWhyZWYuc3RhcnRzV2l0aCgndGVsOicpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBVUkwgaXMgYW4gaW50ZXJuYWwgVVJMLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGhyZWYgLSBUaGUgVVJMIHRvIGJlIGNoZWNrZWQuIENhbiBiZSBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIFVSTCBvciBudWxsLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm5zIHRydWUgaWYgdGhlIFVSTCBpcyBpbnRlcm5hbCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgc3RhdGljIGlzSW50ZXJuYWxVcmwoaHJlZjogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghaHJlZikgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBocmVmLnN0YXJ0c1dpdGgod2luZG93LmxvY2F0aW9uLm9yaWdpbikgfHwgdGhpcy5pc1JlbGF0aXZlVXJsKGhyZWYpO1xuICB9XG5cbiAgc3RhdGljIGlzRXh0ZXJuYWxVcmwoaHJlZjogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghaHJlZikgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhdGhpcy5pc0ludGVybmFsVXJsKGhyZWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBVUkwsIHJldHVybmluZyBvbmx5IHRoZSBiYXNlIFVSTC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgZnJvbSB3aGljaCB0aGUgcXVlcnkgc3RyaW5nIHdpbGwgYmUgc3RyaXBwZWQuXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCB3aXRob3V0IHRoZSBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzdGF0aWMgc3RyaXBRdWVyeSh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF1cmwpIHJldHVybiB1cmw7XG4gICAgcmV0dXJuIC9bXj9dKi8uZXhlYyh1cmwpWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGZyYWdtZW50IGFuZCBxdWVyeSBjb21wb25lbnRzIGZyb20gYSBnaXZlbiBVUkwgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCBzdHJpbmcgdG8gcHJvY2Vzcy5cbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIHdpdGhvdXQgaXRzIGZyYWdtZW50IGFuZCBxdWVyeSBjb21wb25lbnRzLlxuICAgKi9cbiAgc3RhdGljIHN0cmlwRnJhZ21lbnRBbmRRdWVyeSh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF1cmwpIHJldHVybiB1cmw7XG4gICAgcmV0dXJuIHRoaXMuc3RyaXBRdWVyeSgvW14jXSovLmV4ZWModXJsKVswXSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgZnJvbSB0aGUgZ2l2ZW4gVVJMLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZyYWdtZW50LlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmcmFnbWVudCBpZGVudGlmaWVyIG9mIHRoZSBVUkwsIGV4Y2x1ZGluZyB0aGUgJyMnIHN5bWJvbC5cbiAgICovXG4gIHN0YXRpYyBnZXRGcmFnbWVudCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGlzTmlsT3JCbGFuayh1cmwpKSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCBtYXRjaCA9IHVybC5tYXRjaCgvIyguKikkLyk7XG4gICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiAnJztcbiAgfVxuXG4gIHN0YXRpYyByZXNvbHZlUmVsYXRpdmVVcmwoYmFzZVVybDogc3RyaW5nLCByZWxhdGl2ZVBhdGg6IHN0cmluZywgb3B0cz86IHsgYWJzb2x1dGVCeURlZmF1bHQ6IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gICAgaWYgKCFiYXNlVXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nICdiYXNlVXJsJyBhcmd1bWVudFwiKTtcbiAgICBpZiAoIXJlbGF0aXZlUGF0aCkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyAncmVsYXRpdmVQYXRoJyBhcmd1bWVudFwiKTtcbiAgICBpZiAoIXRoaXMuaXNSZWxhdGl2ZVVybChyZWxhdGl2ZVBhdGgpKSB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBiZSBhIHJlbGF0aXZlIHBhdGgnKTtcblxuICAgIC8vIERldGVjdCBhYnNvbHV0ZSBVUkxcbiAgICBpZiAocmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAob3B0cz8uYWJzb2x1dGVCeURlZmF1bHQgJiYgIXJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKCcuJykpKSB7XG4gICAgICBiYXNlVXJsID0gdGhpcy5nZXRSb290VXJsKGJhc2VVcmwpO1xuICAgIH1cblxuICAgIHJldHVybiBVcmxVdGlscy5ub3JtYWxpemVVcmwoVXJsVXRpbHMuY29uY2F0KGJhc2VVcmwsIHJlbGF0aXZlUGF0aCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGEgZ2l2ZW4gVVJMIGJ5IG5vcm1hbGl6aW5nIGl0cyBwYXJ0cywgcmVtb3ZpbmcgdW5uZWNlc3NhcnkgcGF0aCBzZWdtZW50cyBsaWtlIFwiLlwiIGFuZCBcIi4uXCIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIHRvIGJlIHJlc29sdmVkLiBNdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZy5cbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgcmVzb2x2ZWQgYW5kIGNsZWFuZWQgVVJMIHN0cmluZy5cbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwcm92aWRlZCBVUkwgaXMgbWlzc2luZyBvciB1bmRlZmluZWQuXG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXVybCkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyAndXJsJyBhcmd1bWVudFwiKTtcbiAgICByZXR1cm4gdGhpcy5jbGVhblVybCh1cmwpXG4gICAgICAuc3BsaXQoJy8nKVxuICAgICAgLnJlZHVjZSgocmVzLCBwYXJ0KSA9PiB7XG4gICAgICAgIGlmIChwYXJ0ID09PSAnLicpIHJldHVybiByZXM7XG4gICAgICAgIGlmIChwYXJ0ID09PSAnLi4nICYmIHJlcy5sZW5ndGggPiAwKSByZXR1cm4gcmVzLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQocGFydCk7XG4gICAgICB9LCBbXSlcbiAgICAgIC5qb2luKCcvJyk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBjb21wbGV0ZXMgYSBiYXNlIFVSTCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGtleS12YWx1ZSBwYWlyc1xuICAgKiByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYWRkLiBJdCBwcm9wZXJseSBlbmNvZGVzIHRoZVxuICAgKiBwYXJhbWV0ZXJzIGFuZCBlbnN1cmVzIHRoZXkgYXJlIGFkZGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHNlcGFyYXRvciAoJz8nIG9yICcmJykuXG4gICAqIFBhcmFtZXRlcnMgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCB2YWx1ZXMgYXJlIGF1dG9tYXRpY2FsbHkgZmlsdGVyZWQgb3V0LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBJbiBhIHRlbXBsYXRlXG4gICAqIDxhIFtocmVmXT1cIidodHRwczovL2V4YW1wbGUuY29tJyB8IGFwcGVuZFF1ZXJ5UGFyYW1zOntpZDogMTIzLCBuYW1lOiAndGVzdCd9XCI+TGluazwvYT5cbiAgICogLy8gUmVzdWx0OiBodHRwczovL2V4YW1wbGUuY29tP2lkPTEyMyZuYW1lPXRlc3RcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gSWYgdGhlIFVSTCBhbHJlYWR5IGNvbnRhaW5zIHBhcmFtZXRlcnNcbiAgICogPGEgW2hyZWZdPVwiJ2h0dHBzOi8vZXhhbXBsZS5jb20/cGFnZT0xJyB8IGFwcGVuZFF1ZXJ5UGFyYW1zOntzb3J0OiAnYXNjJ31cIj5MaW5rPC9hPlxuICAgKiAvLyBSZXN1bHQ6IGh0dHBzOi8vZXhhbXBsZS5jb20/cGFnZT0xJnNvcnQ9YXNjXG4gICAqXG4gICAqIEBwYXJhbSB1cmxcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zXG4gICAqL1xuICBzdGF0aWMgYXBwZW5kUXVlcnlQYXJhbXModXJsOiBzdHJpbmcgfCBhbnlbXSwgcXVlcnlQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybFN0ciA9IHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnID8gdXJsIDogdGhpcy5hZGRTdGFydGluZ1NsYXNoKHVybC5qb2luKCcvJykpO1xuICAgIGlmIChpc05pbE9yQmxhbmsodXJsU3RyKSB8fCAhcXVlcnlQYXJhbXMpIHJldHVybiB1cmxTdHI7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3QuZW50cmllcyhxdWVyeVBhcmFtcylcbiAgICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IGlzTm90TmlsKHZhbHVlKSlcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKX1gKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgICBpZiAoaXNOaWxPckJsYW5rKHF1ZXJ5U3RyaW5nKSkgcmV0dXJuIHVybFN0cjtcbiAgICByZXR1cm4gdXJsU3RyICsgKHVybFN0ci5pbmNsdWRlcygnPycpID8gJyYnIDogJz8nKSArIHF1ZXJ5U3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGFuZCByZXR1cm5zIHRoZSByb290IFVSTCBmcm9tIHRoZSBnaXZlbiBjb21wbGV0ZSBVUkwgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIGNvbXBsZXRlIFVSTCBzdHJpbmcgZnJvbSB3aGljaCB0aGUgcm9vdCBVUkwgd2lsbCBiZSBleHRyYWN0ZWQuXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHJvb3QgVVJMIGluY2x1ZGluZyB0aGUgcHJvdG9jb2wgYW5kIGhvc3QgKGFuZCBwb3J0IGlmIHByZXNlbnQpLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBwcm92aWRlZCBVUkwgaXMgbWlzc2luZyBvciBpcyBpbiBhbiBpbnZhbGlkIGZvcm1hdC5cbiAgICovXG4gIHN0YXRpYyBnZXRSb290VXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXVybCkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyAndXJsJyBhcmd1bWVudFwiKTtcbiAgICBsZXQgW3Byb3RvY29sLCBwYXRoXSA9IHVybC5zcGxpdCgnLy8nLCAyKTtcbiAgICBpZiAoIXByb3RvY29sIHx8IGlzTmlsT3JCbGFuayhwYXRoKSkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFVSTCBmb3JtYXQ6ICR7dXJsfWApO1xuICAgIGNvbnN0IGhvc3RBbmRQb3J0ID0gcGF0aC5zcGxpdCgnLycsIDIpWzBdO1xuICAgIHJldHVybiBgJHtwcm90b2NvbH0vLyR7aG9zdEFuZFBvcnR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHBhcmVudCBVUkwgb3IgZGlyZWN0b3J5IHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgVVJMLlxuICAgKiBUaGlzIG1ldGhvZCBoYW5kbGVzIGJvdGggcmVsYXRpdmUgYW5kIGFic29sdXRlIFVSTHMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIGZyb20gd2hpY2ggdG8gZGVyaXZlIHRoZSBwYXJlbnQgcGF0aC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgIE11c3QgYmUgYSB2YWxpZCBVUkwgb3IgcmVsYXRpdmUgcGF0aC5cbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgcGFyZW50IFVSTCBvciBkaXJlY3RvcnkgcGF0aC4gVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBpbnB1dCBpcyBpbnZhbGlkLlxuICAgKi9cbiAgc3RhdGljIGdldFBhcmVudCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF1cmwpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgJ3VybCcgYXJndW1lbnRcIik7XG4gICAgY29uc3QgY2xlYW5VcmwgPSB0aGlzLnN0cmlwRnJhZ21lbnRBbmRRdWVyeSh1cmwpO1xuICAgIGlmIChjbGVhblVybC5lbmRzV2l0aCgnLycpKSByZXR1cm4gY2xlYW5Vcmw7IC8vIFNraXAgaWYgYWxyZWFkeSBhIHBhcmVudCBkaXJlY3RvcnlcbiAgICBjb25zdCBwYXJlbnRQYXRoID0gY2xlYW5VcmwgKyAnLycgKyAnLi4nO1xuICAgIGlmICh0aGlzLmlzUmVsYXRpdmVVcmwodXJsKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZVJlbGF0aXZlVXJsKHdpbmRvdy5sb2NhdGlvbi5ocmVmLCBwYXJlbnRQYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplVXJsKHBhcmVudFBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyB0aGUgcHJvdmlkZWQgVVJMIGJ5IGVuY29kaW5nIGl0IHNhZmVseSBhbmQgcmVwbGFjaW5nIHNwZWNpZmljIHBhdHRlcm5zLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaHJlZiAtIFRoZSBVUkwgc3RyaW5nIHRvIGJlIGNsZWFuZWQuXG4gICAqIEByZXR1cm4ge3N0cmluZ3xudWxsfSBUaGUgY2xlYW5lZCBhbmQgZW5jb2RlZCBVUkwgc3RyaW5nLCBvciBudWxsIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAgICovXG4gIHN0YXRpYyBjbGVhblVybChocmVmOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBocmVmID0gZW5jb2RlVVJJKGhyZWYpLnJlcGxhY2UoLyUyNS9nLCAnJScpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaHJlZjtcbiAgfVxuXG4gIHN0YXRpYyBhZGRUcmFpbGluZ1NsYXNoKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLmVuZHNXaXRoKCcvJykgPyB1cmwgOiB1cmwgKyAnLyc7XG4gIH1cblxuICBzdGF0aWMgYWRkU3RhcnRpbmdTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybC5zdGFydHNXaXRoKCcvJykgPyB1cmwgOiAnLycgKyB1cmw7XG4gIH1cblxuICBzdGF0aWMgcmVtb3ZlU3RhcnRpbmdTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybC5zdGFydHNXaXRoKCcvJykgPyB1cmwuc3Vic3RyaW5nKDEpIDogdXJsO1xuICB9XG5cbiAgc3RhdGljIGNvbmNhdChiYXNlUGF0aDogc3RyaW5nLCByZWxhdGl2ZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFiYXNlUGF0aCkgcmV0dXJuIHJlbGF0aXZlUGF0aDtcbiAgICBpZiAoIXJlbGF0aXZlUGF0aCkgcmV0dXJuIGJhc2VQYXRoO1xuICAgIHJldHVybiB0aGlzLmFkZFRyYWlsaW5nU2xhc2goYmFzZVBhdGgpICsgdGhpcy5yZW1vdmVTdGFydGluZ1NsYXNoKHJlbGF0aXZlUGF0aCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -62,5 +62,6 @@ export class Environment {
|
|
|
62
62
|
account;
|
|
63
63
|
entityEditor;
|
|
64
64
|
feed;
|
|
65
|
+
buildDate;
|
|
65
66
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFjLEtBQUssQ0FBQyxDQUFDO0FBRWxFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLElBQUksQ0FBUztJQUNiLE9BQU8sQ0FBUztJQUNoQixVQUFVLENBQVU7SUFFcEIsd0ZBQXdGO0lBQ3hGLHNCQUFzQixDQUFVO0lBQ2hDLE9BQU8sQ0FBUztJQUNoQixpQkFBaUIsQ0FBVTtJQUUzQixXQUFXLENBQVc7SUFFdEIsK0JBQStCO0lBQy9CLElBQUksQ0FBc0Y7SUFFMUYsNkRBQTZEO0lBQzdELFdBQVcsQ0FBc0Y7SUFFakcsa0RBQWtEO0lBQ2xELFlBQVksQ0FBcUU7SUFFakYsc0NBQXNDO0lBQ3RDLGNBQWMsQ0FBVTtJQUV4Qix3RUFBd0U7SUFDeEUsaUJBQWlCLENBQVU7SUFFM0Isb0NBQW9DO0lBQ3BDLHlCQUF5QixDQUFXO0lBRXBDLDBEQUEwRDtJQUMxRCxnQ0FBZ0MsQ0FBVTtJQUUxQyw2QkFBNkI7SUFDN0IsWUFBWSxDQUFXO0lBRXZCLHdDQUF3QztJQUN4QyxPQUFPLENBQVc7SUFFbEIsMEJBQTBCO0lBQzFCLGlCQUFpQixDQUFlO0lBRWhDLGlCQUFpQjtJQUNqQixhQUFhLENBQVM7SUFDdEIsb0JBQW9CLENBQTRCO0lBQ2hELG1CQUFtQixDQUFVO0lBQzdCLGNBQWMsQ0FBVTtJQUN4Qix3QkFBd0IsQ0FBVTtJQUNsQyxvQkFBb0IsQ0FBVTtJQUM5Qix3QkFBd0IsQ0FBVTtJQUVsQyxrQkFBa0I7SUFDbEIsT0FBTyxDQUFXLENBQUMsd0VBQXdFO0lBQzNGLGFBQWEsQ0FBVztJQUN4QixZQUFZLENBQVUsQ0FBQywrQ0FBK0M7SUFDdEUsVUFBVSxDQUFXLENBQUMsb0JBQW9CO0lBRTFDLFVBQVU7SUFDVixPQUFPLENBQWlDO0lBRXhDLFVBQVU7SUFDVixLQUFLLENBQXdCO0lBQzdCLE9BQU8sQ0FBMEI7SUFDakMsbUJBQW1CLENBQVU7SUFFN0IsUUFBUTtJQUNSLFNBQVMsQ0FBVTtJQUNuQixjQUFjLENBQVU7SUFFeEIsUUFBUSxDQUFVLENBQUMsK0RBQStEO0lBQ2xGLE9BQU8sQ0FBVSxDQUFDLCtCQUErQjtJQUNqRCxnQkFBZ0IsQ0FBVSxDQUFDLCtCQUErQjtJQUMxRCxhQUFhLENBQVUsQ0FBQywrQkFBK0I7SUFFdkQsMENBQTBDO0lBQzFDLGdFQUFnRTtJQUNoRSxpQkFBaUIsQ0FJZjtJQUVGLFVBQVU7SUFDVixPQUFPLENBTUw7SUFFRixZQUFZLENBS1Y7SUFFRixJQUFJLENBS0Y7SUFFRixTQUFTLENBQVU7Q0FDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgU3RvcmFnZUNvbmZpZyB9IGZyb20gJ0Bpb25pYy9zdG9yYWdlJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWNoZUNvbmZpZyB9IGZyb20gJ2lvbmljLWNhY2hlL2xpYi9pbnRlcmZhY2VzL2NhY2hlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9nZ2luZ1NlcnZpY2VDb25maWcgfSBmcm9tICcuLi9hcHAvc2hhcmVkL2xvZ2dpbmcvbG9nZ2luZy1zZXJ2aWNlLmNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnZpcm9ubWVudD4oJ0VOVicpO1xuXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgcHJvZHVjdGlvbjogYm9vbGVhbjtcblxuICAvLyBBbiBVUkwgdG8gbG9hZCBleHRlcm5hbCBlbnZpcm9ubWVudCBmaWxlIChlLmcuICdhc3NldHMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50Lmpzb24nXG4gIGV4dGVybmFsRW52aXJvbm1lbnRVcmw/OiBzdHJpbmc7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgY29ubmVjdGlvblRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgc2FtZVVybFBlZXI/OiBib29sZWFuO1xuXG4gIC8vIFRoZSBwZWVyIHRvIHVzZSAoaWYgZGVmaW5lZClcbiAgcGVlcj86IHsgaG9zdDogc3RyaW5nOyBwb3J0OiBudW1iZXI7IHVzZVNzbD86IGJvb2xlYW47IHBhdGg/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbiAgLy8gQSBwZWVyIHRvIHVzZSBhdCBzdGFydHVwICh1c2VmdWwgb24gYSB3ZWIgc2l0ZSBkZXBsb3ltZW50KVxuICBkZWZhdWx0UGVlcj86IHsgaG9zdDogc3RyaW5nOyBwb3J0OiBudW1iZXI7IHVzZVNzbD86IGJvb2xlYW47IHBhdGg/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbiAgLy8gQSBsaXN0IG9mIHBlZXJzLCB0byBzZWxlY3QgYXMgcGVlciwgaW4gc2V0dGluZ3NcbiAgZGVmYXVsdFBlZXJzPzogeyBob3N0OiBzdHJpbmc7IHBvcnQ6IG51bWJlcjsgdXNlU3NsPzogYm9vbGVhbjsgcGF0aD86IHN0cmluZyB9W107XG5cbiAgLy8gTWluIGNvbXBhdGlibGUgdmVyc2lvbiBmb3IgdGhlIHBlZXJcbiAgcGVlck1pblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLy8gRGVmYXVsdCBwZWVyIHByZWZpeCwgd2hlbiBmaXggcGVlciB1cmwgbWFudWFsbHkgKGRlZmF1bHQ6ICdodHRwczovLycpXG4gIHBlZXJEZWZhdWx0UHJlZml4Pzogc3RyaW5nO1xuXG4gIC8vIEFsbG93IHRvIHNlbGVjdCBhIHBlZXIgYnkgZmVhdHVyZVxuICBlbmFibGVTZWxlY3RQZWVyQnlGZWF0dXJlPzogYm9vbGVhbjtcblxuICAvLyBJbnRlcnZhbCB0byBjaGVjayBpZiB3ZWIgcGFnZSBtdXN0IGJlIHJlbG9hZCwgaW4gbWlsbGlzXG4gIGNoZWNrQXBwVmVyc2lvbkludGVydmFsSW5TZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8vIEVuYWJsZSBjYWNoZSBwZXJzaXN0ZW5jZSA/XG4gIHBlcnNpc3RDYWNoZT86IGJvb2xlYW47XG5cbiAgLy8gRm9yY2Ugb2ZmbGluZSBtb2RlID8gLyFcXCBGb3IgREVWIG9ubHlcbiAgb2ZmbGluZT86IGJvb2xlYW47XG5cbiAgLy8gQXBvbGxvIChncmFwaFFMKSBjb25maWdcbiAgYXBvbGxvRmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcblxuICAvLyBEZWZhdWx0IHZhbHVlc1xuICBkZWZhdWx0TG9jYWxlOiBzdHJpbmc7XG4gIGRlZmF1bHRMYXRMb25nRm9ybWF0PzogJ0REJyB8ICdERE1NJyB8ICdERE1NU1MnO1xuICBkZWZhdWx0RGVwYXJ0bWVudElkPzogbnVtYmVyO1xuICBkZWZhdWx0QXBwTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdEFuZHJvaWRJbnN0YWxsVXJsPzogc3RyaW5nO1xuICBkZWZhdWx0SU9TSW5zdGFsbFVybD86IHN0cmluZztcbiAgZGVmYXVsdERlc2t0b3BJbnN0YWxsVXJsPzogc3RyaW5nO1xuXG4gIC8vIFJvdXRlIGFuZCBzdHlsZVxuICB1c2VIYXNoPzogYm9vbGVhbjsgLy8gQ29uZmlndXJlIEFuZ3VsYXIgcm91dGVyIHRvIHVzZSAnIycgaW4gVVJMIChuZWVkIGJ5IHdlYi1leHQgYXJ0aWZhY3QpXG4gIGFsbG93RGFya01vZGU/OiBib29sZWFuO1xuICBkZWZhdWx0Um91dGU/OiBzdHJpbmc7IC8vIENvbmZpZ3VyZSB0aGUgZGVmYXVsdCByb3V0ZSAoJy8nIGJ5IGRlZmF1bHQpXG4gIGVuYWJsZU1lbnU/OiBib29sZWFuOyAvLyBFbmFibGUgYnkgZGVmYXVsdFxuXG4gIC8vIExvZ2dpbmdcbiAgbG9nZ2luZz86IFBhcnRpYWw8TG9nZ2luZ1NlcnZpY2VDb25maWc+O1xuXG4gIC8vIFN0b3JhZ2VcbiAgY2FjaGU/OiBQYXJ0aWFsPENhY2hlQ29uZmlnPjtcbiAgc3RvcmFnZT86IFBhcnRpYWw8U3RvcmFnZUNvbmZpZz47XG4gIHN0b3JhZ2VTYXZlUGVyaW9kTXM/OiBudW1iZXI7XG5cbiAgLy8gQWJvdXRcbiAgc291cmNlVXJsPzogc3RyaW5nO1xuICByZXBvcnRJc3N1ZVVybD86IHN0cmluZztcblxuICBmb3J1bVVybD86IHN0cmluZzsgLy8gVE9ETyBhbGxvdyBhIG1hcCBieSBsb2NhbGUgPyBleDogeyBbbGFuZzogc3RyaW5nXTogc3RyaW5nIH07XG4gIGhlbHBVcmw/OiBzdHJpbmc7IC8vIFRPRE8gYWxsb3cgYSBtYXAgYnkgbG9jYWxlID9cbiAgcHJpdmFjeVBvbGljeVVybD86IHN0cmluZzsgLy8gVE9ETyBhbGxvdyBhIG1hcCBieSBsb2NhbGUgP1xuICB0ZXJtc09mVXNlVXJsPzogc3RyaW5nOyAvLyBUT0RPIGFsbG93IGEgbWFwIGJ5IGxvY2FsZSA/XG5cbiAgLy8gRGVmYXVsdCBhdXRoZW50aWNhdGlvbiAvIVxcIEZvciBERVYgb25seVxuICAvLyAoc2VlIHZhbHVlcyBpbiB0aGUgdGVzdCBkYXRhYmFzZSAtIFhNTCBmaWxlcyBpbiBQb2QncyBtb2R1bGUpXG4gIGRlZmF1bHRBdXRoVmFsdWVzPzoge1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgIHBhc3N3b3JkPzogc3RyaW5nO1xuICAgIHRva2VuPzogc3RyaW5nO1xuICB9O1xuXG4gIC8vIEFjY291bnRcbiAgYWNjb3VudD86IHtcbiAgICBzaG93QWNjb3VudEJ1dHRvbj86IGJvb2xlYW47IC8vIFNob3cgYWNjb3VudCBidXR0b24gaW4gaG9tZSBwYWdlIChpZiB1bmRlZmluZWQgPSB0cnVlKVxuICAgIGVuYWJsZUxpc3RlbkNoYW5nZXM/OiBib29sZWFuO1xuICAgIC8vIElmIHVuZGVmaW5lZCBvciAwLCB0aGVuIGxpc3RlbiBvbmx5IGNoYW5nZXMgbWFkZSBieSB0aGUgcG9kXG4gICAgLy8gSWYgZ3JlYXRlciB0aGFuIDAgOiB3aWxsIGNoZWNrIGNvbmN1cnJlbnQgY2hhbmdlcyBpbiB0aGUgREIgKGUuZy4gY2hhbmdlcyBtZGUgYnkgYW5vdGhlciBzb2Z0d2FyZSkgQU5EIGNoYW5nZXMgbWFkZSB0aGUgcG9kXG4gICAgbGlzdGVuSW50ZXJ2YWxJblNlY29uZHM/OiBudW1iZXI7XG4gIH07XG5cbiAgZW50aXR5RWRpdG9yPzoge1xuICAgIGVuYWJsZUxpc3RlbkNoYW5nZXM/OiBib29sZWFuO1xuICAgIC8vIElmIHVuZGVmaW5lZCBvciAwLCB0aGVuIGxpc3RlbiBvbmx5IGNoYW5nZXMgbWFkZSBieSB0aGUgcG9kXG4gICAgLy8gSWYgZ3JlYXRlciB0aGFuIDAgOiB3aWxsIGNoZWNrIGNvbmN1cnJlbnQgY2hhbmdlcyBpbiB0aGUgREIgKGUuZy4gY2hhbmdlcyBtZGUgYnkgYW5vdGhlciBzb2Z0d2FyZSkgQU5EIGNoYW5nZXMgbWFkZSB0aGUgcG9kXG4gICAgbGlzdGVuSW50ZXJ2YWxJblNlY29uZHM/OiBudW1iZXI7XG4gIH07XG5cbiAgZmVlZD86IHtcbiAgICBqc29uRmVlZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuICAgIG1heENvbnRlbnRMZW5ndGg6IG51bWJlcjtcbiAgICBtYXhBZ2VJbk1vbnRoczogbnVtYmVyO1xuICAgIG1heENvdW50OiBudW1iZXI7XG4gIH07XG5cbiAgYnVpbGREYXRlPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -120,5 +120,6 @@ export const environment = Object.freeze({
|
|
|
120
120
|
maxAgeInMonths: -1,
|
|
121
121
|
maxCount: 3,
|
|
122
122
|
},
|
|
123
|
+
buildDate: new Date().toISOString(),
|
|
123
124
|
});
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdyRTs7Ozs7R0FLRztBQUNILHNDQUFzQztBQUV0QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxNQUFNLENBQWM7SUFDakUsSUFBSSxFQUFFLDZCQUE2QixFQUFFLGtDQUFrQztJQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLGtDQUFrQztJQUVsRCxvRUFBb0U7SUFDcEUsVUFBVSxFQUFFLElBQUk7SUFFaEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixPQUFPLEVBQUUsR0FBRztJQUNaLGFBQWEsRUFBRSxJQUFJO0lBQ25CLG9CQUFvQixFQUFFLE1BQU07SUFDNUIsaUJBQWlCLEVBQUUsYUFBYTtJQUNoQyxPQUFPLEVBQUUsS0FBSztJQUNkLGFBQWEsRUFBRSxJQUFJO0lBRW5CLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFFbkIsc0JBQXNCO0lBQ3RCLFlBQVksRUFBRSxLQUFLO0lBRW5CLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFFaEIsY0FBYyxFQUFFLE9BQU87SUFFdkIseUJBQXlCLEVBQUUsSUFBSTtJQUUvQixXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsSUFBSTtLQUNYO0lBRUQsWUFBWSxFQUFFO1FBQ1o7WUFDRSxJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsSUFBSTtTQUNYO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsSUFBSTtTQUNYO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsY0FBYztZQUNwQixJQUFJLEVBQUUsSUFBSTtTQUNYO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsY0FBYztZQUNwQixJQUFJLEVBQUUsSUFBSTtTQUNYO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsY0FBYztZQUNwQixJQUFJLEVBQUUsSUFBSTtTQUNYO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsZUFBZTtZQUNyQixJQUFJLEVBQUUsSUFBSTtTQUNYO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsWUFBWTtZQUNsQixJQUFJLEVBQUUsR0FBRztTQUNWO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLElBQUksRUFBRSxHQUFHO1NBQ1Y7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsSUFBSSxFQUFFLEdBQUc7U0FDVjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixJQUFJLEVBQUUsR0FBRztTQUNWO0tBQ0Y7SUFDRCxjQUFjLEVBQUUsU0FBUztJQUN6Qix3QkFBd0IsRUFBRSwrREFBK0Q7SUFDekYsb0JBQW9CLEVBQUUsb0RBQW9EO0lBQzFFLHdCQUF3QixFQUFFLHFFQUFxRTtJQUUvRixVQUFVO0lBQ1YsT0FBTyxFQUFFO1FBQ1AsV0FBVyxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLFlBQVksQ0FBQztLQUNwSDtJQUVELFFBQVE7SUFDUixTQUFTLEVBQUUscUVBQXFFO0lBQ2hGLGNBQWMsRUFBRSw4RUFBOEU7SUFDOUYsUUFBUSxFQUFFLElBQUksRUFBRSw4QkFBOEI7SUFDOUMsT0FBTyxFQUFFLGdHQUFnRztJQUN6RyxnQkFBZ0IsRUFBRSxnR0FBZ0c7SUFDbEgsYUFBYSxFQUFFLDZHQUE2RztJQUU1SCxjQUFjO0lBQ2QsaUJBQWlCLEVBQUU7UUFDakIsbUNBQW1DO1FBQ25DLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsUUFBUSxFQUFFLE9BQU87S0FDbEI7SUFFRCxPQUFPLEVBQUU7UUFDUCxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLHVCQUF1QixFQUFFLEVBQUU7S0FDNUI7SUFFRCxZQUFZLEVBQUU7UUFDWixtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLHVCQUF1QixFQUFFLEVBQUU7S0FDNUI7SUFFRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUU7WUFDUixFQUFFLEVBQUU7Z0JBQ0Ysd0dBQXdHO2dCQUN4RyxnREFBZ0Q7Z0JBQ2hELGtGQUFrRjtnQkFDbEYsK0JBQStCO2dCQUMvQix5RkFBeUY7YUFDMUY7WUFFRCxFQUFFLEVBQUUsQ0FBQyx3R0FBd0csQ0FBQztTQUMvRztRQUNELGdCQUFnQixFQUFFLElBQUk7UUFDdEIsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNsQixRQUFRLEVBQUUsQ0FBQztLQUNaO0lBRUQsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO0NBQ3BDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBjYW4gYmUgcmVwbGFjZWQgZHVyaW5nIGJ1aWxkIGJ5IHVzaW5nIHRoZSBgZmlsZVJlcGxhY2VtZW50c2AgYXJyYXkuXG4vLyBgbmcgYnVpbGQgLS0tcHJvZGAgcmVwbGFjZXMgYGVudmlyb25tZW50LnRzYCB3aXRoIGBlbnZpcm9ubWVudC5wcm9kLnRzYC5cbi8vIFRoZSBsaXN0IG9mIGZpbGUgcmVwbGFjZW1lbnRzIGNhbiBiZSBmb3VuZCBpbiBgYW5ndWxhci5qc29uYC5cbmltcG9ydCB7IFN0b3JhZ2VEcml2ZXJzIH0gZnJvbSAnLi4vYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UudXRpbHMnO1xuXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnQuY2xhc3MnO1xuLypcbiAqIEluIGRldmVsb3BtZW50IG1vZGUsIHRvIGlnbm9yZSB6b25lIHJlbGF0ZWQgZXJyb3Igc3RhY2sgZnJhbWVzIHN1Y2ggYXNcbiAqIGB6b25lLnJ1bmAsIGB6b25lRGVsZWdhdGUuaW52b2tlVGFza2AgZm9yIGVhc2llciBkZWJ1Z2dpbmcsIHlvdSBjYW5cbiAqIGltcG9ydCB0aGUgZm9sbG93aW5nIGZpbGUsIGJ1dCBwbGVhc2UgY29tbWVudCBpdCBvdXQgaW4gcHJvZHVjdGlvbiBtb2RlXG4gKiBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBwZXJmb3JtYW5jZSBpbXBhY3Qgd2hlbiB0aHJvdyBlcnJvclxuICovXG4vL2ltcG9ydCAnem9uZS5qcy9wbHVnaW5zL3pvbmUtZXJyb3InO1xuXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gT2JqZWN0LmZyZWV6ZSg8RW52aXJvbm1lbnQ+e1xuICBuYW1lOiAnQHN1bWFyaXMtbmV0L25neC1jb21wb25lbnRzJywgLy8gb3ZlcnJpZGRlbiBieSBFTlZJUk9OTUVOVCB0b2tlblxuICB2ZXJzaW9uOiAnMS4wJywgLy8gb3ZlcnJpZGRlbiBieSBFTlZJUk9OTUVOVCB0b2tlblxuXG4gIC8vIERvIE5PVCBzZXQgdG8gZmFsc2UgLSBiZWNhdXNlIHRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIGJ5IHJlbGVhc2VzXG4gIHByb2R1Y3Rpb246IHRydWUsXG5cbiAgLy8gRG8gTk9UIHNldCAtIGJlY2F1c2UgdGhpcyB2YWx1ZSB3aWxsIGJlIHVzZWQgYnkgcmVsZWFzZXNcbiAgLy9leHRlcm5hbEVudmlyb25tZW50VXJsOiBudWxsLFxuXG4gIGJhc2VVcmw6ICcvJyxcbiAgZGVmYXVsdExvY2FsZTogJ2ZyJyxcbiAgZGVmYXVsdExhdExvbmdGb3JtYXQ6ICdERE1NJyxcbiAgYXBvbGxvRmV0Y2hQb2xpY3k6ICdjYWNoZS1maXJzdCcsXG4gIHVzZUhhc2g6IGZhbHNlLFxuICBhbGxvd0RhcmtNb2RlOiB0cnVlLFxuXG4gIC8vZGVmYXVsdFJvdXRlOiAnL2hvbWUnLFxuICAvL2VuYWJsZU1lbnU6IHRydWUsXG5cbiAgLy8gRklYTUU6IGVuYWJsZSBjYWNoZVxuICBwZXJzaXN0Q2FjaGU6IGZhbHNlLFxuXG4gIC8vIFRPRE86IG1ha2UgdGhpcyB3b3Jrc1xuICAvL29mZmxpbmU6IHRydWUsXG5cbiAgcGVlck1pblZlcnNpb246ICcxLjguMCcsXG5cbiAgZW5hYmxlU2VsZWN0UGVlckJ5RmVhdHVyZTogdHJ1ZSxcblxuICBkZWZhdWx0UGVlcjoge1xuICAgIGhvc3Q6ICdsb2NhbGhvc3QnLFxuICAgIHBvcnQ6IDgwODEsXG4gIH0sXG5cbiAgZGVmYXVsdFBlZXJzOiBbXG4gICAge1xuICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICBwb3J0OiA4MDgxLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC40NScsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4yNCcsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4yOScsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4xMDcnLFxuICAgICAgcG9ydDogODA4MCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdzaWguc2ZhLnNjJyxcbiAgICAgIHBvcnQ6IDQ0MyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICd0ZXN0LnN1bWFyaXMubmV0JyxcbiAgICAgIHBvcnQ6IDQ0MyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdvcGVuLnN1bWFyaXMubmV0JyxcbiAgICAgIHBvcnQ6IDQ0MyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdzZXJ2ZXIuZS1pcy5wcm8nLFxuICAgICAgcG9ydDogNDQzLFxuICAgIH0sXG4gIF0sXG4gIGRlZmF1bHRBcHBOYW1lOiAnU1VNQVJpUycsXG4gIGRlZmF1bHRBbmRyb2lkSW5zdGFsbFVybDogJ2h0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1uZXQuc3VtYXJpcy5hcHAnLFxuICBkZWZhdWx0SU9TSW5zdGFsbFVybDogJ2h0dHBzOi8vYXBwcy5hcHBsZS5jb20vdXMvYXBwL3N1bWFyaXMvaWQ2NzM2NzQ3NTIzJyxcbiAgZGVmYXVsdERlc2t0b3BJbnN0YWxsVXJsOiAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvc3VtYXJpcy1hcHAvLS9yZWxlYXNlcycsXG5cbiAgLy8gU3RvcmFnZVxuICBzdG9yYWdlOiB7XG4gICAgZHJpdmVyT3JkZXI6IFtTdG9yYWdlRHJpdmVycy5TUUxMaXRlLCBTdG9yYWdlRHJpdmVycy5JbmRleGVkREIsIFN0b3JhZ2VEcml2ZXJzLldlYlNRTCwgU3RvcmFnZURyaXZlcnMuTG9jYWxTdG9yYWdlXSxcbiAgfSxcblxuICAvLyBBYm91dFxuICBzb3VyY2VVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9uZ3gtc3VtYXJpcy1jb21wb25lbnRzJyxcbiAgcmVwb3J0SXNzdWVVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9uZ3gtc3VtYXJpcy1jb21wb25lbnRzLy0vaXNzdWVzJyxcbiAgZm9ydW1Vcmw6IG51bGwsIC8vJ2h0dHBzOi8vZm9ydW0uc3VtYXJpcy5uZXQnLFxuICBoZWxwVXJsOiAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvc3VtYXJpcy1kb2MvLS9ibG9iL21hc3Rlci91c2VyLW1hbnVhbC9pbmRleF9mci5tZCcsXG4gIHByaXZhY3lQb2xpY3lVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9zdW1hcmlzLWFwcC8tL3Jhdy9tYXN0ZXIvZG9jL3ByaXZhY3lfcG9saWN5X2ZyLm1kJyxcbiAgdGVybXNPZlVzZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL3N1bWFyaXMtYXBwLy0vcmF3L21hc3Rlci9kb2MvdGVybXNfb2ZfdXNlX2ZyLm1kP3JlZl90eXBlPWhlYWRzJyxcblxuICAvLyBEZXZlbG9wbWVudFxuICBkZWZhdWx0QXV0aFZhbHVlczoge1xuICAgIC8vIFRva2VuIGF1dGggKHVzaW5nIFBlcnNvbi5wdWJrZXkpXG4gICAgdXNlcm5hbWU6ICdhZG1pbkBzdW1hcmlzLm5ldCcsXG4gICAgcGFzc3dvcmQ6ICdhZG1pbicsXG4gIH0sXG5cbiAgYWNjb3VudDoge1xuICAgIGVuYWJsZUxpc3RlbkNoYW5nZXM6IHRydWUsXG4gICAgbGlzdGVuSW50ZXJ2YWxJblNlY29uZHM6IDYwLFxuICB9LFxuXG4gIGVudGl0eUVkaXRvcjoge1xuICAgIGVuYWJsZUxpc3RlbkNoYW5nZXM6IHRydWUsXG4gICAgbGlzdGVuSW50ZXJ2YWxJblNlY29uZHM6IDYwLFxuICB9LFxuXG4gIGZlZWQ6IHtcbiAgICBqc29uRmVlZDoge1xuICAgICAgZnI6IFtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMvLS9yYXcvbWFzdGVyL2RvYy9mZWVkL2ZlZWQtZnIuanNvbicsXG4gICAgICAgIC8vIEV4YW1wbGUgd2l0aCBKc29uRmVlZCB2ZXJzaW9uIDEgKGFuZCBub3QgMS4xKVxuICAgICAgICAvLydodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZHVuaXRlci9jZXNpdW0vbWFzdGVyL2RvYy9mZWVkL2ZlZWQtZnIuanNvbicsXG4gICAgICAgIC8vIEV4YW1wbGUgd2l0aCBkaXNjb3Vyc2UgQVBJIDpcbiAgICAgICAgLy8naHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2R1bml0ZXIvY2VzaXVtL21hc3Rlci9kb2MvZmVlZC8xLjEvZmVlZC1mci1GUi5qc29uJyxcbiAgICAgIF0sXG5cbiAgICAgIGVuOiBbJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMvLS9yYXcvbWFzdGVyL2RvYy9mZWVkL2ZlZWQtZW4uanNvbiddLFxuICAgIH0sXG4gICAgbWF4Q29udGVudExlbmd0aDogMTAwMCxcbiAgICBtYXhBZ2VJbk1vbnRoczogLTEsXG4gICAgbWF4Q291bnQ6IDMsXG4gIH0sXG5cbiAgYnVpbGREYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG59KTtcbiJdfQ==
|
|
@@ -221,6 +221,7 @@ class Environment {
|
|
|
221
221
|
account;
|
|
222
222
|
entityEditor;
|
|
223
223
|
feed;
|
|
224
|
+
buildDate;
|
|
224
225
|
}
|
|
225
226
|
|
|
226
227
|
const DATE_ISO_PATTERN = 'YYYY-MM-DDTHH:mm:ss.SSSZ';
|
|
@@ -5723,6 +5724,8 @@ class UrlUtils {
|
|
|
5723
5724
|
* @return {string} The URL without the query string.
|
|
5724
5725
|
*/
|
|
5725
5726
|
static stripQuery(url) {
|
|
5727
|
+
if (!url)
|
|
5728
|
+
return url;
|
|
5726
5729
|
return /[^?]*/.exec(url)[0];
|
|
5727
5730
|
}
|
|
5728
5731
|
/**
|
|
@@ -13091,6 +13094,7 @@ const environment = Object.freeze({
|
|
|
13091
13094
|
maxAgeInMonths: -1,
|
|
13092
13095
|
maxCount: 3,
|
|
13093
13096
|
},
|
|
13097
|
+
buildDate: new Date().toISOString(),
|
|
13094
13098
|
});
|
|
13095
13099
|
|
|
13096
13100
|
class EntityClasses {
|
|
@@ -13891,12 +13895,15 @@ class LocalSettingsService extends StartableService {
|
|
|
13891
13895
|
if (smallTagIndex !== -1) {
|
|
13892
13896
|
page.title = page.title.substring(smallTagIndex + '</small>'.length);
|
|
13893
13897
|
}
|
|
13894
|
-
|
|
13895
|
-
|
|
13898
|
+
page.title = page.title
|
|
13899
|
+
// Remove class="..." HTML attribute
|
|
13900
|
+
.replace(/\s*class=['"][^'"]+['"]'/g, '')
|
|
13901
|
+
// trim
|
|
13902
|
+
.trim();
|
|
13896
13903
|
}
|
|
13897
13904
|
// Remove query params
|
|
13898
13905
|
if (!opts || opts.removePathQueryParams !== false) {
|
|
13899
|
-
page.path = page.path
|
|
13906
|
+
page.path = UrlUtils.stripQuery(page.path);
|
|
13900
13907
|
}
|
|
13901
13908
|
return page;
|
|
13902
13909
|
}
|
|
@@ -29747,9 +29754,13 @@ class AboutModal {
|
|
|
29747
29754
|
translate;
|
|
29748
29755
|
modalController;
|
|
29749
29756
|
configService;
|
|
29757
|
+
networkService;
|
|
29758
|
+
cd;
|
|
29750
29759
|
environment;
|
|
29751
29760
|
developers;
|
|
29752
29761
|
partners;
|
|
29762
|
+
_subscription = new Subscription();
|
|
29763
|
+
_logPrefix = '[about] ';
|
|
29753
29764
|
name;
|
|
29754
29765
|
version;
|
|
29755
29766
|
sourceUrl;
|
|
@@ -29757,27 +29768,38 @@ class AboutModal {
|
|
|
29757
29768
|
reportIssueUrl;
|
|
29758
29769
|
forumUrl;
|
|
29759
29770
|
helpUrl;
|
|
29760
|
-
|
|
29761
|
-
|
|
29771
|
+
showVersionDetails = false;
|
|
29772
|
+
nodeInfo;
|
|
29773
|
+
buildDate;
|
|
29774
|
+
get allowVersionDetails() {
|
|
29775
|
+
return !!this.buildDate || !!this.nodeInfo?.softwareVersion;
|
|
29776
|
+
}
|
|
29777
|
+
constructor(translate, modalController, configService, networkService, cd, environment, developers, partners) {
|
|
29762
29778
|
this.translate = translate;
|
|
29763
29779
|
this.modalController = modalController;
|
|
29764
29780
|
this.configService = configService;
|
|
29781
|
+
this.networkService = networkService;
|
|
29782
|
+
this.cd = cd;
|
|
29765
29783
|
this.environment = environment;
|
|
29766
29784
|
this.developers = developers;
|
|
29767
29785
|
this.partners = partners;
|
|
29768
29786
|
this.name = translate.instant('APP_NAME');
|
|
29769
29787
|
if (this.name === 'APP_NAME') {
|
|
29770
|
-
// Not translated: use name from the
|
|
29771
|
-
this.name = (environment
|
|
29772
|
-
}
|
|
29773
|
-
this.version = environment
|
|
29774
|
-
this.sourceUrl = environment
|
|
29775
|
-
this.reportIssueUrl = environment
|
|
29776
|
-
this.forumUrl = environment
|
|
29777
|
-
this.helpUrl = environment
|
|
29788
|
+
// Not translated: use name from the environment
|
|
29789
|
+
this.name = (environment?.name && capitalizeFirstLetter(environment.name)) || undefined;
|
|
29790
|
+
}
|
|
29791
|
+
this.version = environment?.version;
|
|
29792
|
+
this.sourceUrl = environment?.sourceUrl;
|
|
29793
|
+
this.reportIssueUrl = environment?.reportIssueUrl;
|
|
29794
|
+
this.forumUrl = environment?.forumUrl;
|
|
29795
|
+
this.helpUrl = environment?.helpUrl;
|
|
29778
29796
|
this.config$ = configService.config;
|
|
29779
29797
|
this._subscription.add(this.config$.subscribe((config) => this.setConfig(config)));
|
|
29780
29798
|
}
|
|
29799
|
+
ngOnInit() {
|
|
29800
|
+
// Load node info
|
|
29801
|
+
this.loadNodeInfo();
|
|
29802
|
+
}
|
|
29781
29803
|
ngOnDestroy() {
|
|
29782
29804
|
this._subscription.unsubscribe();
|
|
29783
29805
|
}
|
|
@@ -29789,14 +29811,30 @@ class AboutModal {
|
|
|
29789
29811
|
this.forumUrl = config?.getProperty(CORE_CONFIG_OPTIONS.FORUM_URL) || this.environment.forumUrl;
|
|
29790
29812
|
this.helpUrl = config?.getProperty(CORE_CONFIG_OPTIONS.HELP_URL) || this.environment.helpUrl;
|
|
29791
29813
|
this.reportIssueUrl = config?.getProperty(CORE_CONFIG_OPTIONS.REPORT_ISSUE_URL) || this.environment.reportIssueUrl;
|
|
29814
|
+
this.buildDate = this.environment.buildDate || new Date().toISOString();
|
|
29815
|
+
}
|
|
29816
|
+
async loadNodeInfo() {
|
|
29817
|
+
this.nodeInfo = await this.getNodeInfo();
|
|
29818
|
+
this.cd.markForCheck();
|
|
29819
|
+
}
|
|
29820
|
+
async getNodeInfo() {
|
|
29821
|
+
if (this.networkService.offline)
|
|
29822
|
+
return null; // Skip if offline
|
|
29823
|
+
try {
|
|
29824
|
+
return await this.networkService.getNodeInfo();
|
|
29825
|
+
}
|
|
29826
|
+
catch (error) {
|
|
29827
|
+
console.error(`${this._logPrefix} Error while loading node info`, error);
|
|
29828
|
+
return null;
|
|
29829
|
+
}
|
|
29792
29830
|
}
|
|
29793
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AboutModal, deps: [{ token: i1$1.TranslateService }, { token: i2$1.ModalController }, { token: ConfigService }, { token: ENVIRONMENT, optional: true }, { token: APP_ABOUT_DEVELOPERS, optional: true }, { token: APP_ABOUT_PARTNERS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
29794
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AboutModal, selector: "app-about-modal", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>\n {{ 'ABOUT.TITLE' | translate }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"close()\" visible-xs visible-sm visible-mobile>\n {{ 'COMMON.BTN_CLOSE' | translate }}\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-list lines=\"none\">\n <!-- Peer info -->\n @if (config$ | async; as config) {\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n <b>{{ config.label | capitalize }}</b>\n @if (config.name) {\n -\n <span [innerHTML]=\"config.name\"></span>\n }\n </h2>\n\n @if (config.description) {\n <p>\n <markdown [data]=\"config.description\" emoji></markdown>\n </p>\n }\n </ion-label>\n </ion-item>\n }\n\n <!-- Version info -->\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n <small *ngIf=\"name\">{{ 'ABOUT.POWERED_BY' | translate }}</small>\n {{ name }}\n <span *ngIf=\"version\" [innerHTML]=\"'ABOUT.VERSION' | translate: { version: version }\"></span>\n </h2>\n <p [innerHTML]=\"'ABOUT.LICENSE' | translate\"></p>\n </ion-label>\n </ion-item>\n\n <!-- Help -->\n <ion-item *ngIf=\"forumUrl || helpUrl\">\n <mat-icon slot=\"start\">help_outline</mat-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.HELP' | translate }}\n </p>\n <p>\n <ion-button fill=\"solid\" color=\"accent\" href=\"{{ helpUrl }}\" target=\"help\" size=\"default\">\n <mat-icon slot=\"start\">description</mat-icon>\n <ion-text translate>ABOUT.USER_MANUAL</ion-text>\n </ion-button>\n <ion-button fill=\"solid\" color=\"secondary\" href=\"{{ forumUrl }}\" target=\"forum\" size=\"default\">\n <ion-icon slot=\"start\" name=\"chatbubbles\"></ion-icon>\n <ion-text translate>ABOUT.FORUM</ion-text>\n </ion-button>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Report issue -->\n <ion-item *ngIf=\"reportIssueUrl\">\n <ion-icon slot=\"start\" name=\"bug\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.REPORT_ISSUE' | translate }}\n </p>\n <p>\n <a color=\"primary\" href=\"{{ reportIssueUrl }}\" target=\"_system\" translate>ABOUT.BTN_REPORT_ISSUE</a>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Source code -->\n <ion-item *ngIf=\"sourceUrl\">\n <ion-icon slot=\"start\" name=\"code\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.SOURCE_CODE' | translate }}\n </p>\n <p>\n <a color=\"primary\" href=\"{{ sourceUrl }}\" target=\"_system\">{{ sourceUrl }}</a>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Developers -->\n <ion-item *ngIf=\"developers | isNotEmptyArray\">\n <ion-icon slot=\"start\" name=\"people\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.DEVELOPED_BY' | translate }}\n </p>\n <ion-list lines=\"none\">\n <ion-item *ngFor=\"let item of developers\" class=\"ion-no-padding\">\n <ion-label>\n <p>\n <a color=\"primary\" href=\"{{ item.siteUrl }}\" target=\"_system\">{{ item.name || item.label }}</a>\n </p>\n </ion-label>\n <ion-img slot=\"end\" [src]=\"item.logo\" />\n </ion-item>\n </ion-list>\n </ion-label>\n </ion-item>\n\n <!-- Partners -->\n <ion-item class=\"item-partners\" *ngIf=\"partners | isNotEmptyArray\">\n <ion-icon slot=\"start\" name=\"megaphone\" color=\"dark\"></ion-icon>\n <ion-text>\n <p>{{ 'ABOUT.PARTNERS' | translate }}</p>\n <p>\n <a *ngFor=\"let item of partners\" href=\"{{ item.siteUrl }}\" class=\"partners\" target=\"_system\">\n <img *ngIf=\"item.logo; else partnerName\" [src]=\"item.logo\" [alt]=\"item.label\" />\n <ng-template #partnerName>\n <ion-text>{{ item.label }}</ion-text>\n </ng-template>\n </a>\n </p>\n </ion-text>\n </ion-item>\n </ion-list>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\">{{ 'COMMON.BTN_CLOSE' | translate }}</ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: [".item-partners ion-text{height:auto}.item-partners ion-text p:last-child{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:space-between}.item-partners ion-text p:last-child a{padding:2px}.item-partners ion-text p:last-child a img{text-align:center;display:inline-block;max-height:40px!important}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2$1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2$1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2$1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2$1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i2$1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2$1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2$1.IonRow, selector: "ion-row" }, { kind: "component", type: i2$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4$2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "component", type: i6$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NotEmptyArrayPipe, name: "isNotEmptyArray" }, { kind: "pipe", type: CapitalizePipe, name: "capitalize" }] });
|
|
29831
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AboutModal, deps: [{ token: i1$1.TranslateService }, { token: i2$1.ModalController }, { token: ConfigService }, { token: NetworkService }, { token: i0.ChangeDetectorRef }, { token: ENVIRONMENT, optional: true }, { token: APP_ABOUT_DEVELOPERS, optional: true }, { token: APP_ABOUT_PARTNERS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
29832
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AboutModal, selector: "app-about-modal", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>\n {{ 'ABOUT.TITLE' | translate }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"close()\" visible-xs visible-sm visible-mobile>\n {{ 'COMMON.BTN_CLOSE' | translate }}\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-list lines=\"none\">\n <!-- Peer info -->\n @if (config$ | async; as config) {\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n <b>{{ config.label | capitalize }}</b>\n @if (config.name) {\n -\n <span [innerHTML]=\"config.name\"></span>\n }\n </h2>\n\n @if (config.description) {\n <p>\n <markdown [data]=\"config.description\" emoji></markdown>\n </p>\n }\n </ion-label>\n </ion-item>\n }\n\n <!-- Version info -->\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n @if (name) {\n <small>{{ 'ABOUT.POWERED_BY' | translate }}</small>\n {{ name }}\n }\n @if (version) {\n <span [innerHTML]=\"'ABOUT.VERSION' | translate: { version: version }\"></span>\n }\n @if(allowVersionDetails) {\n \n <small>\n <a (click)=\"showVersionDetails=!showVersionDetails\" tappable>\n {{'COMMON.BTN_SHOW_MORE' | translate}}\n <ion-icon [name]=\"!showVersionDetails ? 'chevron-down' : 'chevron-up'\"></ion-icon>\n </a>\n </small>\n }\n </h2>\n\n <!-- version details -->\n @if (showVersionDetails) {\n <p class=\"version-details\">\n <!-- App version -->\n @if (buildDate) {\n <small>\n <ion-icon name=\"logo-angular\"></ion-icon>\n <span [innerHTML]=\"'ABOUT.APP_VERSION' | translate: { version: version }\"></span>\n \n <ion-icon name=\"time-outline\"></ion-icon>\n {{ buildDate | dateFormat: { time: true, seconds: false } }}\n </small>\n <br/>\n }\n <!-- Pod version -->\n @if (nodeInfo?.softwareVersion && nodeInfo.buildDate) {\n <small>\n <ion-icon name=\"server\"></ion-icon>\n <span [innerHTML]=\"'ABOUT.POD_VERSION' | translate: { version: nodeInfo.softwareVersion }\"></span>\n \n <ion-icon name=\"time-outline\"></ion-icon>\n {{ nodeInfo.buildDate | dateFormat: { time: true, seconds: false } }}\n </small>\n }\n </p>\n }\n\n <!-- license-->\n <p [innerHTML]=\"'ABOUT.LICENSE' | translate\"></p>\n </ion-label>\n </ion-item>\n\n <!-- Help -->\n <ion-item *ngIf=\"forumUrl || helpUrl\">\n <mat-icon slot=\"start\">help_outline</mat-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.HELP' | translate }}\n </p>\n <p>\n <ion-button fill=\"solid\" color=\"accent\" href=\"{{ helpUrl }}\" target=\"help\" size=\"default\">\n <mat-icon slot=\"start\">description</mat-icon>\n <ion-text translate>ABOUT.USER_MANUAL</ion-text>\n </ion-button>\n <ion-button fill=\"solid\" color=\"secondary\" href=\"{{ forumUrl }}\" target=\"forum\" size=\"default\">\n <ion-icon slot=\"start\" name=\"chatbubbles\"></ion-icon>\n <ion-text translate>ABOUT.FORUM</ion-text>\n </ion-button>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Report issue -->\n <ion-item *ngIf=\"reportIssueUrl\">\n <ion-icon slot=\"start\" name=\"bug\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.REPORT_ISSUE' | translate }}\n </p>\n <p>\n <a color=\"primary\" href=\"{{ reportIssueUrl }}\" target=\"_system\" translate>ABOUT.BTN_REPORT_ISSUE</a>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Source code -->\n <ion-item *ngIf=\"sourceUrl\">\n <ion-icon slot=\"start\" name=\"code\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.SOURCE_CODE' | translate }}\n </p>\n <p>\n <a color=\"primary\" href=\"{{ sourceUrl }}\" target=\"_system\">{{ sourceUrl }}</a>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Developers -->\n <ion-item *ngIf=\"developers | isNotEmptyArray\">\n <ion-icon slot=\"start\" name=\"people\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.DEVELOPED_BY' | translate }}\n </p>\n <ion-list lines=\"none\">\n <ion-item *ngFor=\"let item of developers\" class=\"ion-no-padding\">\n <ion-label>\n <p>\n <a color=\"primary\" href=\"{{ item.siteUrl }}\" target=\"_system\">{{ item.name || item.label }}</a>\n </p>\n </ion-label>\n <ion-img slot=\"end\" [src]=\"item.logo\" />\n </ion-item>\n </ion-list>\n </ion-label>\n </ion-item>\n\n <!-- Partners -->\n <ion-item class=\"item-partners\" *ngIf=\"partners | isNotEmptyArray\">\n <ion-icon slot=\"start\" name=\"megaphone\" color=\"dark\"></ion-icon>\n <ion-text>\n <p>{{ 'ABOUT.PARTNERS' | translate }}</p>\n <p>\n <a *ngFor=\"let item of partners\" href=\"{{ item.siteUrl }}\" class=\"partners\" target=\"_system\">\n <img *ngIf=\"item.logo; else partnerName\" [src]=\"item.logo\" [alt]=\"item.label\" />\n <ng-template #partnerName>\n <ion-text>{{ item.label }}</ion-text>\n </ng-template>\n </a>\n </p>\n </ion-text>\n </ion-item>\n </ion-list>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\">{{ 'COMMON.BTN_CLOSE' | translate }}</ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: [".item-partners ion-text{height:auto}.item-partners ion-text p:last-child{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:space-between}.item-partners ion-text p:last-child a{padding:2px}.item-partners ion-text p:last-child a img{text-align:center;display:inline-block;max-height:40px!important}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2$1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2$1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2$1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2$1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i2$1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2$1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2$1.IonRow, selector: "ion-row" }, { kind: "component", type: i2$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4$2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "component", type: i6$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: NotEmptyArrayPipe, name: "isNotEmptyArray" }, { kind: "pipe", type: CapitalizePipe, name: "capitalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29795
29833
|
}
|
|
29796
29834
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AboutModal, decorators: [{
|
|
29797
29835
|
type: Component,
|
|
29798
|
-
args: [{ selector: 'app-about-modal', template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>\n {{ 'ABOUT.TITLE' | translate }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"close()\" visible-xs visible-sm visible-mobile>\n {{ 'COMMON.BTN_CLOSE' | translate }}\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-list lines=\"none\">\n <!-- Peer info -->\n @if (config$ | async; as config) {\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n <b>{{ config.label | capitalize }}</b>\n @if (config.name) {\n -\n <span [innerHTML]=\"config.name\"></span>\n }\n </h2>\n\n @if (config.description) {\n <p>\n <markdown [data]=\"config.description\" emoji></markdown>\n </p>\n }\n </ion-label>\n </ion-item>\n }\n\n <!-- Version info -->\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n
|
|
29799
|
-
}], ctorParameters: () => [{ type: i1$1.TranslateService }, { type: i2$1.ModalController }, { type: ConfigService }, { type: undefined, decorators: [{
|
|
29836
|
+
args: [{ selector: 'app-about-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>\n {{ 'ABOUT.TITLE' | translate }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"close()\" visible-xs visible-sm visible-mobile>\n {{ 'COMMON.BTN_CLOSE' | translate }}\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-list lines=\"none\">\n <!-- Peer info -->\n @if (config$ | async; as config) {\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n <b>{{ config.label | capitalize }}</b>\n @if (config.name) {\n -\n <span [innerHTML]=\"config.name\"></span>\n }\n </h2>\n\n @if (config.description) {\n <p>\n <markdown [data]=\"config.description\" emoji></markdown>\n </p>\n }\n </ion-label>\n </ion-item>\n }\n\n <!-- Version info -->\n <ion-item>\n <span slot=\"start\"> </span>\n <ion-label class=\"ion-text-wrap\">\n <h2>\n @if (name) {\n <small>{{ 'ABOUT.POWERED_BY' | translate }}</small>\n {{ name }}\n }\n @if (version) {\n <span [innerHTML]=\"'ABOUT.VERSION' | translate: { version: version }\"></span>\n }\n @if(allowVersionDetails) {\n \n <small>\n <a (click)=\"showVersionDetails=!showVersionDetails\" tappable>\n {{'COMMON.BTN_SHOW_MORE' | translate}}\n <ion-icon [name]=\"!showVersionDetails ? 'chevron-down' : 'chevron-up'\"></ion-icon>\n </a>\n </small>\n }\n </h2>\n\n <!-- version details -->\n @if (showVersionDetails) {\n <p class=\"version-details\">\n <!-- App version -->\n @if (buildDate) {\n <small>\n <ion-icon name=\"logo-angular\"></ion-icon>\n <span [innerHTML]=\"'ABOUT.APP_VERSION' | translate: { version: version }\"></span>\n \n <ion-icon name=\"time-outline\"></ion-icon>\n {{ buildDate | dateFormat: { time: true, seconds: false } }}\n </small>\n <br/>\n }\n <!-- Pod version -->\n @if (nodeInfo?.softwareVersion && nodeInfo.buildDate) {\n <small>\n <ion-icon name=\"server\"></ion-icon>\n <span [innerHTML]=\"'ABOUT.POD_VERSION' | translate: { version: nodeInfo.softwareVersion }\"></span>\n \n <ion-icon name=\"time-outline\"></ion-icon>\n {{ nodeInfo.buildDate | dateFormat: { time: true, seconds: false } }}\n </small>\n }\n </p>\n }\n\n <!-- license-->\n <p [innerHTML]=\"'ABOUT.LICENSE' | translate\"></p>\n </ion-label>\n </ion-item>\n\n <!-- Help -->\n <ion-item *ngIf=\"forumUrl || helpUrl\">\n <mat-icon slot=\"start\">help_outline</mat-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.HELP' | translate }}\n </p>\n <p>\n <ion-button fill=\"solid\" color=\"accent\" href=\"{{ helpUrl }}\" target=\"help\" size=\"default\">\n <mat-icon slot=\"start\">description</mat-icon>\n <ion-text translate>ABOUT.USER_MANUAL</ion-text>\n </ion-button>\n <ion-button fill=\"solid\" color=\"secondary\" href=\"{{ forumUrl }}\" target=\"forum\" size=\"default\">\n <ion-icon slot=\"start\" name=\"chatbubbles\"></ion-icon>\n <ion-text translate>ABOUT.FORUM</ion-text>\n </ion-button>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Report issue -->\n <ion-item *ngIf=\"reportIssueUrl\">\n <ion-icon slot=\"start\" name=\"bug\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.REPORT_ISSUE' | translate }}\n </p>\n <p>\n <a color=\"primary\" href=\"{{ reportIssueUrl }}\" target=\"_system\" translate>ABOUT.BTN_REPORT_ISSUE</a>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Source code -->\n <ion-item *ngIf=\"sourceUrl\">\n <ion-icon slot=\"start\" name=\"code\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.SOURCE_CODE' | translate }}\n </p>\n <p>\n <a color=\"primary\" href=\"{{ sourceUrl }}\" target=\"_system\">{{ sourceUrl }}</a>\n </p>\n </ion-label>\n </ion-item>\n\n <!-- Developers -->\n <ion-item *ngIf=\"developers | isNotEmptyArray\">\n <ion-icon slot=\"start\" name=\"people\" color=\"dark\"></ion-icon>\n <ion-label>\n <p>\n {{ 'ABOUT.DEVELOPED_BY' | translate }}\n </p>\n <ion-list lines=\"none\">\n <ion-item *ngFor=\"let item of developers\" class=\"ion-no-padding\">\n <ion-label>\n <p>\n <a color=\"primary\" href=\"{{ item.siteUrl }}\" target=\"_system\">{{ item.name || item.label }}</a>\n </p>\n </ion-label>\n <ion-img slot=\"end\" [src]=\"item.logo\" />\n </ion-item>\n </ion-list>\n </ion-label>\n </ion-item>\n\n <!-- Partners -->\n <ion-item class=\"item-partners\" *ngIf=\"partners | isNotEmptyArray\">\n <ion-icon slot=\"start\" name=\"megaphone\" color=\"dark\"></ion-icon>\n <ion-text>\n <p>{{ 'ABOUT.PARTNERS' | translate }}</p>\n <p>\n <a *ngFor=\"let item of partners\" href=\"{{ item.siteUrl }}\" class=\"partners\" target=\"_system\">\n <img *ngIf=\"item.logo; else partnerName\" [src]=\"item.logo\" [alt]=\"item.label\" />\n <ng-template #partnerName>\n <ion-text>{{ item.label }}</ion-text>\n </ng-template>\n </a>\n </p>\n </ion-text>\n </ion-item>\n </ion-list>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\">{{ 'COMMON.BTN_CLOSE' | translate }}</ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: [".item-partners ion-text{height:auto}.item-partners ion-text p:last-child{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:space-between}.item-partners ion-text p:last-child a{padding:2px}.item-partners ion-text p:last-child a img{text-align:center;display:inline-block;max-height:40px!important}\n"] }]
|
|
29837
|
+
}], ctorParameters: () => [{ type: i1$1.TranslateService }, { type: i2$1.ModalController }, { type: ConfigService }, { type: NetworkService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
29800
29838
|
type: Optional
|
|
29801
29839
|
}, {
|
|
29802
29840
|
type: Inject,
|