@stemy/ngx-utils 13.6.13 → 13.6.14

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.
Files changed (103) hide show
  1. package/assets/ng.mjs +5 -0
  2. package/package.json +1 -1
  3. package/bundles/stemy-ngx-utils.umd.js +0 -6380
  4. package/bundles/stemy-ngx-utils.umd.js.map +0 -1
  5. package/esm2015/ngx-utils/common-types.js +0 -121
  6. package/esm2015/ngx-utils/components/dynamic-table/dynamic-table.component.js +0 -139
  7. package/esm2015/ngx-utils/components/pagination-menu/pagination-menu.component.js +0 -96
  8. package/esm2015/ngx-utils/components/unordered-list/unordered-list.component.js +0 -51
  9. package/esm2015/ngx-utils/directives/async-method.base.js +0 -66
  10. package/esm2015/ngx-utils/directives/async-method.directive.js +0 -17
  11. package/esm2015/ngx-utils/directives/background.directive.js +0 -51
  12. package/esm2015/ngx-utils/directives/dynamic-table-template.directive.js +0 -19
  13. package/esm2015/ngx-utils/directives/global-template.directive.js +0 -27
  14. package/esm2015/ngx-utils/directives/icon.directive.js +0 -59
  15. package/esm2015/ngx-utils/directives/ngx-template-outlet.directive.js +0 -88
  16. package/esm2015/ngx-utils/directives/pagination-item.directive.js +0 -33
  17. package/esm2015/ngx-utils/directives/pagination.directive.js +0 -76
  18. package/esm2015/ngx-utils/directives/resource-if.directive.js +0 -51
  19. package/esm2015/ngx-utils/directives/sticky-class.directive.js +0 -35
  20. package/esm2015/ngx-utils/directives/sticky.directive.js +0 -48
  21. package/esm2015/ngx-utils/directives/unordered-list-item.directive.js +0 -70
  22. package/esm2015/ngx-utils/directives/unordered-list-template.directive.js +0 -26
  23. package/esm2015/ngx-utils/ngx-utils.module.js +0 -246
  24. package/esm2015/ngx-utils/pipes/chunk.pipe.js +0 -21
  25. package/esm2015/ngx-utils/pipes/entries.pipe.js +0 -24
  26. package/esm2015/ngx-utils/pipes/extra-item-properties.pipe.js +0 -27
  27. package/esm2015/ngx-utils/pipes/filter.pipe.js +0 -33
  28. package/esm2015/ngx-utils/pipes/find.pipe.js +0 -25
  29. package/esm2015/ngx-utils/pipes/format-number.pipe.js +0 -19
  30. package/esm2015/ngx-utils/pipes/get-offset.pipe.js +0 -13
  31. package/esm2015/ngx-utils/pipes/get-type.pipe.js +0 -12
  32. package/esm2015/ngx-utils/pipes/global-template.pipe.js +0 -37
  33. package/esm2015/ngx-utils/pipes/group-by.pipe.js +0 -23
  34. package/esm2015/ngx-utils/pipes/is-type.pipe.js +0 -12
  35. package/esm2015/ngx-utils/pipes/join.pipe.js +0 -15
  36. package/esm2015/ngx-utils/pipes/keys.pipe.js +0 -18
  37. package/esm2015/ngx-utils/pipes/map.pipe.js +0 -25
  38. package/esm2015/ngx-utils/pipes/max.pipe.js +0 -22
  39. package/esm2015/ngx-utils/pipes/min.pipe.js +0 -22
  40. package/esm2015/ngx-utils/pipes/pop.pipe.js +0 -12
  41. package/esm2015/ngx-utils/pipes/reduce.pipe.js +0 -26
  42. package/esm2015/ngx-utils/pipes/remap.pipe.js +0 -28
  43. package/esm2015/ngx-utils/pipes/replace.pipe.js +0 -13
  44. package/esm2015/ngx-utils/pipes/reverse.pipe.js +0 -20
  45. package/esm2015/ngx-utils/pipes/round.pipe.js +0 -19
  46. package/esm2015/ngx-utils/pipes/safe-html.pipe.js +0 -32
  47. package/esm2015/ngx-utils/pipes/shift.pipe.js +0 -12
  48. package/esm2015/ngx-utils/pipes/split.pipe.js +0 -12
  49. package/esm2015/ngx-utils/pipes/translate.pipe.js +0 -81
  50. package/esm2015/ngx-utils/pipes/values.pipe.js +0 -18
  51. package/esm2015/ngx-utils/plugins/resize-event.plugin.js +0 -56
  52. package/esm2015/ngx-utils/plugins/scroll-event.plugin.js +0 -36
  53. package/esm2015/ngx-utils/services/acl.service.js +0 -81
  54. package/esm2015/ngx-utils/services/api.service.js +0 -39
  55. package/esm2015/ngx-utils/services/auth.service.js +0 -14
  56. package/esm2015/ngx-utils/services/base-http.client.js +0 -46
  57. package/esm2015/ngx-utils/services/base-http.service.js +0 -284
  58. package/esm2015/ngx-utils/services/config.service.js +0 -137
  59. package/esm2015/ngx-utils/services/error-handler.service.js +0 -49
  60. package/esm2015/ngx-utils/services/events.service.js +0 -24
  61. package/esm2015/ngx-utils/services/formatter.service.js +0 -46
  62. package/esm2015/ngx-utils/services/global-template.service.js +0 -35
  63. package/esm2015/ngx-utils/services/icon.service.js +0 -24
  64. package/esm2015/ngx-utils/services/language.service.js +0 -129
  65. package/esm2015/ngx-utils/services/open-api.service.js +0 -41
  66. package/esm2015/ngx-utils/services/promise.service.js +0 -52
  67. package/esm2015/ngx-utils/services/state.service.js +0 -181
  68. package/esm2015/ngx-utils/services/static-language.service.js +0 -152
  69. package/esm2015/ngx-utils/services/storage.service.js +0 -48
  70. package/esm2015/ngx-utils/services/toaster.service.js +0 -29
  71. package/esm2015/ngx-utils/services/translated-url.serializer.js +0 -70
  72. package/esm2015/ngx-utils/services/universal.service.js +0 -78
  73. package/esm2015/ngx-utils/utils/ajax-request-handler.js +0 -40
  74. package/esm2015/ngx-utils/utils/array.utils.js +0 -107
  75. package/esm2015/ngx-utils/utils/auth.guard.js +0 -156
  76. package/esm2015/ngx-utils/utils/canvas.utils.js +0 -388
  77. package/esm2015/ngx-utils/utils/date.utils.js +0 -29
  78. package/esm2015/ngx-utils/utils/file-system.js +0 -25
  79. package/esm2015/ngx-utils/utils/file.utils.js +0 -90
  80. package/esm2015/ngx-utils/utils/generic-value.js +0 -20
  81. package/esm2015/ngx-utils/utils/geometry.js +0 -132
  82. package/esm2015/ngx-utils/utils/initializer.js +0 -20
  83. package/esm2015/ngx-utils/utils/loader.utils.js +0 -55
  84. package/esm2015/ngx-utils/utils/math.utils.js +0 -45
  85. package/esm2015/ngx-utils/utils/object.utils.js +0 -320
  86. package/esm2015/ngx-utils/utils/observable.utils.js +0 -63
  87. package/esm2015/ngx-utils/utils/reflect.utils.js +0 -33
  88. package/esm2015/ngx-utils/utils/set.utils.js +0 -20
  89. package/esm2015/ngx-utils/utils/string.utils.js +0 -28
  90. package/esm2015/ngx-utils/utils/timer.utils.js +0 -52
  91. package/esm2015/ngx-utils/utils/unique.utils.js +0 -24
  92. package/esm2015/ngx-utils/utils/vector.js +0 -77
  93. package/esm2015/public_api.js +0 -89
  94. package/esm2015/stemy-ngx-utils.js +0 -7
  95. package/fesm2015/stemy-ngx-utils.js +0 -5060
  96. package/fesm2015/stemy-ngx-utils.js.map +0 -1
  97. package/stemy-ngx-utils.metadata.json +0 -1
  98. package/tools/circular.js +0 -117
  99. package/tools/circular.js.map +0 -1
  100. package/tools/config.js +0 -79
  101. package/tools/config.js.map +0 -1
  102. package/tools/icons.js +0 -14
  103. package/tools/icons.js.map +0 -1
