@smartbit4all/ng-client 3.1.30 → 3.1.31

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.
@@ -20,11 +20,13 @@ export class TableLayoutDefinerComponent {
20
20
  this.disableSave = false;
21
21
  this.alwaysShowColumns = [];
22
22
  this.addDisabled = false;
23
+ this.showAddBtn = true;
23
24
  this.view = JSON.parse(JSON.stringify(data.customComponentInputs.config.view));
24
25
  this.mapOrderedColumnsToObject();
25
26
  this.constructForms();
26
27
  this.getAlwaysShowColumns();
27
28
  this.addDisabled = !(this.forms.length < this.view.descriptor.columns.length);
29
+ this.showAddBtn = !(this.forms.length == this.view.descriptor.columns.length);
28
30
  }
29
31
  ngOnDestroy() {
30
32
  this._destroy$.next();
@@ -79,7 +81,7 @@ export class TableLayoutDefinerComponent {
79
81
  this.constructForms();
80
82
  this.disableSave = true;
81
83
  }
82
- this.addDisabled = !(this.forms.length < this.view.descriptor.columns.length);
84
+ this.showAddBtn = this.forms.length < this.view.descriptor.columns.length;
83
85
  }
84
86
  removeColumn(form) {
85
87
  let propertyName = this.orderedColumnsAsObject[form.widgets[0].key];
@@ -164,10 +166,10 @@ export class TableLayoutDefinerComponent {
164
166
  }
165
167
  }
166
168
  TableLayoutDefinerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableLayoutDefinerComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
