@myrtex-org/form 1.0.8 → 1.0.9
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/constants.mjs +5 -1
- package/esm2022/lib/modules/object-form/object-form.component.mjs +3 -2
- package/esm2022/lib/modules/object-form/store/object-form.effects.mjs +13 -12
- package/esm2022/lib/modules/object-form/store/object-form.selector.mjs +3 -3
- package/esm2022/lib/modules/shared-form/store/shared-form.selector.mjs +4 -3
- package/fesm2022/myrtex-org-form.mjs +20 -16
- package/fesm2022/myrtex-org-form.mjs.map +1 -1
- package/lib/modules/object-form/constants.d.ts +4 -0
- package/lib/modules/object-form/store/object-form.effects.d.ts +11 -11
- package/package.json +1 -1
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
export const STATE_NAME = 'object-form';
|
|
2
|
-
|
|
2
|
+
export const API_PREFIX_NAME = 'apiPrefix';
|
|
3
|
+
export const OBJECT_ID_NAME = 'objectId';
|
|
4
|
+
export const SECTION_SYS_NAME_NAME = 'sectionSysName';
|
|
5
|
+
export const TEMPLATE_SYS_NAME_NAME = 'templateSysName';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFBO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUE7QUFDMUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQTtBQUN4QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxnQkFBZ0IsQ0FBQTtBQUNyRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTVEFURV9OQU1FID0gJ29iamVjdC1mb3JtJ1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQSV9QUkVGSVhfTkFNRSA9ICdhcGlQcmVmaXgnXHJcbmV4cG9ydCBjb25zdCBPQkpFQ1RfSURfTkFNRSA9ICdvYmplY3RJZCdcclxuZXhwb3J0IGNvbnN0IFNFQ1RJT05fU1lTX05BTUVfTkFNRSA9ICdzZWN0aW9uU3lzTmFtZSdcclxuZXhwb3J0IGNvbnN0IFRFTVBMQVRFX1NZU19OQU1FX05BTUUgPSAndGVtcGxhdGVTeXNOYW1lJ1xyXG4iXX0=
|
|
@@ -3,6 +3,7 @@ import { Store } from '@ngrx/store';
|
|
|
3
3
|
import { withLatestFrom } from 'rxjs/operators';
|
|
4
4
|
import { sharedSelectors } from '../shared-form/store';
|
|
5
5
|
import { objectFormActions, objectFormSelectors } from './store';
|
|
6
|
+
import { SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from './constants';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/router";
|
|
8
9
|
import * as i2 from "@myrtex-org/templates";
|
|
@@ -17,7 +18,7 @@ export class ObjectFormComponent {
|
|
|
17
18
|
}
|
|
18
19
|
ngOnInit() {
|
|
19
20
|
this._store.dispatch(objectFormActions.loadTemplatePending());
|
|
20
|
-
this._subscriptions$.push(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
21
|
+
this._subscriptions$.push(this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)).pipe(withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)))).subscribe(([sectionSysName, templateSysName]) => {
|
|
21
22
|
this._store.dispatch(objectFormActions.updateSelectedSectionSysName({ sectionSysName }));
|
|
22
23
|
if (sectionSysName && !templateSysName) {
|
|
23
24
|
this._store.dispatch(objectFormActions.loadSectionFilesPending());
|
|
@@ -40,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
40
41
|
type: Component,
|
|
41
42
|
args: [{ selector: 'app-object-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!(isLoading$ | async)) {\r\n <div class=\"object-form__sidebar\">\r\n @if ((menuModel$ | async)?.items?.length) {\r\n <mrx-menu-admin [model]=\"(menuModel$ | async) || {}\">\r\n <ng-template #viewLinkTemplate let-menuItem=\"menuItem\">\r\n <div class=\"object-form__sidebar__link\">\r\n @if (showProgress(menuItem)) {\r\n <div class=\"progress-bar\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle class=\"progress-bar__circle\" cx=\"12\" cy=\"12\" r=\"9\" stroke-width=\"2\" stroke=\"#DBDFE5\"/>\r\n\r\n <circle\r\n class=\"progress-bar__filler\"\r\n [class.progress-bar__filler_full]=\"menuItem.params?.['percent'] === 100\"\r\n cx=\"12\" cy=\"12\" r=\"9\"\r\n stroke-width=\"2\"\r\n [attr.stroke-dasharray]=\"getDashArray(menuItem)\"\r\n stroke-dashoffset=\"60\"\r\n />\r\n </svg>\r\n\r\n @if (menuItem.params?.['percent'] === 100) {\r\n <div class=\"mrx-icon icon-check icon-font-16 icon-color-green progress-bar__icon text-bold\"></div>\r\n }\r\n </div>\r\n }\r\n\r\n <span>{{ menuItem.title }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n </mrx-menu-admin>\r\n }\r\n </div>\r\n\r\n <div class=\"object-form__content\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n} @else {\r\n <div class=\"d-flex justify-content-center align-items-center h-100 w-100\">\r\n <mrx-loader [size]=\"'large'\" [color]=\"'brand'\"></mrx-loader>\r\n </div>\r\n}\r\n", styles: [".object-form__sidebar{background-color:#fff;overflow-y:hidden}.object-form__sidebar__link{display:flex;align-items:center;gap:8px;padding:8px 12px;color:#000;min-height:40px}.object-form__sidebar__link .progress-bar{position:relative;display:flex;align-items:center;justify-content:center}.object-form__sidebar__link .progress-bar__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.object-form__sidebar__link .progress-bar__filler{transform-origin:center;transform:rotate(-90deg);stroke:var(--brand-bg-primary-default);transition:stroke-dasharray .3s}.object-form__sidebar__link .progress-bar__filler_full{stroke:var(--system-icon-positive)}.object-form__content{flex-grow:1;overflow-y:scroll;padding-top:24px;padding-bottom:24px}:host{position:relative;display:flex;width:100%}\n"] }]
|
|
42
43
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL29iamVjdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQVM1RSxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT1UsV0FBTSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixvQkFBZSxHQUFtQixFQUFFLENBQUM7UUFFN0MsZUFBVSxHQUF3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRixlQUFVLEdBQStCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBK0JsRztJQTdCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDcEYsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQ25GLENBQ0YsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLDRCQUE0QixDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZGLElBQUksY0FBYyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkQsQ0FBQzsrR0FuQ1UsbUJBQW1CO21HQUFuQixtQkFBbUIsdURDaEJoQyxxd0RBMkNBOzs0RkQzQmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNZW51QWRtaW5JdGVtLCBNZW51QWRtaW5Nb2RlbCB9IGZyb20gJ0BteXJ0ZXgtb3JnL3RlbXBsYXRlcyc7XHJcbmltcG9ydCB7IHNoYXJlZFNlbGVjdG9ycyB9IGZyb20gJy4uL3NoYXJlZC1mb3JtL3N0b3JlJztcclxuaW1wb3J0IHsgb2JqZWN0Rm9ybUFjdGlvbnMsIG9iamVjdEZvcm1TZWxlY3RvcnMgfSBmcm9tICcuL3N0b3JlJztcclxuaW1wb3J0IHsgU0VDVElPTl9TWVNfTkFNRV9OQU1FLCBURU1QTEFURV9TWVNfTkFNRV9OQU1FIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW9iamVjdC1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlID0gaW5qZWN0KFN0b3JlKTtcclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgaXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdElzTG9hZGluZyk7XHJcbiAgbWVudU1vZGVsJDogT2JzZXJ2YWJsZTxNZW51QWRtaW5Nb2RlbD4gPSB0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RNZW51TW9kZWwpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRUZW1wbGF0ZVBlbmRpbmcoKSk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyQucHVzaChcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKFNFQ1RJT05fU1lTX05BTUVfTkFNRSkpLnBpcGUoXHJcbiAgICAgICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oVEVNUExBVEVfU1lTX05BTUVfTkFNRSkpLFxyXG4gICAgICAgIClcclxuICAgICAgKS5zdWJzY3JpYmUoKFtzZWN0aW9uU3lzTmFtZSwgdGVtcGxhdGVTeXNOYW1lXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLnVwZGF0ZVNlbGVjdGVkU2VjdGlvblN5c05hbWUoe3NlY3Rpb25TeXNOYW1lfSkpO1xyXG5cclxuICAgICAgICBpZiAoc2VjdGlvblN5c05hbWUgJiYgIXRlbXBsYXRlU3lzTmFtZSkge1xyXG4gICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFNlY3Rpb25GaWxlc1BlbmRpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLmZvckVhY2goKHN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1Byb2dyZXNzKGl0ZW06IE1lbnVBZG1pbkl0ZW0pOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIShpdGVtPy5wYXJhbXM/LlsncGVyY2VudCddIHx8IGl0ZW0/LnBhcmFtcz8uWydwZXJjZW50J10gPT09IDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGFzaEFycmF5KGl0ZW06IE1lbnVBZG1pbkl0ZW0pOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIDU3IC8gMTAwICogaXRlbT8ucGFyYW1zPy5bJ3BlcmNlbnQnXSArIDYwO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKCEoaXNMb2FkaW5nJCB8IGFzeW5jKSkge1xyXG4gIDxkaXYgY2xhc3M9XCJvYmplY3QtZm9ybV9fc2lkZWJhclwiPlxyXG4gICAgQGlmICgobWVudU1vZGVsJCB8IGFzeW5jKT8uaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICA8bXJ4LW1lbnUtYWRtaW4gW21vZGVsXT1cIihtZW51TW9kZWwkIHwgYXN5bmMpIHx8IHt9XCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICN2aWV3TGlua1RlbXBsYXRlIGxldC1tZW51SXRlbT1cIm1lbnVJdGVtXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWZvcm1fX3NpZGViYXJfX2xpbmtcIj5cclxuICAgICAgICAgICAgQGlmIChzaG93UHJvZ3Jlc3MobWVudUl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJwcm9ncmVzcy1iYXJfX2NpcmNsZVwiIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlPVwiI0RCREZFNVwiLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxjaXJjbGVcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhcl9fZmlsbGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyX19maWxsZXJfZnVsbF09XCJtZW51SXRlbS5wYXJhbXM/LlsncGVyY2VudCddID09PSAxMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwiZ2V0RGFzaEFycmF5KG1lbnVJdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9XCI2MFwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICBAaWYgKG1lbnVJdGVtLnBhcmFtcz8uWydwZXJjZW50J10gPT09IDEwMCkge1xyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGVjayBpY29uLWZvbnQtMTYgaWNvbi1jb2xvci1ncmVlbiBwcm9ncmVzcy1iYXJfX2ljb24gdGV4dC1ib2xkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDxzcGFuPnt7IG1lbnVJdGVtLnRpdGxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwvbXJ4LW1lbnUtYWRtaW4+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJvYmplY3QtZm9ybV9fY29udGVudFwiPlxyXG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gIDwvZGl2PlxyXG59IEBlbHNlIHtcclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGgtMTAwIHctMTAwXCI+XHJcbiAgICA8bXJ4LWxvYWRlciBbc2l6ZV09XCInbGFyZ2UnXCIgW2NvbG9yXT1cIidicmFuZCdcIj48L21yeC1sb2FkZXI+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
|
|
@@ -5,11 +5,12 @@ 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
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@ngrx/effects";
|
|
10
11
|
import * as i2 from "@ngrx/store";
|
|
11
12
|
import * as i3 from "@angular/router";
|
|
12
|
-
import * as i4 from "../services
|
|
13
|
+
import * as i4 from "../services";
|
|
13
14
|
import * as i5 from "@myrtex-org/ui";
|
|
14
15
|
export class ObjectFormEffects {
|
|
15
16
|
constructor(_actions$, _store, _router, _applicationService, _toasterService) {
|
|
@@ -19,7 +20,7 @@ export class ObjectFormEffects {
|
|
|
19
20
|
this._applicationService = _applicationService;
|
|
20
21
|
this._toasterService = _toasterService;
|
|
21
22
|
this._autoSaveStore = inject(AutoSaveStore);
|
|
22
|
-
this.loadTemplatePending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadTemplatePending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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
24
|
if (objectId) {
|
|
24
25
|
return this._applicationService.getTemplate(apiPrefix, objectId).pipe(switchMap(({ templateSysName }) => ([
|
|
25
26
|
objectFormActions.loadTemplateSuccess({ templateSysName }),
|
|
@@ -32,7 +33,7 @@ export class ObjectFormEffects {
|
|
|
32
33
|
return of(objectFormActions.loadPreviewTemplatePending({ templateSysName }));
|
|
33
34
|
}
|
|
34
35
|
})));
|
|
35
|
-
this.loadPreviewTemplatePending = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadPreviewTemplatePending), map((props) => props.templateSysName), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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]) => {
|
|
36
37
|
return this._applicationService.getTemplateSettings(templateSysName).pipe(map((templateSettings) => {
|
|
37
38
|
const activeSection = templateSettings.sections.find((s) => s.sysName === sectionSysName);
|
|
38
39
|
if (!activeSection && templateSettings.sections.length) {
|
|
@@ -43,7 +44,7 @@ export class ObjectFormEffects {
|
|
|
43
44
|
return of(objectFormActions.loadPreviewTemplateError());
|
|
44
45
|
}));
|
|
45
46
|
})));
|
|
46
|
-
this.loadApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadObjectPending), map((props) => props.templateSysName), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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]) => {
|
|
47
48
|
const requests = [
|
|
48
49
|
this._applicationService.getTemplateSettings(templateSysName),
|
|
49
50
|
this._applicationService.getSectionValues(apiPrefix, objectId)
|
|
@@ -66,7 +67,7 @@ export class ObjectFormEffects {
|
|
|
66
67
|
return of(objectFormActions.loadObjectError());
|
|
67
68
|
}));
|
|
68
69
|
})));
|
|
69
|
-
this.checkCanUpdateValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.UpdateValues), map((props) => props.value), distinctUntilChanged(), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
70
|
+
this.checkCanUpdateValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.UpdateValues), map((props) => props.value), distinctUntilChanged(), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME))), tap(([_, templateSysName]) => {
|
|
70
71
|
if (templateSysName) {
|
|
71
72
|
return;
|
|
72
73
|
}
|
|
@@ -76,7 +77,7 @@ export class ObjectFormEffects {
|
|
|
76
77
|
this._autoSaveStore.start();
|
|
77
78
|
this._store.dispatch(objectFormActions.saveValuesPending());
|
|
78
79
|
})), { dispatch: false });
|
|
79
|
-
this.updateApplicationValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveValuesPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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]) => {
|
|
80
81
|
return this._applicationService.updateApplicationValues(apiPrefix, objectId, sectionValues).pipe(map((result) => {
|
|
81
82
|
this._autoSaveStore.success();
|
|
82
83
|
return objectFormActions.saveValuesSuccess({ result, objectId });
|
|
@@ -85,7 +86,7 @@ export class ObjectFormEffects {
|
|
|
85
86
|
return of(objectFormActions.saveValuesError());
|
|
86
87
|
}));
|
|
87
88
|
})));
|
|
88
|
-
this.saveApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveObjectPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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]) => {
|
|
89
90
|
return this._applicationService.saveApplication(apiPrefix, objectId).pipe(map(() => {
|
|
90
91
|
this._toasterService.show({
|
|
91
92
|
title: 'Сохранено успешно',
|
|
@@ -100,13 +101,13 @@ export class ObjectFormEffects {
|
|
|
100
101
|
return of(objectFormActions.saveObjectError());
|
|
101
102
|
}));
|
|
102
103
|
})));
|
|
103
|
-
this.copyApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.CopyObjectPending), map((action) => action), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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]) => {
|
|
104
105
|
return this._applicationService.copyApplication(apiPrefix, action).pipe(map((result) => {
|
|
105
106
|
this._toasterService.show({
|
|
106
107
|
title: 'Копировнаие прошло успешно',
|
|
107
108
|
type: ToasterType.Positive
|
|
108
109
|
});
|
|
109
|
-
window.open(
|
|
110
|
+
window.open(`/form/${apiPrefix}/` + result.id, '_blank');
|
|
110
111
|
return objectFormActions.copyObjectSuccess();
|
|
111
112
|
}), catchError(() => {
|
|
112
113
|
this._toasterService.show({
|
|
@@ -116,14 +117,14 @@ export class ObjectFormEffects {
|
|
|
116
117
|
return of(objectFormActions.copyObjectError());
|
|
117
118
|
}));
|
|
118
119
|
})), { dispatch: false });
|
|
119
|
-
this.loadSectionFilesPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadSectionFilesPending), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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]) => {
|
|
120
121
|
return this._applicationService.getSectionFiles(apiPrefix, objectId, sectionSysName).pipe(map((sectionFiles) => {
|
|
121
122
|
return objectFormActions.loadSectionFilesSuccess({ sectionFiles: sectionFiles });
|
|
122
123
|
}), catchError(() => {
|
|
123
124
|
return of(objectFormActions.loadSectionFilesError());
|
|
124
125
|
}));
|
|
125
126
|
})));
|
|
126
|
-
this.printDocument$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.PrintDocument), withLatestFrom(this._store.select(sharedSelectors.selectRouteNestedParam(
|
|
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]) => {
|
|
127
128
|
console.log('печать документа ' + objectId);
|
|
128
129
|
window.open(`/form/api/v2/${apiPrefix}/${objectId}/print`, '_blank');
|
|
129
130
|
})), { dispatch: false });
|
|
@@ -134,4 +135,4 @@ export class ObjectFormEffects {
|
|
|
134
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectFormEffects, decorators: [{
|
|
135
136
|
type: Injectable
|
|
136
137
|
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Store }, { type: i3.Router }, { type: i4.ObjectFormService }, { type: i5.ToasterService }] });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9zdG9yZS9vYmplY3QtZm9ybS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHdkYsT0FBTyxFQUFFLGFBQWEsRUFBa0IsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBRzFELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDVSxTQUFrQixFQUNsQixNQUFhLEVBQ2IsT0FBZSxFQUNmLG1CQUFzQyxFQUN0QyxlQUErQjtRQUovQixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQU87UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2Ysd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFtQjtRQUN0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFQakMsbUJBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFXL0MseUJBQW9C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QUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFwT3RCLENBQUM7K0dBVlUsaUJBQWlCO21IQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHtcclxuICBjYXRjaEVycm9yLFxyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBtYXAsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIHRhcCxcclxuICB3aXRoTGF0ZXN0RnJvbVxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBPYmplY3RGb3JtU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL29iamVjdC1mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycywgRUFwcGxpY2F0aW9uQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE9iamVjdFZhbHVlc0R0bywgVmFsdWVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEF1dG9TYXZlU3RvcmUsIFRvYXN0ZXJTZXJ2aWNlLCBUb2FzdGVyVHlwZSB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlLCBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBzaGFyZWRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9zdG9yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtRWZmZWN0cyB7XHJcbiAgcHJpdmF0ZSBfYXV0b1NhdmVTdG9yZSA9IGluamVjdChBdXRvU2F2ZVN0b3JlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9hY3Rpb25zJDogQWN0aW9ucyxcclxuICAgIHByaXZhdGUgX3N0b3JlOiBTdG9yZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfYXBwbGljYXRpb25TZXJ2aWNlOiBPYmplY3RGb3JtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbG9hZFRlbXBsYXRlUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkxvYWRUZW1wbGF0ZVBlbmRpbmcpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnYXBpUHJlZml4JykpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ29iamVjdElkJykpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ3RlbXBsYXRlU3lzTmFtZScpKSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFtfLCBhcGlQcmVmaXgsIG9iamVjdElkLCB0ZW1wbGF0ZVN5c05hbWVdKSA9PiB7XHJcblxyXG4gICAgICBpZiAob2JqZWN0SWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbGljYXRpb25TZXJ2aWNlLmdldFRlbXBsYXRlKGFwaVByZWZpeCwgb2JqZWN0SWQpLnBpcGUoXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHt0ZW1wbGF0ZVN5c05hbWV9KSA9PiAoW1xyXG4gICAgICAgICAgICBvYmplY3RGb3JtQWN0aW9ucy5sb2FkVGVtcGxhdGVTdWNjZXNzKHt0ZW1wbGF0ZVN5c05hbWV9KSxcclxuICAgICAgICAgICAgb2JqZWN0Rm9ybUFjdGlvbnMubG9hZE9iamVjdFBlbmRpbmcoe3RlbXBsYXRlU3lzTmFtZX0pXHJcbiAgICAgICAgICBdKSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRUZW1wbGF0ZUVycm9yKCkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBvZihvYmplY3RGb3JtQWN0aW9ucy5sb2FkUHJldmlld1RlbXBsYXRlUGVuZGluZyh7dGVtcGxhdGVTeXNOYW1lfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KSlcclxuICApO1xyXG5cclxuICBsb2FkUHJldmlld1RlbXBsYXRlUGVuZGluZyA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLl9hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVBcHBsaWNhdGlvbkFjdGlvbnMuTG9hZFByZXZpZXdUZW1wbGF0ZVBlbmRpbmcpLFxyXG4gICAgbWFwKChwcm9wczogeyB0ZW1wbGF0ZVN5c05hbWU6IHN0cmluZyB9KSA9PiBwcm9wcy50ZW1wbGF0ZVN5c05hbWUpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnYXBpUHJlZml4JykpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ3NlY3Rpb25TeXNOYW1lJykpLFxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcCgoW3RlbXBsYXRlU3lzTmFtZSwgYXBpUHJlZml4LCBzZWN0aW9uU3lzTmFtZV0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRUZW1wbGF0ZVNldHRpbmdzKHRlbXBsYXRlU3lzTmFtZSkucGlwZShcclxuICAgICAgICBtYXAoKHRlbXBsYXRlU2V0dGluZ3MpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGFjdGl2ZVNlY3Rpb24gPSB0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zLmZpbmQoXHJcbiAgICAgICAgICAgIChzOiBDb21wb25lbnRNb2RlbEJhc2UpID0+IHMuc3lzTmFtZSA9PT0gc2VjdGlvblN5c05hbWVcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgaWYgKCFhY3RpdmVTZWN0aW9uICYmIHRlbXBsYXRlU2V0dGluZ3Muc2VjdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbYC9mb3JtLyR7YXBpUHJlZml4fS9wcmV2aWV3LyR7dGVtcGxhdGVTeXNOYW1lfS8ke3RlbXBsYXRlU2V0dGluZ3Muc2VjdGlvbnNbMF0uc3lzTmFtZX1gXSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRQcmV2aWV3VGVtcGxhdGVTdWNjZXNzKHt0ZW1wbGF0ZVNldHRpbmdzLCB0ZW1wbGF0ZVN5c05hbWV9KTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRQcmV2aWV3VGVtcGxhdGVFcnJvcigpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgbG9hZEFwcGxpY2F0aW9uUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkxvYWRPYmplY3RQZW5kaW5nKSxcclxuICAgIG1hcCgocHJvcHM6IHsgdGVtcGxhdGVTeXNOYW1lOiBzdHJpbmcgfSkgPT4gcHJvcHMudGVtcGxhdGVTeXNOYW1lKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ2FwaVByZWZpeCcpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKCdvYmplY3RJZCcpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKCdzZWN0aW9uU3lzTmFtZScpKSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFt0ZW1wbGF0ZVN5c05hbWUsIGFwaVByZWZpeCwgb2JqZWN0SWQsIHNlY3Rpb25TeXNOYW1lXSkgPT4ge1xyXG4gICAgICBjb25zdCByZXF1ZXN0czogW09ic2VydmFibGU8VGVtcGxhdGVNb2RlbD4sIE9ic2VydmFibGU8T2JqZWN0VmFsdWVzRHRvPl0gPSBbXHJcbiAgICAgICAgdGhpcy5fYXBwbGljYXRpb25TZXJ2aWNlLmdldFRlbXBsYXRlU2V0dGluZ3ModGVtcGxhdGVTeXNOYW1lKSxcclxuICAgICAgICB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2UuZ2V0U2VjdGlvblZhbHVlcyhhcGlQcmVmaXgsIG9iamVjdElkKVxyXG4gICAgICBdO1xyXG5cclxuICAgICAgcmV0dXJuIGZvcmtKb2luKHJlcXVlc3RzKS5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW3RlbXBsYXRlU2V0dGluZ3MsIHZhbHVlRHRvXSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgYWN0aXZlU2VjdGlvbiA9IHRlbXBsYXRlU2V0dGluZ3Muc2VjdGlvbnMuZmluZChcclxuICAgICAgICAgICAgKHM6IENvbXBvbmVudE1vZGVsQmFzZSkgPT4gcy5zeXNOYW1lID09PSBzZWN0aW9uU3lzTmFtZVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICBpZiAoIWFjdGl2ZVNlY3Rpb24gJiYgdGVtcGxhdGVTZXR0aW5ncy5zZWN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtgL2Zvcm0vJHthcGlQcmVmaXh9LyR7b2JqZWN0SWR9LyR7dGVtcGxhdGVTZXR0aW5ncy5zZWN0aW9uc1swXS5zeXNOYW1lfWBdKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBvYmplY3RGb3JtQWN0aW9ucy5sb2FkT2JqZWN0U3VjY2Vzcyh7XHJcbiAgICAgICAgICAgICAgdGVtcGxhdGVTZXR0aW5nczogdGVtcGxhdGVTZXR0aW5ncyxcclxuICAgICAgICAgICAgICBzZWN0aW9uVmFsdWVzOiB2YWx1ZUR0by52YWx1ZS5zZWN0aW9uVmFsdWVzLFxyXG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uSWQ6IG9iamVjdElkLFxyXG4gICAgICAgICAgICAgIGlzRHJhZnQ6IHZhbHVlRHRvLmlzRHJhZnRcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9iamVjdEZvcm1BY3Rpb25zLmNoZWNrQWxsRGVwZW5kZW5jeVJ1bGVzKClcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMubG9hZE9iamVjdEVycm9yKCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSlcclxuICApO1xyXG5cclxuICBjaGVja0NhblVwZGF0ZVZhbHVlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlVwZGF0ZVZhbHVlcyksXHJcbiAgICBtYXAoKHByb3BzOiB7IHZhbHVlOiBWYWx1ZU1vZGVsIHwgVmFsdWVNb2RlbFtdIH0pID0+IHByb3BzLnZhbHVlKSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKCd0ZW1wbGF0ZVN5c05hbWUnKSksXHJcbiAgICApLFxyXG4gICAgdGFwKChbdmFsdWUsIHRlbXBsYXRlU3lzTmFtZV0pID0+IHtcclxuICAgICAgaWYgKHRlbXBsYXRlU3lzTmFtZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMuYWNjZXNzVXBkYXRlVmFsdWVzKCkpO1xyXG4gICAgfSlcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIHNhdmVWYWx1ZXNEZWJvdW5jZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5BY2Nlc3NVcGRhdGVWYWx1ZXMpLFxyXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgIGRlYm91bmNlVGltZSgxNTAwKSxcclxuICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2F1dG9TYXZlU3RvcmUuc3RhcnQoKTtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZVZhbHVlc1BlbmRpbmcoKSk7XHJcbiAgICB9KVxyXG4gICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuXHJcbiAgdXBkYXRlQXBwbGljYXRpb25WYWx1ZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5TYXZlVmFsdWVzUGVuZGluZyksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKCdhcGlQcmVmaXgnKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnb2JqZWN0SWQnKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFNlY3Rpb25WYWx1ZXMpLFxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcCgoW18sIGFwaVByZWZpeCwgb2JqZWN0SWQsIHNlY3Rpb25WYWx1ZXNdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2UudXBkYXRlQXBwbGljYXRpb25WYWx1ZXMoYXBpUHJlZml4LCBvYmplY3RJZCwgc2VjdGlvblZhbHVlcykucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5zdWNjZXNzKCk7XHJcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZVZhbHVlc1N1Y2Nlc3Moe3Jlc3VsdCwgb2JqZWN0SWR9KTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5lcnJvcigpO1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLnNhdmVWYWx1ZXNFcnJvcigpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgc2F2ZUFwcGxpY2F0aW9uUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlNhdmVPYmplY3RQZW5kaW5nKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ2FwaVByZWZpeCcpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKCdvYmplY3RJZCcpKVxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcCgoW18sIGFwaVByZWZpeCwgb2JqZWN0SWRdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2Uuc2F2ZUFwcGxpY2F0aW9uKGFwaVByZWZpeCwgb2JqZWN0SWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3RvYXN0ZXJTZXJ2aWNlLnNob3coe1xyXG4gICAgICAgICAgICB0aXRsZTogJ9Ch0L7RhdGA0LDQvdC10L3QviDRg9GB0L/QtdGI0L3QvicsXHJcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0ZXJUeXBlLlBvc2l0aXZlXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Rm9ybUFjdGlvbnMuc2F2ZU9iamVjdFN1Y2Nlc3MoKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3RvYXN0ZXJTZXJ2aWNlLnNob3coe1xyXG4gICAgICAgICAgICB0aXRsZTogJ9CS0L7Qt9C90LjQutC70Lgg0L7RiNC40LHQutC4INC/0YDQuCDRgdC+0YXRgNCw0L3QtdC90LjQuCwg0L/QvtCy0YLQvtGA0LjRgtC1JyxcclxuICAgICAgICAgICAgdHlwZTogVG9hc3RlclR5cGUuTmVnYXRpdmVcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHJldHVybiBvZihvYmplY3RGb3JtQWN0aW9ucy5zYXZlT2JqZWN0RXJyb3IoKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKVxyXG4gICk7XHJcblxyXG4gIGNvcHlBcHBsaWNhdGlvblBlbmRpbmckID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5Db3B5T2JqZWN0UGVuZGluZyksXHJcbiAgICBtYXAoKGFjdGlvbjogeyBzb3VyY2VJZDogc3RyaW5nLCB0YXJnZXRUZW1wbGF0ZVN5c05hbWU6IHN0cmluZyB9KSA9PiBhY3Rpb24pLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnYXBpUHJlZml4JykpXHJcbiAgICApLFxyXG4gICAgc3dpdGNoTWFwKChbYWN0aW9uLCBhcGlQcmVmaXhdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2UuY29weUFwcGxpY2F0aW9uKGFwaVByZWZpeCwgYWN0aW9uKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl90b2FzdGVyU2VydmljZS5zaG93KHtcclxuICAgICAgICAgICAgdGl0bGU6ICfQmtC+0L/QuNGA0L7QstC90LDQuNC1INC/0YDQvtGI0LvQviDRg9GB0L/QtdGI0L3QvicsXHJcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0ZXJUeXBlLlBvc2l0aXZlXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB3aW5kb3cub3BlbignL2Zvcm0vYXBwbGljYXRpb24vJyArIHJlc3VsdC5pZCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgcmV0dXJuIG9iamVjdEZvcm1BY3Rpb25zLmNvcHlPYmplY3RTdWNjZXNzKCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl90b2FzdGVyU2VydmljZS5zaG93KHtcclxuICAgICAgICAgICAgdGl0bGU6ICfQktC+0LfQvdC40LrQu9C4INC+0YjQuNCx0LrQuCDQv9GA0Lgg0LrQvtC/0LjRgNC+0LLQsNC90LjQuCDQt9Cw0Y/QstC60LgsINC/0L7QstGC0L7RgNC40YLQtScsXHJcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0ZXJUeXBlLk5lZ2F0aXZlXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMuY29weU9iamVjdEVycm9yKCkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuXHJcbiAgbG9hZFNlY3Rpb25GaWxlc1BlbmRpbmckID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuX2FjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUFwcGxpY2F0aW9uQWN0aW9ucy5Mb2FkU2VjdGlvbkZpbGVzUGVuZGluZyksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKCdhcGlQcmVmaXgnKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnb2JqZWN0SWQnKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnc2VjdGlvblN5c05hbWUnKSksXHJcbiAgICApLFxyXG4gICAgc3dpdGNoTWFwKChbXywgYXBpUHJlZml4LCBvYmplY3RJZCwgc2VjdGlvblN5c05hbWVdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2UuZ2V0U2VjdGlvbkZpbGVzKGFwaVByZWZpeCwgb2JqZWN0SWQsIHNlY3Rpb25TeXNOYW1lKS5waXBlKFxyXG4gICAgICAgIG1hcCgoc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRTZWN0aW9uRmlsZXNTdWNjZXNzKHtzZWN0aW9uRmlsZXM6IHNlY3Rpb25GaWxlc30pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG9iamVjdEZvcm1BY3Rpb25zLmxvYWRTZWN0aW9uRmlsZXNFcnJvcigpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgcHJpbnREb2N1bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLlByaW50RG9jdW1lbnQpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbSgnYXBpUHJlZml4JykpLFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ29iamVjdElkJykpLFxyXG4gICAgKSxcclxuICAgIHRhcCgoW18sIGFwaVByZWZpeCwgb2JqZWN0SWRdKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCfQv9C10YfQsNGC0Ywg0LTQvtC60YPQvNC10L3RgtCwICcgKyBvYmplY3RJZCk7XHJcblxyXG4gICAgICB3aW5kb3cub3BlbihgL2Zvcm0vYXBpL3YyLyR7YXBpUHJlZml4fS8ke29iamVjdElkfS9wcmludGAsICdfYmxhbmsnKTtcclxuICAgIH0pXHJcbiAgKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG59XHJcbiJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9zdG9yZS9vYmplY3QtZm9ybS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JILE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd2RixPQUFPLEVBQUUsYUFBYSxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFHOUcsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUNVLFNBQWtCLEVBQ2xCLE1BQWEsRUFDYixPQUFlLEVBQ2YsbUJBQXNDLEVBQ3RDLGVBQStCO1FBSi9CLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW1CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQVBqQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQVcvQyx5QkFBb0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzNELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUMvQyxjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQzNFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUNuRixFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLEVBQUUsRUFBRTtZQUV0RCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUNuRSxTQUFTLENBQUMsQ0FBQyxFQUFDLGVBQWUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNoQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDO29CQUN4RCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDO2lCQUN2RCxDQUFDLENBQUMsRUFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQywwQkFBMEIsQ0FBQyxFQUFDLGVBQWUsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUM3RSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FDSixDQUFDO1FBRUYsK0JBQTBCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsRUFDdEQsR0FBRyxDQUFDLENBQUMsS0FBa0MsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUNsRSxjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQzNFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQ2xGLEVBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUN2RSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO2dCQUN2QixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNsRCxDQUFDLENBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUN4RCxDQUFDO2dCQUVGLElBQUksQ0FBQyxhQUFhLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsU0FBUyxZQUFZLGVBQWUsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuSCxDQUFDO2dCQUVELE9BQU8saUJBQWlCLENBQUMsMEJBQTBCLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDO1lBQzNGLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUVGLDRCQUF1QixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDOUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEVBQzdDLEdBQUcsQ0FBQyxDQUFDLEtBQWtDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFDbEUsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsRUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FDbEYsRUFDRCxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUU7WUFDbkUsTUFBTSxRQUFRLEdBQTZEO2dCQUN6RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQzthQUMvRCxDQUFDO1lBRUYsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2xELENBQUMsQ0FBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQ3hELENBQUM7Z0JBRUYsSUFBSSxDQUFDLGFBQWEsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxTQUFTLElBQUksUUFBUSxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BHLENBQUM7Z0JBRUQsT0FBTztvQkFDTCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDbEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO3dCQUNsQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhO3dCQUMzQyxhQUFhLEVBQUUsUUFBUTt3QkFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO3FCQUMxQixDQUFDO29CQUNGLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFO2lCQUM1QyxDQUFDO1lBQ0osQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRiwwQkFBcUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFDeEMsR0FBRyxDQUFDLENBQUMsS0FBMkMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUNqRSxvQkFBb0IsRUFBRSxFQUN0QixjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FDbkYsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQzNCLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUNILEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzNELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUM5QyxvQkFBb0IsRUFBRSxFQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLEVBQ2xCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FDSCxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFFdEIsNkJBQXdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMvRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsRUFDN0MsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsRUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FDNUQsRUFDRCxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQzlGLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8saUJBQWlCLENBQUMsaUJBQWlCLENBQUMsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztZQUNqRSxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FDSixDQUFDO1FBRUYsNEJBQXVCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM5RCxNQUFNLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsRUFDN0MsY0FBYyxDQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FDM0UsRUFDRCxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDeEIsS0FBSyxFQUFFLG1CQUFtQjtvQkFDMUIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRO2lCQUMzQixDQUFDLENBQUM7Z0JBRUgsT0FBTyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9DLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ3hCLEtBQUssRUFBRSwyQ0FBMkM7b0JBQ2xELElBQUksRUFBRSxXQUFXLENBQUMsUUFBUTtpQkFDM0IsQ0FBQyxDQUFDO2dCQUVILE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUVGLDRCQUF1QixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDOUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEVBQzdDLEdBQUcsQ0FBQyxDQUFDLE1BQTJELEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUM1RSxjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQzVFLEVBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDckUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ3hCLEtBQUssRUFBRSw0QkFBNEI7b0JBQ25DLElBQUksRUFBRSxXQUFXLENBQUMsUUFBUTtpQkFDM0IsQ0FBQyxDQUFDO2dCQUVILE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxTQUFTLEdBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUV6RCxPQUFPLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDeEIsS0FBSyxFQUFFLG1EQUFtRDtvQkFDMUQsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRO2lCQUMzQixDQUFDLENBQUM7Z0JBRUgsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBRTFCLDZCQUF3QixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDL0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLEVBQ25ELGNBQWMsQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsRUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQ2xGLEVBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ3JELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDdkYsR0FBRyxDQUFDLENBQUMsWUFBeUIsRUFBRSxFQUFFO2dCQUNoQyxPQUFPLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLEVBQUMsWUFBWSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUM7WUFDakYsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUVGLG1CQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNyRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEVBQ3pDLGNBQWMsQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsRUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQzNFLEVBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUU1QyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixTQUFTLElBQUksUUFBUSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQ0gsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBck90QixDQUFDOytHQVZVLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycywgRUFwcGxpY2F0aW9uQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE9iamVjdFZhbHVlc0R0bywgVmFsdWVNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEF1dG9TYXZlU3RvcmUsIFRvYXN0ZXJTZXJ2aWNlLCBUb2FzdGVyVHlwZSB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWxCYXNlLCBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBzaGFyZWRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9zdG9yZSc7XHJcbmltcG9ydCB7IEFQSV9QUkVGSVhfTkFNRSwgT0JKRUNUX0lEX05BTUUsIFNFQ1RJT05fU1lTX05BTUVfTkFNRSwgVEVNUExBVEVfU1lTX05BTUVfTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtRWZmZWN0cyB7XHJcbiAgcHJpdmF0ZSBfYXV0b1NhdmVTdG9yZSA9IGluamVjdChBdXRvU2F2ZVN0b3JlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9hY3Rpb25zJDogQWN0aW9ucyxcclxuICAgIHByaXZhdGUgX3N0b3JlOiBTdG9yZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfYXBwbGljYXRpb25TZXJ2aWNlOiBPYmplY3RGb3JtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbG9hZFRlbXBsYXRlUGVuZGluZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkxvYWRUZW1wbGF0ZVBlbmRpbmcpLFxyXG4gICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShBUElfUFJFRklYX05BTUUpKSxcclxuICAgICAgdGhpcy5fc3RvcmUuc2VsZWN0KHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKE9CSkVDVF9JRF9OQU1FKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShURU1QTEFURV9TWVNfTkFNRV9OQU1FKSksXHJcbiAgICApLFxyXG4gICAgc3dpdGNoTWFwKChbXywgYXBpUHJlZml4LCBvYmplY3RJZCwgdGVtcGxhdGVTeXNOYW1lXSkgPT4ge1xyXG5cclxuICAgICAgaWYgKG9iamVjdElkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9uU2VydmljZS5nZXRUZW1wbGF0ZShhcGlQcmVmaXgsIG9iamVjdElkKS5waXBlKFxyXG4gICAgICAgICAgc3dpdGNoTWFwKCh7dGVtcGxhdGVTeXNOYW1lfSkgPT4gKFtcclxuICAgICAgICAgICAgb2JqZWN0Rm9ybUFjdGlvbnMubG9hZFRlbXBsYXRlU3VjY2Vzcyh7dGVtcGxhdGVTeXNOYW1lfSksXHJcbiAgICAgICAgICAgIG9iamVjdEZvcm1BY3Rpb25zLmxvYWRPYmplY3RQZW5kaW5nKHt0ZW1wbGF0ZVN5c05hbWV9KVxyXG4gICAgICAgICAgXSkpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZihvYmplY3RGb3JtQWN0aW9ucy5sb2FkVGVtcGxhdGVFcnJvcigpKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gb2Yob2JqZWN0Rm9ybUFjdGlvbnMubG9hZFByZXZpZXdUZW1wbGF0ZVBlbmRpbmcoe3RlbXBsYXRlU3lzTmFtZX0pKTtcclxuICAgICAgfVxyXG4gICAgfSkpXHJcbiAgKTtcclxuXHJcbiAgbG9hZFByZXZpZXdUZW1wbGF0ZVBlbmRpbmcgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5fYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQXBwbGljYXRpb25BY3Rpb25zLkxvYWRQcmV2aWV3VGVtcGxhdGVQZW5kaW5nKSxcclxuICAgIG1hcCgocHJvcHM6IHsgdGVtcGxhdGVTeXNOYW1lOiBzdHJpbmcgfSkgPT4gcHJvcHMudGVtcGxhdGVTeXNOYW1lKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qoc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oQVBJX1BSRUZJWF9OQU1FKSksXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzaGFyZWRTZWxlY3RvcnMuc2VsZWN0Um91dGVOZXN0ZWRQYXJhbShTRUNUSU9OX1NZU19OQU1FX05BTUUpKSxcclxuICAgICksXHJcbiAgICBzd2l0Y2hNYXAoKFt0ZW1wbGF0ZVN5c05hbWUsIGFwaVByZWZpeCwgc2VjdGlvblN5c05hbWVdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvblNlcnZpY2UuZ2V0VGVtcGxhdGVTZXR0aW5ncyh0ZW1wbGF0ZVN5c05hbWUpLnBpcGUoXHJcbiAgICAgICAgbWFwKCh0ZW1wbGF0ZVNldHRpbmdzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBhY3RpdmVTZWN0aW9uID0gdGVtcGxhdGVTZXR0aW5ncy5zZWN0aW9ucy5maW5kKFxyXG4gICAgICAgICAgICAoczogQ29tcG9uZW50TW9kZWxCYXNlKSA9PiBzLnN5c05hbWUgPT09IHNlY3Rpb25TeXNOYW1lXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGlmICghYWN0aXZlU2VjdGlvbiAmJiB0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW2AvZm9ybS8ke2FwaVByZWZpeH0vcHJldmlldy8ke3RlbXBsYXRlU3lzTmFtZX0vJHt0ZW1wbGF0ZVNldHRpbmdzLnNlY3Rpb25zWzBdLnN5c05hbWV9YF0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiBvYmplY3RGb3JtQWN0aW9ucy5sb2FkUHJldmlld1RlbXBsYXRlU3VjY2Vzcyh7dGVtcGxhdGVTZXR0aW5ncywgdGVtcGxhdGVTeXNOYW1lfSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+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=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
2
|
-
import { STATE_NAME } from '../constants';
|
|
2
|
+
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);
|
|
@@ -12,9 +12,9 @@ export const selectSectionSettings = createSelector(objectFeature, sharedSelecto
|
|
|
12
12
|
return state.settings?.sections.find(s => s.sysName === sectionSysName) || null;
|
|
13
13
|
});
|
|
14
14
|
export const selectSectionValues = createSelector(objectFeature, (state) => state.sectionValues);
|
|
15
|
-
export const selectObjectId = createSelector(sharedSelectors.selectRouteNestedParam(
|
|
15
|
+
export const selectObjectId = createSelector(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME), (applicationId) => applicationId);
|
|
16
16
|
export const selectSectionFiles = createSelector(objectFeature, (state) => state.sectionFiles);
|
|
17
17
|
export const selectTemplateSysName = createSelector(objectFeature, (state) => state.settings?.sysName);
|
|
18
18
|
export const selectValueModel = (settings) => createSelector(objectFeature, (state) => getValueModel(settings, state.sectionValues));
|
|
19
19
|
export const selectDependencyRulesResults = createSelector(objectFeature, state => state.dependencyRuleCheckResults);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vc3RvcmUvb2JqZWN0LWZvcm0uc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBa0IsVUFBVSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FDM0MsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGNBQWMsQ0FDckQsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUN0RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDMUMsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FDakQsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FDbEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQzNDLGFBQWEsRUFDYixDQUFDLEtBQXNCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQzVDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQ2pELGFBQWEsRUFDYixlQUFlLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsRUFDeEQsQ0FBQyxLQUFzQixFQUFFLGNBQXNCLEVBQUUsRUFBRTtJQUNqRCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxDQUFBO0FBQ2pGLENBQUMsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUMvQyxhQUFhLEVBQ2IsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUNoRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDMUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUN0RCxDQUFDLGFBQXFCLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FDekMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FDOUMsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDL0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FDakQsYUFBYSxFQUNiLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQ3BELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQTRCLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDOUUsYUFBYSxFQUNiLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FDeEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLGNBQWMsQ0FDeEQsYUFBYSxFQUNiLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUMxQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgT2JqZWN0Rm9ybVN0YXRlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBPQkpFQ1RfSURfTkFNRSwgU1RBVEVfTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENvbXBvbmVudE1vZGVsQmFzZSB9IGZyb20gJy4uLy4uL3NoYXJlZC1mb3JtL21vZGVscyc7XHJcbmltcG9ydCB7IHNoYXJlZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3NoYXJlZC1mb3JtL3N0b3JlJztcclxuaW1wb3J0IHsgZ2V0VmFsdWVNb2RlbCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuY29uc3Qgb2JqZWN0RmVhdHVyZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxPYmplY3RGb3JtU3RhdGU+KFNUQVRFX05BTUUpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdElzTG9hZGluZyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLmlzTG9hZGluZ1xyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdElzT2JqZWN0U2F2ZUxvYWRpbmcgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIChzdGF0ZTogT2JqZWN0Rm9ybVN0YXRlKSA9PiBzdGF0ZS5pc09iamVjdFNhdmVMb2FkaW5nXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0SXNFZGl0ZWQgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIChzdGF0ZTogT2JqZWN0Rm9ybVN0YXRlKSA9PiBzdGF0ZS5pc0VkaXRlZFxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdElzQ2hlY2tSZXF1aXJlZCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLmlzQ2hlY2tSZXF1aXJlZFxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdE1lbnVNb2RlbCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLm1lbnVNb2RlbFxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdFNlY3Rpb25TZXR0aW5ncyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgc2hhcmVkU2VsZWN0b3JzLnNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oJ3NlY3Rpb25TeXNOYW1lJyksXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUsIHNlY3Rpb25TeXNOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgIHJldHVybiBzdGF0ZS5zZXR0aW5ncz8uc2VjdGlvbnMuZmluZChzID0+IHMuc3lzTmFtZSA9PT0gc2VjdGlvblN5c05hbWUpIHx8IG51bGxcclxuICB9XHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VjdGlvblZhbHVlcyA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlOiBPYmplY3RGb3JtU3RhdGUpID0+IHN0YXRlLnNlY3Rpb25WYWx1ZXNcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RPYmplY3RJZCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIHNoYXJlZFNlbGVjdG9ycy5zZWxlY3RSb3V0ZU5lc3RlZFBhcmFtKE9CSkVDVF9JRF9OQU1FKSxcclxuICAoYXBwbGljYXRpb25JZDogc3RyaW5nKSA9PiBhcHBsaWNhdGlvbklkXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VjdGlvbkZpbGVzID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuc2VjdGlvbkZpbGVzXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0VGVtcGxhdGVTeXNOYW1lID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgb2JqZWN0RmVhdHVyZSxcclxuICAoc3RhdGU6IE9iamVjdEZvcm1TdGF0ZSkgPT4gc3RhdGUuc2V0dGluZ3M/LnN5c05hbWVcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RWYWx1ZU1vZGVsID0gKHNldHRpbmdzOiBDb21wb25lbnRNb2RlbEJhc2UpID0+IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIG9iamVjdEZlYXR1cmUsXHJcbiAgKHN0YXRlKSA9PiBnZXRWYWx1ZU1vZGVsKHNldHRpbmdzLCBzdGF0ZS5zZWN0aW9uVmFsdWVzKVxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdERlcGVuZGVuY3lSdWxlc1Jlc3VsdHMgPSBjcmVhdGVTZWxlY3RvcihcclxuICBvYmplY3RGZWF0dXJlLFxyXG4gIHN0YXRlID0+IHN0YXRlLmRlcGVuZGVuY3lSdWxlQ2hlY2tSZXN1bHRzXHJcbilcclxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createSelector } from '@ngrx/store';
|
|
2
2
|
import { selectQueryParam, selectRouteParam, selectRouter } from '@myrtex-org/ui-composite';
|
|
3
|
+
import { SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from '../../object-form/constants';
|
|
3
4
|
export const selectRouteNestedParams = createSelector(selectRouter, (router) => {
|
|
4
5
|
let currentRoute = router?.state?.root;
|
|
5
6
|
let params = {};
|
|
@@ -15,13 +16,13 @@ export const selectRouteNestedParams = createSelector(selectRouter, (router) =>
|
|
|
15
16
|
export const selectRouteNestedParam = (param) => createSelector(selectRouteNestedParams, (params) => {
|
|
16
17
|
return params && params[param];
|
|
17
18
|
});
|
|
18
|
-
export const selectTemplateSysName = createSelector(selectRouteNestedParam(
|
|
19
|
+
export const selectTemplateSysName = createSelector(selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME), (rparam) => {
|
|
19
20
|
return rparam || null;
|
|
20
21
|
});
|
|
21
22
|
export const selectIdFromQuery = createSelector(selectQueryParam('id'), (rparam) => {
|
|
22
23
|
return rparam || null;
|
|
23
24
|
});
|
|
24
|
-
export const selectSectionSysName = createSelector(selectRouteParam(
|
|
25
|
+
export const selectSectionSysName = createSelector(selectRouteParam(SECTION_SYS_NAME_NAME), (rparam) => {
|
|
25
26
|
return rparam || null;
|
|
26
27
|
});
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWZvcm0uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvc2hhcmVkLWZvcm0vc3RvcmUvc2hhcmVkLWZvcm0uc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQzdFLElBQUksWUFBWSxHQUFHLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBRXZDLElBQUksTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUV4QixPQUFPLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUN2QyxNQUFNLEdBQUc7WUFDUCxHQUFHLE1BQU07WUFDVCxHQUFHLFlBQVksQ0FBQyxNQUFNO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLHVCQUF1QixFQUM3RixDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQ1QsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBRUwsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUNqRCxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUM5QyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtJQUM3QixPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUM7QUFDeEIsQ0FBQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQzdDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUN0QixDQUFDLE1BQW1DLEVBQUUsRUFBRTtJQUN0QyxPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUM7QUFDeEIsQ0FBQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLENBQ2hELGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQ3ZDLENBQUMsTUFBMEIsRUFBRSxFQUFFO0lBQzdCLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQztBQUN4QixDQUFDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBzZWxlY3RRdWVyeVBhcmFtLCBzZWxlY3RSb3V0ZVBhcmFtLCBzZWxlY3RSb3V0ZXIgfSBmcm9tICdAbXlydGV4LW9yZy91aS1jb21wb3NpdGUnO1xyXG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTRUNUSU9OX1NZU19OQU1FX05BTUUsIFRFTVBMQVRFX1NZU19OQU1FX05BTUUgfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdFJvdXRlTmVzdGVkUGFyYW1zID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0Um91dGVyLCAocm91dGVyKSA9PiB7XHJcbiAgbGV0IGN1cnJlbnRSb3V0ZSA9IHJvdXRlcj8uc3RhdGU/LnJvb3Q7XHJcblxyXG4gIGxldCBwYXJhbXM6IFBhcmFtcyA9IHt9O1xyXG5cclxuICB3aGlsZSAoY3VycmVudFJvdXRlPy5maXJzdENoaWxkKSB7XHJcbiAgICBjdXJyZW50Um91dGUgPSBjdXJyZW50Um91dGUuZmlyc3RDaGlsZDtcclxuICAgIHBhcmFtcyA9IHtcclxuICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAuLi5jdXJyZW50Um91dGUucGFyYW1zLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJldHVybiBwYXJhbXM7XHJcbn0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdFJvdXRlTmVzdGVkUGFyYW0gPSAocGFyYW06IHN0cmluZykgPT4gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0Um91dGVOZXN0ZWRQYXJhbXMsXHJcbiAgKHBhcmFtcykgPT4ge1xyXG4gICAgcmV0dXJuIHBhcmFtcyAmJiBwYXJhbXNbcGFyYW1dO1xyXG4gIH0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdFRlbXBsYXRlU3lzTmFtZSA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gIHNlbGVjdFJvdXRlTmVzdGVkUGFyYW0oVEVNUExBVEVfU1lTX05BTUVfTkFNRSksXHJcbiAgKHJwYXJhbTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICByZXR1cm4gcnBhcmFtIHx8IG51bGw7XHJcbiAgfVxyXG4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNlbGVjdElkRnJvbVF1ZXJ5ID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgc2VsZWN0UXVlcnlQYXJhbSgnaWQnKSxcclxuICAocnBhcmFtOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICAgIHJldHVybiBycGFyYW0gfHwgbnVsbDtcclxuICB9XHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VjdGlvblN5c05hbWUgPSBjcmVhdGVTZWxlY3RvcihcclxuICBzZWxlY3RSb3V0ZVBhcmFtKFNFQ1RJT05fU1lTX05BTUVfTkFNRSksXHJcbiAgKHJwYXJhbTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICByZXR1cm4gcnBhcmFtIHx8IG51bGw7XHJcbiAgfVxyXG4pO1xyXG5cclxuXHJcbiJdfQ==
|
|
@@ -36,6 +36,12 @@ const sharedFormReducer = {
|
|
|
36
36
|
|
|
37
37
|
const initialSharedFormState = {};
|
|
38
38
|
|
|
39
|
+
const STATE_NAME = 'object-form';
|
|
40
|
+
const API_PREFIX_NAME = 'apiPrefix';
|
|
41
|
+
const OBJECT_ID_NAME = 'objectId';
|
|
42
|
+
const SECTION_SYS_NAME_NAME = 'sectionSysName';
|
|
43
|
+
const TEMPLATE_SYS_NAME_NAME = 'templateSysName';
|
|
44
|
+
|
|
39
45
|
const selectRouteNestedParams = createSelector(selectRouter, (router) => {
|
|
40
46
|
let currentRoute = router?.state?.root;
|
|
41
47
|
let params = {};
|
|
@@ -51,13 +57,13 @@ const selectRouteNestedParams = createSelector(selectRouter, (router) => {
|
|
|
51
57
|
const selectRouteNestedParam = (param) => createSelector(selectRouteNestedParams, (params) => {
|
|
52
58
|
return params && params[param];
|
|
53
59
|
});
|
|
54
|
-
const selectTemplateSysName$1 = createSelector(selectRouteNestedParam(
|
|
60
|
+
const selectTemplateSysName$1 = createSelector(selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME), (rparam) => {
|
|
55
61
|
return rparam || null;
|
|
56
62
|
});
|
|
57
63
|
const selectIdFromQuery = createSelector(selectQueryParam('id'), (rparam) => {
|
|
58
64
|
return rparam || null;
|
|
59
65
|
});
|
|
60
|
-
const selectSectionSysName = createSelector(selectRouteParam(
|
|
66
|
+
const selectSectionSysName = createSelector(selectRouteParam(SECTION_SYS_NAME_NAME), (rparam) => {
|
|
61
67
|
return rparam || null;
|
|
62
68
|
});
|
|
63
69
|
|
|
@@ -163,8 +169,6 @@ var objectForm_actions = /*#__PURE__*/Object.freeze({
|
|
|
163
169
|
updateValues: updateValues
|
|
164
170
|
});
|
|
165
171
|
|
|
166
|
-
const STATE_NAME = 'object-form';
|
|
167
|
-
|
|
168
172
|
var TemplateStatus;
|
|
169
173
|
(function (TemplateStatus) {
|
|
170
174
|
TemplateStatus[TemplateStatus["draft"] = 0] = "draft";
|
|
@@ -539,7 +543,7 @@ const selectSectionSettings = createSelector(objectFeature, selectRouteNestedPar
|
|
|
539
543
|
return state.settings?.sections.find(s => s.sysName === sectionSysName) || null;
|
|
540
544
|
});
|
|
541
545
|
const selectSectionValues = createSelector(objectFeature, (state) => state.sectionValues);
|
|
542
|
-
const selectObjectId = createSelector(selectRouteNestedParam(
|
|
546
|
+
const selectObjectId = createSelector(selectRouteNestedParam(OBJECT_ID_NAME), (applicationId) => applicationId);
|
|
543
547
|
const selectSectionFiles = createSelector(objectFeature, (state) => state.sectionFiles);
|
|
544
548
|
const selectTemplateSysName = createSelector(objectFeature, (state) => state.settings?.sysName);
|
|
545
549
|
const selectValueModel = (settings) => createSelector(objectFeature, (state) => getValueModel(settings, state.sectionValues));
|
|
@@ -775,7 +779,7 @@ class ObjectFormEffects {
|
|
|
775
779
|
this._applicationService = _applicationService;
|
|
776
780
|
this._toasterService = _toasterService;
|
|
777
781
|
this._autoSaveStore = inject(AutoSaveStore);
|
|
778
|
-
this.loadTemplatePending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadTemplatePending), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
782
|
+
this.loadTemplatePending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadTemplatePending), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME))), switchMap(([_, apiPrefix, objectId, templateSysName]) => {
|
|
779
783
|
if (objectId) {
|
|
780
784
|
return this._applicationService.getTemplate(apiPrefix, objectId).pipe(switchMap(({ templateSysName }) => ([
|
|
781
785
|
loadTemplateSuccess({ templateSysName }),
|
|
@@ -788,7 +792,7 @@ class ObjectFormEffects {
|
|
|
788
792
|
return of(loadPreviewTemplatePending({ templateSysName }));
|
|
789
793
|
}
|
|
790
794
|
})));
|
|
791
|
-
this.loadPreviewTemplatePending = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadPreviewTemplatePending), map((props) => props.templateSysName), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
795
|
+
this.loadPreviewTemplatePending = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadPreviewTemplatePending), map((props) => props.templateSysName), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([templateSysName, apiPrefix, sectionSysName]) => {
|
|
792
796
|
return this._applicationService.getTemplateSettings(templateSysName).pipe(map((templateSettings) => {
|
|
793
797
|
const activeSection = templateSettings.sections.find((s) => s.sysName === sectionSysName);
|
|
794
798
|
if (!activeSection && templateSettings.sections.length) {
|
|
@@ -799,7 +803,7 @@ class ObjectFormEffects {
|
|
|
799
803
|
return of(loadPreviewTemplateError());
|
|
800
804
|
}));
|
|
801
805
|
})));
|
|
802
|
-
this.loadApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadObjectPending), map((props) => props.templateSysName), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
806
|
+
this.loadApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadObjectPending), map((props) => props.templateSysName), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([templateSysName, apiPrefix, objectId, sectionSysName]) => {
|
|
803
807
|
const requests = [
|
|
804
808
|
this._applicationService.getTemplateSettings(templateSysName),
|
|
805
809
|
this._applicationService.getSectionValues(apiPrefix, objectId)
|
|
@@ -822,7 +826,7 @@ class ObjectFormEffects {
|
|
|
822
826
|
return of(loadObjectError());
|
|
823
827
|
}));
|
|
824
828
|
})));
|
|
825
|
-
this.checkCanUpdateValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.UpdateValues), map((props) => props.value), distinctUntilChanged(), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
829
|
+
this.checkCanUpdateValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.UpdateValues), map((props) => props.value), distinctUntilChanged(), withLatestFrom(this._store.select(selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME))), tap(([_, templateSysName]) => {
|
|
826
830
|
if (templateSysName) {
|
|
827
831
|
return;
|
|
828
832
|
}
|
|
@@ -832,7 +836,7 @@ class ObjectFormEffects {
|
|
|
832
836
|
this._autoSaveStore.start();
|
|
833
837
|
this._store.dispatch(saveValuesPending());
|
|
834
838
|
})), { dispatch: false });
|
|
835
|
-
this.updateApplicationValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveValuesPending), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
839
|
+
this.updateApplicationValues$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveValuesPending), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(selectSectionValues)), switchMap(([_, apiPrefix, objectId, sectionValues]) => {
|
|
836
840
|
return this._applicationService.updateApplicationValues(apiPrefix, objectId, sectionValues).pipe(map((result) => {
|
|
837
841
|
this._autoSaveStore.success();
|
|
838
842
|
return saveValuesSuccess({ result, objectId });
|
|
@@ -841,7 +845,7 @@ class ObjectFormEffects {
|
|
|
841
845
|
return of(saveValuesError());
|
|
842
846
|
}));
|
|
843
847
|
})));
|
|
844
|
-
this.saveApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveObjectPending), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
848
|
+
this.saveApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.SaveObjectPending), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(selectRouteNestedParam(OBJECT_ID_NAME))), switchMap(([_, apiPrefix, objectId]) => {
|
|
845
849
|
return this._applicationService.saveApplication(apiPrefix, objectId).pipe(map(() => {
|
|
846
850
|
this._toasterService.show({
|
|
847
851
|
title: 'Сохранено успешно',
|
|
@@ -856,13 +860,13 @@ class ObjectFormEffects {
|
|
|
856
860
|
return of(saveObjectError());
|
|
857
861
|
}));
|
|
858
862
|
})));
|
|
859
|
-
this.copyApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.CopyObjectPending), map((action) => action), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
863
|
+
this.copyApplicationPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.CopyObjectPending), map((action) => action), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME))), switchMap(([action, apiPrefix]) => {
|
|
860
864
|
return this._applicationService.copyApplication(apiPrefix, action).pipe(map((result) => {
|
|
861
865
|
this._toasterService.show({
|
|
862
866
|
title: 'Копировнаие прошло успешно',
|
|
863
867
|
type: ToasterType.Positive
|
|
864
868
|
});
|
|
865
|
-
window.open(
|
|
869
|
+
window.open(`/form/${apiPrefix}/` + result.id, '_blank');
|
|
866
870
|
return copyObjectSuccess();
|
|
867
871
|
}), catchError(() => {
|
|
868
872
|
this._toasterService.show({
|
|
@@ -872,14 +876,14 @@ class ObjectFormEffects {
|
|
|
872
876
|
return of(copyObjectError());
|
|
873
877
|
}));
|
|
874
878
|
})), { dispatch: false });
|
|
875
|
-
this.loadSectionFilesPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadSectionFilesPending), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
879
|
+
this.loadSectionFilesPending$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.LoadSectionFilesPending), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(selectRouteNestedParam(OBJECT_ID_NAME)), this._store.select(selectRouteNestedParam(SECTION_SYS_NAME_NAME))), switchMap(([_, apiPrefix, objectId, sectionSysName]) => {
|
|
876
880
|
return this._applicationService.getSectionFiles(apiPrefix, objectId, sectionSysName).pipe(map((sectionFiles) => {
|
|
877
881
|
return loadSectionFilesSuccess({ sectionFiles: sectionFiles });
|
|
878
882
|
}), catchError(() => {
|
|
879
883
|
return of(loadSectionFilesError());
|
|
880
884
|
}));
|
|
881
885
|
})));
|
|
882
|
-
this.printDocument$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.PrintDocument), withLatestFrom(this._store.select(selectRouteNestedParam(
|
|
886
|
+
this.printDocument$ = createEffect(() => this._actions$.pipe(ofType(EApplicationActions.PrintDocument), withLatestFrom(this._store.select(selectRouteNestedParam(API_PREFIX_NAME)), this._store.select(selectRouteNestedParam(OBJECT_ID_NAME))), tap(([_, apiPrefix, objectId]) => {
|
|
883
887
|
console.log('печать документа ' + objectId);
|
|
884
888
|
window.open(`/form/api/v2/${apiPrefix}/${objectId}/print`, '_blank');
|
|
885
889
|
})), { dispatch: false });
|
|
@@ -900,7 +904,7 @@ class ObjectFormComponent {
|
|
|
900
904
|
}
|
|
901
905
|
ngOnInit() {
|
|
902
906
|
this._store.dispatch(loadTemplatePending());
|
|
903
|
-
this._subscriptions$.push(this._store.select(selectRouteNestedParam(
|
|
907
|
+
this._subscriptions$.push(this._store.select(selectRouteNestedParam(SECTION_SYS_NAME_NAME)).pipe(withLatestFrom(this._store.select(selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)))).subscribe(([sectionSysName, templateSysName]) => {
|
|
904
908
|
this._store.dispatch(updateSelectedSectionSysName({ sectionSysName }));
|
|
905
909
|
if (sectionSysName && !templateSysName) {
|
|
906
910
|
this._store.dispatch(loadSectionFilesPending());
|