@biit-solutions/wizardry-theme 1.22.10 → 1.22.11

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.
@@ -35,12 +35,6 @@ export class BiitDatatableComponent {
35
35
  get selectedRows() {
36
36
  return this.selected;
37
37
  }
38
- set selectedRows(rows) {
39
- this.selected.splice(0, this.selected.length);
40
- if (rows) {
41
- this.selected.push(...rows);
42
- }
43
- }
44
38
  constructor(biitIconService) {
45
39
  this._data = [];
46
40
  this.allData = [];
@@ -70,6 +64,14 @@ export class BiitDatatableComponent {
70
64
  this.selected.push(...selected);
71
65
  this.onSelection.emit(this.selected);
72
66
  }
67
+ set selectedRows(rows) {
68
+ this.selected.splice(0, this.selected.length);
69
+ if (rows) {
70
+ this.selected.push(...rows);
71
+ this.onSelection.emit(this.selected);
72
+ this.table.selected = this.selected;
73
+ }
74
+ }
73
75
  onActivate(event) {
74
76
  if (event.type == 'click' && event.column.name !== 'chkbox') {
75
77
  this.selected = [event.row];
@@ -102,7 +104,7 @@ export class BiitDatatableComponent {
102
104
  }
103
105
  }
104
106
  BiitDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitDatatableComponent, deps: [{ token: i1.BiitIconService }], target: i0.ɵɵFactoryTarget.Component });
105
- BiitDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitDatatableComponent, selector: "biit-datatable", inputs: { data: "data", columns: "columns", selectedRows: "selectedRows", pageSize: "pageSize", pageSizeList: "pageSizeList", loading: "loading", selectable: "selectable", singleSelection: "singleSelection", scrollbarH: "scrollbarH", hideHeader: "hideHeader", hideFooter: "hideFooter", serverSide: "serverSide", page: "page" }, outputs: { onSelection: "onSelection", onPageChange: "onPageChange" }, providers: [provideTranslocoScope({ scope: 'wizardry-theme/table', alias: 't' })], queries: [{ propertyName: "actionsTpl", first: true, predicate: ["actions"], descendants: true }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n", styles: [".table-canvas{height:100%;display:flex;flex-direction:column;gap:14px;background:var(--popup-background)}.table-canvas .top{display:flex;flex:0}.table-canvas .top .action-bar{display:flex;flex:1}.table-canvas .top .options{display:flex;flex:0}.table-canvas .table{position:relative;flex:1;min-height:0;min-width:0}.table-canvas .table biit-progress-bar{position:absolute;z-index:1;left:0;right:3px;top:42px}.table-canvas .table ::ng-deep ngx-datatable{height:100%;position:absolute;inset:0}.table-canvas .table ::ng-deep ngx-datatable>div{height:calc(100% - 42px)}.table-canvas .table ::ng-deep ngx-datatable>div>div{height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner{height:inherit}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap{height:100%!important;width:calc(100% - 3px);display:flex;align-items:center;justify-content:center;background:var(--table-header-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap span{color:var(--secondary-text-color);font-size:16px;line-height:100%;font-weight:700;text-transform:uppercase}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap .sort-btn{position:absolute;right:14px}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap:has(biit-checkbox){background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-body{height:100%!important;overflow-y:auto!important}.table-canvas .table ::ng-deep ngx-datatable datatable-body .empty-row{height:100%;display:flex;align-items:center;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row .datatable-body-cell-label{display:flex;align-items:center;min-height:42px;border-bottom:3px solid var(--table-header-color);width:calc(100% - 3px);padding:9px 14px;line-height:120%;height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row:hover .datatable-body-cell-label{background:var(--secondary-text-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row.active .datatable-body-cell-label{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer{position:absolute;bottom:0;background:var(--popup-background);z-index:10}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .label{flex:1 0}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination{display:flex;margin:auto;flex:0;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination biit-datatable-pager{flex:none!important}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items{flex:1 0;display:flex;justify-content:flex-end;align-items:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select{appearance:none;border:none;height:34px;min-width:34px;padding:8px 14px;text-align:end;font-size:14px;font-family:Montserrat,serif;cursor:pointer;background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:focus-visible{outline:none;background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:hover{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select *{background:var(--popup-background);padding:5px}.table-canvas .table ::ng-deep ngx-datatable:has(datatable-footer) datatable-body{height:calc(100% - 48px)!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper{height:unset!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper .datatable-row-detail{height:unset!important}.default-menu{display:flex;flex-direction:row}@media screen and (max-width: 600px){.page-items,.page-size-selector,.horizontal-menu{display:none!important}}@media screen and (min-width: 601px){.vertical-menu{display:none!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.BiitCheckboxComponent, selector: "biit-checkbox", inputs: ["disabled", "description", "showAlwaysDescription"] }, { kind: "component", type: i5.BiitDatatablePagerComponent, selector: "biit-datatable-pager" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableFooterTemplateDirective, selector: "[ngx-datatable-footer-template]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "component", type: i7.BiitProgressBarComponent, selector: "biit-progress-bar", inputs: ["type", "_value", "value"] }, { kind: "component", type: i4.BiitMultiselectComponent, selector: "biit-multiselect", inputs: ["title", "type", "icon", "label", "value", "descriptionField", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc"], outputs: ["onCreate"] }, { kind: "directive", type: i8.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "component", type: i9.BiitVerticalMenuComponent, selector: "biit-vertical-menu" }] });
107
+ BiitDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitDatatableComponent, selector: "biit-datatable", inputs: { data: "data", columns: "columns", pageSize: "pageSize", pageSizeList: "pageSizeList", loading: "loading", selectable: "selectable", singleSelection: "singleSelection", scrollbarH: "scrollbarH", hideHeader: "hideHeader", hideFooter: "hideFooter", serverSide: "serverSide", page: "page", selectedRows: "selectedRows" }, outputs: { onSelection: "onSelection", onPageChange: "onPageChange" }, providers: [provideTranslocoScope({ scope: 'wizardry-theme/table', alias: 't' })], queries: [{ propertyName: "actionsTpl", first: true, predicate: ["actions"], descendants: true }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n", styles: [".table-canvas{height:100%;display:flex;flex-direction:column;gap:14px;background:var(--popup-background)}.table-canvas .top{display:flex;flex:0}.table-canvas .top .action-bar{display:flex;flex:1}.table-canvas .top .options{display:flex;flex:0}.table-canvas .table{position:relative;flex:1;min-height:0;min-width:0}.table-canvas .table biit-progress-bar{position:absolute;z-index:1;left:0;right:3px;top:42px}.table-canvas .table ::ng-deep ngx-datatable{height:100%;position:absolute;inset:0}.table-canvas .table ::ng-deep ngx-datatable>div{height:calc(100% - 42px)}.table-canvas .table ::ng-deep ngx-datatable>div>div{height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner{height:inherit}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap{height:100%!important;width:calc(100% - 3px);display:flex;align-items:center;justify-content:center;background:var(--table-header-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap span{color:var(--secondary-text-color);font-size:16px;line-height:100%;font-weight:700;text-transform:uppercase}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap .sort-btn{position:absolute;right:14px}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap:has(biit-checkbox){background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-body{height:100%!important;overflow-y:auto!important}.table-canvas .table ::ng-deep ngx-datatable datatable-body .empty-row{height:100%;display:flex;align-items:center;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row .datatable-body-cell-label{display:flex;align-items:center;min-height:42px;border-bottom:3px solid var(--table-header-color);width:calc(100% - 3px);padding:9px 14px;line-height:120%;height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row:hover .datatable-body-cell-label{background:var(--secondary-text-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row.active .datatable-body-cell-label{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer{position:absolute;bottom:0;background:var(--popup-background);z-index:10}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .label{flex:1 0}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination{display:flex;margin:auto;flex:0;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination biit-datatable-pager{flex:none!important}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items{flex:1 0;display:flex;justify-content:flex-end;align-items:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select{appearance:none;border:none;height:34px;min-width:34px;padding:8px 14px;text-align:end;font-size:14px;font-family:Montserrat,serif;cursor:pointer;background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:focus-visible{outline:none;background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:hover{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select *{background:var(--popup-background);padding:5px}.table-canvas .table ::ng-deep ngx-datatable:has(datatable-footer) datatable-body{height:calc(100% - 48px)!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper{height:unset!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper .datatable-row-detail{height:unset!important}.default-menu{display:flex;flex-direction:row}@media screen and (max-width: 600px){.page-items,.page-size-selector,.horizontal-menu{display:none!important}}@media screen and (min-width: 601px){.vertical-menu{display:none!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.BiitCheckboxComponent, selector: "biit-checkbox", inputs: ["disabled", "description", "showAlwaysDescription"] }, { kind: "component", type: i5.BiitDatatablePagerComponent, selector: "biit-datatable-pager" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableFooterTemplateDirective, selector: "[ngx-datatable-footer-template]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "component", type: i7.BiitProgressBarComponent, selector: "biit-progress-bar", inputs: ["type", "_value", "value"] }, { kind: "component", type: i4.BiitMultiselectComponent, selector: "biit-multiselect", inputs: ["title", "type", "icon", "label", "value", "descriptionField", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc"], outputs: ["onCreate"] }, { kind: "directive", type: i8.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "component", type: i9.BiitVerticalMenuComponent, selector: "biit-vertical-menu" }] });
106
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitDatatableComponent, decorators: [{
107
109
  type: Component,
108
110
  args: [{ selector: 'biit-datatable', providers: [provideTranslocoScope({ scope: 'wizardry-theme/table', alias: 't' })], template: "<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n", styles: [".table-canvas{height:100%;display:flex;flex-direction:column;gap:14px;background:var(--popup-background)}.table-canvas .top{display:flex;flex:0}.table-canvas .top .action-bar{display:flex;flex:1}.table-canvas .top .options{display:flex;flex:0}.table-canvas .table{position:relative;flex:1;min-height:0;min-width:0}.table-canvas .table biit-progress-bar{position:absolute;z-index:1;left:0;right:3px;top:42px}.table-canvas .table ::ng-deep ngx-datatable{height:100%;position:absolute;inset:0}.table-canvas .table ::ng-deep ngx-datatable>div{height:calc(100% - 42px)}.table-canvas .table ::ng-deep ngx-datatable>div>div{height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner{height:inherit}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap{height:100%!important;width:calc(100% - 3px);display:flex;align-items:center;justify-content:center;background:var(--table-header-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap span{color:var(--secondary-text-color);font-size:16px;line-height:100%;font-weight:700;text-transform:uppercase}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap .sort-btn{position:absolute;right:14px}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap:has(biit-checkbox){background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-body{height:100%!important;overflow-y:auto!important}.table-canvas .table ::ng-deep ngx-datatable datatable-body .empty-row{height:100%;display:flex;align-items:center;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row .datatable-body-cell-label{display:flex;align-items:center;min-height:42px;border-bottom:3px solid var(--table-header-color);width:calc(100% - 3px);padding:9px 14px;line-height:120%;height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row:hover .datatable-body-cell-label{background:var(--secondary-text-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row.active .datatable-body-cell-label{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer{position:absolute;bottom:0;background:var(--popup-background);z-index:10}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .label{flex:1 0}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination{display:flex;margin:auto;flex:0;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination biit-datatable-pager{flex:none!important}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items{flex:1 0;display:flex;justify-content:flex-end;align-items:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select{appearance:none;border:none;height:34px;min-width:34px;padding:8px 14px;text-align:end;font-size:14px;font-family:Montserrat,serif;cursor:pointer;background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:focus-visible{outline:none;background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:hover{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select *{background:var(--popup-background);padding:5px}.table-canvas .table ::ng-deep ngx-datatable:has(datatable-footer) datatable-body{height:calc(100% - 48px)!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper{height:unset!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper .datatable-row-detail{height:unset!important}.default-menu{display:flex;flex-direction:row}@media screen and (max-width: 600px){.page-items,.page-size-selector,.horizontal-menu{display:none!important}}@media screen and (min-width: 601px){.vertical-menu{display:none!important}}\n"] }]
@@ -113,8 +115,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
113
115
  type: Input
114
116
  }], columns: [{
115
117
  type: Input
116
- }], selectedRows: [{
117
- type: Input
118
118
  }], pageSize: [{
119
119
  type: Input
120
120
  }], pageSizeList: [{
@@ -142,5 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
142
142
  }], actionsTpl: [{
143
143
  type: ContentChild,
144
144
  args: ['actions']
145
+ }], selectedRows: [{
146
+ type: Input
145
147
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC1kYXRhdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2l6YXJkcnktdGhlbWUvdGFibGUvc3JjL2JpaXQtZGF0YXRhYmxlL2JpaXQtZGF0YXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemFyZHJ5LXRoZW1lL3RhYmxlL3NyYy9iaWl0LWRhdGF0YWJsZS9iaWl0LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFDLFVBQVUsRUFBc0IsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVFuQyxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLElBQWEsSUFBSSxDQUFDLElBQVM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQs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LE9BQTBCO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEUsQ0FBQzs7b0hBcEhVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHdiQUZ0QixDQUFDLHFCQUFxQixDQUFDLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDLDZOQ2ZqRixtb2FBZ1JBOzRGRC9QYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2YsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztzR0FHM0QsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUtMLElBQUk7c0JBQWhCLEtBQUs7Z0JBYU8sT0FBTztzQkFBbkIsS0FBSztnQkFlYyxZQUFZO3NCQUEvQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFa0IsVUFBVTtzQkFBbEMsWUFBWTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEYXRhdGFibGVDb2x1bW59IGZyb20gXCIuL21vZGVscy9kYXRhdGFibGUtY29sdW1uXCI7XG5pbXBvcnQge0NvbHVtbk1vZGUsIERhdGF0YWJsZUNvbXBvbmVudCwgU2VsZWN0aW9uVHlwZX0gZnJvbSBcIkBzaWVtZW5zL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7Y29tcGxldGVJY29uU2V0fSBmcm9tICdAYmlpdC1zb2x1dGlvbnMvYmlpdC1pY29ucy1jb2xsZWN0aW9uJztcbmltcG9ydCB7QmlpdEljb25TZXJ2aWNlfSBmcm9tIFwiQGJpaXQtc29sdXRpb25zL3dpemFyZHJ5LXRoZW1lL2ljb25cIjtcbmltcG9ydCB7QmlpdE11bHRpc2VsZWN0VHlwZX0gZnJvbSBcIkBiaWl0LXNvbHV0aW9ucy93aXphcmRyeS10aGVtZS9pbnB1dHNcIjtcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQge0dlbmVyaWNGaWx0ZXJ9IGZyb20gXCIuLi91dGlscy9nZW5lcmljLWZpbHRlclwiO1xuaW1wb3J0IHtwcm92aWRlVHJhbnNsb2NvU2NvcGV9IGZyb20gXCJAbmduZWF0L3RyYW5zbG9jb1wiO1xuaW1wb3J0IHtQYWdlfSBmcm9tIFwiLi9tb2RlbHMvcGFnZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWl0LWRhdGF0YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iaWl0LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JpaXQtZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVUcmFuc2xvY29TY29wZSh7c2NvcGU6ICd3aXphcmRyeS10aGVtZS90YWJsZScsIGFsaWFzOiAndCd9KV1cbn0pXG5leHBvcnQgY2xhc3MgQmlpdERhdGF0YWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU6IERhdGF0YWJsZUNvbXBvbmVudDtcblxuICBfZGF0YTogVFtdID0gW107XG4gIGFsbERhdGE6IFRbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHNldCBkYXRhKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhID8/IFtdO1xuICAgIHRoaXMuYWxsRGF0YSA9IGRhdGEgPz8gW107XG4gICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xuICB9XG5cbiAgZ2V0IGRhdGEoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIF9jb2x1bW5zOiBEYXRhdGFibGVDb2x1bW5bXSA9IFtdO1xuICBhbGxDb2x1bW5zOiBEYXRhdGFibGVDb2x1bW5bXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHNldCBjb2x1bW5zKGNvbHVtbnM6IERhdGF0YWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5hbGxDb2x1bW5zID0gY29sdW1ucyA/PyBbXTtcbiAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoYyA9PiBjLnZpc2libGUpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKTogRGF0YXRhYmxlQ29sdW1uW10ge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICB9XG5cbiAgc2VsZWN0ZWQ6IFRbXSA9IFtdO1xuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRSb3dzKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQ7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNlbGVjdGVkUm93cyhyb3dzOiBUW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XG4gICAgaWYgKHJvd3MpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQucHVzaCguLi5yb3dzKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBwYWdlU2l6ZT86IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVNpemVMaXN0OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGFibGU/OiBhbnk7XG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdGlvbj86IGFueTtcbiAgQElucHV0KCkgc2Nyb2xsYmFySD86IGFueTtcbiAgQElucHV0KCkgaGlkZUhlYWRlcj86IGFueTtcbiAgQElucHV0KCkgaGlkZUZvb3Rlcj86IGFueTtcbiAgQElucHV0KCkgc2VydmVyU2lkZT86IGFueTtcbiAgQElucHV0KCkgcGFnZT86IFBhZ2U7XG4gIHNlYXJjaDogc3RyaW5nID0gXCJcIjtcblxuICBAT3V0cHV0KCkgb25TZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxUW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG4gIEBPdXRwdXQoKSBvblBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxQYWdlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZT4oKTtcblxuICBAQ29udGVudENoaWxkKCdhY3Rpb25zJykgYWN0aW9uc1RwbCE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IENvbHVtbk1vZGUgPSBDb2x1bW5Nb2RlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgU2VsZWN0aW9uVHlwZSA9IFNlbGVjdGlvblR5cGU7XG4gIHByb3RlY3RlZCByZWFkb25seSBCaWl0TXVsdGlzZWxlY3RUeXBlID0gQmlpdE11bHRpc2VsZWN0VHlwZTtcbiAgcHJpdmF0ZSBmaW5kVGltZW91dDogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgY29uc3RydWN0b3IoYmlpdEljb25TZXJ2aWNlOiBCaWl0SWNvblNlcnZpY2UpIHtcbiAgICBiaWl0SWNvblNlcnZpY2UucmVnaXN0ZXJJY29ucyhjb21wbGV0ZUljb25TZXQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWxlY3RhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHRoaXMuc2VsZWN0YWJsZSk7XG4gICAgdGhpcy5zaW5nbGVTZWxlY3Rpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5zaW5nbGVTZWxlY3Rpb24pO1xuICAgIHRoaXMuc2Nyb2xsYmFySCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnNjcm9sbGJhckgpO1xuICAgIHRoaXMuaGlkZUhlYWRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmhpZGVIZWFkZXIpO1xuICAgIHRoaXMuaGlkZUZvb3RlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmhpZGVGb290ZXIpO1xuICAgIHRoaXMuc2VydmVyU2lkZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnNlcnZlclNpZGUpO1xuICB9XG5cbiAgb25TZWxlY3Qoe3NlbGVjdGVkfSkge1xuICAgIHRoaXMuc2VsZWN0ZWQuc3BsaWNlKDAsIHRoaXMuc2VsZWN0ZWQubGVuZ3RoKTtcbiAgICB0aGlzLnNlbGVjdGVkLnB1c2goLi4uc2VsZWN0ZWQpO1xuICAgIHRoaXMub25TZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQWN0aXZhdGUoZXZlbnQ6IHsgdHlwZTogJ2tleWRvd24nIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycsIGV2ZW50LCByb3csIGNvbHVtbiwgdmFsdWUsIGNlbGxFbGVtZW50LCByb3dFbGVtZW50IH0pIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PSAnY2xpY2snICYmIGV2ZW50LmNvbHVtbi5uYW1lICE9PSAnY2hrYm94Jykge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IFtldmVudC5yb3ddO1xuICAgICAgdGhpcy5vblNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIG9uRmlsdGVyKHZhbHVlOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5maW5kVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZmluZFRpbWVvdXQpO1xuICAgIH1cbiAgICB0aGlzLmZpbmRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaCA9IHZhbHVlO1xuICAgICAgY29uc3QgdmFsID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgLy8gZmlsdGVyIG91ciBkYXRhXG4gICAgICBjb25zdCB0ZW1wOiBUW10gPSB0aGlzLmFsbERhdGEuZmlsdGVyKGl0ZW0gPT4gR2VuZXJpY0ZpbHRlci5maWx0ZXIoaXRlbSwgdmFsLCB0cnVlKSk7XG5cbiAgICAgIC8vIHVwZGF0ZSB0aGUgcm93c1xuICAgICAgdGhpcy5fZGF0YSA9IHRlbXA7XG4gICAgICAvLyBXaGVuZXZlciB0aGUgZmlsdGVyIGNoYW5nZXMsIGFsd2F5cyBnbyBiYWNrIHRvIHRoZSBmaXJzdCBwYWdlXG4gICAgICB0aGlzLnRhYmxlLm9mZnNldCA9IDA7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5maW5kVGltZW91dCk7XG4gICAgICB0aGlzLmZpbmRUaW1lb3V0ID0gbnVsbDtcbiAgICB9LCBmb3JjZSA/IDAgOiA1MDApO1xuICB9XG5cbiAgb25Gb290ZXJQYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBwYWdlID0gbmV3IFBhZ2UoZXZlbnQub2Zmc2V0LCBldmVudC5wYWdlU2l6ZSwgZXZlbnQuY291bnQpO1xuICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gIH1cblxuICBzZXRDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbnM6IERhdGF0YWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5fY29sdW1ucyA9IHRoaXMuYWxsQ29sdW1ucy5maWx0ZXIoYyA9PiBjb2x1bW5zLmluY2x1ZGVzKGMpKVxuICB9XG59XG4iLCI8ZGl2IGlkPVwiYmlpdC10YWJsZVwiIGNsYXNzPVwidGFibGUtY2FudmFzXCIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gIDxkaXYgY2xhc3M9XCJ0b3BcIiAqbmdJZj1cIiFoaWRlSGVhZGVyXCI+XG4gICAgPGRpdiBpZD1cIm1lbnVcIiBjbGFzcz1cImFjdGlvbi1iYXJcIj5cbiAgICAgIDxiaWl0LXZlcnRpY2FsLW1lbnUgKm5nSWY9XCJhY3Rpb25zVHBsXCIgY2xhc3M9XCJ2ZXJ0aWNhbC1tZW51XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2JpaXQtdmVydGljYWwtbWVudT5cbiAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb25zVHBsXCIgY2xhc3M9XCJob3Jpem9udGFsLW1lbnUgZGVmYXVsdC1tZW51XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LW1lbnVcIiAqbmdJZj1cIiFhY3Rpb25zVHBsXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJvcHRpb25zXCIgY2xhc3M9XCJvcHRpb25zXCI+XG4gICAgICA8YmlpdC1pbnB1dC10ZXh0IGlkPVwic2VhcmNoXCIgI3NlYXJjaElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkFjdGlvblBlcmZvcm1lZCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBvbkZpbHRlcigkZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInNlYXJjaElucHV0LnZhbHVlID0gc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0KCd0LnNlYXJjaCcpXCJcbiAgICAgID48L2JpaXQtaW5wdXQtdGV4dD5cbiAgICAgIDxiaWl0LW11bHRpc2VsZWN0IGlkPVwiY29sdW1uLXNlbGVjdG9yXCIgW25nTW9kZWxdPVwiX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0Q29sdW1uVmlzaWJpbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImFsbENvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJCaWl0TXVsdGlzZWxlY3RUeXBlLklDT05cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInQoJ3QuY29sdW1uLXNlbGVjdG9yJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBhY3RdPVwidHJ1ZVwiXG4gICAgICA+PC9iaWl0LW11bHRpc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBpZD1cImNvbnRlbnRcIiBjbGFzcz1cInRhYmxlXCI+XG4gICAgPGJpaXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwibG9hZGluZ1wiPjwvYmlpdC1wcm9ncmVzcy1iYXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZXJ2ZXJTaWRlXCI+XG4gICAgICA8bmd4LWRhdGF0YWJsZSAjdGFibGVcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbk1vZGVdPVwiJ2ZvcmNlJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjQyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmb290ZXJIZWlnaHRdPVwiaGlkZUZvb3RlciA/IDAgOiAzNFwiXG4gICAgICAgICAgICAgICAgICAgICBbcm93SGVpZ2h0XT1cIidhdXRvJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbcmVvcmRlcmFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvblR5cGVdPVwiU2VsZWN0aW9uVHlwZS5jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJvbkFjdGl2YXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgW3ZpcnR1YWxpemF0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzY3JvbGxiYXJWRHluYW1pY109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsaW1pdF09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbc2Nyb2xsYmFySF09XCJzY3JvbGxiYXJIXCJcbiAgICAgICAgICAgICAgICAgICAgIFttZXNzYWdlc109XCJ7ZW1wdHlNZXNzYWdlOiB0KCd0LmVtcHR5LW1lc3NhZ2UnKX1cIlxuICAgICAgPlxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gKm5nSWY9XCJzZWxlY3RhYmxlICYmICFzaW5nbGVTZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Noa2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjQyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuQXV0b1Jlc2l6ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXNpemVhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidjaGtib3gnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGVcbiAgICAgICAgICAgIGxldC12YWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGxldC1hbGxSb3dzU2VsZWN0ZWQ9XCJhbGxSb3dzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgbGV0LXNlbGVjdEZuPVwic2VsZWN0Rm5cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxiaWl0LWNoZWNrYm94IFtuZ01vZGVsXT1cImFsbFJvd3NTZWxlY3RlZFwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCI+PC9iaWl0LWNoZWNrYm94PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGVcbiAgICAgICAgICAgIGxldC12YWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGxldC1pc1NlbGVjdGVkPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgICBsZXQtb25DaGVja2JveENoYW5nZUZuPVwib25DaGVja2JveENoYW5nZUZuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YmlpdC1jaGVja2JveCBbbmdNb2RlbF09XCJpc1NlbGVjdGVkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIj48L2JpaXQtY2hlY2tib3g+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cblxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBfY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcF09XCJjb2x1bW4ucHJvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tib3hhYmxlXT1cImNvbHVtbi5jaGVja2JveGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zyb3plbkxlZnRdPVwiY29sdW1uLmZyb3plbkxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zyb3plblJpZ2h0XT1cImNvbHVtbi5mcm96ZW5SaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmxleEdyb3ddPVwiY29sdW1uLmZsZXhHcm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5XaWR0aF09XCJjb2x1bW4ubWluV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heFdpZHRoXT1cImNvbHVtbi5tYXhXaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXNpemVhYmxlXT1cImNvbHVtbi5yZXNpemVhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wYXJhdG9yXT1cImNvbHVtbi5jb21wYXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaXBlXT1cImNvbHVtbi5waXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJjb2x1bW4uZHJhZ2dhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYW5BdXRvUmVzaXplXT1cImNvbHVtbi5jYW5BdXRvUmVzaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY29sdW1uLmNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2hvc3RDZWxsVGVtcGxhdGVdPVwiY29sdW1uLmdob3N0Q2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmVlVG9nZ2xlVGVtcGxhdGVdPVwiY29sdW1uLnRyZWVUb2dnbGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2VsbENsYXNzXT1cImNvbHVtbi5jZWxsQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyQ2xhc3NdPVwiY29sdW1uLmhlYWRlckNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJDaGVja2JveGFibGVdPVwiY29sdW1uLmhlYWRlckNoZWNrYm94YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNUcmVlQ29sdW1uXT1cImNvbHVtbi5pc1RyZWVDb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyZWVMZXZlbEluZGVudF09XCJjb2x1bW4udHJlZUxldmVsSW5kZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdW1tYXJ5RnVuY109XCJjb2x1bW4uc3VtbWFyeUZ1bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N1bW1hcnlUZW1wbGF0ZV09XCJjb2x1bW4uc3VtbWFyeVRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtZm9vdGVyIGlkPVwiZGF0YXRhYmxlLWZvb3RlclwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgbmd4LWRhdGF0YWJsZS1mb290ZXItdGVtcGxhdGVcbiAgICAgICAgICAgIGxldC1yb3dDb3VudD1cInJvd0NvdW50XCJcbiAgICAgICAgICAgIGxldC1wYWdlU2l6ZUN1cnJlbnQ9XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICBsZXQtc2VsZWN0ZWRDb3VudD1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICAgICAgbGV0LWN1clBhZ2U9XCJjdXJQYWdlXCJcbiAgICAgICAgICAgIGxldC1vZmZzZXQ9XCJvZmZzZXRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCd0LnRvdGFsJykgfX06IDwvc3Bhbj48c3BhbiBpZD1cInRvdGFsLW51bWJlci1vZi1pdGVtc1wiPnt7cm93Q291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZENvdW50XCI+Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwO3t7IHQoJ3Quc2VsZWN0ZWQnKSB9fTogPC9zcGFuPjxzcGFuICpuZ0lmPVwic2VsZWN0ZWRDb3VudFwiIGlkPVwibnVtYmVyLW9mLWl0ZW1zLXNlbGVjdGVkXCI+e3tzZWxlY3RlZENvdW50fX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uXCIgW3N0eWxlLmRpc3BsYXldPVwiISgocm93Q291bnQgLyBwYWdlU2l6ZSkgPiAxKSA/ICdub25lJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgPGJpaXQtZGF0YXRhYmxlLXBhZ2VyICNwYWdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VdPVwiY3VyUGFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJwYWdlU2l6ZUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvdW50XT1cInJvd0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiISgocm93Q291bnQgLyBwYWdlU2l6ZSkgPiAxKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRhYmxlLm9uRm9vdGVyUGFnZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvYmlpdC1kYXRhdGFibGUtcGFnZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLWl0ZW1zXCIgKm5nSWY9XCJwYWdlU2l6ZUxpc3RcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2VTaXplTGlzdD8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgndC5yb3dzLXBlci1wYWdlJykgfX06PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwYWdlci5zaXplID0gJGV2ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBzaXplIG9mIHBhZ2VTaXplTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInNpemVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e3NpemV9fVxuICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWZvb3Rlcj5cbiAgICAgIDwvbmd4LWRhdGF0YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZXJ2ZXJTaWRlXCI+XG4gICAgICA8bmd4LWRhdGF0YWJsZSAjdGFibGVcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbk1vZGVdPVwiJ2ZvcmNlJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjQyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmb290ZXJIZWlnaHRdPVwiaGlkZUZvb3RlciA/IDAgOiAzNFwiXG4gICAgICAgICAgICAgICAgICAgICBbcm93SGVpZ2h0XT1cIidhdXRvJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbcmVvcmRlcmFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvblR5cGVdPVwiU2VsZWN0aW9uVHlwZS5jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJvbkFjdGl2YXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgW3ZpcnR1YWxpemF0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzY3JvbGxiYXJWRHluYW1pY109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzY3JvbGxiYXJIXT1cInNjcm9sbGJhckhcIlxuICAgICAgICAgICAgICAgICAgICAgW21lc3NhZ2VzXT1cIntlbXB0eU1lc3NhZ2U6IHQoJ3QuZW1wdHktbWVzc2FnZScpfVwiXG4gICAgICAgICAgICAgICAgICAgICBbZXh0ZXJuYWxQYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbY291bnRdPVwicGFnZS50b3RhbEVsZW1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXRdPVwicGFnZS5wYWdlTnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsaW1pdF09XCJwYWdlLnBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgIChwYWdlKT1cIm9uRm9vdGVyUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uICpuZ0lmPVwic2VsZWN0YWJsZSAmJiAhc2luZ2xlU2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjaGtib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCI0MlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkF1dG9SZXNpemVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzaXplYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCInY2hrYm94J1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlXG4gICAgICAgICAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBsZXQtYWxsUm93c1NlbGVjdGVkPVwiYWxsUm93c1NlbGVjdGVkXCJcbiAgICAgICAgICAgIGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YmlpdC1jaGVja2JveCBbbmdNb2RlbF09XCJhbGxSb3dzU2VsZWN0ZWRcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RGbighYWxsUm93c1NlbGVjdGVkKVwiPjwvYmlpdC1jaGVja2JveD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlXG4gICAgICAgICAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBsZXQtaXNTZWxlY3RlZD1cImlzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgbGV0LW9uQ2hlY2tib3hDaGFuZ2VGbj1cIm9uQ2hlY2tib3hDaGFuZ2VGblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJpaXQtY2hlY2tib3ggW25nTW9kZWxdPVwiaXNTZWxlY3RlZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2VGbigkZXZlbnQpXCI+PC9iaWl0LWNoZWNrYm94PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BdPVwiY29sdW1uLnByb3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrYm94YWJsZV09XCJjb2x1bW4uY2hlY2tib3hhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcm96ZW5MZWZ0XT1cImNvbHVtbi5mcm96ZW5MZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcm96ZW5SaWdodF09XCJjb2x1bW4uZnJvemVuUmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZsZXhHcm93XT1cImNvbHVtbi5mbGV4R3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluV2lkdGhdPVwiY29sdW1uLm1pbldpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhXaWR0aF09XCJjb2x1bW4ubWF4V2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzaXplYWJsZV09XCJjb2x1bW4ucmVzaXplYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFyYXRvcl09XCJjb2x1bW4uY29tcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGlwZV09XCJjb2x1bW4ucGlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiY29sdW1uLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuQXV0b1Jlc2l6ZV09XCJjb2x1bW4uY2FuQXV0b1Jlc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2VsbFRlbXBsYXRlXT1cImNvbHVtbi5jZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dob3N0Q2VsbFRlbXBsYXRlXT1cImNvbHVtbi5naG9zdENlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJlZVRvZ2dsZVRlbXBsYXRlXT1cImNvbHVtbi50cmVlVG9nZ2xlVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NlbGxDbGFzc109XCJjb2x1bW4uY2VsbENsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJjb2x1bW4uaGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlckNsYXNzXT1cImNvbHVtbi5oZWFkZXJDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyQ2hlY2tib3hhYmxlXT1cImNvbHVtbi5oZWFkZXJDaGVja2JveGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzVHJlZUNvbHVtbl09XCJjb2x1bW4uaXNUcmVlQ29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmVlTGV2ZWxJbmRlbnRdPVwiY29sdW1uLnRyZWVMZXZlbEluZGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3VtbWFyeUZ1bmNdPVwiY29sdW1uLnN1bW1hcnlGdW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdW1tYXJ5VGVtcGxhdGVdPVwiY29sdW1uLnN1bW1hcnlUZW1wbGF0ZVwiXG4gICAgICAgID48L25neC1kYXRhdGFibGUtY29sdW1uPlxuXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWZvb3Rlcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIG5neC1kYXRhdGFibGUtZm9vdGVyLXRlbXBsYXRlXG4gICAgICAgICAgICBsZXQtcm93Q291bnQ9XCJyb3dDb3VudFwiXG4gICAgICAgICAgICBsZXQtcGFnZVNpemVDdXJyZW50PVwicGFnZVNpemVcIlxuICAgICAgICAgICAgbGV0LXNlbGVjdGVkQ291bnQ9XCJzZWxlY3RlZENvdW50XCJcbiAgICAgICAgICAgIGxldC1jdXJQYWdlPVwiY3VyUGFnZVwiXG4gICAgICAgICAgICBsZXQtb2Zmc2V0PVwib2Zmc2V0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiBpZD1cInRvdGFsLWVsZW1lbnRzXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3QudG90YWwnKSB9fToge3tyb3dDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkQ291bnRcIj4mbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7e3sgdCgndC5zZWxlY3RlZCcpIH19OiB7e3NlbGVjdGVkQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb25cIiBbc3R5bGUuZGlzcGxheV09XCIhKChyb3dDb3VudCAvIHBhZ2VTaXplKSA+IDEpID8gJ25vbmUnIDogbnVsbFwiPlxuICAgICAgICAgICAgICA8YmlpdC1kYXRhdGFibGUtcGFnZXIgI3BhZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZV09XCJjdXJQYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cInBhZ2VTaXplQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY291bnRdPVwicm93Q291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIhKChyb3dDb3VudCAvIHBhZ2VTaXplKSA+IDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidGFibGUub25Gb290ZXJQYWdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPC9iaWl0LWRhdGF0YWJsZS1wYWdlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtaXRlbXNcIiAqbmdJZj1cInBhZ2VTaXplTGlzdFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGFnZVNpemVMaXN0Py5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCd0LnJvd3MtcGVyLXBhZ2UnKSB9fTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBhZ2VyLnNpemUgPSAkZXZlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7c2l6ZX19XG4gICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25neC1kYXRhdGFibGUtZm9vdGVyPlxuICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC1kYXRhdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2l6YXJkcnktdGhlbWUvdGFibGUvc3JjL2JpaXQtZGF0YXRhYmxlL2JpaXQtZGF0YXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemFyZHJ5LXRoZW1lL3RhYmxlL3NyYy9iaWl0LWRhdGF0YWJsZS9iaWl0LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFDLFVBQVUsRUFBc0IsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVFuQyxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLElBQWEsSUFBSSxDQUFDLElBQVM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQs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L0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0YXRhYmxlQ29sdW1ufSBmcm9tIFwiLi9tb2RlbHMvZGF0YXRhYmxlLWNvbHVtblwiO1xuaW1wb3J0IHtDb2x1bW5Nb2RlLCBEYXRhdGFibGVDb21wb25lbnQsIFNlbGVjdGlvblR5cGV9IGZyb20gXCJAc2llbWVucy9uZ3gtZGF0YXRhYmxlXCI7XG5pbXBvcnQge2NvbXBsZXRlSWNvblNldH0gZnJvbSAnQGJpaXQtc29sdXRpb25zL2JpaXQtaWNvbnMtY29sbGVjdGlvbic7XG5pbXBvcnQge0JpaXRJY29uU2VydmljZX0gZnJvbSBcIkBiaWl0LXNvbHV0aW9ucy93aXphcmRyeS10aGVtZS9pY29uXCI7XG5pbXBvcnQge0JpaXRNdWx0aXNlbGVjdFR5cGV9IGZyb20gXCJAYmlpdC1zb2x1dGlvbnMvd2l6YXJkcnktdGhlbWUvaW5wdXRzXCI7XG5pbXBvcnQge2NvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2VyY2lvblwiO1xuaW1wb3J0IHtHZW5lcmljRmlsdGVyfSBmcm9tIFwiLi4vdXRpbHMvZ2VuZXJpYy1maWx0ZXJcIjtcbmltcG9ydCB7cHJvdmlkZVRyYW5zbG9jb1Njb3BlfSBmcm9tIFwiQG5nbmVhdC90cmFuc2xvY29cIjtcbmltcG9ydCB7UGFnZX0gZnJvbSBcIi4vbW9kZWxzL3BhZ2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlpdC1kYXRhdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmlpdC1kYXRhdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iaWl0LWRhdGF0YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtwcm92aWRlVHJhbnNsb2NvU2NvcGUoe3Njb3BlOiAnd2l6YXJkcnktdGhlbWUvdGFibGUnLCBhbGlhczogJ3QnfSldXG59KVxuZXhwb3J0IGNsYXNzIEJpaXREYXRhdGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlOiBEYXRhdGFibGVDb21wb25lbnQ7XG5cbiAgX2RhdGE6IFRbXSA9IFtdO1xuICBhbGxEYXRhOiBUW10gPSBbXTtcblxuICBASW5wdXQoKSBzZXQgZGF0YShkYXRhOiBUW10pIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YSA/PyBbXTtcbiAgICB0aGlzLmFsbERhdGEgPSBkYXRhID8/IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBbXTtcbiAgfVxuXG4gIGdldCBkYXRhKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBfY29sdW1uczogRGF0YXRhYmxlQ29sdW1uW10gPSBbXTtcbiAgYWxsQ29sdW1uczogRGF0YXRhYmxlQ29sdW1uW10gPSBbXTtcblxuICBASW5wdXQoKSBzZXQgY29sdW1ucyhjb2x1bW5zOiBEYXRhdGFibGVDb2x1bW5bXSkge1xuICAgIHRoaXMuYWxsQ29sdW1ucyA9IGNvbHVtbnMgPz8gW107XG4gICAgdGhpcy5fY29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKGMgPT4gYy52aXNpYmxlKTtcbiAgfVxuXG4gIGdldCBjb2x1bW5zKCk6IERhdGF0YWJsZUNvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgfVxuXG4gIHNlbGVjdGVkOiBUW10gPSBbXTtcblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkUm93cygpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkO1xuICB9XG5cbiAgQElucHV0KCkgcGFnZVNpemU/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VTaXplTGlzdDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3RhYmxlPzogYW55O1xuICBASW5wdXQoKSBzaW5nbGVTZWxlY3Rpb24/OiBhbnk7XG4gIEBJbnB1dCgpIHNjcm9sbGJhckg/OiBhbnk7XG4gIEBJbnB1dCgpIGhpZGVIZWFkZXI/OiBhbnk7XG4gIEBJbnB1dCgpIGhpZGVGb290ZXI/OiBhbnk7XG4gIEBJbnB1dCgpIHNlcnZlclNpZGU/OiBhbnk7XG4gIEBJbnB1dCgpIHBhZ2U/OiBQYWdlO1xuICBzZWFyY2g6IHN0cmluZyA9IFwiXCI7XG5cbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8VFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UGFnZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2U+KCk7XG5cbiAgQENvbnRlbnRDaGlsZCgnYWN0aW9ucycpIGFjdGlvbnNUcGwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBDb2x1bW5Nb2RlID0gQ29sdW1uTW9kZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25UeXBlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQmlpdE11bHRpc2VsZWN0VHlwZSA9IEJpaXRNdWx0aXNlbGVjdFR5cGU7XG4gIHByaXZhdGUgZmluZFRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0O1xuXG4gIGNvbnN0cnVjdG9yKGJpaXRJY29uU2VydmljZTogQmlpdEljb25TZXJ2aWNlKSB7XG4gICAgYmlpdEljb25TZXJ2aWNlLnJlZ2lzdGVySWNvbnMoY29tcGxldGVJY29uU2V0KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0YWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnNlbGVjdGFibGUpO1xuICAgIHRoaXMuc2luZ2xlU2VsZWN0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHRoaXMuc2luZ2xlU2VsZWN0aW9uKTtcbiAgICB0aGlzLnNjcm9sbGJhckggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5zY3JvbGxiYXJIKTtcbiAgICB0aGlzLmhpZGVIZWFkZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5oaWRlSGVhZGVyKTtcbiAgICB0aGlzLmhpZGVGb290ZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5oaWRlRm9vdGVyKTtcbiAgICB0aGlzLnNlcnZlclNpZGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5zZXJ2ZXJTaWRlKTtcbiAgfVxuXG4gIG9uU2VsZWN0KHtzZWxlY3RlZH0pIHtcbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XG4gICAgdGhpcy5zZWxlY3RlZC5wdXNoKC4uLnNlbGVjdGVkKTtcbiAgICB0aGlzLm9uU2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZCk7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNlbGVjdGVkUm93cyhyb3dzOiBUW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XG4gICAgaWYgKHJvd3MpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQucHVzaCguLi5yb3dzKTtcbiAgICAgIHRoaXMub25TZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgIHRoaXMudGFibGUuc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkO1xuICAgIH1cbiAgfVxuXG4gIG9uQWN0aXZhdGUoZXZlbnQ6IHsgdHlwZTogJ2tleWRvd24nIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycsIGV2ZW50LCByb3csIGNvbHVtbiwgdmFsdWUsIGNlbGxFbGVtZW50LCByb3dFbGVtZW50IH0pIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PSAnY2xpY2snICYmIGV2ZW50LmNvbHVtbi5uYW1lICE9PSAnY2hrYm94Jykge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IFtldmVudC5yb3ddO1xuICAgICAgdGhpcy5vblNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIG9uRmlsdGVyKHZhbHVlOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5maW5kVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZmluZFRpbWVvdXQpO1xuICAgIH1cbiAgICB0aGlzLmZpbmRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaCA9IHZhbHVlO1xuICAgICAgY29uc3QgdmFsID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgLy8gZmlsdGVyIG91ciBkYXRhXG4gICAgICBjb25zdCB0ZW1wOiBUW10gPSB0aGlzLmFsbERhdGEuZmlsdGVyKGl0ZW0gPT4gR2VuZXJpY0ZpbHRlci5maWx0ZXIoaXRlbSwgdmFsLCB0cnVlKSk7XG5cbiAgICAgIC8vIHVwZGF0ZSB0aGUgcm93c1xuICAgICAgdGhpcy5fZGF0YSA9IHRlbXA7XG4gICAgICAvLyBXaGVuZXZlciB0aGUgZmlsdGVyIGNoYW5nZXMsIGFsd2F5cyBnbyBiYWNrIHRvIHRoZSBmaXJzdCBwYWdlXG4gICAgICB0aGlzLnRhYmxlLm9mZnNldCA9IDA7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5maW5kVGltZW91dCk7XG4gICAgICB0aGlzLmZpbmRUaW1lb3V0ID0gbnVsbDtcbiAgICB9LCBmb3JjZSA/IDAgOiA1MDApO1xuICB9XG5cbiAgb25Gb290ZXJQYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBwYWdlID0gbmV3IFBhZ2UoZXZlbnQub2Zmc2V0LCBldmVudC5wYWdlU2l6ZSwgZXZlbnQuY291bnQpO1xuICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gIH1cblxuICBzZXRDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbnM6IERhdGF0YWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5fY29sdW1ucyA9IHRoaXMuYWxsQ29sdW1ucy5maWx0ZXIoYyA9PiBjb2x1bW5zLmluY2x1ZGVzKGMpKVxuICB9XG59XG4iLCI8ZGl2IGlkPVwiYmlpdC10YWJsZVwiIGNsYXNzPVwidGFibGUtY2FudmFzXCIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gIDxkaXYgY2xhc3M9XCJ0b3BcIiAqbmdJZj1cIiFoaWRlSGVhZGVyXCI+XG4gICAgPGRpdiBpZD1cIm1lbnVcIiBjbGFzcz1cImFjdGlvbi1iYXJcIj5cbiAgICAgIDxiaWl0LXZlcnRpY2FsLW1lbnUgKm5nSWY9XCJhY3Rpb25zVHBsXCIgY2xhc3M9XCJ2ZXJ0aWNhbC1tZW51XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2JpaXQtdmVydGljYWwtbWVudT5cbiAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb25zVHBsXCIgY2xhc3M9XCJob3Jpem9udGFsLW1lbnUgZGVmYXVsdC1tZW51XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LW1lbnVcIiAqbmdJZj1cIiFhY3Rpb25zVHBsXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJvcHRpb25zXCIgY2xhc3M9XCJvcHRpb25zXCI+XG4gICAgICA8YmlpdC1pbnB1dC10ZXh0IGlkPVwic2VhcmNoXCIgI3NlYXJjaElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkFjdGlvblBlcmZvcm1lZCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBvbkZpbHRlcigkZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInNlYXJjaElucHV0LnZhbHVlID0gc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0KCd0LnNlYXJjaCcpXCJcbiAgICAgID48L2JpaXQtaW5wdXQtdGV4dD5cbiAgICAgIDxiaWl0LW11bHRpc2VsZWN0IGlkPVwiY29sdW1uLXNlbGVjdG9yXCIgW25nTW9kZWxdPVwiX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0Q29sdW1uVmlzaWJpbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImFsbENvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJCaWl0TXVsdGlzZWxlY3RUeXBlLklDT05cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInQoJ3QuY29sdW1uLXNlbGVjdG9yJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBhY3RdPVwidHJ1ZVwiXG4gICAgICA+PC9iaWl0LW11bHRpc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBpZD1cImNvbnRlbnRcIiBjbGFzcz1cInRhYmxlXCI+XG4gICAgPGJpaXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwibG9hZGluZ1wiPjwvYmlpdC1wcm9ncmVzcy1iYXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZXJ2ZXJTaWRlXCI+XG4gICAgICA8bmd4LWRhdGF0YWJsZSAjdGFibGVcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbk1vZGVdPVwiJ2ZvcmNlJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjQyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmb290ZXJIZWlnaHRdPVwiaGlkZUZvb3RlciA/IDAgOiAzNFwiXG4gICAgICAgICAgICAgICAgICAgICBbcm93SGVpZ2h0XT1cIidhdXRvJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbcmVvcmRlcmFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvblR5cGVdPVwiU2VsZWN0aW9uVHlwZS5jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJvbkFjdGl2YXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgW3ZpcnR1YWxpemF0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzY3JvbGxiYXJWRHluYW1pY109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsaW1pdF09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbc2Nyb2xsYmFySF09XCJzY3JvbGxiYXJIXCJcbiAgICAgICAgICAgICAgICAgICAgIFttZXNzYWdlc109XCJ7ZW1wdHlNZXNzYWdlOiB0KCd0LmVtcHR5LW1lc3NhZ2UnKX1cIlxuICAgICAgPlxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gKm5nSWY9XCJzZWxlY3RhYmxlICYmICFzaW5nbGVTZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Noa2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjQyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuQXV0b1Jlc2l6ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXNpemVhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidjaGtib3gnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGVcbiAgICAgICAgICAgIGxldC12YWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGxldC1hbGxSb3dzU2VsZWN0ZWQ9XCJhbGxSb3dzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgbGV0LXNlbGVjdEZuPVwic2VsZWN0Rm5cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxiaWl0LWNoZWNrYm94IFtuZ01vZGVsXT1cImFsbFJvd3NTZWxlY3RlZFwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCI+PC9iaWl0LWNoZWNrYm94PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGVcbiAgICAgICAgICAgIGxldC12YWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGxldC1pc1NlbGVjdGVkPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgICBsZXQtb25DaGVja2JveENoYW5nZUZuPVwib25DaGVja2JveENoYW5nZUZuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YmlpdC1jaGVja2JveCBbbmdNb2RlbF09XCJpc1NlbGVjdGVkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIj48L2JpaXQtY2hlY2tib3g+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cblxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBfY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcF09XCJjb2x1bW4ucHJvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tib3hhYmxlXT1cImNvbHVtbi5jaGVja2JveGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zyb3plbkxlZnRdPVwiY29sdW1uLmZyb3plbkxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zyb3plblJpZ2h0XT1cImNvbHVtbi5mcm96ZW5SaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmxleEdyb3ddPVwiY29sdW1uLmZsZXhHcm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5XaWR0aF09XCJjb2x1bW4ubWluV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heFdpZHRoXT1cImNvbHVtbi5tYXhXaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXNpemVhYmxlXT1cImNvbHVtbi5yZXNpemVhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wYXJhdG9yXT1cImNvbHVtbi5jb21wYXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaXBlXT1cImNvbHVtbi5waXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJjb2x1bW4uZHJhZ2dhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYW5BdXRvUmVzaXplXT1cImNvbHVtbi5jYW5BdXRvUmVzaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY29sdW1uLmNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2hvc3RDZWxsVGVtcGxhdGVdPVwiY29sdW1uLmdob3N0Q2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmVlVG9nZ2xlVGVtcGxhdGVdPVwiY29sdW1uLnRyZWVUb2dnbGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2VsbENsYXNzXT1cImNvbHVtbi5jZWxsQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyQ2xhc3NdPVwiY29sdW1uLmhlYWRlckNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJDaGVja2JveGFibGVdPVwiY29sdW1uLmhlYWRlckNoZWNrYm94YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNUcmVlQ29sdW1uXT1cImNvbHVtbi5pc1RyZWVDb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyZWVMZXZlbEluZGVudF09XCJjb2x1bW4udHJlZUxldmVsSW5kZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdW1tYXJ5RnVuY109XCJjb2x1bW4uc3VtbWFyeUZ1bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N1bW1hcnlUZW1wbGF0ZV09XCJjb2x1bW4uc3VtbWFyeVRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtZm9vdGVyIGlkPVwiZGF0YXRhYmxlLWZvb3RlclwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgbmd4LWRhdGF0YWJsZS1mb290ZXItdGVtcGxhdGVcbiAgICAgICAgICAgIGxldC1yb3dDb3VudD1cInJvd0NvdW50XCJcbiAgICAgICAgICAgIGxldC1wYWdlU2l6ZUN1cnJlbnQ9XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICBsZXQtc2VsZWN0ZWRDb3VudD1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICAgICAgbGV0LWN1clBhZ2U9XCJjdXJQYWdlXCJcbiAgICAgICAgICAgIGxldC1vZmZzZXQ9XCJvZmZzZXRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCd0LnRvdGFsJykgfX06IDwvc3Bhbj48c3BhbiBpZD1cInRvdGFsLW51bWJlci1vZi1pdGVtc1wiPnt7cm93Q291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZENvdW50XCI+Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwO3t7IHQoJ3Quc2VsZWN0ZWQnKSB9fTogPC9zcGFuPjxzcGFuICpuZ0lmPVwic2VsZWN0ZWRDb3VudFwiIGlkPVwibnVtYmVyLW9mLWl0ZW1zLXNlbGVjdGVkXCI+e3tzZWxlY3RlZENvdW50fX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uXCIgW3N0eWxlLmRpc3BsYXldPVwiISgocm93Q291bnQgLyBwYWdlU2l6ZSkgPiAxKSA/ICdub25lJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgPGJpaXQtZGF0YXRhYmxlLXBhZ2VyICNwYWdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VdPVwiY3VyUGFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJwYWdlU2l6ZUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvdW50XT1cInJvd0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiISgocm93Q291bnQgLyBwYWdlU2l6ZSkgPiAxKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRhYmxlLm9uRm9vdGVyUGFnZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvYmlpdC1kYXRhdGFibGUtcGFnZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLWl0ZW1zXCIgKm5nSWY9XCJwYWdlU2l6ZUxpc3RcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2VTaXplTGlzdD8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgndC5yb3dzLXBlci1wYWdlJykgfX06PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwYWdlci5zaXplID0gJGV2ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBzaXplIG9mIHBhZ2VTaXplTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInNpemVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e3NpemV9fVxuICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWZvb3Rlcj5cbiAgICAgIDwvbmd4LWRhdGF0YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZXJ2ZXJTaWRlXCI+XG4gICAgICA8bmd4LWRhdGF0YWJsZSAjdGFibGVcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbk1vZGVdPVwiJ2ZvcmNlJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjQyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmb290ZXJIZWlnaHRdPVwiaGlkZUZvb3RlciA/IDAgOiAzNFwiXG4gICAgICAgICAgICAgICAgICAgICBbcm93SGVpZ2h0XT1cIidhdXRvJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbcmVvcmRlcmFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvblR5cGVdPVwiU2VsZWN0aW9uVHlwZS5jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJvbkFjdGl2YXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgW3ZpcnR1YWxpemF0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzY3JvbGxiYXJWRHluYW1pY109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzY3JvbGxiYXJIXT1cInNjcm9sbGJhckhcIlxuICAgICAgICAgICAgICAgICAgICAgW21lc3NhZ2VzXT1cIntlbXB0eU1lc3NhZ2U6IHQoJ3QuZW1wdHktbWVzc2FnZScpfVwiXG4gICAgICAgICAgICAgICAgICAgICBbZXh0ZXJuYWxQYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbY291bnRdPVwicGFnZS50b3RhbEVsZW1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXRdPVwicGFnZS5wYWdlTnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsaW1pdF09XCJwYWdlLnBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgIChwYWdlKT1cIm9uRm9vdGVyUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uICpuZ0lmPVwic2VsZWN0YWJsZSAmJiAhc2luZ2xlU2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjaGtib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCI0MlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkF1dG9SZXNpemVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzaXplYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCInY2hrYm94J1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlXG4gICAgICAgICAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBsZXQtYWxsUm93c1NlbGVjdGVkPVwiYWxsUm93c1NlbGVjdGVkXCJcbiAgICAgICAgICAgIGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YmlpdC1jaGVja2JveCBbbmdNb2RlbF09XCJhbGxSb3dzU2VsZWN0ZWRcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RGbighYWxsUm93c1NlbGVjdGVkKVwiPjwvYmlpdC1jaGVja2JveD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlXG4gICAgICAgICAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBsZXQtaXNTZWxlY3RlZD1cImlzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgbGV0LW9uQ2hlY2tib3hDaGFuZ2VGbj1cIm9uQ2hlY2tib3hDaGFuZ2VGblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJpaXQtY2hlY2tib3ggW25nTW9kZWxdPVwiaXNTZWxlY3RlZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2VGbigkZXZlbnQpXCI+PC9iaWl0LWNoZWNrYm94PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgX2NvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BdPVwiY29sdW1uLnByb3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrYm94YWJsZV09XCJjb2x1bW4uY2hlY2tib3hhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcm96ZW5MZWZ0XT1cImNvbHVtbi5mcm96ZW5MZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcm96ZW5SaWdodF09XCJjb2x1bW4uZnJvemVuUmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZsZXhHcm93XT1cImNvbHVtbi5mbGV4R3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluV2lkdGhdPVwiY29sdW1uLm1pbldpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhXaWR0aF09XCJjb2x1bW4ubWF4V2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzaXplYWJsZV09XCJjb2x1bW4ucmVzaXplYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFyYXRvcl09XCJjb2x1bW4uY29tcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGlwZV09XCJjb2x1bW4ucGlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiY29sdW1uLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuQXV0b1Jlc2l6ZV09XCJjb2x1bW4uY2FuQXV0b1Jlc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2VsbFRlbXBsYXRlXT1cImNvbHVtbi5jZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dob3N0Q2VsbFRlbXBsYXRlXT1cImNvbHVtbi5naG9zdENlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJlZVRvZ2dsZVRlbXBsYXRlXT1cImNvbHVtbi50cmVlVG9nZ2xlVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NlbGxDbGFzc109XCJjb2x1bW4uY2VsbENsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJjb2x1bW4uaGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlckNsYXNzXT1cImNvbHVtbi5oZWFkZXJDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyQ2hlY2tib3hhYmxlXT1cImNvbHVtbi5oZWFkZXJDaGVja2JveGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzVHJlZUNvbHVtbl09XCJjb2x1bW4uaXNUcmVlQ29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmVlTGV2ZWxJbmRlbnRdPVwiY29sdW1uLnRyZWVMZXZlbEluZGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3VtbWFyeUZ1bmNdPVwiY29sdW1uLnN1bW1hcnlGdW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdW1tYXJ5VGVtcGxhdGVdPVwiY29sdW1uLnN1bW1hcnlUZW1wbGF0ZVwiXG4gICAgICAgID48L25neC1kYXRhdGFibGUtY29sdW1uPlxuXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWZvb3Rlcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIG5neC1kYXRhdGFibGUtZm9vdGVyLXRlbXBsYXRlXG4gICAgICAgICAgICBsZXQtcm93Q291bnQ9XCJyb3dDb3VudFwiXG4gICAgICAgICAgICBsZXQtcGFnZVNpemVDdXJyZW50PVwicGFnZVNpemVcIlxuICAgICAgICAgICAgbGV0LXNlbGVjdGVkQ291bnQ9XCJzZWxlY3RlZENvdW50XCJcbiAgICAgICAgICAgIGxldC1jdXJQYWdlPVwiY3VyUGFnZVwiXG4gICAgICAgICAgICBsZXQtb2Zmc2V0PVwib2Zmc2V0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiBpZD1cInRvdGFsLWVsZW1lbnRzXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3QudG90YWwnKSB9fToge3tyb3dDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkQ291bnRcIj4mbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7e3sgdCgndC5zZWxlY3RlZCcpIH19OiB7e3NlbGVjdGVkQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb25cIiBbc3R5bGUuZGlzcGxheV09XCIhKChyb3dDb3VudCAvIHBhZ2VTaXplKSA+IDEpID8gJ25vbmUnIDogbnVsbFwiPlxuICAgICAgICAgICAgICA8YmlpdC1kYXRhdGFibGUtcGFnZXIgI3BhZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZV09XCJjdXJQYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cInBhZ2VTaXplQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY291bnRdPVwicm93Q291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIhKChyb3dDb3VudCAvIHBhZ2VTaXplKSA+IDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidGFibGUub25Gb290ZXJQYWdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPC9iaWl0LWRhdGF0YWJsZS1wYWdlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtaXRlbXNcIiAqbmdJZj1cInBhZ2VTaXplTGlzdFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGFnZVNpemVMaXN0Py5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCd0LnJvd3MtcGVyLXBhZ2UnKSB9fTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBhZ2VyLnNpemUgPSAkZXZlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7c2l6ZX19XG4gICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25neC1kYXRhdGFibGUtZm9vdGVyPlxuICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -860,12 +860,6 @@ class BiitDatatableComponent {
860
860
  get selectedRows() {
861
861
  return this.selected;
862
862
  }
863
- set selectedRows(rows) {
864
- this.selected.splice(0, this.selected.length);
865
- if (rows) {
866
- this.selected.push(...rows);
867
- }
868
- }
869
863
  constructor(biitIconService) {
870
864
  this._data = [];
871
865
  this.allData = [];
@@ -895,6 +889,14 @@ class BiitDatatableComponent {
895
889
  this.selected.push(...selected);
896
890
  this.onSelection.emit(this.selected);
897
891
  }
892
+ set selectedRows(rows) {
893
+ this.selected.splice(0, this.selected.length);
894
+ if (rows) {
895
+ this.selected.push(...rows);
896
+ this.onSelection.emit(this.selected);
897
+ this.table.selected = this.selected;
898
+ }
899
+ }
898
900
  onActivate(event) {
899
901
  if (event.type == 'click' && event.column.name !== 'chkbox') {
900
902
  this.selected = [event.row];
@@ -927,7 +929,7 @@ class BiitDatatableComponent {
927
929
  }
928
930
  }
929
931
  BiitDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitDatatableComponent, deps: [{ token: i1$1.BiitIconService }], target: i0.ɵɵFactoryTarget.Component });
930
- BiitDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitDatatableComponent, selector: "biit-datatable", inputs: { data: "data", columns: "columns", selectedRows: "selectedRows", pageSize: "pageSize", pageSizeList: "pageSizeList", loading: "loading", selectable: "selectable", singleSelection: "singleSelection", scrollbarH: "scrollbarH", hideHeader: "hideHeader", hideFooter: "hideFooter", serverSide: "serverSide", page: "page" }, outputs: { onSelection: "onSelection", onPageChange: "onPageChange" }, providers: [provideTranslocoScope({ scope: 'wizardry-theme/table', alias: 't' })], queries: [{ propertyName: "actionsTpl", first: true, predicate: ["actions"], descendants: true }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n", styles: [".table-canvas{height:100%;display:flex;flex-direction:column;gap:14px;background:var(--popup-background)}.table-canvas .top{display:flex;flex:0}.table-canvas .top .action-bar{display:flex;flex:1}.table-canvas .top .options{display:flex;flex:0}.table-canvas .table{position:relative;flex:1;min-height:0;min-width:0}.table-canvas .table biit-progress-bar{position:absolute;z-index:1;left:0;right:3px;top:42px}.table-canvas .table ::ng-deep ngx-datatable{height:100%;position:absolute;inset:0}.table-canvas .table ::ng-deep ngx-datatable>div{height:calc(100% - 42px)}.table-canvas .table ::ng-deep ngx-datatable>div>div{height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner{height:inherit}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap{height:100%!important;width:calc(100% - 3px);display:flex;align-items:center;justify-content:center;background:var(--table-header-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap span{color:var(--secondary-text-color);font-size:16px;line-height:100%;font-weight:700;text-transform:uppercase}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap .sort-btn{position:absolute;right:14px}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap:has(biit-checkbox){background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-body{height:100%!important;overflow-y:auto!important}.table-canvas .table ::ng-deep ngx-datatable datatable-body .empty-row{height:100%;display:flex;align-items:center;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row .datatable-body-cell-label{display:flex;align-items:center;min-height:42px;border-bottom:3px solid var(--table-header-color);width:calc(100% - 3px);padding:9px 14px;line-height:120%;height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row:hover .datatable-body-cell-label{background:var(--secondary-text-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row.active .datatable-body-cell-label{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer{position:absolute;bottom:0;background:var(--popup-background);z-index:10}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .label{flex:1 0}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination{display:flex;margin:auto;flex:0;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination biit-datatable-pager{flex:none!important}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items{flex:1 0;display:flex;justify-content:flex-end;align-items:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select{appearance:none;border:none;height:34px;min-width:34px;padding:8px 14px;text-align:end;font-size:14px;font-family:Montserrat,serif;cursor:pointer;background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:focus-visible{outline:none;background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:hover{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select *{background:var(--popup-background);padding:5px}.table-canvas .table ::ng-deep ngx-datatable:has(datatable-footer) datatable-body{height:calc(100% - 48px)!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper{height:unset!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper .datatable-row-detail{height:unset!important}.default-menu{display:flex;flex-direction:row}@media screen and (max-width: 600px){.page-items,.page-size-selector,.horizontal-menu{display:none!important}}@media screen and (min-width: 601px){.vertical-menu{display:none!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.BiitCheckboxComponent, selector: "biit-checkbox", inputs: ["disabled", "description", "showAlwaysDescription"] }, { kind: "component", type: BiitDatatablePagerComponent, selector: "biit-datatable-pager" }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableFooterTemplateDirective, selector: "[ngx-datatable-footer-template]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "component", type: i5$1.BiitProgressBarComponent, selector: "biit-progress-bar", inputs: ["type", "_value", "value"] }, { kind: "component", type: i4.BiitMultiselectComponent, selector: "biit-multiselect", inputs: ["title", "type", "icon", "label", "value", "descriptionField", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc"], outputs: ["onCreate"] }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "component", type: i9.BiitVerticalMenuComponent, selector: "biit-vertical-menu" }] });
932
+ BiitDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitDatatableComponent, selector: "biit-datatable", inputs: { data: "data", columns: "columns", pageSize: "pageSize", pageSizeList: "pageSizeList", loading: "loading", selectable: "selectable", singleSelection: "singleSelection", scrollbarH: "scrollbarH", hideHeader: "hideHeader", hideFooter: "hideFooter", serverSide: "serverSide", page: "page", selectedRows: "selectedRows" }, outputs: { onSelection: "onSelection", onPageChange: "onPageChange" }, providers: [provideTranslocoScope({ scope: 'wizardry-theme/table', alias: 't' })], queries: [{ propertyName: "actionsTpl", first: true, predicate: ["actions"], descendants: true }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n", styles: [".table-canvas{height:100%;display:flex;flex-direction:column;gap:14px;background:var(--popup-background)}.table-canvas .top{display:flex;flex:0}.table-canvas .top .action-bar{display:flex;flex:1}.table-canvas .top .options{display:flex;flex:0}.table-canvas .table{position:relative;flex:1;min-height:0;min-width:0}.table-canvas .table biit-progress-bar{position:absolute;z-index:1;left:0;right:3px;top:42px}.table-canvas .table ::ng-deep ngx-datatable{height:100%;position:absolute;inset:0}.table-canvas .table ::ng-deep ngx-datatable>div{height:calc(100% - 42px)}.table-canvas .table ::ng-deep ngx-datatable>div>div{height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner{height:inherit}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap{height:100%!important;width:calc(100% - 3px);display:flex;align-items:center;justify-content:center;background:var(--table-header-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap span{color:var(--secondary-text-color);font-size:16px;line-height:100%;font-weight:700;text-transform:uppercase}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap .sort-btn{position:absolute;right:14px}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap:has(biit-checkbox){background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-body{height:100%!important;overflow-y:auto!important}.table-canvas .table ::ng-deep ngx-datatable datatable-body .empty-row{height:100%;display:flex;align-items:center;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row .datatable-body-cell-label{display:flex;align-items:center;min-height:42px;border-bottom:3px solid var(--table-header-color);width:calc(100% - 3px);padding:9px 14px;line-height:120%;height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row:hover .datatable-body-cell-label{background:var(--secondary-text-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row.active .datatable-body-cell-label{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer{position:absolute;bottom:0;background:var(--popup-background);z-index:10}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .label{flex:1 0}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination{display:flex;margin:auto;flex:0;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination biit-datatable-pager{flex:none!important}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items{flex:1 0;display:flex;justify-content:flex-end;align-items:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select{appearance:none;border:none;height:34px;min-width:34px;padding:8px 14px;text-align:end;font-size:14px;font-family:Montserrat,serif;cursor:pointer;background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:focus-visible{outline:none;background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:hover{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select *{background:var(--popup-background);padding:5px}.table-canvas .table ::ng-deep ngx-datatable:has(datatable-footer) datatable-body{height:calc(100% - 48px)!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper{height:unset!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper .datatable-row-detail{height:unset!important}.default-menu{display:flex;flex-direction:row}@media screen and (max-width: 600px){.page-items,.page-size-selector,.horizontal-menu{display:none!important}}@media screen and (min-width: 601px){.vertical-menu{display:none!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.BiitCheckboxComponent, selector: "biit-checkbox", inputs: ["disabled", "description", "showAlwaysDescription"] }, { kind: "component", type: BiitDatatablePagerComponent, selector: "biit-datatable-pager" }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i6.DataTableFooterTemplateDirective, selector: "[ngx-datatable-footer-template]" }, { kind: "directive", type: i6.DatatableFooterDirective, selector: "ngx-datatable-footer", inputs: ["footerHeight", "totalMessage", "selectedMessage", "pagerLeftArrowIcon", "pagerRightArrowIcon", "pagerPreviousIcon", "pagerNextIcon", "template"] }, { kind: "component", type: i5$1.BiitProgressBarComponent, selector: "biit-progress-bar", inputs: ["type", "_value", "value"] }, { kind: "component", type: i4.BiitMultiselectComponent, selector: "biit-multiselect", inputs: ["title", "type", "icon", "label", "value", "descriptionField", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc"], outputs: ["onCreate"] }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "component", type: i9.BiitVerticalMenuComponent, selector: "biit-vertical-menu" }] });
931
933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitDatatableComponent, decorators: [{
932
934
  type: Component,
933
935
  args: [{ selector: 'biit-datatable', providers: [provideTranslocoScope({ scope: 'wizardry-theme/table', alias: 't' })], template: "<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\">&nbsp;&nbsp;|&nbsp;&nbsp;{{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n", styles: [".table-canvas{height:100%;display:flex;flex-direction:column;gap:14px;background:var(--popup-background)}.table-canvas .top{display:flex;flex:0}.table-canvas .top .action-bar{display:flex;flex:1}.table-canvas .top .options{display:flex;flex:0}.table-canvas .table{position:relative;flex:1;min-height:0;min-width:0}.table-canvas .table biit-progress-bar{position:absolute;z-index:1;left:0;right:3px;top:42px}.table-canvas .table ::ng-deep ngx-datatable{height:100%;position:absolute;inset:0}.table-canvas .table ::ng-deep ngx-datatable>div{height:calc(100% - 42px)}.table-canvas .table ::ng-deep ngx-datatable>div>div{height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner{height:inherit}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap{height:100%!important;width:calc(100% - 3px);display:flex;align-items:center;justify-content:center;background:var(--table-header-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap span{color:var(--secondary-text-color);font-size:16px;line-height:100%;font-weight:700;text-transform:uppercase}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap .sort-btn{position:absolute;right:14px}.table-canvas .table ::ng-deep ngx-datatable datatable-header .datatable-header-inner .datatable-header-cell-template-wrap:has(biit-checkbox){background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-body{height:100%!important;overflow-y:auto!important}.table-canvas .table ::ng-deep ngx-datatable datatable-body .empty-row{height:100%;display:flex;align-items:center;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row .datatable-body-cell-label{display:flex;align-items:center;min-height:42px;border-bottom:3px solid var(--table-header-color);width:calc(100% - 3px);padding:9px 14px;line-height:120%;height:100%}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row:hover .datatable-body-cell-label{background:var(--secondary-text-color)}.table-canvas .table ::ng-deep ngx-datatable datatable-body datatable-body-row.active .datatable-body-cell-label{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer{position:absolute;bottom:0;background:var(--popup-background);z-index:10}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .label{flex:1 0}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination{display:flex;margin:auto;flex:0;justify-content:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .pagination biit-datatable-pager{flex:none!important}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items{flex:1 0;display:flex;justify-content:flex-end;align-items:center}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select{appearance:none;border:none;height:34px;min-width:34px;padding:8px 14px;text-align:end;font-size:14px;font-family:Montserrat,serif;cursor:pointer;background:var(--popup-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:focus-visible{outline:none;background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select:hover{background:var(--main-background)}.table-canvas .table ::ng-deep ngx-datatable datatable-footer .datatable-footer-inner .page-items select *{background:var(--popup-background);padding:5px}.table-canvas .table ::ng-deep ngx-datatable:has(datatable-footer) datatable-body{height:calc(100% - 48px)!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper{height:unset!important}::ng-deep ngx-datatable .auto-details-height .datatable-row-wrapper .datatable-row-detail{height:unset!important}.default-menu{display:flex;flex-direction:row}@media screen and (max-width: 600px){.page-items,.page-size-selector,.horizontal-menu{display:none!important}}@media screen and (min-width: 601px){.vertical-menu{display:none!important}}\n"] }]
@@ -938,8 +940,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
938
940
  type: Input
939
941
  }], columns: [{
940
942
  type: Input
941
- }], selectedRows: [{
942
- type: Input
943
943
  }], pageSize: [{
944
944
  type: Input
945
945
  }], pageSizeList: [{
@@ -967,6 +967,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
967
967
  }], actionsTpl: [{
968
968
  type: ContentChild,
969
969
  args: ['actions']
970
+ }], selectedRows: [{
971
+ type: Input
970
972
  }] } });
971
973
 
972
974
  class BiitDatatablePagerModule {