@@ -1,137 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Inject, Injector, Injectable, Optional, isDevMode } from "@angular/core";
3
- import { HttpClient } from "@angular/common/http";
4
- import { UniversalService } from "./universal.service";
5
- import { BASE_CONFIG, IConfiguration, ROOT_ELEMENT, SCRIPT_PARAMS } from "../common-types";
6
- const JSON5 = require("json5");
7
- export class ConfigService {
8
- constructor(http, universal, injector, rootElement, baseConfig = null, scriptParams = null) {
9
- this.http = http;
10
- this.universal = universal;
11
- this.injector = injector;
12
- this.rootElement = rootElement;
13
- for (const key in []) {
14
- Object.defineProperty(Array.prototype, key, {
15
- enumerable: false
16
- });
17
- }
18
- let baseUrl = "";
19
- if (this.universal.isBrowser) {
20
- const currentScript = document.currentScript;
21
- if (!!currentScript) {
22
- const scriptSrc = currentScript.src;
23
- const srcParts = scriptSrc.split(".js");
24
- baseUrl = scriptSrc.substr(0, srcParts[0].lastIndexOf("/") + 1);
25
- }
26
- }
27
- this.baseConfig = baseConfig || {};
28
- this.loadedConfig = Object.assign(!baseUrl ? {} : { baseUrl, baseDomain: this.parseDomain(baseUrl) }, this.baseConfig);
29
- this.scriptParameters = scriptParams || {};
30
- this.loaderFunc = () => {
31
- this.loader = this.loader || new Promise((resolve, reject) => {
32
- this.loadJson().then(config => {
33
- this.loadedConfig = config = Object.assign(this.loadedConfig, config);
34
- this.prepareConfig(config).then(c => {
35
- this.loadedConfig = c;
36
- c.baseUrl = c.baseUrl || "/";
37
- resolve(c);
38
- });
39
- }, reject);
40
- });
41
- return this.loader;
42
- };
43
- this.initService();
44
- }
45
- get load() {
46
- return this.loaderFunc;
47
- }
48
- get config() {
49
- return this.loadedConfig;
50
- }
51
- get configUrl() {
52
- return `${this.loadedConfig.baseUrl}config/config.json`;
53
- }
54
- parseDomain(baseUrl) {
55
- try {
56
- const url = new URL(baseUrl);
57
- const port = url.port && url.port !== "443" && url.port !== "80" ? `:${url.port}` : ``;
58
- return `${url.protocol}//${url.hostname}${port}/`;
59
- }
60
- catch (_a) {
61
- return "/";
62
- }
63
- }
64
- initService() {
65
- }
66
- loadJson() {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- if (this.universal.isServer) {
69
- return Promise.resolve(this.loadedConfig);
70
- }
71
- const configUrl = this.configUrl;
72
- try {
73
- const config5 = yield this.http.get(isDevMode() ? `${configUrl}5` : configUrl, { responseType: "text" }).toPromise();
74
- return JSON5.parse(config5);
75
- }
76
- catch (e) {
77
- try {
78
- const config = yield this.http.get(configUrl).toPromise();
79
- console.log(`Can't parse json5 config: ${e}`);
80
- return config;
81
- }
82
- catch (e) {
83
- throw new Error(`Config file not found at: ${configUrl}`);
84
- }
85
- }
86
- });
87
- }
88
- prepareConfig(config) {
89
- return Promise.resolve(config);
90
- }
91
- cloneRootElem() {
92
- if (this.rootElement instanceof HTMLElement) {
93
- const clone = this.rootElement.cloneNode(true);
94
- const children = Array.from(clone.childNodes);
95
- children.forEach(child => {
96
- if (child instanceof HTMLElement) {
97
- child.remove();
98
- }
99
- });
100
- return clone;
101
- }
102
- return this.rootElement.cloneNode(true);
103
- }
104
- prepareUrl(url, ending) {
105
- var _a;
106
- const project = !this.loadedConfig ? "" : this.loadedConfig.project;
107
- const needsProtocol = (_a = url === null || url === void 0 ? void 0 : url.startsWith("//")) !== null && _a !== void 0 ? _a : false;
108
- url = !needsProtocol && (url === null || url === void 0 ? void 0 : url.startsWith("/")) ? this.loadedConfig.baseDomain + url.substr(1) : url || "";
109
- url = `${url.replace(/\/+$/, "")}${ending}`.replace("[project]", project);
110
- return this.universal.isServer && needsProtocol ? `http:${url}` : url;
111
- }
112
- getConfigValue(key) {
113
- return this.loadedConfig[key];
114
- }
115
- getQueryParameter(name, url) {
116
- url = url || (this.universal.isBrowser ? window.location.href : "");
117
- name = name.replace(/[\[\]]/g, "\\$&");
118
- const regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url);
119
- if (!results)
120
- return null;
121
- if (!results[2])
122
- return "";
123
- return decodeURIComponent(results[2].replace(/\+/g, " "));
124
- }
125
- }
126
- ConfigService.decorators = [
127
- { type: Injectable }
128
- ];
129
- ConfigService.ctorParameters = () => [
130
- { type: HttpClient },
131
- { type: UniversalService },
132
- { type: Injector },
133
- { type: undefined, decorators: [{ type: Inject, args: [ROOT_ELEMENT,] }] },
134
- { type: IConfiguration, decorators: [{ type: Optional }, { type: Inject, args: [BASE_CONFIG,] }] },
135
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [SCRIPT_PARAMS,] }] }
136
- ];
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLFdBQVcsRUFBa0IsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFHL0IsTUFBTSxPQUFPLGFBQWE7SUFvQnRCLFlBQXFCLElBQWdCLEVBQ2hCLFNBQTJCLEVBQzNCLFFBQWtCLEVBQ0ksV0FBZ0IsRUFDZCxhQUE2QixJQUFJLEVBQy9CLGVBQW9CLElBQUk7UUFMbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0ksZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFHdkQsS0FBSyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUU7WUFDbEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFDeEMsVUFBVSxFQUFFLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUMxQixNQUFNLGFBQWEsR0FBSSxRQUFRLENBQUMsYUFBbUMsQ0FBQztZQUNw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QyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVksRUFBRSxHQUFZO1FBQ3hDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLG1CQUFtQixDQUFDLEVBQ3pELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7O1lBdElKLFVBQVU7OztZQU5ILFVBQVU7WUFDVixnQkFBZ0I7WUFGUixRQUFROzRDQStCUCxNQUFNLFNBQUMsWUFBWTtZQTVCQyxjQUFjLHVCQTZCbEMsUUFBUSxZQUFJLE1BQU0sU0FBQyxXQUFXOzRDQUM5QixRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0b3IsIEluamVjdGFibGUsIE9wdGlvbmFsLCBpc0Rldk1vZGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4vdW5pdmVyc2FsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCQVNFX0NPTkZJRywgSUNvbmZpZ1NlcnZpY2UsIElDb25maWd1cmF0aW9uLCBST09UX0VMRU1FTlQsIFNDUklQVF9QQVJBTVN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbmNvbnN0IEpTT041ID0gcmVxdWlyZShcImpzb241XCIpO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElDb25maWdTZXJ2aWNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgYmFzZUNvbmZpZzogSUNvbmZpZ3VyYXRpb247XHJcbiAgICBwcm90ZWN0ZWQgbG9hZGVkQ29uZmlnOiBJQ29uZmlndXJhdGlvbjtcclxuICAgIHByb3RlY3RlZCBzY3JpcHRQYXJhbWV0ZXJzOiBhbnk7XHJcbiAgICBwcm90ZWN0ZWQgbG9hZGVyOiBQcm9taXNlPElDb25maWd1cmF0aW9uPjtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2FkZXJGdW5jOiAoKSA9PiBQcm9taXNlPElDb25maWd1cmF0aW9uPjtcclxuXHJcbiAgICBnZXQgbG9hZCgpOiAoKSA9PiBQcm9taXNlPElDb25maWd1cmF0aW9uPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyRnVuYztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uZmlnKCk6IElDb25maWd1cmF0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZWRDb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmZpZ1VybCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmxvYWRlZENvbmZpZy5iYXNlVXJsfWNvbmZpZy9jb25maWcuanNvbmA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHVuaXZlcnNhbDogVW5pdmVyc2FsU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoUk9PVF9FTEVNRU5UKSByZWFkb25seSByb290RWxlbWVudDogYW55LFxyXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChCQVNFX0NPTkZJRykgYmFzZUNvbmZpZzogSUNvbmZpZ3VyYXRpb24gPSBudWxsLFxyXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChTQ1JJUFRfUEFSQU1TKSBzY3JpcHRQYXJhbXM6IGFueSA9IG51bGwpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBbXSkge1xyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCBrZXksIHtcclxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgYmFzZVVybCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKHRoaXMudW5pdmVyc2FsLmlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U2NyaXB0ID0gKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQgYXMgSFRNTFNjcmlwdEVsZW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAoISFjdXJyZW50U2NyaXB0KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHRTcmMgPSBjdXJyZW50U2NyaXB0LnNyYztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNyY1BhcnRzID0gc2NyaXB0U3JjLnNwbGl0KFwiLmpzXCIpO1xyXG4gICAgICAgICAgICAgICAgYmFzZVVybCA9IHNjcmlwdFNyYy5zdWJzdHIoMCwgc3JjUGFydHNbMF0ubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5iYXNlQ29uZmlnID0gYmFzZUNvbmZpZyB8fCB7fTtcclxuICAgICAgICB0aGlzLmxvYWRlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICAgICFiYXNlVXJsID8ge30gOiB7YmFzZVVybCwgYmFzZURvbWFpbjogdGhpcy5wYXJzZURvbWFpbihiYXNlVXJsKX0sXHJcbiAgICAgICAgICAgIHRoaXMuYmFzZUNvbmZpZ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zY3JpcHRQYXJhbWV0ZXJzID0gc2NyaXB0UGFyYW1zIHx8IHt9O1xyXG4gICAgICAgIHRoaXMubG9hZGVyRnVuYyA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkZXIgPSB0aGlzLmxvYWRlciB8fCBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZEpzb24oKS50aGVuKGNvbmZpZyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRDb25maWcgPSBjb25maWcgPSBPYmplY3QuYXNzaWduKHRoaXMubG9hZGVkQ29uZmlnLCBjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZUNvbmZpZyhjb25maWcpLnRoZW4oYyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkQ29uZmlnID0gYztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXNlVXJsID0gYy5iYXNlVXJsIHx8IFwiL1wiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSwgcmVqZWN0KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRlcjtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaW5pdFNlcnZpY2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgcGFyc2VEb21haW4oYmFzZVVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGJhc2VVcmwpO1xyXG4gICAgICAgICAgICBjb25zdCBwb3J0ID0gdXJsLnBvcnQgJiYgdXJsLnBvcnQgIT09IFwiNDQzXCIgJiYgdXJsLnBvcnQgIT09IFwiODBcIiA/IGA6JHt1cmwucG9ydH1gIDogYGA7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt1cmwucHJvdG9jb2x9Ly8ke3VybC5ob3N0bmFtZX0ke3BvcnR9L2A7XHJcbiAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgbG9hZEpzb24oKTogUHJvbWlzZTxJQ29uZmlndXJhdGlvbj4ge1xyXG4gICAgICAgIGlmICh0aGlzLnVuaXZlcnNhbC5pc1NlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMubG9hZGVkQ29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29uZmlnVXJsID0gdGhpcy5jb25maWdVcmw7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgY29uZmlnNSA9IGF3YWl0IHRoaXMuaHR0cC5nZXQoaXNEZXZNb2RlKCkgPyBgJHtjb25maWdVcmx9NWAgOiBjb25maWdVcmwsIHtyZXNwb25zZVR5cGU6IFwidGV4dFwifSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09ONS5wYXJzZShjb25maWc1KTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0KGNvbmZpZ1VybCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgQ2FuJ3QgcGFyc2UganNvbjUgY29uZmlnOiAke2V9YCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlIG5vdCBmb3VuZCBhdDogJHtjb25maWdVcmx9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHByZXBhcmVDb25maWcoY29uZmlnOiBJQ29uZmlndXJhdGlvbik6IFByb21pc2U8SUNvbmZpZ3VyYXRpb24+IHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvbmVSb290RWxlbSgpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLnJvb3RFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgY2xvbmUgPSB0aGlzLnJvb3RFbGVtZW50LmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20oY2xvbmUuY2hpbGROb2Rlcyk7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBjbG9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdEVsZW1lbnQuY2xvbmVOb2RlKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByZXBhcmVVcmwodXJsOiBzdHJpbmcsIGVuZGluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwcm9qZWN0ID0gIXRoaXMubG9hZGVkQ29uZmlnID8gXCJcIiA6IHRoaXMubG9hZGVkQ29uZmlnLnByb2plY3Q7XHJcbiAgICAgICAgY29uc3QgbmVlZHNQcm90b2NvbCA9IHVybD8uc3RhcnRzV2l0aChcIi8vXCIpID8/IGZhbHNlO1xyXG4gICAgICAgIHVybCA9ICFuZWVkc1Byb3RvY29sICYmIHVybD8uc3RhcnRzV2l0aChcIi9cIikgPyB0aGlzLmxvYWRlZENvbmZpZy5iYXNlRG9tYWluICsgdXJsLnN1YnN0cigxKSA6IHVybCB8fCBcIlwiO1xyXG4gICAgICAgIHVybCA9IGAke3VybC5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpfSR7ZW5kaW5nfWAucmVwbGFjZShcIltwcm9qZWN0XVwiLCBwcm9qZWN0KTtcclxuICAgICAgICByZXR1cm4gdGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIgJiYgbmVlZHNQcm90b2NvbCA/IGBodHRwOiR7dXJsfWAgOiB1cmw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZENvbmZpZ1trZXldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFF1ZXJ5UGFyYW1ldGVyKG5hbWU6IHN0cmluZywgdXJsPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB1cmwgPSB1cmwgfHwgKHRoaXMudW5pdmVyc2FsLmlzQnJvd3NlciA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmIDogXCJcIik7XHJcbiAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgvW1xcW1xcXV0vZywgXCJcXFxcJCZcIik7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFwiWz8mXVwiICsgbmFtZSArIFwiKD0oW14mI10qKXwmfCN8JClcIiksXHJcbiAgICAgICAgICAgIHJlc3VsdHMgPSByZWdleC5leGVjKHVybCk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHRzKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBpZiAoIXJlc3VsdHNbMl0pIHJldHVybiBcIlwiO1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1syXS5yZXBsYWNlKC9cXCsvZywgXCIgXCIpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,49 +0,0 @@
1
- import { ErrorHandler, Injectable, Injector } from "@angular/core";
2
- import { UniversalService } from "./universal.service";
3
- import { ERROR_HANDLER, TOASTER_SERVICE } from "../common-types";
4
- export class ErrorHandlerService extends ErrorHandler {
5
- constructor(injector) {
6
- super();
7
- this.injector = injector;
8
- this.errorMap = {};
9
- }
10
- handleError(error) {
11
- try {
12
- this.universal = this.universal || this.injector.get(UniversalService);
13
- }
14
- catch (e) {
15
- return;
16
- }
17
- const date = new Date();
18
- try {
19
- this.errorCb = this.errorCb || this.injector.get(ERROR_HANDLER);
20
- this.errorCb(`[${date}]: ${error.message}\n${error.stack}`);
21
- }
22
- catch (e) {
23
- if (this.universal.isServer) {
24
- console.error(`[${date}]: ${error.message}\n${error.stack}`);
25
- return;
26
- }
27
- }
28
- if (this.universal.isServer)
29
- return;
30
- const key = typeof btoa !== "undefined" ? btoa(unescape(encodeURIComponent(`${error.message} ${error.stack}`))) : error.message;
31
- if (this.errorMap[key] && this.errorMap[key].getTime() > date.getTime() - 5000)
32
- return;
33
- this.errorMap[key] = date;
34
- try {
35
- this.toaster = this.toaster || this.injector.get(TOASTER_SERVICE);
36
- this.toaster.error(`[${date}]: ${error.message}\n${error.stack}`);
37
- }
38
- catch (e) {
39
- }
40
- console.error(`[${date}]: ${error.message}\n${error.stack}`);
41
- }
42
- }
43
- ErrorHandlerService.decorators = [
44
- { type: Injectable }
45
- ];
46
- ErrorHandlerService.ctorParameters = () => [
47
- { type: Injector }
48
- ];
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9zZXJ2aWNlcy9lcnJvci1oYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQXlDLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBR3RHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBT2pELFlBQXFCLFFBQWtCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDcEIsSUFBSTtZQUNBLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzFFO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUk7WUFDQSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksTUFBTSxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQy9EO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzdELE9BQU87YUFDVjtTQUNKO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLE9BQU8sSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ2hJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJO1lBQUUsT0FBTztRQUN2RixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJO1lBQ0EsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDckU7UUFBQyxPQUFPLENBQUMsRUFBRTtTQUNYO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksTUFBTSxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7OztZQXZDSixVQUFVOzs7WUFKdUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5pbXBvcnQge0VSUk9SX0hBTkRMRVIsIEVycm9ySGFuZGxlckNhbGxiYWNrLCBJVG9hc3RlclNlcnZpY2UsIFRPQVNURVJfU0VSVklDRX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXJyb3JIYW5kbGVyU2VydmljZSBleHRlbmRzIEVycm9ySGFuZGxlciB7XHJcblxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBJVG9hc3RlclNlcnZpY2U7XHJcbiAgICBwcml2YXRlIHVuaXZlcnNhbDogVW5pdmVyc2FsU2VydmljZTtcclxuICAgIHByaXZhdGUgZXJyb3JDYjogRXJyb3JIYW5kbGVyQ2FsbGJhY2s7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yTWFwOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmVycm9yTWFwID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3I6IEVycm9yKTogdm9pZCB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy51bml2ZXJzYWwgPSB0aGlzLnVuaXZlcnNhbCB8fCB0aGlzLmluamVjdG9yLmdldChVbml2ZXJzYWxTZXJ2aWNlKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvckNiID0gdGhpcy5lcnJvckNiIHx8IHRoaXMuaW5qZWN0b3IuZ2V0KEVSUk9SX0hBTkRMRVIpO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yQ2IoYFske2RhdGV9XTogJHtlcnJvci5tZXNzYWdlfVxcbiR7ZXJyb3Iuc3RhY2t9YCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFske2RhdGV9XTogJHtlcnJvci5tZXNzYWdlfVxcbiR7ZXJyb3Iuc3RhY2t9YCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudW5pdmVyc2FsLmlzU2VydmVyKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qga2V5ID0gdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIgPyBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChgJHtlcnJvci5tZXNzYWdlfSAke2Vycm9yLnN0YWNrfWApKSkgOiBlcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIGlmICh0aGlzLmVycm9yTWFwW2tleV0gJiYgdGhpcy5lcnJvck1hcFtrZXldLmdldFRpbWUoKSA+IGRhdGUuZ2V0VGltZSgpIC0gNTAwMCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuZXJyb3JNYXBba2V5XSA9IGRhdGU7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyID0gdGhpcy50b2FzdGVyIHx8IHRoaXMuaW5qZWN0b3IuZ2V0KFRPQVNURVJfU0VSVklDRSk7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5lcnJvcihgWyR7ZGF0ZX1dOiAke2Vycm9yLm1lc3NhZ2V9XFxuJHtlcnJvci5zdGFja31gKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFske2RhdGV9XTogJHtlcnJvci5tZXNzYWdlfVxcbiR7ZXJyb3Iuc3RhY2t9YCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,24 +0,0 @@
1
- import { EventEmitter, Injectable } from "@angular/core";
2
- export class EventsService {
3
- constructor() {
4
- this.eventForwarded = new EventEmitter();
5
- this.stickyUpdated = new EventEmitter();
6
- this.languageChanged = new EventEmitter();
7
- this.sticky = false;
8
- }
9
- get isSticky() {
10
- return this.sticky;
11
- }
12
- event(e) {
13
- this.eventForwarded.emit(e);
14
- }
15
- updateSticky(sticky) {
16
- this.sticky = sticky;
17
- this.stickyUpdated.emit(sticky);
18
- }
19
- }
20
- EventsService.decorators = [
21
- { type: Injectable }
22
- ];
23
- EventsService.ctorParameters = () => [];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sT0FBTyxhQUFhO0lBWXRCO1FBQ0ksSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQVRELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBU0QsS0FBSyxDQUFDLENBQVE7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWU7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7O1lBM0JKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEV2ZW50c1NlcnZpY2Uge1xyXG5cclxuICAgIHJlYWRvbmx5IGV2ZW50Rm9yd2FyZGVkOiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xyXG4gICAgcmVhZG9ubHkgc3RpY2t5VXBkYXRlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG4gICAgcmVhZG9ubHkgbGFuZ3VhZ2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuXHJcbiAgICBwcml2YXRlIHN0aWNreTogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzU3RpY2t5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0aWNreTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmV2ZW50Rm9yd2FyZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICAgICAgICB0aGlzLnN0aWNreVVwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgICAgICB0aGlzLnN0aWNreSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGV2ZW50KGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ldmVudEZvcndhcmRlZC5lbWl0KGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVN0aWNreShzdGlja3k6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN0aWNreSA9IHN0aWNreTtcclxuICAgICAgICB0aGlzLnN0aWNreVVwZGF0ZWQuZW1pdChzdGlja3kpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,46 +0,0 @@
1
- import { Inject, Injectable } from "@angular/core";
2
- import { LANGUAGE_SERVICE } from "../common-types";
3
- import { ObjectUtils } from "../utils/object.utils";
4
- import { MathUtils } from "../utils/math.utils";
5
- export class FormatterService {
6
- constructor(language) {
7
- this.language = language;
8
- }
9
- get defaultPrecision() {
10
- return 2;
11
- }
12
- get defaultNumberFormat() {
13
- return `num + ' mm'`;
14
- }
15
- get defaultDivider() {
16
- return 1;
17
- }
18
- roundNumber(value, precision, divider) {
19
- return MathUtils.round(value, this.getPrecision(precision), divider || this.defaultDivider);
20
- }
21
- formatNumber(value, format, precision, divider, minDigits) {
22
- precision = this.getPrecision(precision);
23
- minDigits = minDigits !== null && minDigits !== void 0 ? minDigits : precision;
24
- divider = divider || this.defaultDivider;
25
- const num = ObjectUtils.isNumber(value) ? value : parseFloat(value) || 0;
26
- const str = (num / divider).toLocaleString(this.language.currentLanguage, {
27
- minimumFractionDigits: minDigits,
28
- maximumFractionDigits: precision,
29
- useGrouping: false
30
- });
31
- return ObjectUtils.evaluate(format || this.defaultNumberFormat, { num: str });
32
- }
33
- formatMillimeter(value, precision, divider) {
34
- return this.formatNumber(value, `num + ' mm'`, precision, divider);
35
- }
36
- getPrecision(precision) {
37
- return ObjectUtils.isNumber(precision) ? precision : this.defaultPrecision;
38
- }
39
- }
40
- FormatterService.decorators = [
41
- { type: Injectable }
42
- ];
43
- FormatterService.ctorParameters = () => [
44
- { type: undefined, decorators: [{ type: Inject, args: [LANGUAGE_SERVICE,] }] }
45
- ];
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxnQkFBZ0I7SUFjekIsWUFBNkMsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFFdkUsQ0FBQztJQWRELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFNRCxXQUFXLENBQUMsS0FBYSxFQUFFLFNBQWtCLEVBQUUsT0FBZ0I7UUFDM0QsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFzQixFQUFFLE1BQWUsRUFBRSxTQUFrQixFQUFFLE9BQWdCLEVBQUUsU0FBa0I7UUFDMUcsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsU0FBUyxHQUFHLFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxHQUFJLFNBQVMsQ0FBQztRQUNuQyxPQUFPLEdBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRTtZQUN0RSxxQkFBcUIsRUFBRSxTQUFTO1lBQ2hDLHFCQUFxQixFQUFFLFNBQVM7WUFDaEMsV0FBVyxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFNBQWtCLEVBQUUsT0FBZ0I7UUFDaEUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxZQUFZLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvRSxDQUFDOzs7WUExQ0osVUFBVTs7OzRDQWVNLE1BQU0sU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJTGFuZ3VhZ2VTZXJ2aWNlLCBMQU5HVUFHRV9TRVJWSUNFfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuLi91dGlscy9vYmplY3QudXRpbHNcIjtcclxuaW1wb3J0IHtNYXRoVXRpbHN9IGZyb20gXCIuLi91dGlscy9tYXRoLnV0aWxzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXR0ZXJTZXJ2aWNlIHtcclxuXHJcbiAgICBnZXQgZGVmYXVsdFByZWNpc2lvbigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZWZhdWx0TnVtYmVyRm9ybWF0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGBudW0gKyAnIG1tJ2A7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlZmF1bHREaXZpZGVyKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMQU5HVUFHRV9TRVJWSUNFKSBwdWJsaWMgbGFuZ3VhZ2U6IElMYW5ndWFnZVNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcm91bmROdW1iZXIodmFsdWU6IG51bWJlciwgcHJlY2lzaW9uPzogbnVtYmVyLCBkaXZpZGVyPzogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTWF0aFV0aWxzLnJvdW5kKHZhbHVlLCB0aGlzLmdldFByZWNpc2lvbihwcmVjaXNpb24pLCBkaXZpZGVyIHx8IHRoaXMuZGVmYXVsdERpdmlkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmb3JtYXQ/OiBzdHJpbmcsIHByZWNpc2lvbj86IG51bWJlciwgZGl2aWRlcj86IG51bWJlciwgbWluRGlnaXRzPzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBwcmVjaXNpb24gPSB0aGlzLmdldFByZWNpc2lvbihwcmVjaXNpb24pO1xyXG4gICAgICAgIG1pbkRpZ2l0cyA9IG1pbkRpZ2l0cyA/PyBwcmVjaXNpb247XHJcbiAgICAgICAgZGl2aWRlciA9IGRpdmlkZXIgfHwgdGhpcy5kZWZhdWx0RGl2aWRlcjtcclxuICAgICAgICBjb25zdCBudW0gPSBPYmplY3RVdGlscy5pc051bWJlcih2YWx1ZSkgPyA8bnVtYmVyPnZhbHVlIDogcGFyc2VGbG9hdCg8c3RyaW5nPnZhbHVlKSB8fCAwO1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IChudW0gLyBkaXZpZGVyKS50b0xvY2FsZVN0cmluZyh0aGlzLmxhbmd1YWdlLmN1cnJlbnRMYW5ndWFnZSwge1xyXG4gICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IG1pbkRpZ2l0cyxcclxuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBwcmVjaXNpb24sXHJcbiAgICAgICAgICAgIHVzZUdyb3VwaW5nOiBmYWxzZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5ldmFsdWF0ZShmb3JtYXQgfHwgdGhpcy5kZWZhdWx0TnVtYmVyRm9ybWF0LCB7bnVtOiBzdHJ9KTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtYXRNaWxsaW1ldGVyKHZhbHVlOiBudW1iZXIsIHByZWNpc2lvbj86IG51bWJlciwgZGl2aWRlcj86IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlLCBgbnVtICsgJyBtbSdgLCBwcmVjaXNpb24sIGRpdmlkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRQcmVjaXNpb24ocHJlY2lzaW9uOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5pc051bWJlcihwcmVjaXNpb24pID8gcHJlY2lzaW9uIDogdGhpcy5kZWZhdWx0UHJlY2lzaW9uO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { EventEmitter, Injectable } from "@angular/core";
2
- import { ObjectUtils } from "../utils/object.utils";
3
- export class GlobalTemplateService {
4
- constructor() {
5
- this.templatesUpdated = new EventEmitter();
6
- this.globalTemplates = {};
7
- this.componentModifiers = {};
8
- }
9
- get(id, component) {
10
- const template = this.globalTemplates[id];
11
- if (!template)
12
- return undefined;
13
- const modifier = this.componentModifiers[id];
14
- if (ObjectUtils.isFunction(modifier) && component) {
15
- modifier(component);
16
- }
17
- return template;
18
- }
19
- add(id, template) {
20
- this.globalTemplates[id] = template;
21
- this.templatesUpdated.emit();
22
- }
23
- remove(id) {
24
- delete this.globalTemplates[id];
25
- this.templatesUpdated.emit();
26
- }
27
- addComponentModifier(id, modifier) {
28
- this.componentModifiers[id] = modifier;
29
- }
30
- }
31
- GlobalTemplateService.decorators = [
32
- { type: Injectable }
33
- ];
34
- GlobalTemplateService.ctorParameters = () => [];
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXRlbXBsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2dsb2JhbC10ZW1wbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUlsRCxNQUFNLE9BQU8scUJBQXFCO0lBTzlCO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVUsRUFBRSxTQUFlO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsRUFBRTtZQUMvQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkI7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVUsRUFBRSxRQUEwQjtRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsRUFBVSxFQUFFLFFBQWlDO1FBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDM0MsQ0FBQzs7O1lBcENKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgVGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuLi91dGlscy9vYmplY3QudXRpbHNcIjtcclxuaW1wb3J0IHtHbG9iYWxDb21wb25lbnRNb2RpZmllciwgSUdsb2JhbFRlbXBsYXRlc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsVGVtcGxhdGVTZXJ2aWNlIGltcGxlbWVudHMgSUdsb2JhbFRlbXBsYXRlcyB7XHJcblxyXG4gICAgcmVhZG9ubHkgdGVtcGxhdGVzVXBkYXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xyXG5cclxuICAgIHByb3RlY3RlZCBnbG9iYWxUZW1wbGF0ZXM6IHsgW2lkOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH07XHJcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50TW9kaWZpZXJzOiB7IFtpZDogc3RyaW5nXTogR2xvYmFsQ29tcG9uZW50TW9kaWZpZXIgfTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlc1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgICAgICB0aGlzLmdsb2JhbFRlbXBsYXRlcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50TW9kaWZpZXJzID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KGlkOiBzdHJpbmcsIGNvbXBvbmVudD86IGFueSk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5nbG9iYWxUZW1wbGF0ZXNbaWRdO1xyXG4gICAgICAgIGlmICghdGVtcGxhdGUpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgY29uc3QgbW9kaWZpZXIgPSB0aGlzLmNvbXBvbmVudE1vZGlmaWVyc1tpZF07XHJcbiAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzRnVuY3Rpb24obW9kaWZpZXIpICYmIGNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICBtb2RpZmllcihjb21wb25lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGVtcGxhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKGlkOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5nbG9iYWxUZW1wbGF0ZXNbaWRdID0gdGVtcGxhdGU7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXNVcGRhdGVkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmdsb2JhbFRlbXBsYXRlc1tpZF07XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXNVcGRhdGVkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRDb21wb25lbnRNb2RpZmllcihpZDogc3RyaW5nLCBtb2RpZmllcjogR2xvYmFsQ29tcG9uZW50TW9kaWZpZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudE1vZGlmaWVyc1tpZF0gPSBtb2RpZmllcjtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,24 +0,0 @@
1
- import { EventEmitter, Injectable } from "@angular/core";
2
- export class IconService {
3
- constructor() {
4
- this.iconsLoaded = new EventEmitter();
5
- this.disabled = false;
6
- }
7
- get isDisabled() {
8
- return this.disabled;
9
- }
10
- set isDisabled(value) {
11
- this.disabled = value;
12
- this.iconsLoaded.emit();
13
- }
14
- getIcon(icon, activeIcon, active) {
15
- icon = typeof icons == "undefined" ? icon : (icons[icon] || icon);
16
- activeIcon = typeof icons == "undefined" ? activeIcon : (icons[activeIcon] || icon);
17
- return Promise.resolve(active ? activeIcon : icon);
18
- }
19
- }
20
- IconService.decorators = [
21
- { type: Injectable }
22
- ];
23
- IconService.ctorParameters = () => [];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9zZXJ2aWNlcy9pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFRdkQsTUFBTSxPQUFPLFdBQVc7SUFlcEI7UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQWhCRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBV0QsT0FBTyxDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLE1BQWU7UUFDckQsSUFBSSxHQUFHLE9BQU8sS0FBSyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNsRSxVQUFVLEdBQUcsT0FBTyxLQUFLLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7O1lBekJKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJSWNvblNlcnZpY2V9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbmRlY2xhcmUgY29uc3QgaWNvbnM6IHtcclxuICAgIFtpY29uOiBzdHJpbmddOiBzdHJpbmc7XHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJY29uU2VydmljZSBpbXBsZW1lbnRzIElJY29uU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5pY29uc0xvYWRlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zTG9hZGVkOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pY29uc0xvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJY29uKGljb246IHN0cmluZywgYWN0aXZlSWNvbjogc3RyaW5nLCBhY3RpdmU6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIGljb24gPSB0eXBlb2YgaWNvbnMgPT0gXCJ1bmRlZmluZWRcIiA/IGljb24gOiAoaWNvbnNbaWNvbl0gfHwgaWNvbik7XHJcbiAgICAgICAgYWN0aXZlSWNvbiA9IHR5cGVvZiBpY29ucyA9PSBcInVuZGVmaW5lZFwiID8gYWN0aXZlSWNvbiA6IChpY29uc1thY3RpdmVJY29uXSB8fCBpY29uKTtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFjdGl2ZSA/IGFjdGl2ZUljb24gOiBpY29uKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,129 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from "@angular/core";
3
- import { BehaviorSubject, combineLatest } from "rxjs";
4
- import { map } from "rxjs/operators";
5
- import { StaticLanguageService } from "./static-language.service";
6
- export class LanguageService extends StaticLanguageService {
7
- get currentLanguage() {
8
- return this.currentLang || this.defaultLanguage;
9
- }
10
- set currentLanguage(lang) {
11
- this.useLanguage(lang).then(() => {
12
- this.events.languageChanged.emit(lang);
13
- });
14
- }
15
- get settings() {
16
- const settings = this.languageSettings.value;
17
- return !settings ? {} : settings.settings[this.currentLanguage] || {};
18
- }
19
- get $settings() {
20
- this.loadSettings().then(s => this.languageSettings.next(s));
21
- return combineLatest([this.languageSettings, this.events.languageChanged]).pipe(map(([settings, lang]) => {
22
- return !settings ? {} : settings.settings[lang] || {};
23
- }));
24
- }
25
- initService() {
26
- this.client.setExtraRequestParam("language", "de");
27
- this.translationRequests = {};
28
- this.languageSettings = new BehaviorSubject(null);
29
- if (this.universal.isServer)
30
- return;
31
- window["setLanguage"] = (lang) => {
32
- this.currentLanguage = lang;
33
- };
34
- }
35
- initFromSettings() {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const defaultLanguage = this.defaultLanguage;
38
- const settings = yield this.loadSettings();
39
- this.languageSettings.next(settings);
40
- const devLanguages = settings.devLanguages || [];
41
- this.languageList = (settings.languages || []).filter(lang => {
42
- var _a;
43
- const unavailable = (_a = settings.settings[lang]) === null || _a === void 0 ? void 0 : _a.unavailable;
44
- if (unavailable) {
45
- const parts = unavailable.split("/");
46
- const value = parts[0] || parts[1];
47
- const flags = parts.length > 1 ? parts[parts.length - 1] : "g";
48
- if (new RegExp(value, flags).test(this.config.baseDomain))
49
- return false;
50
- }
51
- return devLanguages.indexOf(lang) < 0;
52
- });
53
- if (this.languageList.length === 0) {
54
- this.languageList = [defaultLanguage];
55
- }
56
- const lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage || this.languageList[0] : defaultLanguage;
57
- yield this.useLanguage(lang);
58
- this.events.languageChanged.emit(lang);
59
- });
60
- }
61
- getTranslation(key, params = null) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- if (!key)
64
- return "";
65
- try {
66
- const lowerKey = key.toLocaleLowerCase();
67
- const dict = yield this.loadDictionary();
68
- if (lowerKey in dict) {
69
- return this.interpolate(dict[lowerKey], params);
70
- }
71
- return this.interpolate(key, params);
72
- }
73
- catch (reason) {
74
- console.log("ERROR IN TRANSLATIONS", reason);
75
- return key;
76
- }
77
- });
78
- }
79
- useLanguage(lang) {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- lang = this.languages.indexOf(lang) < 0 ? this.languages[0] : lang;
82
- this.client.setExtraRequestParam("language", lang);
83
- if (lang == this.currentLang)
84
- return this.dictionary;
85
- this.storage.set("language", lang);
86
- this.currentLang = lang;
87
- const dict = yield this.loadDictionary();
88
- this.translations[lang] = dict;
89
- return dict;
90
- });
91
- }
92
- loadDictionary() {
93
- const lang = this.currentLanguage;
94
- this.translationRequests[lang] = this.translationRequests[lang] || new Promise(resolve => {
95
- this.httpClient.get(`${this.config.translationUrl}${lang}`).toPromise().then(response => {
96
- response = response || {};
97
- resolve(Object.keys(response).reduce((result, key) => {
98
- result[key.toLocaleLowerCase()] = response[key];
99
- return result;
100
- }, {}));
101
- }, () => {
102
- resolve({});
103
- });
104
- });
105
- return this.translationRequests[lang];
106
- }
107
- loadSettings() {
108
- this.settingsPromise = this.settingsPromise || (this.client.get(`${this.config.translationUrl}languageSettings`).toPromise())
109
- .then((settings) => {
110
- return settings;
111
- }, () => {
112
- return {
113
- languages: ["de", "en", "hu"],
114
- devLanguages: [],
115
- defaultLanguage: "de",
116
- settings: {
117
- de: {},
118
- hu: {},
119
- en: {}
120
- }
121
- };
122
- });
123
- return this.settingsPromise;
124
- }
125
- }
126
- LanguageService.decorators = [
127
- { type: Injectable }
128
- ];
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFHaEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0lBTXRELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUM3QyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0Is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WTtRQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ3hILElBQUksQ0FDRCxDQUFDLFFBQTJCLEVBQUUsRUFBRTtZQUM1QixPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxFQUFFO1lBQ0osT0FBTztnQkFDSCxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztnQkFDN0IsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUU7b0JBQ04sRUFBRSxFQUFFLEVBQUU7b0JBQ04sRUFBRSxFQUFFLEVBQUU7b0JBQ04sRUFBRSxFQUFFLEVBQUU7aUJBQ1Q7YUFDSixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQzs7O1lBM0hKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlU2V0dGluZywgSUxhbmd1YWdlU2V0dGluZ3MsIElUcmFuc2xhdGlvbnN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtTdGF0aWNMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlcnZpY2UgZXh0ZW5kcyBTdGF0aWNMYW5ndWFnZVNlcnZpY2Uge1xyXG5cclxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGlvblJlcXVlc3RzOiBJVHJhbnNsYXRpb25zO1xyXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzUHJvbWlzZTogUHJvbWlzZTxJTGFuZ3VhZ2VTZXR0aW5ncz47XHJcbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2VTZXR0aW5nczogQmVoYXZpb3JTdWJqZWN0PElMYW5ndWFnZVNldHRpbmdzPjtcclxuXHJcbiAgICBnZXQgY3VycmVudExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmcgfHwgdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGN1cnJlbnRMYW5ndWFnZShsYW5nOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnVzZUxhbmd1YWdlKGxhbmcpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuZW1pdChsYW5nKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2V0dGluZ3MoKTogSUxhbmd1YWdlU2V0dGluZyB7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLmxhbmd1YWdlU2V0dGluZ3MudmFsdWU7XHJcbiAgICAgICAgcmV0dXJuICFzZXR0aW5ncyA/IHt9IDogc2V0dGluZ3Muc2V0dGluZ3NbdGhpcy5jdXJyZW50TGFuZ3VhZ2VdIHx8IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCAkc2V0dGluZ3MoKTogT2JzZXJ2YWJsZTxJTGFuZ3VhZ2VTZXR0aW5nPiB7XHJcbiAgICAgICAgdGhpcy5sb2FkU2V0dGluZ3MoKS50aGVuKHMgPT4gdGhpcy5sYW5ndWFnZVNldHRpbmdzLm5leHQocykpO1xyXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmxhbmd1YWdlU2V0dGluZ3MsIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZF0pLnBpcGUobWFwKChbc2V0dGluZ3MsIGxhbmddKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAhc2V0dGluZ3MgPyB7fSA6IHNldHRpbmdzLnNldHRpbmdzW2xhbmcgYXMgc3RyaW5nXSB8fCB7fTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xpZW50LnNldEV4dHJhUmVxdWVzdFBhcmFtKFwibGFuZ3VhZ2VcIiwgXCJkZVwiKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdHMgPSB7fTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2V0dGluZ3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElMYW5ndWFnZVNldHRpbmdzPihudWxsKTtcclxuICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHJldHVybjtcclxuICAgICAgICB3aW5kb3dbXCJzZXRMYW5ndWFnZVwiXSA9IChsYW5nOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSBsYW5nO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5pdEZyb21TZXR0aW5ncygpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2V0dGluZ3MubmV4dChzZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc3QgZGV2TGFuZ3VhZ2VzID0gc2V0dGluZ3MuZGV2TGFuZ3VhZ2VzIHx8IFtdO1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0ID0gKHNldHRpbmdzLmxhbmd1YWdlcyB8fCBbXSkuZmlsdGVyKGxhbmcgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB1bmF2YWlsYWJsZSA9IHNldHRpbmdzLnNldHRpbmdzW2xhbmddPy51bmF2YWlsYWJsZTtcclxuICAgICAgICAgICAgaWYgKHVuYXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHVuYXZhaWxhYmxlLnNwbGl0KFwiL1wiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFydHNbMF0gfHwgcGFydHNbMV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmbGFncyA9IHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA6IFwiZ1wiO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ldyBSZWdFeHAodmFsdWUsIGZsYWdzKS50ZXN0KHRoaXMuY29uZmlnLmJhc2VEb21haW4pKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGRldkxhbmd1YWdlcy5pbmRleE9mKGxhbmcpIDwgMDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodGhpcy5sYW5ndWFnZUxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0ID0gW2RlZmF1bHRMYW5ndWFnZV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGRlZmF1bHRMYW5ndWFnZSkgPCAwID8gc2V0dGluZ3MuZGVmYXVsdExhbmd1YWdlIHx8IHRoaXMubGFuZ3VhZ2VMaXN0WzBdIDogZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMudXNlTGFuZ3VhZ2UobGFuZyk7XHJcbiAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLmVtaXQobGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtczogYW55ID0gbnVsbCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgaWYgKCFrZXkpIHJldHVybiBcIlwiO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvd2VyS2V5ID0ga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpY3QgPSBhd2FpdCB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XHJcbiAgICAgICAgICAgIGlmIChsb3dlcktleSBpbiBkaWN0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShkaWN0W2xvd2VyS2V5XSwgcGFyYW1zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShrZXksIHBhcmFtcyk7XHJcbiAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRVJST1IgSU4gVFJBTlNMQVRJT05TXCIsIHJlYXNvbik7XHJcbiAgICAgICAgICAgIHJldHVybiBrZXk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyB1c2VMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiBQcm9taXNlPElUcmFuc2xhdGlvbnM+IHtcclxuICAgICAgICBsYW5nID0gdGhpcy5sYW5ndWFnZXMuaW5kZXhPZihsYW5nKSA8IDAgPyB0aGlzLmxhbmd1YWdlc1swXSA6IGxhbmc7XHJcbiAgICAgICAgdGhpcy5jbGllbnQuc2V0RXh0cmFSZXF1ZXN0UGFyYW0oXCJsYW5ndWFnZVwiLCBsYW5nKTtcclxuICAgICAgICBpZiAobGFuZyA9PSB0aGlzLmN1cnJlbnRMYW5nKSByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5O1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoXCJsYW5ndWFnZVwiLCBsYW5nKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5nID0gbGFuZztcclxuICAgICAgICBjb25zdCBkaWN0ID0gYXdhaXQgdGhpcy5sb2FkRGljdGlvbmFyeSgpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmddID0gZGljdDtcclxuICAgICAgICByZXR1cm4gZGljdDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbG9hZERpY3Rpb25hcnkoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBjb25zdCBsYW5nID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddID0gdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddIHx8IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnLnRyYW5zbGF0aW9uVXJsfSR7bGFuZ31gKS50b1Byb21pc2UoKS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UgfHwge307XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleS50b0xvY2FsZUxvd2VyQ2FzZSgpXSA9IHJlc3BvbnNlW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0sIHt9KSk7XHJcbiAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTxJTGFuZ3VhZ2VTZXR0aW5ncz4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NQcm9taXNlID0gdGhpcy5zZXR0aW5nc1Byb21pc2UgfHwgKHRoaXMuY2xpZW50LmdldChgJHt0aGlzLmNvbmZpZy50cmFuc2xhdGlvblVybH1sYW5ndWFnZVNldHRpbmdzYCkudG9Qcm9taXNlKCkpXHJcbiAgICAgICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgICAgICAgKHNldHRpbmdzOiBJTGFuZ3VhZ2VTZXR0aW5ncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5ncztcclxuICAgICAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZXM6IFtcImRlXCIsIFwiZW5cIiwgXCJodVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGV2TGFuZ3VhZ2VzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExhbmd1YWdlOiBcImRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZToge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodToge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbjoge31cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NQcm9taXNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,41 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Inject, Injectable } from "@angular/core";
3
- import { API_SERVICE } from "../common-types";
4
- export class OpenApiService {
5
- constructor(api) {
6
- this.api = api;
7
- }
8
- getSchemas() {
9
- this.schemasPromise = this.schemasPromise || new Promise((resolve => {
10
- this.api.get("api-docs").then(res => {
11
- var _a;
12
- const schemas = ((_a = res.components) === null || _a === void 0 ? void 0 : _a.schemas) || res.definitions || {};
13
- Object.values(schemas).forEach(schema => {
14
- Object.keys(schema.properties || {}).forEach(p => {
15
- schema.properties[p].id = p;
16
- });
17
- });
18
- resolve(schemas);
19
- }, () => {
20
- resolve({});
21
- });
22
- }));
23
- return this.schemasPromise;
24
- }
25
- getSchema(name) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const schemas = yield this.getSchemas();
28
- const schema = schemas[name];
29
- if (!schema)
30
- return null;
31
- return schemas[name];
32
- });
33
- }
34
- }
35
- OpenApiService.decorators = [
36
- { type: Injectable }
37
- ];
38
- OpenApiService.ctorParameters = () => [
39
- { type: undefined, decorators: [{ type: Inject, args: [API_SERVICE,] }] }
40
- ];
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvc2VydmljZXMvb3Blbi1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFdBQVcsRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRixNQUFNLE9BQU8sY0FBYztJQUl2QixZQUEwQyxHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBRTFELENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOztnQkFDaEMsTUFBTSxPQUFPLEdBQW9CLENBQUEsTUFBQSxHQUFHLENBQUMsVUFBVSwwQ0FBRSxPQUFPLEtBQUksR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7Z0JBQ2xGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUNKLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVLLFNBQVMsQ0FBQyxJQUFZOztZQUN4QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDekIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQztLQUFBOzs7WUEvQkosVUFBVTs7OzRDQUtNLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QVBJX1NFUlZJQ0UsIElBcGlTZXJ2aWNlLCBJT3BlbkFwaVNjaGVtYSwgSU9wZW5BcGlTY2hlbWFzfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPcGVuQXBpU2VydmljZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBzY2hlbWFzUHJvbWlzZTogUHJvbWlzZTxJT3BlbkFwaVNjaGVtYXM+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoQVBJX1NFUlZJQ0UpIHJlYWRvbmx5IGFwaTogSUFwaVNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2NoZW1hcygpOiBQcm9taXNlPElPcGVuQXBpU2NoZW1hcz4ge1xyXG4gICAgICAgIHRoaXMuc2NoZW1hc1Byb21pc2UgPSB0aGlzLnNjaGVtYXNQcm9taXNlIHx8IG5ldyBQcm9taXNlKChyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hcGkuZ2V0KFwiYXBpLWRvY3NcIikudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2NoZW1hczogSU9wZW5BcGlTY2hlbWFzID0gcmVzLmNvbXBvbmVudHM/LnNjaGVtYXMgfHwgcmVzLmRlZmluaXRpb25zIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhzY2hlbWFzKS5mb3JFYWNoKHNjaGVtYSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMgfHwge30pLmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYS5wcm9wZXJ0aWVzW3BdLmlkID0gcDtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShzY2hlbWFzKTtcclxuICAgICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zY2hlbWFzUHJvbWlzZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRTY2hlbWEobmFtZTogc3RyaW5nKTogUHJvbWlzZTxJT3BlbkFwaVNjaGVtYT4ge1xyXG4gICAgICAgIGNvbnN0IHNjaGVtYXMgPSBhd2FpdCB0aGlzLmdldFNjaGVtYXMoKTtcclxuICAgICAgICBjb25zdCBzY2hlbWEgPSBzY2hlbWFzW25hbWVdO1xyXG4gICAgICAgIGlmICghc2NoZW1hKSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gc2NoZW1hc1tuYW1lXTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,52 +0,0 @@
1
- import { EventEmitter, Inject, Injectable, NgZone } from "@angular/core";
2
- export class PromiseService {
3
- constructor(zone) {
4
- this.zone = zone;
5
- this.promiseCount = 0;
6
- this.promiseChanged = new EventEmitter();
7
- }
8
- get count() {
9
- return this.promiseCount;
10
- }
11
- get onChanged() {
12
- return this.promiseChanged;
13
- }
14
- create(executor) {
15
- return this.add(this.zone.runOutsideAngular(() => new Promise(executor)));
16
- }
17
- all(promises) {
18
- return this.add(this.zone.runOutsideAngular(() => Promise.all(promises)));
19
- }
20
- resolve(value) {
21
- return this.add(this.zone.runOutsideAngular(() => Promise.resolve(value)));
22
- }
23
- reject(value) {
24
- return this.add(this.zone.runOutsideAngular(() => Promise.reject(value)));
25
- }
26
- promiseFinished() {
27
- if (this.promiseCount == 0)
28
- return;
29
- this.promiseCount--;
30
- this.promiseChanged.emit(this.promiseCount);
31
- }
32
- add(promise) {
33
- this.promiseCount++;
34
- this.promiseChanged.emit(this.promiseCount);
35
- return new Promise((resolve, reject) => {
36
- promise.then(v => {
37
- resolve(v);
38
- this.promiseFinished();
39
- }, r => {
40
- reject(r);
41
- this.promiseFinished();
42
- });
43
- });
44
- }
45
- }
46
- PromiseService.decorators = [
47
- { type: Injectable }
48
- ];
49
- PromiseService.ctorParameters = () => [
50
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }
51
- ];
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9zZXJ2aWNlcy9wcm9taXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl2RSxNQUFNLE9BQU8sY0FBYztJQWF2QixZQUFxQyxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDckQsQ0FBQztJQWRELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFVRCxNQUFNLENBQUksUUFBaUc7UUFDdkcsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE9BQU8sQ0FBSSxLQUF5QjtRQUNoQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsTUFBTSxDQUFJLEtBQXlCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFUyxlQUFlO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFUyxHQUFHLENBQUksT0FBbUI7UUFDaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksT0FBTyxDQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNYLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNWLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBckRKLFVBQVU7OztZQUgrQixNQUFNLHVCQWlCL0IsTUFBTSxTQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SVByb21pc2VTZXJ2aWNlfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcm9taXNlU2VydmljZSBpbXBsZW1lbnRzIElQcm9taXNlU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGNvdW50KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZUNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBvbkNoYW5nZWQoKTogRXZlbnRFbWl0dGVyPG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VDaGFuZ2VkO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBwcm9taXNlQ291bnQ6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBwcm9taXNlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChOZ1pvbmUpIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSkge1xyXG4gICAgICAgIHRoaXMucHJvbWlzZUNvdW50ID0gMDtcclxuICAgICAgICB0aGlzLnByb21pc2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlPFQ+KGV4ZWN1dG9yOiAocmVzb2x2ZTogKHZhbHVlPzogVCB8IFByb21pc2VMaWtlPFQ+KSA9PiB2b2lkLCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQpID0+IHZvaWQpOiBQcm9taXNlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGQodGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IG5ldyBQcm9taXNlPFQ+KGV4ZWN1dG9yKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGFsbChwcm9taXNlczogUHJvbWlzZTxhbnk+W10pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZCh0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gUHJvbWlzZS5hbGwocHJvbWlzZXMpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzb2x2ZTxUPih2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KTogUHJvbWlzZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBQcm9taXNlLnJlc29sdmUodmFsdWUpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVqZWN0PFQ+KHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pOiBQcm9taXNlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGQodGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IFByb21pc2UucmVqZWN0KHZhbHVlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBwcm9taXNlRmluaXNoZWQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvbWlzZUNvdW50ID09IDApIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb21pc2VDb3VudC0tO1xyXG4gICAgICAgIHRoaXMucHJvbWlzZUNoYW5nZWQuZW1pdCh0aGlzLnByb21pc2VDb3VudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFkZDxUPihwcm9taXNlOiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XHJcbiAgICAgICAgdGhpcy5wcm9taXNlQ291bnQrKztcclxuICAgICAgICB0aGlzLnByb21pc2VDaGFuZ2VkLmVtaXQodGhpcy5wcm9taXNlQ291bnQpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgcHJvbWlzZS50aGVuKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh2KTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvbWlzZUZpbmlzaGVkKCk7XHJcbiAgICAgICAgICAgIH0sIHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KHIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9taXNlRmluaXNoZWQoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19