@mosa-ng/core 17.0.1 → 19.0.1

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 (53) hide show
  1. package/fesm2022/mosa-ng-core.mjs +74 -63
  2. package/fesm2022/mosa-ng-core.mjs.map +1 -1
  3. package/package.json +3 -5
  4. package/esm2022/lib/constants/local-storage.constant.mjs +0 -4
  5. package/esm2022/lib/enums/browser.enum.mjs +0 -11
  6. package/esm2022/lib/enums/content-position.enum.mjs +0 -13
  7. package/esm2022/lib/enums/i18n-supported.enum.mjs +0 -12
  8. package/esm2022/lib/enums/theme.enum.mjs +0 -6
  9. package/esm2022/lib/models/api-options.model.mjs +0 -2
  10. package/esm2022/lib/models/dictionary-item.model.mjs +0 -2
  11. package/esm2022/lib/models/key-map.model.mjs +0 -2
  12. package/esm2022/lib/models/logger/log-event.model.mjs +0 -2
  13. package/esm2022/lib/models/logger/log-message-data.model.mjs +0 -2
  14. package/esm2022/lib/models/logger/log-type.model.mjs +0 -2
  15. package/esm2022/lib/models/logger/log.model.mjs +0 -2
  16. package/esm2022/lib/models/logger/logger-base-config.model.mjs +0 -2
  17. package/esm2022/lib/models/logger/logger-config.model.mjs +0 -2
  18. package/esm2022/lib/models/logger/logger-default-config.model.mjs +0 -2
  19. package/esm2022/lib/models/mosa-duration.model.mjs +0 -2
  20. package/esm2022/lib/models/sieve/sieve-filter.model.mjs +0 -2
  21. package/esm2022/lib/models/sieve/sieve-operator.model.mjs +0 -2
  22. package/esm2022/lib/models/sieve/sieve-options.model.mjs +0 -2
  23. package/esm2022/lib/models/sieve/sieve-response.model.mjs +0 -2
  24. package/esm2022/lib/models/sieve/sieve-sort.model.mjs +0 -2
  25. package/esm2022/lib/models/token-settings.model.mjs +0 -2
  26. package/esm2022/lib/models/transform-matrix.model.mjs +0 -2
  27. package/esm2022/lib/mosa-core.module.mjs +0 -105
  28. package/esm2022/lib/pipes/dictionary-item-pipe/dictionary-item-pipe.module.mjs +0 -22
  29. package/esm2022/lib/pipes/dictionary-item-pipe/dictionary-item.pipe.mjs +0 -17
  30. package/esm2022/lib/pipes/find-in-array/find-in-array-pipe.module.mjs +0 -24
  31. package/esm2022/lib/pipes/find-in-array/find-in-array.pipe.mjs +0 -34
  32. package/esm2022/lib/pipes/join/join-pipe.module.mjs +0 -24
  33. package/esm2022/lib/pipes/join/join.pipe.mjs +0 -24
  34. package/esm2022/lib/pipes/mosa-date-pipe/mosa-date-pipe.module.mjs +0 -21
  35. package/esm2022/lib/pipes/mosa-date-pipe/mosa-date.pipe.mjs +0 -91
  36. package/esm2022/lib/pipes/mosa-duration-pipe/mosa-duration-pipe.module.mjs +0 -20
  37. package/esm2022/lib/pipes/mosa-duration-pipe/mosa-duration.pipe.mjs +0 -88
  38. package/esm2022/lib/services/api.service.mjs +0 -225
  39. package/esm2022/lib/services/core-logger.service.mjs +0 -197
  40. package/esm2022/lib/services/guards/can-deactivate.guard.mjs +0 -16
  41. package/esm2022/lib/services/mosa-socket.service.mjs +0 -44
  42. package/esm2022/lib/services/translation/assets-i18n-loader.service.mjs +0 -58
  43. package/esm2022/lib/services/translation/custom-translate-loader.service.mjs +0 -28
  44. package/esm2022/lib/services/translation/translate-collector.service.mjs +0 -54
  45. package/esm2022/lib/utils/commons.util.mjs +0 -89
  46. package/esm2022/lib/utils/dictionary.util.mjs +0 -121
  47. package/esm2022/lib/utils/item.util.mjs +0 -2
  48. package/esm2022/lib/utils/promise.util.mjs +0 -2
  49. package/esm2022/lib/utils/prototypes.util.mjs +0 -86
  50. package/esm2022/lib/utils/sieve.util.mjs +0 -137
  51. package/esm2022/lib/utils/size.util.mjs +0 -2
  52. package/esm2022/mosa-ng-core.mjs +0 -5
  53. package/esm2022/public-api.mjs +0 -2
