@stemy/ngx-utils 11.0.7 → 11.0.11

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.
@@ -1,14 +1,15 @@
1
1
  import { Inject, Injectable } from "@angular/core";
2
- import { CONFIG_SERVICE } from "../common-types";
2
+ import { CONFIG_SERVICE, PROMISE_SERVICE } from "../common-types";
3
3
  import { ObjectUtils } from "../utils/object.utils";
4
4
  import { EventsService } from "./events.service";
5
5
  import { StorageService } from "./storage.service";
6
6
  import { BaseHttpClient } from "./base-http.client";
7
7
  export class StaticLanguageService {
8
- constructor(events, storage, configs, client) {
8
+ constructor(events, storage, configs, promises, client) {
9
9
  this.events = events;
10
10
  this.storage = storage;
11
11
  this.configs = configs;
12
+ this.promises = promises;
12
13
  this.client = client;
13
14
  this.editLang = null;
14
15
  this.currentLang = null;
@@ -77,13 +78,17 @@ export class StaticLanguageService {
77
78
  }
78
79
  initService() {
79
80
  }
80
- addLanguages(languages) {
81
- const languageSet = new Set(this.languageList);
82
- languages.forEach(lang => {
83
- this.translations[lang] = {};
84
- languageSet.add(lang);
81
+ replaceLanguages(languages) {
82
+ languages = Array.isArray(languages) && languages.length > 0 ? languages : this.languageList;
83
+ this.languageList = Array.from(new Set(languages));
84
+ this.languageList.forEach(lang => {
85
+ this.translations[lang] = this.translations[lang] || {};
85
86
  });
86
- this.languageList = Array.from(languageSet);
87
+ }
88
+ addLanguages(languages) {
89
+ if (!Array.isArray(languages) || languages.length == 0)
90
+ return;
91
+ this.replaceLanguages(this.languageList.concat(languages));
87
92
  }
88
93
  getTranslationSync(key, params = null) {
89
94
  const lowerKey = (key || "").toLocaleLowerCase();
@@ -95,11 +100,11 @@ export class StaticLanguageService {
95
100
  throw new Error(`Parameter "key" required`);
96
101
  }
97
102
  const translation = ObjectUtils.getValue(this.dictionary, key, key) || key;
98
- return Promise.resolve(this.interpolate(translation, params));
103
+ return this.promises.resolve(this.interpolate(translation, params));
99
104
  }
100
105
  getTranslations(...keys) {
101
- return new Promise(resolve => {
102
- Promise.all(keys.map(key => this.getTranslation(key))).then(translations => {
106
+ return this.promises.create(resolve => {
107
+ this.promises.all(keys.map(key => this.getTranslation(key))).then(translations => {
103
108
  resolve(keys.reduce((result, key, i) => {
104
109
  result[key] = translations[i];
105
110
  return result;
@@ -141,6 +146,7 @@ StaticLanguageService.ctorParameters = () => [
141
146
  { type: EventsService, decorators: [{ type: Inject, args: [EventsService,] }] },
142
147
  { type: StorageService, decorators: [{ type: Inject, args: [StorageService,] }] },
143
148
  { type: undefined, decorators: [{ type: Inject, args: [CONFIG_SERVICE,] }] },
144
- { type: BaseHttpClient }
149
+ { type: undefined, decorators: [{ type: Inject, args: [PROMISE_SERVICE,] }] },
150
+ { type: BaseHttpClient, decorators: [{ type: Inject, args: [BaseHttpClient,] }] }
145
151
  ];
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWxhbmd1YWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxjQUFjLEVBTWpCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSWxELE1BQU0sT0FBTyxxQkFBcUI7SUE4RTlCLFlBQTRDLE1BQXFCLEVBQ3BCLE9BQXVCLEVBQ3ZCLE9BQXVCLEVBQzlDLE1BQXNCO1FBSEEsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNwQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUM5QyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2hCLElBQUksRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBeEZELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FB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XCI7XHJcbmltcG9ydCB7XHJcbiAgICBDT05GSUdfU0VSVklDRSxcclxuICAgIElDb25maWdTZXJ2aWNlLFxyXG4gICAgSUNvbmZpZ3VyYXRpb24sXHJcbiAgICBJTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgSVRyYW5zbGF0aW9uLFxyXG4gICAgSVRyYW5zbGF0aW9uc1xyXG59IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5pbXBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuL2V2ZW50cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSBcIi4vY29uZmlnLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSBcIi4vc3RvcmFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4vdW5pdmVyc2FsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCYXNlSHR0cENsaWVudH0gZnJvbSBcIi4vYmFzZS1odHRwLmNsaWVudFwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3RhdGljTGFuZ3VhZ2VTZXJ2aWNlIGltcGxlbWVudHMgSUxhbmd1YWdlU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGRlZmF1bHRMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3MuZ2V0UXVlcnlQYXJhbWV0ZXIoXCJsYW5nXCIpIHx8IHRoaXMuc3RvcmFnZS5nZXQoXCJsYW5ndWFnZVwiLCB0aGlzLmJyb3dzZXJMYW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGljdGlvbmFyeSgpOiBJVHJhbnNsYXRpb25zIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ3VhZ2VdIHx8IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkaWN0aW9uYXJ5KHZhbHVlOiBJVHJhbnNsYXRpb25zKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ3VhZ2VdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxhbmd1YWdlcygpOiBSZWFkb25seUFycmF5PHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY3VycmVudExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmcgfHwgdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGN1cnJlbnRMYW5ndWFnZShsYW5nOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5nID0gbGFuZztcclxuICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuZW1pdChsYW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZWRpdExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdExhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGVkaXRMYW5ndWFnZShsYW5nOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmVkaXRMYW5nID0gbGFuZyB8fCB0aGlzLmN1cnJlbnRMYW5ndWFnZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGlzYWJsZVRyYW5zbGF0aW9ucygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlVHJhbnM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRpc2FibGVUcmFuc2xhdGlvbnModmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVUcmFucyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZC5lbWl0KHRoaXMuY3VycmVudExhbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBodHRwQ2xpZW50KCk6IEh0dHBDbGllbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uZmlnKCk6IElDb25maWd1cmF0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdzLmNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnJvd3NlckxhbmcoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIgfHwgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiZGVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGJyb3dzZXJMYW5nOiBzdHJpbmcgPSAod2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZXMgPyB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6IG51bGwpXHJcbiAgICAgICAgICAgIHx8IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgd2luZG93Lm5hdmlnYXRvcltcImJyb3dzZXJMYW5ndWFnZVwiXSB8fCB3aW5kb3cubmF2aWdhdG9yW1widXNlckxhbmd1YWdlXCJdIHx8IG51bGw7XHJcbiAgICAgICAgaWYgKCFicm93c2VyTGFuZykgcmV0dXJuIGJyb3dzZXJMYW5nO1xyXG5cclxuICAgICAgICBbXCItXCIsIFwiX1wiXS5mb3JFYWNoKHNwbGl0dGVyID0+IHtcclxuICAgICAgICAgICAgaWYgKGJyb3dzZXJMYW5nLmluZGV4T2Yoc3BsaXR0ZXIpID49IDApIHtcclxuICAgICAgICAgICAgICAgIGJyb3dzZXJMYW5nID0gYnJvd3Nlckxhbmcuc3BsaXQoc3BsaXR0ZXIpWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gYnJvd3Nlckxhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVuaXZlcnNhbCgpOiBVbml2ZXJzYWxTZXJ2aWNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnVuaXZlcnNhbDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZWRpdExhbmc6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBjdXJyZW50TGFuZzogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIGRpc2FibGVUcmFuczogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBsYW5ndWFnZUxpc3Q6IHN0cmluZ1tdO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9ucztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEV2ZW50c1NlcnZpY2UpIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoU3RvcmFnZVNlcnZpY2UpIHJlYWRvbmx5IHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChDT05GSUdfU0VSVklDRSkgcmVhZG9ubHkgY29uZmlnczogSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgY2xpZW50OiBCYXNlSHR0cENsaWVudCkge1xyXG4gICAgICAgIHRoaXMuZWRpdExhbmcgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExhbmcgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZVRyYW5zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IHtcclxuICAgICAgICAgICAgbm9uZToge31cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaW5pdFNlcnZpY2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaW5pdFNlcnZpY2UoKTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGFkZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VTZXQgPSBuZXcgU2V0PHN0cmluZz4odGhpcy5sYW5ndWFnZUxpc3QpO1xyXG4gICAgICAgIGxhbmd1YWdlcy5mb3JFYWNoKGxhbmcgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uc1tsYW5nXSA9IHt9O1xyXG4gICAgICAgICAgICBsYW5ndWFnZVNldC5hZGQobGFuZyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZUxpc3QgPSBBcnJheS5mcm9tKGxhbmd1YWdlU2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvblN5bmMoa2V5OiBzdHJpbmcsIHBhcmFtczogYW55ID0gbnVsbCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbG93ZXJLZXkgPSAoa2V5IHx8IFwiXCIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmRpY3Rpb25hcnlbbG93ZXJLZXldIHx8IGxvd2VyS2V5O1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9uID09IGxvd2VyS2V5ID8ga2V5IDogdHJhbnNsYXRpb24sIHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc1N0cmluZyhrZXkpIHx8ICFrZXkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyYW1ldGVyIFwia2V5XCIgcmVxdWlyZWRgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSBPYmplY3RVdGlscy5nZXRWYWx1ZSh0aGlzLmRpY3Rpb25hcnksIGtleSwga2V5KSB8fCBrZXk7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9uLCBwYXJhbXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvbnMoLi4ua2V5czogc3RyaW5nW10pOiBQcm9taXNlPElUcmFuc2xhdGlvbnM+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SVRyYW5zbGF0aW9ucz4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIFByb21pc2UuYWxsKGtleXMubWFwKGtleSA9PiB0aGlzLmdldFRyYW5zbGF0aW9uKGtleSkpKS50aGVuKHRyYW5zbGF0aW9ucyA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGtleXMucmVkdWNlKChyZXN1bHQsIGtleSwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNsYXRpb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9LCB7fSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvbkZyb21PYmplY3QodHJhbnNsYXRpb25zOiBJVHJhbnNsYXRpb25zLCBwYXJhbXM/OiBhbnksIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxhbmcgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9ucyA/ICh0cmFuc2xhdGlvbnNbbGFuZ10gfHwgXCJcIikgOiBcIlwiKVxyXG4gICAgfVxyXG5cclxuICAgIGdldFRyYW5zbGF0aW9uRnJvbUFycmF5KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9uW10sIHBhcmFtcz86IGFueSwgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbnMgPyB0cmFuc2xhdGlvbnMuZmluZCh0ID0+IHQubGFuZyA9PSBsYW5nKSA6IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodHJhbnNsYXRpb24gPyB0cmFuc2xhdGlvbi50cmFuc2xhdGlvbiA6IFwiXCIsIHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGludGVycG9sYXRlKGV4cHI6IHN0cmluZyB8IEZ1bmN0aW9uLCBwYXJhbXM/OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZXhwciA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZVN0cmluZyhleHByLCBwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIGV4cHIgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZXhwcihwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXhwciBhcyBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGludGVycG9sYXRlU3RyaW5nKGV4cHI6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XHJcbiAgICAgICAgaWYgKCFleHByIHx8ICFwYXJhbXMpIHJldHVybiBleHByO1xyXG4gICAgICAgIHJldHVybiBleHByLnJlcGxhY2UoL3t7XFxzPyhbXnt9XFxzXSopXFxzP319L2csIChzdWJzdHJpbmc6IHN0cmluZywgYjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBPYmplY3RVdGlscy5nZXRWYWx1ZShwYXJhbXMsIGIpO1xyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuaXNEZWZpbmVkKHIpID8gciA6IHN1YnN0cmluZztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWxhbmd1YWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxjQUFjLEVBT2QsZUFBZSxFQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUlsRCxNQUFNLE9BQU8scUJBQXFCO0lBOEU5QixZQUE0QyxNQUFxQixFQUNwQixPQUF1QixFQUN2QixPQUF1QixFQUNyQixRQUF5QixFQUMxQixNQUFzQjtRQUp4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDaEIsSUFBSSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZC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LEVBQUUsRUFBRTtZQUMxRSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQyxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBbktKLFVBQVU7OztZQU5ILGFBQWEsdUJBcUZKLE1BQU0sU0FBQyxhQUFhO1lBcEY3QixjQUFjLHVCQXFGTCxNQUFNLFNBQUMsY0FBYzs0Q0FDckIsTUFBTSxTQUFDLGNBQWM7NENBQ3JCLE1BQU0sU0FBQyxlQUFlO1lBckYvQixjQUFjLHVCQXNGTCxNQUFNLFNBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgQ09ORklHX1NFUlZJQ0UsXHJcbiAgICBJQ29uZmlnU2VydmljZSxcclxuICAgIElDb25maWd1cmF0aW9uLFxyXG4gICAgSUxhbmd1YWdlU2VydmljZSxcclxuICAgIElQcm9taXNlU2VydmljZSxcclxuICAgIElUcmFuc2xhdGlvbixcclxuICAgIElUcmFuc2xhdGlvbnMsXHJcbiAgICBQUk9NSVNFX1NFUlZJQ0VcclxufSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuLi91dGlscy9vYmplY3QudXRpbHNcIjtcclxuaW1wb3J0IHtFdmVudHNTZXJ2aWNlfSBmcm9tIFwiLi9ldmVudHMuc2VydmljZVwiO1xyXG5pbXBvcnQge1N0b3JhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9zdG9yYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5pbXBvcnQge0Jhc2VIdHRwQ2xpZW50fSBmcm9tIFwiLi9iYXNlLWh0dHAuY2xpZW50XCI7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTdGF0aWNMYW5ndWFnZVNlcnZpY2UgaW1wbGVtZW50cyBJTGFuZ3VhZ2VTZXJ2aWNlIHtcclxuXHJcbiAgICBnZXQgZGVmYXVsdExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlncy5nZXRRdWVyeVBhcmFtZXRlcihcImxhbmdcIikgfHwgdGhpcy5zdG9yYWdlLmdldChcImxhbmd1YWdlXCIsIHRoaXMuYnJvd3NlckxhbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkaWN0aW9uYXJ5KCk6IElUcmFuc2xhdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5ndWFnZV0gfHwge307XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRpY3Rpb25hcnkodmFsdWU6IElUcmFuc2xhdGlvbnMpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5ndWFnZV0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFuZ3VhZ2VzKCk6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjdXJyZW50TGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZyB8fCB0aGlzLmRlZmF1bHRMYW5ndWFnZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY3VycmVudExhbmd1YWdlKGxhbmc6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuY3VycmVudExhbmcgPSBsYW5nO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZC5lbWl0KGxhbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBlZGl0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0TGFuZyB8fCB0aGlzLmN1cnJlbnRMYW5ndWFnZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZWRpdExhbmd1YWdlKGxhbmc6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZWRpdExhbmcgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkaXNhYmxlVHJhbnNsYXRpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVUcmFucztcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZGlzYWJsZVRyYW5zbGF0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZVRyYW5zID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLmVtaXQodGhpcy5jdXJyZW50TGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGh0dHBDbGllbnQoKTogSHR0cENsaWVudCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb25maWcoKTogSUNvbmZpZ3VyYXRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3MuY29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBicm93c2VyTGFuZygpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnVuaXZlcnNhbC5pc1NlcnZlciB8fCB0eXBlb2Ygd2luZG93Lm5hdmlnYXRvciA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJkZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgYnJvd3Nlckxhbmc6IHN0cmluZyA9ICh3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlcyA/IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdIDogbnVsbClcclxuICAgICAgICAgICAgfHwgd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZSB8fCB3aW5kb3cubmF2aWdhdG9yW1wiYnJvd3Nlckxhbmd1YWdlXCJdIHx8IHdpbmRvdy5uYXZpZ2F0b3JbXCJ1c2VyTGFuZ3VhZ2VcIl0gfHwgbnVsbDtcclxuICAgICAgICBpZiAoIWJyb3dzZXJMYW5nKSByZXR1cm4gYnJvd3Nlckxhbmc7XHJcblxyXG4gICAgICAgIFtcIi1cIiwgXCJfXCJdLmZvckVhY2goc3BsaXR0ZXIgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZihzcGxpdHRlcikgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdChzcGxpdHRlcilbMF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBicm93c2VyTGFuZztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdW5pdmVyc2FsKCk6IFVuaXZlcnNhbFNlcnZpY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UudW5pdmVyc2FsO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBlZGl0TGFuZzogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIGN1cnJlbnRMYW5nOiBzdHJpbmc7XHJcbiAgICBwcm90ZWN0ZWQgZGlzYWJsZVRyYW5zOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlTGlzdDogc3RyaW5nW107XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRpb25zOiBJVHJhbnNsYXRpb25zO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRXZlbnRzU2VydmljZSkgcmVhZG9ubHkgZXZlbnRzOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChTdG9yYWdlU2VydmljZSkgcmVhZG9ubHkgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFKSByZWFkb25seSBjb25maWdzOiBJQ29uZmlnU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoUFJPTUlTRV9TRVJWSUNFKSBwcm90ZWN0ZWQgcHJvbWlzZXM6IElQcm9taXNlU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoQmFzZUh0dHBDbGllbnQpIHByb3RlY3RlZCBjbGllbnQ6IEJhc2VIdHRwQ2xpZW50KSB7XHJcbiAgICAgICAgdGhpcy5lZGl0TGFuZyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGFuZyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlVHJhbnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25zID0ge1xyXG4gICAgICAgICAgICBub25lOiB7fVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5pbml0U2VydmljZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBpbml0U2VydmljZSgpOiB2b2lkIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmVwbGFjZUxhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICAgICAgbGFuZ3VhZ2VzID0gQXJyYXkuaXNBcnJheShsYW5ndWFnZXMpICYmIGxhbmd1YWdlcy5sZW5ndGggPiAwID8gbGFuZ3VhZ2VzIDogdGhpcy5sYW5ndWFnZUxpc3Q7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZUxpc3QgPSBBcnJheS5mcm9tKG5ldyBTZXQ8c3RyaW5nPihsYW5ndWFnZXMpKTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlTGlzdC5mb3JFYWNoKGxhbmcgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uc1tsYW5nXSA9IHRoaXMudHJhbnNsYXRpb25zW2xhbmddIHx8IHt9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxhbmd1YWdlcykgfHwgbGFuZ3VhZ2VzLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5yZXBsYWNlTGFuZ3VhZ2VzKHRoaXMubGFuZ3VhZ2VMaXN0LmNvbmNhdChsYW5ndWFnZXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvblN5bmMoa2V5OiBzdHJpbmcsIHBhcmFtczogYW55ID0gbnVsbCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbG93ZXJLZXkgPSAoa2V5IHx8IFwiXCIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmRpY3Rpb25hcnlbbG93ZXJLZXldIHx8IGxvd2VyS2V5O1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9uID09IGxvd2VyS2V5ID8ga2V5IDogdHJhbnNsYXRpb24sIHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc1N0cmluZyhrZXkpIHx8ICFrZXkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyYW1ldGVyIFwia2V5XCIgcmVxdWlyZWRgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSBPYmplY3RVdGlscy5nZXRWYWx1ZSh0aGlzLmRpY3Rpb25hcnksIGtleSwga2V5KSB8fCBrZXk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZXMucmVzb2x2ZSh0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9uLCBwYXJhbXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvbnMoLi4ua2V5czogc3RyaW5nW10pOiBQcm9taXNlPElUcmFuc2xhdGlvbnM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlcy5jcmVhdGU8SVRyYW5zbGF0aW9ucz4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvbWlzZXMuYWxsKGtleXMubWFwKGtleSA9PiB0aGlzLmdldFRyYW5zbGF0aW9uKGtleSkpKS50aGVuKHRyYW5zbGF0aW9ucyA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGtleXMucmVkdWNlKChyZXN1bHQsIGtleSwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNsYXRpb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9LCB7fSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvbkZyb21PYmplY3QodHJhbnNsYXRpb25zOiBJVHJhbnNsYXRpb25zLCBwYXJhbXM/OiBhbnksIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxhbmcgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9ucyA/ICh0cmFuc2xhdGlvbnNbbGFuZ10gfHwgXCJcIikgOiBcIlwiKVxyXG4gICAgfVxyXG5cclxuICAgIGdldFRyYW5zbGF0aW9uRnJvbUFycmF5KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9uW10sIHBhcmFtcz86IGFueSwgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbnMgPyB0cmFuc2xhdGlvbnMuZmluZCh0ID0+IHQubGFuZyA9PSBsYW5nKSA6IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodHJhbnNsYXRpb24gPyB0cmFuc2xhdGlvbi50cmFuc2xhdGlvbiA6IFwiXCIsIHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGludGVycG9sYXRlKGV4cHI6IHN0cmluZyB8IEZ1bmN0aW9uLCBwYXJhbXM/OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZXhwciA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZVN0cmluZyhleHByLCBwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIGV4cHIgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZXhwcihwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXhwciBhcyBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGludGVycG9sYXRlU3RyaW5nKGV4cHI6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XHJcbiAgICAgICAgaWYgKCFleHByIHx8ICFwYXJhbXMpIHJldHVybiBleHByO1xyXG4gICAgICAgIHJldHVybiBleHByLnJlcGxhY2UoL3t7XFxzPyhbXnt9XFxzXSopXFxzP319L2csIChzdWJzdHJpbmc6IHN0cmluZywgYjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBPYmplY3RVdGlscy5nZXRWYWx1ZShwYXJhbXMsIGIpO1xyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuaXNEZWZpbmVkKHIpID8gciA6IHN1YnN0cmluZztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- export { CanvasColor, ICON_SERVICE, LANGUAGE_SERVICE, AUTH_SERVICE, PROMISE_SERVICE, StorageMode, TOASTER_SERVICE, UnorederedListTemplate, FactoryDependencies, PaginationItemContext, HttpPromise, EXPRESS_REQUEST, API_SERVICE, ResourceIfContext, IConfiguration, CONFIG_SERVICE, BASE_CONFIG, SCRIPT_PARAMS, ERROR_HANDLER, ValuedPromise } from "./ngx-utils/common-types";
1
+ export { CanvasColor, ICON_SERVICE, LANGUAGE_SERVICE, AUTH_SERVICE, PROMISE_SERVICE, StorageMode, TOASTER_SERVICE, UnorederedListTemplate, FactoryDependencies, PaginationItemContext, HttpPromise, EXPRESS_REQUEST, API_SERVICE, ResourceIfContext, IConfiguration, CONFIG_SERVICE, BASE_CONFIG, SCRIPT_PARAMS, ROOT_ELEMENT, ERROR_HANDLER, ValuedPromise } from "./ngx-utils/common-types";
2
2
  export { AjaxRequestHandler } from "./ngx-utils/utils/ajax-request-handler";
3
3
  export { ObjectUtils } from "./ngx-utils/utils/object.utils";
4
4
  export { DateUtils } from "./ngx-utils/utils/date.utils";
@@ -80,4 +80,4 @@ export { UnorderedListComponent } from "./ngx-utils/components/unordered-list/un
80
80
  export { DynamicTableComponent } from "./ngx-utils/components/dynamic-table/dynamic-table.component";
81
81
  export { PaginationMenuComponent } from "./ngx-utils/components/pagination-menu/pagination-menu.component";
82
82
  export { NgxUtilsModule } from "./ngx-utils/ngx-utils.module";
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxXQUFXLEVBRVgsWUFBWSxFQUtaLGdCQUFnQixFQUtoQixZQUFZLEVBR1osZUFBZSxFQUVmLFdBQVcsRUFFWCxlQUFlLEVBR2Ysc0JBQXNCLEVBUXRCLG1CQUFtQixFQVFuQixxQkFBcUIsRUFRckIsV0FBVyxFQUVYLGVBQWUsRUFFZixXQUFXLEVBUVgsaUJBQWlCLEVBQ2pCLGNBQWMsRUFFZCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGFBQWEsRUFFYixhQUFhLEVBR2IsYUFBYSxFQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztB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QThDLENBQUM7QUFDakYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBRXhHLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBRXpHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XHJcbiAgICBJUmVzb2x2ZUZhY3RvcnksXHJcbiAgICBDYW52YXNDb2xvcixcclxuICAgIElJY29uU2VydmljZSxcclxuICAgIElDT05fU0VSVklDRSxcclxuICAgIElUcmFuc2xhdGlvbixcclxuICAgIElUcmFuc2xhdGlvbnMsXHJcbiAgICBJTGFuZ3VhZ2VTZXR0aW5ncyxcclxuICAgIElMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBMQU5HVUFHRV9TRVJWSUNFLFxyXG4gICAgSUF1dGhTZXJ2aWNlLFxyXG4gICAgUm91dGVWYWxpZGF0b3IsXHJcbiAgICBJUm91dGVEYXRhLFxyXG4gICAgSVJvdXRlLFxyXG4gICAgQVVUSF9TRVJWSUNFLFxyXG4gICAgSUFjbENvbXBvbmVudCxcclxuICAgIElQcm9taXNlU2VydmljZSxcclxuICAgIFBST01JU0VfU0VSVklDRSxcclxuICAgIElSb3V0ZVN0YXRlSW5mbyxcclxuICAgIFN0b3JhZ2VNb2RlLFxyXG4gICAgSVRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgVE9BU1RFUl9TRVJWSUNFLFxyXG4gICAgSUFzeW5jTWVzc2FnZSxcclxuICAgIEFzeW5jTWV0aG9kLFxyXG4gICAgVW5vcmVkZXJlZExpc3RUZW1wbGF0ZSxcclxuICAgIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMsXHJcbiAgICBVbm9yZGVyZWRMaXN0U3R5bGUsXHJcbiAgICBJQWpheFJlcXVlc3REZXRhaWxzLFxyXG4gICAgQWpheFJlcXVlc3RDYWxsYmFjayxcclxuICAgIElTY3JpcHRQcm9taXNlcyxcclxuICAgIElTdHlsZVByb21pc2VzLFxyXG4gICAgSVNlYXJjaE9ic2VydmFibGUsXHJcbiAgICBGYWN0b3J5RGVwZW5kZW5jaWVzLFxyXG4gICAgSVRpbWVyLFxyXG4gICAgSUV4dHJhUHJvcGVydGllcyxcclxuICAgIElHcm91cE1hcCxcclxuICAgIFRyYW5zbGF0aW9uUXVlcnksXHJcbiAgICBJUGFnZUluZm8sXHJcbiAgICBJUGFnaW5hdGlvbkRhdGEsXHJcbiAgICBQYWdpbmF0aW9uRGF0YUxvYWRlcixcclxuICAgIFBhZ2luYXRpb25JdGVtQ29udGV4dCxcclxuICAgIElIdHRwSGVhZGVycyxcclxuICAgIElIdHRwUGFyYW1zLFxyXG4gICAgSVJlcXVlc3RPcHRpb25zLFxyXG4gICAgSUlzc3VlQ29udGV4dCxcclxuICAgIElQcm9ncmVzcyxcclxuICAgIFByb2dyZXNzTGlzdGVuZXIsXHJcbiAgICBQcm9taXNlRXhlY3V0b3IsXHJcbiAgICBIdHRwUHJvbWlzZSxcclxuICAgIElIdHRwU2VydmljZSxcclxuICAgIEVYUFJFU1NfUkVRVUVTVCxcclxuICAgIElBcGlTZXJ2aWNlLFxyXG4gICAgQVBJX1NFUlZJQ0UsXHJcbiAgICBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LFxyXG4gICAgSU9wZW5BcGlTY2hlbWEsXHJcbiAgICBJT3BlbkFwaVNjaGVtYXMsXHJcbiAgICBJVGFibGVDb2x1bW5zLFxyXG4gICAgSVRhYmxlVGVtcGxhdGUsXHJcbiAgICBJVGFibGVUZW1wbGF0ZXMsXHJcbiAgICBUYWJsZURhdGFMb2FkZXIsXHJcbiAgICBSZXNvdXJjZUlmQ29udGV4dCxcclxuICAgIElDb25maWd1cmF0aW9uLFxyXG4gICAgSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBDT05GSUdfU0VSVklDRSxcclxuICAgIEJBU0VfQ09ORklHLFxyXG4gICAgU0NSSVBUX1BBUkFNUyxcclxuICAgIEVycm9ySGFuZGxlckNhbGxiYWNrLFxyXG4gICAgRVJST1JfSEFORExFUixcclxuICAgIEFwcEluaXRpYWxpemVyRnVuYyxcclxuICAgIElNb2R1bGVDb25maWcsXHJcbiAgICBWYWx1ZWRQcm9taXNlXHJcbn0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IHtBamF4UmVxdWVzdEhhbmRsZXJ9IGZyb20gXCIuL25neC11dGlscy91dGlscy9hamF4LXJlcXVlc3QtaGFuZGxlclwiO1xyXG5leHBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmV4cG9ydCB7RGF0ZVV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZGF0ZS51dGlsc1wiO1xyXG5leHBvcnQge0NhbnZhc1V0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvY2FudmFzLnV0aWxzXCI7XHJcbmV4cG9ydCB7RmlsZVV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZmlsZS51dGlsc1wiO1xyXG5leHBvcnQge0dlbmVyaWNWYWx1ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2dlbmVyaWMtdmFsdWVcIjtcclxuZXhwb3J0IHtJU2hhcGUsIFJlY3QsIENpcmNsZSwgUG9pbnR9IGZyb20gXCIuL25neC11dGlscy91dGlscy9nZW9tZXRyeVwiO1xyXG5leHBvcnQge0luaXRpYWxpemVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvaW5pdGlhbGl6ZXJcIjtcclxuZXhwb3J0IHtSZWZsZWN0VXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9yZWZsZWN0LnV0aWxzXCI7XHJcbmV4cG9ydCB7TG9hZGVyVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9sb2FkZXIudXRpbHNcIjtcclxuZXhwb3J0IHtNYXRoVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9tYXRoLnV0aWxzXCI7XHJcbmV4cG9ydCB7QXV0aEd1YXJkfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYXV0aC5ndWFyZFwiO1xyXG5leHBvcnQge09ic2VydmFibGVVdGlscywgSVN1YnNjcmliZXJJbmZvfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvb2JzZXJ2YWJsZS51dGlsc1wiO1xyXG5leHBvcnQge1N0cmluZ1V0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvc3RyaW5nLnV0aWxzXCI7XHJcbmV4cG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2FycmF5LnV0aWxzXCI7XHJcbmV4cG9ydCB7U2V0VXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9zZXQudXRpbHNcIjtcclxuZXhwb3J0IHtUaW1lclV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvdGltZXIudXRpbHNcIjtcclxuZXhwb3J0IHtVbmlxdWVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3VuaXF1ZS51dGlsc1wiO1xyXG5leHBvcnQge1ZlY3Rvcn0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3ZlY3RvclwiO1xyXG5cclxuZXhwb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvdW5pdmVyc2FsLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtBY2xTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYWNsLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtBcGlTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtTdGF0aWNBdXRoU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5leHBvcnQge0Jhc2VIdHRwQ2xpZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYmFzZS1odHRwLmNsaWVudFwiO1xyXG5leHBvcnQge0Jhc2VIdHRwU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Jhc2UtaHR0cC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7RXJyb3JIYW5kbGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Vycm9yLWhhbmRsZXIuc2VydmljZVwiO1xyXG5leHBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9ldmVudHMuc2VydmljZVwiO1xyXG5leHBvcnQge0Zvcm1hdHRlclNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9mb3JtYXR0ZXIuc2VydmljZVwiO1xyXG5leHBvcnQge0dsb2JhbFRlbXBsYXRlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2dsb2JhbC10ZW1wbGF0ZS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7SWNvblNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9pY29uLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7T3BlbkFwaVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9vcGVuLWFwaS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7SVN0YXRlSW5mbywgU3RhdGVTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvc3RhdGUuc2VydmljZVwiO1xyXG5leHBvcnQge1N0YXRpY0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtDb25zb2xlVG9hc3RlclNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtJVXJsRGljdGlvbmFyeSwgVHJhbnNsYXRlZFVybFNlcmlhbGl6ZXJ9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy90cmFuc2xhdGVkLXVybC5zZXJpYWxpemVyXCI7XHJcbmV4cG9ydCB7UHJvbWlzZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9wcm9taXNlLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCB7UmVzaXplRXZlbnRQbHVnaW59IGZyb20gXCIuL25neC11dGlscy9wbHVnaW5zL3Jlc2l6ZS1ldmVudC5wbHVnaW5cIjtcclxuZXhwb3J0IHtTY3JvbGxFdmVudFBsdWdpbn0gZnJvbSBcIi4vbmd4LXV0aWxzL3BsdWdpbnMvc2Nyb2xsLWV2ZW50LnBsdWdpblwiO1xyXG5cclxuZXhwb3J0IHtDaHVua1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9jaHVuay5waXBlXCI7XHJcbmV4cG9ydCB7RW50cmllc1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9lbnRyaWVzLnBpcGVcIjtcclxuZXhwb3J0IHtFeHRyYUl0ZW1Qcm9wZXJ0aWVzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2V4dHJhLWl0ZW0tcHJvcGVydGllcy5waXBlXCI7XHJcbmV4cG9ydCB7RmlsdGVyUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2ZpbHRlci5waXBlXCI7XHJcbmV4cG9ydCB7RmluZFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9maW5kLnBpcGVcIjtcclxuZXhwb3J0IHtGb3JtYXROdW1iZXJQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZm9ybWF0LW51bWJlci5waXBlXCI7XHJcbmV4cG9ydCB7R2V0T2Zmc2V0UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dldC1vZmZzZXQucGlwZVwiO1xyXG5leHBvcnQge0dldFR5cGVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ2V0LXR5cGUucGlwZVwiO1xyXG5leHBvcnQge0dsb2JhbFRlbXBsYXRlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dsb2JhbC10ZW1wbGF0ZS5waXBlXCI7XHJcbmV4cG9ydCB7R3JvdXBCeVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9ncm91cC1ieS5waXBlXCI7XHJcbmV4cG9ydCB7SXNUeXBlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2lzLXR5cGUucGlwZVwiO1xyXG5leHBvcnQge0pvaW5QaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvam9pbi5waXBlXCI7XHJcbmV4cG9ydCB7S2V5c1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9rZXlzLnBpcGVcIjtcclxuZXhwb3J0IHtNYXBQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWFwLnBpcGVcIjtcclxuZXhwb3J0IHtNYXhQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWF4LnBpcGVcIjtcclxuZXhwb3J0IHtNaW5QaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWluLnBpcGVcIjtcclxuZXhwb3J0IHtSZWR1Y2VQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcmVkdWNlLnBpcGVcIjtcclxuZXhwb3J0IHtSZW1hcFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZW1hcC5waXBlXCI7XHJcbmV4cG9ydCB7UmVwbGFjZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZXBsYWNlLnBpcGVcIjtcclxuZXhwb3J0IHtSZXZlcnNlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JldmVyc2UucGlwZVwiO1xyXG5leHBvcnQge1JvdW5kUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JvdW5kLnBpcGVcIjtcclxuZXhwb3J0IHtTYWZlSHRtbFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9zYWZlLWh0bWwucGlwZVwiO1xyXG5leHBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy90cmFuc2xhdGUucGlwZVwiO1xyXG5leHBvcnQge1ZhbHVlc1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy92YWx1ZXMucGlwZVwiO1xyXG5cclxuZXhwb3J0IHtBc3luY01ldGhvZERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge0JhY2tncm91bmREaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2JhY2tncm91bmQuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2R5bmFtaWMtdGFibGUtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2dsb2JhbC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtJY29uRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9pY29uLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge05neFRlbXBsYXRlT3V0bGV0RGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9uZ3gtdGVtcGxhdGUtb3V0bGV0LmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7UGFnaW5hdGlvbkl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3BhZ2luYXRpb24taXRlbS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtSZXNvdXJjZUlmRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9yZXNvdXJjZS1pZi5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtTdGlja3lEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3N0aWNreS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtVbm9yZGVyZWRMaXN0SXRlbURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtaXRlbS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtVbm9yZGVyZWRMaXN0VGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3Vub3JkZXJlZC1saXN0LXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5cclxuZXhwb3J0IHtVbm9yZGVyZWRMaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tcG9uZW50cy91bm9yZGVyZWQtbGlzdC91bm9yZGVyZWQtbGlzdC5jb21wb25lbnRcIjtcclxuZXhwb3J0IHtEeW5hbWljVGFibGVDb21wb25lbnR9IGZyb20gXCIuL25neC11dGlscy9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnRcIjtcclxuZXhwb3J0IHtQYWdpbmF0aW9uTWVudUNvbXBvbmVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbXBvbmVudHMvcGFnaW5hdGlvbi1tZW51L3BhZ2luYXRpb24tbWVudS5jb21wb25lbnRcIjtcclxuXHJcbmV4cG9ydCB7Tmd4VXRpbHNNb2R1bGV9IGZyb20gXCIuL25neC11dGlscy9uZ3gtdXRpbHMubW9kdWxlXCI7XHJcbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxXQUFXLEVBRVgsWUFBWSxFQUtaLGdCQUFnQixFQUtoQixZQUFZLEVBR1osZUFBZSxFQUVmLFdBQVcsRUFFWCxlQUFlLEVBR2Ysc0JBQXNCLEVBUXRCLG1CQUFtQixFQVFuQixxQkFBcUIsRUFRckIsV0FBVyxFQUVYLGVBQWUsRUFFZixXQUFXLEVBUVgsaUJBQWlCLEVBQ2pCLGNBQWMsRUFFZCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBRVosYUFBYSxFQUdiLGFBQWEsRUFDaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJB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QyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUV4RyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUV6RyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xyXG4gICAgSVJlc29sdmVGYWN0b3J5LFxyXG4gICAgQ2FudmFzQ29sb3IsXHJcbiAgICBJSWNvblNlcnZpY2UsXHJcbiAgICBJQ09OX1NFUlZJQ0UsXHJcbiAgICBJVHJhbnNsYXRpb24sXHJcbiAgICBJVHJhbnNsYXRpb25zLFxyXG4gICAgSUxhbmd1YWdlU2V0dGluZ3MsXHJcbiAgICBJTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgTEFOR1VBR0VfU0VSVklDRSxcclxuICAgIElBdXRoU2VydmljZSxcclxuICAgIFJvdXRlVmFsaWRhdG9yLFxyXG4gICAgSVJvdXRlRGF0YSxcclxuICAgIElSb3V0ZSxcclxuICAgIEFVVEhfU0VSVklDRSxcclxuICAgIElBY2xDb21wb25lbnQsXHJcbiAgICBJUHJvbWlzZVNlcnZpY2UsXHJcbiAgICBQUk9NSVNFX1NFUlZJQ0UsXHJcbiAgICBJUm91dGVTdGF0ZUluZm8sXHJcbiAgICBTdG9yYWdlTW9kZSxcclxuICAgIElUb2FzdGVyU2VydmljZSxcclxuICAgIFRPQVNURVJfU0VSVklDRSxcclxuICAgIElBc3luY01lc3NhZ2UsXHJcbiAgICBBc3luY01ldGhvZCxcclxuICAgIFVub3JlZGVyZWRMaXN0VGVtcGxhdGUsXHJcbiAgICBVbm9yZGVyZWRMaXN0VGVtcGxhdGVzLFxyXG4gICAgVW5vcmRlcmVkTGlzdFN0eWxlLFxyXG4gICAgSUFqYXhSZXF1ZXN0RGV0YWlscyxcclxuICAgIEFqYXhSZXF1ZXN0Q2FsbGJhY2ssXHJcbiAgICBJU2NyaXB0UHJvbWlzZXMsXHJcbiAgICBJU3R5bGVQcm9taXNlcyxcclxuICAgIElTZWFyY2hPYnNlcnZhYmxlLFxyXG4gICAgRmFjdG9yeURlcGVuZGVuY2llcyxcclxuICAgIElUaW1lcixcclxuICAgIElFeHRyYVByb3BlcnRpZXMsXHJcbiAgICBJR3JvdXBNYXAsXHJcbiAgICBUcmFuc2xhdGlvblF1ZXJ5LFxyXG4gICAgSVBhZ2VJbmZvLFxyXG4gICAgSVBhZ2luYXRpb25EYXRhLFxyXG4gICAgUGFnaW5hdGlvbkRhdGFMb2FkZXIsXHJcbiAgICBQYWdpbmF0aW9uSXRlbUNvbnRleHQsXHJcbiAgICBJSHR0cEhlYWRlcnMsXHJcbiAgICBJSHR0cFBhcmFtcyxcclxuICAgIElSZXF1ZXN0T3B0aW9ucyxcclxuICAgIElJc3N1ZUNvbnRleHQsXHJcbiAgICBJUHJvZ3Jlc3MsXHJcbiAgICBQcm9ncmVzc0xpc3RlbmVyLFxyXG4gICAgUHJvbWlzZUV4ZWN1dG9yLFxyXG4gICAgSHR0cFByb21pc2UsXHJcbiAgICBJSHR0cFNlcnZpY2UsXHJcbiAgICBFWFBSRVNTX1JFUVVFU1QsXHJcbiAgICBJQXBpU2VydmljZSxcclxuICAgIEFQSV9TRVJWSUNFLFxyXG4gICAgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSxcclxuICAgIElPcGVuQXBpU2NoZW1hLFxyXG4gICAgSU9wZW5BcGlTY2hlbWFzLFxyXG4gICAgSVRhYmxlQ29sdW1ucyxcclxuICAgIElUYWJsZVRlbXBsYXRlLFxyXG4gICAgSVRhYmxlVGVtcGxhdGVzLFxyXG4gICAgVGFibGVEYXRhTG9hZGVyLFxyXG4gICAgUmVzb3VyY2VJZkNvbnRleHQsXHJcbiAgICBJQ29uZmlndXJhdGlvbixcclxuICAgIElDb25maWdTZXJ2aWNlLFxyXG4gICAgQ09ORklHX1NFUlZJQ0UsXHJcbiAgICBCQVNFX0NPTkZJRyxcclxuICAgIFNDUklQVF9QQVJBTVMsXHJcbiAgICBST09UX0VMRU1FTlQsXHJcbiAgICBFcnJvckhhbmRsZXJDYWxsYmFjayxcclxuICAgIEVSUk9SX0hBTkRMRVIsXHJcbiAgICBBcHBJbml0aWFsaXplckZ1bmMsXHJcbiAgICBJTW9kdWxlQ29uZmlnLFxyXG4gICAgVmFsdWVkUHJvbWlzZVxyXG59IGZyb20gXCIuL25neC11dGlscy9jb21tb24tdHlwZXNcIjtcclxuXHJcbmV4cG9ydCB7QWpheFJlcXVlc3RIYW5kbGVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYWpheC1yZXF1ZXN0LWhhbmRsZXJcIjtcclxuZXhwb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5leHBvcnQge0RhdGVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2RhdGUudXRpbHNcIjtcclxuZXhwb3J0IHtDYW52YXNVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2NhbnZhcy51dGlsc1wiO1xyXG5leHBvcnQge0ZpbGVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2ZpbGUudXRpbHNcIjtcclxuZXhwb3J0IHtHZW5lcmljVmFsdWV9IGZyb20gXCIuL25neC11dGlscy91dGlscy9nZW5lcmljLXZhbHVlXCI7XHJcbmV4cG9ydCB7SVNoYXBlLCBSZWN0LCBDaXJjbGUsIFBvaW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZ2VvbWV0cnlcIjtcclxuZXhwb3J0IHtJbml0aWFsaXplcn0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2luaXRpYWxpemVyXCI7XHJcbmV4cG9ydCB7UmVmbGVjdFV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvcmVmbGVjdC51dGlsc1wiO1xyXG5leHBvcnQge0xvYWRlclV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvbG9hZGVyLnV0aWxzXCI7XHJcbmV4cG9ydCB7TWF0aFV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvbWF0aC51dGlsc1wiO1xyXG5leHBvcnQge0F1dGhHdWFyZH0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2F1dGguZ3VhcmRcIjtcclxuZXhwb3J0IHtPYnNlcnZhYmxlVXRpbHMsIElTdWJzY3JpYmVySW5mb30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL29ic2VydmFibGUudXRpbHNcIjtcclxuZXhwb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3N0cmluZy51dGlsc1wiO1xyXG5leHBvcnQge0FycmF5VXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9hcnJheS51dGlsc1wiO1xyXG5leHBvcnQge1NldFV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvc2V0LnV0aWxzXCI7XHJcbmV4cG9ydCB7VGltZXJVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3RpbWVyLnV0aWxzXCI7XHJcbmV4cG9ydCB7VW5pcXVlVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy91bmlxdWUudXRpbHNcIjtcclxuZXhwb3J0IHtWZWN0b3J9IGZyb20gXCIuL25neC11dGlscy91dGlscy92ZWN0b3JcIjtcclxuXHJcbmV4cG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7QWNsU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2FjbC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7QXBpU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2FwaS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7U3RhdGljQXV0aFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtCYXNlSHR0cENsaWVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Jhc2UtaHR0cC5jbGllbnRcIjtcclxuZXhwb3J0IHtCYXNlSHR0cFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9iYXNlLWh0dHAuc2VydmljZVwiO1xyXG5leHBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9jb25maWcuc2VydmljZVwiO1xyXG5leHBvcnQge0Vycm9ySGFuZGxlclNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9lcnJvci1oYW5kbGVyLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtFdmVudHNTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZXZlbnRzLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtGb3JtYXR0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZm9ybWF0dGVyLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtHbG9iYWxUZW1wbGF0ZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9nbG9iYWwtdGVtcGxhdGUuc2VydmljZVwiO1xyXG5leHBvcnQge0ljb25TZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvaWNvbi5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7TGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZVwiO1xyXG5leHBvcnQge09wZW5BcGlTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvb3Blbi1hcGkuc2VydmljZVwiO1xyXG5leHBvcnQge0lTdGF0ZUluZm8sIFN0YXRlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtTdGF0aWNMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9zdGF0aWMtbGFuZ3VhZ2Uuc2VydmljZVwiO1xyXG5leHBvcnQge1N0b3JhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7Q29uc29sZVRvYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7SVVybERpY3Rpb25hcnksIFRyYW5zbGF0ZWRVcmxTZXJpYWxpemVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvdHJhbnNsYXRlZC11cmwuc2VyaWFsaXplclwiO1xyXG5leHBvcnQge1Byb21pc2VTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvcHJvbWlzZS5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQge1Jlc2l6ZUV2ZW50UGx1Z2lufSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGx1Z2lucy9yZXNpemUtZXZlbnQucGx1Z2luXCI7XHJcbmV4cG9ydCB7U2Nyb2xsRXZlbnRQbHVnaW59IGZyb20gXCIuL25neC11dGlscy9wbHVnaW5zL3Njcm9sbC1ldmVudC5wbHVnaW5cIjtcclxuXHJcbmV4cG9ydCB7Q2h1bmtQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvY2h1bmsucGlwZVwiO1xyXG5leHBvcnQge0VudHJpZXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZW50cmllcy5waXBlXCI7XHJcbmV4cG9ydCB7RXh0cmFJdGVtUHJvcGVydGllc1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9leHRyYS1pdGVtLXByb3BlcnRpZXMucGlwZVwiO1xyXG5leHBvcnQge0ZpbHRlclBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9maWx0ZXIucGlwZVwiO1xyXG5leHBvcnQge0ZpbmRQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZmluZC5waXBlXCI7XHJcbmV4cG9ydCB7Rm9ybWF0TnVtYmVyUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2Zvcm1hdC1udW1iZXIucGlwZVwiO1xyXG5leHBvcnQge0dldE9mZnNldFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9nZXQtb2Zmc2V0LnBpcGVcIjtcclxuZXhwb3J0IHtHZXRUeXBlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dldC10eXBlLnBpcGVcIjtcclxuZXhwb3J0IHtHbG9iYWxUZW1wbGF0ZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9nbG9iYWwtdGVtcGxhdGUucGlwZVwiO1xyXG5leHBvcnQge0dyb3VwQnlQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ3JvdXAtYnkucGlwZVwiO1xyXG5leHBvcnQge0lzVHlwZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9pcy10eXBlLnBpcGVcIjtcclxuZXhwb3J0IHtKb2luUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2pvaW4ucGlwZVwiO1xyXG5leHBvcnQge0tleXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMva2V5cy5waXBlXCI7XHJcbmV4cG9ydCB7TWFwUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL21hcC5waXBlXCI7XHJcbmV4cG9ydCB7TWF4UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL21heC5waXBlXCI7XHJcbmV4cG9ydCB7TWluUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL21pbi5waXBlXCI7XHJcbmV4cG9ydCB7UmVkdWNlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JlZHVjZS5waXBlXCI7XHJcbmV4cG9ydCB7UmVtYXBQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcmVtYXAucGlwZVwiO1xyXG5leHBvcnQge1JlcGxhY2VQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcmVwbGFjZS5waXBlXCI7XHJcbmV4cG9ydCB7UmV2ZXJzZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZXZlcnNlLnBpcGVcIjtcclxuZXhwb3J0IHtSb3VuZFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yb3VuZC5waXBlXCI7XHJcbmV4cG9ydCB7U2FmZUh0bWxQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvc2FmZS1odG1sLnBpcGVcIjtcclxuZXhwb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuZXhwb3J0IHtWYWx1ZXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvdmFsdWVzLnBpcGVcIjtcclxuXHJcbmV4cG9ydCB7QXN5bmNNZXRob2REaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2FzeW5jLW1ldGhvZC5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtCYWNrZ3JvdW5kRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9iYWNrZ3JvdW5kLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge0R5bmFtaWNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9keW5hbWljLXRhYmxlLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge0dsb2JhbFRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9nbG9iYWwtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7SWNvbkRpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvaWNvbi5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtOZ3hUZW1wbGF0ZU91dGxldERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvbmd4LXRlbXBsYXRlLW91dGxldC5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtQYWdpbmF0aW9uRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9wYWdpbmF0aW9uLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1BhZ2luYXRpb25JdGVtRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9wYWdpbmF0aW9uLWl0ZW0uZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7UmVzb3VyY2VJZkRpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvcmVzb3VyY2UtaWYuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7U3RpY2t5RGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9zdGlja3kuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdEl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3Vub3JkZXJlZC1saXN0LWl0ZW0uZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdFRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy91bm9yZGVyZWQtbGlzdC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuXHJcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdENvbXBvbmVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbXBvbmVudHMvdW5vcmRlcmVkLWxpc3QvdW5vcmRlcmVkLWxpc3QuY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7RHluYW1pY1RhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7UGFnaW5hdGlvbk1lbnVDb21wb25lbnR9IGZyb20gXCIuL25neC11dGlscy9jb21wb25lbnRzL3BhZ2luYXRpb24tbWVudS9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50XCI7XHJcblxyXG5leHBvcnQge05neFV0aWxzTW9kdWxlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZVwiO1xyXG4iXX0=
@@ -412,6 +412,7 @@ class IConfiguration {
412
412
  const CONFIG_SERVICE = new InjectionToken("config-service");
413
413
  const BASE_CONFIG = new InjectionToken("base-config");
414
414
  const SCRIPT_PARAMS = new InjectionToken("script-params");
415
+ const ROOT_ELEMENT = new InjectionToken("app-root-element");
415
416
  const ERROR_HANDLER = new InjectionToken("error-handler-callback");
416
417
  // --- Valued promise ---
417
418
  class ValuedPromise extends Promise {
@@ -2077,6 +2078,8 @@ class BaseHttpService {
2077
2078
  this.toaster = toaster;
2078
2079
  this.configs = configs;
2079
2080
  this.request = request;
2081
+ this.requestHeaders = {};
2082
+ this.requestParams = {};
2080
2083
  this.cache = {};
2081
2084
  }
2082
2085
  get name() {
@@ -2285,10 +2288,9 @@ class BaseHttpService {
2285
2288
  makeOptions(options, method = "GET", body) {
2286
2289
  // Set base options
2287
2290
  options = options ? Object.assign({}, options) : {};
2288
- options.params = this.client.makeParams(options.params);
2291
+ options.method = method;
2289
2292
  options.observe = "body";
2290
2293
  options.originalHeaders = options.originalHeaders || options.headers || {};
2291
- options.method = method;
2292
2294
  options.withCredentials = ObjectUtils.isBoolean(options.withCredentials) ? options.withCredentials : this.withCredentials;
2293
2295
  options.body = body || {};
2294
2296
  // Set cookies from server side request
@@ -2296,11 +2298,15 @@ class BaseHttpService {
2296
2298
  if (this.checkHeaders(headers)) {
2297
2299
  options.headers["Cookie"] = headers.cookie;
2298
2300
  }
2299
- options.headers = this.makeHeaders(options.originalHeaders, method);
2301
+ options.headers = this.makeHeaders(options);
2302
+ options.params = this.makeParams(options);
2300
2303
  return options;
2301
2304
  }
2302
- makeHeaders(headers, method = "GET") {
2303
- return this.client.makeHeaders(headers);
2305
+ makeHeaders(options) {
2306
+ return this.client.makeHeaders(Object.assign({}, this.requestHeaders, (options === null || options === void 0 ? void 0 : options.headers) || {}));
2307
+ }
2308
+ makeParams(options) {
2309
+ return this.client.makeParams(Object.assign({}, this.requestParams, (options === null || options === void 0 ? void 0 : options.params) || {}));
2304
2310
  }
2305
2311
  parseResponse(response, url, options) {
2306
2312
  return response;
@@ -2385,9 +2391,10 @@ class StaticAuthService {
2385
2391
  }
2386
2392
 
2387
2393
  class ConfigService {
2388
- constructor(http, universal, baseConfig = null, scriptParams = null) {
2394
+ constructor(http, universal, rootElement, baseConfig = null, scriptParams = null) {
2389
2395
  this.http = http;
2390
2396
  this.universal = universal;
2397
+ this.rootElement = rootElement;
2391
2398
  for (const key in []) {
2392
2399
  Object.defineProperty(Array.prototype, key, {
2393
2400
  enumerable: false
@@ -2402,7 +2409,8 @@ class ConfigService {
2402
2409
  baseUrl = scriptSrc.substr(0, srcParts[0].lastIndexOf("/") + 1);
2403
2410
  }
2404
2411
  }
2405
- this.loadedConfig = Object.assign(!baseUrl ? {} : { baseUrl }, baseConfig || {});
2412
+ this.baseConfig = baseConfig || {};
2413
+ this.loadedConfig = Object.assign(!baseUrl ? {} : { baseUrl }, this.baseConfig);
2406
2414
  this.scriptParameters = scriptParams || {};
2407
2415
  this.loaderFunc = () => {
2408
2416
  this.loader = this.loader || new Promise((resolve, reject) => {
@@ -2472,6 +2480,7 @@ ConfigService.decorators = [
2472
2480
  ConfigService.ctorParameters = () => [
2473
2481
  { type: HttpClient },
2474
2482
  { type: UniversalService },
2483
+ { type: undefined, decorators: [{ type: Inject, args: [ROOT_ELEMENT,] }] },
2475
2484
  { type: IConfiguration, decorators: [{ type: Optional }, { type: Inject, args: [BASE_CONFIG,] }] },
2476
2485
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [SCRIPT_PARAMS,] }] }
2477
2486
  ];
@@ -2642,10 +2651,11 @@ IconService.decorators = [
2642
2651
  IconService.ctorParameters = () => [];
2643
2652
 
2644
2653
  class StaticLanguageService {
2645
- constructor(events, storage, configs, client) {
2654
+ constructor(events, storage, configs, promises, client) {
2646
2655
  this.events = events;
2647
2656
  this.storage = storage;
2648
2657
  this.configs = configs;
2658
+ this.promises = promises;
2649
2659
  this.client = client;
2650
2660
  this.editLang = null;
2651
2661
  this.currentLang = null;
@@ -2714,13 +2724,17 @@ class StaticLanguageService {
2714
2724
  }
2715
2725
  initService() {
2716
2726
  }
2717
- addLanguages(languages) {
2718
- const languageSet = new Set(this.languageList);
2719
- languages.forEach(lang => {
2720
- this.translations[lang] = {};
2721
- languageSet.add(lang);
2727
+ replaceLanguages(languages) {
2728
+ languages = Array.isArray(languages) && languages.length > 0 ? languages : this.languageList;
2729
+ this.languageList = Array.from(new Set(languages));
2730
+ this.languageList.forEach(lang => {
2731
+ this.translations[lang] = this.translations[lang] || {};
2722
2732
  });
2723
- this.languageList = Array.from(languageSet);
2733
+ }
2734
+ addLanguages(languages) {
2735
+ if (!Array.isArray(languages) || languages.length == 0)
2736
+ return;
2737
+ this.replaceLanguages(this.languageList.concat(languages));
2724
2738
  }
2725
2739
  getTranslationSync(key, params = null) {
2726
2740
  const lowerKey = (key || "").toLocaleLowerCase();
@@ -2732,11 +2746,11 @@ class StaticLanguageService {
2732
2746
  throw new Error(`Parameter "key" required`);
2733
2747
  }
2734
2748
  const translation = ObjectUtils.getValue(this.dictionary, key, key) || key;
2735
- return Promise.resolve(this.interpolate(translation, params));
2749
+ return this.promises.resolve(this.interpolate(translation, params));
2736
2750
  }
2737
2751
  getTranslations(...keys) {
2738
- return new Promise(resolve => {
2739
- Promise.all(keys.map(key => this.getTranslation(key))).then(translations => {
2752
+ return this.promises.create(resolve => {
2753
+ this.promises.all(keys.map(key => this.getTranslation(key))).then(translations => {
2740
2754
  resolve(keys.reduce((result, key, i) => {
2741
2755
  result[key] = translations[i];
2742
2756
  return result;
@@ -2778,7 +2792,8 @@ StaticLanguageService.ctorParameters = () => [
2778
2792
  { type: EventsService, decorators: [{ type: Inject, args: [EventsService,] }] },
2779
2793
  { type: StorageService, decorators: [{ type: Inject, args: [StorageService,] }] },
2780
2794
  { type: undefined, decorators: [{ type: Inject, args: [CONFIG_SERVICE,] }] },
2781
- { type: BaseHttpClient }
2795
+ { type: undefined, decorators: [{ type: Inject, args: [PROMISE_SERVICE,] }] },
2796
+ { type: BaseHttpClient, decorators: [{ type: Inject, args: [BaseHttpClient,] }] }
2782
2797
  ];
2783
2798
 
2784
2799
  class LanguageService extends StaticLanguageService {
@@ -3046,6 +3061,9 @@ class PromiseService {
3046
3061
  resolve(value) {
3047
3062
  return this.add(this.zone.runOutsideAngular(() => Promise.resolve(value)));
3048
3063
  }
3064
+ reject(value) {
3065
+ return this.add(this.zone.runOutsideAngular(() => Promise.reject(value)));
3066
+ }
3049
3067
  promiseFinished() {
3050
3068
  if (this.promiseCount == 0)
3051
3069
  return;
@@ -4724,6 +4742,10 @@ class NgxUtilsModule {
4724
4742
  provide: CONFIG_SERVICE,
4725
4743
  useExisting: (!config ? null : config.configService) || ConfigService
4726
4744
  },
4745
+ {
4746
+ provide: ROOT_ELEMENT,
4747
+ useValue: null
4748
+ },
4727
4749
  {
4728
4750
  provide: APP_INITIALIZER,
4729
4751
  useFactory: (!config ? null : config.initializeApp) || loadConfig,
@@ -4759,5 +4781,5 @@ NgxUtilsModule.decorators = [
4759
4781
  * Generated bundle index. Do not edit.
4760
4782
  */
4761
4783
 
4762
- export { API_SERVICE, AUTH_SERVICE, AclService, AjaxRequestHandler, ApiService, ArrayUtils, AsyncMethodDirective, AuthGuard, BASE_CONFIG, BackgroundDirective, BaseHttpClient, BaseHttpService, CONFIG_SERVICE, CanvasColor, CanvasUtils, ChunkPipe, Circle, ConfigService, ConsoleToasterService, DateUtils, DynamicTableComponent, DynamicTableTemplateDirective, ERROR_HANDLER, EXPRESS_REQUEST, EntriesPipe, ErrorHandlerService, EventsService, ExtraItemPropertiesPipe, FactoryDependencies, FileUtils, FilterPipe, FindPipe, FormatNumberPipe, FormatterService, GenericValue, GetOffsetPipe, GetTypePipe, GlobalTemplateDirective, GlobalTemplatePipe, GlobalTemplateService, GroupByPipe, HttpPromise, ICON_SERVICE, IConfiguration, IconDirective, IconService, Initializer, IsTypePipe, JoinPipe, KeysPipe, LANGUAGE_SERVICE, LanguageService, LoaderUtils, MapPipe, MathUtils, MaxPipe, MinPipe, NgxTemplateOutletDirective, NgxUtilsModule, ObjectUtils, ObservableUtils, OpenApiService, PROMISE_SERVICE, PaginationDirective, PaginationItemContext, PaginationItemDirective, PaginationMenuComponent, Point, PromiseService, Rect, ReducePipe, ReflectUtils, RemapPipe, ReplacePipe, ResizeEventPlugin, ResourceIfContext, ResourceIfDirective, ReversePipe, RoundPipe, SCRIPT_PARAMS, SafeHtmlPipe, ScrollEventPlugin, SetUtils, StateService, StaticAuthService, StaticLanguageService, StickyDirective, StorageMode, StorageService, StringUtils, TOASTER_SERVICE, TimerUtils, TranslatePipe, TranslatedUrlSerializer, UniqueUtils, UniversalService, UnorderedListComponent, UnorderedListItemDirective, UnorderedListTemplateDirective, UnorederedListTemplate, ValuedPromise, ValuesPipe, Vector, pipes as ɵa, directives as ɵb, components as ɵc, providers as ɵd, loadConfig as ɵe, StickyClassDirective as ɵf };
4784
+ export { API_SERVICE, AUTH_SERVICE, AclService, AjaxRequestHandler, ApiService, ArrayUtils, AsyncMethodDirective, AuthGuard, BASE_CONFIG, BackgroundDirective, BaseHttpClient, BaseHttpService, CONFIG_SERVICE, CanvasColor, CanvasUtils, ChunkPipe, Circle, ConfigService, ConsoleToasterService, DateUtils, DynamicTableComponent, DynamicTableTemplateDirective, ERROR_HANDLER, EXPRESS_REQUEST, EntriesPipe, ErrorHandlerService, EventsService, ExtraItemPropertiesPipe, FactoryDependencies, FileUtils, FilterPipe, FindPipe, FormatNumberPipe, FormatterService, GenericValue, GetOffsetPipe, GetTypePipe, GlobalTemplateDirective, GlobalTemplatePipe, GlobalTemplateService, GroupByPipe, HttpPromise, ICON_SERVICE, IConfiguration, IconDirective, IconService, Initializer, IsTypePipe, JoinPipe, KeysPipe, LANGUAGE_SERVICE, LanguageService, LoaderUtils, MapPipe, MathUtils, MaxPipe, MinPipe, NgxTemplateOutletDirective, NgxUtilsModule, ObjectUtils, ObservableUtils, OpenApiService, PROMISE_SERVICE, PaginationDirective, PaginationItemContext, PaginationItemDirective, PaginationMenuComponent, Point, PromiseService, ROOT_ELEMENT, Rect, ReducePipe, ReflectUtils, RemapPipe, ReplacePipe, ResizeEventPlugin, ResourceIfContext, ResourceIfDirective, ReversePipe, RoundPipe, SCRIPT_PARAMS, SafeHtmlPipe, ScrollEventPlugin, SetUtils, StateService, StaticAuthService, StaticLanguageService, StickyDirective, StorageMode, StorageService, StringUtils, TOASTER_SERVICE, TimerUtils, TranslatePipe, TranslatedUrlSerializer, UniqueUtils, UniversalService, UnorderedListComponent, UnorderedListItemDirective, UnorderedListTemplateDirective, UnorederedListTemplate, ValuedPromise, ValuesPipe, Vector, pipes as ɵa, directives as ɵb, components as ɵc, providers as ɵd, loadConfig as ɵe, StickyClassDirective as ɵf };
4763
4785
  //# sourceMappingURL=stemy-ngx-utils.js.map