ontimize-web-ngx 15.6.0-next.0 → 15.6.0-next.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/esm2020/lib/components/input/o-form-service-component.class.mjs +2 -2
- package/esm2020/lib/components/table/extensions/o-table.dao.mjs +9 -11
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/config/app-config.mjs +1 -1
- package/esm2020/lib/config/o-providers.mjs +3 -5
- package/esm2020/lib/services/base-data-service.class.mjs +2 -1
- package/esm2020/lib/services/factories.mjs +7 -7
- package/esm2020/lib/services/index.mjs +2 -1
- package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +16 -14
- package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +1 -2
- package/esm2020/lib/services/ontimize/index.mjs +1 -2
- package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +1 -5
- package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +2 -2
- package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -6
- package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +2 -3
- package/esm2020/lib/services/translate/o-translate.service.mjs +7 -4
- package/esm2020/lib/util/preference-mapping-util.mjs +21 -6
- package/esm2020/lib/util/util.mjs +16 -1
- package/fesm2015/ontimize-web-ngx.mjs +316 -305
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +313 -304
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/table/extensions/o-table.dao.d.ts +3 -2
- package/lib/components/table/o-table-base.class.d.ts +1 -0
- package/lib/config/app-config.d.ts +1 -1
- package/lib/services/base-data-service.class.d.ts +1 -0
- package/lib/services/factories.d.ts +3 -3
- package/lib/services/index.d.ts +1 -0
- package/lib/services/jsonapi/jsonapi-preferences.service.d.ts +1 -1
- package/lib/services/jsonapi/jsonapi.service.d.ts +0 -1
- package/lib/services/ontimize/index.d.ts +0 -1
- package/lib/services/ontimize/ontimize-ee.service.d.ts +0 -1
- package/lib/services/translate/o-translate.service.d.ts +1 -0
- package/lib/util/preference-mapping-util.d.ts +22 -3
- package/lib/util/util.d.ts +2 -0
- package/package.json +1 -1
- package/esm2020/lib/services/ontimize/o-preference-query-argument.adapter.mjs +0 -17
- package/lib/services/ontimize/o-preference-query-argument.adapter.d.ts +0 -7
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { Injectable, Injector } from '@angular/core';
|
|
2
|
+
import { OPreferenceMappingUtils } from '../../util/preference-mapping-util';
|
|
2
3
|
import { OntimizeEEService } from './ontimize-ee.service';
|
|
3
4
|
import { OPreferenceResponseAdapter } from './o-preference-response.adapter';
|
|
4
|
-
import { OPreferenceQueryArgumentsAdapter } from './o-preference-query-argument.adapter';
|
|
5
|
-
import { OPreferenceMappingUtils } from '../../util/preference-mapping-util';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export class OntimizePreferencesService extends OntimizeEEService {
|
|
8
7
|
constructor(injector) {
|
|
9
8
|
super(injector);
|
|
10
9
|
this.path = '';
|
|
11
|
-
this.queryArgumentAdapter = this.injector.get(OPreferenceQueryArgumentsAdapter);
|
|
12
10
|
}
|
|
13
11
|
configureService(config) {
|
|
14
12
|
super.configureService(config);
|
|
@@ -18,7 +16,7 @@ export class OntimizePreferencesService extends OntimizeEEService {
|
|
|
18
16
|
this.adapter = this.injector.get(OPreferenceResponseAdapter);
|
|
19
17
|
}
|
|
20
18
|
saveAsPreferences(preferencesparams) {
|
|
21
|
-
const body = JSON.stringify(OPreferenceMappingUtils.
|
|
19
|
+
const body = JSON.stringify(OPreferenceMappingUtils.ontimizePreferencesDataMapping(preferencesparams));
|
|
22
20
|
const url = `${this.urlBase}${this.path}/save`;
|
|
23
21
|
return this.doRequest({
|
|
24
22
|
method: 'POST',
|
|
@@ -27,7 +25,7 @@ export class OntimizePreferencesService extends OntimizeEEService {
|
|
|
27
25
|
});
|
|
28
26
|
}
|
|
29
27
|
savePreferences(id, preferencesparams) {
|
|
30
|
-
const body = JSON.stringify(OPreferenceMappingUtils.
|
|
28
|
+
const body = JSON.stringify(OPreferenceMappingUtils.ontimizePreferencesDataMapping(preferencesparams));
|
|
31
29
|
const url = `${this.urlBase}${this.path}/update/${id}`;
|
|
32
30
|
return this.doRequest({
|
|
33
31
|
method: 'PUT',
|
|
@@ -55,4 +53,4 @@ OntimizePreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12
|
|
|
55
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OntimizePreferencesService, decorators: [{
|
|
56
54
|
type: Injectable
|
|
57
55
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib250aW1pemUtcHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9vbnRpbWl6ZS9vbnRpbWl6ZS1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUc3RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBQy9ELFlBQVksUUFBaUI7UUFDM0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR1gsU0FBSSxHQUFXLEVBQUUsQ0FBQztJQUZ6QixDQUFDO0lBR00sZ0JBQWdCLENBQUMsTUFBVztRQUNqQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLGNBQWMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0saUJBQWlCLENBQUMsaUJBQTBCO1FBRWpELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQ3pCLHVCQUF1QixDQUFDLDhCQUE4QixDQUFDLGlCQUFpQixDQUFDLENBQzFFLENBQUE7UUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZSxDQUFDLEVBQVUsRUFBRSxpQkFBMEI7UUFFM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDekIsdUJBQXVCLENBQUMsOEJBQThCLENBQUMsaUJBQWlCLENBQUMsQ0FDMUUsQ0FBQTtRQUNELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBRXZELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxPQUFlLEVBQUUsSUFBWTtRQUVqRSxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksdUJBQXVCLE1BQU0sWUFBWSxPQUFPLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFFdkcsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBVztRQUVsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFFTCxDQUFDOzt1SEEvRFUsMEJBQTBCOzJIQUExQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9wcmVmZXJlbmNlLW1hcHBpbmctdXRpbCc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtZWUuc2VydmljZSc7XG5pbXBvcnQgeyBPUHJlZmVyZW5jZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vby1wcmVmZXJlbmNlLXJlc3BvbnNlLmFkYXB0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT250aW1pemVQcmVmZXJlbmNlc1NlcnZpY2UgZXh0ZW5kcyBPbnRpbWl6ZUVFU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOkluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgcHVibGljIHBhdGg6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgY29uZmlndXJlU2VydmljZShjb25maWc6IGFueSk6IHZvaWQge1xuICAgIHN1cGVyLmNvbmZpZ3VyZVNlcnZpY2UoY29uZmlnKTtcbiAgICB0aGlzLnBhdGggPSBjb25maWcucGF0aCB8fCAnL3ByZWZlcmVuY2VzJztcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVBZGFwdGVyKCkge1xuICAgIHRoaXMuYWRhcHRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9QcmVmZXJlbmNlUmVzcG9uc2VBZGFwdGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQXNQcmVmZXJlbmNlcyhwcmVmZXJlbmNlc3BhcmFtcz86IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5vbnRpbWl6ZVByZWZlcmVuY2VzRGF0YU1hcHBpbmcocHJlZmVyZW5jZXNwYXJhbXMpXG4gICAgKVxuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS9zYXZlYDtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNhdmVQcmVmZXJlbmNlcyhpZDogbnVtYmVyLCBwcmVmZXJlbmNlc3BhcmFtcz86IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5vbnRpbWl6ZVByZWZlcmVuY2VzRGF0YU1hcHBpbmcocHJlZmVyZW5jZXNwYXJhbXMpXG4gICAgKVxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vdXBkYXRlLyR7aWR9YDtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJlZmVyZW5jZXMoZW50aXR5OiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgdHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vcHJlZmVyZW5jZXM/ZW50aXR5PSR7ZW50aXR5fSZzZXJ2aWNlPSR7c2VydmljZX0mdHlwZT0ke3R5cGV9YDtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiB1cmxcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIGRlbGV0ZVByZWZlcmVuY2VzKGlkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vcmVtb3ZlLyR7aWR9YDtcbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogdXJsXG4gICAgfSk7XG5cbiAgfVxufVxuIl19
|
|
@@ -44,12 +44,11 @@ export class JSONAPIQueryArgumentsAdapter extends BaseQueryArgument {
|
|
|
44
44
|
}
|
|
45
45
|
deComposeExpresion(expresion, columns, kv) {
|
|
46
46
|
if (FilterExpressionUtils.instanceofExpression(expresion)) {
|
|
47
|
-
if (
|
|
47
|
+
if (typeof expresion.lop !== 'string') {
|
|
48
48
|
kv = this.deComposeExpresion(expresion.lop, columns, kv);
|
|
49
49
|
return this.deComposeExpresion(expresion.rop, columns, kv);
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
|
-
const key = expresion.lop;
|
|
53
52
|
return kv;
|
|
54
53
|
}
|
|
55
54
|
}
|
|
@@ -60,4 +59,4 @@ JSONAPIQueryArgumentsAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "
|
|
|
60
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIQueryArgumentsAdapter, decorators: [{
|
|
61
60
|
type: Injectable
|
|
62
61
|
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1xdWVyeS1hcmd1bWVudHMuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9xdWVyeS1hcmd1bWVudHMvanNvbmFwaS1xdWVyeS1hcmd1bWVudHMuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGlCQUFpQjtJQUVqRSxvQkFBb0IsQ0FBQyxJQUFrQjtRQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlDLElBQUksU0FBUyxHQUEwQjtZQUNyQyxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDcEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNoRCxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQ2hEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBRWpDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFxQixFQUFFLEdBQVcsRUFBRSxLQUFpQixFQUFFLEVBQUU7Z0JBQ3ZGLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3hDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFHRCxTQUFTLENBQUMsU0FBUyxFQUFFLE9BQXNCLEVBQUUsRUFBVTtRQUNyRCxNQUFNLGNBQWMsR0FBZSxTQUFTLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6RixNQUFNLGVBQWUsR0FBZSxTQUFTLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUUzRixJQUFJLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDbEMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDNUU7UUFHRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDbkMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUM5RjtRQUNELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLFNBQWMsRUFBRSxPQUFzQixFQUFFLEVBQVU7UUFDbkUsSUFBSSxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN6RCxJQUFJLE9BQU8sU0FBUyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7Z0JBQ3JDLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzVEO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxDQUFDO2FBQ1g7U0FDRjtJQUNILENBQUM7O3lIQTlEVSw0QkFBNEI7NkhBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1FMT3JkZXIgfSBmcm9tICcuLy4uLy4uL3R5cGVzL3NxbC1vcmRlci50eXBlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBKU09OQVBJUXVlcnlQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi90eXBlcy9qc29uLXF1ZXJ5LXBhcmFtZXRlci50eXBlJztcbmltcG9ydCB7IEJhc2VRdWVyeUFyZ3VtZW50IH0gZnJvbSAnLi9iYXNlLXF1ZXJ5LWFyZ3VtZW50LmFkYXB0ZXInO1xuaW1wb3J0IHsgSUJhc2VRdWVyeUFyZ3VtZW50IH0gZnJvbSAnLi9iYXNlLXF1ZXJ5LWFyZ3VtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBPUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9xdWVyeS1wYXJhbXMudHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IEZpbHRlckV4cHJlc3Npb25VdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvZmlsdGVyLWV4cHJlc3Npb24udXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSlNPTkFQSVF1ZXJ5QXJndW1lbnRzQWRhcHRlciBleHRlbmRzIEJhc2VRdWVyeUFyZ3VtZW50IGltcGxlbWVudHMgSUJhc2VRdWVyeUFyZ3VtZW50IHtcblxuICBwYXJzZVF1ZXJ5UGFyYW1ldGVycyhhcmdzOiBPUXVlcnlQYXJhbXMpOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXJbXSB7XG5cbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKGFyZ3MpKSByZXR1cm4gW107XG4gICAgbGV0IGZpZWxkcyA9IHt9O1xuXG4gICAgZmllbGRzW2FyZ3MuZW50aXR5XSA9IGFyZ3MuY29sdW1ucy50b1N0cmluZygpO1xuXG4gICAgbGV0IHF1ZXJ5YXJnczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyID0ge1xuICAgICAgZmllbGRzOiBmaWVsZHNcbiAgICB9O1xuXG4gICAgaWYgKGFyZ3MucGFnZWFibGUpIHtcbiAgICAgIHF1ZXJ5YXJncy5wYWdlID0ge307XG4gICAgICBxdWVyeWFyZ3MucGFnZVsnb2Zmc2V0J10gPSBhcmdzLm92cnJBcmdzLm9mZnNldDtcbiAgICAgIHF1ZXJ5YXJncy5wYWdlWydsaW1pdCddID0gYXJncy5vdnJyQXJncy5sZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKCFVdGlsLmlzQXJyYXlFbXB0eShhcmdzLnNvcnQpKSB7XG5cbiAgICAgIHF1ZXJ5YXJncy5zb3J0ID0gYXJncy5zb3J0Lm1hcCgoc29ydEVsZW1lbnQ6IFNRTE9yZGVyLCBpZHg6IG51bWJlciwgYXJyYXk6IFNRTE9yZGVyW10pID0+IHtcbiAgICAgICAgcmV0dXJuIHNvcnRFbGVtZW50LmFzY2VuZGVudCA/IHNvcnRFbGVtZW50LmNvbHVtbk5hbWUgOiAoJy0nICsgc29ydEVsZW1lbnQuY29sdW1uTmFtZSk7XG4gICAgICB9KS5qb2luKCcsJyk7XG4gICAgfVxuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGFyZ3MuZmlsdGVyKSkge1xuICAgICAgcXVlcnlhcmdzLmZpbHRlciA9IHt9O1xuICAgICAgT2JqZWN0LmtleXMoYXJncy5maWx0ZXIpLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgcXVlcnlhcmdzLmZpbHRlcltmaWx0ZXJdID0gYXJncy5maWx0ZXJbZmlsdGVyXTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBbcXVlcnlhcmdzXTtcbiAgfVxuXG5cbiAgZGVDb21wb3NlKGV4cHJlc2lvbiwgY29sdW1uczogQXJyYXk8c3RyaW5nPiwga3Y6IE9iamVjdCkge1xuICAgIGNvbnN0IGJhc2ljRXhwcmVzaW9uOiBFeHByZXNzaW9uID0gZXhwcmVzaW9uW0ZpbHRlckV4cHJlc3Npb25VdGlscy5CQVNJQ19FWFBSRVNTSU9OX0tFWV07XG4gICAgY29uc3QgZmlsdGVyRXhwcmVzaW9uOiBFeHByZXNzaW9uID0gZXhwcmVzaW9uW0ZpbHRlckV4cHJlc3Npb25VdGlscy5GSUxURVJfRVhQUkVTU0lPTl9LRVldO1xuXG4gICAgbGV0IGRlY29tcG9zZWRFeHByZXNpb24gPSBrdjtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoYmFzaWNFeHByZXNpb24pKSB7XG4gICAgICBkZWNvbXBvc2VkRXhwcmVzaW9uID0gdGhpcy5kZUNvbXBvc2VFeHByZXNpb24oYmFzaWNFeHByZXNpb24sIGNvbHVtbnMsIGt2KTtcbiAgICB9XG5cbiAgICAvKiBSZXF1aXJlZCBmb3IgY29sdW1uIGZpbHRlcmluZyB3aGljaCBpcyBjdXJyZW50bHkgZGlzYWJsZWQgKi9cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoZmlsdGVyRXhwcmVzaW9uKSkge1xuICAgICAgZGVjb21wb3NlZEV4cHJlc2lvbiA9IHRoaXMuZGVDb21wb3NlRXhwcmVzaW9uKGZpbHRlckV4cHJlc2lvbiwgY29sdW1ucywgZGVjb21wb3NlZEV4cHJlc2lvbik7XG4gICAgfVxuICAgIHJldHVybiBkZWNvbXBvc2VkRXhwcmVzaW9uO1xuICB9XG5cbiAgZGVDb21wb3NlRXhwcmVzaW9uKGV4cHJlc2lvbjogYW55LCBjb2x1bW5zOiBBcnJheTxzdHJpbmc+LCBrdjogT2JqZWN0KSB7XG4gICAgaWYgKEZpbHRlckV4cHJlc3Npb25VdGlscy5pbnN0YW5jZW9mRXhwcmVzc2lvbihleHByZXNpb24pKSB7XG4gICAgICBpZiAodHlwZW9mIGV4cHJlc2lvbi5sb3AgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGt2ID0gdGhpcy5kZUNvbXBvc2VFeHByZXNpb24oZXhwcmVzaW9uLmxvcCwgY29sdW1ucywga3YpO1xuICAgICAgICByZXR1cm4gdGhpcy5kZUNvbXBvc2VFeHByZXNpb24oZXhwcmVzaW9uLnJvcCwgY29sdW1ucywga3YpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGt2O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { EventEmitter, Injectable, Injector } from '@angular/core';
|
|
3
|
+
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
3
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
4
5
|
import { Observable } from 'rxjs';
|
|
5
6
|
import { AppConfig } from '../../config/app-config';
|
|
6
7
|
import * as CORE_TRANSLATIONS from '../../i18n/i18n';
|
|
7
8
|
import { MomentService } from '../../services/moment.service';
|
|
8
9
|
import { ObservableWrapper } from '../../util/async';
|
|
9
|
-
import { _getInjectionTokenValue, O_TRANSLATE_SERVICE } from '../factories';
|
|
10
|
-
import { Util } from '../../util/util';
|
|
11
10
|
import { Codes } from '../../util/codes';
|
|
12
|
-
import {
|
|
11
|
+
import { Util } from '../../util/util';
|
|
12
|
+
import { _getInjectionTokenValue, O_TRANSLATE_SERVICE } from '../factories';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export function translateServiceFactory(injector) {
|
|
15
15
|
const serviceClass = _getInjectionTokenValue(O_TRANSLATE_SERVICE, injector);
|
|
@@ -141,6 +141,9 @@ export class OTranslateService {
|
|
|
141
141
|
observer.next(langRes);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
+
getNgxTranslateService() {
|
|
145
|
+
return this.ngxTranslateService;
|
|
146
|
+
}
|
|
144
147
|
getCurrentLang() {
|
|
145
148
|
return this.ngxTranslateService.currentLang;
|
|
146
149
|
}
|
|
@@ -168,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
168
171
|
type: Injectable,
|
|
169
172
|
args: [{ providedIn: 'root', useFactory: translateServiceFactory, deps: [Injector] }]
|
|
170
173
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmFuc2xhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGUvby10cmFuc2xhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU0xRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBa0I7SUFDeEQsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNu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Q0FBQztRQUN2RyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOztBQW5LYSw2QkFBVyxHQUFHLGdCQUFnQixDQUFDO0FBQy9CLGtDQUFnQixHQUFHLE9BQU8sQ0FBQzs4R0FIOUIsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNLGNBQWMsdUJBQXVCLGtCQUFTLFFBQVE7MkZBQ3pFLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0ICogYXMgQ09SRV9UUkFOU0xBVElPTlMgZnJvbSAnLi4vLi4vaTE4bi9pMThuJztcbmltcG9ydCB7IE1vbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb21lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlV3JhcHBlciB9IGZyb20gJy4uLy4uL3V0aWwvYXN5bmMnO1xuaW1wb3J0IHsgX2dldEluamVjdGlvblRva2VuVmFsdWUsIE9fVFJBTlNMQVRFX1NFUlZJQ0UgfSBmcm9tICcuLi9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuXG4vKipcbiAqIGBPVHJhbnNsYXRlU2VydmljZWAgZmFjdG9yeS5cbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHRyYW5zbGF0ZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19UUkFOU0xBVEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgT1RyYW5zbGF0ZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JywgdXNlRmFjdG9yeTogdHJhbnNsYXRlU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfSlcbmV4cG9ydCBjbGFzcyBPVHJhbnNsYXRlU2VydmljZSB7XG5cbiAgcHVibGljIHN0YXRpYyBBU1NFVFNfUEFUSCA9ICcuL2Fzc2V0cy9pMThuLyc7XG4gIHB1YmxpYyBzdGF0aWMgQVNTRVRTX0VYVEVOU0lPTiA9ICcuanNvbic7XG4gIHB1YmxpYyBERUZBVUxUX0xBTkcgPSAnZW4nO1xuICBwdWJsaWMgb25MYW5ndWFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3RlY3RlZCBuZ3hUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbW9tZW50U2VydmljZTogTW9tZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG5cbiAgcHJvdGVjdGVkIGxvY2FsU3RvcmFnZUtleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbm90Rm91bmRMYW5nOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHByb3RlY3RlZCBhcHBDb25maWc6IEFwcENvbmZpZztcbiAgcHJvdGVjdGVkIGV4aXN0aW5nTGFuZ0ZpbGVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHByb3RlY3RlZCBkZWZhdWx0TG9jYWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMubW9tZW50U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE1vbWVudFNlcnZpY2UpO1xuICAgIHRoaXMuaHR0cENsaWVudCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIHRoaXMuYXBwQ29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZUtleSA9IHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS51dWlkO1xuICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS5kZWZhdWx0TG9jYWxlO1xuICB9XG5cbiAgcHVibGljIHN0b3JlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChsYW5ndWFnZSkge1xuICAgICAgY29uc3QgZGF0YVN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KTtcbiAgICAgIGNvbnN0IGRhdGEgPSAoZGF0YVN0ciAmJiBkYXRhU3RyLmxlbmd0aCA+IDApID8gSlNPTi5wYXJzZShkYXRhU3RyKSA6IHt9O1xuICAgICAgZGF0YVtDb2Rlcy5MQU5HVUFHRV9LRVldID0gbGFuZ3VhZ2U7XG4gICAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IHNldCBuZXcgaXRlbSBpbiBsb2NhbFN0b3JhZ2UuIEVycm9yOiBcIiArIGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTdG9yZWRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGFTdHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUtleSk7XG4gICAgcmV0dXJuIGRhdGFTdHIgPyBKU09OLnBhcnNlKGRhdGFTdHIpW0NvZGVzLkxBTkdVQUdFX0tFWV0gOiB2b2lkIDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tFeGlzdGluZ0xhbmdGaWxlKGxhbmc6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAoc2VsZi5leGlzdGluZ0xhbmdGaWxlcy5pbmRleE9mKGxhbmcpICE9PSAtMSkge1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBsb2NhbGVBc3NldHNQYXRoID0gKHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TG9hZGVyIGFzIGFueSkucHJlZml4O1xuICAgICAgY29uc3QgbG9jYWxlQXNzZXRzRXh0ZW5zaW9uID0gKHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TG9hZGVyIGFzIGFueSkuc3VmZml4O1xuICAgICAgc2VsZi5odHRwQ2xpZW50LmdldChsb2NhbGVBc3NldHNQYXRoICsgbGFuZyArIGxvY2FsZUFzc2V0c0V4dGVuc2lvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGYuZXhpc3RpbmdMYW5nRmlsZXMuaW5kZXhPZihsYW5nKSA9PT0gLTEpIHtcbiAgICAgICAgICBzZWxmLmV4aXN0aW5nTGFuZ0ZpbGVzLnB1c2gobGFuZyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSTE4TiBGaWxlIGxvYWRlZCBzdWNjZXNzZnVsbHlcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgLy8gSTE4TiBGaWxlIGZhaWxlZCB0byBsb2FkXG4gICAgICAgIGlmIChzZWxmLm5vdEZvdW5kTGFuZy5pbmRleE9mKGxhbmcpID09PSAtMSkge1xuICAgICAgICAgIHNlbGYubm90Rm91bmRMYW5nLnB1c2gobGFuZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREZWZhdWx0TGFuZyhsYW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UuZGVmYXVsdExhbmcgPSBsYW5nO1xuICAgIHRoaXMuY2hlY2tFeGlzdGluZ0xhbmdGaWxlKGxhbmcpLnRoZW4oKGV4aXN0cykgPT4ge1xuICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRGVmYXVsdCBsYW5ndWFnZSgnICsgbGFuZyArICcpIGhhcyBubyBidW5kbGUgZmlsZSBkZWZpbmVkJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0KHRleHQ6IHN0cmluZywgdmFsdWVzOiBhbnlbXSA9IFtdKTogc3RyaW5nIHtcbiAgICBsZXQgdGV4dFRyYW5zbGF0ZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJ1bmRsZSA9IHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5nZXQodGV4dCwgdmFsdWVzKTtcbiAgICAgIGlmIChidW5kbGUpIHtcbiAgICAgICAgYnVuZGxlLnN1YnNjcmliZSh4ID0+IHRleHRUcmFuc2xhdGVkID0geCk7XG4gICAgICB9XG4gICAgICB0ZXh0VHJhbnNsYXRlZCA9IHRleHRUcmFuc2xhdGVkID09PSB0ZXh0ID8gdW5kZWZpbmVkIDogdGV4dFRyYW5zbGF0ZWQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGV4dFRyYW5zbGF0ZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghdGV4dFRyYW5zbGF0ZWQpIHtcbiAgICAgIGNvbnN0IGJ1bmRsZSA9IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmddIHx8IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLmRlZmF1bHRMb2NhbGVdIHx8IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLkRFRkFVTFRfTEFOR107XG4gICAgICBpZiAoYnVuZGxlICYmIGJ1bmRsZVt0ZXh0XSkge1xuICAgICAgICB0ZXh0VHJhbnNsYXRlZCA9IGJ1bmRsZVt0ZXh0XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRleHRUcmFuc2xhdGVkID0gdGV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRleHRUcmFuc2xhdGVkO1xuICB9XG5cbiAgcHVibGljIHNldEFwcExhbmcobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy51c2UobGFuZywgb2JzZXJ2ZXIpO1xuICAgIH0pO1xuICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICB9XG5cbiAgcHVibGljIHVzZShsYW5nOiBzdHJpbmcsIG9ic2VydmVyPzogU3Vic2NyaWJlcjxhbnk+KTogdm9pZCB7XG4gICAgaWYgKGxhbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgbmV3TGFuZyA9IGxhbmcgfHwgdGhpcy5ERUZBVUxUX0xBTkc7XG4gICAgICAvLyBzZXR0aW5nIGxhbmcgZm9yIGluaXRpYWxpeklORyBtb21lbnQgYW5kIG90aGVyIGNvbXBvbmVudHNcbiAgICAgIHRoaXMucHJvcGFnYXRlTGFuZyhuZXdMYW5nLCB7fSwgb2JzZXJ2ZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrRXhpc3RpbmdMYW5nRmlsZShsYW5nKS50aGVuKChleGlzdHMpID0+IHtcbiAgICAgICAgbGV0IG5ld0xhbmcgPSBsYW5nO1xuICAgICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICAgIG5ld0xhbmcgPSBVdGlsLmlzRGVmaW5lZCh0aGlzLmFwcENvbmZpZ1snX2NvbmZpZyddWydkZWZhdWx0TG9jYWxlJ10pID8gdGhpcy5hcHBDb25maWdbJ19jb25maWcnXVsnZGVmYXVsdExvY2FsZSddIDogdGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmdldERlZmF1bHRMYW5nKCk7XG4gICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zID0gQ09SRV9UUkFOU0xBVElPTlMuTUFQW25ld0xhbmddIHx8IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLkRFRkFVTFRfTEFOR107XG4gICAgICAgICAgY29uc3QgbXNnID0gdHJhbnNsYXRpb25zWydNRVNTQUdFUy5FUlJPUl9NSVNTSU5HX0xBTkcnXTtcbiAgICAgICAgICB0aGlzLmluamVjdG9yLmdldChNYXRTbmFja0Jhcikub3Blbihtc2csICcgJywge1xuICAgICAgICAgICAgZHVyYXRpb246IDI1MDBcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UudXNlKG5ld0xhbmcpLnN1YnNjcmliZShcbiAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZUxhbmd1YWdlKG5ld0xhbmcpO1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVMYW5nKG5ld0xhbmcsIHJlcywgb2JzZXJ2ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcm9wYWdhdGVMYW5nKGxhbmc6IHN0cmluZywgbGFuZ1Jlcz86IGFueSwgb2JzZXJ2ZXI/OiBTdWJzY3JpYmVyPGFueT4pIHtcbiAgICBjb25zdCBjb3JlQnVuZGxlID0gQ09SRV9UUkFOU0xBVElPTlMuTUFQW2xhbmcgfHwgdGhpcy5ERUZBVUxUX0xBTkddO1xuICAgIGlmIChjb3JlQnVuZGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG1peGVkID0gT2JqZWN0LmFzc2lnbih7fSwgY29yZUJ1bmRsZSwgbGFuZ1Jlcyk7XG4gICAgICB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRpb25zW2xhbmddID0gbWl4ZWQ7XG4gICAgfVxuICAgIHRoaXMubW9tZW50U2VydmljZS5sb2FkKGxhbmcpO1xuICAgIE9ic2VydmFibGVXcmFwcGVyLmNhbGxFbWl0KHRoaXMub25MYW5ndWFnZUNoYW5nZWQsIGxhbmcpO1xuICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgb2JzZXJ2ZXIubmV4dChsYW5nUmVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudExhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIHB1YmxpYyBnZXRCcm93c2VyTGFuZygpIHtcbiAgICAvLyBjb3B5aW5nIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5nZXRCcm93c2VyTGFuZygpIGJ1dCB3aXRoIGEgZml4IGZvciBkZWZhdWx0IHNlbGVjdGVkIGxhbmd1YWdlIChicm93c2VyTGFuZylcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBuYXZpZ2F0b3I6IGFueSA9IHdpbmRvdy5uYXZpZ2F0b3I7XG4gICAgbGV0IGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlcyA/IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiBudWxsO1xuICAgIGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8IGJyb3dzZXJMYW5nIHx8IG5hdmlnYXRvci5icm93c2VyTGFuZ3VhZ2UgfHwgbmF2aWdhdG9yLnVzZXJMYW5ndWFnZTtcbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignLScpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnLScpWzBdO1xuICAgIH1cbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignXycpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnXycpWzBdO1xuICAgIH1cbiAgICByZXR1cm4gYnJvd3Nlckxhbmc7XG4gIH1cblxufVxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmFuc2xhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGUvby10cmFuc2xhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssaUJBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU01RSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBa0I7SUFDeEQsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNu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LFFBQVEsSUFBSSxXQUFXLElBQUksU0FBUyxDQUFDLGVBQWUsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3ZHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNuQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNuQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7O0FBdkthLDZCQUFXLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0Isa0NBQWdCLEdBQUcsT0FBTyxDQUFDOzhHQUg5QixpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU0sY0FBYyx1QkFBdUIsa0JBQVMsUUFBUTsyRkFDekUsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgKiBhcyBDT1JFX1RSQU5TTEFUSU9OUyBmcm9tICcuLi8uLi9pMThuL2kxOG4nO1xuaW1wb3J0IHsgTW9tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGVXcmFwcGVyIH0gZnJvbSAnLi4vLi4vdXRpbC9hc3luYyc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZSwgT19UUkFOU0xBVEVfU0VSVklDRSB9IGZyb20gJy4uL2ZhY3Rvcmllcyc7XG5cbi8qKlxuICogYE9UcmFuc2xhdGVTZXJ2aWNlYCBmYWN0b3J5LlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgdHJhbnNsYXRlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBhbnkge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX1RSQU5TTEFURV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPVHJhbnNsYXRlU2VydmljZShpbmplY3Rvcik7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnLCB1c2VGYWN0b3J5OiB0cmFuc2xhdGVTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9KVxuZXhwb3J0IGNsYXNzIE9UcmFuc2xhdGVTZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIEFTU0VUU19QQVRIID0gJy4vYXNzZXRzL2kxOG4vJztcbiAgcHVibGljIHN0YXRpYyBBU1NFVFNfRVhURU5TSU9OID0gJy5qc29uJztcbiAgcHVibGljIERFRkFVTFRfTEFORyA9ICdlbic7XG4gIHB1YmxpYyBvbkxhbmd1YWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJvdGVjdGVkIG5neFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBtb21lbnRTZXJ2aWNlOiBNb21lbnRTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgaHR0cENsaWVudDogSHR0cENsaWVudDtcblxuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlS2V5OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBub3RGb3VuZExhbmc6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgcHJvdGVjdGVkIGFwcENvbmZpZzogQXBwQ29uZmlnO1xuICBwcm90ZWN0ZWQgZXhpc3RpbmdMYW5nRmlsZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgcHJvdGVjdGVkIGRlZmF1bHRMb2NhbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgdGhpcy5tb21lbnRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTW9tZW50U2VydmljZSk7XG4gICAgdGhpcy5odHRwQ2xpZW50ID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgdGhpcy5hcHBDb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlS2V5ID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlndXJhdGlvbigpLnV1aWQ7XG4gICAgdGhpcy5kZWZhdWx0TG9jYWxlID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlndXJhdGlvbigpLmRlZmF1bHRMb2NhbGU7XG4gIH1cblxuICBwdWJsaWMgc3RvcmVMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGxhbmd1YWdlKSB7XG4gICAgICBjb25zdCBkYXRhU3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VLZXkpO1xuICAgICAgY29uc3QgZGF0YSA9IChkYXRhU3RyICYmIGRhdGFTdHIubGVuZ3RoID4gMCkgPyBKU09OLnBhcnNlKGRhdGFTdHIpIDoge307XG4gICAgICBkYXRhW0NvZGVzLkxBTkdVQUdFX0tFWV0gPSBsYW5ndWFnZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDYW5ub3Qgc2V0IG5ldyBpdGVtIGluIGxvY2FsU3RvcmFnZS4gRXJyb3I6IFwiICsgZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0b3JlZExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YVN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KTtcbiAgICByZXR1cm4gZGF0YVN0ciA/IEpTT04ucGFyc2UoZGF0YVN0cilbQ29kZXMuTEFOR1VBR0VfS0VZXSA6IHZvaWQgMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0V4aXN0aW5nTGFuZ0ZpbGUobGFuZzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChzZWxmLmV4aXN0aW5nTGFuZ0ZpbGVzLmluZGV4T2YobGFuZykgIT09IC0xKSB7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxvY2FsZUFzc2V0c1BhdGggPSAodGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMb2FkZXIgYXMgYW55KS5wcmVmaXg7XG4gICAgICBjb25zdCBsb2NhbGVBc3NldHNFeHRlbnNpb24gPSAodGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMb2FkZXIgYXMgYW55KS5zdWZmaXg7XG4gICAgICBzZWxmLmh0dHBDbGllbnQuZ2V0KGxvY2FsZUFzc2V0c1BhdGggKyBsYW5nICsgbG9jYWxlQXNzZXRzRXh0ZW5zaW9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZi5leGlzdGluZ0xhbmdGaWxlcy5pbmRleE9mKGxhbmcpID09PSAtMSkge1xuICAgICAgICAgIHNlbGYuZXhpc3RpbmdMYW5nRmlsZXMucHVzaChsYW5nKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJMThOIEZpbGUgbG9hZGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAvLyBJMThOIEZpbGUgZmFpbGVkIHRvIGxvYWRcbiAgICAgICAgaWYgKHNlbGYubm90Rm91bmRMYW5nLmluZGV4T2YobGFuZykgPT09IC0xKSB7XG4gICAgICAgICAgc2VsZi5ub3RGb3VuZExhbmcucHVzaChsYW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldERlZmF1bHRMYW5nKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5kZWZhdWx0TGFuZyA9IGxhbmc7XG4gICAgdGhpcy5jaGVja0V4aXN0aW5nTGFuZ0ZpbGUobGFuZykudGhlbigoZXhpc3RzKSA9PiB7XG4gICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEZWZhdWx0IGxhbmd1YWdlKCcgKyBsYW5nICsgJykgaGFzIG5vIGJ1bmRsZSBmaWxlIGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQodGV4dDogc3RyaW5nLCB2YWx1ZXM6IGFueVtdID0gW10pOiBzdHJpbmcge1xuICAgIGxldCB0ZXh0VHJhbnNsYXRlZDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYnVuZGxlID0gdGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmdldCh0ZXh0LCB2YWx1ZXMpO1xuICAgICAgaWYgKGJ1bmRsZSkge1xuICAgICAgICBidW5kbGUuc3Vic2NyaWJlKHggPT4gdGV4dFRyYW5zbGF0ZWQgPSB4KTtcbiAgICAgIH1cbiAgICAgIHRleHRUcmFuc2xhdGVkID0gdGV4dFRyYW5zbGF0ZWQgPT09IHRleHQgPyB1bmRlZmluZWQgOiB0ZXh0VHJhbnNsYXRlZDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0ZXh0VHJhbnNsYXRlZCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCF0ZXh0VHJhbnNsYXRlZCkge1xuICAgICAgY29uc3QgYnVuZGxlID0gQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ10gfHwgQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMuZGVmYXVsdExvY2FsZV0gfHwgQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMuREVGQVVMVF9MQU5HXTtcbiAgICAgIGlmIChidW5kbGUgJiYgYnVuZGxlW3RleHRdKSB7XG4gICAgICAgIHRleHRUcmFuc2xhdGVkID0gYnVuZGxlW3RleHRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGV4dFRyYW5zbGF0ZWQgPSB0ZXh0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGV4dFRyYW5zbGF0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0QXBwTGFuZyhsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLnVzZShsYW5nLCBvYnNlcnZlcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGU7XG4gIH1cblxuICBwdWJsaWMgdXNlKGxhbmc6IHN0cmluZywgb2JzZXJ2ZXI/OiBTdWJzY3JpYmVyPGFueT4pOiB2b2lkIHtcbiAgICBpZiAobGFuZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBuZXdMYW5nID0gbGFuZyB8fCB0aGlzLkRFRkFVTFRfTEFORztcbiAgICAgIC8vIHNldHRpbmcgbGFuZyBmb3IgaW5pdGlhbGl6SU5HIG1vbWVudCBhbmQgb3RoZXIgY29tcG9uZW50c1xuICAgICAgdGhpcy5wcm9wYWdhdGVMYW5nKG5ld0xhbmcsIHt9LCBvYnNlcnZlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hlY2tFeGlzdGluZ0xhbmdGaWxlKGxhbmcpLnRoZW4oKGV4aXN0cykgPT4ge1xuICAgICAgICBsZXQgbmV3TGFuZyA9IGxhbmc7XG4gICAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgICAgbmV3TGFuZyA9IFV0aWwuaXNEZWZpbmVkKHRoaXMuYXBwQ29uZmlnWydfY29uZmlnJ11bJ2RlZmF1bHRMb2NhbGUnXSkgPyB0aGlzLmFwcENvbmZpZ1snX2NvbmZpZyddWydkZWZhdWx0TG9jYWxlJ10gOiB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UuZ2V0RGVmYXVsdExhbmcoKTtcbiAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSBDT1JFX1RSQU5TTEFUSU9OUy5NQVBbbmV3TGFuZ10gfHwgQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMuREVGQVVMVF9MQU5HXTtcbiAgICAgICAgICBjb25zdCBtc2cgPSB0cmFuc2xhdGlvbnNbJ01FU1NBR0VTLkVSUk9SX01JU1NJTkdfTEFORyddO1xuICAgICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE1hdFNuYWNrQmFyKS5vcGVuKG1zZywgJyAnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMjUwMFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS51c2UobmV3TGFuZykuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlTGFuZ3VhZ2UobmV3TGFuZyk7XG4gICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZUxhbmcobmV3TGFuZywgcmVzLCBvYnNlcnZlcik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByb3BhZ2F0ZUxhbmcobGFuZzogc3RyaW5nLCBsYW5nUmVzPzogYW55LCBvYnNlcnZlcj86IFN1YnNjcmliZXI8YW55Pikge1xuICAgIGNvbnN0IGNvcmVCdW5kbGUgPSBDT1JFX1RSQU5TTEFUSU9OUy5NQVBbbGFuZyB8fCB0aGlzLkRFRkFVTFRfTEFOR107XG4gICAgaWYgKGNvcmVCdW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgbWl4ZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjb3JlQnVuZGxlLCBsYW5nUmVzKTtcbiAgICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGlvbnNbbGFuZ10gPSBtaXhlZDtcbiAgICB9XG4gICAgdGhpcy5tb21lbnRTZXJ2aWNlLmxvYWQobGFuZyk7XG4gICAgT2JzZXJ2YWJsZVdyYXBwZXIuY2FsbEVtaXQodGhpcy5vbkxhbmd1YWdlQ2hhbmdlZCwgbGFuZyk7XG4gICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICBvYnNlcnZlci5uZXh0KGxhbmdSZXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXROZ3hUcmFuc2xhdGVTZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudExhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIHB1YmxpYyBnZXRCcm93c2VyTGFuZygpIHtcbiAgICAvLyBjb3B5aW5nIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5nZXRCcm93c2VyTGFuZygpIGJ1dCB3aXRoIGEgZml4IGZvciBkZWZhdWx0IHNlbGVjdGVkIGxhbmd1YWdlIChicm93c2VyTGFuZylcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBuYXZpZ2F0b3I6IGFueSA9IHdpbmRvdy5uYXZpZ2F0b3I7XG4gICAgbGV0IGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlcyA/IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiBudWxsO1xuICAgIGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8IGJyb3dzZXJMYW5nIHx8IG5hdmlnYXRvci5icm93c2VyTGFuZ3VhZ2UgfHwgbmF2aWdhdG9yLnVzZXJMYW5ndWFnZTtcbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignLScpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnLScpWzBdO1xuICAgIH1cbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignXycpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnXycpWzBdO1xuICAgIH1cbiAgICByZXR1cm4gYnJvd3Nlckxhbmc7XG4gIH1cblxufVxuIl19
|
|
@@ -35,11 +35,17 @@ export class OPreferenceMappingUtils {
|
|
|
35
35
|
static standarMappingKeys(array) {
|
|
36
36
|
return OPreferenceMappingUtils.transformKeys(array, OPreferenceMappingUtils.STANDARDREPORTMAPPING);
|
|
37
37
|
}
|
|
38
|
-
static
|
|
39
|
-
return OPreferenceMappingUtils.transformKeys(array, OPreferenceMappingUtils.
|
|
38
|
+
static ontimizePreferencesMappingKeys(array) {
|
|
39
|
+
return OPreferenceMappingUtils.transformKeys(array, OPreferenceMappingUtils.ONTIMIZEPREFERENCESMAPPING);
|
|
40
40
|
}
|
|
41
|
-
static
|
|
42
|
-
return OPreferenceMappingUtils.transformData(array, OPreferenceMappingUtils.
|
|
41
|
+
static ontimizePreferencesDataMapping(array) {
|
|
42
|
+
return OPreferenceMappingUtils.transformData(array, OPreferenceMappingUtils.ONTIMIZEPREFERENCESMAPPING, OPreferenceMappingUtils.ONTIMIZEPARAMETERMAPPING);
|
|
43
|
+
}
|
|
44
|
+
static jsonApiPreferencesMappingKeys(array) {
|
|
45
|
+
return OPreferenceMappingUtils.transformKeys(array, OPreferenceMappingUtils.JSONAPIPREFERENCESMAPPING);
|
|
46
|
+
}
|
|
47
|
+
static jsonApiPreferencesDataMapping(array) {
|
|
48
|
+
return OPreferenceMappingUtils.transformData(array, OPreferenceMappingUtils.JSONAPIPREFERENCESMAPPING);
|
|
43
49
|
}
|
|
44
50
|
}
|
|
45
51
|
OPreferenceMappingUtils.STANDARDREPORTMAPPING = {
|
|
@@ -68,7 +74,7 @@ OPreferenceMappingUtils.ONTIMIZEPARAMETERMAPPING = {
|
|
|
68
74
|
"reportParameterName": "name",
|
|
69
75
|
"reportParameterDescription": "description"
|
|
70
76
|
};
|
|
71
|
-
OPreferenceMappingUtils.
|
|
77
|
+
OPreferenceMappingUtils.ONTIMIZEPREFERENCESMAPPING = {
|
|
72
78
|
"preferenceid": "id",
|
|
73
79
|
"preferencename": "name",
|
|
74
80
|
"preferencedescription": "description",
|
|
@@ -77,4 +83,13 @@ OPreferenceMappingUtils.ONTIMIZEREPORTMAPPING = {
|
|
|
77
83
|
"preferencetype": "type",
|
|
78
84
|
"preferenceparameters": "params"
|
|
79
85
|
};
|
|
80
|
-
|
|
86
|
+
OPreferenceMappingUtils.JSONAPIPREFERENCESMAPPING = {
|
|
87
|
+
"preferenceid": "PREFERENCEID",
|
|
88
|
+
"preferencename": "PREFERENCENAME",
|
|
89
|
+
"preferencedescription": "PREFERENCEDESCRIPTION",
|
|
90
|
+
"preferenceentity": "PREFERENCEENTITY",
|
|
91
|
+
"preferenceservice": "PREFERENCESERVICE",
|
|
92
|
+
"preferencetype": "PREFERENCETYPE",
|
|
93
|
+
"preferenceparameters": "PREFERENCEPREFERENCES"
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZS1tYXBwaW5nLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9wcmVmZXJlbmNlLW1hcHBpbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sdUJBQXVCO0lBcURsQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQWMsRUFBRSxVQUFxQztRQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQTtTQUNaO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFFbkQsQ0FBQztJQU1PLE1BQU0sQ0FBQyxhQUFhLENBQzFCLEdBQVEsRUFDUixVQUFxQyxFQUNyQyxtQkFBK0M7UUFFL0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM5RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1lBRXRDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBRW5HLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxD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QkFBc0I7Q0FDakMsQ0FBQztBQUVjLGdEQUF3QixHQUFHO0lBQ3pDLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsYUFBYSxFQUFFLDRCQUE0QjtDQUM1QyxDQUFDO0FBRWMsZ0RBQXdCLEdBQUc7SUFDekMscUJBQXFCLEVBQUUsTUFBTTtJQUM3Qiw0QkFBNEIsRUFBRSxhQUFhO0NBQzVDLENBQUM7QUFHYyxrREFBMEIsR0FBRztJQUMzQyxjQUFjLEVBQUUsSUFBSTtJQUNwQixnQkFBZ0IsRUFBRSxNQUFNO0lBQ3hCLHVCQUF1QixFQUFFLGFBQWE7SUFDdEMsa0JBQWtCLEVBQUUsUUFBUTtJQUM1QixtQkFBbUIsRUFBRSxTQUFTO0lBQzlCLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsc0JBQXNCLEVBQUUsUUFBUTtDQUNqQyxDQUFDO0FBRWMsaURBQXlCLEdBQUc7SUFDMUMsY0FBYyxFQUFFLGNBQWM7SUFDOUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLHVCQUF1QixFQUFFLHVCQUF1QjtJQUNoRCxrQkFBa0IsRUFBRSxrQkFBa0I7SUFDdEMsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxzQkFBc0IsRUFBRSx1QkFBdUI7Q0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgY2xhc3MgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMge1xuXG4gIHN0YXRpYyByZWFkb25seSBTVEFOREFSRFJFUE9SVE1BUFBJTkcgPSB7XG4gICAgXCJJRFwiOiBcIlBSRUZFUkVOQ0VJRFwiLFxuICAgIFwiTkFNRVwiOiBcIlBSRUZFUkVOQ0VOQU1FXCIsXG4gICAgXCJERVNDUklQVElPTlwiOiBcIlBSRUZFUkVOQ0VERVNDUklQVElPTlwiLFxuICAgIFwiRU5USVRZXCI6IFwiUFJFRkVSRU5DRUVOVElUWVwiLFxuICAgIFwiU0VSVklDRVwiOiBcIlBSRUZFUkVOQ0VTRVJWSUNFXCIsXG4gICAgXCJUWVBFXCI6IFwiUFJFRkVSRU5DRVRZUEVcIixcbiAgICBcIlBSRUZFUkVOQ0VTXCI6IFwiUFJFRkVSRU5DRVBSRUZFUkVOQ0VTXCJcbiAgfTtcblxuICBzdGF0aWMgcmVhZG9ubHkgU1RBTkRBUkRJTlNFUlRSRVBPUlRNQVBQSU5HID0ge1xuICAgIFwiaWRcIjogXCJwcmVmZXJlbmNlaWRcIixcbiAgICBcIm5hbWVcIjogXCJwcmVmZXJlbmNlbmFtZVwiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJwcmVmZXJlbmNlZGVzY3JpcHRpb25cIixcbiAgICBcImVudGl0eVwiOiBcInByZWZlcmVuY2VlbnRpdHlcIixcbiAgICBcInNlcnZpY2VcIjogXCJwcmVmZXJlbmNlc2VydmljZVwiLFxuICAgIFwidHlwZVwiOiBcInByZWZlcmVuY2V0eXBlXCIsXG4gICAgXCJwYXJhbXNcIjogXCJwcmVmZXJlbmNlcGFyYW1ldGVyc1wiXG4gIH07XG5cbiAgc3RhdGljIHJlYWRvbmx5IFNUQU5EQVJEUEFSQU1FVEVSTUFQUElORyA9IHtcbiAgICBcIm5hbWVcIjogXCJyZXBvcnRQYXJhbWV0ZXJOYW1lXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcInJlcG9ydFBhcmFtZXRlckRlc2NyaXB0aW9uXCJcbiAgfTtcblxuICBzdGF0aWMgcmVhZG9ubHkgT05USU1JWkVQQVJBTUVURVJNQVBQSU5HID0ge1xuICAgIFwicmVwb3J0UGFyYW1ldGVyTmFtZVwiOiBcIm5hbWVcIixcbiAgICBcInJlcG9ydFBhcmFtZXRlckRlc2NyaXB0aW9uXCI6IFwiZGVzY3JpcHRpb25cIlxuICB9O1xuXG5cbiAgc3RhdGljIHJlYWRvbmx5IE9OVElNSVpFUFJFRkVSRU5DRVNNQVBQSU5HID0ge1xuICAgIFwicHJlZmVyZW5jZWlkXCI6IFwiaWRcIixcbiAgICBcInByZWZlcmVuY2VuYW1lXCI6IFwibmFtZVwiLFxuICAgIFwicHJlZmVyZW5jZWRlc2NyaXB0aW9uXCI6IFwiZGVzY3JpcHRpb25cIixcbiAgICBcInByZWZlcmVuY2VlbnRpdHlcIjogXCJlbnRpdHlcIixcbiAgICBcInByZWZlcmVuY2VzZXJ2aWNlXCI6IFwic2VydmljZVwiLFxuICAgIFwicHJlZmVyZW5jZXR5cGVcIjogXCJ0eXBlXCIsXG4gICAgXCJwcmVmZXJlbmNlcGFyYW1ldGVyc1wiOiBcInBhcmFtc1wiXG4gIH07XG5cbiAgc3RhdGljIHJlYWRvbmx5IEpTT05BUElQUkVGRVJFTkNFU01BUFBJTkcgPSB7XG4gICAgXCJwcmVmZXJlbmNlaWRcIjogXCJQUkVGRVJFTkNFSURcIixcbiAgICBcInByZWZlcmVuY2VuYW1lXCI6IFwiUFJFRkVSRU5DRU5BTUVcIixcbiAgICBcInByZWZlcmVuY2VkZXNjcmlwdGlvblwiOiBcIlBSRUZFUkVOQ0VERVNDUklQVElPTlwiLFxuICAgIFwicHJlZmVyZW5jZWVudGl0eVwiOiBcIlBSRUZFUkVOQ0VFTlRJVFlcIixcbiAgICBcInByZWZlcmVuY2VzZXJ2aWNlXCI6IFwiUFJFRkVSRU5DRVNFUlZJQ0VcIixcbiAgICBcInByZWZlcmVuY2V0eXBlXCI6IFwiUFJFRkVSRU5DRVRZUEVcIixcbiAgICBcInByZWZlcmVuY2VwYXJhbWV0ZXJzXCI6IFwiUFJFRkVSRU5DRVBSRUZFUkVOQ0VTXCJcbiAgfTtcblxuICBzdGF0aWMgdHJhbnNmb3JtS2V5cyhkYXRhOiBzdHJpbmdbXSwga2V5TWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIHJldHVybiBkYXRhXG4gICAgfVxuICAgIHJldHVybiBkYXRhLm1hcCgoa2V5KSA9PiBrZXlNYXBwaW5nW2tleV0gfHwga2V5KTtcblxuICB9XG5cbiAgLyoqXG4gICAgKiBUcmFuc2Zvcm1hIHVuIG9iamV0byBtYXBlYW5kbyBzdXMgY2xhdmVzIHNlZ8O6biBlbCBkaWNjaW9uYXJpbyBwcm9wb3JjaW9uYWRvLlxuICAgICovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwT2JqZWN0S2V5cyhcbiAgICBvYmo6IGFueSxcbiAgICBrZXlNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIHBhcmFtZXRlcktleU1hcHBpbmc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmopLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PigobmV3T2JqLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0tleSA9IGtleU1hcHBpbmdba2V5XSB8fCBrZXk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkpKSB7XG4gICAgICAgIC8vIFRyYW5zZm9ybWFyIGNsYXZlcyBkZSBvYmpldG9zIGRlbnRybyBkZSBhcnJheXNcbiAgICAgICAgbmV3T2JqW25ld0tleV0gPSB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMubWFwT2JqZWN0S2V5cyhpdGVtLCBwYXJhbWV0ZXJLZXlNYXBwaW5nIHx8IHt9KSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBUcmFuc2Zvcm1hciBjbGF2ZXMgZGUgb2JqZXRvcyBhbmlkYWRvc1xuICAgICAgICBuZXdPYmpbbmV3S2V5XSA9IHRoaXMubWFwT2JqZWN0S2V5cyh2YWx1ZSwgcGFyYW1ldGVyS2V5TWFwcGluZyB8fCB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdPYmpbbmV3S2V5XSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3T2JqO1xuICAgIH0sIHt9KTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybWEgbG9zIGRhdG9zLCB5YSBzZWEgdW4gc29sbyBvYmpldG8gbyB1biBhcnJheSBkZSBvYmpldG9zLCBhcGxpY2FuZG8gbG9zIG1hcGVvcyBkZSBjbGF2ZXMuXG4gICAqL1xuICBzdGF0aWMgdHJhbnNmb3JtRGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLCBrZXlNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBwYXJhbWV0ZXJLZXlNYXBwaW5nPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSB8IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YS5tYXAoKG9iaikgPT4gdGhpcy5tYXBPYmplY3RLZXlzKG9iaiwga2V5TWFwcGluZywgcGFyYW1ldGVyS2V5TWFwcGluZykpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIgJiYgZGF0YSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubWFwT2JqZWN0S2V5cyhkYXRhLCBrZXlNYXBwaW5nLCBwYXJhbWV0ZXJLZXlNYXBwaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBzdGF0aWMgc3RhbmRhckRhdGFNYXBwaW5nKGFycmF5OiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLnRyYW5zZm9ybURhdGEoYXJyYXksIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLlNUQU5EQVJEUkVQT1JUTUFQUElORywgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuU1RBTkRBUkRQQVJBTUVURVJNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBzdGFuZGFyTWFwcGluZ0tleXMoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1LZXlzKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5TVEFOREFSRFJFUE9SVE1BUFBJTkcpO1xuICB9XG5cbiAgc3RhdGljIG9udGltaXplUHJlZmVyZW5jZXNNYXBwaW5nS2V5cyhhcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLnRyYW5zZm9ybUtleXMoYXJyYXksIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLk9OVElNSVpFUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBvbnRpbWl6ZVByZWZlcmVuY2VzRGF0YU1hcHBpbmcoYXJyYXk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9W10pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMudHJhbnNmb3JtRGF0YShhcnJheSwgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuT05USU1JWkVQUkVGRVJFTkNFU01BUFBJTkcsIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLk9OVElNSVpFUEFSQU1FVEVSTUFQUElORyk7XG4gIH1cblxuICBzdGF0aWMganNvbkFwaVByZWZlcmVuY2VzTWFwcGluZ0tleXMoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1LZXlzKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5KU09OQVBJUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBqc29uQXBpUHJlZmVyZW5jZXNEYXRhTWFwcGluZyhhcnJheTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSk6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSB8IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1EYXRhKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5KU09OQVBJUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG5cblxuXG59XG4iXX0=
|