@@ -1,44 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Observable, Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class MosaSocketService {
5
- constructor() {
6
- }
7
- connect(url) {
8
- if (!this.subject) {
9
- this.subject = this.create(url);
10
- }
11
- return this.subject;
12
- }
13
- send(data) {
14
- this.subject.next(data);
15
- }
16
- create(url) {
17
- const ws = new WebSocket(url);
18
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
- const observable = new Observable((obs) => {
20
- ws.onmessage = obs.next.bind(obs);
21
- ws.onerror = obs.error.bind(obs);
22
- ws.onclose = obs.complete.bind(obs);
23
- return ws.close.bind(ws);
24
- });
25
- const observer = {
26
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- next: (data) => {
28
- if (ws.readyState === WebSocket.OPEN) {
29
- ws.send(JSON.stringify(data));
30
- }
31
- },
32
- };
33
- return Subject.create(observer, observable);
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: MosaSocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: MosaSocketService, providedIn: 'root' }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: MosaSocketService, decorators: [{
39
- type: Injectable,
40
- args: [{
41
- providedIn: 'root',
42
- }]
43
- }], ctorParameters: () => [] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9zYS1zb2NrZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tb3NhLXNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFVBQVUsRUFBWSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3JELE1BQU0sT0FBTyxpQkFBaUI7SUFJMUI7SUFDQSxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRU0sSUFBSSxDQUFDLElBQWtCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBVztRQUN0QixNQUFNLEVBQUUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5Qiw4REFBOEQ7UUFDOUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUEyQixFQUFPLEVBQUU7WUFDbkUsRUFBRSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHO1lBQ2IsOERBQThEO1lBQzlELElBQUksRUFBRSxDQUFDLElBQVMsRUFBUSxFQUFFO2dCQUN0QixJQUFJLEVBQUUsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNuQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbEMsQ0FBQztZQUNMLENBQUM7U0FDSixDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQXBDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07OzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vc2FTb2NrZXRTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc3ViamVjdDogU3ViamVjdDxNZXNzYWdlRXZlbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbm5lY3QodXJsOiBzdHJpbmcpOiBTdWJqZWN0PE1lc3NhZ2VFdmVudD4ge1xuICAgICAgICBpZiAoIXRoaXMuc3ViamVjdCkge1xuICAgICAgICAgICAgdGhpcy5zdWJqZWN0ID0gdGhpcy5jcmVhdGUodXJsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdWJqZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kKGRhdGE6IE1lc3NhZ2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YmplY3QubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZSh1cmw6IHN0cmluZyk6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiB7XG4gICAgICAgIGNvbnN0IHdzID0gbmV3IFdlYlNvY2tldCh1cmwpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUoKG9iczogT2JzZXJ2ZXI8TWVzc2FnZUV2ZW50Pik6IGFueSA9PiB7XG4gICAgICAgICAgICB3cy5vbm1lc3NhZ2UgPSBvYnMubmV4dC5iaW5kKG9icyk7XG4gICAgICAgICAgICB3cy5vbmVycm9yID0gb2JzLmVycm9yLmJpbmQob2JzKTtcbiAgICAgICAgICAgIHdzLm9uY2xvc2UgPSBvYnMuY29tcGxldGUuYmluZChvYnMpO1xuICAgICAgICAgICAgcmV0dXJuIHdzLmNsb3NlLmJpbmQod3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh3cy5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgICAgICAgICAgICAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gU3ViamVjdC5jcmVhdGUob2JzZXJ2ZXIsIG9ic2VydmFibGUpO1xuICAgIH1cblxufVxuIl19
@@ -1,58 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { firstValueFrom, of } from 'rxjs';
3
- import { catchError, share, tap } from 'rxjs/operators';
4
- import { getRandomString } from '../../utils/commons.util';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- import * as i2 from "./translate-collector.service";
8
- export class AssetsI18nLoaderService {
9
- constructor(myHttpClient, myTranslateCollectorService) {
10
- this.myHttpClient = myHttpClient;
11
- this.myTranslateCollectorService = myTranslateCollectorService;
12
- this.priority = 0;
13
- }
14
- init(path, libName, priority) {
15
- return new Promise(async (resolve) => {
16
- if (this.supportedLanguages) {
17
- for (let i = 0; i < this.supportedLanguages.length; i++) {
18
- await firstValueFrom(this.loadTranslations(this.supportedLanguages[i], path, libName, priority));
19
- }
20
- resolve();
21
- return;
22
- }
23
- if (!this.subLanguages) {
24
- this.subLanguages = this.myHttpClient.get(`assets/i18n/supported-languages.json?v=${getRandomString()}`)
25
- .pipe(share());
26
- }
27
- this.subLanguages.subscribe(async (res) => {
28
- this.subLanguages = null;
29
- this.supportedLanguages = res.languages;
30
- for (let i = 0; i < this.supportedLanguages.length; i++) {
31
- await firstValueFrom(this.loadTranslations(this.supportedLanguages[i], path, libName, priority));
32
- }
33
- resolve();
34
- }, () => {
35
- this.subLanguages = null;
36
- console.error('Missing file -> assets/i18n/supported-languages.json <-- FIX THIS!');
37
- resolve();
38
- });
39
- });
40
- }
41
- loadTranslations(lang, path, libName, priority) {
42
- const filename = libName ? `${libName}-${lang}.json` : `${lang}.json`;
43
- return this.myHttpClient.get(`${(path || './assets/i18n/') + filename}?v=${getRandomString()}`)
44
- .pipe(tap((response) => this.myTranslateCollectorService.addTranslations(response, lang, priority || this.priority)), catchError(() => {
45
- console.error(`Missing file -> ${filename} <-- FIX THIS!`);
46
- return of(null);
47
- }));
48
- }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AssetsI18nLoaderService, deps: [{ token: i1.HttpClient }, { token: i2.TranslateCollectorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
50
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AssetsI18nLoaderService, providedIn: 'root' }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AssetsI18nLoaderService, decorators: [{
53
- type: Injectable,
54
- args: [{
55
- providedIn: 'root',
56
- }]
57
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslateCollectorService }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWkxOG4tbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvdHJhbnNsYXRpb24vYXNzZXRzLWkxOG4tbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFNM0QsTUFBTSxPQUFPLHVCQUF1QjtJQU9oQyxZQUNjLFlBQXdCLEVBQ3hCLDJCQUFzRDtRQUR0RCxpQkFBWSxHQUFaLFlBQVksQ0FBWTtRQUN4QixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTJCO1FBUDFELGFBQVEsR0FBVyxDQUFDLENBQUM7SUFTL0IsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUFhLEVBQUUsT0FBZ0IsRUFBRSxRQUFpQjtRQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFtQixFQUFpQixFQUFFO1lBQzVELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFCLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzlELE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUUsQ0FBQyxDQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUN2RyxDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBMEIsMENBQTBDLGVBQWUsRUFBRSxFQUFFLENBQUM7cUJBQzVILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBNEIsRUFBRSxFQUFFO2dCQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7Z0JBRXhDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzlELE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUUsQ0FBQyxDQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUN2RyxDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxFQUFFLEdBQUcsRUFBRTtnQkFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO2dCQUNwRixPQUFPLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLElBQWEsRUFBRSxPQUFnQixFQUFFLFFBQWlCO1FBQ3ZGLE1BQU0sUUFBUSxHQUFXLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBeUIsR0FBRyxDQUFDLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLFFBQVEsTUFBTSxlQUFlLEVBQUUsRUFBRSxDQUFDO2FBQ2xILElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFnQyxFQUFFLEVBQUUsQ0FDckMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDaEcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLFFBQVEsZ0JBQWdCLENBQUMsQ0FBQztZQUMzRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQzs4R0F0RFEsdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs7MkZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNoYXJlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJS2V5TWFwIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2tleS1tYXAubW9kZWwnO1xuaW1wb3J0IHsgZ2V0UmFuZG9tU3RyaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29tbW9ucy51dGlsJztcbmltcG9ydCB7IFRyYW5zbGF0ZUNvbGxlY3RvclNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS1jb2xsZWN0b3Iuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFzc2V0c0kxOG5Mb2FkZXJTZXJ2aWNlIHtcblxuICAgIHByb3RlY3RlZCBwcmlvcml0eTogbnVtYmVyID0gMDtcbiAgICBwcm90ZWN0ZWQgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBzdHJpbmdbXTtcblxuICAgIHByaXZhdGUgc3ViTGFuZ3VhZ2VzOiBPYnNlcnZhYmxlPHsgbGFuZ3VhZ2VzOiBzdHJpbmdbXSB9PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgbXlIdHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICBwcm90ZWN0ZWQgbXlUcmFuc2xhdGVDb2xsZWN0b3JTZXJ2aWNlOiBUcmFuc2xhdGVDb2xsZWN0b3JTZXJ2aWNlLFxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KHBhdGg/OiBzdHJpbmcsIGxpYk5hbWU/OiBzdHJpbmcsIHByaW9yaXR5PzogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZTogKCkgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3VwcG9ydGVkTGFuZ3VhZ2VzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuc3VwcG9ydGVkTGFuZ3VhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMubG9hZFRyYW5zbGF0aW9ucyh0aGlzLnN1cHBvcnRlZExhbmd1YWdlc1sgaSBdLCBwYXRoLCBsaWJOYW1lLCBwcmlvcml0eSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3ViTGFuZ3VhZ2VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJMYW5ndWFnZXMgPSB0aGlzLm15SHR0cENsaWVudC5nZXQ8eyBsYW5ndWFnZXM6IHN0cmluZ1tdIH0+KGBhc3NldHMvaTE4bi9zdXBwb3J0ZWQtbGFuZ3VhZ2VzLmpzb24/dj0ke2dldFJhbmRvbVN0cmluZygpfWApXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHNoYXJlKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJMYW5ndWFnZXMuc3Vic2NyaWJlKGFzeW5jIChyZXM6IHsgbGFuZ3VhZ2VzOiBzdHJpbmdbXSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJMYW5ndWFnZXMgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuc3VwcG9ydGVkTGFuZ3VhZ2VzID0gcmVzLmxhbmd1YWdlcztcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLnN1cHBvcnRlZExhbmd1YWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmxvYWRUcmFuc2xhdGlvbnModGhpcy5zdXBwb3J0ZWRMYW5ndWFnZXNbIGkgXSwgcGF0aCwgbGliTmFtZSwgcHJpb3JpdHkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ViTGFuZ3VhZ2VzID0gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdNaXNzaW5nIGZpbGUgLT4gYXNzZXRzL2kxOG4vc3VwcG9ydGVkLWxhbmd1YWdlcy5qc29uIDwtLSBGSVggVEhJUyEnKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRUcmFuc2xhdGlvbnMobGFuZzogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBsaWJOYW1lPzogc3RyaW5nLCBwcmlvcml0eT86IG51bWJlcik6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgICAgICBjb25zdCBmaWxlbmFtZTogc3RyaW5nID0gbGliTmFtZSA/IGAke2xpYk5hbWV9LSR7bGFuZ30uanNvbmAgOiBgJHtsYW5nfS5qc29uYDtcbiAgICAgICAgcmV0dXJuIHRoaXMubXlIdHRwQ2xpZW50LmdldDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihgJHsocGF0aCB8fCAnLi9hc3NldHMvaTE4bi8nKSArIGZpbGVuYW1lfT92PSR7Z2V0UmFuZG9tU3RyaW5nKCl9YClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgocmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXlUcmFuc2xhdGVDb2xsZWN0b3JTZXJ2aWNlLmFkZFRyYW5zbGF0aW9ucyhyZXNwb25zZSwgbGFuZywgcHJpb3JpdHkgfHwgdGhpcy5wcmlvcml0eSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBNaXNzaW5nIGZpbGUgLT4gJHtmaWxlbmFtZX0gPC0tIEZJWCBUSElTIWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { MOSA_FALLBACK_TRANSLATION, MOSA_MERGED_TRANSLATION } from '../../constants/local-storage.constant';
4
- import { isNullOrEmpty, tryJsonParse } from '../../utils/commons.util';
5
- import * as i0 from "@angular/core";
6
- export class CustomTranslateLoaderService {
7
- getTranslation(lang) {
8
- return new Observable((observer) => {
9
- const item = localStorage.getItem(MOSA_MERGED_TRANSLATION(lang));
10
- const responseObj = tryJsonParse(item, () => this.loadFallbackLanguage());
11
- observer.next(responseObj);
12
- observer.complete();
13
- });
14
- }
15
- loadFallbackLanguage() {
16
- const defaultTranslation = localStorage.getItem(MOSA_FALLBACK_TRANSLATION);
17
- return isNullOrEmpty(defaultTranslation) ? {} : JSON.parse(defaultTranslation);
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CustomTranslateLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CustomTranslateLoaderService, providedIn: 'root' }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CustomTranslateLoaderService, decorators: [{
23
- type: Injectable,
24
- args: [{
25
- providedIn: 'root',
26
- }]
27
- }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRyYW5zbGF0ZS1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGlvbi9jdXN0b20tdHJhbnNsYXRlLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUt2RSxNQUFNLE9BQU8sNEJBQTRCO0lBRTlCLGNBQWMsQ0FBQyxJQUFZO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQWtCLENBQUMsUUFBbUMsRUFBRSxFQUFFO1lBQzNFLE1BQU0sSUFBSSxHQUFXLFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLFdBQVcsR0FBb0IsWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1lBRTNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0IsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLGtCQUFrQixHQUFXLFlBQVksQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNuRixPQUFPLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNuRixDQUFDOzhHQWZRLDRCQUE0QjtrSEFBNUIsNEJBQTRCLGNBRnpCLE1BQU07OzJGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTU9TQV9GQUxMQkFDS19UUkFOU0xBVElPTiwgTU9TQV9NRVJHRURfVFJBTlNMQVRJT04gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbG9jYWwtc3RvcmFnZS5jb25zdGFudCc7XG5pbXBvcnQgeyBJS2V5TWFwIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2tleS1tYXAubW9kZWwnO1xuaW1wb3J0IHsgaXNOdWxsT3JFbXB0eSwgdHJ5SnNvblBhcnNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29tbW9ucy51dGlsJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVHJhbnNsYXRlTG9hZGVyU2VydmljZSB7XG5cbiAgICBwdWJsaWMgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJS2V5TWFwPHN0cmluZz4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPElLZXlNYXA8c3RyaW5nPj4oKG9ic2VydmVyOiBPYnNlcnZlcjxJS2V5TWFwPHN0cmluZz4+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtOiBzdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShNT1NBX01FUkdFRF9UUkFOU0xBVElPTihsYW5nKSk7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZU9iajogSUtleU1hcDxzdHJpbmc+ID0gdHJ5SnNvblBhcnNlKGl0ZW0sICgpID0+IHRoaXMubG9hZEZhbGxiYWNrTGFuZ3VhZ2UoKSk7XG5cbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzcG9uc2VPYmopO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRmFsbGJhY2tMYW5ndWFnZSgpOiBJS2V5TWFwPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0VHJhbnNsYXRpb246IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKE1PU0FfRkFMTEJBQ0tfVFJBTlNMQVRJT04pO1xuICAgICAgICByZXR1cm4gaXNOdWxsT3JFbXB0eShkZWZhdWx0VHJhbnNsYXRpb24pID8ge30gOiBKU09OLnBhcnNlKGRlZmF1bHRUcmFuc2xhdGlvbik7XG4gICAgfVxuXG59XG4iXX0=
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { MOSA_MERGED_TRANSLATION } from '../../constants/local-storage.constant';
3
- import { isNullOrUndefined } from '../../utils/commons.util';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngx-translate/core";
6
- export class TranslateCollectorService {
7
- constructor(myTranslateService) {
8
- this.myTranslateService = myTranslateService;
9
- this.translationMap = {};
10
- }
11
- addTranslations(translation, lang, priority) {
12
- if (isNullOrUndefined(this.translationMap[lang])) {
13
- this.translationMap[lang] = [];
14
- }
15
- this.translationMap[lang].push({ priority, translation });
16
- this.translationMap[lang].sort((a, b) => a.priority - b.priority);
17
- const merged = JSON.parse(localStorage.getItem(MOSA_MERGED_TRANSLATION(lang))) || {};
18
- for (const translationsData of this.translationMap[lang]) {
19
- const translations = translationsData.translation;
20
- if (translations != null) {
21
- Object.keys(translations).forEach((key) => void (merged[key] = translations[key]));
22
- }
23
- }
24
- let trans = true;
25
- let count = 0;
26
- while (trans) {
27
- count++;
28
- trans = false;
29
- if (count >= 10) {
30
- console.warn('Limit reached! Please check translation file! Last replaced values:');
31
- }
32
- Object.keys(merged).forEach((key) => {
33
- if (merged[key].startsWith('@:')) {
34
- merged[key] = merged[merged[key].substring(2, merged[key].length)];
35
- trans = count < 10;
36
- if (count > 10) {
37
- console.warn(merged[key]);
38
- }
39
- }
40
- });
41
- }
42
- localStorage.setItem(MOSA_MERGED_TRANSLATION(lang), JSON.stringify(merged));
43
- this.myTranslateService.reloadLang(lang);
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: TranslateCollectorService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: TranslateCollectorService, providedIn: 'root' }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: TranslateCollectorService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root',
52
- }]
53
- }], ctorParameters: () => [{ type: i1.TranslateService }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWNvbGxlY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0ZS1jb2xsZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFVN0QsTUFBTSxPQUFPLHlCQUF5QjtJQUlsQyxZQUE2QixrQkFBb0M7UUFBcEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFrQjtRQUZ6RCxtQkFBYyxHQUErQixFQUFFLENBQUM7SUFHeEQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxXQUFtQyxFQUFFLElBQVksRUFBRSxRQUFnQjtRQUN0RixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUUsSUFBSSxDQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUUsSUFBSSxDQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFFLElBQUksQ0FBRSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxjQUFjLENBQUUsSUFBSSxDQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBa0IsRUFBRSxDQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RyxNQUFNLE1BQU0sR0FBb0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdEcsS0FBSyxNQUFNLGdCQUFnQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUUsSUFBSSxDQUFFLEVBQUUsQ0FBQztZQUN6RCxNQUFNLFlBQVksR0FBb0IsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1lBQ25FLElBQUksWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBRSxHQUFHLENBQUUsR0FBRyxZQUFZLENBQUUsR0FBRyxDQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25HLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxLQUFLLEdBQVksSUFBSSxDQUFDO1FBQzFCLElBQUksS0FBSyxHQUFXLENBQUMsQ0FBQztRQUN0QixPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ1gsS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2QsSUFBSSxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLE1BQU0sQ0FBRSxHQUFHLENBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxDQUFFLEdBQUcsQ0FBRSxHQUFHLE1BQU0sQ0FBRSxNQUFNLENBQUUsR0FBRyxDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUUsR0FBRyxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUUsQ0FBQztvQkFDM0UsS0FBSyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ25CLElBQUksS0FBSyxHQUFHLEVBQUUsRUFBRSxDQUFDO3dCQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFFLEdBQUcsQ0FBRSxDQUFDLENBQUM7b0JBQ2hDLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs4R0EzQ1EseUJBQXlCO2tIQUF6Qix5QkFBeUIsY0FGdEIsTUFBTTs7MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1PU0FfTUVSR0VEX1RSQU5TTEFUSU9OIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2xvY2FsLXN0b3JhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgSUtleU1hcCB9IGZyb20gJy4uLy4uL21vZGVscy9rZXktbWFwLm1vZGVsJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29tbW9ucy51dGlsJztcblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNsYXRpb25NYXAge1xuICAgIHByaW9yaXR5OiBudW1iZXI7XG4gICAgdHJhbnNsYXRpb246IElLZXlNYXA8c3RyaW5nPjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlQ29sbGVjdG9yU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uTWFwOiBJS2V5TWFwPElUcmFuc2xhdGlvbk1hcFtdPiA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBteVRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBsYW5nOiBzdHJpbmcsIHByaW9yaXR5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudHJhbnNsYXRpb25NYXBbIGxhbmcgXSkpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25NYXBbIGxhbmcgXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbk1hcFsgbGFuZyBdLnB1c2goeyBwcmlvcml0eSwgdHJhbnNsYXRpb24gfSk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25NYXBbIGxhbmcgXS5zb3J0KChhOiBJVHJhbnNsYXRpb25NYXAsIGI6IElUcmFuc2xhdGlvbk1hcCkgPT4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHkpO1xuICAgICAgICBjb25zdCBtZXJnZWQ6IElLZXlNYXA8c3RyaW5nPiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTU9TQV9NRVJHRURfVFJBTlNMQVRJT04obGFuZykpKSB8fCB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHRyYW5zbGF0aW9uc0RhdGEgb2YgdGhpcy50cmFuc2xhdGlvbk1hcFsgbGFuZyBdKSB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnM6IElLZXlNYXA8c3RyaW5nPiA9IHRyYW5zbGF0aW9uc0RhdGEudHJhbnNsYXRpb247XG4gICAgICAgICAgICBpZiAodHJhbnNsYXRpb25zICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh0cmFuc2xhdGlvbnMpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB2b2lkIChtZXJnZWRbIGtleSBdID0gdHJhbnNsYXRpb25zWyBrZXkgXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRyYW5zOiBib29sZWFuID0gdHJ1ZTtcbiAgICAgICAgbGV0IGNvdW50OiBudW1iZXIgPSAwO1xuICAgICAgICB3aGlsZSAodHJhbnMpIHtcbiAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICB0cmFucyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGNvdW50ID49IDEwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdMaW1pdCByZWFjaGVkISBQbGVhc2UgY2hlY2sgdHJhbnNsYXRpb24gZmlsZSEgTGFzdCByZXBsYWNlZCB2YWx1ZXM6Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhtZXJnZWQpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG1lcmdlZFsga2V5IF0uc3RhcnRzV2l0aCgnQDonKSkge1xuICAgICAgICAgICAgICAgICAgICBtZXJnZWRbIGtleSBdID0gbWVyZ2VkWyBtZXJnZWRbIGtleSBdLnN1YnN0cmluZygyLCBtZXJnZWRbIGtleSBdLmxlbmd0aCkgXTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnMgPSBjb3VudCA8IDEwO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPiAxMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKG1lcmdlZFsga2V5IF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTU9TQV9NRVJHRURfVFJBTlNMQVRJT04obGFuZyksIEpTT04uc3RyaW5naWZ5KG1lcmdlZCkpO1xuICAgICAgICB0aGlzLm15VHJhbnNsYXRlU2VydmljZS5yZWxvYWRMYW5nKGxhbmcpO1xuICAgIH1cblxufVxuIl19
@@ -1,89 +0,0 @@
1
- /**
2
- * Checks if an object is null or undefined. Does not check for
3
- * empty strings, or false booleans
4
- * @param val
5
- */
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- export function isNullOrUndefined(val) {
8
- return val === null || val === undefined;
9
- }
10
- /**
11
- * Checks if a string is null or empty
12
- * @param str
13
- */
14
- export function isNullOrEmpty(str) {
15
- return !str?.trim();
16
- }
17
- /**
18
- * Checks if a string or number is zero or higher
19
- * @param num
20
- */
21
- export function isZeroOrHigher(num) {
22
- return num !== null && +num >= 0;
23
- }
24
- /**
25
- * Checks if an object is a number
26
- * @param num
27
- */
28
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
- export function isNumber(num) {
30
- return num !== null && !isNaN(+num);
31
- }
32
- /**
33
- * Round to nearest number given
34
- * @param value
35
- * @param round
36
- */
37
- export function roundNearest(value) {
38
- return Math.ceil(value / 5) * 5;
39
- }
40
- /**
41
- * Merge a two dimensional array
42
- * @param array
43
- */
44
- export function mergeArray(array) {
45
- return array.reduce((flat, toFlatten) => flat.concat(Array.isArray(toFlatten) ? mergeArray(toFlatten) : toFlatten), []);
46
- }
47
- /**
48
- * Get CSS Transform matrix from an element
49
- * @param element
50
- */
51
- export function getTransformMatrix(element) {
52
- const values = element.style.transform.split(/\w+\(|\);?/);
53
- const transform = values[1].split(/,\s?/g).map((numStr) => parseInt(numStr, 10));
54
- return {
55
- x: transform[0],
56
- y: transform[1],
57
- z: transform[2],
58
- };
59
- }
60
- /**
61
- * Generates a random string with numbers and letters
62
- * @param length
63
- */
64
- export function getRandomString(length = 10) {
65
- const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
66
- let result = '';
67
- for (let i = 0; i < length; i++) {
68
- result += characters.charAt(Math.floor(Math.random() * characters.length));
69
- }
70
- return result;
71
- }
72
- /**
73
- * Trys to convert a json string. If it fails it returns [null] or a given fallback of [T]
74
- */
75
- export function tryJsonParse(data, fallback) {
76
- try {
77
- if (!isNullOrEmpty(data)) {
78
- return JSON.parse(data);
79
- }
80
- }
81
- catch (err) {
82
- // Ignore - go on with fallback check
83
- }
84
- if (fallback) {
85
- return fallback();
86
- }
87
- return null;
88
- }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3V0aWxzL2NvbW1vbnMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsOERBQThEO0FBQzlELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFRO0lBQ3RDLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQVc7SUFDckMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN4QixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFvQjtJQUMvQyxPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFRO0lBQzdCLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFJLEtBQVk7SUFDdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLFNBQXNCLEVBQU8sRUFBRSxDQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBSSxTQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBb0I7SUFDbkQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBRSxDQUFDLENBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbkcsT0FBTztRQUNILENBQUMsRUFBRSxTQUFTLENBQUUsQ0FBQyxDQUFFO1FBQ2pCLENBQUMsRUFBRSxTQUFTLENBQUUsQ0FBQyxDQUFFO1FBQ2pCLENBQUMsRUFBRSxTQUFTLENBQUUsQ0FBQyxDQUFFO0tBQ3BCLENBQUM7QUFDTixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxTQUFpQixFQUFFO0lBQy9DLE1BQU0sVUFBVSxHQUFHLGdFQUFnRSxDQUFDO0lBQ3BGLElBQUksTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUN4QixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUksSUFBWSxFQUFFLFFBQWtCO0lBQzVELElBQUksQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEdBQVksRUFBRSxDQUFDO1FBQ3BCLHFDQUFxQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNYLE9BQU8sUUFBUSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVHJhbnNmb3JtTWF0cml4IH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zZm9ybS1tYXRyaXgubW9kZWwnO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBvYmplY3QgaXMgbnVsbCBvciB1bmRlZmluZWQuIERvZXMgbm90IGNoZWNrIGZvclxuICogZW1wdHkgc3RyaW5ncywgb3IgZmFsc2UgYm9vbGVhbnNcbiAqIEBwYXJhbSB2YWxcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBpc051bGxPclVuZGVmaW5lZCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgc3RyaW5nIGlzIG51bGwgb3IgZW1wdHlcbiAqIEBwYXJhbSBzdHJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yRW1wdHkoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXN0cj8udHJpbSgpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHN0cmluZyBvciBudW1iZXIgaXMgemVybyBvciBoaWdoZXJcbiAqIEBwYXJhbSBudW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzWmVyb09ySGlnaGVyKG51bTogbnVtYmVyIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG51bSAhPT0gbnVsbCAmJiArbnVtID49IDA7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIG9iamVjdCBpcyBhIG51bWJlclxuICogQHBhcmFtIG51bVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKG51bTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG51bSAhPT0gbnVsbCAmJiAhaXNOYU4oK251bSk7XG59XG5cbi8qKlxuICogUm91bmQgdG8gbmVhcmVzdCBudW1iZXIgZ2l2ZW5cbiAqIEBwYXJhbSB2YWx1ZVxuICogQHBhcmFtIHJvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb3VuZE5lYXJlc3QodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSAvIDUpICogNTtcbn1cblxuLyoqXG4gKiBNZXJnZSBhIHR3byBkaW1lbnNpb25hbCBhcnJheVxuICogQHBhcmFtIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUFycmF5PFQ+KGFycmF5OiBUW11bXSk6IFRbXSB7XG4gICAgcmV0dXJuIGFycmF5LnJlZHVjZSgoZmxhdDogVFtdLCB0b0ZsYXR0ZW46IFRbXSB8IFRbXVtdKTogVFtdID0+XG4gICAgICAgIGZsYXQuY29uY2F0KEFycmF5LmlzQXJyYXkodG9GbGF0dGVuKSA/IG1lcmdlQXJyYXk8VD4odG9GbGF0dGVuIGFzIFRbXVtdKSA6IHRvRmxhdHRlbiksIFtdKTtcbn1cblxuLyoqXG4gKiBHZXQgQ1NTIFRyYW5zZm9ybSBtYXRyaXggZnJvbSBhbiBlbGVtZW50XG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNmb3JtTWF0cml4KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSVRyYW5zZm9ybU1hdHJpeCB7XG4gICAgY29uc3QgdmFsdWVzID0gZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0uc3BsaXQoL1xcdytcXCh8XFwpOz8vKTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSB2YWx1ZXNbIDEgXS5zcGxpdCgvLFxccz8vZykubWFwKChudW1TdHI6IHN0cmluZyk6IG51bWJlciA9PiBwYXJzZUludChudW1TdHIsIDEwKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB4OiB0cmFuc2Zvcm1bIDAgXSxcbiAgICAgICAgeTogdHJhbnNmb3JtWyAxIF0sXG4gICAgICAgIHo6IHRyYW5zZm9ybVsgMiBdLFxuICAgIH07XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgcmFuZG9tIHN0cmluZyB3aXRoIG51bWJlcnMgYW5kIGxldHRlcnNcbiAqIEBwYXJhbSBsZW5ndGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJhbmRvbVN0cmluZyhsZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSAnJztcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnMubGVuZ3RoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogVHJ5cyB0byBjb252ZXJ0IGEganNvbiBzdHJpbmcuIElmIGl0IGZhaWxzIGl0IHJldHVybnMgW251bGxdIG9yIGEgZ2l2ZW4gZmFsbGJhY2sgb2YgW1RdXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnlKc29uUGFyc2U8VD4oZGF0YTogc3RyaW5nLCBmYWxsYmFjaz86ICgpID0+IFQpOiBUIHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKCFpc051bGxPckVtcHR5KGRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICAvLyBJZ25vcmUgLSBnbyBvbiB3aXRoIGZhbGxiYWNrIGNoZWNrXG4gICAgfVxuXG4gICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBmYWxsYmFjaygpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
@@ -1,121 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import { map } from 'rxjs/operators';
3
- export class Dictionary {
4
- /**
5
- * Default constructor.
6
- * @param data Requires an array of IDictionaryItem with a key and a value
7
- */
8
- constructor(...data) {
9
- this.dictionaryItems$ = new BehaviorSubject(data);
10
- }
11
- /**
12
- * Observable to subscribe to dictionary changes
13
- */
14
- valueChanges() {
15
- return this.dictionaryItems$.asObservable();
16
- }
17
- /**
18
- * Observable to subscribe to dictionary as object changes
19
- */
20
- objectArray() {
21
- return this.dictionaryItems$.asObservable()
22
- .pipe(map((items) => this.toObject(items)));
23
- }
24
- /**
25
- * Gets the items of the dictionary
26
- * @returns dictionary items
27
- */
28
- get items() {
29
- return this.dictionaryItems$.value;
30
- }
31
- /**
32
- * Gets a dictionary item by key
33
- * @param key
34
- * @returns single dictionary item
35
- */
36
- get(key) {
37
- return this.dictionaryItems$.value.find((item) => item.key === key);
38
- }
39
- /**
40
- * Checks if dictionary contains item
41
- * @param key
42
- */
43
- contains(key) {
44
- return this.get(key) != null;
45
- }
46
- /**
47
- * Adds a dictionary item
48
- * @param key
49
- * @param value
50
- */
51
- add(key, value) {
52
- const dictionaryItems = [...this.dictionaryItems$.value];
53
- dictionaryItems.push({ key, value });
54
- this.updateItems(dictionaryItems);
55
- }
56
- /**
57
- * Updates a dictionary item
58
- * @param data
59
- * @param index
60
- */
61
- update(data, index) {
62
- const dictionaryItems = [...this.dictionaryItems$.value];
63
- if (!index) {
64
- index = this.getIndex(data.key);
65
- }
66
- if (index !== -1) {
67
- dictionaryItems[index] = data;
68
- }
69
- else {
70
- console.warn('Dictionary: Index not found');
71
- }
72
- this.updateItems(dictionaryItems);
73
- }
74
- /**
75
- * Gets an index with a specific key
76
- * @param key
77
- */
78
- getIndex(key) {
79
- return this.dictionaryItems$.value.findIndex((val) => val.key === key);
80
- }
81
- /**
82
- * Removes an item from the dictionary
83
- * @param value
84
- * @param index
85
- */
86
- remove(value, index) {
87
- const dictionaryItems = [...this.dictionaryItems$.value];
88
- if (!index) {
89
- index = this.getIndex(value);
90
- }
91
- if (index !== -1) {
92
- dictionaryItems.splice(index, 1);
93
- }
94
- else {
95
- console.warn('Dictionary: Index not found');
96
- }
97
- this.updateItems(dictionaryItems);
98
- }
99
- /**
100
- * Private function to cast array to an object
101
- * @param items
102
- * @private
103
- */
104
- toObject(items) {
105
- const obj = {};
106
- for (const item of items) {
107
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
- obj[item.key] = item.value;
109
- }
110
- return obj;
111
- }
112
- /**
113
- * Private function to update dictionary items
114
- * @param items
115
- * @private
116
- */
117
- updateItems(items) {
118
- this.dictionaryItems$.next(items);
119
- }
120
- }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3V0aWxzL2RpY3Rpb25hcnkudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxNQUFNLE9BQU8sVUFBVTtJQUluQjs7O09BR0c7SUFDSCxZQUFZLEdBQUcsSUFBbUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUFnQyxJQUFJLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRTthQUN0QyxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsS0FBb0MsRUFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdEYsQ0FBQztJQUNWLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxHQUFHLENBQUMsR0FBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFpQyxFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRLENBQUMsR0FBUTtRQUNwQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksR0FBRyxDQUFDLEdBQVEsRUFBRSxLQUFZO1FBQzdCLE1BQU0sZUFBZSxHQUFrQyxDQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBRSxDQUFDO1FBQzFGLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLElBQWlDLEVBQUUsS0FBYztRQUMzRCxNQUFNLGVBQWUsR0FBa0MsQ0FBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUMxRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixlQUFlLENBQUUsS0FBSyxDQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRLENBQUMsR0FBUTtRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBZ0MsRUFBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFVLEVBQUUsS0FBYztRQUNwQyxNQUFNLGVBQWUsR0FBa0MsQ0FBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUMxRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssUUFBUSxDQUFDLEtBQW9DO1FBQ2pELE1BQU0sR0FBRyxHQUFtQixFQUFFLENBQUM7UUFDL0IsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN2Qiw4REFBOEQ7WUFDOUQsR0FBRyxDQUFFLElBQUksQ0FBQyxHQUFVLENBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssV0FBVyxDQUFDLEtBQW9DO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJRGljdGlvbmFyeUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvZGljdGlvbmFyeS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IElLZXlNYXAgfSBmcm9tICcuLi9tb2RlbHMva2V5LW1hcC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5PEtleSwgVmFsdWU+IHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGljdGlvbmFyeUl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PElEaWN0aW9uYXJ5SXRlbTxLZXksIFZhbHVlPltdPjtcblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuXG4gICAgICogQHBhcmFtIGRhdGEgUmVxdWlyZXMgYW4gYXJyYXkgb2YgSURpY3Rpb25hcnlJdGVtIHdpdGggYSBrZXkgYW5kIGEgdmFsdWVcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvciguLi5kYXRhOiBJRGljdGlvbmFyeUl0ZW08S2V5LCBWYWx1ZT5bXSkge1xuICAgICAgICB0aGlzLmRpY3Rpb25hcnlJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEaWN0aW9uYXJ5SXRlbTxLZXksIFZhbHVlPltdPihkYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHRvIHN1YnNjcmliZSB0byBkaWN0aW9uYXJ5IGNoYW5nZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2VzKCk6IE9ic2VydmFibGU8SURpY3Rpb25hcnlJdGVtPEtleSwgVmFsdWU+W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeUl0ZW1zJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHRvIHN1YnNjcmliZSB0byBkaWN0aW9uYXJ5IGFzIG9iamVjdCBjaGFuZ2VzXG4gICAgICovXG4gICAgcHVibGljIG9iamVjdEFycmF5KCk6IE9ic2VydmFibGU8SUtleU1hcDxWYWx1ZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeUl0ZW1zJC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChpdGVtczogSURpY3Rpb25hcnlJdGVtPEtleSwgVmFsdWU+W10pOiBJS2V5TWFwPFZhbHVlPiA9PiB0aGlzLnRvT2JqZWN0KGl0ZW1zKSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGl0ZW1zIG9mIHRoZSBkaWN0aW9uYXJ5XG4gICAgICogQHJldHVybnMgZGljdGlvbmFyeSBpdGVtc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXRlbXMoKTogSURpY3Rpb25hcnlJdGVtPEtleSwgVmFsdWU+W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5SXRlbXMkLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBkaWN0aW9uYXJ5IGl0ZW0gYnkga2V5XG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEByZXR1cm5zIHNpbmdsZSBkaWN0aW9uYXJ5IGl0ZW1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGtleTogS2V5KTogSURpY3Rpb25hcnlJdGVtPEtleSwgVmFsdWU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeUl0ZW1zJC52YWx1ZS5maW5kKChpdGVtOiBJRGljdGlvbmFyeUl0ZW08S2V5LCBWYWx1ZT4pOiBib29sZWFuID0+IGl0ZW0ua2V5ID09PSBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBkaWN0aW9uYXJ5IGNvbnRhaW5zIGl0ZW1cbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICovXG4gICAgcHVibGljIGNvbnRhaW5zKGtleTogS2V5KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChrZXkpICE9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIGRpY3Rpb25hcnkgaXRlbVxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkKGtleTogS2V5LCB2YWx1ZTogVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGljdGlvbmFyeUl0ZW1zOiBJRGljdGlvbmFyeUl0ZW08S2V5LCBWYWx1ZT5bXSA9IFsgLi4udGhpcy5kaWN0aW9uYXJ5SXRlbXMkLnZhbHVlIF07XG4gICAgICAgIGRpY3Rpb25hcnlJdGVtcy5wdXNoKHsga2V5LCB2YWx1ZSB9KTtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtcyhkaWN0aW9uYXJ5SXRlbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYSBkaWN0aW9uYXJ5IGl0ZW1cbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUoZGF0YTogSURpY3Rpb25hcnlJdGVtPEtleSwgVmFsdWU+LCBpbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWN0aW9uYXJ5SXRlbXM6IElEaWN0aW9uYXJ5SXRlbTxLZXksIFZhbHVlPltdID0gWyAuLi50aGlzLmRpY3Rpb25hcnlJdGVtcyQudmFsdWUgXTtcbiAgICAgICAgaWYgKCFpbmRleCkge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLmdldEluZGV4KGRhdGEua2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGRpY3Rpb25hcnlJdGVtc1sgaW5kZXggXSA9IGRhdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0RpY3Rpb25hcnk6IEluZGV4IG5vdCBmb3VuZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbXMoZGljdGlvbmFyeUl0ZW1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIGluZGV4IHdpdGggYSBzcGVjaWZpYyBrZXlcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICovXG4gICAgcHVibGljIGdldEluZGV4KGtleTogS2V5KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeUl0ZW1zJC52YWx1ZS5maW5kSW5kZXgoKHZhbDogSURpY3Rpb25hcnlJdGVtPEtleSwgVmFsdWU+KTogYm9vbGVhbiA9PiB2YWwua2V5ID09PSBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIHRoZSBkaWN0aW9uYXJ5XG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZSh2YWx1ZTogS2V5LCBpbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWN0aW9uYXJ5SXRlbXM6IElEaWN0aW9uYXJ5SXRlbTxLZXksIFZhbHVlPltdID0gWyAuLi50aGlzLmRpY3Rpb25hcnlJdGVtcyQudmFsdWUgXTtcbiAgICAgICAgaWYgKCFpbmRleCkge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLmdldEluZGV4KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGRpY3Rpb25hcnlJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdEaWN0aW9uYXJ5OiBJbmRleCBub3QgZm91bmQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1zKGRpY3Rpb25hcnlJdGVtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJpdmF0ZSBmdW5jdGlvbiB0byBjYXN0IGFycmF5IHRvIGFuIG9iamVjdFxuICAgICAqIEBwYXJhbSBpdGVtc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b09iamVjdChpdGVtczogSURpY3Rpb25hcnlJdGVtPEtleSwgVmFsdWU+W10pOiBJS2V5TWFwPFZhbHVlPiB7XG4gICAgICAgIGNvbnN0IG9iajogSUtleU1hcDxWYWx1ZT4gPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgb2JqWyBpdGVtLmtleSBhcyBhbnkgXSA9IGl0ZW0udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcml2YXRlIGZ1bmN0aW9uIHRvIHVwZGF0ZSBkaWN0aW9uYXJ5IGl0ZW1zXG4gICAgICogQHBhcmFtIGl0ZW1zXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZUl0ZW1zKGl0ZW1zOiBJRGljdGlvbmFyeUl0ZW08S2V5LCBWYWx1ZT5bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpY3Rpb25hcnlJdGVtcyQubmV4dChpdGVtcyk7XG4gICAgfVxuXG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3V0aWxzL2l0ZW0udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJSXRlbSB7XG4gICAga2V5OiBudW1iZXI7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3V0aWxzL3Byb21pc2UudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJvbWlzZVJlc29sdmU8VD4gPSAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQ7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IHR5cGUgUHJvbWlzZVJlamVjdCA9IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG4iXX0=
@@ -1,86 +0,0 @@
1
- /* eslint-disable @typescript-eslint/unbound-method */
2
- /**
3
- * Cast any type
4
- * @param data to be casted
5
- * @returns casted data
6
- */
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any,max-classes-per-file
8
- export function cast(data) {
9
- return data;
10
- }
11
- export class StringExtensions {
12
- getPart(maxChars, appendDot) {
13
- let newStr = cast(this).replace(/\\n/g, ' ');
14
- if (newStr.length > maxChars) {
15
- newStr = newStr.substring(0, maxChars);
16
- if (appendDot && newStr.length > maxChars - 3) {
17
- newStr += '...';
18
- }
19
- }
20
- return newStr;
21
- }
22
- fromJSON() {
23
- let str = cast(this);
24
- if (typeof this !== 'string') {
25
- str = JSON.stringify(str);
26
- }
27
- try {
28
- str = JSON.parse(str);
29
- }
30
- catch (e) {
31
- return null;
32
- }
33
- if (typeof str === 'object') {
34
- return str;
35
- }
36
- return null;
37
- }
38
- toCSSClass() {
39
- return cast(this)?.replace(/([a-z])([A-Z])/, '$1-$2').toLowerCase();
40
- }
41
- toUTC() {
42
- return `${cast(this)}Z`;
43
- }
44
- }
45
- export class ArrayExtensions {
46
- hasChanges(data) {
47
- return JSON.stringify(this) !== JSON.stringify(data);
48
- }
49
- replaceRange(data, start, end) {
50
- const array = cast(this);
51
- let replaceDataIndex = 0;
52
- for (let i = start; i < end; i++) {
53
- if (!array[i] && !data[replaceDataIndex]) {
54
- array.splice(i, 1);
55
- continue;
56
- }
57
- array[i] = data[replaceDataIndex];
58
- replaceDataIndex++;
59
- }
60
- return array;
61
- }
62
- }
63
- export class NumberExtensions {
64
- between(start, end) {
65
- const num = cast(this);
66
- return num >= start && num <= end;
67
- }
68
- }
69
- export class Prototypes {
70
- /**
71
- * Initialize prototypes
72
- */
73
- static init() {
74
- const stringExtensions = new StringExtensions();
75
- const arrayExtensions = new ArrayExtensions();
76
- const numberExtensions = new NumberExtensions();
77
- String.prototype.getPart = stringExtensions.getPart;
78
- String.prototype.fromJSON = stringExtensions.fromJSON;
79
- String.prototype.toCSSClass = stringExtensions.toCSSClass;
80
- String.prototype.toUTC = stringExtensions.toUTC;
81
- Array.prototype.hasChanges = arrayExtensions.hasChanges;
82
- Array.prototype.replaceRange = arrayExtensions.replaceRange;
83
- Number.prototype.between = numberExtensions.between;
84
- }
85
- }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG90eXBlcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3V0aWxzL3Byb3RvdHlwZXMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQ7Ozs7R0FJRztBQUNILG1GQUFtRjtBQUNuRixNQUFNLFVBQVUsSUFBSSxDQUFJLElBQVM7SUFDN0IsT0FBTyxJQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsT0FBTyxDQUFDLFFBQWdCLEVBQUUsU0FBbUI7UUFDaEQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFTLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2QyxJQUFJLFNBQVMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQztZQUNwQixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxHQUFHLEdBQVcsSUFBSSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNELEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFRLENBQUM7UUFDcEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxVQUFVO1FBQ2IsT0FBTyxJQUFJLENBQVMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hGLENBQUM7SUFFTSxLQUFLO1FBQ1IsT0FBTyxHQUFHLElBQUksQ0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBQ2pCLFVBQVUsQ0FBSSxJQUFTO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxZQUFZLENBQUksSUFBUyxFQUFFLEtBQWEsRUFBRSxHQUFXO1FBQ3hELE1BQU0sS0FBSyxHQUFRLElBQUksQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLGdCQUFnQixHQUFXLENBQUMsQ0FBQztRQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFXLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBRSxDQUFDLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBRSxnQkFBZ0IsQ0FBRSxFQUFFLENBQUM7Z0JBQzNDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixTQUFTO1lBQ2IsQ0FBQztZQUVELEtBQUssQ0FBRSxDQUFDLENBQUUsR0FBRyxJQUFJLENBQUUsZ0JBQWdCLENBQUUsQ0FBQztZQUN0QyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ2xCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUNyQyxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDdkMsT0FBTyxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdEMsQ0FBQztDQUNKO0FBcUVELE1BQU0sT0FBTyxVQUFVO0lBRW5COztPQUVHO0lBQ0ksTUFBTSxDQUFDLElBQUk7UUFDZCxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBRWhELE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUNwRCxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7UUFDdEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUVoRCxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFFNUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ3hELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAqL1xuLyoqXG4gKiBDYXN0IGFueSB0eXBlXG4gKiBAcGFyYW0gZGF0YSB0byBiZSBjYXN0ZWRcbiAqIEByZXR1cm5zIGNhc3RlZCBkYXRhXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LG1heC1jbGFzc2VzLXBlci1maWxlXG5leHBvcnQgZnVuY3Rpb24gY2FzdDxUPihkYXRhOiBhbnkpOiBUIHtcbiAgICByZXR1cm4gZGF0YSBhcyBUO1xufVxuXG5leHBvcnQgY2xhc3MgU3RyaW5nRXh0ZW5zaW9ucyBpbXBsZW1lbnRzIElTdHJpbmdFeHRlbnNpb25zIHtcbiAgICBwdWJsaWMgZ2V0UGFydChtYXhDaGFyczogbnVtYmVyLCBhcHBlbmREb3Q/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG5ld1N0ciA9IGNhc3Q8c3RyaW5nPih0aGlzKS5yZXBsYWNlKC9cXFxcbi9nLCAnICcpO1xuICAgICAgICBpZiAobmV3U3RyLmxlbmd0aCA+IG1heENoYXJzKSB7XG4gICAgICAgICAgICBuZXdTdHIgPSBuZXdTdHIuc3Vic3RyaW5nKDAsIG1heENoYXJzKTtcbiAgICAgICAgICAgIGlmIChhcHBlbmREb3QgJiYgbmV3U3RyLmxlbmd0aCA+IG1heENoYXJzIC0gMykge1xuICAgICAgICAgICAgICAgIG5ld1N0ciArPSAnLi4uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3U3RyO1xuICAgIH1cblxuICAgIHB1YmxpYyBmcm9tSlNPTjxUPigpOiBUIHtcbiAgICAgICAgbGV0IHN0cjogc3RyaW5nID0gY2FzdDxzdHJpbmc+KHRoaXMpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBzdHIgPSBKU09OLnN0cmluZ2lmeShzdHIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0ciA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHN0ciA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHIgYXMgVDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0NTU0NsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBjYXN0PHN0cmluZz4odGhpcyk/LnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pLywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9VVEMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2Nhc3Q8c3RyaW5nPih0aGlzKX1aYDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcnJheUV4dGVuc2lvbnMgaW1wbGVtZW50cyBJQXJyYXlFeHRlbnNpb25zIHtcbiAgICBwdWJsaWMgaGFzQ2hhbmdlczxUPihkYXRhOiBUW10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpICE9PSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVwbGFjZVJhbmdlPFQ+KGRhdGE6IFRbXSwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBUW10ge1xuICAgICAgICBjb25zdCBhcnJheTogVFtdID0gY2FzdDxUW10+KHRoaXMpO1xuICAgICAgICBsZXQgcmVwbGFjZURhdGFJbmRleDogbnVtYmVyID0gMDtcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFhcnJheVsgaSBdICYmICFkYXRhWyByZXBsYWNlRGF0YUluZGV4IF0pIHtcbiAgICAgICAgICAgICAgICBhcnJheS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFycmF5WyBpIF0gPSBkYXRhWyByZXBsYWNlRGF0YUluZGV4IF07XG4gICAgICAgICAgICByZXBsYWNlRGF0YUluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE51bWJlckV4dGVuc2lvbnMgaW1wbGVtZW50cyBJTnVtYmVyRXh0ZW5zaW9ucyB7XG4gICAgcHVibGljIGJldHdlZW4oc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbnVtOiBudW1iZXIgPSBjYXN0PG51bWJlcj4odGhpcyk7XG4gICAgICAgIHJldHVybiBudW0gPj0gc3RhcnQgJiYgbnVtIDw9IGVuZDtcbiAgICB9XG59XG5cbi8qKlxuICogQGludGVyZmFjZSBTdHJpbmdFeHRlbnNpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVN0cmluZ0V4dGVuc2lvbnMge1xuICAgIC8qKlxuICAgICAqIEdldHMgYSBwYXJ0IG9mIGEgc3RyaW5nXG4gICAgICogQHBhcmFtIG1heENoYXJzIG1heGltdW0gYW1vdW50IG9mIGNoYXJzXG4gICAgICogQHBhcmFtIGFwcGVuZERvdCBhcHBlbmQgdGhyZWUgZG90cyBhdCB0aGUgZW5kXG4gICAgICogQHJldHVybnMgc3BsaXR0ZWQgc3RyaW5nXG4gICAgICovXG4gICAgZ2V0UGFydChtYXhDaGFyczogbnVtYmVyLCBhcHBlbmREb3Q/OiBib29sZWFuKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBzdHJpbmcgZnJvbSBqc29uXG4gICAgICogQHJldHVybnMgb2JqZWN0IG9mIGV4cGVjdGVkIHR5cGVcbiAgICAgKi9cbiAgICBmcm9tSlNPTjxUPigpOiBUO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSBjc3MgY2xhc3NcbiAgICAgKiBAcmV0dXJucyBjb252ZXJ0ZWQga2ViYWIgY2FzZSBjc3MgY2xhc3NcbiAgICAgKi9cbiAgICB0b0NTU0NsYXNzKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGEgZGF0ZXRpbWUgc3RyaW5nIHRvIHV0YyBmb3JtYXRcbiAgICAgKi9cbiAgICB0b1VUQygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFycmF5RXh0ZW5zaW9ucyB7XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFycmF5IGhhcyBjaGFuZ2VzXG4gICAgICogQHBhcmFtIGRhdGEgYXJyYXkgcGFzc2VkXG4gICAgICogQGRlcHJlY2F0ZWQgbGVhcm4gaG93IHRvIHByb2dyYW1cbiAgICAgKi9cbiAgICBoYXNDaGFuZ2VzOiA8VD4oZGF0YTogVFtdKSA9PiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIGEgc3BlY2lmaWMgZWxlbWVudCByYW5nZSBpbiBhbiBhcnJheVxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICovXG4gICAgcmVwbGFjZVJhbmdlOiA8VD4ocmVwbGFjZURhdGE6IFRbXSwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpID0+IFRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTnVtYmVyRXh0ZW5zaW9ucyB7XG4gICAgLyoqXG4gICAgICogY2hlY2tzIGlmIGEgbnVtYmVyIGluIGEgcmFuZ2VcbiAgICAgKiBAcGFyYW0gc3RhcnQgb2YgcmFuZ2VcbiAgICAgKiBAcGFyYW0gZW5kIG9mIHJhbmdlXG4gICAgICovXG4gICAgYmV0d2VlbihzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IGJvb2xlYW47XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSxpZC1ibGFja2xpc3RcbiAgICBpbnRlcmZhY2UgU3RyaW5nIGV4dGVuZHMgSVN0cmluZ0V4dGVuc2lvbnMge1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGludGVyZmFjZSBBcnJheTxUPiBleHRlbmRzIElBcnJheUV4dGVuc2lvbnMge1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlLGlkLWJsYWNrbGlzdFxuICAgIGludGVyZmFjZSBOdW1iZXIgZXh0ZW5kcyBJTnVtYmVyRXh0ZW5zaW9ucyB7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvdG90eXBlcyB7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIHByb3RvdHlwZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0cmluZ0V4dGVuc2lvbnMgPSBuZXcgU3RyaW5nRXh0ZW5zaW9ucygpO1xuICAgICAgICBjb25zdCBhcnJheUV4dGVuc2lvbnMgPSBuZXcgQXJyYXlFeHRlbnNpb25zKCk7XG4gICAgICAgIGNvbnN0IG51bWJlckV4dGVuc2lvbnMgPSBuZXcgTnVtYmVyRXh0ZW5zaW9ucygpO1xuXG4gICAgICAgIFN0cmluZy5wcm90b3R5cGUuZ2V0UGFydCA9IHN0cmluZ0V4dGVuc2lvbnMuZ2V0UGFydDtcbiAgICAgICAgU3RyaW5nLnByb3RvdHlwZS5mcm9tSlNPTiA9IHN0cmluZ0V4dGVuc2lvbnMuZnJvbUpTT047XG4gICAgICAgIFN0cmluZy5wcm90b3R5cGUudG9DU1NDbGFzcyA9IHN0cmluZ0V4dGVuc2lvbnMudG9DU1NDbGFzcztcbiAgICAgICAgU3RyaW5nLnByb3RvdHlwZS50b1VUQyA9IHN0cmluZ0V4dGVuc2lvbnMudG9VVEM7XG5cbiAgICAgICAgQXJyYXkucHJvdG90eXBlLmhhc0NoYW5nZXMgPSBhcnJheUV4dGVuc2lvbnMuaGFzQ2hhbmdlcztcbiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlcGxhY2VSYW5nZSA9IGFycmF5RXh0ZW5zaW9ucy5yZXBsYWNlUmFuZ2U7XG5cbiAgICAgICAgTnVtYmVyLnByb3RvdHlwZS5iZXR3ZWVuID0gbnVtYmVyRXh0ZW5zaW9ucy5iZXR3ZWVuO1xuICAgIH1cbn1cbiJdfQ==