@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.
- package/fesm2022/mosa-ng-core.mjs +74 -63
- package/fesm2022/mosa-ng-core.mjs.map +1 -1
- package/package.json +3 -5
- package/esm2022/lib/constants/local-storage.constant.mjs +0 -4
- package/esm2022/lib/enums/browser.enum.mjs +0 -11
- package/esm2022/lib/enums/content-position.enum.mjs +0 -13
- package/esm2022/lib/enums/i18n-supported.enum.mjs +0 -12
- package/esm2022/lib/enums/theme.enum.mjs +0 -6
- package/esm2022/lib/models/api-options.model.mjs +0 -2
- package/esm2022/lib/models/dictionary-item.model.mjs +0 -2
- package/esm2022/lib/models/key-map.model.mjs +0 -2
- package/esm2022/lib/models/logger/log-event.model.mjs +0 -2
- package/esm2022/lib/models/logger/log-message-data.model.mjs +0 -2
- package/esm2022/lib/models/logger/log-type.model.mjs +0 -2
- package/esm2022/lib/models/logger/log.model.mjs +0 -2
- package/esm2022/lib/models/logger/logger-base-config.model.mjs +0 -2
- package/esm2022/lib/models/logger/logger-config.model.mjs +0 -2
- package/esm2022/lib/models/logger/logger-default-config.model.mjs +0 -2
- package/esm2022/lib/models/mosa-duration.model.mjs +0 -2
- package/esm2022/lib/models/sieve/sieve-filter.model.mjs +0 -2
- package/esm2022/lib/models/sieve/sieve-operator.model.mjs +0 -2
- package/esm2022/lib/models/sieve/sieve-options.model.mjs +0 -2
- package/esm2022/lib/models/sieve/sieve-response.model.mjs +0 -2
- package/esm2022/lib/models/sieve/sieve-sort.model.mjs +0 -2
- package/esm2022/lib/models/token-settings.model.mjs +0 -2
- package/esm2022/lib/models/transform-matrix.model.mjs +0 -2
- package/esm2022/lib/mosa-core.module.mjs +0 -105
- package/esm2022/lib/pipes/dictionary-item-pipe/dictionary-item-pipe.module.mjs +0 -22
- package/esm2022/lib/pipes/dictionary-item-pipe/dictionary-item.pipe.mjs +0 -17
- package/esm2022/lib/pipes/find-in-array/find-in-array-pipe.module.mjs +0 -24
- package/esm2022/lib/pipes/find-in-array/find-in-array.pipe.mjs +0 -34
- package/esm2022/lib/pipes/join/join-pipe.module.mjs +0 -24
- package/esm2022/lib/pipes/join/join.pipe.mjs +0 -24
- package/esm2022/lib/pipes/mosa-date-pipe/mosa-date-pipe.module.mjs +0 -21
- package/esm2022/lib/pipes/mosa-date-pipe/mosa-date.pipe.mjs +0 -91
- package/esm2022/lib/pipes/mosa-duration-pipe/mosa-duration-pipe.module.mjs +0 -20
- package/esm2022/lib/pipes/mosa-duration-pipe/mosa-duration.pipe.mjs +0 -88
- package/esm2022/lib/services/api.service.mjs +0 -225
- package/esm2022/lib/services/core-logger.service.mjs +0 -197
- package/esm2022/lib/services/guards/can-deactivate.guard.mjs +0 -16
- package/esm2022/lib/services/mosa-socket.service.mjs +0 -44
- package/esm2022/lib/services/translation/assets-i18n-loader.service.mjs +0 -58
- package/esm2022/lib/services/translation/custom-translate-loader.service.mjs +0 -28
- package/esm2022/lib/services/translation/translate-collector.service.mjs +0 -54
- package/esm2022/lib/utils/commons.util.mjs +0 -89
- package/esm2022/lib/utils/dictionary.util.mjs +0 -121
- package/esm2022/lib/utils/item.util.mjs +0 -2
- package/esm2022/lib/utils/promise.util.mjs +0 -2
- package/esm2022/lib/utils/prototypes.util.mjs +0 -86
- package/esm2022/lib/utils/sieve.util.mjs +0 -137
- package/esm2022/lib/utils/size.util.mjs +0 -2
- package/esm2022/mosa-ng-core.mjs +0 -5
- 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==
|