@myrtex-org/form 1.0.10 → 1.0.13
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/esm2022/lib/modules/object-form/components/elements/base/base-field/base-field.component.mjs +1 -1
- package/esm2022/lib/modules/object-form/components/elements/input/file/input-file.component.mjs +16 -11
- package/esm2022/lib/modules/object-form/constants.mjs +1 -2
- package/esm2022/lib/modules/object-form/helpers/get-menu-model.mjs +5 -5
- package/esm2022/lib/modules/object-form/object-form.component.mjs +8 -3
- package/esm2022/lib/modules/object-form/services/object-form.service.mjs +18 -14
- package/esm2022/lib/modules/object-form/store/object-form.actions.mjs +3 -1
- package/esm2022/lib/modules/object-form/store/object-form.effects.mjs +28 -20
- package/esm2022/lib/modules/object-form/store/object-form.reducers.mjs +8 -5
- package/esm2022/lib/modules/object-form/store/object-form.selector.mjs +3 -1
- package/esm2022/lib/modules/object-form/store/object-form.state.mjs +4 -2
- package/fesm2022/myrtex-org-form.mjs +87 -56
- package/fesm2022/myrtex-org-form.mjs.map +1 -1
- package/lib/modules/object-form/components/elements/input/file/input-file.component.d.ts +3 -1
- package/lib/modules/object-form/constants.d.ts +0 -1
- package/lib/modules/object-form/helpers/get-menu-model.d.ts +2 -2
- package/lib/modules/object-form/object-form.component.d.ts +1 -0
- package/lib/modules/object-form/services/object-form.service.d.ts +9 -7
- package/lib/modules/object-form/store/object-form.actions.d.ts +8 -0
- package/lib/modules/object-form/store/object-form.effects.d.ts +5 -1
- package/lib/modules/object-form/store/object-form.selector.d.ts +2 -0
- package/lib/modules/object-form/store/object-form.state.d.ts +2 -0
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import { forkJoin, of } from 'rxjs';
|
|
|
5
5
|
import { objectFormActions, objectFormSelectors, EApplicationActions } from '../store';
|
|
6
6
|
import { AutoSaveStore, ToasterType } from '@myrtex-org/ui';
|
|
7
7
|
import { sharedSelectors } from '../../shared-form/store';
|
|
8
|
-
import {
|
|
8
|
+
import { OBJECT_ID_NAME, SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from '../constants';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@ngrx/effects";
|
|
11
11
|
import * as i2 from "@ngrx/store";
|
|
@@ -20,9 +20,15 @@ export class ObjectFormEffects {
|
|
|
20
20
|
this._applicationService = _applicationService;
|
|
21
21
|
this._toasterService = _toasterService;
|
|
22
22
|
this._autoSaveStore = inject(AutoSaveStore);
|
|
23
|
-
this.
|
|
23
|
+
this.updateApiUrl$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.UpdateApiUrl), map((props) => ({ apiPrefix: props.apiPrefix, apiUrl: props.apiUrl })), distinctUntilChanged(), tap(({ apiPrefix, apiUrl }) => {
|
|
24
|
+
if (apiUrl) {
|
|
25
|
+
this._applicationService.updateApiUrl(apiUrl);
|
|
26
|
+
}
|
|
27
|
+
this._store.dispatch(objectFormActions.loadTemplatePending());
|
|
28
|
+
})), { dispatch: false });
|
|
29
|
+
this.loadTemplatePending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadTemplatePending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME))), switchMap(([_, objectId, templateSysName]) => {
|
|
24
30
|
if (objectId) {
|
|
25
|
-
return this._applicationService.getTemplate(
|
|
31
|
+
return this._applicationService.getTemplate(objectId).pipe(switchMap(({ templateSysName }) => ([
|
|
26
32
|
objectFormActions.loadTemplateSuccess({ templateSysName }),
|
|
27
33
|
objectFormActions.loadObjectPending({ templateSysName })
|
|
28
34
|
])), catchError(() => {
|
|
@@ -33,26 +39,28 @@ export class ObjectFormEffects {
|
|
|
33
39
|
return of(objectFormActions.loadPreviewTemplatePending({ templateSysName }));
|
|
34
40
|
}
|
|
35
41
|
})));
|
|
36
|
-
this.loadPreviewTemplatePending = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadPreviewTemplatePending), map((props) => props.templateSysName), withLatestFrom(this._store.select(
|
|
42
|
+
this.loadPreviewTemplatePending = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadPreviewTemplatePending), map((props) => props.templateSysName), withLatestFrom(this._store.select(objectFormSelectors.selectApiPrefix), this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([templateSysName, apiPrefix, sectionSysName]) => {
|
|
37
43
|
return this._applicationService.getTemplateSettings(templateSysName).pipe(map((templateSettings) => {
|
|
38
44
|
const activeSection = templateSettings.sections.find((s) => s.sysName === sectionSysName);
|
|
39
45
|
if (!activeSection && templateSettings.sections.length) {
|
|
40
|
-
this._router.navigate([
|
|
46
|
+
this._router.navigate([
|
|
47
|
+
`/${apiPrefix}/preview/${templateSysName}/${templateSettings.sections[0].sysName}`
|
|
48
|
+
]);
|
|
41
49
|
}
|
|
42
50
|
return objectFormActions.loadPreviewTemplateSuccess({ templateSettings, templateSysName });
|
|
43
51
|
}), catchError((error) => {
|
|
44
52
|
return of(objectFormActions.loadPreviewTemplateError());
|
|
45
53
|
}));
|
|
46
54
|
})));
|
|
47
|
-
this.loadApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadObjectPending), map((props) => props.templateSysName), withLatestFrom(this._store.select(
|
|
55
|
+
this.loadApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadObjectPending), map((props) => props.templateSysName), withLatestFrom(this._store.select(objectFormSelectors.selectApiPrefix), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([templateSysName, apiPrefix, objectId, sectionSysName]) => {
|
|
48
56
|
const requests = [
|
|
49
57
|
this._applicationService.getTemplateSettings(templateSysName),
|
|
50
|
-
this._applicationService.getSectionValues(
|
|
58
|
+
this._applicationService.getSectionValues(objectId)
|
|
51
59
|
];
|
|
52
60
|
return forkJoin(requests).pipe(switchMap(([templateSettings, valueDto]) => {
|
|
53
61
|
const activeSection = templateSettings.sections.find((s) => s.sysName === sectionSysName);
|
|
54
62
|
if (!activeSection && templateSettings.sections.length) {
|
|
55
|
-
this._router.navigate([
|
|
63
|
+
this._router.navigate([`/${apiPrefix}/${objectId}/${templateSettings.sections[0].sysName}`]);
|
|
56
64
|
}
|
|
57
65
|
return [
|
|
58
66
|
objectFormActions.loadObjectSuccess({
|
|
@@ -77,8 +85,8 @@ export class ObjectFormEffects {
|
|
|
77
85
|
this._autoSaveStore.start();
|
|
78
86
|
this._store.dispatch(objectFormActions.saveValuesPending());
|
|
79
87
|
})), { dispatch: false });
|
|
80
|
-
this.updateApplicationValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveValuesPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
81
|
-
return this._applicationService.updateApplicationValues(
|
|
88
|
+
this.updateApplicationValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveValuesPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(objectFormSelectors.selectSectionValues)), switchMap(([_, objectId, sectionValues]) => {
|
|
89
|
+
return this._applicationService.updateApplicationValues(objectId, sectionValues).pipe(map((result) => {
|
|
82
90
|
this._autoSaveStore.success();
|
|
83
91
|
return objectFormActions.saveValuesSuccess({ result, objectId });
|
|
84
92
|
}), catchError((error) => {
|
|
@@ -86,8 +94,8 @@ export class ObjectFormEffects {
|
|
|
86
94
|
return of(objectFormActions.saveValuesError());
|
|
87
95
|
}));
|
|
88
96
|
})));
|
|
89
|
-
this.saveApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveObjectPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
90
|
-
return this._applicationService.saveApplication(
|
|
97
|
+
this.saveApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveObjectPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME))), switchMap(([_, objectId]) => {
|
|
98
|
+
return this._applicationService.saveApplication(objectId).pipe(map(() => {
|
|
91
99
|
this._toasterService.show({
|
|
92
100
|
title: 'Сохранено успешно',
|
|
93
101
|
type: ToasterType.Positive
|
|
@@ -101,13 +109,13 @@ export class ObjectFormEffects {
|
|
|
101
109
|
return of(objectFormActions.saveObjectError());
|
|
102
110
|
}));
|
|
103
111
|
})));
|
|
104
|
-
this.copyApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.CopyObjectPending), map((action) => action), withLatestFrom(this._store.select(
|
|
105
|
-
return this._applicationService.copyApplication(
|
|
112
|
+
this.copyApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.CopyObjectPending), map((action) => action), withLatestFrom(this._store.select(objectFormSelectors.selectApiPrefix)), switchMap(([action, apiPrefix]) => {
|
|
113
|
+
return this._applicationService.copyApplication(action).pipe(map((result) => {
|
|
106
114
|
this._toasterService.show({
|
|
107
115
|
title: 'Копировнаие прошло успешно',
|
|
108
116
|
type: ToasterType.Positive
|
|
109
117
|
});
|
|
110
|
-
window.open(
|
|
118
|
+
window.open(`/${apiPrefix}` + result.id, '_blank');
|
|
111
119
|
return objectFormActions.copyObjectSuccess();
|
|
112
120
|
}), catchError(() => {
|
|
113
121
|
this._toasterService.show({
|
|
@@ -117,16 +125,16 @@ export class ObjectFormEffects {
|
|
|
117
125
|
return of(objectFormActions.copyObjectError());
|
|
118
126
|
}));
|
|
119
127
|
})), { dispatch: false });
|
|
120
|
-
this.loadSectionFilesPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadSectionFilesPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
121
|
-
return this._applicationService.getSectionFiles(
|
|
128
|
+
this.loadSectionFilesPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadSectionFilesPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([_, objectId, sectionSysName]) => {
|
|
129
|
+
return this._applicationService.getSectionFiles(objectId, sectionSysName).pipe(map((sectionFiles) => {
|
|
122
130
|
return objectFormActions.loadSectionFilesSuccess({ sectionFiles: sectionFiles });
|
|
123
131
|
}), catchError(() => {
|
|
124
132
|
return of(objectFormActions.loadSectionFilesError());
|
|
125
133
|
}));
|
|
126
134
|
})));
|
|
127
|
-
this.printDocument$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.PrintDocument), withLatestFrom(this._store.select(
|
|
135
|
+
this.printDocument$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.PrintDocument), withLatestFrom(this._store.select(objectFormSelectors.selectApiUrl), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME))), tap(([_, apiUrl, objectId]) => {
|
|
128
136
|
console.log('печать документа ' + objectId);
|
|
129
|
-
window.open(
|
|
137
|
+
window.open(`${apiUrl}/${objectId}/print`, '_blank');
|
|
130
138
|
})), { dispatch: false });
|
|
131
139
|
}
|
|
132
140
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectFormEffects, deps: [{ token: i1.Actions }, { token: i2.Store }, { token: i3.Router }, { token: i4.ObjectFormService }, { token: i5.ToasterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -135,4 +143,4 @@ export class ObjectFormEffects {
|
|
|
135
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectFormEffects, decorators: [{
|
|
136
144
|
type: Injectable
|
|
137
145
|
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Store }, { type: i3.Router }, { type: i4.ObjectFormService }, { type: i5.ToasterService }] });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9zdG9yZS9vYmplY3QtZm9ybS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JILE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd2RixPQUFPLEVBQUUsYUFBYSxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFHOUcsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUNVLFNBQWtCLEVBQ2xCLE1BQWEsRUFDYixPQUFlLEVBQ2YsbUJBQXNDLEVBQ3RDLGVBQStCO1FBSi9CLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW1CO1FBQ3RDLG9C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QUMsSUFBSSxDQUFDLGdCQUFnQixTQUFTLElBQUksUUFBUSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQ0gsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBck90QixDQUFDOytHQVZVLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycywgRUFwcGxpY2F0aW9uQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE9iamVjdFZhbHVlc0R0bywgVmFsdWVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEF1dG9TYXZlU3RvcmUsIFRvYXN0ZXJTZXJ2aWNlLCBUb2FzdGVyVHlwZSB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlLCBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBzaGFyZWRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9zdG9yZSc7XHJcbmltcG9ydCB7IEFQSV9QUkVGSVhfTkFNRSwgT0JKRUNUX0lEX05BTUUsIFNFQ1RJT05fU1lTX05BTUVfTkFNRSwgVEVNUExBVEVfU1lTX05BTUVfTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtRWZmZWN0cyB7XHJcbiAgcHJpdmF0ZSBfYXV0b1NhdmVTdG9yZSA9IGluamVjdChBdXRvU2F2ZVN0b3JlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9hY3Rpb25zJDogQWN0aW9ucyxcclxuICAgIHByaXZhdGUgX3N0b3JlOiBTdG9yZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfYXBwbGljYXRpb25TZXJ2aWNlOiBPYmplY3RGb3JtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbG9hZFRlbXBsYXRlUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkxvYWRUZW1wbGF0ZVBlbmRpbmcpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShBUElfUFJFRklYX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKE9CSkVDVF9JRF9OQU1FKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShURU1QTEFURV9TWVNfTkFNRV9OQU1FKSksXHJcbiAgICApLFxyXG4gICAgc3dpdGNoTWFwKChbXywgYXBpUHJlZml4LCBvYmplY3RJZCwgdGVtcGxhdGVTeXNOYW1lXSkgPT4ge1xyXG5cclxuICAgICAgaWYgKG9iamVjdElkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRUZW1wbGF0ZShhcGlQcmVmaXgsIG9iamVjdElkKS5waXBlKFxyXG4gICAgICAgICAgc3dpdGNoTWFwKCh7dGVtcGxhdGVTeXNOYW1lfSkgPT4gKFtcclxuICAgICAgICAgICAgb2JqZWN0Rm9ybUFjdGlvbnMubG9hZFRlbXBsYXRlU3VjY2Vzcyh7dGVtcGxhdGVTeXNOYW1lfSksXHJcbiAgICAgICAgICAgIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRPYmplY3RQZW5kaW5nKHt0ZW1wbGF0ZVN5c05hbWV9KVxyXG4gICAgICAgICAgXSkpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZihvYmplY3RGb3JtQWN0aW9ucy5sb2FkVGVtcGxhdGVFcnJvcigpKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFByZXZpZXdUZW1wbGF0ZVBlbmRpbmcoe3RlbXBsYXRlU3lzTmFtZX0pKTtcclxuICAgICAgfVxyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgbG9hZFByZXZpZXdUZW1wbGF0ZVBlbmRpbmcgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkxvYWRQcmV2aWV3VGVtcGxhdGVQZW5kaW5nKSxcclxuICAgIG1hcCgocHJvcHM6IHsgdGVtcGxhdGVTeXNOYW1lOiBzdHJpbmcgfSkgPT4gcHJvcHMudGVtcGxhdGVTeXNOYW1lKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oQVBJX1BSRUZJWF9OQU1FKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShTRUNUSU9OX1NZU19OQU1FX05BTUUpKSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFt0ZW1wbGF0ZVN5c05hbWUsIGFwaVByZWZpeCwgc2VjdGlvblN5c05hbWVdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2UuZ2V0VGVtcGxhdGVTZXR0aW5ncyh0ZW1wbGF0ZVN5c05hbWUpLnBpcGUoXHJcbiAgICAgICAgbWFwKCh0ZW1wbGF0ZVNldHRpbmdzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBhY3RpdmVTZWN0aW9uID0gdGVtcGxhdGVTZXR0aW5ncy5zZWN0aW9ucy5maW5kKFxyXG4gICAgICAgICAgICAoczogQ29tcG9uZW50TW9kZWxCYXNlKSA9PiBzLnN5c05hbWUgPT09IHNlY3Rpb25TeXNOYW1lXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGlmICghYWN0aXZlU2VjdGlvbiAmJiB0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW2AvZm9ybS8ke2FwaVByZWZpeH0vcHJldmlldy8ke3RlbXBsYXRlU3lzTmFtZX0vJHt0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zWzBdLnN5c05hbWV9YF0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiBvYmplY3RGb3JtQWN0aW9ucy5sb2FkUHJldmlld1RlbXBsYXRlU3VjY2Vzcyh7dGVtcGxhdGVTZXR0aW5ncywgdGVtcGxhdGVTeXNOYW1lfSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihvYmplY3RGb3JtQWN0aW9ucy5sb2FkUHJldmlld1RlbXBsYXRlRXJyb3IoKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKVxyXG4gICk7XHJcblxyXG4gIGxvYWRBcHBsaWNhdGlvblBlbmRpbmckID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5Mb2FkT2JqZWN0UGVuZGluZyksXHJcbiAgICBtYXAoKHByb3BzOiB7IHRlbXBsYXRlU3lzTmFtZTogc3RyaW5nIH0pID0+IHByb3BzLnRlbXBsYXRlU3lzTmFtZSksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKEFQSV9QUkVGSVhfTkFNRSkpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oT0JKRUNUX0lEX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKFNFQ1RJT05fU1lTX05BTUVfTkFNRSkpLFxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcCgoW3RlbXBsYXRlU3lzTmFtZSwgYXBpUHJlZml4LCBvYmplY3RJZCwgc2VjdGlvblN5c05hbWVdKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3RzOiBbT2JzZXJ2YWJsZTxUZW1wbGF0ZU1vZGVsPiwgT2JzZXJ2YWJsZTxPYmplY3RWYWx1ZXNEdG8+XSA9IFtcclxuICAgICAgICB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2UuZ2V0VGVtcGxhdGVTZXR0aW5ncyh0ZW1wbGF0ZVN5c05hbWUpLFxyXG4gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRTZWN0aW9uVmFsdWVzKGFwaVByZWZpeCwgb2JqZWN0SWQpXHJcbiAgICAgIF07XHJcblxyXG4gICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKChbdGVtcGxhdGVTZXR0aW5ncywgdmFsdWVEdG9dKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBhY3RpdmVTZWN0aW9uID0gdGVtcGxhdGVTZXR0aW5ncy5zZWN0aW9ucy5maW5kKFxyXG4gICAgICAgICAgICAoczogQ29tcG9uZW50TW9kZWxCYXNlKSA9PiBzLnN5c05hbWUgPT09IHNlY3Rpb25TeXNOYW1lXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGlmICghYWN0aXZlU2VjdGlvbiAmJiB0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW2AvZm9ybS8ke2FwaVByZWZpeH0vJHtvYmplY3RJZH0vJHt0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zWzBdLnN5c05hbWV9YF0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRPYmplY3RTdWNjZXNzKHtcclxuICAgICAgICAgICAgICB0ZW1wbGF0ZVNldHRpbmdzOiB0ZW1wbGF0ZVNldHRpbmdzLFxyXG4gICAgICAgICAgICAgIHNlY3Rpb25WYWx1ZXM6IHZhbHVlRHRvLnZhbHVlLnNlY3Rpb25WYWx1ZXMsXHJcbiAgICAgICAgICAgICAgYXBwbGljYXRpb25JZDogb2JqZWN0SWQsXHJcbiAgICAgICAgICAgICAgaXNEcmFmdDogdmFsdWVEdG8uaXNEcmFmdFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgb2JqZWN0Rm9ybUFjdGlvbnMuY2hlY2tBbGxEZXBlbmRlbmN5UnVsZXMoKVxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihvYmplY3RGb3JtQWN0aW9ucy5sb2FkT2JqZWN0RXJyb3IoKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKVxyXG4gICk7XHJcblxyXG4gIGNoZWNrQ2FuVXBkYXRlVmFsdWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuVXBkYXRlVmFsdWVzKSxcclxuICAgIG1hcCgocHJvcHM6IHsgdmFsdWU6IFZhbHVlTW9kZWwgfCBWYWx1ZU1vZGVsW10gfSkgPT4gcHJvcHMudmFsdWUpLFxyXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oVEVNUExBVEVfU1lTX05BTUVfTkFNRSkpLFxyXG4gICAgKSxcclxuICAgIHRhcCgoW18sIHRlbXBsYXRlU3lzTmFtZV0pID0+IHtcclxuICAgICAgaWYgKHRlbXBsYXRlU3lzTmFtZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMuYWNjZXNzVXBkYXRlVmFsdWVzKCkpO1xyXG4gICAgfSlcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIHNhdmVWYWx1ZXNEZWJvdW5jZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5BY2Nlc3NVcGRhdGVWYWx1ZXMpLFxyXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgIGRlYm91bmNlVGltZSgxNTAwKSxcclxuICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2F1dG9TYXZlU3RvcmUuc3RhcnQoKTtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZVZhbHVlc1BlbmRpbmcoKSk7XHJcbiAgICB9KVxyXG4gICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuXHJcbiAgdXBkYXRlQXBwbGljYXRpb25WYWx1ZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5TYXZlVmFsdWVzUGVuZGluZyksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKEFQSV9QUkVGSVhfTkFNRSkpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oT0JKRUNUX0lEX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0U2VjdGlvblZhbHVlcyksXHJcbiAgICApLFxyXG4gICAgc3dpdGNoTWFwKChbXywgYXBpUHJlZml4LCBvYmplY3RJZCwgc2VjdGlvblZhbHVlc10pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS51cGRhdGVBcHBsaWNhdGlvblZhbHVlcyhhcGlQcmVmaXgsIG9iamVjdElkLCBzZWN0aW9uVmFsdWVzKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLnN1Y2Nlc3MoKTtcclxuICAgICAgICAgIHJldHVybiBvYmplY3RGb3JtQWN0aW9ucy5zYXZlVmFsdWVzU3VjY2Vzcyh7cmVzdWx0LCBvYmplY3RJZH0pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLmVycm9yKCk7XHJcbiAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZVZhbHVlc0Vycm9yKCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSlcclxuICApO1xyXG5cclxuICBzYXZlQXBwbGljYXRpb25QZW5kaW5nJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuU2F2ZU9iamVjdFBlbmRpbmcpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShBUElfUFJFRklYX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKE9CSkVDVF9JRF9OQU1FKSlcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFtfLCBhcGlQcmVmaXgsIG9iamVjdElkXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYXBwbGljYXRpb25TZXJ2aWNlLnNhdmVBcHBsaWNhdGlvbihhcGlQcmVmaXgsIG9iamVjdElkKS5waXBlKFxyXG4gICAgICAgIG1hcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl90b2FzdGVyU2VydmljZS5zaG93KHtcclxuICAgICAgICAgICAgdGl0bGU6ICfQodC+0YXRgNCw0L3QtdC90L4g0YPRgdC/0LXRiNC90L4nLFxyXG4gICAgICAgICAgICB0eXBlOiBUb2FzdGVyVHlwZS5Qb3NpdGl2ZVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9iamVjdEZvcm1BY3Rpb25zLnNhdmVPYmplY3RTdWNjZXNzKCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl90b2FzdGVyU2VydmljZS5zaG93KHtcclxuICAgICAgICAgICAgdGl0bGU6ICfQktC+0LfQvdC40LrQu9C4INC+0YjQuNCx0LrQuCDQv9GA0Lgg0YHQvtGF0YDQsNC90LXQvdC40LgsINC/0L7QstGC0L7RgNC40YLQtScsXHJcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0ZXJUeXBlLk5lZ2F0aXZlXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZU9iamVjdEVycm9yKCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSlcclxuICApO1xyXG5cclxuICBjb3B5QXBwbGljYXRpb25QZW5kaW5nJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuQ29weU9iamVjdFBlbmRpbmcpLFxyXG4gICAgbWFwKChhY3Rpb246IHsgc291cmNlSWQ6IHN0cmluZywgdGFyZ2V0VGVtcGxhdGVTeXNOYW1lOiBzdHJpbmcgfSkgPT4gYWN0aW9uKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oQVBJX1BSRUZJWF9OQU1FKSlcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFthY3Rpb24sIGFwaVByZWZpeF0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5jb3B5QXBwbGljYXRpb24oYXBpUHJlZml4LCBhY3Rpb24pLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3RvYXN0ZXJTZXJ2aWNlLnNob3coe1xyXG4gICAgICAgICAgICB0aXRsZTogJ9Ca0L7Qv9C40YDQvtCy0L3QsNC40LUg0L/RgNC+0YjQu9C+INGD0YHQv9C10YjQvdC+JyxcclxuICAgICAgICAgICAgdHlwZTogVG9hc3RlclR5cGUuUG9zaXRpdmVcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHdpbmRvdy5vcGVuKGAvZm9ybS8ke2FwaVByZWZpeH0vYCArIHJlc3VsdC5pZCwgJ19ibGFuaycpO1xyXG5cclxuICAgICAgICAgIHJldHVybiBvYmplY3RGb3JtQWN0aW9ucy5jb3B5T2JqZWN0U3VjY2VzcygpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fdG9hc3RlclNlcnZpY2Uuc2hvdyh7XHJcbiAgICAgICAgICAgIHRpdGxlOiAn0JLQvtC30L3QuNC60LvQuCDQvtGI0LjQsdC60Lgg0L/RgNC4INC60L7Qv9C40YDQvtCy0LDQvdC40Lgg0LfQsNGP0LLQutC4LCDQv9C+0LLRgtC+0YDQuNGC0LUnLFxyXG4gICAgICAgICAgICB0eXBlOiBUb2FzdGVyVHlwZS5OZWdhdGl2ZVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLmNvcHlPYmplY3RFcnJvcigpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIGxvYWRTZWN0aW9uRmlsZXNQZW5kaW5nJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuTG9hZFNlY3Rpb25GaWxlc1BlbmRpbmcpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShBUElfUFJFRklYX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKE9CSkVDVF9JRF9OQU1FKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShTRUNUSU9OX1NZU19OQU1FX05BTUUpKSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFtfLCBhcGlQcmVmaXgsIG9iamVjdElkLCBzZWN0aW9uU3lzTmFtZV0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRTZWN0aW9uRmlsZXMoYXBpUHJlZml4LCBvYmplY3RJZCwgc2VjdGlvblN5c05hbWUpLnBpcGUoXHJcbiAgICAgICAgbWFwKChzZWN0aW9uRmlsZXM6IEZpbGVNb2RlbFtdKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Rm9ybUFjdGlvbnMubG9hZFNlY3Rpb25GaWxlc1N1Y2Nlc3Moe3NlY3Rpb25GaWxlczogc2VjdGlvbkZpbGVzfSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFNlY3Rpb25GaWxlc0Vycm9yKCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSlcclxuICApO1xyXG5cclxuICBwcmludERvY3VtZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuUHJpbnREb2N1bWVudCksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKEFQSV9QUkVGSVhfTkFNRSkpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oT0JKRUNUX0lEX05BTUUpKSxcclxuICAgICksXHJcbiAgICB0YXAoKFtfLCBhcGlQcmVmaXgsIG9iamVjdElkXSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygn0L/QtdGH0LDRgtGMINC00L7QutGD0LzQtdC90YLQsCAnICsgb2JqZWN0SWQpO1xyXG5cclxuICAgICAgd2luZG93Lm9wZW4oYC9mb3JtL2FwaS92Mi8ke2FwaVByZWZpeH0vJHtvYmplY3RJZH0vcHJpbnRgLCAnX2JsYW5rJyk7XHJcbiAgICB9KVxyXG4gICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxufVxyXG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9zdG9yZS9vYmplY3QtZm9ybS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JILE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd2RixPQUFPLEVBQUUsYUFBYSxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQUk3RixNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQ1UsU0FBa0IsRUFDbEIsTUFBYSxFQUNiLE9BQWUsRUFDZixtQkFBc0MsRUFDdEMsZUFBK0I7UUFKL0IsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBbUI7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBUGpDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBVy9DLGtCQUFhLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNwRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxDQUFDLEtBQTRDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsRUFDM0csb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDL0MsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FDSCxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFFdEIseUJBQW9CLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMzRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsRUFDL0MsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUNuRixFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBRTNDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLENBQUMsRUFBQyxlQUFlLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDaEMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQztvQkFDeEQsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQztpQkFDdkQsQ0FBQyxDQUFDLEVBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUVGLCtCQUEwQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDakUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLEVBQ3RELEdBQUcsQ0FBQyxDQUFDLEtBQWtDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFDbEUsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxFQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUNsRixFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ3pELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEQsQ0FBQyxDQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FDeEQsQ0FBQztnQkFFRixJQUFJLENBQUMsYUFBYSxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7d0JBQ3BCLElBQUksU0FBUyxZQUFZLGVBQWUsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO3FCQUNuRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxPQUFPLGlCQUFpQixDQUFDLDBCQUEwQixDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQztZQUMzRixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbkIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRiw0QkFBdUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzlELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUM3QyxHQUFHLENBQUMsQ0FBQyxLQUFrQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQ2xFLGNBQWMsQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsRUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQ2xGLEVBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ25FLE1BQU0sUUFBUSxHQUE2RDtnQkFDekUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQzthQUNwRCxDQUFDO1lBRUYsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2xELENBQUMsQ0FBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQ3hELENBQUM7Z0JBRUYsSUFBSSxDQUFDLGFBQWEsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxTQUFTLElBQUksUUFBUSxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQy9GLENBQUM7Z0JBRUQsT0FBTztvQkFDTCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDbEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO3dCQUNsQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhO3dCQUMzQyxhQUFhLEVBQUUsUUFBUTt3QkFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO3FCQUMxQixDQUFDO29CQUNGLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFO2lCQUM1QyxDQUFDO1lBQ0osQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRiwwQkFBcUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFDeEMsR0FBRyxDQUFDLENBQUMsS0FBMkMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUNqRSxvQkFBb0IsRUFBRSxFQUN0QixjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FDbkYsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQzNCLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUNILEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzNELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUM5QyxvQkFBb0IsRUFBRSxFQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLEVBQ2xCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FDSCxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFFdEIsNkJBQXdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMvRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsRUFDN0MsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUM1RCxFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ25GLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8saUJBQWlCLENBQUMsaUJBQWlCLENBQUMsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztZQUNqRSxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FDSixDQUFDO1FBRUYsNEJBQXVCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM5RCxNQUFNLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsRUFDN0MsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUMzRSxFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDNUQsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDeEIsS0FBSyxFQUFFLG1CQUFtQjtvQkFDMUIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRO2lCQUMzQixDQUFDLENBQUM7Z0JBRUgsT0FBTyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9DLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ3hCLEtBQUssRUFBRSwyQ0FBMkM7b0JBQ2xELElBQUksRUFBRSxXQUFXLENBQUMsUUFBUTtpQkFDM0IsQ0FBQyxDQUFDO2dCQUVILE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUVGLDRCQUF1QixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDOUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEVBQzdDLEdBQUcsQ0FBQyxDQUFDLE1BQTJELEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUM1RSxjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQ3hELEVBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxRCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDYixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDeEIsS0FBSyxFQUFFLDRCQUE0QjtvQkFDbkMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRO2lCQUMzQixDQUFDLENBQUM7Z0JBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBRW5ELE9BQU8saUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO29CQUN4QixLQUFLLEVBQUUsbURBQW1EO29CQUMxRCxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVE7aUJBQzNCLENBQUMsQ0FBQztnQkFFSCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFFMUIsNkJBQXdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMvRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsRUFDbkQsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUNsRixFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQzFDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUM1RSxHQUFHLENBQUMsQ0FBQyxZQUF5QixFQUFFLEVBQUU7Z0JBQ2hDLE9BQU8saUJBQWlCLENBQUMsdUJBQXVCLENBQUMsRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQztZQUNqRixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FDSixDQUFDO1FBRUYsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3JELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFDekMsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FDM0UsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBRTVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLElBQUksUUFBUSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQ0gsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBaFB0QixDQUFDOytHQVZVLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycywgRUFwcGxpY2F0aW9uQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE9iamVjdFZhbHVlc0R0bywgVmFsdWVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEF1dG9TYXZlU3RvcmUsIFRvYXN0ZXJTZXJ2aWNlLCBUb2FzdGVyVHlwZSB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlLCBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBzaGFyZWRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9zdG9yZSc7XHJcbmltcG9ydCB7IE9CSkVDVF9JRF9OQU1FLCBTRUNUSU9OX1NZU19OQU1FX05BTUUsIFRFTVBMQVRFX1NZU19OQU1FX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBzZWxlY3RBcGlQcmVmaXgsIHNlbGVjdEFwaVVybCB9IGZyb20gJy4vb2JqZWN0LWZvcm0uc2VsZWN0b3InO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUVmZmVjdHMge1xyXG4gIHByaXZhdGUgX2F1dG9TYXZlU3RvcmUgPSBpbmplY3QoQXV0b1NhdmVTdG9yZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgX2FwcGxpY2F0aW9uU2VydmljZTogT2JqZWN0Rm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwaVVybCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlVwZGF0ZUFwaVVybCksXHJcbiAgICBtYXAoKHByb3BzOiB7IGFwaVByZWZpeDogc3RyaW5nLCBhcGlVcmw6IHN0cmluZyB9KSA9PiAoe2FwaVByZWZpeDogcHJvcHMuYXBpUHJlZml4LCBhcGlVcmw6IHByb3BzLmFwaVVybH0pKSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICB0YXAoKHthcGlQcmVmaXgsIGFwaVVybH0pID0+IHtcclxuICAgICAgaWYgKGFwaVVybCkge1xyXG4gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS51cGRhdGVBcGlVcmwoYXBpVXJsKVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChvYmplY3RGb3JtQWN0aW9ucy5sb2FkVGVtcGxhdGVQZW5kaW5nKCkpO1xyXG4gICAgfSlcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIGxvYWRUZW1wbGF0ZVBlbmRpbmckID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5Mb2FkVGVtcGxhdGVQZW5kaW5nKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oT0JKRUNUX0lEX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKFRFTVBMQVRFX1NZU19OQU1FX05BTUUpKSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFtfLCBvYmplY3RJZCwgdGVtcGxhdGVTeXNOYW1lXSkgPT4ge1xyXG5cclxuICAgICAgaWYgKG9iamVjdElkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRUZW1wbGF0ZShvYmplY3RJZCkucGlwZShcclxuICAgICAgICAgIHN3aXRjaE1hcCgoe3RlbXBsYXRlU3lzTmFtZX0pID0+IChbXHJcbiAgICAgICAgICAgIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRUZW1wbGF0ZVN1Y2Nlc3Moe3RlbXBsYXRlU3lzTmFtZX0pLFxyXG4gICAgICAgICAgICBvYmplY3RGb3JtQWN0aW9ucy5sb2FkT2JqZWN0UGVuZGluZyh7dGVtcGxhdGVTeXNOYW1lfSlcclxuICAgICAgICAgIF0pKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFRlbXBsYXRlRXJyb3IoKSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRQcmV2aWV3VGVtcGxhdGVQZW5kaW5nKHt0ZW1wbGF0ZVN5c05hbWV9KSk7XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICk7XHJcblxyXG4gIGxvYWRQcmV2aWV3VGVtcGxhdGVQZW5kaW5nID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5Mb2FkUHJldmlld1RlbXBsYXRlUGVuZGluZyksXHJcbiAgICBtYXAoKHByb3BzOiB7IHRlbXBsYXRlU3lzTmFtZTogc3RyaW5nIH0pID0+IHByb3BzLnRlbXBsYXRlU3lzTmFtZSksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0QXBpUHJlZml4KSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKFNFQ1RJT05fU1lTX05BTUVfTkFNRSkpLFxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcCgoW3RlbXBsYXRlU3lzTmFtZSwgYXBpUHJlZml4LCBzZWN0aW9uU3lzTmFtZV0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRUZW1wbGF0ZVNldHRpbmdzKHRlbXBsYXRlU3lzTmFtZSkucGlwZShcclxuICAgICAgICBtYXAoKHRlbXBsYXRlU2V0dGluZ3MpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGFjdGl2ZVNlY3Rpb24gPSB0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zLmZpbmQoXHJcbiAgICAgICAgICAgIChzOiBDb21wb25lbnRNb2RlbEJhc2UpID0+IHMuc3lzTmFtZSA9PT0gc2VjdGlvblN5c05hbWVcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgaWYgKCFhY3RpdmVTZWN0aW9uICYmIHRlbXBsYXRlU2V0dGluZ3Muc2VjdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXHJcbiAgICAgICAgICAgICAgYC8ke2FwaVByZWZpeH0vcHJldmlldy8ke3RlbXBsYXRlU3lzTmFtZX0vJHt0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zWzBdLnN5c05hbWV9YFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Rm9ybUFjdGlvbnMubG9hZFByZXZpZXdUZW1wbGF0ZVN1Y2Nlc3Moe3RlbXBsYXRlU2V0dGluZ3MsIHRlbXBsYXRlU3lzTmFtZX0pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFByZXZpZXdUZW1wbGF0ZUVycm9yKCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSlcclxuICApO1xyXG5cclxuICBsb2FkQXBwbGljYXRpb25QZW5kaW5nJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuTG9hZE9iamVjdFBlbmRpbmcpLFxyXG4gICAgbWFwKChwcm9wczogeyB0ZW1wbGF0ZVN5c05hbWU6IHN0cmluZyB9KSA9PiBwcm9wcy50ZW1wbGF0ZVN5c05hbWUpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdEFwaVByZWZpeCksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShPQkpFQ1RfSURfTkFNRSkpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oU0VDVElPTl9TWVNfTkFNRV9OQU1FKSksXHJcbiAgICApLFxyXG4gICAgc3dpdGNoTWFwKChbdGVtcGxhdGVTeXNOYW1lLCBhcGlQcmVmaXgsIG9iamVjdElkLCBzZWN0aW9uU3lzTmFtZV0pID0+IHtcclxuICAgICAgY29uc3QgcmVxdWVzdHM6IFtPYnNlcnZhYmxlPFRlbXBsYXRlTW9kZWw+LCBPYnNlcnZhYmxlPE9iamVjdFZhbHVlc0R0bz5dID0gW1xyXG4gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRUZW1wbGF0ZVNldHRpbmdzKHRlbXBsYXRlU3lzTmFtZSksXHJcbiAgICAgICAgdGhpcy5fYXBwbGljYXRpb25TZXJ2aWNlLmdldFNlY3Rpb25WYWx1ZXMob2JqZWN0SWQpXHJcbiAgICAgIF07XHJcblxyXG4gICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKChbdGVtcGxhdGVTZXR0aW5ncywgdmFsdWVEdG9dKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBhY3RpdmVTZWN0aW9uID0gdGVtcGxhdGVTZXR0aW5ncy5zZWN0aW9ucy5maW5kKFxyXG4gICAgICAgICAgICAoczogQ29tcG9uZW50TW9kZWxCYXNlKSA9PiBzLnN5c05hbWUgPT09IHNlY3Rpb25TeXNOYW1lXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGlmICghYWN0aXZlU2VjdGlvbiAmJiB0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW2AvJHthcGlQcmVmaXh9LyR7b2JqZWN0SWR9LyR7dGVtcGxhdGVTZXR0aW5ncy5zZWN0aW9uc1swXS5zeXNOYW1lfWBdKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBvYmplY3RGb3JtQWN0aW9ucy5sb2FkT2JqZWN0U3VjY2Vzcyh7XHJcbiAgICAgICAgICAgICAgdGVtcGxhdGVTZXR0aW5nczogdGVtcGxhdGVTZXR0aW5ncyxcclxuICAgICAgICAgICAgICBzZWN0aW9uVmFsdWVzOiB2YWx1ZUR0by52YWx1ZS5zZWN0aW9uVmFsdWVzLFxyXG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uSWQ6IG9iamVjdElkLFxyXG4gICAgICAgICAgICAgIGlzRHJhZnQ6IHZhbHVlRHRvLmlzRHJhZnRcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9iamVjdEZvcm1BY3Rpb25zLmNoZWNrQWxsRGVwZW5kZW5jeVJ1bGVzKClcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMubG9hZE9iamVjdEVycm9yKCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSlcclxuICApO1xyXG5cclxuICBjaGVja0NhblVwZGF0ZVZhbHVlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlVwZGF0ZVZhbHVlcyksXHJcbiAgICBtYXAoKHByb3BzOiB7IHZhbHVlOiBWYWx1ZU1vZGVsIHwgVmFsdWVNb2RlbFtdIH0pID0+IHByb3BzLnZhbHVlKSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKFRFTVBMQVRFX1NZU19OQU1FX05BTUUpKSxcclxuICAgICksXHJcbiAgICB0YXAoKFtfLCB0ZW1wbGF0ZVN5c05hbWVdKSA9PiB7XHJcbiAgICAgIGlmICh0ZW1wbGF0ZVN5c05hbWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLmFjY2Vzc1VwZGF0ZVZhbHVlcygpKTtcclxuICAgIH0pXHJcbiAgKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBzYXZlVmFsdWVzRGVib3VuY2VkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuQWNjZXNzVXBkYXRlVmFsdWVzKSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICBkZWJvdW5jZVRpbWUoMTUwMCksXHJcbiAgICB0YXAoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLnN0YXJ0KCk7XHJcbiAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLnNhdmVWYWx1ZXNQZW5kaW5nKCkpO1xyXG4gICAgfSlcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIHVwZGF0ZUFwcGxpY2F0aW9uVmFsdWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuU2F2ZVZhbHVlc1BlbmRpbmcpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShPQkpFQ1RfSURfTkFNRSkpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RTZWN0aW9uVmFsdWVzKSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFtfLCBvYmplY3RJZCwgc2VjdGlvblZhbHVlc10pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS51cGRhdGVBcHBsaWNhdGlvblZhbHVlcyhvYmplY3RJZCwgc2VjdGlvblZhbHVlcykucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5zdWNjZXNzKCk7XHJcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZVZhbHVlc1N1Y2Nlc3Moe3Jlc3VsdCwgb2JqZWN0SWR9KTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5lcnJvcigpO1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLnNhdmVWYWx1ZXNFcnJvcigpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgc2F2ZUFwcGxpY2F0aW9uUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlNhdmVPYmplY3RQZW5kaW5nKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oT0JKRUNUX0lEX05BTUUpKVxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcCgoW18sIG9iamVjdElkXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYXBwbGljYXRpb25TZXJ2aWNlLnNhdmVBcHBsaWNhdGlvbihvYmplY3RJZCkucGlwZShcclxuICAgICAgICBtYXAoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fdG9hc3RlclNlcnZpY2Uuc2hvdyh7XHJcbiAgICAgICAgICAgIHRpdGxlOiAn0KHQvtGF0YDQsNC90LXQvdC+INGD0YHQv9C10YjQvdC+JyxcclxuICAgICAgICAgICAgdHlwZTogVG9hc3RlclR5cGUuUG9zaXRpdmVcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHJldHVybiBvYmplY3RGb3JtQWN0aW9ucy5zYXZlT2JqZWN0U3VjY2VzcygpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fdG9hc3RlclNlcnZpY2Uuc2hvdyh7XHJcbiAgICAgICAgICAgIHRpdGxlOiAn0JLQvtC30L3QuNC60LvQuCDQvtGI0LjQsdC60Lgg0L/RgNC4INGB0L7RhdGA0LDQvdC10L3QuNC4LCDQv9C+0LLRgtC+0YDQuNGC0LUnLFxyXG4gICAgICAgICAgICB0eXBlOiBUb2FzdGVyVHlwZS5OZWdhdGl2ZVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLnNhdmVPYmplY3RFcnJvcigpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgY29weUFwcGxpY2F0aW9uUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkNvcHlPYmplY3RQZW5kaW5nKSxcclxuICAgIG1hcCgoYWN0aW9uOiB7IHNvdXJjZUlkOiBzdHJpbmcsIHRhcmdldFRlbXBsYXRlU3lzTmFtZTogc3RyaW5nIH0pID0+IGFjdGlvbiksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0QXBpUHJlZml4KSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFthY3Rpb24sIGFwaVByZWZpeF0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5jb3B5QXBwbGljYXRpb24oYWN0aW9uKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl90b2FzdGVyU2VydmljZS5zaG93KHtcclxuICAgICAgICAgICAgdGl0bGU6ICfQmtC+0L/QuNGA0L7QstC90LDQuNC1INC/0YDQvtGI0LvQviDRg9GB0L/QtdGI0L3QvicsXHJcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0ZXJUeXBlLlBvc2l0aXZlXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB3aW5kb3cub3BlbihgLyR7YXBpUHJlZml4fWAgKyByZXN1bHQuaWQsICdfYmxhbmsnKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Rm9ybUFjdGlvbnMuY29weU9iamVjdFN1Y2Nlc3MoKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3RvYXN0ZXJTZXJ2aWNlLnNob3coe1xyXG4gICAgICAgICAgICB0aXRsZTogJ9CS0L7Qt9C90LjQutC70Lgg0L7RiNC40LHQutC4INC/0YDQuCDQutC+0L/QuNGA0L7QstCw0L3QuNC4INC30LDRj9Cy0LrQuCwg0L/QvtCy0YLQvtGA0LjRgtC1JyxcclxuICAgICAgICAgICAgdHlwZTogVG9hc3RlclR5cGUuTmVnYXRpdmVcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHJldHVybiBvZihvYmplY3RGb3JtQWN0aW9ucy5jb3B5T2JqZWN0RXJyb3IoKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBsb2FkU2VjdGlvbkZpbGVzUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkxvYWRTZWN0aW9uRmlsZXNQZW5kaW5nKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oT0JKRUNUX0lEX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKFNFQ1RJT05fU1lTX05BTUVfTkFNRSkpLFxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcCgoW18sIG9iamVjdElkLCBzZWN0aW9uU3lzTmFtZV0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRTZWN0aW9uRmlsZXMob2JqZWN0SWQsIHNlY3Rpb25TeXNOYW1lKS5waXBlKFxyXG4gICAgICAgIG1hcCgoc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRTZWN0aW9uRmlsZXNTdWNjZXNzKHtzZWN0aW9uRmlsZXM6IHNlY3Rpb25GaWxlc30pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRTZWN0aW9uRmlsZXNFcnJvcigpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgcHJpbnREb2N1bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlByaW50RG9jdW1lbnQpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdEFwaVVybCksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShPQkpFQ1RfSURfTkFNRSkpLFxyXG4gICAgKSxcclxuICAgIHRhcCgoW18sIGFwaVVybCwgb2JqZWN0SWRdKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCfQv9C10YfQsNGC0Ywg0LTQvtC60YPQvNC10L3RgtCwICcgKyBvYmplY3RJZCk7XHJcblxyXG4gICAgICB3aW5kb3cub3BlbihgJHthcGlVcmx9LyR7b2JqZWN0SWR9L3ByaW50YCwgJ19ibGFuaycpO1xyXG4gICAgfSlcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcbn1cclxuIl19
|
|
@@ -2,7 +2,9 @@ import { createReducer, on } from '@ngrx/store';
|
|
|
2
2
|
import { objectFormActions } from '../store';
|
|
3
3
|
import { initialObjectFormState } from './object-form.state';
|
|
4
4
|
import * as fromHelpers from '../helpers';
|
|
5
|
-
const objectReducerCreator = createReducer(initialObjectFormState, on(objectFormActions.
|
|
5
|
+
const objectReducerCreator = createReducer(initialObjectFormState, on(objectFormActions.updateApiUrl, (state, { apiPrefix, apiUrl }) => {
|
|
6
|
+
return { ...state, apiPrefix, apiUrl };
|
|
7
|
+
}), on(objectFormActions.loadObjectPending, (state) => {
|
|
6
8
|
return { ...state, isLoading: true };
|
|
7
9
|
}), on(objectFormActions.loadObjectSuccess, (state, { templateSettings, sectionValues, applicationId, isDraft }) => {
|
|
8
10
|
return {
|
|
@@ -11,7 +13,7 @@ const objectReducerCreator = createReducer(initialObjectFormState, on(objectForm
|
|
|
11
13
|
settings: templateSettings,
|
|
12
14
|
sectionValues: sectionValues,
|
|
13
15
|
isEdited: isDraft,
|
|
14
|
-
menuModel: fromHelpers.getMenuModel(templateSettings, sectionValues, applicationId)
|
|
16
|
+
menuModel: fromHelpers.getMenuModel(state.apiPrefix, templateSettings, sectionValues, applicationId)
|
|
15
17
|
};
|
|
16
18
|
}), on(objectFormActions.loadObjectError, (state) => {
|
|
17
19
|
return { ...state, isLoading: false };
|
|
@@ -22,6 +24,7 @@ const objectReducerCreator = createReducer(initialObjectFormState, on(objectForm
|
|
|
22
24
|
// т.к. зависимые поля могут находиться в других секциях, а их необходимо обнулять.
|
|
23
25
|
return fromHelpers.getUpdatedValues(sectionValue, Array.isArray(value) ? value : [value], fromHelpers.getValuesToClean(dependenceRulesResults));
|
|
24
26
|
});
|
|
27
|
+
console.log(selectedSectionValues);
|
|
25
28
|
return {
|
|
26
29
|
...state,
|
|
27
30
|
sectionValues: selectedSectionValues,
|
|
@@ -40,7 +43,7 @@ const objectReducerCreator = createReducer(initialObjectFormState, on(objectForm
|
|
|
40
43
|
...state,
|
|
41
44
|
sectionValues: updatedSectionValues,
|
|
42
45
|
isEdited: true,
|
|
43
|
-
menuModel: fromHelpers.getMenuModel(state.settings, updatedSectionValues, objectId)
|
|
46
|
+
menuModel: fromHelpers.getMenuModel(state.apiPrefix, state.settings, updatedSectionValues, objectId)
|
|
44
47
|
};
|
|
45
48
|
}), on(objectFormActions.saveValuesError, (state) => {
|
|
46
49
|
return { ...state };
|
|
@@ -67,7 +70,7 @@ const objectReducerCreator = createReducer(initialObjectFormState, on(objectForm
|
|
|
67
70
|
...state,
|
|
68
71
|
isLoading: false,
|
|
69
72
|
settings: templateSettings,
|
|
70
|
-
menuModel: fromHelpers.getPreviewMenuModel(templateSettings, templateSysName)
|
|
73
|
+
menuModel: fromHelpers.getPreviewMenuModel(state.apiPrefix, templateSettings, templateSysName)
|
|
71
74
|
};
|
|
72
75
|
}), on(objectFormActions.loadPreviewTemplateError, (state) => {
|
|
73
76
|
return { ...state, isLoading: false };
|
|
@@ -80,4 +83,4 @@ const objectReducerCreator = createReducer(initialObjectFormState, on(objectForm
|
|
|
80
83
|
export function objectReducer(state, action) {
|
|
81
84
|
return objectReducerCreator(state, action);
|
|
82
85
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0ucmVkdWNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0ucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUM1RCxPQUFPLEtBQUssV0FBVyxNQUFNLFlBQVksQ0FBQztBQUcxQyxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FDeEMsc0JBQXNCLEVBQ3RCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2hELE9BQU8sRUFBQyxHQUFHLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUNBLGlCQUFpQixDQUFDLGlCQUFpQixFQUNuQyxDQUFDLEtBQUssRUFBRSxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFDLEVBQUUsRUFBRTtJQUNuRSxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsU0FBUyxFQUFFLEtBQUs7UUFDaEIsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQixhQUFhLEVBQUUsYUFBYTtRQUM1QixRQUFRLEVBQUUsT0FBTztRQUNqQixTQUFTLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO0tBQ3BGLENBQUM7QUFDSixDQUFDLENBQ0YsRUFDRCxFQUFFLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFF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L3N0b3JlJztcclxuaW1wb3J0IHsgT2JqZWN0Rm9ybVN0YXRlLCBvYmplY3RGb3JtQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgaW5pdGlhbE9iamVjdEZvcm1TdGF0ZSB9IGZyb20gJy4vb2JqZWN0LWZvcm0uc3RhdGUnXHJcbmltcG9ydCAqIGFzIGZyb21IZWxwZXJzIGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBGaWVsZERlcGVuZGVuY2VNb2RlbCwgU2VjdGlvblZhbHVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuY29uc3Qgb2JqZWN0UmVkdWNlckNyZWF0b3IgPSBjcmVhdGVSZWR1Y2VyKFxyXG4gIGluaXRpYWxPYmplY3RGb3JtU3RhdGUsXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMubG9hZE9iamVjdFBlbmRpbmcsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiB0cnVlfTtcclxuICB9KSxcclxuICBvbihcclxuICAgIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRPYmplY3RTdWNjZXNzLFxyXG4gICAgKHN0YXRlLCB7dGVtcGxhdGVTZXR0aW5ncywgc2VjdGlvblZhbHVlcywgYXBwbGljYXRpb25JZCwgaXNEcmFmdH0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIHNldHRpbmdzOiB0ZW1wbGF0ZVNldHRpbmdzLFxyXG4gICAgICAgIHNlY3Rpb25WYWx1ZXM6IHNlY3Rpb25WYWx1ZXMsXHJcbiAgICAgICAgaXNFZGl0ZWQ6IGlzRHJhZnQsXHJcbiAgICAgICAgbWVudU1vZGVsOiBmcm9tSGVscGVycy5nZXRNZW51TW9kZWwodGVtcGxhdGVTZXR0aW5ncywgc2VjdGlvblZhbHVlcywgYXBwbGljYXRpb25JZClcclxuICAgICAgfTtcclxuICAgIH1cclxuICApLFxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRPYmplY3RFcnJvciwgKHN0YXRlKSA9PiB7XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCBpc0xvYWRpbmc6IGZhbHNlfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy51cGRhdGVWYWx1ZXMsIChzdGF0ZSwge3ZhbHVlfSkgPT4ge1xyXG5cclxuICAgIGNvbnN0IGRlcGVuZGVuY2VSdWxlc1Jlc3VsdHMgPSBmcm9tSGVscGVycy5nZXREZXBlbmRlbmNlUnVsZXNSZXN1bHRzKFxyXG4gICAgICBzdGF0ZS5kZXBlbmRlbmN5UnVsZUNoZWNrUmVzdWx0cyxcclxuICAgICAgc3RhdGUuc2VjdGlvblZhbHVlcyxcclxuICAgICAgdmFsdWUsXHJcbiAgICAgIHN0YXRlLnNldHRpbmdzPy5kZXBlbmRlbmNlUnVsZXMucnVsZXNcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRTZWN0aW9uVmFsdWVzID0gc3RhdGUuc2VjdGlvblZhbHVlcy5tYXAoKHNlY3Rpb25WYWx1ZTogU2VjdGlvblZhbHVlTW9kZWwpID0+IHtcclxuICAgICAgLy8g0L/RgNC40YjQu9C+0YHRjCDQvtGC0LrQsNC30LDRgtGM0YHRjyDQvtGCINGD0YHQu9C+0LLQuNGPINC/0YDQvtCy0LXRgNC60Lgg0LLRi9Cx0YDQsNC90L3QvtC5INGB0LXQutGG0LjQuCxcclxuICAgICAgLy8g0YIu0LouINC30LDQstC40YHQuNC80YvQtSDQv9C+0LvRjyDQvNC+0LPRg9GCINC90LDRhdC+0LTQuNGC0YzRgdGPINCyINC00YDRg9Cz0LjRhSDRgdC10LrRhtC40Y/RhSwg0LAg0LjRhSDQvdC10L7QsdGF0L7QtNC40LzQviDQvtCx0L3Rg9C70Y/RgtGMLlxyXG4gICAgICByZXR1cm4gZnJvbUhlbHBlcnMuZ2V0VXBkYXRlZFZhbHVlcyhcclxuICAgICAgICBzZWN0aW9uVmFsdWUsXHJcbiAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sXHJcbiAgICAgICAgZnJvbUhlbHBlcnMuZ2V0VmFsdWVzVG9DbGVhbihkZXBlbmRlbmNlUnVsZXNSZXN1bHRzKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIHNlY3Rpb25WYWx1ZXM6IHNlbGVjdGVkU2VjdGlvblZhbHVlcyxcclxuICAgICAgaXNFZGl0ZWQ6IHRydWUsXHJcbiAgICAgIGRlcGVuZGVuY3lSdWxlQ2hlY2tSZXN1bHRzOiBkZXBlbmRlbmNlUnVsZXNSZXN1bHRzXHJcbiAgICB9O1xyXG4gIH0pLFxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLnNhdmVWYWx1ZXNTdWNjZXNzLCAoc3RhdGUsIHtyZXN1bHQsIG9iamVjdElkfSkgPT4ge1xyXG4gICAgY29uc3QgdXBkYXRlZFNlY3Rpb25WYWx1ZXMgPSBzdGF0ZS5zZWN0aW9uVmFsdWVzLm1hcCgoc2VjdGlvblZhbHVlOiBTZWN0aW9uVmFsdWVNb2RlbCkgPT4ge1xyXG4gICAgICBjb25zdCBzZWN0aW9uID0ge1xyXG4gICAgICAgIC4uLnNlY3Rpb25WYWx1ZSxcclxuICAgICAgICBwZXJjZW50OiByZXN1bHQuZmlsbG5lc3MuZmluZCh4ID0+IHgubmFtZSA9PT0gc2VjdGlvblZhbHVlLnN5c05hbWUpPy5wZXJjZW50IHx8IDBcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIGZyb21IZWxwZXJzLmdldFVwZGF0ZWRWYWx1ZXMoc2VjdGlvbiwgcmVzdWx0LnZhbHVlcyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgc2VjdGlvblZhbHVlczogdXBkYXRlZFNlY3Rpb25WYWx1ZXMsXHJcbiAgICAgIGlzRWRpdGVkOiB0cnVlLFxyXG4gICAgICBtZW51TW9kZWw6IGZyb21IZWxwZXJzLmdldE1lbnVNb2RlbChzdGF0ZS5zZXR0aW5ncywgdXBkYXRlZFNlY3Rpb25WYWx1ZXMsIG9iamVjdElkKVxyXG4gICAgfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy5zYXZlVmFsdWVzRXJyb3IsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZX07XHJcbiAgfSksXHJcblxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLnNhdmVPYmplY3RQZW5kaW5nLCAoc3RhdGUpID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGlzQXBwbGljYXRpb25TYXZlTG9hZGluZzogdHJ1ZX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZU9iamVjdFN1Y2Nlc3MsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNBcHBsaWNhdGlvblNhdmVMb2FkaW5nOiBmYWxzZSwgaXNFZGl0ZWQ6IGZhbHNlfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy5zYXZlT2JqZWN0RXJyb3IsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNBcHBsaWNhdGlvblNhdmVMb2FkaW5nOiBmYWxzZX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlU2VsZWN0ZWRTZWN0aW9uU3lzTmFtZSwgKHN0YXRlLCB7c2VjdGlvblN5c05hbWV9KSA9PiB7XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCBzZWxlY3RlZFNlY3Rpb25TeXNOYW1lOiBzZWN0aW9uU3lzTmFtZX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFNlY3Rpb25GaWxlc1BlbmRpbmcsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgc2VjdGlvbkZpbGVzOiBbXX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFNlY3Rpb25GaWxlc1N1Y2Nlc3MsIChzdGF0ZSwge3NlY3Rpb25GaWxlc30pID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIHNlY3Rpb25GaWxlczogc2VjdGlvbkZpbGVzfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy50b2dnbGVDaGVja1JlcXVpcmVkLCAoc3RhdGUpID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGlzQ2hlY2tSZXF1aXJlZDogIXN0YXRlLmlzQ2hlY2tSZXF1aXJlZH07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlQ2hlY2tSZXF1aXJlZCwgKHN0YXRlLCB7aXNDaGVja1JlcXVpcmVkfSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNDaGVja1JlcXVpcmVkOiBpc0NoZWNrUmVxdWlyZWR9O1xyXG4gIH0pLFxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRQcmV2aWV3VGVtcGxhdGVQZW5kaW5nLCAoc3RhdGUpID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGlzTG9hZGluZzogdHJ1ZX07XHJcbiAgfSksXHJcbiAgb24oXHJcbiAgICBvYmplY3RGb3JtQWN0aW9ucy5sb2FkUHJldmlld1RlbXBsYXRlU3VjY2VzcyxcclxuICAgIChzdGF0ZSwge3RlbXBsYXRlU2V0dGluZ3MsIHRlbXBsYXRlU3lzTmFtZX0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIHNldHRpbmdzOiB0ZW1wbGF0ZVNldHRpbmdzLFxyXG4gICAgICAgIG1lbnVNb2RlbDogZnJvbUhlbHBlcnMuZ2V0UHJldmlld01lbnVNb2RlbCh0ZW1wbGF0ZVNldHRpbmdzLCB0ZW1wbGF0ZVN5c05hbWUpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgKSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy5sb2FkUHJldmlld1RlbXBsYXRlRXJyb3IsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiBmYWxzZX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMuY2hlY2tBbGxEZXBlbmRlbmN5UnVsZXMsIChzdGF0ZSkgPT4ge1xyXG5cclxuICAgIGNvbnN0IGRlcGVuZGVuY2VSZXN1bHRzID0gc3RhdGUuc2V0dGluZ3M/LmRlcGVuZGVuY2VSdWxlcy5ydWxlc1xyXG4gICAgICAubWFwKChydWxlOiBGaWVsZERlcGVuZGVuY2VNb2RlbCkgPT4gKGZyb21IZWxwZXJzLmNoZWNrRGVwZW5kZW5jZVJ1bGUocnVsZSwgc3RhdGUuc2VjdGlvblZhbHVlcykpKVxyXG4gICAgICAuZmxhdCgpIHx8IFtdO1xyXG5cclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGRlcGVuZGVuY3lSdWxlQ2hlY2tSZXN1bHRzOiBkZXBlbmRlbmNlUmVzdWx0c307XHJcbiAgfSlcclxuKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RSZWR1Y2VyKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUgfCB1bmRlZmluZWQsIGFjdGlvbjogQWN0aW9uKSB7XHJcbiAgcmV0dXJuIG9iamVjdFJlZHVjZXJDcmVhdG9yKHN0YXRlLCBhY3Rpb24pO1xyXG59XHJcbiJdfQ==
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0ucmVkdWNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0ucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUM1RCxPQUFPLEtBQUssV0FBVyxNQUFNLFlBQVksQ0FBQztBQUcxQyxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FDeEMsc0JBQXNCLEVBQ3RCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLEVBQUUsRUFBRTtJQUNoRSxPQUFPLEVBQUMsR0FBRyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2hELE9BQU8sRUFBQyxHQUFHLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUNBLGlCQUFpQixDQUFDLGlCQUFpQixFQUNuQyxDQUFDLEtBQUssRUFBRSxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFDLEVBQUUsRUFBRTtJQUNuRSxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsU0FBUyxFQUFFLEtBQUs7UUFDaEIsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQixhQUFhLEVB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QUUsQ0FBQztJQUVoQixPQUFPLEVBQUMsR0FBRyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBRUYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFrQyxFQUFFLE1BQWM7SUFDOUUsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TdGF0ZSwgb2JqZWN0Rm9ybUFjdGlvbnMgfSBmcm9tICcuLi9zdG9yZSc7XHJcbmltcG9ydCB7IGluaXRpYWxPYmplY3RGb3JtU3RhdGUgfSBmcm9tICcuL29iamVjdC1mb3JtLnN0YXRlJ1xyXG5pbXBvcnQgKiBhcyBmcm9tSGVscGVycyBmcm9tICcuLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgRmllbGREZXBlbmRlbmNlTW9kZWwsIFNlY3Rpb25WYWx1ZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbmNvbnN0IG9iamVjdFJlZHVjZXJDcmVhdG9yID0gY3JlYXRlUmVkdWNlcihcclxuICBpbml0aWFsT2JqZWN0Rm9ybVN0YXRlLFxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLnVwZGF0ZUFwaVVybCwgKHN0YXRlLCB7YXBpUHJlZml4LCBhcGlVcmx9KSA9PiB7XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCBhcGlQcmVmaXgsIGFwaVVybH07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMubG9hZE9iamVjdFBlbmRpbmcsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiB0cnVlfTtcclxuICB9KSxcclxuICBvbihcclxuICAgIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRPYmplY3RTdWNjZXNzLFxyXG4gICAgKHN0YXRlLCB7dGVtcGxhdGVTZXR0aW5ncywgc2VjdGlvblZhbHVlcywgYXBwbGljYXRpb25JZCwgaXNEcmFmdH0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIHNldHRpbmdzOiB0ZW1wbGF0ZVNldHRpbmdzLFxyXG4gICAgICAgIHNlY3Rpb25WYWx1ZXM6IHNlY3Rpb25WYWx1ZXMsXHJcbiAgICAgICAgaXNFZGl0ZWQ6IGlzRHJhZnQsXHJcbiAgICAgICAgbWVudU1vZGVsOiBmcm9tSGVscGVycy5nZXRNZW51TW9kZWwoc3RhdGUuYXBpUHJlZml4LCB0ZW1wbGF0ZVNldHRpbmdzLCBzZWN0aW9uVmFsdWVzLCBhcHBsaWNhdGlvbklkKVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMubG9hZE9iamVjdEVycm9yLCAoc3RhdGUpID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGlzTG9hZGluZzogZmFsc2V9O1xyXG4gIH0pLFxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLnVwZGF0ZVZhbHVlcywgKHN0YXRlLCB7dmFsdWV9KSA9PiB7XHJcblxyXG4gICAgY29uc3QgZGVwZW5kZW5jZVJ1bGVzUmVzdWx0cyA9IGZyb21IZWxwZXJzLmdldERlcGVuZGVuY2VSdWxlc1Jlc3VsdHMoXHJcbiAgICAgIHN0YXRlLmRlcGVuZGVuY3lSdWxlQ2hlY2tSZXN1bHRzLFxyXG4gICAgICBzdGF0ZS5zZWN0aW9uVmFsdWVzLFxyXG4gICAgICB2YWx1ZSxcclxuICAgICAgc3RhdGUuc2V0dGluZ3M/LmRlcGVuZGVuY2VSdWxlcy5ydWxlc1xyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZFNlY3Rpb25WYWx1ZXMgPSBzdGF0ZS5zZWN0aW9uVmFsdWVzLm1hcCgoc2VjdGlvblZhbHVlOiBTZWN0aW9uVmFsdWVNb2RlbCkgPT4ge1xyXG4gICAgICAvLyDQv9GA0LjRiNC70L7RgdGMINC+0YLQutCw0LfQsNGC0YzRgdGPINC+0YIg0YPRgdC70L7QstC40Y8g0L/RgNC+0LLQtdGA0LrQuCDQstGL0LHRgNCw0L3QvdC+0Lkg0YHQtdC60YbQuNC4LFxyXG4gICAgICAvLyDRgi7Qui4g0LfQsNCy0LjRgdC40LzRi9C1INC/0L7Qu9GPINC80L7Qs9GD0YIg0L3QsNGF0L7QtNC40YLRjNGB0Y8g0LIg0LTRgNGD0LPQuNGFINGB0LXQutGG0LjRj9GFLCDQsCDQuNGFINC90LXQvtCx0YXQvtC00LjQvNC+INC+0LHQvdGD0LvRj9GC0YwuXHJcbiAgICAgIHJldHVybiBmcm9tSGVscGVycy5nZXRVcGRhdGVkVmFsdWVzKFxyXG4gICAgICAgIHNlY3Rpb25WYWx1ZSxcclxuICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSxcclxuICAgICAgICBmcm9tSGVscGVycy5nZXRWYWx1ZXNUb0NsZWFuKGRlcGVuZGVuY2VSdWxlc1Jlc3VsdHMpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhzZWxlY3RlZFNlY3Rpb25WYWx1ZXMpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBzZWN0aW9uVmFsdWVzOiBzZWxlY3RlZFNlY3Rpb25WYWx1ZXMsXHJcbiAgICAgIGlzRWRpdGVkOiB0cnVlLFxyXG4gICAgICBkZXBlbmRlbmN5UnVsZUNoZWNrUmVzdWx0czogZGVwZW5kZW5jZVJ1bGVzUmVzdWx0c1xyXG4gICAgfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy5zYXZlVmFsdWVzU3VjY2VzcywgKHN0YXRlLCB7cmVzdWx0LCBvYmplY3RJZH0pID0+IHtcclxuICAgIGNvbnN0IHVwZGF0ZWRTZWN0aW9uVmFsdWVzID0gc3RhdGUuc2VjdGlvblZhbHVlcy5tYXAoKHNlY3Rpb25WYWx1ZTogU2VjdGlvblZhbHVlTW9kZWwpID0+IHtcclxuICAgICAgY29uc3Qgc2VjdGlvbiA9IHtcclxuICAgICAgICAuLi5zZWN0aW9uVmFsdWUsXHJcbiAgICAgICAgcGVyY2VudDogcmVzdWx0LmZpbGxuZXNzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IHNlY3Rpb25WYWx1ZS5zeXNOYW1lKT8ucGVyY2VudCB8fCAwXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiBmcm9tSGVscGVycy5nZXRVcGRhdGVkVmFsdWVzKHNlY3Rpb24sIHJlc3VsdC52YWx1ZXMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIHNlY3Rpb25WYWx1ZXM6IHVwZGF0ZWRTZWN0aW9uVmFsdWVzLFxyXG4gICAgICBpc0VkaXRlZDogdHJ1ZSxcclxuICAgICAgbWVudU1vZGVsOiBmcm9tSGVscGVycy5nZXRNZW51TW9kZWwoc3RhdGUuYXBpUHJlZml4LCBzdGF0ZS5zZXR0aW5ncywgdXBkYXRlZFNlY3Rpb25WYWx1ZXMsIG9iamVjdElkKVxyXG4gICAgfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy5zYXZlVmFsdWVzRXJyb3IsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZX07XHJcbiAgfSksXHJcblxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLnNhdmVPYmplY3RQZW5kaW5nLCAoc3RhdGUpID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGlzQXBwbGljYXRpb25TYXZlTG9hZGluZzogdHJ1ZX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZU9iamVjdFN1Y2Nlc3MsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNBcHBsaWNhdGlvblNhdmVMb2FkaW5nOiBmYWxzZSwgaXNFZGl0ZWQ6IGZhbHNlfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy5zYXZlT2JqZWN0RXJyb3IsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNBcHBsaWNhdGlvblNhdmVMb2FkaW5nOiBmYWxzZX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlU2VsZWN0ZWRTZWN0aW9uU3lzTmFtZSwgKHN0YXRlLCB7c2VjdGlvblN5c05hbWV9KSA9PiB7XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCBzZWxlY3RlZFNlY3Rpb25TeXNOYW1lOiBzZWN0aW9uU3lzTmFtZX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFNlY3Rpb25GaWxlc1BlbmRpbmcsIChzdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgc2VjdGlvbkZpbGVzOiBbXX07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFNlY3Rpb25GaWxlc1N1Y2Nlc3MsIChzdGF0ZSwge3NlY3Rpb25GaWxlc30pID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIHNlY3Rpb25GaWxlczogc2VjdGlvbkZpbGVzfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy50b2dnbGVDaGVja1JlcXVpcmVkLCAoc3RhdGUpID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGlzQ2hlY2tSZXF1aXJlZDogIXN0YXRlLmlzQ2hlY2tSZXF1aXJlZH07XHJcbiAgfSksXHJcbiAgb24ob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlQ2hlY2tSZXF1aXJlZCwgKHN0YXRlLCB7aXNDaGVja1JlcXVpcmVkfSkgPT4ge1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNDaGVja1JlcXVpcmVkOiBpc0NoZWNrUmVxdWlyZWR9O1xyXG4gIH0pLFxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRQcmV2aWV3VGVtcGxhdGVQZW5kaW5nLCAoc3RhdGUpID0+IHtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGlzTG9hZGluZzogdHJ1ZX07XHJcbiAgfSksXHJcbiAgb24oXHJcbiAgICBvYmplY3RGb3JtQWN0aW9ucy5sb2FkUHJldmlld1RlbXBsYXRlU3VjY2VzcyxcclxuICAgIChzdGF0ZSwge3RlbXBsYXRlU2V0dGluZ3MsIHRlbXBsYXRlU3lzTmFtZX0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIHNldHRpbmdzOiB0ZW1wbGF0ZVNldHRpbmdzLFxyXG4gICAgICAgIG1lbnVNb2RlbDogZnJvbUhlbHBlcnMuZ2V0UHJldmlld01lbnVNb2RlbChzdGF0ZS5hcGlQcmVmaXgsIHRlbXBsYXRlU2V0dGluZ3MsIHRlbXBsYXRlU3lzTmFtZSlcclxuICAgICAgfTtcclxuICAgIH1cclxuICApLFxyXG4gIG9uKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRQcmV2aWV3VGVtcGxhdGVFcnJvciwgKHN0YXRlKSA9PiB7XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCBpc0xvYWRpbmc6IGZhbHNlfTtcclxuICB9KSxcclxuICBvbihvYmplY3RGb3JtQWN0aW9ucy5jaGVja0FsbERlcGVuZGVuY3lSdWxlcywgKHN0YXRlKSA9PiB7XHJcblxyXG4gICAgY29uc3QgZGVwZW5kZW5jZVJlc3VsdHMgPSBzdGF0ZS5zZXR0aW5ncz8uZGVwZW5kZW5jZVJ1bGVzLnJ1bGVzXHJcbiAgICAgIC5tYXAoKHJ1bGU6IEZpZWxkRGVwZW5kZW5jZU1vZGVsKSA9PiAoZnJvbUhlbHBlcnMuY2hlY2tEZXBlbmRlbmNlUnVsZShydWxlLCBzdGF0ZS5zZWN0aW9uVmFsdWVzKSkpXHJcbiAgICAgIC5mbGF0KCkgfHwgW107XHJcblxyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgZGVwZW5kZW5jeVJ1bGVDaGVja1Jlc3VsdHM6IGRlcGVuZGVuY2VSZXN1bHRzfTtcclxuICB9KVxyXG4pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9iamVjdFJlZHVjZXIoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSB8IHVuZGVmaW5lZCwgYWN0aW9uOiBBY3Rpb24pIHtcclxuICByZXR1cm4gb2JqZWN0UmVkdWNlckNyZWF0b3Ioc3RhdGUsIGFjdGlvbik7XHJcbn1cclxuIl19
|
|
@@ -3,6 +3,8 @@ import { OBJECT_ID_NAME, STATE_NAME } from '../constants';
|
|
|
3
3
|
import { sharedSelectors } from '../../shared-form/store';
|
|
4
4
|
import { getValueModel } from '../helpers';
|
|
5
5
|
const objectFeature = createFeatureSelector(STATE_NAME);
|
|
6
|
+
export const selectApiPrefix = createSelector(objectFeature, (state) => state.apiPrefix);
|
|
7
|
+
export const selectApiUrl = createSelector(objectFeature, (state) => state.apiUrl);
|
|
6
8
|
export const selectIsLoading = createSelector(objectFeature, (state) => state.isLoading);
|
|
7
9
|
export const selectIsObjectSaveLoading = createSelector(objectFeature, (state) => state.isObjectSaveLoading);
|
|
8
10
|
export const selectIsEdited = createSelector(objectFeature, (state) => state.isEdited);
|
|
@@ -17,4 +19,4 @@ export const selectSectionFiles = createSelector(objectFeature, (state) => state
|
|
|
17
19
|
export const selectTemplateSysName = createSelector(objectFeature, (state) => state.settings?.sysName);
|
|
18
20
|
export const selectValueModel = (settings) => createSelector(objectFeature, (state) => getValueModel(settings, state.sectionValues));
|
|
19
21
|
export const selectDependencyRulesResults = createSelector(objectFeature, state => state.dependencyRuleCheckResults);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0uc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBa0IsVUFBVSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FDM0MsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQ3hDLGFBQWEsRUFDYixDQUFDLEtBQXNCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUMzQyxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUM1QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsY0FBYyxDQUNyRCxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQ3RELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUMxQyxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUMzQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUNqRCxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUNsRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FDM0MsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FDakQsYUFBYSxFQUNiLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN4RCxDQUFDLEtBQXNCLEVBQUUsY0FBc0IsRUFBRSxFQUFFO0lBQ2pELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUE7QUFDakYsQ0FBQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQy9DLGFBQWEsRUFDYixDQUFDLEtBQXNCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ2hELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUMxQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLEVBQ3RELENBQUMsYUFBcUIsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUN6QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUM5QyxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUMvQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUNqRCxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FDcEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBNEIsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUM5RSxhQUFhLEVBQ2IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUN4RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsY0FBYyxDQUN4RCxhQUFhLEVBQ2IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQzFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBPYmplY3RGb3JtU3RhdGUgfSBmcm9tICcuLi9zdG9yZSc7XHJcbmltcG9ydCB7IE9CSkVDVF9JRF9OQU1FLCBTVEFURV9OQU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLWZvcm0vbW9kZWxzJztcclxuaW1wb3J0IHsgc2hhcmVkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc2hhcmVkLWZvcm0vc3RvcmUnO1xyXG5pbXBvcnQgeyBnZXRWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vaGVscGVycyc7XHJcblxyXG5jb25zdCBvYmplY3RGZWF0dXJlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPE9iamVjdEZvcm1TdGF0ZT4oU1RBVEVfTkFNRSk7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0QXBpUHJlZml4ID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuYXBpUHJlZml4XHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0QXBpVXJsID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuYXBpVXJsXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0SXNMb2FkaW5nID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuaXNMb2FkaW5nXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0SXNPYmplY3RTYXZlTG9hZGluZyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLmlzT2JqZWN0U2F2ZUxvYWRpbmdcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RJc0VkaXRlZCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLmlzRWRpdGVkXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0SXNDaGVja1JlcXVpcmVkID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuaXNDaGVja1JlcXVpcmVkXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0TWVudU1vZGVsID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUubWVudU1vZGVsXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VjdGlvblNldHRpbmdzID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICBzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnc2VjdGlvblN5c05hbWUnKSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSwgc2VjdGlvblN5c05hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgcmV0dXJuIHN0YXRlLnNldHRpbmdzPy5zZWN0aW9ucy5maW5kKHMgPT4gcy5zeXNOYW1lID09PSBzZWN0aW9uU3lzTmFtZSkgfHwgbnVsbFxyXG4gIH1cclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RTZWN0aW9uVmFsdWVzID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuc2VjdGlvblZhbHVlc1xyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdE9iamVjdElkID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oT0JKRUNUX0lEX05BTUUpLFxyXG4gIChhcHBsaWNhdGlvbklkOiBzdHJpbmcpID0+IGFwcGxpY2F0aW9uSWRcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RTZWN0aW9uRmlsZXMgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIChzdGF0ZTogT2JqZWN0Rm9ybVN0YXRlKSA9PiBzdGF0ZS5zZWN0aW9uRmlsZXNcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RUZW1wbGF0ZVN5c05hbWUgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIChzdGF0ZTogT2JqZWN0Rm9ybVN0YXRlKSA9PiBzdGF0ZS5zZXR0aW5ncz8uc3lzTmFtZVxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdFZhbHVlTW9kZWwgPSAoc2V0dGluZ3M6IENvbXBvbmVudE1vZGVsQmFzZSkgPT4gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGUpID0+IGdldFZhbHVlTW9kZWwoc2V0dGluZ3MsIHN0YXRlLnNlY3Rpb25WYWx1ZXMpXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0RGVwZW5kZW5jeVJ1bGVzUmVzdWx0cyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgc3RhdGUgPT4gc3RhdGUuZGVwZW5kZW5jeVJ1bGVDaGVja1Jlc3VsdHNcclxuKVxyXG4iXX0=
|
|
@@ -10,6 +10,8 @@ export const initialObjectFormState = {
|
|
|
10
10
|
items: []
|
|
11
11
|
},
|
|
12
12
|
sectionFiles: [],
|
|
13
|
-
dependencyRuleCheckResults: []
|
|
13
|
+
dependencyRuleCheckResults: [],
|
|
14
|
+
apiPrefix: '',
|
|
15
|
+
apiUrl: ''
|
|
14
16
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFvQjtJQUNyRCxTQUFTLEVBQUUsS0FBSztJQUNoQixRQUFRLEVBQUUsS0FBSztJQUNmLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsUUFBUSxFQUFFLElBQUk7SUFDZCxzQkFBc0IsRUFBRSxJQUFJO0lBQzVCLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLFNBQVMsRUFBRTtRQUNULEtBQUssRUFBRSxFQUFFO0tBQ1Y7SUFDRCxZQUFZLEVBQUUsRUFBRTtJQUNoQiwwQkFBMEIsRUFBRSxFQUFFO0lBQzlCLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkLWZvcm0vbW9kZWxzJztcclxuaW1wb3J0IHsgTWVudUFkbWluTW9kZWwgfSBmcm9tICdAbXlydGV4LW9yZy90ZW1wbGF0ZXMnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmllbGREZXBlbmRlbmN5Q2hlY2tSZXN1bHRNb2RlbCwgU2VjdGlvblZhbHVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RGb3JtU3RhdGUge1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBpc0VkaXRlZDogYm9vbGVhbjtcclxuICBpc0NoZWNrUmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgaXNPYmplY3RTYXZlTG9hZGluZzogYm9vbGVhbjtcclxuICBzZXR0aW5nczogVGVtcGxhdGVNb2RlbCB8IG51bGw7XHJcbiAgc2VsZWN0ZWRTZWN0aW9uU3lzTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBzZWN0aW9uVmFsdWVzOiBTZWN0aW9uVmFsdWVNb2RlbFtdO1xyXG4gIG1lbnVNb2RlbDogTWVudUFkbWluTW9kZWw7XHJcbiAgc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXTtcclxuICBkZXBlbmRlbmN5UnVsZUNoZWNrUmVzdWx0czogRmllbGREZXBlbmRlbmN5Q2hlY2tSZXN1bHRNb2RlbFtdO1xyXG4gIGFwaVByZWZpeDogc3RyaW5nO1xyXG4gIGFwaVVybDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaW5pdGlhbE9iamVjdEZvcm1TdGF0ZTogT2JqZWN0Rm9ybVN0YXRlID0ge1xyXG4gIGlzTG9hZGluZzogZmFsc2UsXHJcbiAgaXNFZGl0ZWQ6IGZhbHNlLFxyXG4gIGlzQ2hlY2tSZXF1aXJlZDogZmFsc2UsXHJcbiAgaXNPYmplY3RTYXZlTG9hZGluZzogZmFsc2UsXHJcbiAgc2V0dGluZ3M6IG51bGwsXHJcbiAgc2VsZWN0ZWRTZWN0aW9uU3lzTmFtZTogbnVsbCxcclxuICBzZWN0aW9uVmFsdWVzOiBbXSxcclxuICBtZW51TW9kZWw6IHtcclxuICAgIGl0ZW1zOiBbXVxyXG4gIH0sXHJcbiAgc2VjdGlvbkZpbGVzOiBbXSxcclxuICBkZXBlbmRlbmN5UnVsZUNoZWNrUmVzdWx0czogW10sXHJcbiAgYXBpUHJlZml4OiAnJyxcclxuICBhcGlVcmw6ICcnXHJcbn07XHJcbiJdfQ==
|