167
- TableLayoutDefinerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TableLayoutDefinerComponent, selector: "app-table-layout-definer", viewQueries: [{ propertyName: "formChildren", predicate: ["forms"], descendants: true }], ngImport: i0, template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"], components: [{ type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i3.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
169
+ TableLayoutDefinerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TableLayoutDefinerComponent, selector: "app-table-layout-definer", viewQueries: [{ propertyName: "formChildren", predicate: ["forms"], descendants: true }], ngImport: i0, template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\" *ngIf=\"showAddBtn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"], components: [{ type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i3.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
168
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableLayoutDefinerComponent, decorators: [{
169
171
  type: Component,
170
- args: [{ selector: 'app-table-layout-definer', template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"] }]
172
+ args: [{ selector: 'app-table-layout-definer', template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\" *ngIf=\"showAddBtn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"] }]
171
173
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
172
174
  type: Inject,
173
175
  args: [MAT_DIALOG_DATA]
@@ -175,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
175
177
  type: ViewChildren,
176
178
  args: ['forms']
177
179
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9jb21wb25lbnRzL3RhYmxlLWxheW91dC1kZWZpbmVyL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWdyaWQvY29tcG9uZW50cy90YWJsZS1sYXlvdXQtZGVmaW5lci90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUNrQyxJQUFxQixFQUM3QyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQVh0RCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFN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RUFURixZQUFZO3NCQUFsQyxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRGb3JtLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcclxuICBTbWFydEZvcm1XaWRnZXRUeXBlLFxyXG4gIFNtYXJ0Zm9ybUNvbXBvbmVudCxcclxufSBmcm9tICcuLi8uLi8uLi9zbWFydC1mb3JtL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW5NZXRhLCBHcmlkVXBkYXRlRGF0YSwgR3JpZFZpZXcgfSBmcm9tICcuLi8uLi9hcGkvZ3JpZC1hcGknO1xyXG5pbXBvcnQgeyBTbWFydEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc21hcnQtZ3JpZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnREaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vLi4vc21hcnQtZGlhbG9nL3Byb2plY3RzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVMYXlvdXREZWZpbmVyQ29uZmlnIHtcclxuICB1dWlkOiBzdHJpbmc7XHJcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xyXG4gIHZpZXc6IEdyaWRWaWV3O1xyXG4gIHNlcnZpY2U6IFNtYXJ0R3JpZFNlcnZpY2U7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRhYmxlLWxheW91dC1kZWZpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlTGF5b3V0RGVmaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2Zvcm1zJykgZm9ybUNoaWxkcmVuPzogU21hcnRmb3JtQ29tcG9uZW50W107XHJcbiAgZm9ybXM/OiBTbWFydEZvcm1bXTtcclxuICB2aWV3PzogR3JpZFZpZXc7XHJcbiAgcHJpdmF0ZSBvcmRlcmVkQ29sdW1uc0FzT2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgZGlzYWJsZVNhdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbHdheXNTaG93Q29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuICBhZGREaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogU21hcnREaWFsb2dEYXRhLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUYWJsZUxheW91dERlZmluZXJDb21wb25lbnQ+XHJcbiAgKSB7XHJcbiAgICB0aGlzLnZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEuY3VzdG9tQ29tcG9uZW50SW5wdXRzLmNvbmZpZy52aWV3KSk7XHJcbiAgICB0aGlzLm1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTtcclxuICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgIHRoaXMuZ2V0QWx3YXlzU2hvd0NvbHVtbnMoKTtcclxuICAgIHRoaXMuYWRkRGlzYWJsZWQgPSAhKHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjaWJlRm9yVmFsdWVDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NpYmVGb3JWYWx1ZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNoaWxkcmVuPy5mb3JFYWNoKChjb21wOiBTbWFydGZvcm1Db21wb25lbnQpID0+IHtcclxuICAgICAgY29tcC5vblZhbHVlQ2hhbmdlU3ViamVjdD8ucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGxldCB1cGRhdGVkT3JkZXJlZENvbHVtbnMgPSB0aGlzLmdldFVwZGF0ZWRPcmRlcmVkQ29sdW1ucygpO1xyXG5cclxuICAgICAgICBsZXQgZmluZER1cGxpY2F0ZXMgPSB1cGRhdGVkT3JkZXJlZENvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW0sIGluZGV4KSA9PiB1cGRhdGVkT3JkZXJlZENvbHVtbnMuaW5kZXhPZihpdGVtKSAhPT0gaW5kZXhcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmRpc2FibGVTYXZlID0gZmluZER1cGxpY2F0ZXMubGVuZ3RoID4gMCB8fCB0aGlzLmhhc0VtcHR5VmFsdWUodXBkYXRlZE9yZGVyZWRDb2x1bW5zKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhc0VtcHR5VmFsdWUodXBkYXRlZE9yZGVyZWRDb2x1bW5zOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIHVwZGF0ZWRPcmRlcmVkQ29sdW1ucy5zb21lKCh2YWx1ZSkgPT4gdmFsdWUubGVuZ3RoID09PSAwKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdEZvcm1zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtcyA9IHRoaXMudmlldyEub3JkZXJlZENvbHVtbk5hbWVzLm1hcCgoY29sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgbGV0IGZvcm06IFNtYXJ0Rm9ybSA9IHtcclxuICAgICAgICBjb21wb25lbnRNb2RlbDogeyBkYXRhOiB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3QgfSxcclxuICAgICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgICAgdXNlT25WYWx1ZUNoYW5nZUV2ZW50OiB0cnVlLFxyXG4gICAgICAgIHdpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAga2V5OiBpbmRleC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgICB2YWx1ZUxpc3Q6IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5maWx0ZXIoKGNtKSA9PiAhY20uYWx3YXlzSGlkZGVuKS5tYXAoXHJcbiAgICAgICAgICAgICAgKGNvbE1ldGE6IEdyaWRDb2x1bW5NZXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBrZXk6ICcnLFxyXG4gICAgICAgICAgICAgICAgICBsYWJlbDogY29sTWV0YS5sYWJlbCxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbE1ldGEucHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIGZvcm07XHJcbiAgICB9KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zdWJzY2liZUZvclZhbHVlQ2hhbmdlKCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIGFkZENvbHVtbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1zIS5sZW5ndGggPCB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnB1c2goJycpO1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMubGVuZ3RoIC0gMV0gPSAnJztcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgICB0aGlzLmRpc2FibGVTYXZlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuYWRkRGlzYWJsZWQgPSAhKHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ29sdW1uKGZvcm06IFNtYXJ0Rm9ybSk6IHZvaWQge1xyXG4gICAgbGV0IHByb3BlcnR5TmFtZSA9IHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdFtmb3JtLndpZGdldHNbMF0ua2V5IV07XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcy5pbmRleE9mKHByb3BlcnR5TmFtZSk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYXBPcmRlcmVkQ29sdW1uc1RvT2JqZWN0KCk7XHJcbiAgICB0aGlzLmNvbnN0cnVjdEZvcm1zKCk7XHJcbiAgICB0aGlzLmFkZERpc2FibGVkID0gISh0aGlzLmZvcm1zIS5sZW5ndGggPCB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tQ29sdW1uTWV0YShwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsID0gdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZpbmQoXHJcbiAgICAgICh2YWx1ZTogR3JpZENvbHVtbk1ldGEpID0+IHZhbHVlLnByb3BlcnR5TmFtZSA9PT0gcHJvcFxyXG4gICAgKT8ubGFiZWw7XHJcbiAgICByZXR1cm4gbGFiZWwgPz8gcHJvcDtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZm9ybXMhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUZvckNvbChjb2w6IHN0cmluZyk6IFNtYXJ0Rm9ybSB7XHJcbiAgICBsZXQgZm9ybTogU21hcnRGb3JtID0ge1xyXG4gICAgICBjb21wb25lbnRNb2RlbDogeyBkYXRhOiB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3QgfSxcclxuICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICB3aWRnZXRzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAga2V5OiBjb2wsXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbEZyb21Db2x1bW5NZXRhKGNvbCksXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVCxcclxuICAgICAgICAgIHZhbHVlTGlzdDogdGhpcy52aWV3IS5kZXNjcmlwdG9yIS5jb2x1bW5zLm1hcCgoY29sTWV0YTogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBrZXk6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2xNZXRhLmxhYmVsLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBjb2xNZXRhLnByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMgPSB0aGlzLmdldFVwZGF0ZWRPcmRlcmVkQ29sdW1ucygpO1xyXG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnO1xyXG5cclxuICAgIGxldCB1cGRhdGVEYXRhOiBHcmlkVXBkYXRlRGF0YSA9IHtcclxuICAgICAgb3JkZXJCeUxpc3Q6IHRoaXMudmlldyEub3JkZXJCeUxpc3QsXHJcbiAgICAgIG9yZGVyZWRDb2x1bW5OYW1lczogdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMsXHJcbiAgICB9O1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnLnNlcnZpY2UudXBkYXRlKFxyXG4gICAgICBjb25maWcudXVpZCxcclxuICAgICAgY29uZmlnLmlkZW50aWZpZXIsXHJcbiAgICAgIHVwZGF0ZURhdGFcclxuICAgICk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCkge1xyXG4gICAgbGV0IHVwZGF0ZWRLZXlPcmRlciA9IHRoaXMuZm9ybXMhLm1hcCgoZm9ybTogU21hcnRGb3JtKSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtLndpZGdldHNbMF0ua2V5ITtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybUNoaWxkcmVuPy5mb3JFYWNoKChjb21wOiBTbWFydGZvcm1Db21wb25lbnQpID0+IGNvbXAuc3VibWl0Rm9ybSgpKTtcclxuXHJcbiAgICBsZXQgdXBkYXRlZE9yZGVyZWRDb2x1bW5zID0gdXBkYXRlZEtleU9yZGVyIS5tYXAoKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdFt2YWx1ZV07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1cGRhdGVkT3JkZXJlZENvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5tYXAoKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2luZGV4XSA9IHZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFsd2F5c1Nob3dDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZvckVhY2goKGNvbDogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgaWYgKGNvbC5hbHdheXNTaG93KSB7XHJcbiAgICAgICAgdGhpcy5hbHdheXNTaG93Q29sdW1ucy5wdXNoKGNvbC5wcm9wZXJ0eU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzQWx3YXlzU2hvdyhjb2w6IFNtYXJ0Rm9ybSkge1xyXG4gICAgbGV0IGtleSA9IGNvbC53aWRnZXRzWzBdLmtleSE7XHJcblxyXG4gICAgaWYgKHRoaXMuYWx3YXlzU2hvd0NvbHVtbnMuaW5jbHVkZXModGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2tleV0pKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZWRpdC1jb2x1bW5zLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJleGFtcGxlLWxpc3RcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbi1tZXRhLXJvd1wiICpuZ0Zvcj1cImxldCBjb2wgb2YgZm9ybXNcIiBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIj5cclxuICAgICAgPHNtYXJ0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgaWNvbj1cImRyYWdfaGFuZGxlXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICA8c21hcnRmb3JtIGNsYXNzPVwiZm9ybVwiICNmb3JtcyBbc21hcnRGb3JtXT1cImNvbFwiPjwvc21hcnRmb3JtPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJpc0Fsd2F5c1Nob3coY29sKSAmJiAodmlldz8ub3JkZXJlZENvbHVtbk5hbWVzKSEubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbHVtbihjb2wpXCJcclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkLWJ0blwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImFkZERpc2FibGVkXCIgKGNsaWNrKT1cImFkZENvbHVtbigpXCI+XHJcbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvbi10b29sYmFyXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+IE3DqWdzZW0gPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlU2F2ZVwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxyXG4gICAgICBNZW50w6lzXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9jb21wb25lbnRzL3RhYmxlLWxheW91dC1kZWZpbmVyL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWdyaWQvY29tcG9uZW50cy90YWJsZS1sYXlvdXQtZGVmaW5lci90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVd0QyxZQUNrQyxJQUFxQixFQUM3QyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQVp0RCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFD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QUM7SUFDZCxDQUFDOzt3SEEvTFUsMkJBQTJCLGtCQVk1QixlQUFlOzRHQVpkLDJCQUEyQiwwSkMxQnhDLGtwQ0EyQkE7MkZERGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs7MEJBZ0JqQyxNQUFNOzJCQUFDLGVBQWU7dUVBVkYsWUFBWTtzQkFBbEMsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Rm9ybSxcclxuICBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24sXHJcbiAgU21hcnRGb3JtV2lkZ2V0VHlwZSxcclxuICBTbWFydGZvcm1Db21wb25lbnQsXHJcbn0gZnJvbSAnLi4vLi4vLi4vc21hcnQtZm9ybS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHcmlkQ29sdW1uTWV0YSwgR3JpZFVwZGF0ZURhdGEsIEdyaWRWaWV3IH0gZnJvbSAnLi4vLi4vYXBpL2dyaWQtYXBpJztcclxuaW1wb3J0IHsgU21hcnRHcmlkU2VydmljZSB9IGZyb20gJy4uLy4uL3NtYXJ0LWdyaWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWRpYWxvZy9wcm9qZWN0cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTGF5b3V0RGVmaW5lckNvbmZpZyB7XHJcbiAgdXVpZDogc3RyaW5nO1xyXG4gIGlkZW50aWZpZXI6IHN0cmluZztcclxuICB2aWV3OiBHcmlkVmlldztcclxuICBzZXJ2aWNlOiBTbWFydEdyaWRTZXJ2aWNlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1sYXlvdXQtZGVmaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUxheW91dERlZmluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBAVmlld0NoaWxkcmVuKCdmb3JtcycpIGZvcm1DaGlsZHJlbj86IFNtYXJ0Zm9ybUNvbXBvbmVudFtdO1xyXG4gIGZvcm1zPzogU21hcnRGb3JtW107XHJcbiAgdmlldz86IEdyaWRWaWV3O1xyXG4gIHByaXZhdGUgb3JkZXJlZENvbHVtbnNBc09iamVjdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIGRpc2FibGVTYXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWx3YXlzU2hvd0NvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcbiAgYWRkRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93QWRkQnRuOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFNtYXJ0RGlhbG9nRGF0YSxcclxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VGFibGVMYXlvdXREZWZpbmVyQ29tcG9uZW50PlxyXG4gICkge1xyXG4gICAgdGhpcy52aWV3ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhLmN1c3RvbUNvbXBvbmVudElucHV0cy5jb25maWcudmlldykpO1xyXG4gICAgdGhpcy5tYXBPcmRlcmVkQ29sdW1uc1RvT2JqZWN0KCk7XHJcbiAgICB0aGlzLmNvbnN0cnVjdEZvcm1zKCk7XHJcbiAgICB0aGlzLmdldEFsd2F5c1Nob3dDb2x1bW5zKCk7XHJcbiAgICB0aGlzLmFkZERpc2FibGVkID0gISh0aGlzLmZvcm1zIS5sZW5ndGggPCB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubGVuZ3RoKTtcclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9ICEodGhpcy5mb3JtcyEubGVuZ3RoID09IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjaWJlRm9yVmFsdWVDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NpYmVGb3JWYWx1ZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNoaWxkcmVuPy5mb3JFYWNoKChjb21wOiBTbWFydGZvcm1Db21wb25lbnQpID0+IHtcclxuICAgICAgY29tcC5vblZhbHVlQ2hhbmdlU3ViamVjdD8ucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGxldCB1cGRhdGVkT3JkZXJlZENvbHVtbnMgPSB0aGlzLmdldFVwZGF0ZWRPcmRlcmVkQ29sdW1ucygpO1xyXG5cclxuICAgICAgICBsZXQgZmluZER1cGxpY2F0ZXMgPSB1cGRhdGVkT3JkZXJlZENvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW0sIGluZGV4KSA9PiB1cGRhdGVkT3JkZXJlZENvbHVtbnMuaW5kZXhPZihpdGVtKSAhPT0gaW5kZXhcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmRpc2FibGVTYXZlID0gZmluZER1cGxpY2F0ZXMubGVuZ3RoID4gMCB8fCB0aGlzLmhhc0VtcHR5VmFsdWUodXBkYXRlZE9yZGVyZWRDb2x1bW5zKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhc0VtcHR5VmFsdWUodXBkYXRlZE9yZGVyZWRDb2x1bW5zOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIHVwZGF0ZWRPcmRlcmVkQ29sdW1ucy5zb21lKCh2YWx1ZSkgPT4gdmFsdWUubGVuZ3RoID09PSAwKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdEZvcm1zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtcyA9IHRoaXMudmlldyEub3JkZXJlZENvbHVtbk5hbWVzLm1hcCgoY29sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgbGV0IGZvcm06IFNtYXJ0Rm9ybSA9IHtcclxuICAgICAgICBjb21wb25lbnRNb2RlbDogeyBkYXRhOiB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3QgfSxcclxuICAgICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgICAgdXNlT25WYWx1ZUNoYW5nZUV2ZW50OiB0cnVlLFxyXG4gICAgICAgIHdpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAga2V5OiBpbmRleC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgICB2YWx1ZUxpc3Q6IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5maWx0ZXIoKGNtKSA9PiAhY20uYWx3YXlzSGlkZGVuKS5tYXAoXHJcbiAgICAgICAgICAgICAgKGNvbE1ldGE6IEdyaWRDb2x1bW5NZXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBrZXk6ICcnLFxyXG4gICAgICAgICAgICAgICAgICBsYWJlbDogY29sTWV0YS5sYWJlbCxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbE1ldGEucHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIGZvcm07XHJcbiAgICB9KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zdWJzY2liZUZvclZhbHVlQ2hhbmdlKCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIGFkZENvbHVtbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1zIS5sZW5ndGggPCB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnB1c2goJycpO1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMubGVuZ3RoIC0gMV0gPSAnJztcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgICB0aGlzLmRpc2FibGVTYXZlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9IHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb2x1bW4oZm9ybTogU21hcnRGb3JtKTogdm9pZCB7XHJcbiAgICBsZXQgcHJvcGVydHlOYW1lID0gdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2Zvcm0ud2lkZ2V0c1swXS5rZXkhXTtcclxuICAgIGxldCBpbmRleCA9IHRoaXMudmlldyEub3JkZXJlZENvbHVtbk5hbWVzLmluZGV4T2YocHJvcGVydHlOYW1lKTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTtcclxuICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgIHRoaXMuYWRkRGlzYWJsZWQgPSAhKHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMYWJlbEZyb21Db2x1bW5NZXRhKHByb3A6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFiZWwgPSB0aGlzLnZpZXc/LmRlc2NyaXB0b3I/LmNvbHVtbnMuZmluZChcclxuICAgICAgKHZhbHVlOiBHcmlkQ29sdW1uTWV0YSkgPT4gdmFsdWUucHJvcGVydHlOYW1lID09PSBwcm9wXHJcbiAgICApPy5sYWJlbDtcclxuICAgIHJldHVybiBsYWJlbCA/PyBwcm9wO1xyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5mb3JtcyEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtRm9yQ29sKGNvbDogc3RyaW5nKTogU21hcnRGb3JtIHtcclxuICAgIGxldCBmb3JtOiBTbWFydEZvcm0gPSB7XHJcbiAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdCB9LFxyXG4gICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgIHdpZGdldHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBrZXk6IGNvbCxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsRnJvbUNvbHVtbk1ldGEoY29sKSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgdmFsdWVMaXN0OiB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubWFwKChjb2xNZXRhOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGtleTogJycsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IGNvbE1ldGEubGFiZWwsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbE1ldGEucHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG5cclxuICBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcyA9IHRoaXMuZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCk7XHJcbiAgICBsZXQgY29uZmlnID0gdGhpcy5kYXRhLmN1c3RvbUNvbXBvbmVudElucHV0cy5jb25maWc7XHJcblxyXG4gICAgbGV0IHVwZGF0ZURhdGE6IEdyaWRVcGRhdGVEYXRhID0ge1xyXG4gICAgICBvcmRlckJ5TGlzdDogdGhpcy52aWV3IS5vcmRlckJ5TGlzdCxcclxuICAgICAgb3JkZXJlZENvbHVtbk5hbWVzOiB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcyxcclxuICAgIH07XHJcblxyXG4gICAgYXdhaXQgdGhpcy5kYXRhLmN1c3RvbUNvbXBvbmVudElucHV0cy5jb25maWcuc2VydmljZS51cGRhdGUoXHJcbiAgICAgIGNvbmZpZy51dWlkLFxyXG4gICAgICBjb25maWcuaWRlbnRpZmllcixcclxuICAgICAgdXBkYXRlRGF0YVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVcGRhdGVkT3JkZXJlZENvbHVtbnMoKSB7XHJcbiAgICBsZXQgdXBkYXRlZEtleU9yZGVyID0gdGhpcy5mb3JtcyEubWFwKChmb3JtOiBTbWFydEZvcm0pID0+IHtcclxuICAgICAgcmV0dXJuIGZvcm0ud2lkZ2V0c1swXS5rZXkhO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mb3JtQ2hpbGRyZW4/LmZvckVhY2goKGNvbXA6IFNtYXJ0Zm9ybUNvbXBvbmVudCkgPT4gY29tcC5zdWJtaXRGb3JtKCkpO1xyXG5cclxuICAgIGxldCB1cGRhdGVkT3JkZXJlZENvbHVtbnMgPSB1cGRhdGVkS2V5T3JkZXIhLm1hcCgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W3ZhbHVlXTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHVwZGF0ZWRPcmRlcmVkQ29sdW1ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFwT3JkZXJlZENvbHVtbnNUb09iamVjdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLm1hcCgodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbaW5kZXhdID0gdmFsdWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWx3YXlzU2hvd0NvbHVtbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXc/LmRlc2NyaXB0b3I/LmNvbHVtbnMuZm9yRWFjaCgoY29sOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICBpZiAoY29sLmFsd2F5c1Nob3cpIHtcclxuICAgICAgICB0aGlzLmFsd2F5c1Nob3dDb2x1bW5zLnB1c2goY29sLnByb3BlcnR5TmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNBbHdheXNTaG93KGNvbDogU21hcnRGb3JtKSB7XHJcbiAgICBsZXQga2V5ID0gY29sLndpZGdldHNbMF0ua2V5ITtcclxuXHJcbiAgICBpZiAodGhpcy5hbHdheXNTaG93Q29sdW1ucy5pbmNsdWRlcyh0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3Rba2V5XSkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlZGl0LWNvbHVtbnMtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImV4YW1wbGUtbGlzdFwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLW1ldGEtcm93XCIgKm5nRm9yPVwibGV0IGNvbCBvZiBmb3Jtc1wiIGNka0RyYWcgY2RrRHJhZ0xvY2tBeGlzPVwieVwiPlxyXG4gICAgICA8c21hcnQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiBpY29uPVwiZHJhZ19oYW5kbGVcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgIDxzbWFydGZvcm0gY2xhc3M9XCJmb3JtXCIgI2Zvcm1zIFtzbWFydEZvcm1dPVwiY29sXCI+PC9zbWFydGZvcm0+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImlzQWx3YXlzU2hvdyhjb2wpICYmICh2aWV3Py5vcmRlcmVkQ29sdW1uTmFtZXMpIS5sZW5ndGggPiAxXCJcclxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ29sdW1uKGNvbClcIlxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWljb24+ZGVsZXRlX291dGxpbmU8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhZGQtYnRuXCIgKm5nSWY9XCJzaG93QWRkQnRuXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiYWRkRGlzYWJsZWRcIiAoY2xpY2spPVwiYWRkQ29sdW1uKClcIj5cclxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvb2xiYXJcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIj4gTcOpZ3NlbSA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVTYXZlXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XHJcbiAgICAgIE1lbnTDqXNcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -10333,11 +10333,13 @@ class TableLayoutDefinerComponent {
10333
10333
  this.disableSave = false;
10334
10334
  this.alwaysShowColumns = [];
10335
10335
  this.addDisabled = false;
10336
+ this.showAddBtn = true;
10336
10337
  this.view = JSON.parse(JSON.stringify(data.customComponentInputs.config.view));
10337
10338
  this.mapOrderedColumnsToObject();
10338
10339
  this.constructForms();
10339
10340
  this.getAlwaysShowColumns();
10340
10341
  this.addDisabled = !(this.forms.length < this.view.descriptor.columns.length);
10342
+ this.showAddBtn = !(this.forms.length == this.view.descriptor.columns.length);
10341
10343
  }
10342
10344
  ngOnDestroy() {
10343
10345
  this._destroy$.next();
@@ -10395,7 +10397,7 @@ class TableLayoutDefinerComponent {
10395
10397
  this.constructForms();
10396
10398
  this.disableSave = true;
10397
10399
  }
10398
- this.addDisabled = !(this.forms.length < this.view.descriptor.columns.length);
10400
+ this.showAddBtn = this.forms.length < this.view.descriptor.columns.length;
10399
10401
  }
10400
10402
  removeColumn(form) {
10401
10403
  var _a;
@@ -10487,10 +10489,10 @@ class TableLayoutDefinerComponent {
10487
10489
  }
10488
10490
  }
10489
10491
  TableLayoutDefinerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableLayoutDefinerComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
10490
- TableLayoutDefinerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TableLayoutDefinerComponent, selector: "app-table-layout-definer", viewQueries: [{ propertyName: "formChildren", predicate: ["forms"], descendants: true }], ngImport: i0, template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"], components: [{ type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
10492
+ TableLayoutDefinerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TableLayoutDefinerComponent, selector: "app-table-layout-definer", viewQueries: [{ propertyName: "formChildren", predicate: ["forms"], descendants: true }], ngImport: i0, template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\" *ngIf=\"showAddBtn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"], components: [{ type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
10491
10493
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableLayoutDefinerComponent, decorators: [{
10492
10494
  type: Component,
10493
- args: [{ selector: 'app-table-layout-definer', template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"] }]
10495
+ args: [{ selector: 'app-table-layout-definer', template: "<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\" *ngIf=\"showAddBtn\">\r\n <button mat-icon-button color=\"primary\" [disabled]=\"addDisabled\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> M\u00E9gsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Ment\u00E9s\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".edit-columns-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form{flex:1}.fields{padding:1rem 0;display:flex;flex-direction:column;gap:.5rem}.example-list{display:flex;flex-direction:column;gap:1rem;width:500px;max-width:100%;max-height:80vh;overflow:auto}.column-meta-row{display:flex;flex-direction:row;gap:1rem;justify-content:space-between;border:solid 1px #ccc;padding:1rem}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}h2{margin:0}.button-toolbar{display:flex;flex-direction:row;justify-content:space-between;padding:.5rem}.add-btn{display:flex;flex-direction:column;align-items:center}\n"] }]
10494
10496
  }], ctorParameters: function () {
10495
10497
  return [{ type: undefined, decorators: [{
10496
10498
  type: Inject,