@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.
Files changed (23) hide show
  1. package/esm2022/lib/modules/object-form/components/elements/base/base-field/base-field.component.mjs +1 -1
  2. package/esm2022/lib/modules/object-form/components/elements/input/file/input-file.component.mjs +16 -11
  3. package/esm2022/lib/modules/object-form/constants.mjs +1 -2
  4. package/esm2022/lib/modules/object-form/helpers/get-menu-model.mjs +5 -5
  5. package/esm2022/lib/modules/object-form/object-form.component.mjs +8 -3
  6. package/esm2022/lib/modules/object-form/services/object-form.service.mjs +18 -14
  7. package/esm2022/lib/modules/object-form/store/object-form.actions.mjs +3 -1
  8. package/esm2022/lib/modules/object-form/store/object-form.effects.mjs +28 -20
  9. package/esm2022/lib/modules/object-form/store/object-form.reducers.mjs +8 -5
  10. package/esm2022/lib/modules/object-form/store/object-form.selector.mjs +3 -1
  11. package/esm2022/lib/modules/object-form/store/object-form.state.mjs +4 -2
  12. package/fesm2022/myrtex-org-form.mjs +87 -56
  13. package/fesm2022/myrtex-org-form.mjs.map +1 -1
  14. package/lib/modules/object-form/components/elements/input/file/input-file.component.d.ts +3 -1
  15. package/lib/modules/object-form/constants.d.ts +0 -1
  16. package/lib/modules/object-form/helpers/get-menu-model.d.ts +2 -2
  17. package/lib/modules/object-form/object-form.component.d.ts +1 -0
  18. package/lib/modules/object-form/services/object-form.service.d.ts +9 -7
  19. package/lib/modules/object-form/store/object-form.actions.d.ts +8 -0
  20. package/lib/modules/object-form/store/object-form.effects.d.ts +5 -1
  21. package/lib/modules/object-form/store/object-form.selector.d.ts +2 -0
  22. package/lib/modules/object-form/store/object-form.state.d.ts +2 -0
  23. 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 { API_PREFIX_NAME, OBJECT_ID_NAME, SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from '../constants';
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.loadTemplatePending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadTemplatePending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME))), switchMap(([_, apiPrefix, objectId, templateSysName]) => {
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(apiPrefix, objectId).pipe(switchMap(({ templateSysName }) => ([
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(sharedSelectors.selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([templateSysName, apiPrefix, sectionSysName]) => {
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([`/form/${apiPrefix}/preview/${templateSysName}/${templateSettings.sections[0].sysName}`]);
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(sharedSelectors.selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([templateSysName, apiPrefix, objectId, sectionSysName]) => {
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(apiPrefix, objectId)
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([`/form/${apiPrefix}/${objectId}/${templateSettings.sections[0].sysName}`]);
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(API_PREFIX_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(objectFormSelectors.selectSectionValues)), switchMap(([_, apiPrefix, objectId, sectionValues]) => {
81
- return this._applicationService.updateApplicationValues(apiPrefix, objectId, sectionValues).pipe(map((result) => {
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(API_PREFIX_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME))), switchMap(([_, apiPrefix, objectId]) => {
90
- return this._applicationService.saveApplication(apiPrefix, objectId).pipe(map(() => {
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(sharedSelectors.selectRouteNestedParam(API_PREFIX_NAME))), switchMap(([action, apiPrefix]) => {
105
- return this._applicationService.copyApplication(apiPrefix, action).pipe(map((result) => {
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(`/form/${apiPrefix}/` + result.id, '_blank');
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(API_PREFIX_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([_, apiPrefix, objectId, sectionSysName]) => {
121
- return this._applicationService.getSectionFiles(apiPrefix, objectId, sectionSysName).pipe(map((sectionFiles) => {
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(sharedSelectors.selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME))), tap(([_, apiPrefix, objectId]) => {
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(`/form/api/v2/${apiPrefix}/${objectId}/print`, '_blank');
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9zdG9yZS9vYmplY3QtZm9ybS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JILE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd2RixPQUFPLEVBQUUsYUFBYSxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQUk3RixNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQ1UsU0FBa0IsRUFDbEIsTUFBYSxFQUNiLE9BQWUsRUFDZixtQkFBc0MsRUFDdEMsZUFBK0I7UUFKL0IsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBbUI7UUFDdEMsb0JBQWUsR0FBZixl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QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBRTVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLElBQUksUUFBUSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQ0gsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBaFB0QixDQUFDOytHQVZVLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycywgRUFwcGxpY2F0aW9uQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE9iamVjdFZhbHVlc0R0bywgVmFsdWVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEF1dG9TYXZlU3RvcmUsIFRvYXN0ZXJTZXJ2aWNlLCBUb2FzdGVyVHlwZSB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlLCBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBzaGFyZWRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9zdG9yZSc7XHJcbmltcG9ydCB7IE9CSkVDVF9JRF9OQU1FLCBTRUNUSU9OX1NZU19OQU1FX05BTUUsIFRFTVBMQVRFX1NZU19OQU1FX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBzZWxlY3RBcGlQcmVmaXgsIHNlbGVjdEFwaVVybCB9IGZyb20gJy4vb2JqZWN0LWZvcm0uc2VsZWN0b3InO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUVmZmVjdHMge1xyXG4gIHByaXZhdGUgX2F1dG9TYXZlU3RvcmUgPSBpbmplY3QoQXV0b1NhdmVTdG9yZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgX2FwcGxpY2F0aW9uU2VydmljZTogT2JqZWN0Rm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwaVVybCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlVwZGF0ZUFwaVVybCksXHJcbiAgICBtYXAoKHByb3BzOiB7IGFwaVByZWZpeDogc3RyaW5nLCBhcGlVcmw6IHN0cmluZyB9KSA9PiAoe2FwaVByZWZpeDogcHJvcHMuYXBpUHJlZml4LCBhcGlVcmw6IHByb3BzLmFwaVVybH0pKSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICB0YXAoKHthcGlQcmVmaXgsIGFwaVVybH0pID0+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.loadObjectPending, (state) => {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0uc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBa0IsVUFBVSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FDM0MsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGNBQWMsQ0FDckQsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUN0RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDMUMsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FDakQsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FDbEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQzNDLGFBQWEsRUFDYixDQUFDLEtBQXNCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQzVDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQ2pELGFBQWEsRUFDYixlQUFlLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsRUFDeEQsQ0FBQyxLQUFzQixFQUFFLGNBQXNCLEVBQUUsRUFBRTtJQUNqRCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxDQUFBO0FBQ2pGLENBQUMsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUMvQyxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUNoRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDMUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUN0RCxDQUFDLGFBQXFCLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FDekMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FDOUMsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDL0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FDakQsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQ3BELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQTRCLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDOUUsYUFBYSxFQUNiLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FDeEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLGNBQWMsQ0FDeEQsYUFBYSxFQUNiLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUMxQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgT2JqZWN0Rm9ybVN0YXRlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBPQkpFQ1RfSURfTkFNRSwgU1RBVEVfTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENvbXBvbmVudE1vZGVsQmFzZSB9IGZyb20gJy4uLy4uL3NoYXJlZC1mb3JtL21vZGVscyc7XHJcbmltcG9ydCB7IHNoYXJlZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3NoYXJlZC1mb3JtL3N0b3JlJztcclxuaW1wb3J0IHsgZ2V0VmFsdWVNb2RlbCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuY29uc3Qgb2JqZWN0RmVhdHVyZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxPYmplY3RGb3JtU3RhdGU+KFNUQVRFX05BTUUpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdElzTG9hZGluZyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLmlzTG9hZGluZ1xyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdElzT2JqZWN0U2F2ZUxvYWRpbmcgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIChzdGF0ZTogT2JqZWN0Rm9ybVN0YXRlKSA9PiBzdGF0ZS5pc09iamVjdFNhdmVMb2FkaW5nXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0SXNFZGl0ZWQgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIChzdGF0ZTogT2JqZWN0Rm9ybVN0YXRlKSA9PiBzdGF0ZS5pc0VkaXRlZFxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdElzQ2hlY2tSZXF1aXJlZCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLmlzQ2hlY2tSZXF1aXJlZFxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdE1lbnVNb2RlbCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLm1lbnVNb2RlbFxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdFNlY3Rpb25TZXR0aW5ncyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ3NlY3Rpb25TeXNOYW1lJyksXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUsIHNlY3Rpb25TeXNOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgIHJldHVybiBzdGF0ZS5zZXR0aW5ncz8uc2VjdGlvbnMuZmluZChzID0+IHMuc3lzTmFtZSA9PT0gc2VjdGlvblN5c05hbWUpIHx8IG51bGxcclxuICB9XHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VjdGlvblZhbHVlcyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLnNlY3Rpb25WYWx1ZXNcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RPYmplY3RJZCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKE9CSkVDVF9JRF9OQU1FKSxcclxuICAoYXBwbGljYXRpb25JZDogc3RyaW5nKSA9PiBhcHBsaWNhdGlvbklkXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VjdGlvbkZpbGVzID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuc2VjdGlvbkZpbGVzXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0VGVtcGxhdGVTeXNOYW1lID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuc2V0dGluZ3M/LnN5c05hbWVcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RWYWx1ZU1vZGVsID0gKHNldHRpbmdzOiBDb21wb25lbnRNb2RlbEJhc2UpID0+IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlKSA9PiBnZXRWYWx1ZU1vZGVsKHNldHRpbmdzLCBzdGF0ZS5zZWN0aW9uVmFsdWVzKVxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdERlcGVuZGVuY3lSdWxlc1Jlc3VsdHMgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIHN0YXRlID0+IHN0YXRlLmRlcGVuZGVuY3lSdWxlQ2hlY2tSZXN1bHRzXHJcbilcclxuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFvQjtJQUNyRCxTQUFTLEVBQUUsS0FBSztJQUNoQixRQUFRLEVBQUUsS0FBSztJQUNmLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsUUFBUSxFQUFFLElBQUk7SUFDZCxzQkFBc0IsRUFBRSxJQUFJO0lBQzVCLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLFNBQVMsRUFBRTtRQUNULEtBQUssRUFBRSxFQUFFO0tBQ1Y7SUFDRCxZQUFZLEVBQUUsRUFBRTtJQUNoQiwwQkFBMEIsRUFBRSxFQUFFO0NBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNZW51QWRtaW5Nb2RlbCB9IGZyb20gJ0BteXJ0ZXgtb3JnL3RlbXBsYXRlcyc7XHJcbmltcG9ydCB7IFRlbXBsYXRlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWVsZERlcGVuZGVuY3lDaGVja1Jlc3VsdE1vZGVsLCBTZWN0aW9uVmFsdWVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdEZvcm1TdGF0ZSB7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xyXG4gIGlzRWRpdGVkOiBib29sZWFuO1xyXG4gIGlzQ2hlY2tSZXF1aXJlZDogYm9vbGVhbjtcclxuICBpc09iamVjdFNhdmVMb2FkaW5nOiBib29sZWFuO1xyXG4gIHNldHRpbmdzOiBUZW1wbGF0ZU1vZGVsIHwgbnVsbDtcclxuICBzZWxlY3RlZFNlY3Rpb25TeXNOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNlY3Rpb25WYWx1ZXM6IFNlY3Rpb25WYWx1ZU1vZGVsW107XHJcbiAgbWVudU1vZGVsOiBNZW51QWRtaW5Nb2RlbDtcclxuICBzZWN0aW9uRmlsZXM6IEZpbGVNb2RlbFtdO1xyXG4gIGRlcGVuZGVuY3lSdWxlQ2hlY2tSZXN1bHRzOiBGaWVsZERlcGVuZGVuY3lDaGVja1Jlc3VsdE1vZGVsW107XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpbml0aWFsT2JqZWN0Rm9ybVN0YXRlOiBPYmplY3RGb3JtU3RhdGUgPSB7XHJcbiAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICBpc0VkaXRlZDogZmFsc2UsXHJcbiAgaXNDaGVja1JlcXVpcmVkOiBmYWxzZSxcclxuICBpc09iamVjdFNhdmVMb2FkaW5nOiBmYWxzZSxcclxuICBzZXR0aW5nczogbnVsbCxcclxuICBzZWxlY3RlZFNlY3Rpb25TeXNOYW1lOiBudWxsLFxyXG4gIHNlY3Rpb25WYWx1ZXM6IFtdLFxyXG4gIG1lbnVNb2RlbDoge1xyXG4gICAgaXRlbXM6IFtdXHJcbiAgfSxcclxuICBzZWN0aW9uRmlsZXM6IFtdLFxyXG4gIGRlcGVuZGVuY3lSdWxlQ2hlY2tSZXN1bHRzOiBbXVxyXG59O1xyXG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFvQjtJQUNyRCxTQUFTLEVBQUUsS0FBSztJQUNoQixRQUFRLEVBQUUsS0FBSztJQUNmLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsUUFBUSxFQUFFLElBQUk7SUFDZCxzQkFBc0IsRUFBRSxJQUFJO0lBQzVCLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLFNBQVMsRUFBRTtRQUNULEtBQUssRUFBRSxFQUFFO0tBQ1Y7SUFDRCxZQUFZLEVBQUUsRUFBRTtJQUNoQiwwQkFBMEIsRUFBRSxFQUFFO0lBQzlCLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkLWZvcm0vbW9kZWxzJztcclxuaW1wb3J0IHsgTWVudUFkbWluTW9kZWwgfSBmcm9tICdAbXlydGV4LW9yZy90ZW1wbGF0ZXMnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmllbGREZXBlbmRlbmN5Q2hlY2tSZXN1bHRNb2RlbCwgU2VjdGlvblZhbHVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RGb3JtU3RhdGUge1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBpc0VkaXRlZDogYm9vbGVhbjtcclxuICBpc0NoZWNrUmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgaXNPYmplY3RTYXZlTG9hZGluZzogYm9vbGVhbjtcclxuICBzZXR0aW5nczogVGVtcGxhdGVNb2RlbCB8IG51bGw7XHJcbiAgc2VsZWN0ZWRTZWN0aW9uU3lzTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBzZWN0aW9uVmFsdWVzOiBTZWN0aW9uVmFsdWVNb2RlbFtdO1xyXG4gIG1lbnVNb2RlbDogTWVudUFkbWluTW9kZWw7XHJcbiAgc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXTtcclxuICBkZXBlbmRlbmN5UnVsZUNoZWNrUmVzdWx0czogRmllbGREZXBlbmRlbmN5Q2hlY2tSZXN1bHRNb2RlbFtdO1xyXG4gIGFwaVByZWZpeDogc3RyaW5nO1xyXG4gIGFwaVVybDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaW5pdGlhbE9iamVjdEZvcm1TdGF0ZTogT2JqZWN0Rm9ybVN0YXRlID0ge1xyXG4gIGlzTG9hZGluZzogZmFsc2UsXHJcbiAgaXNFZGl0ZWQ6IGZhbHNlLFxyXG4gIGlzQ2hlY2tSZXF1aXJlZDogZmFsc2UsXHJcbiAgaXNPYmplY3RTYXZlTG9hZGluZzogZmFsc2UsXHJcbiAgc2V0dGluZ3M6IG51bGwsXHJcbiAgc2VsZWN0ZWRTZWN0aW9uU3lzTmFtZTogbnVsbCxcclxuICBzZWN0aW9uVmFsdWVzOiBbXSxcclxuICBtZW51TW9kZWw6IHtcclxuICAgIGl0ZW1zOiBbXVxyXG4gIH0sXHJcbiAgc2VjdGlvbkZpbGVzOiBbXSxcclxuICBkZXBlbmRlbmN5UnVsZUNoZWNrUmVzdWx0czogW10sXHJcbiAgYXBpUHJlZml4OiAnJyxcclxuICBhcGlVcmw6ICcnXHJcbn07XHJcbiJdfQ==