@myrtex-org/form 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.mjs +40 -4
- package/esm2022/lib/modules/object-form/components/elements/input/table/input-table.component.mjs +5 -4
- package/fesm2022/myrtex-org-form.mjs +40 -6
- package/fesm2022/myrtex-org-form.mjs.map +1 -1
- package/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.d.ts +7 -1
- package/lib/modules/object-form/components/elements/input/table/input-table.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,16 +4,21 @@ import { ButtonModule, MODAL_DATA, ModalModule, ModalServiceComponent } from '@m
|
|
|
4
4
|
import { FormDispenserModal } from './form-dispenser-modal/form-dispenser-modal.component';
|
|
5
5
|
import { provideNgxMask } from 'ngx-mask';
|
|
6
6
|
import { ReferenceService } from '../../../../../../services';
|
|
7
|
+
import { objectFormActions } from '../../../../../../store';
|
|
8
|
+
import { ComponentType } from '../../../../../../../shared-form/enums';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
import * as i1 from "@myrtex-org/ui";
|
|
11
|
+
import * as i2 from "@ngrx/store";
|
|
9
12
|
export class InputTableModalComponent extends ModalServiceComponent {
|
|
10
|
-
constructor(dialogRef, data) {
|
|
13
|
+
constructor(dialogRef, store, data) {
|
|
11
14
|
super();
|
|
12
15
|
this.dialogRef = dialogRef;
|
|
16
|
+
this.store = store;
|
|
13
17
|
this.title = data.title;
|
|
14
18
|
this.okText = data.okText;
|
|
15
19
|
this.settings = data.settings;
|
|
16
20
|
this.rowModel = data.rowModel;
|
|
21
|
+
this.isCheckRequired = data.isCheckRequired;
|
|
17
22
|
this.result = { result: false, rowModel: this.rowModel };
|
|
18
23
|
}
|
|
19
24
|
componentValueChanged(valueModel) {
|
|
@@ -27,10 +32,19 @@ export class InputTableModalComponent extends ModalServiceComponent {
|
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
34
|
ok() {
|
|
35
|
+
if (!this._isValid()) {
|
|
36
|
+
// включаем подсветку полей
|
|
37
|
+
this.store.dispatch(objectFormActions.updateCheckRequired({ isCheckRequired: true }));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// возвращаем признак как был до открытия модалки
|
|
41
|
+
this.store.dispatch(objectFormActions.updateCheckRequired({ isCheckRequired: this.isCheckRequired }));
|
|
30
42
|
this.result = { result: true, rowModel: this.rowModel };
|
|
31
43
|
this.dialogRef.close(structuredClone(this.result));
|
|
32
44
|
}
|
|
33
45
|
close() {
|
|
46
|
+
// возвращаем признак как был до открытия модалки
|
|
47
|
+
this.store.dispatch(objectFormActions.updateCheckRequired({ isCheckRequired: this.isCheckRequired }));
|
|
34
48
|
this.result = { result: false, rowModel: this.rowModel };
|
|
35
49
|
this.dialogRef.close(this.result);
|
|
36
50
|
}
|
|
@@ -42,7 +56,29 @@ export class InputTableModalComponent extends ModalServiceComponent {
|
|
|
42
56
|
}
|
|
43
57
|
this.rowModel = cloneRowModel;
|
|
44
58
|
}
|
|
45
|
-
|
|
59
|
+
_isValid() {
|
|
60
|
+
var hasError = false;
|
|
61
|
+
var requiredComponents = this._getRequiredComponents(this.settings.components);
|
|
62
|
+
for (const component of requiredComponents) {
|
|
63
|
+
const value = this.rowModel.data
|
|
64
|
+
.find(x => x.sysName == component.sysName
|
|
65
|
+
|| x.sysName == `${component.sysName}_start`
|
|
66
|
+
|| x.sysName == `${component.sysName}_end`);
|
|
67
|
+
if (!value?.value) {
|
|
68
|
+
hasError = true;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return !hasError;
|
|
73
|
+
}
|
|
74
|
+
_getRequiredComponents(components) {
|
|
75
|
+
var components = components.filter(x => x.type != ComponentType.Group && !!x.options.required);
|
|
76
|
+
for (const component of components.filter(x => x.type == ComponentType.Group && x.components.length > 0)) {
|
|
77
|
+
this._getRequiredComponents(component.components);
|
|
78
|
+
}
|
|
79
|
+
return components;
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableModalComponent, deps: [{ token: i1.ModalRef }, { token: i2.Store }, { token: MODAL_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
82
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: InputTableModalComponent, isStandalone: true, selector: "app-input-table-modal", providers: [
|
|
47
83
|
provideNgxMask(),
|
|
48
84
|
ReferenceService // для компонента список
|
|
@@ -58,8 +94,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
58
94
|
provideNgxMask(),
|
|
59
95
|
ReferenceService // для компонента список
|
|
60
96
|
], template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n" }]
|
|
61
|
-
}], ctorParameters: () => [{ type: i1.ModalRef }, { type: undefined, decorators: [{
|
|
97
|
+
}], ctorParameters: () => [{ type: i1.ModalRef }, { type: i2.Store }, { type: undefined, decorators: [{
|
|
62
98
|
type: Inject,
|
|
63
99
|
args: [MODAL_DATA]
|
|
64
100
|
}] }] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvY29tcG9uZW50cy9pbnB1dC10YWJsZS1tb2RhbC9pbnB1dC10YWJsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC90YWJsZS9jb21wb25lbnRzL2lucHV0LXRhYmxlLW1vZGFsL2lucHV0LXRhYmxlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBOEI5RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEscUJBQW1FO0lBTS9HLFlBQ1UsU0FBMEMsRUFDOUIsSUFBMkI7UUFFL0MsS0FBSyxFQUFFLENBQUM7UUFIQSxjQUFTLEdBQVQsU0FBUyxDQUFpQztRQUtsRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0scUJBQXFCLENBQUMsVUFBdUQ7UUFDbEYsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEVBQUU7UUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUNqRCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sU0FBUyxHQUFvQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO0lBQ2hDLENBQUM7K0dBakRVLHdCQUF3QiwwQ0FRekIsVUFBVTttR0FSVCx3QkFBd0Isb0VBTHhCO1lBQ1QsY0FBYyxFQUFFO1lBQ2hCLGdCQUFnQixDQUFDLHdCQUF3QjtTQUMxQyxpRENuQ0gsdXZCQTZCQSx5RERESSxXQUFXLHdXQUNYLFlBQVksNlVBQ1osa0JBQWtCOzs0RkFPVCx3QkFBd0I7a0JBaEJwQyxTQUFTOytCQUNFLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGtCQUFrQjtxQkFDbkIsYUFDVTt3QkFDVCxjQUFjLEVBQUU7d0JBQ2hCLGdCQUFnQixDQUFDLHdCQUF3QjtxQkFDMUM7OzBCQVVFLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBNT0RBTF9EQVRBLCBNb2RhbE1vZHVsZSwgTW9kYWxSZWYsIE1vZGFsU2VydmljZUNvbXBvbmVudCB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgSW5wdXRUYWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2VsZW1ldHMvaW5wdXRzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VmFsdWVNb2RlbCwgVGFibGVSb3dNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1EaXNwZW5zZXJNb2RhbCB9IGZyb20gJy4vZm9ybS1kaXNwZW5zZXItbW9kYWwvZm9ybS1kaXNwZW5zZXItbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XHJcbmltcG9ydCB7IFJlZmVyZW5jZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElucHV0VGFibGVNb2RhbFBhcmFtcyB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBva1RleHQ6IHN0cmluZztcclxuICBzZXR0aW5nczogSW5wdXRUYWJsZU1vZGVsO1xyXG4gIHJvd01vZGVsOiBUYWJsZVJvd01vZGVsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElucHV0VGFibGVNb2RhbFJlc3VsdCB7XHJcbiAgcmVzdWx0OiBib29sZWFuO1xyXG4gIHJvd01vZGVsOiBUYWJsZVJvd01vZGVsO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pbnB1dC10YWJsZS1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRhYmxlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC10YWJsZS1tb2RhbC5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTW9kYWxNb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBGb3JtRGlzcGVuc2VyTW9kYWwsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHByb3ZpZGVOZ3hNYXNrKCksXHJcbiAgICBSZWZlcmVuY2VTZXJ2aWNlIC8vINC00LvRjyDQutC+0LzQv9C+0L3QtdC90YLQsCDRgdC/0LjRgdC+0LpcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFRhYmxlTW9kYWxDb21wb25lbnQgZXh0ZW5kcyBNb2RhbFNlcnZpY2VDb21wb25lbnQ8SW5wdXRUYWJsZU1vZGFsUGFyYW1zLCBJbnB1dFRhYmxlTW9kYWxSZXN1bHQ+IHtcclxuICBwdWJsaWMgdGl0bGUhOiBzdHJpbmc7XHJcbiAgcHVibGljIG9rVGV4dCE6IHN0cmluZztcclxuICBwdWJsaWMgc2V0dGluZ3MhOiBJbnB1dFRhYmxlTW9kZWw7XHJcbiAgcHVibGljIHJvd01vZGVsITogVGFibGVSb3dNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTW9kYWxSZWY8SW5wdXRUYWJsZU1vZGFsUmVzdWx0PixcclxuICAgIEBJbmplY3QoTU9EQUxfREFUQSkgZGF0YTogSW5wdXRUYWJsZU1vZGFsUGFyYW1zLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcclxuICAgIHRoaXMub2tUZXh0ID0gZGF0YS5va1RleHRcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBkYXRhLnNldHRpbmdzO1xyXG4gICAgdGhpcy5yb3dNb2RlbCA9IGRhdGEucm93TW9kZWw7XHJcblxyXG4gICAgdGhpcy5yZXN1bHQgPSB7cmVzdWx0OiBmYWxzZSwgcm93TW9kZWw6IHRoaXMucm93TW9kZWx9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbXBvbmVudFZhbHVlQ2hhbmdlZCh2YWx1ZU1vZGVsOiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdKSB7XHJcbiAgICBpZiAoaXNBcnJheSh2YWx1ZU1vZGVsKSkge1xyXG4gICAgICB2YWx1ZU1vZGVsLmZvckVhY2gobW9kZWwgPT4ge1xyXG4gICAgICAgIHRoaXMuX3RyYW5zZm9ybVZhbHVlcyhtb2RlbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdHJhbnNmb3JtVmFsdWVzKHZhbHVlTW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9rKCkge1xyXG4gICAgdGhpcy5yZXN1bHQgPSB7cmVzdWx0OiB0cnVlLCByb3dNb2RlbDogdGhpcy5yb3dNb2RlbH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5yZXN1bHQpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZSgpIHtcclxuICAgIHRoaXMucmVzdWx0ID0ge3Jlc3VsdDogZmFsc2UsIHJvd01vZGVsOiB0aGlzLnJvd01vZGVsfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybVZhbHVlcyh2YWx1ZTogQ29tcG9uZW50VmFsdWVNb2RlbCkge1xyXG4gICAgY29uc3QgY2xvbmVSb3dNb2RlbCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnJvd01vZGVsKTtcclxuICAgIGNvbnN0IGZpbmRWYWx1ZTogQ29tcG9uZW50VmFsdWVNb2RlbCB8IHVuZGVmaW5lZCA9IGNsb25lUm93TW9kZWwuZGF0YS5maW5kKChjOiBDb21wb25lbnRWYWx1ZU1vZGVsKSA9PiBjLnN5c05hbWUgPT09IHZhbHVlLnN5c05hbWUpO1xyXG5cclxuICAgIGlmIChmaW5kVmFsdWUpIHtcclxuICAgICAgZmluZFZhbHVlLnZhbHVlID0gdmFsdWUudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3dNb2RlbCA9IGNsb25lUm93TW9kZWw7XHJcbiAgfVxyXG59XHJcbiIsIjxtcngtbW9kYWxcclxuICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gIHNpemU9XCJsYXJnZVwiXHJcbiAgKGNsb3NlKT1cImNsb3NlKClcIlxyXG4gIChvayk9XCJvaygpXCJcclxuPlxyXG4gIDxhcHAtZm9ybS1kaXNwZW5zZXItbW9kYWxcclxuICAgIFtzZWN0aW9uU2V0dGluZ3NdPVwic2V0dGluZ3NcIlxyXG4gICAgW3ZhbHVlc109XCJyb3dNb2RlbC5kYXRhXCJcclxuICAgIFt2YWx1ZU1vZGVdPVwiJ21hbnVhbCdcIlxyXG4gICAgKGNoYW5nZWQpPVwiY29tcG9uZW50VmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gID48L2FwcC1mb3JtLWRpc3BlbnNlci1tb2RhbD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNmb290ZXJDb250ZW50PlxyXG4gICAgPG1yeC1idXR0b25cclxuICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ21yLTMnXCJcclxuICAgICAgW3R5cGVdPVwiJ3NlY29uZGFyeSdcIlxyXG4gICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcclxuICAgID7QntGC0LzQtdC90LBcclxuICAgIDwvbXJ4LWJ1dHRvbj5cclxuICAgIDxtcngtYnV0dG9uXHJcbiAgICAgIFt0eXBlXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgKGNsaWNrKT1cIm9rKClcIlxyXG4gICAgPnt7IG9rVGV4dCB9fVxyXG4gICAgPC9tcngtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbXJ4LW1vZGFsPlxyXG4iXX0=
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvY29tcG9uZW50cy9pbnB1dC10YWJsZS1tb2RhbC9pbnB1dC10YWJsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC90YWJsZS9jb21wb25lbnRzL2lucHV0LXRhYmxlLW1vZGFsL2lucHV0LXRhYmxlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUErQnZFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxxQkFBbUU7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Q0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzsrR0ExRlUsd0JBQXdCLCtEQVd6QixVQUFVO21HQVhULHdCQUF3QixvRUFMeEI7WUFDVCxjQUFjLEVBQUU7WUFDaEIsZ0JBQWdCLENBQUMsd0JBQXdCO1NBQzFDLGlEQ3hDSCx1dkJBNkJBLHlERElJLFdBQVcsd1dBQ1gsWUFBWSw2VUFDWixrQkFBa0I7OzRGQU9ULHdCQUF3QjtrQkFoQnBDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osa0JBQWtCO3FCQUNuQixhQUNVO3dCQUNULGNBQWMsRUFBRTt3QkFDaEIsZ0JBQWdCLENBQUMsd0JBQXdCO3FCQUMxQzs7MEJBYUUsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIE1PREFMX0RBVEEsIE1vZGFsTW9kdWxlLCBNb2RhbFJlZiwgTW9kYWxTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnQG15cnRleC1vcmcvdWknO1xyXG5pbXBvcnQgeyBJbnB1dFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMvZWxlbWV0cy9pbnB1dHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRWYWx1ZU1vZGVsLCBUYWJsZVJvd01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybURpc3BlbnNlck1vZGFsIH0gZnJvbSAnLi9mb3JtLWRpc3BlbnNlci1tb2RhbC9mb3JtLWRpc3BlbnNlci1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBwcm92aWRlTmd4TWFzayB9IGZyb20gJ25neC1tYXNrJztcclxuaW1wb3J0IHsgUmVmZXJlbmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRNb2RlbEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFRhYmxlTW9kYWxQYXJhbXMge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgb2tUZXh0OiBzdHJpbmc7XHJcbiAgc2V0dGluZ3M6IElucHV0VGFibGVNb2RlbDtcclxuICByb3dNb2RlbDogVGFibGVSb3dNb2RlbDtcclxuICBpc0NoZWNrUmVxdWlyZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRUYWJsZU1vZGFsUmVzdWx0IHtcclxuICByZXN1bHQ6IGJvb2xlYW47XHJcbiAgcm93TW9kZWw6IFRhYmxlUm93TW9kZWw7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXRhYmxlLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGFibGUtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXRhYmxlLW1vZGFsLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNb2RhbE1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEZvcm1EaXNwZW5zZXJNb2RhbCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgcHJvdmlkZU5neE1hc2soKSxcclxuICAgIFJlZmVyZW5jZVNlcnZpY2UgLy8g0LTQu9GPINC60L7QvNC/0L7QvdC10L3RgtCwINGB0L/QuNGB0L7QulxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGFibGVNb2RhbENvbXBvbmVudCBleHRlbmRzIE1vZGFsU2VydmljZUNvbXBvbmVudDxJbnB1dFRhYmxlTW9kYWxQYXJhbXMsIElucHV0VGFibGVNb2RhbFJlc3VsdD4ge1xyXG4gIHB1YmxpYyB0aXRsZSE6IHN0cmluZztcclxuICBwdWJsaWMgb2tUZXh0ITogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZXR0aW5ncyE6IElucHV0VGFibGVNb2RlbDtcclxuICBwdWJsaWMgcm93TW9kZWwhOiBUYWJsZVJvd01vZGVsO1xyXG4gIC8vINCX0LDQv9C+0LzQuNC90LDQtdC8INGB0YLQsNGC0YPRgSDQv9GA0L7QstC10YDQutC4INGE0L7RgNC80Ysg0L/RgNC4INC+0YLQutGA0YvRgtC40Lgg0LzQvtC00LDQu9C60LhcclxuICBwdWJsaWMgaXNDaGVja1JlcXVpcmVkITogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTW9kYWxSZWY8SW5wdXRUYWJsZU1vZGFsUmVzdWx0PixcclxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxyXG4gICAgQEluamVjdChNT0RBTF9EQVRBKSBkYXRhOiBJbnB1dFRhYmxlTW9kYWxQYXJhbXMsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMudGl0bGUgPSBkYXRhLnRpdGxlO1xyXG4gICAgdGhpcy5va1RleHQgPSBkYXRhLm9rVGV4dFxyXG4gICAgdGhpcy5zZXR0aW5ncyA9IGRhdGEuc2V0dGluZ3M7XHJcbiAgICB0aGlzLnJvd01vZGVsID0gZGF0YS5yb3dNb2RlbDtcclxuICAgIHRoaXMuaXNDaGVja1JlcXVpcmVkID0gZGF0YS5pc0NoZWNrUmVxdWlyZWQ7XHJcblxyXG4gICAgdGhpcy5yZXN1bHQgPSB7cmVzdWx0OiBmYWxzZSwgcm93TW9kZWw6IHRoaXMucm93TW9kZWx9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbXBvbmVudFZhbHVlQ2hhbmdlZCh2YWx1ZU1vZGVsOiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdKSB7XHJcbiAgICBpZiAoaXNBcnJheSh2YWx1ZU1vZGVsKSkge1xyXG4gICAgICB2YWx1ZU1vZGVsLmZvckVhY2gobW9kZWwgPT4ge1xyXG4gICAgICAgIHRoaXMuX3RyYW5zZm9ybVZhbHVlcyhtb2RlbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdHJhbnNmb3JtVmFsdWVzKHZhbHVlTW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9rKCkge1xyXG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkKCkpXHJcbiAgICB7XHJcbiAgICAgIC8vINCy0LrQu9GO0YfQsNC10Lwg0L/QvtC00YHQstC10YLQutGDINC/0L7Qu9C10LlcclxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvYmplY3RGb3JtQWN0aW9ucy51cGRhdGVDaGVja1JlcXVpcmVkKHsgaXNDaGVja1JlcXVpcmVkOiB0cnVlIH0pKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vINCy0L7Qt9Cy0YDQsNGJ0LDQtdC8INC/0YDQuNC30L3QsNC6INC60LDQuiDQsdGL0Lsg0LTQviDQvtGC0LrRgNGL0YLQuNGPINC80L7QtNCw0LvQutC4XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLnVwZGF0ZUNoZWNrUmVxdWlyZWQoeyBpc0NoZWNrUmVxdWlyZWQ6IHRoaXMuaXNDaGVja1JlcXVpcmVkIH0pKTtcclxuXHJcbiAgICB0aGlzLnJlc3VsdCA9IHtyZXN1bHQ6IHRydWUsIHJvd01vZGVsOiB0aGlzLnJvd01vZGVsfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHN0cnVjdHVyZWRDbG9uZSh0aGlzLnJlc3VsdCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlKCkge1xyXG4gICAgLy8g0LLQvtC30LLRgNCw0YnQsNC10Lwg0L/RgNC40LfQvdCw0Log0LrQsNC6INCx0YvQuyDQtNC+INC+0YLQutGA0YvRgtC40Y8g0LzQvtC00LDQu9C60LhcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlQ2hlY2tSZXF1aXJlZCh7IGlzQ2hlY2tSZXF1aXJlZDogdGhpcy5pc0NoZWNrUmVxdWlyZWQgfSkpO1xyXG5cclxuICAgIHRoaXMucmVzdWx0ID0ge3Jlc3VsdDogZmFsc2UsIHJvd01vZGVsOiB0aGlzLnJvd01vZGVsfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybVZhbHVlcyh2YWx1ZTogQ29tcG9uZW50VmFsdWVNb2RlbCkge1xyXG4gICAgY29uc3QgY2xvbmVSb3dNb2RlbCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnJvd01vZGVsKTtcclxuICAgIGNvbnN0IGZpbmRWYWx1ZTogQ29tcG9uZW50VmFsdWVNb2RlbCB8IHVuZGVmaW5lZCA9IGNsb25lUm93TW9kZWwuZGF0YS5maW5kKChjOiBDb21wb25lbnRWYWx1ZU1vZGVsKSA9PiBjLnN5c05hbWUgPT09IHZhbHVlLnN5c05hbWUpO1xyXG5cclxuICAgIGlmIChmaW5kVmFsdWUpIHtcclxuICAgICAgZmluZFZhbHVlLnZhbHVlID0gdmFsdWUudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3dNb2RlbCA9IGNsb25lUm93TW9kZWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgdmFyIGhhc0Vycm9yID0gZmFsc2U7XHJcbiAgICB2YXIgcmVxdWlyZWRDb21wb25lbnRzID0gdGhpcy5fZ2V0UmVxdWlyZWRDb21wb25lbnRzKHRoaXMuc2V0dGluZ3MuY29tcG9uZW50cyk7XHJcbiAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiByZXF1aXJlZENvbXBvbmVudHMpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJvd01vZGVsLmRhdGFcclxuICAgICAgICAuZmluZCh4ID0+IHguc3lzTmFtZSA9PSBjb21wb25lbnQuc3lzTmFtZVxyXG4gICAgICAgICAgICAgIHx8IHguc3lzTmFtZSA9PSBgJHtjb21wb25lbnQuc3lzTmFtZX1fc3RhcnRgXHJcbiAgICAgICAgICAgICAgfHwgeC5zeXNOYW1lID09IGAke2NvbXBvbmVudC5zeXNOYW1lfV9lbmRgKTtcclxuICAgICAgaWYgKCF2YWx1ZT8udmFsdWUpIHtcclxuICAgICAgICBoYXNFcnJvciA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAhaGFzRXJyb3I7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRSZXF1aXJlZENvbXBvbmVudHMoY29tcG9uZW50czogQ29tcG9uZW50TW9kZWxCYXNlW10pOiBDb21wb25lbnRNb2RlbEJhc2VbXXtcclxuICAgIHZhciBjb21wb25lbnRzID0gY29tcG9uZW50cy5maWx0ZXIoeCA9PiB4LnR5cGUgIT0gQ29tcG9uZW50VHlwZS5Hcm91cCAmJiAhIXgub3B0aW9ucy5yZXF1aXJlZCk7XHJcbiAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiBjb21wb25lbnRzLmZpbHRlcih4ID0+IHgudHlwZSA9PSBDb21wb25lbnRUeXBlLkdyb3VwICYmIHguY29tcG9uZW50cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICB0aGlzLl9nZXRSZXF1aXJlZENvbXBvbmVudHMoY29tcG9uZW50LmNvbXBvbmVudHMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbXBvbmVudHM7XHJcbiAgfVxyXG59XHJcbiIsIjxtcngtbW9kYWxcclxuICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gIHNpemU9XCJsYXJnZVwiXHJcbiAgKGNsb3NlKT1cImNsb3NlKClcIlxyXG4gIChvayk9XCJvaygpXCJcclxuPlxyXG4gIDxhcHAtZm9ybS1kaXNwZW5zZXItbW9kYWxcclxuICAgIFtzZWN0aW9uU2V0dGluZ3NdPVwic2V0dGluZ3NcIlxyXG4gICAgW3ZhbHVlc109XCJyb3dNb2RlbC5kYXRhXCJcclxuICAgIFt2YWx1ZU1vZGVdPVwiJ21hbnVhbCdcIlxyXG4gICAgKGNoYW5nZWQpPVwiY29tcG9uZW50VmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gID48L2FwcC1mb3JtLWRpc3BlbnNlci1tb2RhbD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNmb290ZXJDb250ZW50PlxyXG4gICAgPG1yeC1idXR0b25cclxuICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ21yLTMnXCJcclxuICAgICAgW3R5cGVdPVwiJ3NlY29uZGFyeSdcIlxyXG4gICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcclxuICAgID7QntGC0LzQtdC90LBcclxuICAgIDwvbXJ4LWJ1dHRvbj5cclxuICAgIDxtcngtYnV0dG9uXHJcbiAgICAgIFt0eXBlXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgKGNsaWNrKT1cIm9rKClcIlxyXG4gICAgPnt7IG9rVGV4dCB9fVxyXG4gICAgPC9tcngtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbXJ4LW1vZGFsPlxyXG4iXX0=
|
package/esm2022/lib/modules/object-form/components/elements/input/table/input-table.component.mjs
CHANGED
|
@@ -78,7 +78,8 @@ export class InputTableComponent {
|
|
|
78
78
|
title: 'Создание строки',
|
|
79
79
|
okText: 'Создать',
|
|
80
80
|
settings: this.settings,
|
|
81
|
-
rowModel: getRowModel(this.settings)
|
|
81
|
+
rowModel: getRowModel(this.settings),
|
|
82
|
+
isCheckRequired: this._isCheckRequired
|
|
82
83
|
}).afterClosed().subscribe(resolve => {
|
|
83
84
|
if (resolve.result) {
|
|
84
85
|
this.model.data = [...structuredClone(this.model.data), resolve.rowModel];
|
|
@@ -209,11 +210,11 @@ export class InputTableComponent {
|
|
|
209
210
|
return column;
|
|
210
211
|
}
|
|
211
212
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
212
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTableComponent, selector: "app-input-table", inputs: { values: "values", data: "data" }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }], ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [disabled]=\"disabled\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n [wordWrapEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'secondary'\"\r\n [customClasses]=\"'mb-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >{{settings.options.addBtnTitle}}\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let data of 'noData'\">\r\n <span style=\"color: var(--system-text-negative, #8E2100);\">\r\n \u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\r\n </span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n\r\n <dxi-total-item \r\n [column]=\"component.sysName\" \r\n displayFormat=\"{0}\"\r\n summaryType=\"sum\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (hasAnyTotal) { \r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"showTotal(component) ? '{0}' : '\u0418\u0422\u041E\u0413\u041E'\"\r\n [summaryType]=\"showTotal(component) ? 'sum' : undefined\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n @if(!!settings.options.maxRows) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0440\u043E\u043A: {{ settings.options.maxRows }}\"\r\n [maxValue]=\"settings.options.maxRows\"\r\n [value]=\"rowsCount\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers{position:relative;top:0;border-top:1px solid var(--neutral-bg-divider)}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers td.dx-command-expand.dx-datagrid-group-space{border-right:none!important;border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer td.dx-command-expand.dx-datagrid-group-space{border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-row>td,:host::ng-deep .input-table-content .dx-datagrid .page-wrapper .dx-treelist-container .dx-row>td{color:var(--neutral-text-secondary, #4D5157);font-family:var(--body-md-bold-font-family, \"PT Sans\");font-size:var(--body-md-bold-font-size, 14px);font-weight:var(--body-md-bold-font-weight, 700);line-height:var(--body-md-bold-line-height, 16px)}:host::ng-deep .input-table-content .dx-datagrid .dx-row.dx-data-row.dx-column-lines>td{color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "switchSize", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i2.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i3.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i3.DxiGroupItemComponent, selector: "dxi-group-item", inputs: ["alignByColumn", "column", "customizeText", "displayFormat", "name", "showInColumn", "showInGroupFooter", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i1.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTableComponent, selector: "app-input-table", inputs: { values: "values", data: "data" }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }], ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [disabled]=\"disabled\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n [wordWrapEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'secondary'\"\r\n [customClasses]=\"'mb-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >{{settings.options.addBtnTitle}}\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n\r\n <dxi-total-item \r\n [column]=\"component.sysName\" \r\n displayFormat=\"{0}\"\r\n summaryType=\"sum\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (hasAnyTotal) { \r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"showTotal(component) ? '{0}' : '\u0418\u0422\u041E\u0413\u041E'\"\r\n [summaryType]=\"showTotal(component) ? 'sum' : undefined\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n @if(!!settings.options.maxRows) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0440\u043E\u043A: {{ settings.options.maxRows }}\"\r\n [maxValue]=\"settings.options.maxRows\"\r\n [value]=\"rowsCount\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers{position:relative;top:0;border-top:1px solid var(--neutral-bg-divider)}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers td.dx-command-expand.dx-datagrid-group-space{border-right:none!important;border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer td.dx-command-expand.dx-datagrid-group-space{border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-row>td,:host::ng-deep .input-table-content .dx-datagrid .page-wrapper .dx-treelist-container .dx-row>td{color:var(--neutral-text-secondary, #4D5157);font-family:var(--body-md-bold-font-family, \"PT Sans\");font-size:var(--body-md-bold-font-size, 14px);font-weight:var(--body-md-bold-font-weight, 700);line-height:var(--body-md-bold-line-height, 16px)}:host::ng-deep .input-table-content .dx-datagrid .dx-row.dx-data-row.dx-column-lines>td{color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "switchSize", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i2.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i3.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i3.DxiGroupItemComponent, selector: "dxi-group-item", inputs: ["alignByColumn", "column", "customizeText", "displayFormat", "name", "showInColumn", "showInGroupFooter", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i1.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
213
214
|
}
|
|
214
215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableComponent, decorators: [{
|
|
215
216
|
type: Component,
|
|
216
|
-
args: [{ selector: 'app-input-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [disabled]=\"disabled\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n [wordWrapEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'secondary'\"\r\n [customClasses]=\"'mb-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >{{settings.options.addBtnTitle}}\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n
|
|
217
|
+
args: [{ selector: 'app-input-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [disabled]=\"disabled\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n [wordWrapEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'secondary'\"\r\n [customClasses]=\"'mb-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >{{settings.options.addBtnTitle}}\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n\r\n <dxi-total-item \r\n [column]=\"component.sysName\" \r\n displayFormat=\"{0}\"\r\n summaryType=\"sum\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (hasAnyTotal) { \r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"showTotal(component) ? '{0}' : '\u0418\u0422\u041E\u0413\u041E'\"\r\n [summaryType]=\"showTotal(component) ? 'sum' : undefined\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n @if(!!settings.options.maxRows) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0440\u043E\u043A: {{ settings.options.maxRows }}\"\r\n [maxValue]=\"settings.options.maxRows\"\r\n [value]=\"rowsCount\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers{position:relative;top:0;border-top:1px solid var(--neutral-bg-divider)}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers td.dx-command-expand.dx-datagrid-group-space{border-right:none!important;border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer td.dx-command-expand.dx-datagrid-group-space{border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-row>td,:host::ng-deep .input-table-content .dx-datagrid .page-wrapper .dx-treelist-container .dx-row>td{color:var(--neutral-text-secondary, #4D5157);font-family:var(--body-md-bold-font-family, \"PT Sans\");font-size:var(--body-md-bold-font-size, 14px);font-weight:var(--body-md-bold-font-weight, 700);line-height:var(--body-md-bold-line-height, 16px)}:host::ng-deep .input-table-content .dx-datagrid .dx-row.dx-data-row.dx-column-lines>td{color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"] }]
|
|
217
218
|
}], propDecorators: { values: [{
|
|
218
219
|
type: Input
|
|
219
220
|
}], data: [{
|
|
@@ -227,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
227
228
|
}], changed: [{
|
|
228
229
|
type: Output
|
|
229
230
|
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFJN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztBQVM3RCxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT0UsU0FB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TUFBTSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUE7WUFDN0IsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7K0dBaFFVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlVQy9CaEMsaTdKQTZIQTs7NEZEOUZhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFvQnRDLE1BQU07c0JBQWQsS0FBSztnQkFFTyxJQUFJO3NCQUFoQixLQUFLO2dCQVVrQyxRQUFRO3NCQUEvQyxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ00sWUFBWTtzQkFBdkQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUV6QixPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUsIERhdGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudE1vZGVsQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL21vZGVscyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnRWYWx1ZU1vZGVsLCBTZWN0aW9uVmFsdWVNb2RlbCwgVGFibGVSb3dNb2RlbCwgVGFibGVWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSW5wdXREYXRlTW9kZWwsIElucHV0TnVtYmVyTW9kZWwsIElucHV0VGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1BY3Rpb25zLCBvYmplY3RGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0VGFibGVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IGdldFJvd01vZGVsIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1yb3ctbW9kZWwuaGVscGVyJztcclxuaW1wb3J0IHsgQ29sdW1uTW9kZWwgfSBmcm9tICcuL21vZGVscy9jb2x1bW4ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGFibGUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICB0eXBlID0gQ29tcG9uZW50VHlwZS5JbnB1dFRhYmxlO1xyXG5cclxuICBwcml2YXRlIF9zdG9yZTogU3RvcmUgPSBpbmplY3QoU3RvcmUpO1xyXG4gIHByaXZhdGUgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UgPSBpbmplY3QoTW9kYWxTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSBfY2hhbmdlU3ViamVjdCQ6IFN1YmplY3Q8VGFibGVWYWx1ZU1vZGVsPiA9IG5ldyBTdWJqZWN0PFRhYmxlVmFsdWVNb2RlbD4oKTtcclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNDaGVja1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfY2FuRWRpdE9iamVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgbW9kZWwhOiBUYWJsZVZhbHVlTW9kZWw7XHJcbiAgcHVibGljIHNldHRpbmdzITogSW5wdXRUYWJsZU1vZGVsO1xyXG4gIHB1YmxpYyBkYXRhU291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXTtcclxuICBwdWJsaWMgY29sdW1uczogQ29sdW1uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSB2YWx1ZXM6IFNlY3Rpb25WYWx1ZU1vZGVsW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGRhdGEoc2V0dGluZ3M6IENvbXBvbmVudE1vZGVsQmFzZSkge1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzIGFzIElucHV0VGFibGVNb2RlbDtcclxuXHJcbiAgICB0aGlzLm1vZGVsID0ge3N5c05hbWU6IHNldHRpbmdzLnN5c05hbWUsIHR5cGU6IHNldHRpbmdzLnR5cGUsIGRhdGE6IFtdLCB0b3RhbHM6IFtdfTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdGhpcy5faW5pdENvbHVtbnModGhpcy5zZXR0aW5ncy5jb21wb25lbnRzKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2RhdGFHcmlkJywge3N0YXRpYzogZmFsc2V9KSBkYXRhR3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdFRlbXBsYXRlJywge3N0YXRpYzogZmFsc2V9KSBlZGl0VGVtcGxhdGUhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPENvbXBvbmVudFZhbHVlTW9kZWwgfCBDb21wb25lbnRWYWx1ZU1vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdPigpO1xyXG5cclxuICBwdWJsaWMgZ2V0IHJvd3NDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWw/LmRhdGE/Lmxlbmd0aCB8fCAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0FueVRvdGFsKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8INCy0YHQtSDQutC+0LzQv9C+0L3QtdC90YLRiyDQuCDQuNGFINCy0LvQvtC20LXQvdC90YvQtSDQutC+0LzQv9C+0L3QtdC90YLRiyDQvdCwINC90LDQu9C40YfQuNC1IHNob3dUb3RhbFxyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29tcG9uZW50cy5zb21lKGMgPT4gXHJcbiAgICAgIHRoaXMuc2hvd1RvdGFsKGMpIHx8IGMuY29tcG9uZW50cz8uc29tZShpbm5lciA9PiB0aGlzLnNob3dUb3RhbChpbm5lcikpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0TW9kZWwoKTtcclxuXHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0JC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcclxuICAgICkuc3Vic2NyaWJlKG1vZGVsID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ9CU0LDQvdC90YvQtSDRgtCw0LHQu9C40YbRiyDQvtCx0L3QvtCy0LvQtdC90Ysg0Lgg0LPQvtGC0L7QstGLINC6INC+0YLQv9GA0LDQstC60LU6JywgbW9kZWwpO1xyXG4gICAgICBjb25zb2xlLmxvZygn0KfQuNGB0YLRi9C1INGB0YLRgNC+0LrQuCAoZGF0YSk6JywgbW9kZWwuZGF0YSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCfQlNCw0L3QvdGL0LUg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LIgR3JpZDonLCB0aGlzLmRhdGFTb3VyY2UpO1xyXG4gICAgICBjb25zb2xlLmxvZygnR3JpZCBJbnN0YW5jZTonLCB0aGlzLmRhdGFHcmlkLmluc3RhbmNlKTtcclxuXHJcbiAgICAgICh3aW5kb3cgYXMgYW55KS5ncmlkID0gdGhpcy5kYXRhR3JpZC5pbnN0YW5jZTtcclxuICAgICAgY29uc29sZS5sb2coJ9Ct0LrQt9C10LzQv9C70Y/RgCDQv9GA0LjQstGP0LfQsNC9INC6IHdpbmRvdy5ncmlkJyk7XHJcblxyXG4gICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChvYmplY3RGb3JtQWN0aW9ucy51cGRhdGVWYWx1ZXMoe3ZhbHVlOiBtb2RlbH0pKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0SXNDaGVja1JlcXVpcmVkKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5faXNDaGVja1JlcXVpcmVkID0gcmVzdWx0O1xyXG4gICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KSk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyQucHVzaCh0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RDYW5FZGl0T2JqZWN0KVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5fY2FuRWRpdE9iamVjdCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwgfCAoQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwpW10pID0+IHtcclxuICAgICAgICBjb25zdCBjbG9uZVJlc3VsdCA9IHN0cnVjdHVyZWRDbG9uZShyZXN1bHQgYXMgVGFibGVWYWx1ZU1vZGVsIHwgbnVsbCk7XHJcblxyXG4gICAgICAgIGlmIChjbG9uZVJlc3VsdCAmJiAhQXJyYXkuaXNBcnJheShjbG9uZVJlc3VsdCkgJiYgdGhpcy5tb2RlbC5kYXRhICE9PSBjbG9uZVJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0gc3RydWN0dXJlZENsb25lKGNsb25lUmVzdWx0KTtcclxuICAgICAgICAgIHRoaXMuX2luaXREYXRhU291cmNlKHRoaXMubW9kZWwuZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVSb3coKSB7XHJcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihJbnB1dFRhYmxlTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgdGl0bGU6ICfQodC+0LfQtNCw0L3QuNC1INGB0YLRgNC+0LrQuCcsXHJcbiAgICAgIG9rVGV4dDogJ9Ch0L7Qt9C00LDRgtGMJyxcclxuICAgICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXHJcbiAgICAgIHJvd01vZGVsOiBnZXRSb3dNb2RlbCh0aGlzLnNldHRpbmdzKVxyXG4gICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGlmIChyZXNvbHZlLnJlc3VsdCkge1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YSA9IFsuLi5zdHJ1Y3R1cmVkQ2xvbmUodGhpcy5tb2RlbC5kYXRhKSwgcmVzb2x2ZS5yb3dNb2RlbF07XHJcblxyXG4gICAgICAgIHRoaXMuX2luaXREYXRhU291cmNlKHRoaXMubW9kZWwuZGF0YSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQoc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWwpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlUm93KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGZpbmRSb3cgPSB0aGlzLm1vZGVsLmRhdGEuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGV2ZW50LnJvdy5kYXRhLmlkKTtcclxuXHJcbiAgICBpZiAoZmluZFJvdykge1xyXG4gICAgICB0aGlzLm1vZGVsLmRhdGEgPSB0aGlzLm1vZGVsLmRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCAhPT0gZXZlbnQucm93LmRhdGEuaWQpO1xyXG5cclxuICAgICAgdGhpcy5faW5pdERhdGFTb3VyY2UodGhpcy5tb2RlbC5kYXRhKTtcclxuXHJcbiAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuX2NhbkVkaXRPYmplY3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdFJvdyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaW5kUm93OiBUYWJsZVJvd01vZGVsIHwgdW5kZWZpbmVkID0gdGhpcy5tb2RlbC5kYXRhLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBldmVudC5yb3cuZGF0YS5pZCk7XHJcblxyXG4gICAgaWYgKGZpbmRSb3cpIHtcclxuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oSW5wdXRUYWJsZU1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgICAgdGl0bGU6ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INGB0YLRgNC+0LrQuCcsXHJcbiAgICAgICAgb2tUZXh0OiAn0KHQvtGF0YDQsNC90LjRgtGMJyxcclxuICAgICAgICBzZXR0aW5nczogdGhpcy5zZXR0aW5ncyxcclxuICAgICAgICByb3dNb2RlbDogZmluZFJvd1xyXG4gICAgICB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXNvbHZlID0+IHtcclxuICAgICAgICBpZiAocmVzb2x2ZS5yZXN1bHQpIHtcclxuICAgICAgICAgIGNvbnN0IGNsb25lTW9kZWwgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5tb2RlbCk7XHJcbiAgICAgICAgICBjb25zdCBmaW5kUm93ID0gY2xvbmVNb2RlbC5kYXRhLmZpbmQocm93ID0+IHJvdy5pZCA9PT0gcmVzb2x2ZS5yb3dNb2RlbC5pZCk7XHJcblxyXG4gICAgICAgICAgaWYgKGZpbmRSb3cpIHtcclxuICAgICAgICAgICAgZmluZFJvdy5kYXRhID0gcmVzb2x2ZS5yb3dNb2RlbC5kYXRhO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5faW5pdERhdGFTb3VyY2UoY2xvbmVNb2RlbC5kYXRhKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLm5leHQoc3RydWN0dXJlZENsb25lKGNsb25lTW9kZWwpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZvcm1hdChjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsQmFzZSkge1xyXG4gICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xyXG4gICAgICBjYXNlIENvbXBvbmVudFR5cGUuSW5wdXREYXRlOlxyXG4gICAgICAgIHN3aXRjaCAoKGNvbXBvbmVudCBhcyBJbnB1dERhdGVNb2RlbCkub3B0aW9ucy52aWV3VHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBEYXRlVHlwZUVudW0uRGF0ZVRpbWU6XHJcbiAgICAgICAgICAgIHJldHVybiAnZGQuTU0ueXl5eSBoaDptbSc7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gJ2RkLk1NLnl5eXknO1xyXG4gICAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RGF0YVR5cGUoY29tcG9uZW50OiBDb21wb25lbnRNb2RlbEJhc2UpIHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBDb21wb25lbnRUeXBlLklucHV0RGF0ZTpcclxuICAgICAgICByZXR1cm4gJ2RhdGUnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnc3RyaW5nJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93VG90YWwoY29tcG9uZW50OiBDb21wb25lbnRNb2RlbEJhc2UpOiBib29sZWFuIHtcclxuICAgIGlmIChjb21wb25lbnQudHlwZSA9PT0gQ29tcG9uZW50VHlwZS5JbnB1dE51bWJlcikge1xyXG4gICAgICBjb25zdCBlbGVtZW50OiBJbnB1dE51bWJlck1vZGVsID0gY29tcG9uZW50IGFzIElucHV0TnVtYmVyTW9kZWw7XHJcblxyXG4gICAgICByZXR1cm4gZWxlbWVudC5vcHRpb25zLmluVG90YWxzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1RvdGFsQ29sdW1uKGNvbXBvbmVudDogQ29tcG9uZW50TW9kZWxCYXNlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKGNvbXBvbmVudCBhcyBJbnB1dE51bWJlck1vZGVsKS5vcHRpb25zWydpblRvdGFscyddO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdE1vZGVsKCkge1xyXG4gICAgdGhpcy5tb2RlbCA9IHtcclxuICAgICAgc3lzTmFtZTogdGhpcy5zZXR0aW5ncy5zeXNOYW1lLFxyXG4gICAgICB0eXBlOiB0aGlzLnNldHRpbmdzLnR5cGUsXHJcbiAgICAgIGRhdGE6IFtdLFxyXG4gICAgICB0b3RhbHM6IFtdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdERhdGFTb3VyY2UoZGF0YTogVGFibGVSb3dNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhLm1hcCgoaXRlbTogVGFibGVSb3dNb2RlbCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdEYXRhSXRlbTogYW55ID0ge307XHJcblxyXG4gICAgICBmb3IgKGxldCBpIGluIGl0ZW0uZGF0YSkge1xyXG4gICAgICAgIG5ld0RhdGFJdGVtW2l0ZW0uZGF0YVtpXS5zeXNOYW1lXSA9IGl0ZW0uZGF0YVtpXS52YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbmV3RGF0YUl0ZW0uaWQgPSBpdGVtLmlkO1xyXG5cclxuICAgICAgcmV0dXJuIG5ld0RhdGFJdGVtO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHRoaXMuZGF0YUdyaWQuaW5zdGFuY2UucmVmcmVzaCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdENvbHVtbnMoY29tcG9uZW50czogQ29tcG9uZW50TW9kZWxCYXNlW10pIHtcclxuICAgIHRoaXMuY29sdW1ucyA9IGNvbXBvbmVudHMubWFwKGMgPT4gdGhpcy5fdHJhbnNmb3JtQ29sdW1uKHN0cnVjdHVyZWRDbG9uZShjKSkpO1xyXG5cclxuICAgIHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgY2FwdGlvbjogJycsXHJcbiAgICAgIHR5cGU6ICdidXR0b25zJyxcclxuICAgICAgd2lkdGg6IDgwLFxyXG4gICAgICBjc3NDbGFzczogJ2N1c3RvbS1jZWxsLWNvbnRyb2xzJyxcclxuICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRlbXBsYXRlOiAnZWRpdEJ1dHRvblRlbXBsYXRlJyxcclxuICAgICAgICAgIGhpbnQ6ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZW1wbGF0ZTogJ2RlbGV0ZUJ1dHRvblRlbXBsYXRlJyxcclxuICAgICAgICAgIGhpbnQ6ICfQo9C00LDQu9C40YLRjCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGF0YUdyaWQuaW5zdGFuY2UucmVwYWludCgpO1xyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNmb3JtQ29sdW1uKGNvbXBvbmVudDogQ29tcG9uZW50TW9kZWxCYXNlKTogQ29sdW1uTW9kZWwge1xyXG4gICAgY29uc3QgY29sdW1uOiBDb2x1bW5Nb2RlbCA9IHtcclxuICAgICAgY2FwdGlvbjogY29tcG9uZW50Lm9wdGlvbnMubGFiZWwgfHwgJycsXHJcbiAgICAgIGNvbHVtbnM6IGNvbXBvbmVudC5jb21wb25lbnRzLm1hcChjID0+IHRoaXMuX3RyYW5zZm9ybUNvbHVtbihzdHJ1Y3R1cmVkQ2xvbmUoYykpKSxcclxuICAgICAgZGF0YUZpZWxkOiBjb21wb25lbnQuc3lzTmFtZSxcclxuICAgICAgZGF0YVR5cGU6IHRoaXMuZ2V0RGF0YVR5cGUoY29tcG9uZW50KSxcclxuICAgICAgZm9ybWF0OiB0aGlzLmdldEZvcm1hdChjb21wb25lbnQpLFxyXG4gICAgICBtaW5XaWR0aDogMTYwXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5ncm91cHMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbmRJZHggPSB0aGlzLnNldHRpbmdzLm9wdGlvbnMuZ3JvdXBzLmZpbmRJbmRleCh4ID0+IHggPT09IGNvbXBvbmVudC5zeXNOYW1lKTtcclxuXHJcbiAgICAgIGlmIChmaW5kSWR4ICE9PSAtMSkge1xyXG4gICAgICAgIGNvbHVtbi5ncm91cEluZGV4ID0gZmluZElkeFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbHVtblxyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNldHRpbmdzKSB7XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LXRhYmxlLWNvbnRlbnQgdy0xMDBcIj5cclxuICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCkge1xyXG4gICAgICA8bXJ4LWxhYmVsXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWRcIlxyXG4gICAgICAgIFt0b29sdGlwXT1cInNldHRpbmdzLm9wdGlvbnMudG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLmxhYmVsIH19XHJcbiAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxkeC1kYXRhLWdyaWRcclxuICAgICAgI2RhdGFHcmlkXHJcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgbm9EYXRhVGV4dD1cItCd0LXRgiDQtNCw0L3QvdGL0YVcIlxyXG4gICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgW3dvcmRXcmFwRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgID5cclxuICAgICAgPGR4by10b29sYmFyPlxyXG4gICAgICAgIDxkeGktaXRlbSBsb2NhdGlvbj1cImFmdGVyXCI+XHJcbiAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlIGNsYXNzPVwiYWRkLXJvd1wiPlxyXG4gICAgICAgICAgICA8bXJ4LWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgICBbdHlwZV09XCInc2Vjb25kYXJ5J1wiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ21iLTMnXCJcclxuICAgICAgICAgICAgICAobXJ4Q2xpY2spPVwiY3JlYXRlUm93KClcIlxyXG4gICAgICAgICAgICA+e3tzZXR0aW5ncy5vcHRpb25zLmFkZEJ0blRpdGxlfX1cclxuICAgICAgICAgICAgPC9tcngtYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9keGktaXRlbT5cclxuICAgICAgPC9keG8tdG9vbGJhcj5cclxuXHJcbiAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgYnV0dG9uRGF0YSBvZiAnZWRpdEJ1dHRvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1lZGl0IGljb24tZm9udC0xNiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJlZGl0Um93KGJ1dHRvbkRhdGEpXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgYnV0dG9uRGF0YSBvZiAnZGVsZXRlQnV0dG9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWRlbGV0ZSBpY29uLWZvbnQtMTYgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZGVsZXRlUm93KGJ1dHRvbkRhdGEpXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnbm9EYXRhJ1wiPlxyXG4gICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHZhcigtLXN5c3RlbS10ZXh0LW5lZ2F0aXZlLCAjOEUyMTAwKTtcIj5cclxuICAgICAgICAgINCd0LXRgiDQtNCw0L3QvdGL0YVcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmIChkYXRhU291cmNlLmxlbmd0aCkge1xyXG4gICAgICAgIDxkeG8tc3VtbWFyeT5cclxuICAgICAgICAgIEBmb3IgKGNvbXBvbmVudCBvZiBzZXR0aW5ncy5jb21wb25lbnRzOyB0cmFjayBjb21wb25lbnQuaWQ7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xyXG4gICAgICAgICAgICBAaWYgKCFmaXJzdCkge1xyXG4gICAgICAgICAgICAgIEBpZiAoc2hvd1RvdGFsKGNvbXBvbmVudCkpIHtcclxuICAgICAgICAgICAgICAgIDxkeGktZ3JvdXAtaXRlbVxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgc3VtbWFyeVR5cGU9XCJzdW1cIlxyXG4gICAgICAgICAgICAgICAgICBkaXNwbGF5Rm9ybWF0PVwi0JjRgtC+0LPQvjogezB9XCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dJbkdyb3VwRm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbYWxpZ25CeUNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1ncm91cC1pdGVtPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeGktdG90YWwtaXRlbSBcclxuICAgICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb21wb25lbnQuc3lzTmFtZVwiIFxyXG4gICAgICAgICAgICAgICAgICBkaXNwbGF5Rm9ybWF0PVwiezB9XCJcclxuICAgICAgICAgICAgICAgICAgc3VtbWFyeVR5cGU9XCJzdW1cIlxyXG4gICAgICAgICAgICAgICAgPjwvZHhpLXRvdGFsLWl0ZW0+XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBAZm9yIChjb21wb25lbnQgb2YgY29tcG9uZW50LmNvbXBvbmVudHM7IHRyYWNrIGNvbXBvbmVudC5pZCkge1xyXG4gICAgICAgICAgICAgICAgQGlmIChzaG93VG90YWwoY29tcG9uZW50KSkge1xyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWdyb3VwLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5VHlwZT1cInN1bVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUZvcm1hdD1cItCY0YLQvtCz0L46IHswfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dJbkdyb3VwRm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGlnbkJ5Q29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgPC9keGktZ3JvdXAtaXRlbT5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAZm9yIChjb21wb25lbnQgb2YgY29tcG9uZW50LmNvbXBvbmVudHM7IHRyYWNrIGNvbXBvbmVudC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICBAaWYgKHNob3dUb3RhbChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1ncm91cC1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnlUeXBlPVwic3VtXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGb3JtYXQ9XCLQmNGC0L7Qs9C+OiB7MH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dJbkdyb3VwRm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FsaWduQnlDb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZHhpLWdyb3VwLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIEBpZiAoaGFzQW55VG90YWwpIHsgXHJcbiAgICAgICAgICAgICAgICA8ZHhpLXRvdGFsLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3NzQ2xhc3NdPVwiJ3RleHQtYm9sZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5Rm9ybWF0XT1cInNob3dUb3RhbChjb21wb25lbnQpID8gJ3swfScgOiAn0JjQotCe0JPQnidcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdW1tYXJ5VHlwZV09XCJzaG93VG90YWwoY29tcG9uZW50KSA/ICdzdW0nIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgICAgICAgID48L2R4aS10b3RhbC1pdGVtPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZHhvLXN1bW1hcnk+XHJcbiAgICAgIH1cclxuICAgIDwvZHgtZGF0YS1ncmlkPlxyXG5cclxuICAgIEBpZighIXNldHRpbmdzLm9wdGlvbnMubWF4Um93cykge1xyXG4gICAgICA8bXJ4LWhpbnQtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgIG1lc3NhZ2U9XCLQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtGA0L7Qujoge3sgc2V0dGluZ3Mub3B0aW9ucy5tYXhSb3dzIH19XCJcclxuICAgICAgICBbbWF4VmFsdWVdPVwic2V0dGluZ3Mub3B0aW9ucy5tYXhSb3dzXCJcclxuICAgICAgICBbdmFsdWVdPVwicm93c0NvdW50XCJcclxuICAgICAgPjwvbXJ4LWhpbnQtZXJyb3ItbWVzc2FnZT5cclxuICAgIH1cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtY2VsbEluZm89XCJjZWxsSW5mb1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDRweFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1lZGl0IGljb24tZm9udC0xNiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJlZGl0Um93KGNlbGxJbmZvKVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZGVsZXRlIGljb24tZm9udC0xNiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJkZWxldGVSb3coY2VsbEluZm8pXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFJN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztBQVM3RCxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT0UsU0FBSSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFFeEIsV0FBTSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixjQUFTLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pELGtCQUFhLEdBQWlCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVuRCxvQkFBZSxHQUE2QixJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUMzRSxvQkFBZSxHQUFtQixFQUFFLENBQUM7UUFFckMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBSWpDLGVBQVUsR0FBNkIsRUFBRSxDQUFDO1FBQzFDLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBRTFCLFdBQU0sR0FBd0IsRUFBRSxDQUFDO1FBZXpCLFlBQU8sR0FBOEQsSUFBSSxZQUFZLEVBQStDLENBQUM7S0FpT3ZKO0lBOU9DLElBQWEsSUFBSSxDQUFDLFFBQTRCO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBMkIsQ0FBQztRQUU1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFFcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQU9ELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLDBFQUEwRTtRQUMxRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3ZCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDbEIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFckQsTUFBYyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFFaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUM7YUFDbEYsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5RixTQUFTLENBQUMsQ0FBQyxNQUFtRSxFQUFFLEVBQUU7WUFDakYsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLE1BQWdDLENBQUMsQ0FBQztZQUV0RSxJQUFJLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2RixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2hELEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsTUFBTSxFQUFFLFNBQVM7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNwQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN2QyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25DLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUUxRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRXRDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQVU7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1RSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVoRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDOUIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLE1BQU0sT0FBTyxHQUE4QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZHLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtnQkFDaEQsS0FBSyxFQUFFLHVCQUF1QjtnQkFDOUIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsUUFBUSxFQUFFLE9BQU87YUFDbEIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25CLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9DLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUU1RSxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUNaLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7d0JBRXJDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUV0QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDekQsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFNBQVMsQ0FBQyxTQUE2QjtRQUM1QyxRQUFRLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QixLQUFLLGFBQWEsQ0FBQyxTQUFTO2dCQUMxQixRQUFTLFNBQTRCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN2RCxLQUFLLFlBQVksQ0FBQyxRQUFRO3dCQUN4QixPQUFPLGtCQUFrQixDQUFDO29CQUM1Qjt3QkFDRSxPQUFPLFlBQVksQ0FBQztnQkFDeEIsQ0FBQztZQUNIO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsU0FBNkI7UUFDOUMsUUFBUSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsS0FBSyxhQUFhLENBQUMsU0FBUztnQkFDMUIsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsU0FBNkI7UUFDNUMsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxNQUFNLE9BQU8sR0FBcUIsU0FBNkIsQ0FBQztZQUVoRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxhQUFhLENBQUMsU0FBNkI7UUFDaEQsT0FBUSxTQUE4QixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztZQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ3hCLElBQUksRUFBRSxFQUFFO1lBQ1IsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFxQjtRQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUU7WUFDakQsTUFBTSxXQUFXLEdBQVEsRUFBRSxDQUFDO1lBRTVCLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN6RCxDQUFDO1lBRUQsV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBRXpCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sWUFBWSxDQUFDLFVBQWdDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsT0FBTyxFQUFFO2dCQUNQO29CQUNFLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBRSxlQUFlO2lCQUN0QjtnQkFDRDtvQkFDRSxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxJQUFJLEVBQUUsU0FBUztpQkFDaEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFNBQTZCO1FBQ3BELE1BQU0sTUFBTSxHQUFnQjtZQUMxQixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QyxPQUFPLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakYsU0FBUyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUNyQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDakMsUUFBUSxFQUFFLEdBQUc7U0FDZCxDQUFBO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFckYsSUFBSSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUE7WUFDN0IsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7K0dBalFVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlVQy9CaEMsd3NKQXVIQTs7NEZEeEZhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFvQnRDLE1BQU07c0JBQWQsS0FBSztnQkFFTyxJQUFJO3NCQUFoQixLQUFLO2dCQVVrQyxRQUFRO3NCQUEvQyxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ00sWUFBWTtzQkFBdkQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUV6QixPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUsIERhdGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudE1vZGVsQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL21vZGVscyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnRWYWx1ZU1vZGVsLCBTZWN0aW9uVmFsdWVNb2RlbCwgVGFibGVSb3dNb2RlbCwgVGFibGVWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSW5wdXREYXRlTW9kZWwsIElucHV0TnVtYmVyTW9kZWwsIElucHV0VGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1BY3Rpb25zLCBvYmplY3RGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0VGFibGVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IGdldFJvd01vZGVsIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1yb3ctbW9kZWwuaGVscGVyJztcclxuaW1wb3J0IHsgQ29sdW1uTW9kZWwgfSBmcm9tICcuL21vZGVscy9jb2x1bW4ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGFibGUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICB0eXBlID0gQ29tcG9uZW50VHlwZS5JbnB1dFRhYmxlO1xyXG5cclxuICBwcml2YXRlIF9zdG9yZTogU3RvcmUgPSBpbmplY3QoU3RvcmUpO1xyXG4gIHByaXZhdGUgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UgPSBpbmplY3QoTW9kYWxTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSBfY2hhbmdlU3ViamVjdCQ6IFN1YmplY3Q8VGFibGVWYWx1ZU1vZGVsPiA9IG5ldyBTdWJqZWN0PFRhYmxlVmFsdWVNb2RlbD4oKTtcclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNDaGVja1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfY2FuRWRpdE9iamVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgbW9kZWwhOiBUYWJsZVZhbHVlTW9kZWw7XHJcbiAgcHVibGljIHNldHRpbmdzITogSW5wdXRUYWJsZU1vZGVsO1xyXG4gIHB1YmxpYyBkYXRhU291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXTtcclxuICBwdWJsaWMgY29sdW1uczogQ29sdW1uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSB2YWx1ZXM6IFNlY3Rpb25WYWx1ZU1vZGVsW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGRhdGEoc2V0dGluZ3M6IENvbXBvbmVudE1vZGVsQmFzZSkge1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzIGFzIElucHV0VGFibGVNb2RlbDtcclxuXHJcbiAgICB0aGlzLm1vZGVsID0ge3N5c05hbWU6IHNldHRpbmdzLnN5c05hbWUsIHR5cGU6IHNldHRpbmdzLnR5cGUsIGRhdGE6IFtdLCB0b3RhbHM6IFtdfTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdGhpcy5faW5pdENvbHVtbnModGhpcy5zZXR0aW5ncy5jb21wb25lbnRzKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2RhdGFHcmlkJywge3N0YXRpYzogZmFsc2V9KSBkYXRhR3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdFRlbXBsYXRlJywge3N0YXRpYzogZmFsc2V9KSBlZGl0VGVtcGxhdGUhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPENvbXBvbmVudFZhbHVlTW9kZWwgfCBDb21wb25lbnRWYWx1ZU1vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdPigpO1xyXG5cclxuICBwdWJsaWMgZ2V0IHJvd3NDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWw/LmRhdGE/Lmxlbmd0aCB8fCAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0FueVRvdGFsKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8INCy0YHQtSDQutC+0LzQv9C+0L3QtdC90YLRiyDQuCDQuNGFINCy0LvQvtC20LXQvdC90YvQtSDQutC+0LzQv9C+0L3QtdC90YLRiyDQvdCwINC90LDQu9C40YfQuNC1IHNob3dUb3RhbFxyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29tcG9uZW50cy5zb21lKGMgPT4gXHJcbiAgICAgIHRoaXMuc2hvd1RvdGFsKGMpIHx8IGMuY29tcG9uZW50cz8uc29tZShpbm5lciA9PiB0aGlzLnNob3dUb3RhbChpbm5lcikpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0TW9kZWwoKTtcclxuXHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0JC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcclxuICAgICkuc3Vic2NyaWJlKG1vZGVsID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ9CU0LDQvdC90YvQtSDRgtCw0LHQu9C40YbRiyDQvtCx0L3QvtCy0LvQtdC90Ysg0Lgg0LPQvtGC0L7QstGLINC6INC+0YLQv9GA0LDQstC60LU6JywgbW9kZWwpO1xyXG4gICAgICBjb25zb2xlLmxvZygn0KfQuNGB0YLRi9C1INGB0YLRgNC+0LrQuCAoZGF0YSk6JywgbW9kZWwuZGF0YSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCfQlNCw0L3QvdGL0LUg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LIgR3JpZDonLCB0aGlzLmRhdGFTb3VyY2UpO1xyXG4gICAgICBjb25zb2xlLmxvZygnR3JpZCBJbnN0YW5jZTonLCB0aGlzLmRhdGFHcmlkLmluc3RhbmNlKTtcclxuXHJcbiAgICAgICh3aW5kb3cgYXMgYW55KS5ncmlkID0gdGhpcy5kYXRhR3JpZC5pbnN0YW5jZTtcclxuICAgICAgY29uc29sZS5sb2coJ9Ct0LrQt9C10LzQv9C70Y/RgCDQv9GA0LjQstGP0LfQsNC9INC6IHdpbmRvdy5ncmlkJyk7XHJcblxyXG4gICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChvYmplY3RGb3JtQWN0aW9ucy51cGRhdGVWYWx1ZXMoe3ZhbHVlOiBtb2RlbH0pKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0SXNDaGVja1JlcXVpcmVkKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5faXNDaGVja1JlcXVpcmVkID0gcmVzdWx0O1xyXG4gICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KSk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyQucHVzaCh0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RDYW5FZGl0T2JqZWN0KVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5fY2FuRWRpdE9iamVjdCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwgfCAoQ29tcG9uZW50VmFsdWVNb2RlbCB8IG51bGwpW10pID0+IHtcclxuICAgICAgICBjb25zdCBjbG9uZVJlc3VsdCA9IHN0cnVjdHVyZWRDbG9uZShyZXN1bHQgYXMgVGFibGVWYWx1ZU1vZGVsIHwgbnVsbCk7XHJcblxyXG4gICAgICAgIGlmIChjbG9uZVJlc3VsdCAmJiAhQXJyYXkuaXNBcnJheShjbG9uZVJlc3VsdCkgJiYgdGhpcy5tb2RlbC5kYXRhICE9PSBjbG9uZVJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0gc3RydWN0dXJlZENsb25lKGNsb25lUmVzdWx0KTtcclxuICAgICAgICAgIHRoaXMuX2luaXREYXRhU291cmNlKHRoaXMubW9kZWwuZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NoYW5nZVN1YmplY3QkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVSb3coKSB7XHJcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihJbnB1dFRhYmxlTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgdGl0bGU6ICfQodC+0LfQtNCw0L3QuNC1INGB0YLRgNC+0LrQuCcsXHJcbiAgICAgIG9rVGV4dDogJ9Ch0L7Qt9C00LDRgtGMJyxcclxuICAgICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXHJcbiAgICAgIHJvd01vZGVsOiBnZXRSb3dNb2RlbCh0aGlzLnNldHRpbmdzKSxcclxuICAgICAgaXNDaGVja1JlcXVpcmVkOiB0aGlzLl9pc0NoZWNrUmVxdWlyZWRcclxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc29sdmUgPT4ge1xyXG4gICAgICBpZiAocmVzb2x2ZS5yZXN1bHQpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEgPSBbLi4uc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWwuZGF0YSksIHJlc29sdmUucm93TW9kZWxdO1xyXG5cclxuICAgICAgICB0aGlzLl9pbml0RGF0YVNvdXJjZSh0aGlzLm1vZGVsLmRhdGEpO1xyXG5cclxuICAgICAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0JC5uZXh0KHN0cnVjdHVyZWRDbG9uZSh0aGlzLm1vZGVsKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZVJvdyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaW5kUm93ID0gdGhpcy5tb2RlbC5kYXRhLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBldmVudC5yb3cuZGF0YS5pZCk7XHJcblxyXG4gICAgaWYgKGZpbmRSb3cpIHtcclxuICAgICAgdGhpcy5tb2RlbC5kYXRhID0gdGhpcy5tb2RlbC5kYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT09IGV2ZW50LnJvdy5kYXRhLmlkKTtcclxuXHJcbiAgICAgIHRoaXMuX2luaXREYXRhU291cmNlKHRoaXMubW9kZWwuZGF0YSk7XHJcblxyXG4gICAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0JC5uZXh0KHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLl9jYW5FZGl0T2JqZWN0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVkaXRSb3coZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZmluZFJvdzogVGFibGVSb3dNb2RlbCB8IHVuZGVmaW5lZCA9IHRoaXMubW9kZWwuZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZXZlbnQucm93LmRhdGEuaWQpO1xyXG5cclxuICAgIGlmIChmaW5kUm93KSB7XHJcbiAgICAgIHRoaXMuX21vZGFsU2VydmljZS5vcGVuKElucHV0VGFibGVNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICAgIHRpdGxlOiAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSDRgdGC0YDQvtC60LgnLFxyXG4gICAgICAgIG9rVGV4dDogJ9Ch0L7RhdGA0LDQvdC40YLRjCcsXHJcbiAgICAgICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXHJcbiAgICAgICAgcm93TW9kZWw6IGZpbmRSb3dcclxuICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc29sdmUucmVzdWx0KSB7XHJcbiAgICAgICAgICBjb25zdCBjbG9uZU1vZGVsID0gc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWwpO1xyXG4gICAgICAgICAgY29uc3QgZmluZFJvdyA9IGNsb25lTW9kZWwuZGF0YS5maW5kKHJvdyA9PiByb3cuaWQgPT09IHJlc29sdmUucm93TW9kZWwuaWQpO1xyXG5cclxuICAgICAgICAgIGlmIChmaW5kUm93KSB7XHJcbiAgICAgICAgICAgIGZpbmRSb3cuZGF0YSA9IHJlc29sdmUucm93TW9kZWwuZGF0YTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2luaXREYXRhU291cmNlKGNsb25lTW9kZWwuZGF0YSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0JC5uZXh0KHN0cnVjdHVyZWRDbG9uZShjbG9uZU1vZGVsKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb3JtYXQoY29tcG9uZW50OiBDb21wb25lbnRNb2RlbEJhc2UpIHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBDb21wb25lbnRUeXBlLklucHV0RGF0ZTpcclxuICAgICAgICBzd2l0Y2ggKChjb21wb25lbnQgYXMgSW5wdXREYXRlTW9kZWwpLm9wdGlvbnMudmlld1R5cGUpIHtcclxuICAgICAgICAgIGNhc2UgRGF0ZVR5cGVFbnVtLkRhdGVUaW1lOlxyXG4gICAgICAgICAgICByZXR1cm4gJ2RkLk1NLnl5eXkgaGg6bW0nO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuICdkZC5NTS55eXl5JztcclxuICAgICAgICB9XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFUeXBlKGNvbXBvbmVudDogQ29tcG9uZW50TW9kZWxCYXNlKSB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5JbnB1dERhdGU6XHJcbiAgICAgICAgcmV0dXJuICdkYXRlJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ3N0cmluZyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1RvdGFsKGNvbXBvbmVudDogQ29tcG9uZW50TW9kZWxCYXNlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY29tcG9uZW50LnR5cGUgPT09IENvbXBvbmVudFR5cGUuSW5wdXROdW1iZXIpIHtcclxuICAgICAgY29uc3QgZWxlbWVudDogSW5wdXROdW1iZXJNb2RlbCA9IGNvbXBvbmVudCBhcyBJbnB1dE51bWJlck1vZGVsO1xyXG5cclxuICAgICAgcmV0dXJuIGVsZW1lbnQub3B0aW9ucy5pblRvdGFscztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNUb3RhbENvbHVtbihjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsQmFzZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChjb21wb25lbnQgYXMgSW5wdXROdW1iZXJNb2RlbCkub3B0aW9uc1snaW5Ub3RhbHMnXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRNb2RlbCgpIHtcclxuICAgIHRoaXMubW9kZWwgPSB7XHJcbiAgICAgIHN5c05hbWU6IHRoaXMuc2V0dGluZ3Muc3lzTmFtZSxcclxuICAgICAgdHlwZTogdGhpcy5zZXR0aW5ncy50eXBlLFxyXG4gICAgICBkYXRhOiBbXSxcclxuICAgICAgdG90YWxzOiBbXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXREYXRhU291cmNlKGRhdGE6IFRhYmxlUm93TW9kZWxbXSkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YS5tYXAoKGl0ZW06IFRhYmxlUm93TW9kZWwpID0+IHtcclxuICAgICAgY29uc3QgbmV3RGF0YUl0ZW06IGFueSA9IHt9O1xyXG5cclxuICAgICAgZm9yIChsZXQgaSBpbiBpdGVtLmRhdGEpIHtcclxuICAgICAgICBuZXdEYXRhSXRlbVtpdGVtLmRhdGFbaV0uc3lzTmFtZV0gPSBpdGVtLmRhdGFbaV0udmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG5ld0RhdGFJdGVtLmlkID0gaXRlbS5pZDtcclxuXHJcbiAgICAgIHJldHVybiBuZXdEYXRhSXRlbTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLmRhdGFHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRDb2x1bW5zKGNvbXBvbmVudHM6IENvbXBvbmVudE1vZGVsQmFzZVtdKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMgPSBjb21wb25lbnRzLm1hcChjID0+IHRoaXMuX3RyYW5zZm9ybUNvbHVtbihzdHJ1Y3R1cmVkQ2xvbmUoYykpKTtcclxuXHJcbiAgICB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgIGNhcHRpb246ICcnLFxyXG4gICAgICB0eXBlOiAnYnV0dG9ucycsXHJcbiAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgY3NzQ2xhc3M6ICdjdXN0b20tY2VsbC1jb250cm9scycsXHJcbiAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZW1wbGF0ZTogJ2VkaXRCdXR0b25UZW1wbGF0ZScsXHJcbiAgICAgICAgICBoaW50OiAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGVtcGxhdGU6ICdkZWxldGVCdXR0b25UZW1wbGF0ZScsXHJcbiAgICAgICAgICBoaW50OiAn0KPQtNCw0LvQuNGC0YwnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmRhdGFHcmlkLmluc3RhbmNlLnJlcGFpbnQoKTtcclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybUNvbHVtbihjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsQmFzZSk6IENvbHVtbk1vZGVsIHtcclxuICAgIGNvbnN0IGNvbHVtbjogQ29sdW1uTW9kZWwgPSB7XHJcbiAgICAgIGNhcHRpb246IGNvbXBvbmVudC5vcHRpb25zLmxhYmVsIHx8ICcnLFxyXG4gICAgICBjb2x1bW5zOiBjb21wb25lbnQuY29tcG9uZW50cy5tYXAoYyA9PiB0aGlzLl90cmFuc2Zvcm1Db2x1bW4oc3RydWN0dXJlZENsb25lKGMpKSksXHJcbiAgICAgIGRhdGFGaWVsZDogY29tcG9uZW50LnN5c05hbWUsXHJcbiAgICAgIGRhdGFUeXBlOiB0aGlzLmdldERhdGFUeXBlKGNvbXBvbmVudCksXHJcbiAgICAgIGZvcm1hdDogdGhpcy5nZXRGb3JtYXQoY29tcG9uZW50KSxcclxuICAgICAgbWluV2lkdGg6IDE2MFxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLm9wdGlvbnMuZ3JvdXBzLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBmaW5kSWR4ID0gdGhpcy5zZXR0aW5ncy5vcHRpb25zLmdyb3Vwcy5maW5kSW5kZXgoeCA9PiB4ID09PSBjb21wb25lbnQuc3lzTmFtZSk7XHJcblxyXG4gICAgICBpZiAoZmluZElkeCAhPT0gLTEpIHtcclxuICAgICAgICBjb2x1bW4uZ3JvdXBJbmRleCA9IGZpbmRJZHhcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb2x1bW5cclxuICB9XHJcbn1cclxuIiwiQGlmIChzZXR0aW5ncykge1xyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC10YWJsZS1jb250ZW50IHctMTAwXCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCB9fVxyXG4gICAgICA8L21yeC1sYWJlbD5cclxuICAgIH1cclxuXHJcbiAgICA8ZHgtZGF0YS1ncmlkXHJcbiAgICAgICNkYXRhR3JpZFxyXG4gICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIG5vRGF0YVRleHQ9XCLQndC10YIg0LTQsNC90L3Ri9GFXCJcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJVwiXHJcbiAgICAgIFt3b3JkV3JhcEVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxkeG8tdG9vbGJhcj5cclxuICAgICAgICA8ZHhpLWl0ZW0gbG9jYXRpb249XCJhZnRlclwiPlxyXG4gICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZSBjbGFzcz1cImFkZC1yb3dcIj5cclxuICAgICAgICAgICAgPG1yeC1idXR0b25cclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiJ3NlY29uZGFyeSdcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtYi0zJ1wiXHJcbiAgICAgICAgICAgICAgKG1yeENsaWNrKT1cImNyZWF0ZVJvdygpXCJcclxuICAgICAgICAgICAgPnt7c2V0dGluZ3Mub3B0aW9ucy5hZGRCdG5UaXRsZX19XHJcbiAgICAgICAgICAgIDwvbXJ4LWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHhpLWl0ZW0+XHJcbiAgICAgIDwvZHhvLXRvb2xiYXI+XHJcblxyXG4gICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGJ1dHRvbkRhdGEgb2YgJ2VkaXRCdXR0b25UZW1wbGF0ZSdcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZWRpdCBpY29uLWZvbnQtMTYgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZWRpdFJvdyhidXR0b25EYXRhKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGJ1dHRvbkRhdGEgb2YgJ2RlbGV0ZUJ1dHRvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRlbGV0ZVJvdyhidXR0b25EYXRhKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBAaWYgKGRhdGFTb3VyY2UubGVuZ3RoKSB7XHJcbiAgICAgICAgPGR4by1zdW1tYXJ5PlxyXG4gICAgICAgICAgQGZvciAoY29tcG9uZW50IG9mIHNldHRpbmdzLmNvbXBvbmVudHM7IHRyYWNrIGNvbXBvbmVudC5pZDsgbGV0IGZpcnN0ID0gJGZpcnN0KSB7XHJcbiAgICAgICAgICAgIEBpZiAoIWZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgQGlmIChzaG93VG90YWwoY29tcG9uZW50KSkge1xyXG4gICAgICAgICAgICAgICAgPGR4aS1ncm91cC1pdGVtXHJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBzdW1tYXJ5VHlwZT1cInN1bVwiXHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlGb3JtYXQ9XCLQmNGC0L7Qs9C+OiB7MH1cIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0luR3JvdXBGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFthbGlnbkJ5Q29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWdyb3VwLWl0ZW0+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS10b3RhbC1pdGVtIFxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbXBvbmVudC5zeXNOYW1lXCIgXHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlGb3JtYXQ9XCJ7MH1cIlxyXG4gICAgICAgICAgICAgICAgICBzdW1tYXJ5VHlwZT1cInN1bVwiXHJcbiAgICAgICAgICAgICAgICA+PC9keGktdG90YWwtaXRlbT5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIEBmb3IgKGNvbXBvbmVudCBvZiBjb21wb25lbnQuY29tcG9uZW50czsgdHJhY2sgY29tcG9uZW50LmlkKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKHNob3dUb3RhbChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktZ3JvdXAtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnlUeXBlPVwic3VtXCJcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Rm9ybWF0PVwi0JjRgtC+0LPQvjogezB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0luR3JvdXBGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsaWduQnlDb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4aS1ncm91cC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGNvbXBvbmVudCBvZiBjb21wb25lbnQuY29tcG9uZW50czsgdHJhY2sgY29tcG9uZW50LmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1RvdGFsKGNvbXBvbmVudCkpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWdyb3VwLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeVR5cGU9XCJzdW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUZvcm1hdD1cItCY0YLQvtCz0L46IHswfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd0luR3JvdXBGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxpZ25CeUNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keGktZ3JvdXAtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgQGlmIChoYXNBbnlUb3RhbCkgeyBcclxuICAgICAgICAgICAgICAgIDxkeGktdG90YWwtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29tcG9uZW50LnN5c05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjc3NDbGFzc109XCIndGV4dC1ib2xkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGb3JtYXRdPVwic2hvd1RvdGFsKGNvbXBvbmVudCkgPyAnezB9JyA6ICfQmNCi0J7Qk9CeJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N1bW1hcnlUeXBlXT1cInNob3dUb3RhbChjb21wb25lbnQpID8gJ3N1bScgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAgICAgPjwvZHhpLXRvdGFsLWl0ZW0+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9keG8tc3VtbWFyeT5cclxuICAgICAgfVxyXG4gICAgPC9keC1kYXRhLWdyaWQ+XHJcblxyXG4gICAgQGlmKCEhc2V0dGluZ3Mub3B0aW9ucy5tYXhSb3dzKSB7XHJcbiAgICAgIDxtcngtaGludC1lcnJvci1tZXNzYWdlXHJcbiAgICAgICAgbWVzc2FnZT1cItCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDRgdGC0YDQvtC6OiB7eyBzZXR0aW5ncy5vcHRpb25zLm1heFJvd3MgfX1cIlxyXG4gICAgICAgIFttYXhWYWx1ZV09XCJzZXR0aW5ncy5vcHRpb25zLm1heFJvd3NcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJyb3dzQ291bnRcIlxyXG4gICAgICA+PC9tcngtaGludC1lcnJvci1tZXNzYWdlPlxyXG4gICAgfVxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1jZWxsSW5mbz1cImNlbGxJbmZvXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cImdhcDogNHB4XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWVkaXQgaWNvbi1mb250LTE2IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImVkaXRSb3coY2VsbEluZm8pXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRlbGV0ZVJvdyhjZWxsSW5mbylcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxufVxyXG5cclxuXHJcbiJdfQ==
|