@smartbit4all/ng-client 3.1.24 → 3.1.26

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.
@@ -164,10 +164,10 @@ export class TableLayoutDefinerComponent {
164
164
  }
165
165
  }
166
166
  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-raised-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"] }] });
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"] }] });
168
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableLayoutDefinerComponent, decorators: [{
169
169
  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-raised-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"] }]
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"] }]
171
171
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
172
172
  type: Inject,
173
173
  args: [MAT_DIALOG_DATA]
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
175
175
  type: ViewChildren,
176
176
  args: ['forms']
177
177
  }] } });
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+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiPiBNw6lnc2VtIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZVNhdmVcIiAoY2xpY2spPVwic3VibWl0KClcIj5cclxuICAgICAgTWVudMOpc1xyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9jb21wb25lbnRzL3RhYmxlLWxheW91dC1kZWZpbmVyL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWdyaWQvY29tcG9uZW50cy90YWJsZS1sYXlvdXQtZGVmaW5lci90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUNrQyxJQUFxQixFQUM3QyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQVh0RCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFNM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLFVBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQXdCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN4RSxJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUU1RCxJQUFJLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQy9DLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FDL0QsQ0FBQztnQkFFRixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUM1RixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxxQkFBK0I7UUFDM0MsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzVFLElBQUksSUFBSSxHQUFjO2dCQUNwQixjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUNyRCxTQUFTLEVBQUUsd0JBQXdCLENBQUMsR0FBRztnQkFDdkMscUJBQXFCLEVBQUUsSUFBSTtnQkFDM0IsT0FBTyxFQUFFO29CQUNQO3dCQUNFLEdBQUcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO3dCQUNyQixLQUFLLEVBQUUsRUFBRTt3QkFDVCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTt3QkFDaEMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFLLENBQUMsVUFBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FDNUUsQ0FBQyxPQUF1QixFQUFFLEVBQUU7NEJBQzFCLE9BQU87Z0NBQ0wsR0FBRyxFQUFFLEVBQUU7Z0NBQ1AsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO2dDQUNwQixLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0NBQzNCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJOzZCQUMvQixDQUFDO3dCQUNKLENBQUMsQ0FDRjtxQkFDRjtpQkFDRjthQUNGLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLFVBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzlELElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUssQ0FBQyxVQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBZTtRQUMxQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFJLENBQUMsQ0FBQztRQUNyRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNoRDtRQUNELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLFVBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVk7UUFDekMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FDN0MsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLElBQUksQ0FDdkQsRUFBRSxLQUFLLENBQUM7UUFDVCxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksQ0FBQyxLQUE0QjtRQUMvQixlQUFlLENBQUMsSUFBSSxDQUFDLEtBQU0sRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxJQUFJLEdBQWM7WUFDcEIsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUNyRCxTQUFTLEVBQUUsd0JBQXdCLENBQUMsR0FBRztZQUN2QyxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUM7b0JBQ3ZDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO29CQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUssQ0FBQyxVQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRTt3QkFDeEUsT0FBTzs0QkFDTCxHQUFHLEVBQUUsRUFBRTs0QkFDUCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7NEJBQ3BCLEtBQUssRUFBRSxPQUFPLENBQUMsWUFBWTs0QkFDM0IsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7eUJBQy9CLENBQUM7b0JBQ0osQ0FBQyxDQUFDO2lCQUNIO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsSUFBSyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBRXBELElBQUksVUFBVSxHQUFtQjtZQUMvQixXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUssQ0FBQyxXQUFXO1lBQ25DLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFLLENBQUMsa0JBQWtCO1NBQ2xELENBQUM7UUFFRixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3pELE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTSxDQUFDLFVBQVUsRUFDakIsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUU7WUFDeEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUksQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFNUUsSUFBSSxxQkFBcUIsR0FBRyxlQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDO0lBRU8seUJBQXlCO1FBQy9CLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBYSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFtQixFQUFFLEVBQUU7WUFDN0QsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFO2dCQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFjO1FBQ3pCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNyRSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzt3SEE3TFUsMkJBQTJCLGtCQVc1QixlQUFlOzRHQVhkLDJCQUEyQiwwSkMxQnhDLDZuQ0EyQkE7MkZERGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs7MEJBZWpDLE1BQU07MkJBQUMsZUFBZTt1RUFURixZQUFZO3NCQUFsQyxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRGb3JtLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcclxuICBTbWFydEZvcm1XaWRnZXRUeXBlLFxyXG4gIFNtYXJ0Zm9ybUNvbXBvbmVudCxcclxufSBmcm9tICcuLi8uLi8uLi9zbWFydC1mb3JtL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW5NZXRhLCBHcmlkVXBkYXRlRGF0YSwgR3JpZFZpZXcgfSBmcm9tICcuLi8uLi9hcGkvZ3JpZC1hcGknO1xyXG5pbXBvcnQgeyBTbWFydEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc21hcnQtZ3JpZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnREaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vLi4vc21hcnQtZGlhbG9nL3Byb2plY3RzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVMYXlvdXREZWZpbmVyQ29uZmlnIHtcclxuICB1dWlkOiBzdHJpbmc7XHJcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xyXG4gIHZpZXc6IEdyaWRWaWV3O1xyXG4gIHNlcnZpY2U6IFNtYXJ0R3JpZFNlcnZpY2U7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRhYmxlLWxheW91dC1kZWZpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlTGF5b3V0RGVmaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2Zvcm1zJykgZm9ybUNoaWxkcmVuPzogU21hcnRmb3JtQ29tcG9uZW50W107XHJcbiAgZm9ybXM/OiBTbWFydEZvcm1bXTtcclxuICB2aWV3PzogR3JpZFZpZXc7XHJcbiAgcHJpdmF0ZSBvcmRlcmVkQ29sdW1uc0FzT2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgZGlzYWJsZVNhdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbHdheXNTaG93Q29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuICBhZGREaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogU21hcnREaWFsb2dEYXRhLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUYWJsZUxheW91dERlZmluZXJDb21wb25lbnQ+XHJcbiAgKSB7XHJcbiAgICB0aGlzLnZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEuY3VzdG9tQ29tcG9uZW50SW5wdXRzLmNvbmZpZy52aWV3KSk7XHJcbiAgICB0aGlzLm1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTtcclxuICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgIHRoaXMuZ2V0QWx3YXlzU2hvd0NvbHVtbnMoKTtcclxuICAgIHRoaXMuYWRkRGlzYWJsZWQgPSAhKHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjaWJlRm9yVmFsdWVDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NpYmVGb3JWYWx1ZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNoaWxkcmVuPy5mb3JFYWNoKChjb21wOiBTbWFydGZvcm1Db21wb25lbnQpID0+IHtcclxuICAgICAgY29tcC5vblZhbHVlQ2hhbmdlU3ViamVjdD8ucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGxldCB1cGRhdGVkT3JkZXJlZENvbHVtbnMgPSB0aGlzLmdldFVwZGF0ZWRPcmRlcmVkQ29sdW1ucygpO1xyXG5cclxuICAgICAgICBsZXQgZmluZER1cGxpY2F0ZXMgPSB1cGRhdGVkT3JkZXJlZENvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW0sIGluZGV4KSA9PiB1cGRhdGVkT3JkZXJlZENvbHVtbnMuaW5kZXhPZihpdGVtKSAhPT0gaW5kZXhcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmRpc2FibGVTYXZlID0gZmluZER1cGxpY2F0ZXMubGVuZ3RoID4gMCB8fCB0aGlzLmhhc0VtcHR5VmFsdWUodXBkYXRlZE9yZGVyZWRDb2x1bW5zKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhc0VtcHR5VmFsdWUodXBkYXRlZE9yZGVyZWRDb2x1bW5zOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIHVwZGF0ZWRPcmRlcmVkQ29sdW1ucy5zb21lKCh2YWx1ZSkgPT4gdmFsdWUubGVuZ3RoID09PSAwKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdEZvcm1zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtcyA9IHRoaXMudmlldyEub3JkZXJlZENvbHVtbk5hbWVzLm1hcCgoY29sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgbGV0IGZvcm06IFNtYXJ0Rm9ybSA9IHtcclxuICAgICAgICBjb21wb25lbnRNb2RlbDogeyBkYXRhOiB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3QgfSxcclxuICAgICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgICAgdXNlT25WYWx1ZUNoYW5nZUV2ZW50OiB0cnVlLFxyXG4gICAgICAgIHdpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAga2V5OiBpbmRleC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgICB2YWx1ZUxpc3Q6IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5maWx0ZXIoKGNtKSA9PiAhY20uYWx3YXlzSGlkZGVuKS5tYXAoXHJcbiAgICAgICAgICAgICAgKGNvbE1ldGE6IEdyaWRDb2x1bW5NZXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBrZXk6ICcnLFxyXG4gICAgICAgICAgICAgICAgICBsYWJlbDogY29sTWV0YS5sYWJlbCxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbE1ldGEucHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIGZvcm07XHJcbiAgICB9KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zdWJzY2liZUZvclZhbHVlQ2hhbmdlKCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIGFkZENvbHVtbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1zIS5sZW5ndGggPCB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnB1c2goJycpO1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMubGVuZ3RoIC0gMV0gPSAnJztcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgICB0aGlzLmRpc2FibGVTYXZlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuYWRkRGlzYWJsZWQgPSAhKHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ29sdW1uKGZvcm06IFNtYXJ0Rm9ybSk6IHZvaWQge1xyXG4gICAgbGV0IHByb3BlcnR5TmFtZSA9IHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdFtmb3JtLndpZGdldHNbMF0ua2V5IV07XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcy5pbmRleE9mKHByb3BlcnR5TmFtZSk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYXBPcmRlcmVkQ29sdW1uc1RvT2JqZWN0KCk7XHJcbiAgICB0aGlzLmNvbnN0cnVjdEZvcm1zKCk7XHJcbiAgICB0aGlzLmFkZERpc2FibGVkID0gISh0aGlzLmZvcm1zIS5sZW5ndGggPCB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tQ29sdW1uTWV0YShwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsID0gdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZpbmQoXHJcbiAgICAgICh2YWx1ZTogR3JpZENvbHVtbk1ldGEpID0+IHZhbHVlLnByb3BlcnR5TmFtZSA9PT0gcHJvcFxyXG4gICAgKT8ubGFiZWw7XHJcbiAgICByZXR1cm4gbGFiZWwgPz8gcHJvcDtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZm9ybXMhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUZvckNvbChjb2w6IHN0cmluZyk6IFNtYXJ0Rm9ybSB7XHJcbiAgICBsZXQgZm9ybTogU21hcnRGb3JtID0ge1xyXG4gICAgICBjb21wb25lbnRNb2RlbDogeyBkYXRhOiB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3QgfSxcclxuICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICB3aWRnZXRzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAga2V5OiBjb2wsXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbEZyb21Db2x1bW5NZXRhKGNvbCksXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVCxcclxuICAgICAgICAgIHZhbHVlTGlzdDogdGhpcy52aWV3IS5kZXNjcmlwdG9yIS5jb2x1bW5zLm1hcCgoY29sTWV0YTogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBrZXk6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2xNZXRhLmxhYmVsLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBjb2xNZXRhLnByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMgPSB0aGlzLmdldFVwZGF0ZWRPcmRlcmVkQ29sdW1ucygpO1xyXG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnO1xyXG5cclxuICAgIGxldCB1cGRhdGVEYXRhOiBHcmlkVXBkYXRlRGF0YSA9IHtcclxuICAgICAgb3JkZXJCeUxpc3Q6IHRoaXMudmlldyEub3JkZXJCeUxpc3QsXHJcbiAgICAgIG9yZGVyZWRDb2x1bW5OYW1lczogdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMsXHJcbiAgICB9O1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnLnNlcnZpY2UudXBkYXRlKFxyXG4gICAgICBjb25maWcudXVpZCxcclxuICAgICAgY29uZmlnLmlkZW50aWZpZXIsXHJcbiAgICAgIHVwZGF0ZURhdGFcclxuICAgICk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCkge1xyXG4gICAgbGV0IHVwZGF0ZWRLZXlPcmRlciA9IHRoaXMuZm9ybXMhLm1hcCgoZm9ybTogU21hcnRGb3JtKSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtLndpZGdldHNbMF0ua2V5ITtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybUNoaWxkcmVuPy5mb3JFYWNoKChjb21wOiBTbWFydGZvcm1Db21wb25lbnQpID0+IGNvbXAuc3VibWl0Rm9ybSgpKTtcclxuXHJcbiAgICBsZXQgdXBkYXRlZE9yZGVyZWRDb2x1bW5zID0gdXBkYXRlZEtleU9yZGVyIS5tYXAoKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdFt2YWx1ZV07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1cGRhdGVkT3JkZXJlZENvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5tYXAoKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2luZGV4XSA9IHZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFsd2F5c1Nob3dDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZvckVhY2goKGNvbDogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgaWYgKGNvbC5hbHdheXNTaG93KSB7XHJcbiAgICAgICAgdGhpcy5hbHdheXNTaG93Q29sdW1ucy5wdXNoKGNvbC5wcm9wZXJ0eU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzQWx3YXlzU2hvdyhjb2w6IFNtYXJ0Rm9ybSkge1xyXG4gICAgbGV0IGtleSA9IGNvbC53aWRnZXRzWzBdLmtleSE7XHJcblxyXG4gICAgaWYgKHRoaXMuYWx3YXlzU2hvd0NvbHVtbnMuaW5jbHVkZXModGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2tleV0pKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZWRpdC1jb2x1bW5zLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJleGFtcGxlLWxpc3RcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbi1tZXRhLXJvd1wiICpuZ0Zvcj1cImxldCBjb2wgb2YgZm9ybXNcIiBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIj5cclxuICAgICAgPHNtYXJ0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgaWNvbj1cImRyYWdfaGFuZGxlXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICA8c21hcnRmb3JtIGNsYXNzPVwiZm9ybVwiICNmb3JtcyBbc21hcnRGb3JtXT1cImNvbFwiPjwvc21hcnRmb3JtPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJpc0Fsd2F5c1Nob3coY29sKSAmJiAodmlldz8ub3JkZXJlZENvbHVtbk5hbWVzKSEubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbHVtbihjb2wpXCJcclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkLWJ0blwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImFkZERpc2FibGVkXCIgKGNsaWNrKT1cImFkZENvbHVtbigpXCI+XHJcbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvbi10b29sYmFyXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+IE3DqWdzZW0gPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlU2F2ZVwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxyXG4gICAgICBNZW50w6lzXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -3729,6 +3729,7 @@ class SmartFormService {
3729
3729
  }
