nuxeo-development-framework 6.1.5 → 6.1.7
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/bundles/nuxeo-development-framework.umd.js +688 -1009
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +7 -5
- package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +9 -9
- package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +9 -4
- package/esm2015/lib/components/ndf-filters/pipes/evaluate-label.pipe.js +3 -3
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +2 -1
- package/esm2015/lib/components/pdf-tron/pdftron/silent-pdftron.service.js +2 -1
- package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/pipes/check-condition.pipe.js +3 -3
- package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +28 -15
- package/esm2015/lib/components/reports/ndf-reports/services/reports-hooks.service.js +3 -3
- package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/services/table-hooks.service.js +4 -4
- package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
- package/esm2015/lib/shared/index.js +5 -6
- package/esm2015/lib/shared-services/global-pdftron.service.js +2 -1
- package/esm2015/public-api.js +12 -13
- package/fesm2015/nuxeo-development-framework.js +644 -938
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.d.ts +1 -2
- package/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.d.ts +3 -3
- package/lib/components/ndf-filters/models/base-field-config.d.ts +1 -1
- package/lib/components/ndf-filters/pipes/check-condition.pipe.d.ts +1 -2
- package/lib/components/reports/ndf-reports/models/details.d.ts +1 -1
- package/lib/components/reports/ndf-reports/models/graph-definition.d.ts +2 -2
- package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +2 -2
- package/lib/components/tables/ndf-table/models/table-config.d.ts +1 -1
- package/lib/shared/index.d.ts +7 -5
- package/package.json +1 -1
- package/public-api.d.ts +11 -12
- package/esm2015/lib/shared/evaluator/evaluator.js +0 -318
- package/esm2015/lib/shared/evaluator/index.js +0 -3
- package/esm2015/lib/shared/evaluator/types.js +0 -2
- package/lib/shared/evaluator/evaluator.d.ts +0 -79
- package/lib/shared/evaluator/index.d.ts +0 -2
- package/lib/shared/evaluator/types.d.ts +0 -18
|
@@ -21,11 +21,13 @@ export class FilterAutocompleteService extends BaseService {
|
|
|
21
21
|
payload: {
|
|
22
22
|
name: query.field || fieldConfig.fieldKey,
|
|
23
23
|
operator: (_a = query.operator) !== null && _a !== void 0 ? _a : COMPARISON_OPERATOR.like,
|
|
24
|
-
value: (query === null || query === void 0 ? void 0 : query.template)
|
|
25
|
-
|
|
24
|
+
value: (query === null || query === void 0 ? void 0 : query.template)
|
|
25
|
+
? this.replacePlaceholder(query === null || query === void 0 ? void 0 : query.template, searchText)
|
|
26
|
+
: `'%${searchText}%'`,
|
|
27
|
+
},
|
|
26
28
|
}).pipe(map((response) => Object.values(response)[0]), switchMap((response) => this._aggregationService.prepareAggregationFiled({
|
|
27
29
|
fieldConfig: fieldConfig,
|
|
28
|
-
aggregation: response
|
|
30
|
+
aggregation: response,
|
|
29
31
|
})));
|
|
30
32
|
}
|
|
31
33
|
replacePlaceholder(template, searchText) {
|
|
@@ -37,7 +39,7 @@ FilterAutocompleteService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
|
|
|
37
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FilterAutocompleteService, decorators: [{
|
|
38
40
|
type: Injectable,
|
|
39
41
|
args: [{
|
|
40
|
-
providedIn: 'root'
|
|
42
|
+
providedIn: 'root',
|
|
41
43
|
}]
|
|
42
44
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWF1dG9jb21wbGV0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9jb21wb25lbnRzL19fcGFydHMvZmlsdGVyLWF1dG9jb21wbGV0ZS1pbnB1dC9maWx0ZXItYXV0b2NvbXBsZXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU16RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFJdEYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFdBQVc7SUFLeEQsWUFBb0IsUUFBa0I7UUFDcEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUpyQix3QkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDdEQsdUJBQXVCLENBQ3hCLENBQUM7SUFJRixDQUFDO0lBQ0QsWUFBWSxDQUNWLFVBQWtCLEVBQ2xCLEtBQXNDLEVBQ3RDLFdBQW1DOztRQUVuQyxNQUFNLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUUzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEIsUUFBUSxFQUFFLEdBQUc7WUFDYixJQUFJLEVBQUUsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxLQUFJLE1BQU07WUFDN0IsV0FBVyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNO1lBQzFCLE9BQU8sRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTztZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLFFBQVE7Z0JBQ3pDLFFBQVEsRUFBRSxNQUFBLEtBQUssQ0FBQyxRQUFRLG1DQUFJLG1CQUFtQixDQUFDLElBQUk7Z0JBQ3BELEtBQUssRUFBRSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRO29CQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRLEVBQUUsVUFBVSxDQUFDO29CQUN0RCxDQUFDLENBQUMsS0FBSyxVQUFVLElBQUk7YUFDeEI7U0FDRixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLFFBQTZDLEVBQUUsRUFBRSxDQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM3QixFQUNELFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQztZQUMvQyxXQUFXLEVBQUUsV0FBVztZQUN4QixXQUFXLEVBQUUsUUFBUTtTQUN0QixDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsVUFBa0I7UUFDckQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O3VIQTNDVSx5QkFBeUI7MkhBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzRGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9iYXNlJztcclxuXHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ09NUEFSSVNPTl9PUEVSQVRPUiB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7XHJcblx0QWdncmVnYXRpb25GaWVsZENvbmZpZyxcclxuXHRBZ2dyZWdhdGlvblJlc3BvbnNlLFxyXG5cdFNlYXJjaENvbmZpZyxcclxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkZpZWxkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FnZ3JlZ2F0aW9uLWZpZWxkLnNlcnZpY2UnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQXV0b2NvbXBsZXRlU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9hZ2dyZWdhdGlvblNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChcclxuICAgIEFnZ3JlZ2F0aW9uRmllbGRTZXJ2aWNlXHJcbiAgKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICB9XHJcbiAgY3VzdG9tU2VhcmNoKFxyXG4gICAgc2VhcmNoVGV4dDogc3RyaW5nLFxyXG4gICAgcXVlcnk6IFNlYXJjaENvbmZpZ1snc2VhcmNoJ11bJ3F1ZXJ5J10sXHJcbiAgICBmaWVsZENvbmZpZzogQWdncmVnYXRpb25GaWVsZENvbmZpZ1xyXG4gICkge1xyXG4gICAgY29uc3QgdXJsID0gYCR7cXVlcnkudXJsfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCh7XHJcbiAgICAgIGVuZHBvaW50OiB1cmwsXHJcbiAgICAgIHR5cGU6IHF1ZXJ5Py5tZXRob2QgfHwgJ3Bvc3QnLFxyXG4gICAgICBxdWVyeVBhcmFtczogcXVlcnk/LnBhcmFtcyxcclxuICAgICAgaGVhZGVyczogcXVlcnk/LmhlYWRlcnMsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBuYW1lOiBxdWVyeS5maWVsZCB8fCBmaWVsZENvbmZpZy5maWVsZEtleSxcclxuICAgICAgICBvcGVyYXRvcjogcXVlcnkub3BlcmF0b3IgPz8gQ09NUEFSSVNPTl9PUEVSQVRPUi5saWtlLFxyXG4gICAgICAgIHZhbHVlOiBxdWVyeT8udGVtcGxhdGVcclxuICAgICAgICAgID8gdGhpcy5yZXBsYWNlUGxhY2Vob2xkZXIocXVlcnk/LnRlbXBsYXRlLCBzZWFyY2hUZXh0KVxyXG4gICAgICAgICAgOiBgJyUke3NlYXJjaFRleHR9JSdgLFxyXG4gICAgICB9LFxyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIChyZXNwb25zZTogUmVjb3JkPHN0cmluZywgQWdncmVnYXRpb25SZXNwb25zZT4pID0+XHJcbiAgICAgICAgICBPYmplY3QudmFsdWVzKHJlc3BvbnNlKVswXVxyXG4gICAgICApLFxyXG4gICAgICBzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PlxyXG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0aW9uU2VydmljZS5wcmVwYXJlQWdncmVnYXRpb25GaWxlZCh7XHJcbiAgICAgICAgICBmaWVsZENvbmZpZzogZmllbGRDb25maWcsXHJcbiAgICAgICAgICBhZ2dyZWdhdGlvbjogcmVzcG9uc2UsXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlcGxhY2VQbGFjZWhvbGRlcih0ZW1wbGF0ZTogc3RyaW5nLCBzZWFyY2hUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRlbXBsYXRlLnJlcGxhY2UoL1xce1xce1xccyooXFx3KylcXHMqXFx9XFx9L2csICgpID0+IHNlYXJjaFRleHQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { Utils } from 'formiojs';
|
|
3
4
|
import _ from 'lodash';
|
|
4
5
|
import { BehaviorSubject } from 'rxjs';
|
|
5
|
-
import { debounceTime, distinctUntilChanged, filter, map, startWith, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { debounceTime, distinctUntilChanged, filter, map, startWith, takeUntil, } from 'rxjs/operators';
|
|
6
7
|
import { AGGREGATION_FIELD_TYPES, FIELD_TYPE } from '../../constants';
|
|
7
8
|
import { removeEmptyKeys } from '../../utility';
|
|
8
9
|
import { BaseFiltersPanel } from './base-filters-panel';
|
|
9
|
-
import { Evaluator } from '../../../../shared';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@ngx-translate/core";
|
|
12
12
|
import * as i2 from "../../../../core/services";
|
|
@@ -87,7 +87,7 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
|
|
|
87
87
|
var _a;
|
|
88
88
|
this.formGroup.patchValue(obj.query, {
|
|
89
89
|
emitEvent: (_a = obj === null || obj === void 0 ? void 0 : obj.emitEvent) !== null && _a !== void 0 ? _a : true,
|
|
90
|
-
onlySelf: obj === null || obj === void 0 ? void 0 : obj.onlySelf
|
|
90
|
+
onlySelf: obj === null || obj === void 0 ? void 0 : obj.onlySelf,
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
_prepareFiltersForm() {
|
|
@@ -131,12 +131,12 @@ export class FiltersPanelComponent extends BaseFiltersPanel {
|
|
|
131
131
|
const condition = (_a = field.config) === null || _a === void 0 ? void 0 : _a.condition;
|
|
132
132
|
try {
|
|
133
133
|
const isVisible = !condition ||
|
|
134
|
-
|
|
134
|
+
Utils.evaluate(condition, _.cloneDeep({
|
|
135
135
|
aggregations: this.aggregations,
|
|
136
136
|
language: this.currentLang,
|
|
137
137
|
user: this.nuxeoService.nuxeoClient.user,
|
|
138
|
-
values: this.formGroup.getRawValue()
|
|
139
|
-
}));
|
|
138
|
+
values: this.formGroup.getRawValue(),
|
|
139
|
+
}), 'show');
|
|
140
140
|
this.visibleFields[fieldKey] = isVisible;
|
|
141
141
|
if (!isVisible) {
|
|
142
142
|
const control = this.formGroup.get(fieldKey);
|
|
@@ -161,7 +161,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
161
161
|
selector: 'app-filters-panel',
|
|
162
162
|
templateUrl: './filters-panel.component.html',
|
|
163
163
|
styleUrls: ['./filters-panel.component.scss'],
|
|
164
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
164
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
165
165
|
}]
|
|
166
166
|
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.NuxeoService }]; }, propDecorators: { aggregations: [{
|
|
167
167
|
type: Input
|
|
@@ -172,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
172
172
|
}], filterChanged: [{
|
|
173
173
|
type: Output
|
|
174
174
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2NvbnRhaW5lcnMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29udGFpbmVycy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMvQyxN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Q0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBRXpDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxDQUFDLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssQ0FBQSxFQUFFO3dCQUNyQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ2hCLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3FCQUNyRDtpQkFDRDthQUNEO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNuRjtRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDOzttSEFqTFcscUJBQXFCO3VHQUFyQixxQkFBcUIsME9DN0JsQyw0L0NBK0JBOzRGREZhLHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDN0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DO2tJQVlTLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS08sTUFBTTtzQkFBbEIsS0FBSztnQkFXTyxXQUFXO3NCQUF2QixLQUFLO2dCQU9JLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLCBGSUVMRF9UWVBFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQWdncmVnYXRpb25SZXNwb25zZSwgRmllbGRDb25maWdNb2RlbCwgRm9ybVF1ZXJ5TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyByZW1vdmVFbXB0eUtleXMgfSBmcm9tICcuLi8uLi91dGlsaXR5JztcclxuaW1wb3J0IHsgQmFzZUZpbHRlcnNQYW5lbCB9IGZyb20gJy4vYmFzZS1maWx0ZXJzLXBhbmVsJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEV2YWx1YXRvciB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtZmlsdGVycy1wYW5lbCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1BhbmVsQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpbHRlcnNQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHRjdXJyZW50TGFuZyA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc7XHJcblxyXG5cdGRpcmVjdGlvbiQ6IE9ic2VydmFibGU8RGlyZWN0aW9uPiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnBpcGUoXHJcblx0XHRzdGFydFdpdGgoeyBsYW5nOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH0pLFxyXG5cdFx0bWFwKChsYW5nKSA9PiB7XHJcblx0XHRcdHRoaXMuY3VycmVudExhbmcgPSBsYW5nLmxhbmc7XHJcblx0XHRcdHJldHVybiBsYW5nLmxhbmcgPT09ICdhcicgPyAncnRsJyA6ICdsdHInO1xyXG5cdFx0fSlcclxuXHQpO1xyXG5cclxuXHRASW5wdXQoKSBhZ2dyZWdhdGlvbnM6IFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+O1xyXG5cclxuXHRwcml2YXRlIF9maWVsZHNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpZWxkQ29uZmlnTW9kZWxbXT4oW10pO1xyXG5cdHByaXZhdGUgX2FjdGl2ZVF1ZXJ5U3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtUXVlcnlNb2RlbCB8IG51bGw+KG51bGwpO1xyXG5cclxuXHRASW5wdXQoKSBzZXQgZmllbGRzKHZhbHM6IEZpZWxkQ29uZmlnTW9kZWxbXSkge1xyXG5cdFx0aWYgKHZhbHMpIHtcclxuXHRcdFx0dGhpcy5fZmllbGRzU3ViLm5leHQodGhpcy5fc29ydEl0ZW1zKHZhbHMpKTtcclxuXHRcdFx0dGhpcy5faW5pdEZvcm1Hcm91cCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0IGZpZWxkcygpIHtcclxuXHRcdHJldHVybiB0aGlzLl9maWVsZHNTdWIuZ2V0VmFsdWUoKTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIHNldCBhY3RpdmVRdWVyeShvYmo6IEZvcm1RdWVyeU1vZGVsKSB7XHJcblx0XHR0aGlzLl9hY3RpdmVRdWVyeVN1Yi5uZXh0KG9iaik7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9ucygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIGZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XHJcblxyXG5cdGZpZWxkVHlwZXMgPSBGSUVMRF9UWVBFO1xyXG5cdEZpZWxkUmVuZGVyVHlwZSA9IEFHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTO1xyXG5cclxuXHRmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuXHJcblx0dmlzaWJsZUZpZWxkczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG5cdFx0cHVibGljIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHR9XHJcblxyXG5cdHRyYWNrQnlGaWVsZEtleShfOiBudW1iZXIsIGZpZWxkOiBGaWVsZENvbmZpZ01vZGVsKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBmaWVsZD8uY29uZmlnPy5maWVsZEtleTtcclxuXHR9XHJcblxyXG5cdGdldCBoYXNWYWx1ZXMoKSB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHRPYmplY3QudmFsdWVzKHRoaXMuZm9ybUdyb3VwLnZhbHVlIHx8IHt9KS5maWx0ZXIoKHZhbHVlKSA9PlxyXG5cdFx0XHRcdEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUubGVuZ3RoID4gMCA6IEJvb2xlYW4odmFsdWUpXHJcblx0XHRcdCk/Lmxlbmd0aCA+IDBcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX2hhbmRsZUZvcm1Hcm91cENoYW5nZXMoKTtcclxuXHRcdHRoaXMuX2hhbmRlbEFjdGl2ZVF1ZXJ5Q2hhbmdlKCk7XHJcblx0XHR0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbnMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmICghY2hhbmdlcz8uZmllbGRzPy5maXJzdENoYW5nZSB8fCAhY2hhbmdlcz8uYWdncmVnYXRpb25zPy5maXJzdENoYW5nZSkge1xyXG5cdFx0XHR0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbnMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJlc2V0RmlsdGVycygpIHtcclxuXHRcdHRoaXMuZm9ybUdyb3VwLnJlc2V0KHt9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3NvcnRJdGVtcyhpdGVtczogRmllbGRDb25maWdNb2RlbFtdKSB7XHJcblx0XHRjb25zdCBfZGVmYXVsdE9yZGVyID0gMDtcclxuXHRcdHJldHVybiBpdGVtcy5zb3J0KFxyXG5cdFx0XHQoeyBjb25maWc6IHsgb3JkZXI6IG8xIH0gfSwgeyBjb25maWc6IHsgb3JkZXI6IG8yIH0gfSkgPT4gKG8xID8/IF9kZWZhdWx0T3JkZXIpIC0gKG8yID8/IF9kZWZhdWx0T3JkZXIpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaW5pdEZvcm1Hcm91cCgpIHtcclxuXHRcdHRoaXMudmlzaWJsZUZpZWxkcyA9IHt9O1xyXG5cdFx0dGhpcy5fcmVtb3ZlQ29udHJvbHMoKTtcclxuXHRcdHRoaXMuX3ByZXBhcmVGaWx0ZXJzRm9ybSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcGF0Y2hBY3RpdmVRdWVyeShvYmo6IEZvcm1RdWVyeU1vZGVsKSB7XHJcblx0XHR0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKG9iai5xdWVyeSwge1xyXG5cdFx0XHRlbWl0RXZlbnQ6IG9iaj8uZW1pdEV2ZW50ID8/IHRydWUsXHJcblx0XHRcdG9ubHlTZWxmOiBvYmo/Lm9ubHlTZWxmXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVGaWx0ZXJzRm9ybSgpIHtcclxuXHRcdGlmICghdGhpcy5maWVsZHMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5maWVsZHMpIHtcclxuXHRcdFx0Y29uc3Qga2V5ID0gZmllbGQuY29uZmlnLmZpZWxkS2V5O1xyXG5cdFx0XHRpZiAoIXRoaXMuZm9ybUdyb3VwLmNvbnRhaW5zKGtleSkpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKGtleSwgbmV3IEZvcm1Db250cm9sKGZpZWxkLmNvbmZpZy52YWx1ZXMpKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaGFuZGxlRm9ybUdyb3VwQ2hhbmdlcygpIHtcclxuXHRcdHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlc1xyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRkZWJvdW5jZVRpbWUoMzAwKSxcclxuXHRcdFx0XHRtYXAoKGZvcm1WYWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgZGF0YSA9IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9ucyhmb3JtVmFsdWUpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHJlbW92ZUVtcHR5S2V5cyhkYXRhKTtcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gXy5pc0VxdWFsKGEsIGIpKSxcclxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmZpbHRlckNoYW5nZWQuZW1pdChyZXMpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3JlbW92ZUNvbnRyb2xzKCkge1xyXG5cdFx0T2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHR0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGtleSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2hhbmRlbEFjdGl2ZVF1ZXJ5Q2hhbmdlKCkge1xyXG5cdFx0dGhpcy5fYWN0aXZlUXVlcnlTdWJcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0ZmlsdGVyKChvYmopID0+ICEhb2JqPy5xdWVyeSksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5fcGF0Y2hBY3RpdmVRdWVyeShyZXMpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2V2YWx1YXRlQ29uZGl0aW9ucyh2YWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKSB7XHJcblx0XHR0aGlzLnZpc2libGVGaWVsZHMgPSB7fTtcclxuXHRcdHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcblx0XHRcdGNvbnN0IGZpZWxkS2V5ID0gZmllbGQuY29uZmlnLmZpZWxkS2V5O1xyXG5cdFx0XHRjb25zdCBjb25kaXRpb24gPSBmaWVsZC5jb25maWc/LmNvbmRpdGlvbjtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCBpc1Zpc2libGUgPVxyXG5cdFx0XHRcdFx0IWNvbmRpdGlvbiB8fFxyXG5cdFx0XHRcdFx0RXZhbHVhdG9yLmV2YWx1YXRlKFxyXG5cdFx0XHRcdFx0XHRjb25kaXRpb24sXHJcblx0XHRcdFx0XHRcdF8uY2xvbmVEZWVwKHtcclxuXHRcdFx0XHRcdFx0XHRhZ2dyZWdhdGlvbnM6IHRoaXMuYWdncmVnYXRpb25zLFxyXG5cdFx0XHRcdFx0XHRcdGxhbmd1YWdlOiB0aGlzLmN1cnJlbnRMYW5nLFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIsXHJcblx0XHRcdFx0XHRcdFx0dmFsdWVzOiB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdHRoaXMudmlzaWJsZUZpZWxkc1tmaWVsZEtleV0gPSBpc1Zpc2libGU7XHJcblxyXG5cdFx0XHRcdGlmICghaXNWaXNpYmxlKSB7XHJcblx0XHRcdFx0XHRjb25zdCBjb250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkS2V5KTtcclxuXHRcdFx0XHRcdGlmICghIWNvbnRyb2w/LnZhbHVlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnRyb2wucmVzZXQoKTtcclxuXHRcdFx0XHRcdFx0Y29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKGBFcnJvciBldmFsdWF0aW5nIGNvbmRpdGlvbiBmb3IgZmllbGQgJHtmaWVsZC5jb25maWcuZmllbGRLZXl9OmAsIGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsdWU7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cImZpbHRlcnMtcGFuZWxcIiBbZGlyXT1cImRpcmVjdGlvbiQgfCBhc3luY1wiPlxyXG5cdDxkaXYgY2xhc3M9XCJyZXNldC1maWx0ZXIgZmxleCByZXNldC1jb250YWluZXJcIj5cclxuXHRcdDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidy1mdWxsXCIgKGNsaWNrKT1cInJlc2V0RmlsdGVycygpXCIgW2Rpc2FibGVkXT1cIiFoYXNWYWx1ZXNcIj5cclxuXHRcdFx0e3sgJ0JVVFRPTlMuY2xlYXJGaWx0ZXInIHwgdHJhbnNsYXRlIH19XHJcblx0XHQ8L2J1dHRvbj5cclxuXHQ8L2Rpdj5cclxuXHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHMgfCBmaWx0ZXJCeVJvbGVzOyB0cmFja0J5OiB0cmFja0J5RmllbGRLZXlcIj5cclxuXHRcdDxuZy1jb250YWluZXIgKnBlcm1pc3Npb249XCJ7IG5hbWU6IGZpZWxkLmNvbmZpZz8ucGVybWlzc2lvbiB9XCI+XHJcblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aXNpYmxlRmllbGRzW2ZpZWxkLmNvbmZpZy5maWVsZEtleV1cIj5cclxuXHRcdFx0XHQ8YXBwLXByZWRpY2F0ZS1maWVsZFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJmaWVsZC50eXBlID09IGZpZWxkVHlwZXMucHJlZGljYXRlXCJcclxuXHRcdFx0XHRcdFtmaWVsZENvbmZpZ109XCJmaWVsZC5jb25maWdcIlxyXG5cdFx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5jb25maWcuZmllbGRLZXlcIlxyXG5cdFx0XHRcdD48L2FwcC1wcmVkaWNhdGUtZmllbGQ+XHJcblx0XHRcdFx0PGFwcC1hZ2dyZWdhdGlvbi1maWVsZFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJmaWVsZC50eXBlID09IGZpZWxkVHlwZXMuYWdncmVnYXRpb24gJiYgISFhZ2dyZWdhdGlvbnNcIlxyXG5cdFx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5jb25maWcuZmllbGRLZXlcIlxyXG5cdFx0XHRcdFx0W2ZpZWxkQ29uZmlnXT1cImZpZWxkLmNvbmZpZ1wiXHJcblx0XHRcdFx0XHRbYWdncmVnYXRpb25dPVwiYWdncmVnYXRpb25zW2ZpZWxkLmNvbmZpZy5hZ2dyZWdhdGlvbl1cIlxyXG5cdFx0XHRcdFx0W2NvbnRlbnRUZW1wbGF0ZV09XCJnZXRDb250ZW50VGVtcGxhdGUoZmllbGQuY29uZmlnLnJlbmRlci50eXBlKVwiXHJcblx0XHRcdFx0PjwvYXBwLWFnZ3JlZ2F0aW9uLWZpZWxkPlxyXG5cdFx0XHRcdDxhcHAtY3VzdG9tLWZpZWxkXHJcblx0XHRcdFx0XHQqbmdJZj1cImZpZWxkLnR5cGUgPT0gZmllbGRUeXBlcy5jdXN0b21cIlxyXG5cdFx0XHRcdFx0W2ZpZWxkQ29uZmlnXT1cImZpZWxkLmNvbmZpZ1wiXHJcblx0XHRcdFx0XHRbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmNvbmZpZy5maWVsZEtleVwiXHJcblx0XHRcdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9uc1wiXHJcblx0XHRcdFx0PjwvYXBwLWN1c3RvbS1maWVsZD5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2NvbnRhaW5lcnMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29udGFpbmVycy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFDTixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU10RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXhELE1B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QUFDO2dCQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDO2dCQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNkLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMsQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQUEsRUFBRTt3QkFDcEIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNoQixPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztxQkFDdEQ7aUJBQ0Y7YUFDRjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQ1gsd0NBQXdDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQ2hFLENBQUMsQ0FDRixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQzs7bUhBekxVLHFCQUFxQjt1R0FBckIscUJBQXFCLDBPQ3hDbEMsNC9DQStCQTs0RkRTYSxxQkFBcUI7a0JBTmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQzdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtrSUFlVSxZQUFZO3NCQUFwQixLQUFLO2dCQUtPLE1BQU07c0JBQWxCLEtBQUs7Z0JBV08sV0FBVztzQkFBdkIsS0FBSztnQkFPSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJ2Zvcm1pb2pzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcblx0ZGVib3VuY2VUaW1lLFxyXG5cdGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG5cdGZpbHRlcixcclxuXHRtYXAsXHJcblx0c3RhcnRXaXRoLFxyXG5cdHRha2VVbnRpbCxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBR0dSRUdBVElPTl9GSUVMRF9UWVBFUywgRklFTERfVFlQRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7XHJcblx0QWdncmVnYXRpb25SZXNwb25zZSxcclxuXHRGaWVsZENvbmZpZ01vZGVsLFxyXG5cdEZvcm1RdWVyeU1vZGVsLFxyXG59IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IHJlbW92ZUVtcHR5S2V5cyB9IGZyb20gJy4uLy4uL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBCYXNlRmlsdGVyc1BhbmVsIH0gZnJvbSAnLi9iYXNlLWZpbHRlcnMtcGFuZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmlsdGVycy1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlcnNQYW5lbENvbXBvbmVudFxyXG4gIGV4dGVuZHMgQmFzZUZpbHRlcnNQYW5lbFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcclxue1xyXG4gIGN1cnJlbnRMYW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcclxuXHJcbiAgZGlyZWN0aW9uJDogT2JzZXJ2YWJsZTxEaXJlY3Rpb24+ID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UucGlwZShcclxuICAgIHN0YXJ0V2l0aCh7IGxhbmc6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgfSksXHJcbiAgICBtYXAoKGxhbmcpID0+IHtcclxuICAgICAgdGhpcy5jdXJyZW50TGFuZyA9IGxhbmcubGFuZztcclxuICAgICAgcmV0dXJuIGxhbmcubGFuZyA9PT0gJ2FyJyA/ICdydGwnIDogJ2x0cic7XHJcbiAgICB9KVxyXG4gICk7XHJcblxyXG4gIEBJbnB1dCgpIGFnZ3JlZ2F0aW9uczogUmVjb3JkPHN0cmluZywgQWdncmVnYXRpb25SZXNwb25zZT47XHJcblxyXG4gIHByaXZhdGUgX2ZpZWxkc1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmllbGRDb25maWdNb2RlbFtdPihbXSk7XHJcbiAgcHJpdmF0ZSBfYWN0aXZlUXVlcnlTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1RdWVyeU1vZGVsIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBmaWVsZHModmFsczogRmllbGRDb25maWdNb2RlbFtdKSB7XHJcbiAgICBpZiAodmFscykge1xyXG4gICAgICB0aGlzLl9maWVsZHNTdWIubmV4dCh0aGlzLl9zb3J0SXRlbXModmFscykpO1xyXG4gICAgICB0aGlzLl9pbml0Rm9ybUdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkc1N1Yi5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGFjdGl2ZVF1ZXJ5KG9iajogRm9ybVF1ZXJ5TW9kZWwpIHtcclxuICAgIHRoaXMuX2FjdGl2ZVF1ZXJ5U3ViLm5leHQob2JqKTtcclxuICAgIGlmIChvYmopIHtcclxuICAgICAgdGhpcy5fZXZhbHVhdGVDb25kaXRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgZmlsdGVyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuXHJcbiAgZmllbGRUeXBlcyA9IEZJRUxEX1RZUEU7XHJcbiAgRmllbGRSZW5kZXJUeXBlID0gQUdHUkVHQVRJT05fRklFTERfVFlQRVM7XHJcblxyXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG5cclxuICB2aXNpYmxlRmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZpZWxkS2V5KF86IG51bWJlciwgZmllbGQ6IEZpZWxkQ29uZmlnTW9kZWwpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGZpZWxkPy5jb25maWc/LmZpZWxkS2V5O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1ZhbHVlcygpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAudmFsdWUgfHwge30pLmZpbHRlcigodmFsdWUpID0+XHJcbiAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggPiAwIDogQm9vbGVhbih2YWx1ZSlcclxuICAgICAgKT8ubGVuZ3RoID4gMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGFuZGxlRm9ybUdyb3VwQ2hhbmdlcygpO1xyXG4gICAgdGhpcy5faGFuZGVsQWN0aXZlUXVlcnlDaGFuZ2UoKTtcclxuICAgIHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCFjaGFuZ2VzPy5maWVsZHM/LmZpcnN0Q2hhbmdlIHx8ICFjaGFuZ2VzPy5hZ2dyZWdhdGlvbnM/LmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoe30pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc29ydEl0ZW1zKGl0ZW1zOiBGaWVsZENvbmZpZ01vZGVsW10pIHtcclxuICAgIGNvbnN0IF9kZWZhdWx0T3JkZXIgPSAwO1xyXG4gICAgcmV0dXJuIGl0ZW1zLnNvcnQoXHJcbiAgICAgICh7IGNvbmZpZzogeyBvcmRlcjogbzEgfSB9LCB7IGNvbmZpZzogeyBvcmRlcjogbzIgfSB9KSA9PlxyXG4gICAgICAgIChvMSA/PyBfZGVmYXVsdE9yZGVyKSAtIChvMiA/PyBfZGVmYXVsdE9yZGVyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRGb3JtR3JvdXAoKSB7XHJcbiAgICB0aGlzLnZpc2libGVGaWVsZHMgPSB7fTtcclxuICAgIHRoaXMuX3JlbW92ZUNvbnRyb2xzKCk7XHJcbiAgICB0aGlzLl9wcmVwYXJlRmlsdGVyc0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BhdGNoQWN0aXZlUXVlcnkob2JqOiBGb3JtUXVlcnlNb2RlbCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShvYmoucXVlcnksIHtcclxuICAgICAgZW1pdEV2ZW50OiBvYmo/LmVtaXRFdmVudCA/PyB0cnVlLFxyXG4gICAgICBvbmx5U2VsZjogb2JqPy5vbmx5U2VsZixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUZpbHRlcnNGb3JtKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmZpZWxkcykge1xyXG4gICAgICBjb25zdCBrZXkgPSBmaWVsZC5jb25maWcuZmllbGRLZXk7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAuY29udGFpbnMoa2V5KSkge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woa2V5LCBuZXcgRm9ybUNvbnRyb2woZmllbGQuY29uZmlnLnZhbHVlcykpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVGb3JtR3JvdXBDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICAgIG1hcCgoZm9ybVZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fZXZhbHVhdGVDb25kaXRpb25zKGZvcm1WYWx1ZSk7XHJcbiAgICAgICAgICByZXR1cm4gcmVtb3ZlRW1wdHlLZXlzKGRhdGEpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBfLmlzRXF1YWwoYSwgYikpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlZC5lbWl0KHJlcyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlQ29udHJvbHMoKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woa2V5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGVsQWN0aXZlUXVlcnlDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLl9hY3RpdmVRdWVyeVN1YlxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKG9iaikgPT4gISFvYmo/LnF1ZXJ5KSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLl9wYXRjaEFjdGl2ZVF1ZXJ5KHJlcyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZXZhbHVhdGVDb25kaXRpb25zKHZhbHVlcyA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpIHtcclxuICAgIHRoaXMudmlzaWJsZUZpZWxkcyA9IHt9O1xyXG4gICAgdGhpcy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgY29uc3QgZmllbGRLZXkgPSBmaWVsZC5jb25maWcuZmllbGRLZXk7XHJcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IGZpZWxkLmNvbmZpZz8uY29uZGl0aW9uO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9XHJcbiAgICAgICAgICAhY29uZGl0aW9uIHx8XHJcbiAgICAgICAgICBVdGlscy5ldmFsdWF0ZShcclxuICAgICAgICAgICAgY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBfLmNsb25lRGVlcCh7XHJcbiAgICAgICAgICAgICAgYWdncmVnYXRpb25zOiB0aGlzLmFnZ3JlZ2F0aW9ucyxcclxuICAgICAgICAgICAgICBsYW5ndWFnZTogdGhpcy5jdXJyZW50TGFuZyxcclxuICAgICAgICAgICAgICB1c2VyOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLFxyXG4gICAgICAgICAgICAgIHZhbHVlczogdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICdzaG93J1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnZpc2libGVGaWVsZHNbZmllbGRLZXldID0gaXNWaXNpYmxlO1xyXG5cclxuICAgICAgICBpZiAoIWlzVmlzaWJsZSkge1xyXG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZEtleSk7XHJcbiAgICAgICAgICBpZiAoISFjb250cm9sPy52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb250cm9sLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgIGBFcnJvciBldmFsdWF0aW5nIGNvbmRpdGlvbiBmb3IgZmllbGQgJHtmaWVsZC5jb25maWcuZmllbGRLZXl9OmAsXHJcbiAgICAgICAgICBlXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgY2xhc3M9XCJmaWx0ZXJzLXBhbmVsXCIgW2Rpcl09XCJkaXJlY3Rpb24kIHwgYXN5bmNcIj5cclxuXHQ8ZGl2IGNsYXNzPVwicmVzZXQtZmlsdGVyIGZsZXggcmVzZXQtY29udGFpbmVyXCI+XHJcblx0XHQ8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInctZnVsbFwiIChjbGljayk9XCJyZXNldEZpbHRlcnMoKVwiIFtkaXNhYmxlZF09XCIhaGFzVmFsdWVzXCI+XHJcblx0XHRcdHt7ICdCVVRUT05TLmNsZWFyRmlsdGVyJyB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0PC9idXR0b24+XHJcblx0PC9kaXY+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzIHwgZmlsdGVyQnlSb2xlczsgdHJhY2tCeTogdHJhY2tCeUZpZWxkS2V5XCI+XHJcblx0XHQ8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiBmaWVsZC5jb25maWc/LnBlcm1pc3Npb24gfVwiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwidmlzaWJsZUZpZWxkc1tmaWVsZC5jb25maWcuZmllbGRLZXldXCI+XHJcblx0XHRcdFx0PGFwcC1wcmVkaWNhdGUtZmllbGRcclxuXHRcdFx0XHRcdCpuZ0lmPVwiZmllbGQudHlwZSA9PSBmaWVsZFR5cGVzLnByZWRpY2F0ZVwiXHJcblx0XHRcdFx0XHRbZmllbGRDb25maWddPVwiZmllbGQuY29uZmlnXCJcclxuXHRcdFx0XHRcdFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuY29uZmlnLmZpZWxkS2V5XCJcclxuXHRcdFx0XHQ+PC9hcHAtcHJlZGljYXRlLWZpZWxkPlxyXG5cdFx0XHRcdDxhcHAtYWdncmVnYXRpb24tZmllbGRcclxuXHRcdFx0XHRcdCpuZ0lmPVwiZmllbGQudHlwZSA9PSBmaWVsZFR5cGVzLmFnZ3JlZ2F0aW9uICYmICEhYWdncmVnYXRpb25zXCJcclxuXHRcdFx0XHRcdFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuY29uZmlnLmZpZWxkS2V5XCJcclxuXHRcdFx0XHRcdFtmaWVsZENvbmZpZ109XCJmaWVsZC5jb25maWdcIlxyXG5cdFx0XHRcdFx0W2FnZ3JlZ2F0aW9uXT1cImFnZ3JlZ2F0aW9uc1tmaWVsZC5jb25maWcuYWdncmVnYXRpb25dXCJcclxuXHRcdFx0XHRcdFtjb250ZW50VGVtcGxhdGVdPVwiZ2V0Q29udGVudFRlbXBsYXRlKGZpZWxkLmNvbmZpZy5yZW5kZXIudHlwZSlcIlxyXG5cdFx0XHRcdD48L2FwcC1hZ2dyZWdhdGlvbi1maWVsZD5cclxuXHRcdFx0XHQ8YXBwLWN1c3RvbS1maWVsZFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJmaWVsZC50eXBlID09IGZpZWxkVHlwZXMuY3VzdG9tXCJcclxuXHRcdFx0XHRcdFtmaWVsZENvbmZpZ109XCJmaWVsZC5jb25maWdcIlxyXG5cdFx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5jb25maWcuZmllbGRLZXlcIlxyXG5cdFx0XHRcdFx0W2FnZ3JlZ2F0aW9uc109XCJhZ2dyZWdhdGlvbnNcIlxyXG5cdFx0XHRcdD48L2FwcC1jdXN0b20tZmllbGQ+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblx0PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL21vZGVscy9iYXNlLWZpZWxkLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZhbHVhdGVkU3RyaW5nLCBJbnRlcnBvbGF0ZVN0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUtleSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21wYXJpc29uT3BlcmF0b3IgfSBmcm9tICcuL3R5cGVzLWhlbHBlcic7XHJcblxyXG5leHBvcnQgdHlwZSBCYXNlRmllbGRDb25maWcgPSB7XHJcbiAgbGFiZWw6IFRyYW5zbGF0ZUtleTtcclxuICBmaWVsZEtleTogc3RyaW5nO1xyXG4gIHZhbHVlcz86IHVua25vd247XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIG9yZGVyPzogbnVtYmVyO1xyXG4gIG9wZXJhdG9yPzogQ29tcGFyaXNvbk9wZXJhdG9yO1xyXG4gIHZhbHVlVHlwZTogJ3ZhbHVlT2JqZWN0JyB8ICdwcm9wZXJ0eSc7XHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgcm9sZXM/OiBzdHJpbmdbXTtcclxuICBwZXJtaXNzaW9uPzogc3RyaW5nO1xyXG4gIGNvbmRpdGlvbj86IEV2YWx1YXRlZFN0cmluZztcclxuICBsYWJlbFRlbXBsYXRlPzogSW50ZXJwb2xhdGVTdHJpbmc7XHJcbn07XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Utils } from 'formiojs';
|
|
3
3
|
import _ from 'lodash';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../../../core/services";
|
|
@@ -13,7 +13,12 @@ export class CheckConditionPipe {
|
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
15
|
try {
|
|
16
|
-
return
|
|
16
|
+
return Utils.evaluate(condition, _.cloneDeep({
|
|
17
|
+
aggregations,
|
|
18
|
+
language,
|
|
19
|
+
user: this.user,
|
|
20
|
+
values: filterValues,
|
|
21
|
+
}), 'show');
|
|
17
22
|
}
|
|
18
23
|
catch (error) {
|
|
19
24
|
console.error({ error });
|
|
@@ -26,7 +31,7 @@ CheckConditionPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version
|
|
|
26
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CheckConditionPipe, decorators: [{
|
|
27
32
|
type: Pipe,
|
|
28
33
|
args: [{
|
|
29
|
-
name: 'checkCondition'
|
|
34
|
+
name: 'checkCondition',
|
|
30
35
|
}]
|
|
31
36
|
}], ctorParameters: function () { return [{ type: i1.NuxeoService }]; } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29uZGl0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL3BpcGVzL2NoZWNrLWNvbmRpdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFLdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUFtQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQzVDLENBQUM7SUFDRCxTQUFTLENBQ1AsU0FBaUIsRUFDakIsWUFBaUMsRUFDakMsUUFBZ0IsRUFDaEIsWUFBaUM7UUFFakMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJO1lBQ0YsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUNuQixTQUFTLEVBQ1QsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDVixZQUFZO2dCQUNaLFFBQVE7Z0JBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLE1BQU0sRUFBRSxZQUFZO2FBQ3JCLENBQUMsRUFDRixNQUFNLENBQ1AsQ0FBQztTQUNIO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7Z0hBOUJVLGtCQUFrQjs4R0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnZm9ybWlvanMnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnY2hlY2tDb25kaXRpb24nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tDb25kaXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdXNlcjogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UpIHtcclxuICAgIHRoaXMudXNlciA9IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyO1xyXG4gIH1cclxuICB0cmFuc2Zvcm0oXHJcbiAgICBjb25kaXRpb246IHN0cmluZyxcclxuICAgIGFnZ3JlZ2F0aW9uczogUmVjb3JkPHN0cmluZywgYW55PixcclxuICAgIGxhbmd1YWdlOiBzdHJpbmcsXHJcbiAgICBmaWx0ZXJWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIGFueT5cclxuICApIHtcclxuICAgIGlmICghY29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBVdGlscy5ldmFsdWF0ZShcclxuICAgICAgICBjb25kaXRpb24sXHJcbiAgICAgICAgXy5jbG9uZURlZXAoe1xyXG4gICAgICAgICAgYWdncmVnYXRpb25zLFxyXG4gICAgICAgICAgbGFuZ3VhZ2UsXHJcbiAgICAgICAgICB1c2VyOiB0aGlzLnVzZXIsXHJcbiAgICAgICAgICB2YWx1ZXM6IGZpbHRlclZhbHVlcyxcclxuICAgICAgICB9KSxcclxuICAgICAgICAnc2hvdydcclxuICAgICAgKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoeyBlcnJvciB9KTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
+
import { Utils } from 'formiojs';
|
|
2
3
|
import * as moment from 'moment';
|
|
3
|
-
import { Evaluator } from '../../../shared/evaluator';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@ngx-translate/core";
|
|
6
6
|
export class EvaluatorLabelPipe {
|
|
@@ -15,7 +15,7 @@ export class EvaluatorLabelPipe {
|
|
|
15
15
|
return '';
|
|
16
16
|
}
|
|
17
17
|
try {
|
|
18
|
-
const text =
|
|
18
|
+
const text = Utils.interpolate(option.labelTemplate, {
|
|
19
19
|
language,
|
|
20
20
|
option,
|
|
21
21
|
moment,
|
|
@@ -37,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
37
37
|
name: 'evaluateLabel',
|
|
38
38
|
}]
|
|
39
39
|
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdGUtbGFiZWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvcGlwZXMvZXZhbHVhdGUtbGFiZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFLakMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3Qjs7T0FFRztJQUNILFlBQW1CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQztJQUNsRCxTQUFTLENBQUMsTUFBb0IsRUFBRSxRQUFnQjtRQUM5QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDckMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUk7WUFDRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ25ELFFBQVE7Z0JBQ1IsTUFBTTtnQkFDTixNQUFNO2dCQUNOLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3BCLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNyQjtJQUNILENBQUM7O2dIQXRCVSxrQkFBa0I7OEdBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUg5QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJ2Zvcm1pb2pzJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEZpbHRlck9wdGlvbiB9IGZyb20gJy4uL21vZGVscyc7XHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZXZhbHVhdGVMYWJlbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmFsdWF0b3JMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XHJcbiAgdHJhbnNmb3JtKG9wdGlvbjogRmlsdGVyT3B0aW9uLCBsYW5ndWFnZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghb3B0aW9uIHx8ICFvcHRpb24/LmxhYmVsVGVtcGxhdGUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHRleHQgPSBVdGlscy5pbnRlcnBvbGF0ZShvcHRpb24ubGFiZWxUZW1wbGF0ZSwge1xyXG4gICAgICAgIGxhbmd1YWdlLFxyXG4gICAgICAgIG9wdGlvbixcclxuICAgICAgICBtb21lbnQsXHJcbiAgICAgICAgdHJhbnNsYXRlOiB0aGlzLnRyYW5zbGF0ZSxcclxuICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRleHQ7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICByZXR1cm4gb3B0aW9uLmxhYmVsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|