3730
3730
  }
3731
3731
  copyFromValueSetToValuesList(widget, valueSets) {
3732
+ var _a, _b, _c;
3732
3733
  if (widget.type === SmartFormWidgetType.SELECT ||
3733
3734
  widget.type === SmartFormWidgetType.SELECT_MULTIPLE ||
3734
3735
  widget.type === SmartFormWidgetType.RADIO_BUTTON ||
@@ -3736,28 +3737,41 @@ class SmartFormService {
3736
3737
  widget.type === SmartFormWidgetType.CHECK_BOX_2 ||
3737
3738
  widget.type === SmartFormWidgetType.TEXT_FIELD) {
3738
3739
  if (widget.selection && valueSets) {
3740
+ let valueSetData = valueSets[widget.selection.valueSetName].valueSetData;
3741
+ let values = valueSetData.values;
3742
+ let displayProperty = (_b = (_a = widget.selection) === null || _a === void 0 ? void 0 : _a.displayProperty) !== null && _b !== void 0 ? _b : 'displayValue';
3743
+ // check is displayProperty exists, fallback for common display properties
3744
+ if (!this.checkProperty(values, displayProperty)) {
3745
+ displayProperty = 'name'; // GenericValue.name
3746
+ if (!this.checkProperty(values, displayProperty)) {
3747
+ displayProperty = 'displayValue'; // Value.displayValue
3748
+ }
3749
+ }
3739
3750
  if (widget.selection.type === SelectionDefinition.TypeEnum.Property &&
3740
3751
  !widget.selection.mapping.length) {
3741
- let valueSetData = valueSets[widget.selection.valueSetName].valueSetData;
3742
- widget.valueList = valueSetData.values.map((value) => {
3743
- var _a, _b;
3752
+ let keyProperty = (_c = valueSetData.keyProperty) !== null && _c !== void 0 ? _c : 'objectUri';
3753
+ if (!this.checkProperty(values, keyProperty)) {
3754
+ keyProperty = 'uri'; // GenericValue.uri
3755
+ if (!this.checkProperty(values, keyProperty)) {
3756
+ keyProperty = 'objectUri'; // Value.objectUri
3757
+ }
3758
+ }
3759
+ widget.valueList = values.map((value) => {
3744
3760
  return {
3745
- key: value[valueSetData.keyProperty],
3746
- label: value[(_b = (_a = widget.selection) === null || _a === void 0 ? void 0 : _a.displayProperty) !== null && _b !== void 0 ? _b : 'displayValue'],
3761
+ key: value[keyProperty],
3762
+ label: value[displayProperty],
3747
3763
  type: SmartFormWidgetType.ITEM,
3748
- value: value[valueSetData.keyProperty],
3764
+ value: value[keyProperty],
3749
3765
  };
3750
3766
  });
3751
3767
  this.addEmptyItemToValueList(widget, widget.selection.emptyLabel);
3752
3768
  }
3753
3769
  else if (widget.selection.type === SelectionDefinition.TypeEnum.Object &&
3754
3770
  !widget.selection.mapping.length) {
3755
- let valueSetData = valueSets[widget.selection.valueSetName].valueSetData;
3756
- widget.valueList = valueSetData.values.map((value, index) => {
3757
- var _a, _b;
3771
+ widget.valueList = values.map((value, index) => {
3758
3772
  return {
3759
3773
  key: `${index}`,
3760
- label: value[(_b = (_a = widget.selection) === null || _a === void 0 ? void 0 : _a.displayProperty) !== null && _b !== void 0 ? _b : 'displayValue'],
3774
+ label: value[displayProperty],
3761
3775
  type: SmartFormWidgetType.ITEM,
3762
3776
  value: value,
3763
3777
  };
@@ -3767,6 +3781,13 @@ class SmartFormService {
3767
3781
  }
3768
3782
  }
3769
3783
  }
3784
+ checkProperty(values, property) {
3785
+ if (!(values === null || values === void 0 ? void 0 : values.length)) {
3786
+ // no sample data, assume existance
3787
+ return true;
3788
+ }
3789
+ return property in values[0];
3790
+ }
3770
3791
  toFormGroup() {
3771
3792
  this.createFormControls(this.smartForm.widgets);
3772
3793
  let formGroup = new FormGroup(this.group);
@@ -4401,13 +4422,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
4401
4422
 
4402
4423
  const YEARH_MONTH_FORMAT = {
4403
4424
  parse: {
4404
- dateInput: "MM/YYYY",
4425
+ dateInput: 'MM/YYYY',
4405
4426
  },
4406
4427
  display: {
4407
- dateInput: "MM/YYYY",
4408
- monthYearLabel: "MMM YYYY",
4409
- dateA11yLabel: "LL",
4410
- monthYearA11yLabel: "MMMM YYYY",
4428
+ dateInput: 'MM/YYYY',
4429
+ monthYearLabel: 'MMM YYYY',
4430
+ dateA11yLabel: 'LL',
4431
+ monthYearA11yLabel: 'MMMM YYYY',
4411
4432
  },
4412
4433
  };
4413
4434
  class SmartMonthPickerComponent {
@@ -4425,14 +4446,10 @@ class SmartMonthPickerComponent {
4425
4446
  this.date = new FormControl(moment());
4426
4447
  }
4427
4448
  }
4428
- chosenYearHandler(normalizedYear) {
4429
- const ctrlValue = this.date.value;
4430
- ctrlValue.year(normalizedYear.year());
4431
- this.date.setValue(ctrlValue);
4432
- }
4433
- chosenMonthHandler(normalizedMonth, datepicker) {
4449
+ chosenMonthHandler(moment, datepicker) {
4434
4450
  const ctrlValue = this.date.value;
4435
- ctrlValue.month(normalizedMonth.month());
4451
+ ctrlValue.month(moment.month());
4452
+ ctrlValue.year(moment.year());
4436
4453
  this.date.setValue(ctrlValue);
4437
4454
  this.valueChange.next(ctrlValue);
4438
4455
  datepicker.close();
@@ -4446,17 +4463,17 @@ SmartMonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
4446
4463
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
4447
4464
  },
4448
4465
  { provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
4449
- ], ngImport: i0, template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n [matDatepicker]=\"dp\"\r\n placeholder=\"Month and Year\"\r\n [formControl]=\"date\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (yearSelected)=\"chosenYearHandler($event)\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""], components: [{ type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i2$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i20.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i20.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i20.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$2.MatSuffix, selector: "[matSuffix]" }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
4466
+ ], ngImport: i0, template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"dp\" placeholder=\"Month and Year\" [formControl]=\"date\" />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position === SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""], components: [{ type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i2$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i20.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i20.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i20.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3$2.MatSuffix, selector: "[matSuffix]" }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
4450
4467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartMonthPickerComponent, decorators: [{
4451
4468
  type: Component,
4452
- args: [{ selector: "lib-smart-month-picker", providers: [
4469
+ args: [{ selector: 'lib-smart-month-picker', providers: [
4453
4470
  {
4454
4471
  provide: DateAdapter,
4455
4472
  useClass: MomentDateAdapter,
4456
4473
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
4457
4474
  },
4458
4475
  { provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
4459
- ], template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n [matDatepicker]=\"dp\"\r\n placeholder=\"Month and Year\"\r\n [formControl]=\"date\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (yearSelected)=\"chosenYearHandler($event)\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""] }]
4476
+ ], template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"dp\" placeholder=\"Month and Year\" [formControl]=\"date\" />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position === SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""] }]
4460
4477
  }], propDecorators: { widgetInstance: [{
4461
4478
  type: Input
4462
4479
  }], valueChange: [{
@@ -10823,10 +10840,10 @@ class TableLayoutDefinerComponent {
10823
10840
  }
10824
10841
  }
10825
10842
  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 });
10826
- 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-raised-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"] }] });
10843
+ 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"] }] });
10827
10844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableLayoutDefinerComponent, decorators: [{
10828
10845
  type: Component,
10829
- 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-raised-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"] }]
10846
+ 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"] }]
10830
10847
  }], ctorParameters: function () {
10831
10848
  return [{ type: undefined, decorators: [{
10832
10849
  type: Inject,