ngx-aur-mat-table 0.1.66 → 0.1.67
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.
|
@@ -812,7 +812,7 @@
|
|
|
812
812
|
return NgxAurMatTableComponent;
|
|
813
813
|
}());
|
|
814
814
|
NgxAurMatTableComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxAurMatTableComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
815
|
-
NgxAurMatTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData", highlight: "highlight" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick", onFilter: "onFilter", columnOffsets: "columnOffsets" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, read: i0.ElementRef }, { propertyName: "matPaginator", first: true, predicate: i8.MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: i7.MatSort, descendants: true, static: true }, { propertyName: "rows", predicate: ["rowLink"], descendants: true, read: i0.ElementRef }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043D\u0443\u0436\u043D\u043E \u0447\u0435\u0440\u0435\u0437 getView(rowIndex, columnConfig.key) \u0442\u0430\u043C \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0443\u0436\u0435\r\n \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n", styles: [".aur-mat-table table{width:100%;border-collapse:collapse}.aur-mat-table th,td{padding:10px!important}.aur-mat-table .new-color td.mat-cell,.aur-mat-table .new-color td.mat-footer-cell{color:inherit}.aur-mat-table mat-form-field{width:100%}.aur-mat-table .text-right{text-align:right!important}.aur-mat-table .pointer:hover{background-color:#f2f2f2;cursor:pointer}\n"], components: [{ type: i1__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i1__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3__namespace$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: ColumnViewComponent, selector: "lib-column-view", inputs: ["config", "value"] }, { type: i5__namespace.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7__namespace.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i3__namespace$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i3__namespace$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8__namespace.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatLabel, selector: "mat-label" }, { type: i10__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1__namespace$1.MatPrefix, selector: "[matPrefix]" }, { type: i7__namespace.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i3__namespace$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i3__namespace$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i3__namespace$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3__namespace$1.MatCellDef, selector: "[matCellDef]" }, { type: i3__namespace$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i3__namespace$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "dataPropertyGetter": DataPropertyGetterPipe } });
|
|
815
|
+
NgxAurMatTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData", highlight: "highlight" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick", onFilter: "onFilter", columnOffsets: "columnOffsets" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, read: i0.ElementRef }, { propertyName: "matPaginator", first: true, predicate: i8.MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: i7.MatSort, descendants: true, static: true }, { propertyName: "rows", predicate: ["rowLink"], descendants: true, read: i0.ElementRef }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043D\u0443\u0436\u043D\u043E \u0447\u0435\u0440\u0435\u0437 getView(rowIndex, columnConfig.key) \u0442\u0430\u043C \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0443\u0436\u0435\r\n \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n", styles: [".aur-mat-table table{width:100%;border-collapse:collapse}.aur-mat-table th,td{padding:10px!important}.aur-mat-table .new-color td.mat-cell,.aur-mat-table .new-color td.mat-footer-cell{color:inherit}.aur-mat-table mat-form-field{width:100%}.aur-mat-table .text-right{text-align:right!important}.aur-mat-table .pointer:hover{background-color:#f2f2f2;cursor:pointer}\n"], components: [{ type: i1__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i1__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3__namespace$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: ColumnViewComponent, selector: "lib-column-view", inputs: ["config", "value"] }, { type: i5__namespace.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7__namespace.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i3__namespace$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i3__namespace$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8__namespace.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatLabel, selector: "mat-label" }, { type: i10__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1__namespace$1.MatSuffix, selector: "[matSuffix]" }, { type: i7__namespace.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i3__namespace$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i3__namespace$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i3__namespace$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3__namespace$1.MatCellDef, selector: "[matCellDef]" }, { type: i3__namespace$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i3__namespace$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "dataPropertyGetter": DataPropertyGetterPipe } });
|
|
816
816
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxAurMatTableComponent, decorators: [{
|
|
817
817
|
type: i0.Component,
|
|
818
818
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-aur-mat-table.umd.js","sources":["../../../projects/ngx-aur-mat-table/src/lib/providers/SelectionProvider.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-aur-mat-table/src/lib/providers/RowActionProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableViewConverter.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/IndexProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/model/TableRow.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableDataProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/PaginationProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.html","../../../projects/ngx-aur-mat-table/src/lib/data-property-getter-pipe/data-property-getter.pipe.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.html","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.module.ts","../../../projects/ngx-aur-mat-table/src/public-api.ts","../../../projects/ngx-aur-mat-table/src/ngx-aur-mat-table.ts"],"sourcesContent":["import {SelectionModel} from '@angular/cdk/collections';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {EventEmitter} from '@angular/core';\r\nimport {TableRow} from \"../model/TableRow\";\r\nimport {SelectionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class SelectionProvider<T> {\r\n\r\n public readonly COLUMN_NAME = 'tbl_selects';\r\n selection: SelectionModel<T>;\r\n config: SelectionConfig;\r\n tableDataSource: MatTableDataSource<TableRow<T>>;\r\n\r\n constructor(ctx: SelectionConfig, columns: string[], tableDataSource: MatTableDataSource<TableRow<T>>) {\r\n this.config = ctx;\r\n this.selection = new SelectionModel<T>(ctx.multiple, []);\r\n this.tableDataSource = tableDataSource;\r\n this.initCheckboxColumn(columns);\r\n }\r\n\r\n initCheckboxColumn(columns: string[]) {\r\n if (this.config.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n bind(selected: EventEmitter<T[]>, onSelect: EventEmitter<T[]>, onDeselect: EventEmitter<T[]>) {\r\n this.selection.changed\r\n .subscribe(event => {\r\n if (event.added) {\r\n onSelect.emit(event.added);\r\n }\r\n if (event.removed) {\r\n onDeselect.emit(event.removed);\r\n }\r\n selected.emit(this.selection.selected);\r\n });\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.tableDataSource.data.forEach(row => this.selection.select(row.rowSrc));\r\n }\r\n\r\n isAllSelected(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.tableDataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n}\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import {Action, ActionConfig, IconView} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n\r\n constructor(ctx: ActionConfig<any>, columns: string[]) {\r\n if (ctx.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n /**\r\n * Convert rows and actions to a view format.\r\n * @param rows - The data rows to be converted.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Map of row IDs to their associated action views.\r\n */\r\n public toView<T>(rows: TableRow<T>[], actionConfig: ActionConfig<T>): Map<number, Action<string>[]> {\r\n const result = new Map<number, Action<string>[]>();\r\n for (const row of rows) {\r\n result.set(row.id, this.prepareActionsForRow(row, actionConfig));\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Prepare the actions for a specific row based on the action configuration.\r\n * @param row - The data row for which actions need to be prepared.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Array of actions for the row.\r\n */\r\n private prepareActionsForRow<T>(row: TableRow<T>, actionConfig: ActionConfig<T>): Action<string>[] {\r\n return actionConfig.actions.map(action => {\r\n const actionPrepared = action.action(row.rowSrc);\r\n const iconPrepared: IconView<string> = <IconView<string>> this.iconConfig(action.icon, row.rowSrc);\r\n return { action: actionPrepared, icon: iconPrepared };\r\n });\r\n }\r\n\r\n private iconConfig<T>(iconSource: IconView<(value: T) => string>, value: T): IconView<string> {\r\n return {\r\n name: iconSource.name(value),\r\n color: iconSource.color ? iconSource.color(value) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(value) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(value)}: undefined\r\n }\r\n }\r\n}\r\n","import {TableRow} from \"../model/TableRow\";\r\nimport {ColumnView, IconView, TextView, TableConfig, ImageView} from \"../model/ColumnConfig\";\r\n\r\nexport class TableViewConverter {\r\n\r\n public static toView<T>(rows: TableRow<T>[], tableConfig: TableConfig<T>): Map<string, ColumnView<string>>[] {\r\n const result: Map<string, ColumnView<(value: TableRow<T>) => string>> = new Map();\r\n tableConfig.columnsCfg.forEach(c => {\r\n if (c.valueView) {\r\n result.set(c.key, c.valueView)\r\n }\r\n })\r\n return this.toViewInternal(rows, result);\r\n }\r\n\r\n private static toViewInternal<T>(rows: TableRow<T>[], source: Map<string, ColumnView<(value: TableRow<T>) => string>>): Map<string, ColumnView<string>>[] {\r\n return rows.map(row => this.columnConfig(source, row));\r\n }\r\n\r\n private static columnConfig<T>(source: Map<string, ColumnView<(value: TableRow<T>) => string>>, row: TableRow<T>): Map<string, ColumnView<string>> {\r\n const result: Map<string, ColumnView<string>> = new Map();\r\n source.forEach((source, key) => {\r\n const value: ColumnView<string> = {\r\n icon: this.iconConfig(source.icon, row),\r\n text: this.textConfig(source.text, row),\r\n image: this.imageConfig(source.image, row),\r\n }\r\n result.set(key, value)\r\n });\r\n return result;\r\n }\r\n\r\n private static iconConfig<T>(iconSource: IconView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): IconView<string> | undefined {\r\n if (!iconSource) {\r\n return undefined;\r\n }\r\n return {\r\n name: iconSource.name(row),\r\n color: iconSource.color ? iconSource.color(row) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(row) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(row)}: undefined\r\n }\r\n }\r\n\r\n private static textConfig<T>(textSource: TextView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): TextView<string> | undefined {\r\n if (!textSource) {\r\n return undefined;\r\n }\r\n return {\r\n show: textSource.show,\r\n tooltip: textSource.tooltip ? textSource.tooltip(row) : undefined,\r\n color: textSource.color ? textSource.color(row) : undefined,\r\n }\r\n }\r\n\r\n private static imageConfig<T>(imageSource: ImageView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): ImageView<string> | undefined {\r\n if (!imageSource) {\r\n return undefined;\r\n }\r\n return {\r\n src: imageSource.src(row),\r\n width: imageSource.width || undefined,\r\n height: imageSource.height || undefined\r\n }\r\n }\r\n}\r\n","import {ColumnView, IndexConfig} from \"../model/ColumnConfig\";\r\n\r\n\r\nexport class IndexProvider {\r\n public readonly COLUMN_NAME = 'tbl_index';\r\n public headerView: ColumnView<string> | undefined;\r\n public name: string;\r\n\r\n public offset: number;\r\n\r\n constructor(indexConfig: IndexConfig, columns: string[]) {\r\n if (indexConfig) {\r\n columns.unshift(this.COLUMN_NAME);\r\n }\r\n this.headerView = indexConfig.headerColumn;\r\n this.name = indexConfig.name || '';\r\n this.offset = indexConfig.offset || 0;\r\n }\r\n}\r\n","export class TableRow<T> {\r\n id: number;\r\n rowSrc: T;\r\n\r\n [key: string]: any;\r\n\r\n constructor(id: number, rowSrc: T) {\r\n this.rowSrc = rowSrc;\r\n this.id = id;\r\n }\r\n}\r\n","import {ColumnConfig} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport class TableDataProvider<T> {\r\n\r\n public convert(data: T[], config: ColumnConfig<T>[]): TableRow<T>[] {\r\n let id = 0;\r\n return data.map(d => this.tableRow(id++, d, config));\r\n }\r\n\r\n private tableRow(id: number, obj: T, config: ColumnConfig<T>[]): TableRow<T> {\r\n const row = new TableRow<T>(id, obj);\r\n config.forEach(c => row[c.key] = c.valueConverter(obj));\r\n return row;\r\n }\r\n}\r\n","import {PaginationConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class PaginationProvider {\r\n\r\n public sizes: number[];\r\n public size;\r\n\r\n constructor(config: PaginationConfig) {\r\n this.sizes = config.sizes || [5, 10, 15, 25, 50]\r\n this.size = config.size || this.sizes[1];\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ColumnView} from \"../../model/ColumnConfig\";\n\n@Component({\n selector: 'lib-column-view',\n templateUrl: './column-view.component.html',\n styleUrls: ['./column-view.component.css']\n})\nexport class ColumnViewComponent {\n @Input() config: ColumnView<string> | undefined;\n @Input() value: any;\n}\n","<div class=\"align-container\">\n <div [ngClass]=\"{'circle': config?.icon?.wrapper}\"\n [style.background-color]=\"config?.icon?.wrapper?.color\"\n >\n <mat-icon *ngIf=\"config?.icon\"\n [matTooltip]=\"config?.icon?.tooltip?.toString() || ''\"\n [style.color]=\"config?.icon?.color\"\n >\n {{config?.icon?.name}}\n </mat-icon>\n </div>\n\n <img\n *ngIf=\"config?.image?.src\"\n [src]=\"config?.image?.src\"\n [style.height]=\"config?.image?.height\"\n [style.width]=\"config?.image?.width\"\n alt=\"img\"\n >\n\n <span *ngIf=\"config?.text?.show != false\"\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\"\n >\n {{value}}\n </span>\n</div>\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dataPropertyGetter'\r\n})\r\nexport class DataPropertyGetterPipe implements PipeTransform {\r\n\r\n transform(object: any, keyName: string, ...args: unknown[]): unknown {\r\n return object[keyName];\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {ColumnView, ColumnConfig, TableConfig, ActionConfig, Action} from './model/ColumnConfig';\r\nimport {MatSort, Sort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {SelectionProvider} from './providers/SelectionProvider';\r\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\r\nimport {TableRow} from \"./model/TableRow\";\r\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\r\nimport {IndexProvider} from \"./providers/IndexProvider\";\r\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\r\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\r\n\r\nexport interface HighlightContainer<T> {\r\n value: any;\r\n}\r\n\r\nexport interface ColumnOffset {\r\n left: number,\r\n width: number\r\n}\r\n\r\n@Component({\r\n selector: 'aur-mat-table',\r\n templateUrl: './ngx-aur-mat-table.component.html',\r\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\r\n})\r\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n\r\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\r\n public displayedColumns: string[] = [];\r\n\r\n private tableView: Map<string, ColumnView<string>>[] = [];\r\n\r\n // number rowId\r\n private actionView: Map<number, Action<string>[]> = new Map();\r\n\r\n // @ts-ignore\r\n @ViewChildren('rowLink', {read: ElementRef}) rows: QueryList<ElementRef>;\r\n // @ts-ignore\r\n @ViewChild('table', {read: ElementRef}) table: ElementRef;\r\n\r\n // @ts-ignore\r\n @Input() tableConfig: TableConfig<T>;\r\n\r\n @Input() tableData: T[] = [];\r\n\r\n // @ts-ignore\r\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\r\n // @ts-ignore\r\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\r\n\r\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\r\n\r\n // events if enabled actions\r\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\r\n // -----------------------\r\n\r\n // events if enabled select event\r\n @Output() selected = new EventEmitter<T[]>();\r\n @Output() onSelect = new EventEmitter<T[]>();\r\n @Output() onDeselect = new EventEmitter<T[]>();\r\n //------------------------\r\n\r\n\r\n @Output() onRowClick = new EventEmitter<T>();\r\n\r\n /**\r\n * return filtered rows\r\n */\r\n @Output() onFilter = new EventEmitter<T[]>();\r\n\r\n @Output() columnOffsets = new EventEmitter<ColumnOffset[]>();\r\n\r\n // @ts-ignore\r\n private resizeColumnOffsetsObserver: ResizeObserver;\r\n\r\n // @ts-ignore\r\n selectionProvider: SelectionProvider<T>;\r\n // @ts-ignore\r\n rowActionsProvider: RowActionProvider;\r\n\r\n // @ts-ignore\r\n indexProvider: IndexProvider;\r\n\r\n // @ts-ignore\r\n paginationProvider: PaginationProvider;\r\n\r\n tableDataProvider = new TableDataProvider<T>();\r\n\r\n highlighted: T | undefined;\r\n\r\n //значение передается в контейнере иначе OnChange не видит изменений когда передаются одинаковые значение и подсветка строки не отключается\r\n // @ts-ignore\r\n @Input() highlight: HighlightContainer<T> | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['tableData'] && this.tableData) {\r\n this.prepare();\r\n }\r\n if (changes['highlight'] && this.highlight) {\r\n this.doExternalHighlightRow(this.highlight);\r\n }\r\n }\r\n\r\n private doExternalHighlightRow(h: HighlightContainer<T>) {\r\n if (this.highlighted === h.value) {\r\n this.highlight = undefined;\r\n this.highlighted = undefined;\r\n } else {\r\n this.highlighted = h.value;\r\n const index = this.tableDataSource.data.findIndex(row => row.rowSrc === h.value);\r\n if (index >= 0) {\r\n this.rows?.toArray()[index]?.nativeElement.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n inline: \"center\"\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.tableConfig) {\r\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\r\n }\r\n }\r\n\r\n // we need this, in order to make pagination work with *ngIf\r\n ngAfterViewInit(): void {\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.updateColumnOffsets();\r\n this.resizeColumnOffsetsObserver = new ResizeObserver(() => this.updateColumnOffsets());\r\n this.resizeColumnOffsetsObserver.observe(this.table.nativeElement);\r\n }\r\n\r\n private updateColumnOffsets() {\r\n const offsets: ColumnOffset[] = Array.from(this.table.nativeElement.querySelectorAll('th'))\r\n .map(c => (c as HTMLElement))\r\n .map(c => ({left: c.offsetLeft, width: c.offsetWidth}))\r\n this.columnOffsets.emit(offsets);\r\n }\r\n\r\n private prepare() {\r\n this.setTableDataSource();\r\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\r\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\r\n\r\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\r\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\r\n }\r\n if (this.tableConfig.actionCfg && (this.tableConfig.actionCfg.enable === undefined || this.tableConfig.actionCfg.enable === null || this.tableConfig.actionCfg.enable)) {\r\n this.rowActionsProvider = new RowActionProvider(this.tableConfig.actionCfg, this.displayedColumns);\r\n this.actionView = this.rowActionsProvider.toView(this.tableDataSource.data, this.tableConfig.actionCfg)\r\n }\r\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\r\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\r\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\r\n }\r\n if (this.tableConfig.pageableCfg) {\r\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\r\n }\r\n }\r\n\r\n private setTableDataSource() {\r\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\r\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.tableDataSource.sort = this.matSort;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\r\n this.onFilter.emit(this.tableDataSource.filteredData.map(f => f.rowSrc))\r\n }\r\n\r\n sortTable(sortParameters: Sort) {\r\n this.sort.emit(sortParameters);\r\n }\r\n\r\n emitRowAction(action: string, row: T, $event: MouseEvent) {\r\n $event.stopPropagation();\r\n this.onRowAction.emit({action, value: row});\r\n }\r\n\r\n masterToggle() {\r\n this.selectionProvider.masterToggle();\r\n }\r\n\r\n isAllSelected(): boolean {\r\n return this.selectionProvider.isAllSelected();\r\n }\r\n\r\n castSrc(row: any): TableRow<T> {\r\n return row;\r\n }\r\n\r\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\r\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\r\n }\r\n\r\n getActionsView(row: TableRow<T>): Action<string>[] | undefined {\r\n return this.actionView.get(row.id) ? this.actionView.get(row.id) : undefined;\r\n }\r\n\r\n rowClick(row: TableRow<T>) {\r\n if (row.rowSrc !== this.highlighted || (row.rowSrc === this.highlighted && !this.tableConfig.clickCfg?.cancelable)) {\r\n this.onRowClick.emit(row.rowSrc);\r\n this.highlighted = row.rowSrc;\r\n } else {\r\n this.onRowClick.emit(undefined);\r\n this.highlighted = undefined;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // Останавливаем наблюдение при уничтожении компонента\r\n this.resizeColumnOffsetsObserver.disconnect();\r\n }\r\n}\r\n","<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value получать настройки колонок нужно через getView(rowIndex, columnConfig.key) там находятся уже\r\n подготовленные значения для использования-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\nimport {MatTableModule} from \"@angular/material/table\";\r\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\r\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe,\r\n ColumnViewComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatSortModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule\r\n ],\r\n exports: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe\r\n ]\r\n})\r\nexport class NgxAurMatTableModule {\r\n}\r\n","/*\n * Public API Surface of ngx-aur-mat-table\n */\n\nexport * from './lib/ngx-aur-mat-table.component';\nexport * from './lib/ngx-aur-mat-table.module';\nexport * from './lib/data-property-getter-pipe/data-property-getter.pipe';\nexport * from './lib/model/TableRow'\nexport * from './lib/model/ColumnConfig'\nexport * from './lib/providers/RowActionProvider'\nexport * from './lib/providers/SelectionProvider'\nexport * from './lib/providers/IndexProvider'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["SelectionModel","i0","i1","i2","i3","Component","Input","Pipe","MatTableDataSource","EventEmitter","ElementRef","MatPaginator","MatSort","i4.ColumnViewComponent","i5","i6","i7","i8","i9","i10","i11","i12.DataPropertyGetterPipe","ViewChildren","ViewChild","Output","CommonModule","MatIconModule","MatTableModule","MatPaginatorModule","MatButtonModule","MatInputModule","MatSortModule","MatTooltipModule","MatCheckboxModule","MatFormFieldModule","NgModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-aur-mat-table.umd.js","sources":["../../../projects/ngx-aur-mat-table/src/lib/providers/SelectionProvider.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-aur-mat-table/src/lib/providers/RowActionProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableViewConverter.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/IndexProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/model/TableRow.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableDataProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/PaginationProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.html","../../../projects/ngx-aur-mat-table/src/lib/data-property-getter-pipe/data-property-getter.pipe.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.html","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.module.ts","../../../projects/ngx-aur-mat-table/src/public-api.ts","../../../projects/ngx-aur-mat-table/src/ngx-aur-mat-table.ts"],"sourcesContent":["import {SelectionModel} from '@angular/cdk/collections';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {EventEmitter} from '@angular/core';\r\nimport {TableRow} from \"../model/TableRow\";\r\nimport {SelectionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class SelectionProvider<T> {\r\n\r\n public readonly COLUMN_NAME = 'tbl_selects';\r\n selection: SelectionModel<T>;\r\n config: SelectionConfig;\r\n tableDataSource: MatTableDataSource<TableRow<T>>;\r\n\r\n constructor(ctx: SelectionConfig, columns: string[], tableDataSource: MatTableDataSource<TableRow<T>>) {\r\n this.config = ctx;\r\n this.selection = new SelectionModel<T>(ctx.multiple, []);\r\n this.tableDataSource = tableDataSource;\r\n this.initCheckboxColumn(columns);\r\n }\r\n\r\n initCheckboxColumn(columns: string[]) {\r\n if (this.config.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n bind(selected: EventEmitter<T[]>, onSelect: EventEmitter<T[]>, onDeselect: EventEmitter<T[]>) {\r\n this.selection.changed\r\n .subscribe(event => {\r\n if (event.added) {\r\n onSelect.emit(event.added);\r\n }\r\n if (event.removed) {\r\n onDeselect.emit(event.removed);\r\n }\r\n selected.emit(this.selection.selected);\r\n });\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.tableDataSource.data.forEach(row => this.selection.select(row.rowSrc));\r\n }\r\n\r\n isAllSelected(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.tableDataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n}\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import {Action, ActionConfig, IconView} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n\r\n constructor(ctx: ActionConfig<any>, columns: string[]) {\r\n if (ctx.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n /**\r\n * Convert rows and actions to a view format.\r\n * @param rows - The data rows to be converted.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Map of row IDs to their associated action views.\r\n */\r\n public toView<T>(rows: TableRow<T>[], actionConfig: ActionConfig<T>): Map<number, Action<string>[]> {\r\n const result = new Map<number, Action<string>[]>();\r\n for (const row of rows) {\r\n result.set(row.id, this.prepareActionsForRow(row, actionConfig));\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Prepare the actions for a specific row based on the action configuration.\r\n * @param row - The data row for which actions need to be prepared.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Array of actions for the row.\r\n */\r\n private prepareActionsForRow<T>(row: TableRow<T>, actionConfig: ActionConfig<T>): Action<string>[] {\r\n return actionConfig.actions.map(action => {\r\n const actionPrepared = action.action(row.rowSrc);\r\n const iconPrepared: IconView<string> = <IconView<string>> this.iconConfig(action.icon, row.rowSrc);\r\n return { action: actionPrepared, icon: iconPrepared };\r\n });\r\n }\r\n\r\n private iconConfig<T>(iconSource: IconView<(value: T) => string>, value: T): IconView<string> {\r\n return {\r\n name: iconSource.name(value),\r\n color: iconSource.color ? iconSource.color(value) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(value) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(value)}: undefined\r\n }\r\n }\r\n}\r\n","import {TableRow} from \"../model/TableRow\";\r\nimport {ColumnView, IconView, TextView, TableConfig, ImageView} from \"../model/ColumnConfig\";\r\n\r\nexport class TableViewConverter {\r\n\r\n public static toView<T>(rows: TableRow<T>[], tableConfig: TableConfig<T>): Map<string, ColumnView<string>>[] {\r\n const result: Map<string, ColumnView<(value: TableRow<T>) => string>> = new Map();\r\n tableConfig.columnsCfg.forEach(c => {\r\n if (c.valueView) {\r\n result.set(c.key, c.valueView)\r\n }\r\n })\r\n return this.toViewInternal(rows, result);\r\n }\r\n\r\n private static toViewInternal<T>(rows: TableRow<T>[], source: Map<string, ColumnView<(value: TableRow<T>) => string>>): Map<string, ColumnView<string>>[] {\r\n return rows.map(row => this.columnConfig(source, row));\r\n }\r\n\r\n private static columnConfig<T>(source: Map<string, ColumnView<(value: TableRow<T>) => string>>, row: TableRow<T>): Map<string, ColumnView<string>> {\r\n const result: Map<string, ColumnView<string>> = new Map();\r\n source.forEach((source, key) => {\r\n const value: ColumnView<string> = {\r\n icon: this.iconConfig(source.icon, row),\r\n text: this.textConfig(source.text, row),\r\n image: this.imageConfig(source.image, row),\r\n }\r\n result.set(key, value)\r\n });\r\n return result;\r\n }\r\n\r\n private static iconConfig<T>(iconSource: IconView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): IconView<string> | undefined {\r\n if (!iconSource) {\r\n return undefined;\r\n }\r\n return {\r\n name: iconSource.name(row),\r\n color: iconSource.color ? iconSource.color(row) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(row) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(row)}: undefined\r\n }\r\n }\r\n\r\n private static textConfig<T>(textSource: TextView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): TextView<string> | undefined {\r\n if (!textSource) {\r\n return undefined;\r\n }\r\n return {\r\n show: textSource.show,\r\n tooltip: textSource.tooltip ? textSource.tooltip(row) : undefined,\r\n color: textSource.color ? textSource.color(row) : undefined,\r\n }\r\n }\r\n\r\n private static imageConfig<T>(imageSource: ImageView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): ImageView<string> | undefined {\r\n if (!imageSource) {\r\n return undefined;\r\n }\r\n return {\r\n src: imageSource.src(row),\r\n width: imageSource.width || undefined,\r\n height: imageSource.height || undefined\r\n }\r\n }\r\n}\r\n","import {ColumnView, IndexConfig} from \"../model/ColumnConfig\";\r\n\r\n\r\nexport class IndexProvider {\r\n public readonly COLUMN_NAME = 'tbl_index';\r\n public headerView: ColumnView<string> | undefined;\r\n public name: string;\r\n\r\n public offset: number;\r\n\r\n constructor(indexConfig: IndexConfig, columns: string[]) {\r\n if (indexConfig) {\r\n columns.unshift(this.COLUMN_NAME);\r\n }\r\n this.headerView = indexConfig.headerColumn;\r\n this.name = indexConfig.name || '';\r\n this.offset = indexConfig.offset || 0;\r\n }\r\n}\r\n","export class TableRow<T> {\r\n id: number;\r\n rowSrc: T;\r\n\r\n [key: string]: any;\r\n\r\n constructor(id: number, rowSrc: T) {\r\n this.rowSrc = rowSrc;\r\n this.id = id;\r\n }\r\n}\r\n","import {ColumnConfig} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport class TableDataProvider<T> {\r\n\r\n public convert(data: T[], config: ColumnConfig<T>[]): TableRow<T>[] {\r\n let id = 0;\r\n return data.map(d => this.tableRow(id++, d, config));\r\n }\r\n\r\n private tableRow(id: number, obj: T, config: ColumnConfig<T>[]): TableRow<T> {\r\n const row = new TableRow<T>(id, obj);\r\n config.forEach(c => row[c.key] = c.valueConverter(obj));\r\n return row;\r\n }\r\n}\r\n","import {PaginationConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class PaginationProvider {\r\n\r\n public sizes: number[];\r\n public size;\r\n\r\n constructor(config: PaginationConfig) {\r\n this.sizes = config.sizes || [5, 10, 15, 25, 50]\r\n this.size = config.size || this.sizes[1];\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ColumnView} from \"../../model/ColumnConfig\";\n\n@Component({\n selector: 'lib-column-view',\n templateUrl: './column-view.component.html',\n styleUrls: ['./column-view.component.css']\n})\nexport class ColumnViewComponent {\n @Input() config: ColumnView<string> | undefined;\n @Input() value: any;\n}\n","<div class=\"align-container\">\n <div [ngClass]=\"{'circle': config?.icon?.wrapper}\"\n [style.background-color]=\"config?.icon?.wrapper?.color\"\n >\n <mat-icon *ngIf=\"config?.icon\"\n [matTooltip]=\"config?.icon?.tooltip?.toString() || ''\"\n [style.color]=\"config?.icon?.color\"\n >\n {{config?.icon?.name}}\n </mat-icon>\n </div>\n\n <img\n *ngIf=\"config?.image?.src\"\n [src]=\"config?.image?.src\"\n [style.height]=\"config?.image?.height\"\n [style.width]=\"config?.image?.width\"\n alt=\"img\"\n >\n\n <span *ngIf=\"config?.text?.show != false\"\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\"\n >\n {{value}}\n </span>\n</div>\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dataPropertyGetter'\r\n})\r\nexport class DataPropertyGetterPipe implements PipeTransform {\r\n\r\n transform(object: any, keyName: string, ...args: unknown[]): unknown {\r\n return object[keyName];\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {ColumnView, ColumnConfig, TableConfig, ActionConfig, Action} from './model/ColumnConfig';\r\nimport {MatSort, Sort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {SelectionProvider} from './providers/SelectionProvider';\r\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\r\nimport {TableRow} from \"./model/TableRow\";\r\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\r\nimport {IndexProvider} from \"./providers/IndexProvider\";\r\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\r\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\r\n\r\nexport interface HighlightContainer<T> {\r\n value: any;\r\n}\r\n\r\nexport interface ColumnOffset {\r\n left: number,\r\n width: number\r\n}\r\n\r\n@Component({\r\n selector: 'aur-mat-table',\r\n templateUrl: './ngx-aur-mat-table.component.html',\r\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\r\n})\r\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n\r\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\r\n public displayedColumns: string[] = [];\r\n\r\n private tableView: Map<string, ColumnView<string>>[] = [];\r\n\r\n // number rowId\r\n private actionView: Map<number, Action<string>[]> = new Map();\r\n\r\n // @ts-ignore\r\n @ViewChildren('rowLink', {read: ElementRef}) rows: QueryList<ElementRef>;\r\n // @ts-ignore\r\n @ViewChild('table', {read: ElementRef}) table: ElementRef;\r\n\r\n // @ts-ignore\r\n @Input() tableConfig: TableConfig<T>;\r\n\r\n @Input() tableData: T[] = [];\r\n\r\n // @ts-ignore\r\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\r\n // @ts-ignore\r\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\r\n\r\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\r\n\r\n // events if enabled actions\r\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\r\n // -----------------------\r\n\r\n // events if enabled select event\r\n @Output() selected = new EventEmitter<T[]>();\r\n @Output() onSelect = new EventEmitter<T[]>();\r\n @Output() onDeselect = new EventEmitter<T[]>();\r\n //------------------------\r\n\r\n\r\n @Output() onRowClick = new EventEmitter<T>();\r\n\r\n /**\r\n * return filtered rows\r\n */\r\n @Output() onFilter = new EventEmitter<T[]>();\r\n\r\n @Output() columnOffsets = new EventEmitter<ColumnOffset[]>();\r\n\r\n // @ts-ignore\r\n private resizeColumnOffsetsObserver: ResizeObserver;\r\n\r\n // @ts-ignore\r\n selectionProvider: SelectionProvider<T>;\r\n // @ts-ignore\r\n rowActionsProvider: RowActionProvider;\r\n\r\n // @ts-ignore\r\n indexProvider: IndexProvider;\r\n\r\n // @ts-ignore\r\n paginationProvider: PaginationProvider;\r\n\r\n tableDataProvider = new TableDataProvider<T>();\r\n\r\n highlighted: T | undefined;\r\n\r\n //значение передается в контейнере иначе OnChange не видит изменений когда передаются одинаковые значение и подсветка строки не отключается\r\n // @ts-ignore\r\n @Input() highlight: HighlightContainer<T> | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['tableData'] && this.tableData) {\r\n this.prepare();\r\n }\r\n if (changes['highlight'] && this.highlight) {\r\n this.doExternalHighlightRow(this.highlight);\r\n }\r\n }\r\n\r\n private doExternalHighlightRow(h: HighlightContainer<T>) {\r\n if (this.highlighted === h.value) {\r\n this.highlight = undefined;\r\n this.highlighted = undefined;\r\n } else {\r\n this.highlighted = h.value;\r\n const index = this.tableDataSource.data.findIndex(row => row.rowSrc === h.value);\r\n if (index >= 0) {\r\n this.rows?.toArray()[index]?.nativeElement.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n inline: \"center\"\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.tableConfig) {\r\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\r\n }\r\n }\r\n\r\n // we need this, in order to make pagination work with *ngIf\r\n ngAfterViewInit(): void {\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.updateColumnOffsets();\r\n this.resizeColumnOffsetsObserver = new ResizeObserver(() => this.updateColumnOffsets());\r\n this.resizeColumnOffsetsObserver.observe(this.table.nativeElement);\r\n }\r\n\r\n private updateColumnOffsets() {\r\n const offsets: ColumnOffset[] = Array.from(this.table.nativeElement.querySelectorAll('th'))\r\n .map(c => (c as HTMLElement))\r\n .map(c => ({left: c.offsetLeft, width: c.offsetWidth}))\r\n this.columnOffsets.emit(offsets);\r\n }\r\n\r\n private prepare() {\r\n this.setTableDataSource();\r\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\r\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\r\n\r\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\r\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\r\n }\r\n if (this.tableConfig.actionCfg && (this.tableConfig.actionCfg.enable === undefined || this.tableConfig.actionCfg.enable === null || this.tableConfig.actionCfg.enable)) {\r\n this.rowActionsProvider = new RowActionProvider(this.tableConfig.actionCfg, this.displayedColumns);\r\n this.actionView = this.rowActionsProvider.toView(this.tableDataSource.data, this.tableConfig.actionCfg)\r\n }\r\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\r\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\r\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\r\n }\r\n if (this.tableConfig.pageableCfg) {\r\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\r\n }\r\n }\r\n\r\n private setTableDataSource() {\r\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\r\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.tableDataSource.sort = this.matSort;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\r\n this.onFilter.emit(this.tableDataSource.filteredData.map(f => f.rowSrc))\r\n }\r\n\r\n sortTable(sortParameters: Sort) {\r\n this.sort.emit(sortParameters);\r\n }\r\n\r\n emitRowAction(action: string, row: T, $event: MouseEvent) {\r\n $event.stopPropagation();\r\n this.onRowAction.emit({action, value: row});\r\n }\r\n\r\n masterToggle() {\r\n this.selectionProvider.masterToggle();\r\n }\r\n\r\n isAllSelected(): boolean {\r\n return this.selectionProvider.isAllSelected();\r\n }\r\n\r\n castSrc(row: any): TableRow<T> {\r\n return row;\r\n }\r\n\r\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\r\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\r\n }\r\n\r\n getActionsView(row: TableRow<T>): Action<string>[] | undefined {\r\n return this.actionView.get(row.id) ? this.actionView.get(row.id) : undefined;\r\n }\r\n\r\n rowClick(row: TableRow<T>) {\r\n if (row.rowSrc !== this.highlighted || (row.rowSrc === this.highlighted && !this.tableConfig.clickCfg?.cancelable)) {\r\n this.onRowClick.emit(row.rowSrc);\r\n this.highlighted = row.rowSrc;\r\n } else {\r\n this.onRowClick.emit(undefined);\r\n this.highlighted = undefined;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // Останавливаем наблюдение при уничтожении компонента\r\n this.resizeColumnOffsetsObserver.disconnect();\r\n }\r\n}\r\n","<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value получать настройки колонок нужно через getView(rowIndex, columnConfig.key) там находятся уже\r\n подготовленные значения для использования-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\nimport {MatTableModule} from \"@angular/material/table\";\r\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\r\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe,\r\n ColumnViewComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatSortModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule\r\n ],\r\n exports: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe\r\n ]\r\n})\r\nexport class NgxAurMatTableModule {\r\n}\r\n","/*\n * Public API Surface of ngx-aur-mat-table\n */\n\nexport * from './lib/ngx-aur-mat-table.component';\nexport * from './lib/ngx-aur-mat-table.module';\nexport * from './lib/data-property-getter-pipe/data-property-getter.pipe';\nexport * from './lib/model/TableRow'\nexport * from './lib/model/ColumnConfig'\nexport * from './lib/providers/RowActionProvider'\nexport * from './lib/providers/SelectionProvider'\nexport * from './lib/providers/IndexProvider'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["SelectionModel","i0","i1","i2","i3","Component","Input","Pipe","MatTableDataSource","EventEmitter","ElementRef","MatPaginator","MatSort","i4.ColumnViewComponent","i5","i6","i7","i8","i9","i10","i11","i12.DataPropertyGetterPipe","ViewChildren","ViewChild","Output","CommonModule","MatIconModule","MatTableModule","MatPaginatorModule","MatButtonModule","MatInputModule","MatSortModule","MatTooltipModule","MatCheckboxModule","MatFormFieldModule","NgModule"],"mappings":"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"}
|
|
@@ -159,7 +159,7 @@ export class NgxAurMatTableComponent {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
NgxAurMatTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
-
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData", highlight: "highlight" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick", onFilter: "onFilter", columnOffsets: "columnOffsets" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "rows", predicate: ["rowLink"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043D\u0443\u0436\u043D\u043E \u0447\u0435\u0440\u0435\u0437 getView(rowIndex, columnConfig.key) \u0442\u0430\u043C \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0443\u0436\u0435\r\n \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n", styles: [".aur-mat-table table{width:100%;border-collapse:collapse}.aur-mat-table th,td{padding:10px!important}.aur-mat-table .new-color td.mat-cell,.aur-mat-table .new-color td.mat-footer-cell{color:inherit}.aur-mat-table mat-form-field{width:100%}.aur-mat-table .text-right{text-align:right!important}.aur-mat-table .pointer:hover{background-color:#f2f2f2;cursor:pointer}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i4.ColumnViewComponent, selector: "lib-column-view", inputs: ["config", "value"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1.MatPrefix, selector: "[matPrefix]" }, { type: i7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3.MatCellDef, selector: "[matCellDef]" }, { type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "dataPropertyGetter": i12.DataPropertyGetterPipe } });
|
|
162
|
+
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData", highlight: "highlight" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick", onFilter: "onFilter", columnOffsets: "columnOffsets" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "rows", predicate: ["rowLink"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043D\u0443\u0436\u043D\u043E \u0447\u0435\u0440\u0435\u0437 getView(rowIndex, columnConfig.key) \u0442\u0430\u043C \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0443\u0436\u0435\r\n \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n", styles: [".aur-mat-table table{width:100%;border-collapse:collapse}.aur-mat-table th,td{padding:10px!important}.aur-mat-table .new-color td.mat-cell,.aur-mat-table .new-color td.mat-footer-cell{color:inherit}.aur-mat-table mat-form-field{width:100%}.aur-mat-table .text-right{text-align:right!important}.aur-mat-table .pointer:hover{background-color:#f2f2f2;cursor:pointer}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i4.ColumnViewComponent, selector: "lib-column-view", inputs: ["config", "value"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3.MatCellDef, selector: "[matCellDef]" }, { type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "dataPropertyGetter": i12.DataPropertyGetterPipe } });
|
|
163
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, decorators: [{
|
|
164
164
|
type: Component,
|
|
165
165
|
args: [{
|
|
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
202
202
|
}], highlight: [{
|
|
203
203
|
type: Input
|
|
204
204
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLE9BQU8sRUFBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQWMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBZ0JsRSxNQUFNLE9BQU8sdUJBQXVCO0lBcUVsQztRQW5FTyxvQkFBZSxHQUFHLElBQUksa0JBQWtCLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDMUQscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FB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QztpQkFDbEQ7MEVBWThDLElBQUk7c0JBQWhELFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkFFSCxLQUFLO3NCQUE1QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBRzdCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFHb0MsWUFBWTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVKLE9BQU87c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsSUFBSTtzQkFBYixNQUFNO2dCQUdHLFdBQVc7c0JBQXBCLE1BQU07Z0JBSUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBc0JFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29sdW1uVmlldywgQ29sdW1uQ29uZmlnLCBUYWJsZUNvbmZpZywgQWN0aW9uQ29uZmlnLCBBY3Rpb259IGZyb20gJy4vbW9kZWwvQ29sdW1uQ29uZmlnJztcclxuaW1wb3J0IHtNYXRTb3J0LCBTb3J0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHtNYXRQYWdpbmF0b3J9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7U2VsZWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL1NlbGVjdGlvblByb3ZpZGVyJztcclxuaW1wb3J0IHtBY3Rpb25FdmVudCwgUm93QWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL1Jvd0FjdGlvblByb3ZpZGVyJztcclxuaW1wb3J0IHtUYWJsZVJvd30gZnJvbSBcIi4vbW9kZWwvVGFibGVSb3dcIjtcclxuaW1wb3J0IHtUYWJsZVZpZXdDb252ZXJ0ZXJ9IGZyb20gXCIuL3Byb3ZpZGVycy9UYWJsZVZpZXdDb252ZXJ0ZXJcIjtcclxuaW1wb3J0IHtJbmRleFByb3ZpZGVyfSBmcm9tIFwiLi9wcm92aWRlcnMvSW5kZXhQcm92aWRlclwiO1xyXG5pbXBvcnQge1RhYmxlRGF0YVByb3ZpZGVyfSBmcm9tIFwiLi9wcm92aWRlcnMvVGFibGVEYXRhUHJvdmlkZXJcIjtcclxuaW1wb3J0IHtQYWdpbmF0aW9uUHJvdmlkZXJ9IGZyb20gXCIuL3Byb3ZpZGVycy9QYWdpbmF0aW9uUHJvdmlkZXJcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGlnaGxpZ2h0Q29udGFpbmVyPFQ+IHtcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9mZnNldCB7XHJcbiAgbGVmdDogbnVtYmVyLFxyXG4gIHdpZHRoOiBudW1iZXJcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdXItbWF0LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hBdXJNYXRUYWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgdGFibGVEYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxUYWJsZVJvdzxUPj4oW10pO1xyXG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHRhYmxlVmlldzogTWFwPHN0cmluZywgQ29sdW1uVmlldzxzdHJpbmc+PltdID0gW107XHJcblxyXG4gIC8vIG51bWJlciByb3dJZFxyXG4gIHByaXZhdGUgYWN0aW9uVmlldzogTWFwPG51bWJlciwgQWN0aW9uPHN0cmluZz5bXT4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIC8vIEB0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkcmVuKCdyb3dMaW5rJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSByb3dzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSB0YWJsZTogRWxlbWVudFJlZjtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBJbnB1dCgpIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZzxUPjtcclxuXHJcbiAgQElucHV0KCkgdGFibGVEYXRhOiBUW10gPSBbXTtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7c3RhdGljOiBmYWxzZX0pIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIC8vIEB0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHtzdGF0aWM6IHRydWV9KSBtYXRTb3J0OiBNYXRTb3J0O1xyXG5cclxuICBAT3V0cHV0KCkgc29ydDogRXZlbnRFbWl0dGVyPFNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBldmVudHMgaWYgZW5hYmxlZCBhY3Rpb25zXHJcbiAgQE91dHB1dCgpIG9uUm93QWN0aW9uOiBFdmVudEVtaXR0ZXI8QWN0aW9uRXZlbnQ8VD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25FdmVudDxUPj4oKTtcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvLyBldmVudHMgaWYgZW5hYmxlZCBzZWxlY3QgZXZlbnRcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuICBAT3V0cHV0KCkgb25EZXNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuICBAT3V0cHV0KCkgb25Sb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogcmV0dXJuIGZpbHRlcmVkIHJvd3NcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIGNvbHVtbk9mZnNldHMgPSBuZXcgRXZlbnRFbWl0dGVyPENvbHVtbk9mZnNldFtdPigpO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgcHJpdmF0ZSByZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgc2VsZWN0aW9uUHJvdmlkZXI6IFNlbGVjdGlvblByb3ZpZGVyPFQ+O1xyXG4gIC8vIEB0cy1pZ25vcmVcclxuICByb3dBY3Rpb25zUHJvdmlkZXI6IFJvd0FjdGlvblByb3ZpZGVyO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgaW5kZXhQcm92aWRlcjogSW5kZXhQcm92aWRlcjtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIHBhZ2luYXRpb25Qcm92aWRlcjogUGFnaW5hdGlvblByb3ZpZGVyO1xyXG5cclxuICB0YWJsZURhdGFQcm92aWRlciA9IG5ldyBUYWJsZURhdGFQcm92aWRlcjxUPigpO1xyXG5cclxuICBoaWdobGlnaHRlZDogVCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy/Qt9C90LDRh9C10L3QuNC1INC/0LXRgNC10LTQsNC10YLRgdGPINCyINC60L7QvdGC0LXQudC90LXRgNC1INC40L3QsNGH0LUgT25DaGFuZ2Ug0L3QtSDQstC40LTQuNGCINC40LfQvNC10L3QtdC90LjQuSDQutC+0LPQtNCwINC/0LXRgNC10LTQsNGO0YLRgdGPINC+0LTQuNC90LDQutC+0LLRi9C1INC30L3QsNGH0LXQvdC40LUg0Lgg0L/QvtC00YHQstC10YLQutCwINGB0YLRgNC+0LrQuCDQvdC1INC+0YLQutC70Y7Rh9Cw0LXRgtGB0Y9cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgQElucHV0KCkgaGlnaGxpZ2h0OiBIaWdobGlnaHRDb250YWluZXI8VD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3RhYmxlRGF0YSddICYmIHRoaXMudGFibGVEYXRhKSB7XHJcbiAgICAgIHRoaXMucHJlcGFyZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2hpZ2hsaWdodCddICYmIHRoaXMuaGlnaGxpZ2h0KSB7XHJcbiAgICAgIHRoaXMuZG9FeHRlcm5hbEhpZ2hsaWdodFJvdyh0aGlzLmhpZ2hsaWdodCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRvRXh0ZXJuYWxIaWdobGlnaHRSb3coaDogSGlnaGxpZ2h0Q29udGFpbmVyPFQ+KSB7XHJcbiAgICBpZiAodGhpcy5oaWdobGlnaHRlZCA9PT0gaC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5oaWdobGlnaHRlZCA9IHVuZGVmaW5lZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSBoLnZhbHVlO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMudGFibGVEYXRhU291cmNlLmRhdGEuZmluZEluZGV4KHJvdyA9PiByb3cucm93U3JjID09PSBoLnZhbHVlKTtcclxuICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICB0aGlzLnJvd3M/LnRvQXJyYXkoKVtpbmRleF0/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXHJcbiAgICAgICAgICBibG9jazogXCJjZW50ZXJcIixcclxuICAgICAgICAgIGlubGluZTogXCJjZW50ZXJcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50YWJsZUNvbmZpZykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbml0IGlucHV0cyBbdGFibGVDb25maWddIGlzIG1hbmRhdG9yeSFcIilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHdlIG5lZWQgdGhpcywgaW4gb3JkZXIgdG8gbWFrZSBwYWdpbmF0aW9uIHdvcmsgd2l0aCAqbmdJZlxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGFibGVEYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMubWF0UGFnaW5hdG9yO1xyXG4gICAgdGhpcy51cGRhdGVDb2x1bW5PZmZzZXRzKCk7XHJcbiAgICB0aGlzLnJlc2l6ZUNvbHVtbk9mZnNldHNPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZUNvbHVtbk9mZnNldHMoKSk7XHJcbiAgICB0aGlzLnJlc2l6ZUNvbHVtbk9mZnNldHNPYnNlcnZlci5vYnNlcnZlKHRoaXMudGFibGUubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUNvbHVtbk9mZnNldHMoKSB7XHJcbiAgICBjb25zdCBvZmZzZXRzOiBDb2x1bW5PZmZzZXRbXSA9IEFycmF5LmZyb20odGhpcy50YWJsZS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJykpXHJcbiAgICAgIC5tYXAoYyA9PiAoYyBhcyBIVE1MRWxlbWVudCkpXHJcbiAgICAgIC5tYXAoYyA9PiAoe2xlZnQ6IGMub2Zmc2V0TGVmdCwgd2lkdGg6IGMub2Zmc2V0V2lkdGh9KSlcclxuICAgIHRoaXMuY29sdW1uT2Zmc2V0cy5lbWl0KG9mZnNldHMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlKCkge1xyXG4gICAgdGhpcy5zZXRUYWJsZURhdGFTb3VyY2UoKTtcclxuICAgIHRoaXMudGFibGVWaWV3ID0gVGFibGVWaWV3Q29udmVydGVyLnRvVmlldyh0aGlzLnRhYmxlRGF0YVNvdXJjZS5kYXRhLCB0aGlzLnRhYmxlQ29uZmlnKVxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy50YWJsZUNvbmZpZy5jb2x1bW5zQ2ZnLm1hcCgodGFibGVDb2x1bW46IENvbHVtbkNvbmZpZzxhbnk+KSA9PiB0YWJsZUNvbHVtbi5rZXkpO1xyXG5cclxuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLmluZGV4Q2ZnICYmIHRoaXMudGFibGVDb25maWcuaW5kZXhDZmcuZW5hYmxlKSB7XHJcbiAgICAgIHRoaXMuaW5kZXhQcm92aWRlciA9IG5ldyBJbmRleFByb3ZpZGVyKHRoaXMudGFibGVDb25maWcuaW5kZXhDZmcsIHRoaXMuZGlzcGxheWVkQ29sdW1ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZUNvbmZpZy5hY3Rpb25DZmcgJiYgKHRoaXMudGFibGVDb25maWcuYWN0aW9uQ2ZnLmVuYWJsZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudGFibGVDb25maWcuYWN0aW9uQ2ZnLmVuYWJsZSA9PT0gbnVsbCB8fCB0aGlzLnRhYmxlQ29uZmlnLmFjdGlvbkNmZy5lbmFibGUpKSB7XHJcbiAgICAgIHRoaXMucm93QWN0aW9uc1Byb3ZpZGVyID0gbmV3IFJvd0FjdGlvblByb3ZpZGVyKHRoaXMudGFibGVDb25maWcuYWN0aW9uQ2ZnLCB0aGlzLmRpc3BsYXllZENvbHVtbnMpO1xyXG4gICAgICB0aGlzLmFjdGlvblZpZXcgPSB0aGlzLnJvd0FjdGlvbnNQcm92aWRlci50b1ZpZXcodGhpcy50YWJsZURhdGFTb3VyY2UuZGF0YSwgdGhpcy50YWJsZUNvbmZpZy5hY3Rpb25DZmcpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZUNvbmZpZy5zZWxlY3Rpb25DZmcgJiYgdGhpcy50YWJsZUNvbmZpZy5zZWxlY3Rpb25DZmcuZW5hYmxlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIgPSBuZXcgU2VsZWN0aW9uUHJvdmlkZXI8VD4odGhpcy50YWJsZUNvbmZpZy5zZWxlY3Rpb25DZmcsIHRoaXMuZGlzcGxheWVkQ29sdW1ucywgdGhpcy50YWJsZURhdGFTb3VyY2UpO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLmJpbmQodGhpcy5zZWxlY3RlZCwgdGhpcy5vblNlbGVjdCwgdGhpcy5vbkRlc2VsZWN0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLnBhZ2VhYmxlQ2ZnKSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblByb3ZpZGVyID0gbmV3IFBhZ2luYXRpb25Qcm92aWRlcih0aGlzLnRhYmxlQ29uZmlnLnBhZ2VhYmxlQ2ZnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VGFibGVEYXRhU291cmNlKCkge1xyXG4gICAgbGV0IGNvbnZlcnQgPSB0aGlzLnRhYmxlRGF0YVByb3ZpZGVyLmNvbnZlcnQodGhpcy50YWJsZURhdGEsIHRoaXMudGFibGVDb25maWcuY29sdW1uc0NmZyk7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VGFibGVSb3c8VD4+KGNvbnZlcnQpO1xyXG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5tYXRQYWdpbmF0b3I7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXIoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXIgPSBmaWx0ZXJWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCh0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXJlZERhdGEubWFwKGYgPT4gZi5yb3dTcmMpKVxyXG4gIH1cclxuXHJcbiAgc29ydFRhYmxlKHNvcnRQYXJhbWV0ZXJzOiBTb3J0KSB7XHJcbiAgICB0aGlzLnNvcnQuZW1pdChzb3J0UGFyYW1ldGVycyk7XHJcbiAgfVxyXG5cclxuICBlbWl0Um93QWN0aW9uKGFjdGlvbjogc3RyaW5nLCByb3c6IFQsICRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vblJvd0FjdGlvbi5lbWl0KHthY3Rpb24sIHZhbHVlOiByb3d9KTtcclxuICB9XHJcblxyXG4gIG1hc3RlclRvZ2dsZSgpIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIubWFzdGVyVG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuICBpc0FsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIuaXNBbGxTZWxlY3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2FzdFNyYyhyb3c6IGFueSk6IFRhYmxlUm93PFQ+IHtcclxuICAgIHJldHVybiByb3c7XHJcbiAgfVxyXG5cclxuICBnZXRWaWV3KHJvdzogVGFibGVSb3c8VD4sIGNvbHVtbktleTogc3RyaW5nKTogQ29sdW1uVmlldzxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlVmlld1tyb3cuaWRdID8gdGhpcy50YWJsZVZpZXdbcm93LmlkXS5nZXQoY29sdW1uS2V5KSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGdldEFjdGlvbnNWaWV3KHJvdzogVGFibGVSb3c8VD4pOiBBY3Rpb248c3RyaW5nPltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGlvblZpZXcuZ2V0KHJvdy5pZCkgPyB0aGlzLmFjdGlvblZpZXcuZ2V0KHJvdy5pZCkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICByb3dDbGljayhyb3c6IFRhYmxlUm93PFQ+KSB7XHJcbiAgICBpZiAocm93LnJvd1NyYyAhPT0gdGhpcy5oaWdobGlnaHRlZCB8fCAocm93LnJvd1NyYyA9PT0gdGhpcy5oaWdobGlnaHRlZCAmJiAhdGhpcy50YWJsZUNvbmZpZy5jbGlja0NmZz8uY2FuY2VsYWJsZSkpIHtcclxuICAgICAgdGhpcy5vblJvd0NsaWNrLmVtaXQocm93LnJvd1NyYyk7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSByb3cucm93U3JjO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vblJvd0NsaWNrLmVtaXQodW5kZWZpbmVkKTtcclxuICAgICAgdGhpcy5oaWdobGlnaHRlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8g0J7RgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0L3QsNCx0LvRjtC00LXQvdC40LUg0L/RgNC4INGD0L3QuNGH0YLQvtC20LXQvdC40Lgg0LrQvtC80L/QvtC90LXQvdGC0LBcclxuICAgIHRoaXMucmVzaXplQ29sdW1uT2Zmc2V0c09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF1ci1tYXQtdGFibGVcIj5cclxuICA8bmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRmlsdGVyIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlQ29uZmlnLmZpbHRlckNmZ1wiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e3RhYmxlQ29uZmlnLmZpbHRlckNmZz8ubGFiZWx9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwiYXBwbHlGaWx0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3t0YWJsZUNvbmZpZy5maWx0ZXJDZmc/LnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIj5cclxuICAgICAgICA8bWF0LWljb24gbWF0UHJlZml4PnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFRhYmxlIC0tPlxyXG4gICAgPHRhYmxlXHJcbiAgICAgICN0YWJsZVxyXG4gICAgICBtYXQtdGFibGVcclxuICAgICAgbWF0U29ydFxyXG4gICAgICBbZGF0YVNvdXJjZV09XCJ0YWJsZURhdGFTb3VyY2VcIlxyXG4gICAgICAobWF0U29ydENoYW5nZSk9XCJzb3J0VGFibGUoJGV2ZW50KVwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwidGFibGVDb25maWcudGFibGVWaWV3Py5oZWlnaHRcIlxyXG4gICAgICBbc3R5bGUubWF4LWhlaWdodF09XCJ0YWJsZUNvbmZpZy50YWJsZVZpZXc/Lm1heEhlaWdodFwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cInRhYmxlQ29uZmlnLnRhYmxlVmlldz8ubWluSGVpZ2h0XCJcclxuICAgID5cclxuXHJcbiAgICAgIDwhLS0gICAgICAgIGluZGV4LWNvbHVtbi0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5kZXhQcm92aWRlclwiIFttYXRDb2x1bW5EZWZdPVwiaW5kZXhQcm92aWRlci5DT0xVTU5fTkFNRVwiPlxyXG5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlldyBbY29uZmlnXT1cImluZGV4UHJvdmlkZXIuaGVhZGVyVmlld1wiPlxyXG4gICAgICAgICAgICB7e2luZGV4UHJvdmlkZXIubmFtZX19XHJcbiAgICAgICAgICA8L2xpYi1jb2x1bW4tdmlldz5cclxuICAgICAgICA8L3RoPlxyXG5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IHJvd0luZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgIHt7cm93SW5kZXggKyBpbmRleFByb3ZpZGVyLm9mZnNldH19XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tICAgICAgICBzZWxlY3Rpb24tY29sdW1uLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJzZWxlY3Rpb25Qcm92aWRlci5DT0xVTU5fTkFNRVwiICpuZ0lmPVwic2VsZWN0aW9uUHJvdmlkZXJcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2hhbmdlKT1cIiRldmVudCA/IG1hc3RlclRvZ2dsZSgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICFpc0FsbFNlbGVjdGVkKClcIj5cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24udG9nZ2xlKGNhc3RTcmMocm93KS5yb3dTcmMpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5pc1NlbGVjdGVkKGNhc3RTcmMocm93KS5yb3dTcmMpXCI+XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gYWN0aW9uIGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0FjdGlvbnNQcm92aWRlclwiIFttYXRDb2x1bW5EZWZdPVwicm93QWN0aW9uc1Byb3ZpZGVyLkNPTFVNTl9OQU1FXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW1pdFJvd0FjdGlvbihhY3Rpb24uYWN0aW9uLCBjYXN0U3JjKGVsZW1lbnQpLnJvd1NyYywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImFjdGlvbi5pY29uLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGdldEFjdGlvbnNWaWV3KGNhc3RTcmMoZWxlbWVudCkpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3R5bGUuY29sb3JdPVwiYWN0aW9uLmljb24uY29sb3JcIj5cclxuICAgICAgICAgICAgICB7e2FjdGlvbi5pY29uLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tICAgIHZhbHVlLWljb24tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uQ29uZmlnIG9mIHRhYmxlQ29uZmlnLmNvbHVtbnNDZmdcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbkNvbmZpZy5rZXlcIj5cclxuXHJcbiAgICAgICAgPCEtLSBpZiBzb3J0YWJsZSBjb2x1bW4gaGVhZGVyIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Db25maWcuc29ydDsgZWxzZSBub3RTb3J0YWJsZVwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbbWF0LXNvcnQtaGVhZGVyXT1cImNvbHVtbkNvbmZpZy5rZXlcIlxyXG4gICAgICAgICAgICAgIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbkNvbmZpZy5zb3J0LnBvc2l0aW9uID09PSAncmlnaHQnID8gJ2JlZm9yZScgOiAnYWZ0ZXInXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBlbHNlIG5vdCBzb3J0YWJsZSAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNvcnRhYmxlPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclZhbHVlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gICAgICBoZWFkZXIgdmFsdWUtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclZhbHVlPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlldyBbY29uZmlnXT1cImNvbHVtbkNvbmZpZy5oZWFkZXJWaWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbHVtbkNvbmZpZy5uYW1lXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gY29sdW1uIHZhbHVlINC/0L7Qu9GD0YfQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INC60L7Qu9C+0L3QvtC6INC90YPQttC90L4g0YfQtdGA0LXQtyBnZXRWaWV3KHJvd0luZGV4LCBjb2x1bW5Db25maWcua2V5KSDRgtCw0Lwg0L3QsNGF0L7QtNGP0YLRgdGPINGD0LbQtVxyXG4gICAgICAgINC/0L7QtNCz0L7RgtC+0LLQu9C10L3QvdGL0LUg0LfQvdCw0YfQtdC90LjRjyDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8tLT5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cclxuICAgICAgICAgIDxsaWItY29sdW1uLXZpZXdcclxuICAgICAgICAgICAgW2NvbmZpZ109XCJnZXRWaWV3KGVsZW1lbnQsIGNvbHVtbkNvbmZpZy5rZXkpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6IGNvbHVtbkNvbmZpZy5rZXlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9saWItY29sdW1uLXZpZXc+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnM7ICBzdGlja3k6IHRoaXMudGFibGVDb25maWcuc3RpY2t5Q2ZnPy5oZWFkZXJcIj48L3RyPlxyXG4gICAgICA8dHIgbWF0LXJvd1xyXG4gICAgICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKHJvdylcIlxyXG4gICAgICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsncG9pbnRlcic6IHRhYmxlQ29uZmlnLmNsaWNrQ2ZnPy5wb2ludGVyIHx8IGZhbHNlLCAnbmV3LWNvbG9yJzogaGlnaGxpZ2h0ZWQ9PT1yb3cucm93U3JjICYmIHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uY29sb3J9XCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICdjb2xvcic6IGhpZ2hsaWdodGVkPT09cm93LnJvd1NyYz8gdGFibGVDb25maWc/LmNsaWNrQ2ZnPy5oaWdobGlnaHRDbGlja2VkPy5jb2xvciA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogaGlnaGxpZ2h0ZWQgPT09IHJvdy5yb3dTcmM/IHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uYmFja2dyb3VuZCA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICdib3JkZXInOiBoaWdobGlnaHRlZCA9PT0gcm93LnJvd1NyYz8gdGFibGVDb25maWc/LmNsaWNrQ2ZnPy5oaWdobGlnaHRDbGlja2VkPy5ib3JkZXIgOiB1bmRlZmluZWRcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgI3Jvd0xpbmtcclxuICAgICAgPjwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG5cclxuICAgIDwhLS0gUGFnaW5hdGlvbiAtLT5cclxuICAgIDxtYXQtcGFnaW5hdG9yICpuZ0lmPVwicGFnaW5hdGlvblByb3ZpZGVyXCJcclxuICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnaW5hdGlvblByb3ZpZGVyLnNpemVzXCJcclxuICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uUHJvdmlkZXIuc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBzaG93Rmlyc3RMYXN0QnV0dG9ucz5cclxuICAgIDwvbWF0LXBhZ2luYXRvcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLE9BQU8sRUFBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQWMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBZ0JsRSxNQUFNLE9BQU8sdUJBQXVCO0lBcUVsQztRQW5FTyxvQkFBZSxHQUFHLElBQUksa0JBQWtCLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDMUQscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FB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QztpQkFDbEQ7MEVBWThDLElBQUk7c0JBQWhELFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkFFSCxLQUFLO3NCQUE1QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBRzdCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFHb0MsWUFBWTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVKLE9BQU87c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsSUFBSTtzQkFBYixNQUFNO2dCQUdHLFdBQVc7c0JBQXBCLE1BQU07Z0JBSUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBc0JFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29sdW1uVmlldywgQ29sdW1uQ29uZmlnLCBUYWJsZUNvbmZpZywgQWN0aW9uQ29uZmlnLCBBY3Rpb259IGZyb20gJy4vbW9kZWwvQ29sdW1uQ29uZmlnJztcclxuaW1wb3J0IHtNYXRTb3J0LCBTb3J0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHtNYXRQYWdpbmF0b3J9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7U2VsZWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL1NlbGVjdGlvblByb3ZpZGVyJztcclxuaW1wb3J0IHtBY3Rpb25FdmVudCwgUm93QWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL1Jvd0FjdGlvblByb3ZpZGVyJztcclxuaW1wb3J0IHtUYWJsZVJvd30gZnJvbSBcIi4vbW9kZWwvVGFibGVSb3dcIjtcclxuaW1wb3J0IHtUYWJsZVZpZXdDb252ZXJ0ZXJ9IGZyb20gXCIuL3Byb3ZpZGVycy9UYWJsZVZpZXdDb252ZXJ0ZXJcIjtcclxuaW1wb3J0IHtJbmRleFByb3ZpZGVyfSBmcm9tIFwiLi9wcm92aWRlcnMvSW5kZXhQcm92aWRlclwiO1xyXG5pbXBvcnQge1RhYmxlRGF0YVByb3ZpZGVyfSBmcm9tIFwiLi9wcm92aWRlcnMvVGFibGVEYXRhUHJvdmlkZXJcIjtcclxuaW1wb3J0IHtQYWdpbmF0aW9uUHJvdmlkZXJ9IGZyb20gXCIuL3Byb3ZpZGVycy9QYWdpbmF0aW9uUHJvdmlkZXJcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGlnaGxpZ2h0Q29udGFpbmVyPFQ+IHtcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9mZnNldCB7XHJcbiAgbGVmdDogbnVtYmVyLFxyXG4gIHdpZHRoOiBudW1iZXJcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdXItbWF0LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hBdXJNYXRUYWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgdGFibGVEYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxUYWJsZVJvdzxUPj4oW10pO1xyXG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHRhYmxlVmlldzogTWFwPHN0cmluZywgQ29sdW1uVmlldzxzdHJpbmc+PltdID0gW107XHJcblxyXG4gIC8vIG51bWJlciByb3dJZFxyXG4gIHByaXZhdGUgYWN0aW9uVmlldzogTWFwPG51bWJlciwgQWN0aW9uPHN0cmluZz5bXT4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIC8vIEB0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkcmVuKCdyb3dMaW5rJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSByb3dzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSB0YWJsZTogRWxlbWVudFJlZjtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBJbnB1dCgpIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZzxUPjtcclxuXHJcbiAgQElucHV0KCkgdGFibGVEYXRhOiBUW10gPSBbXTtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7c3RhdGljOiBmYWxzZX0pIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIC8vIEB0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHtzdGF0aWM6IHRydWV9KSBtYXRTb3J0OiBNYXRTb3J0O1xyXG5cclxuICBAT3V0cHV0KCkgc29ydDogRXZlbnRFbWl0dGVyPFNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBldmVudHMgaWYgZW5hYmxlZCBhY3Rpb25zXHJcbiAgQE91dHB1dCgpIG9uUm93QWN0aW9uOiBFdmVudEVtaXR0ZXI8QWN0aW9uRXZlbnQ8VD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25FdmVudDxUPj4oKTtcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvLyBldmVudHMgaWYgZW5hYmxlZCBzZWxlY3QgZXZlbnRcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuICBAT3V0cHV0KCkgb25EZXNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuICBAT3V0cHV0KCkgb25Sb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogcmV0dXJuIGZpbHRlcmVkIHJvd3NcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIGNvbHVtbk9mZnNldHMgPSBuZXcgRXZlbnRFbWl0dGVyPENvbHVtbk9mZnNldFtdPigpO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgcHJpdmF0ZSByZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgc2VsZWN0aW9uUHJvdmlkZXI6IFNlbGVjdGlvblByb3ZpZGVyPFQ+O1xyXG4gIC8vIEB0cy1pZ25vcmVcclxuICByb3dBY3Rpb25zUHJvdmlkZXI6IFJvd0FjdGlvblByb3ZpZGVyO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgaW5kZXhQcm92aWRlcjogSW5kZXhQcm92aWRlcjtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIHBhZ2luYXRpb25Qcm92aWRlcjogUGFnaW5hdGlvblByb3ZpZGVyO1xyXG5cclxuICB0YWJsZURhdGFQcm92aWRlciA9IG5ldyBUYWJsZURhdGFQcm92aWRlcjxUPigpO1xyXG5cclxuICBoaWdobGlnaHRlZDogVCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy/Qt9C90LDRh9C10L3QuNC1INC/0LXRgNC10LTQsNC10YLRgdGPINCyINC60L7QvdGC0LXQudC90LXRgNC1INC40L3QsNGH0LUgT25DaGFuZ2Ug0L3QtSDQstC40LTQuNGCINC40LfQvNC10L3QtdC90LjQuSDQutC+0LPQtNCwINC/0LXRgNC10LTQsNGO0YLRgdGPINC+0LTQuNC90LDQutC+0LLRi9C1INC30L3QsNGH0LXQvdC40LUg0Lgg0L/QvtC00YHQstC10YLQutCwINGB0YLRgNC+0LrQuCDQvdC1INC+0YLQutC70Y7Rh9Cw0LXRgtGB0Y9cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgQElucHV0KCkgaGlnaGxpZ2h0OiBIaWdobGlnaHRDb250YWluZXI8VD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3RhYmxlRGF0YSddICYmIHRoaXMudGFibGVEYXRhKSB7XHJcbiAgICAgIHRoaXMucHJlcGFyZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2hpZ2hsaWdodCddICYmIHRoaXMuaGlnaGxpZ2h0KSB7XHJcbiAgICAgIHRoaXMuZG9FeHRlcm5hbEhpZ2hsaWdodFJvdyh0aGlzLmhpZ2hsaWdodCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRvRXh0ZXJuYWxIaWdobGlnaHRSb3coaDogSGlnaGxpZ2h0Q29udGFpbmVyPFQ+KSB7XHJcbiAgICBpZiAodGhpcy5oaWdobGlnaHRlZCA9PT0gaC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5oaWdobGlnaHRlZCA9IHVuZGVmaW5lZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSBoLnZhbHVlO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMudGFibGVEYXRhU291cmNlLmRhdGEuZmluZEluZGV4KHJvdyA9PiByb3cucm93U3JjID09PSBoLnZhbHVlKTtcclxuICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICB0aGlzLnJvd3M/LnRvQXJyYXkoKVtpbmRleF0/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXHJcbiAgICAgICAgICBibG9jazogXCJjZW50ZXJcIixcclxuICAgICAgICAgIGlubGluZTogXCJjZW50ZXJcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50YWJsZUNvbmZpZykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbml0IGlucHV0cyBbdGFibGVDb25maWddIGlzIG1hbmRhdG9yeSFcIilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHdlIG5lZWQgdGhpcywgaW4gb3JkZXIgdG8gbWFrZSBwYWdpbmF0aW9uIHdvcmsgd2l0aCAqbmdJZlxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGFibGVEYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMubWF0UGFnaW5hdG9yO1xyXG4gICAgdGhpcy51cGRhdGVDb2x1bW5PZmZzZXRzKCk7XHJcbiAgICB0aGlzLnJlc2l6ZUNvbHVtbk9mZnNldHNPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZUNvbHVtbk9mZnNldHMoKSk7XHJcbiAgICB0aGlzLnJlc2l6ZUNvbHVtbk9mZnNldHNPYnNlcnZlci5vYnNlcnZlKHRoaXMudGFibGUubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUNvbHVtbk9mZnNldHMoKSB7XHJcbiAgICBjb25zdCBvZmZzZXRzOiBDb2x1bW5PZmZzZXRbXSA9IEFycmF5LmZyb20odGhpcy50YWJsZS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJykpXHJcbiAgICAgIC5tYXAoYyA9PiAoYyBhcyBIVE1MRWxlbWVudCkpXHJcbiAgICAgIC5tYXAoYyA9PiAoe2xlZnQ6IGMub2Zmc2V0TGVmdCwgd2lkdGg6IGMub2Zmc2V0V2lkdGh9KSlcclxuICAgIHRoaXMuY29sdW1uT2Zmc2V0cy5lbWl0KG9mZnNldHMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlKCkge1xyXG4gICAgdGhpcy5zZXRUYWJsZURhdGFTb3VyY2UoKTtcclxuICAgIHRoaXMudGFibGVWaWV3ID0gVGFibGVWaWV3Q29udmVydGVyLnRvVmlldyh0aGlzLnRhYmxlRGF0YVNvdXJjZS5kYXRhLCB0aGlzLnRhYmxlQ29uZmlnKVxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy50YWJsZUNvbmZpZy5jb2x1bW5zQ2ZnLm1hcCgodGFibGVDb2x1bW46IENvbHVtbkNvbmZpZzxhbnk+KSA9PiB0YWJsZUNvbHVtbi5rZXkpO1xyXG5cclxuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLmluZGV4Q2ZnICYmIHRoaXMudGFibGVDb25maWcuaW5kZXhDZmcuZW5hYmxlKSB7XHJcbiAgICAgIHRoaXMuaW5kZXhQcm92aWRlciA9IG5ldyBJbmRleFByb3ZpZGVyKHRoaXMudGFibGVDb25maWcuaW5kZXhDZmcsIHRoaXMuZGlzcGxheWVkQ29sdW1ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZUNvbmZpZy5hY3Rpb25DZmcgJiYgKHRoaXMudGFibGVDb25maWcuYWN0aW9uQ2ZnLmVuYWJsZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudGFibGVDb25maWcuYWN0aW9uQ2ZnLmVuYWJsZSA9PT0gbnVsbCB8fCB0aGlzLnRhYmxlQ29uZmlnLmFjdGlvbkNmZy5lbmFibGUpKSB7XHJcbiAgICAgIHRoaXMucm93QWN0aW9uc1Byb3ZpZGVyID0gbmV3IFJvd0FjdGlvblByb3ZpZGVyKHRoaXMudGFibGVDb25maWcuYWN0aW9uQ2ZnLCB0aGlzLmRpc3BsYXllZENvbHVtbnMpO1xyXG4gICAgICB0aGlzLmFjdGlvblZpZXcgPSB0aGlzLnJvd0FjdGlvbnNQcm92aWRlci50b1ZpZXcodGhpcy50YWJsZURhdGFTb3VyY2UuZGF0YSwgdGhpcy50YWJsZUNvbmZpZy5hY3Rpb25DZmcpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZUNvbmZpZy5zZWxlY3Rpb25DZmcgJiYgdGhpcy50YWJsZUNvbmZpZy5zZWxlY3Rpb25DZmcuZW5hYmxlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIgPSBuZXcgU2VsZWN0aW9uUHJvdmlkZXI8VD4odGhpcy50YWJsZUNvbmZpZy5zZWxlY3Rpb25DZmcsIHRoaXMuZGlzcGxheWVkQ29sdW1ucywgdGhpcy50YWJsZURhdGFTb3VyY2UpO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLmJpbmQodGhpcy5zZWxlY3RlZCwgdGhpcy5vblNlbGVjdCwgdGhpcy5vbkRlc2VsZWN0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLnBhZ2VhYmxlQ2ZnKSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblByb3ZpZGVyID0gbmV3IFBhZ2luYXRpb25Qcm92aWRlcih0aGlzLnRhYmxlQ29uZmlnLnBhZ2VhYmxlQ2ZnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VGFibGVEYXRhU291cmNlKCkge1xyXG4gICAgbGV0IGNvbnZlcnQgPSB0aGlzLnRhYmxlRGF0YVByb3ZpZGVyLmNvbnZlcnQodGhpcy50YWJsZURhdGEsIHRoaXMudGFibGVDb25maWcuY29sdW1uc0NmZyk7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VGFibGVSb3c8VD4+KGNvbnZlcnQpO1xyXG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5tYXRQYWdpbmF0b3I7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXIoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXIgPSBmaWx0ZXJWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCh0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXJlZERhdGEubWFwKGYgPT4gZi5yb3dTcmMpKVxyXG4gIH1cclxuXHJcbiAgc29ydFRhYmxlKHNvcnRQYXJhbWV0ZXJzOiBTb3J0KSB7XHJcbiAgICB0aGlzLnNvcnQuZW1pdChzb3J0UGFyYW1ldGVycyk7XHJcbiAgfVxyXG5cclxuICBlbWl0Um93QWN0aW9uKGFjdGlvbjogc3RyaW5nLCByb3c6IFQsICRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vblJvd0FjdGlvbi5lbWl0KHthY3Rpb24sIHZhbHVlOiByb3d9KTtcclxuICB9XHJcblxyXG4gIG1hc3RlclRvZ2dsZSgpIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIubWFzdGVyVG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuICBpc0FsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIuaXNBbGxTZWxlY3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2FzdFNyYyhyb3c6IGFueSk6IFRhYmxlUm93PFQ+IHtcclxuICAgIHJldHVybiByb3c7XHJcbiAgfVxyXG5cclxuICBnZXRWaWV3KHJvdzogVGFibGVSb3c8VD4sIGNvbHVtbktleTogc3RyaW5nKTogQ29sdW1uVmlldzxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlVmlld1tyb3cuaWRdID8gdGhpcy50YWJsZVZpZXdbcm93LmlkXS5nZXQoY29sdW1uS2V5KSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGdldEFjdGlvbnNWaWV3KHJvdzogVGFibGVSb3c8VD4pOiBBY3Rpb248c3RyaW5nPltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGlvblZpZXcuZ2V0KHJvdy5pZCkgPyB0aGlzLmFjdGlvblZpZXcuZ2V0KHJvdy5pZCkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICByb3dDbGljayhyb3c6IFRhYmxlUm93PFQ+KSB7XHJcbiAgICBpZiAocm93LnJvd1NyYyAhPT0gdGhpcy5oaWdobGlnaHRlZCB8fCAocm93LnJvd1NyYyA9PT0gdGhpcy5oaWdobGlnaHRlZCAmJiAhdGhpcy50YWJsZUNvbmZpZy5jbGlja0NmZz8uY2FuY2VsYWJsZSkpIHtcclxuICAgICAgdGhpcy5vblJvd0NsaWNrLmVtaXQocm93LnJvd1NyYyk7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSByb3cucm93U3JjO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vblJvd0NsaWNrLmVtaXQodW5kZWZpbmVkKTtcclxuICAgICAgdGhpcy5oaWdobGlnaHRlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8g0J7RgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0L3QsNCx0LvRjtC00LXQvdC40LUg0L/RgNC4INGD0L3QuNGH0YLQvtC20LXQvdC40Lgg0LrQvtC80L/QvtC90LXQvdGC0LBcclxuICAgIHRoaXMucmVzaXplQ29sdW1uT2Zmc2V0c09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF1ci1tYXQtdGFibGVcIj5cclxuICA8bmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRmlsdGVyIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlQ29uZmlnLmZpbHRlckNmZ1wiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e3RhYmxlQ29uZmlnLmZpbHRlckNmZz8ubGFiZWx9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwiYXBwbHlGaWx0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3t0YWJsZUNvbmZpZy5maWx0ZXJDZmc/LnBsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIj5cclxuICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4PnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFRhYmxlIC0tPlxyXG4gICAgPHRhYmxlXHJcbiAgICAgICN0YWJsZVxyXG4gICAgICBtYXQtdGFibGVcclxuICAgICAgbWF0U29ydFxyXG4gICAgICBbZGF0YVNvdXJjZV09XCJ0YWJsZURhdGFTb3VyY2VcIlxyXG4gICAgICAobWF0U29ydENoYW5nZSk9XCJzb3J0VGFibGUoJGV2ZW50KVwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwidGFibGVDb25maWcudGFibGVWaWV3Py5oZWlnaHRcIlxyXG4gICAgICBbc3R5bGUubWF4LWhlaWdodF09XCJ0YWJsZUNvbmZpZy50YWJsZVZpZXc/Lm1heEhlaWdodFwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cInRhYmxlQ29uZmlnLnRhYmxlVmlldz8ubWluSGVpZ2h0XCJcclxuICAgID5cclxuXHJcbiAgICAgIDwhLS0gICAgICAgIGluZGV4LWNvbHVtbi0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5kZXhQcm92aWRlclwiIFttYXRDb2x1bW5EZWZdPVwiaW5kZXhQcm92aWRlci5DT0xVTU5fTkFNRVwiPlxyXG5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlldyBbY29uZmlnXT1cImluZGV4UHJvdmlkZXIuaGVhZGVyVmlld1wiPlxyXG4gICAgICAgICAgICB7e2luZGV4UHJvdmlkZXIubmFtZX19XHJcbiAgICAgICAgICA8L2xpYi1jb2x1bW4tdmlldz5cclxuICAgICAgICA8L3RoPlxyXG5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IHJvd0luZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgIHt7cm93SW5kZXggKyBpbmRleFByb3ZpZGVyLm9mZnNldH19XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tICAgICAgICBzZWxlY3Rpb24tY29sdW1uLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJzZWxlY3Rpb25Qcm92aWRlci5DT0xVTU5fTkFNRVwiICpuZ0lmPVwic2VsZWN0aW9uUHJvdmlkZXJcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2hhbmdlKT1cIiRldmVudCA/IG1hc3RlclRvZ2dsZSgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICFpc0FsbFNlbGVjdGVkKClcIj5cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24udG9nZ2xlKGNhc3RTcmMocm93KS5yb3dTcmMpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5pc1NlbGVjdGVkKGNhc3RTcmMocm93KS5yb3dTcmMpXCI+XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gYWN0aW9uIGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0FjdGlvbnNQcm92aWRlclwiIFttYXRDb2x1bW5EZWZdPVwicm93QWN0aW9uc1Byb3ZpZGVyLkNPTFVNTl9OQU1FXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW1pdFJvd0FjdGlvbihhY3Rpb24uYWN0aW9uLCBjYXN0U3JjKGVsZW1lbnQpLnJvd1NyYywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImFjdGlvbi5pY29uLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGdldEFjdGlvbnNWaWV3KGNhc3RTcmMoZWxlbWVudCkpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3R5bGUuY29sb3JdPVwiYWN0aW9uLmljb24uY29sb3JcIj5cclxuICAgICAgICAgICAgICB7e2FjdGlvbi5pY29uLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tICAgIHZhbHVlLWljb24tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uQ29uZmlnIG9mIHRhYmxlQ29uZmlnLmNvbHVtbnNDZmdcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbkNvbmZpZy5rZXlcIj5cclxuXHJcbiAgICAgICAgPCEtLSBpZiBzb3J0YWJsZSBjb2x1bW4gaGVhZGVyIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Db25maWcuc29ydDsgZWxzZSBub3RTb3J0YWJsZVwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbbWF0LXNvcnQtaGVhZGVyXT1cImNvbHVtbkNvbmZpZy5rZXlcIlxyXG4gICAgICAgICAgICAgIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbkNvbmZpZy5zb3J0LnBvc2l0aW9uID09PSAncmlnaHQnID8gJ2JlZm9yZScgOiAnYWZ0ZXInXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBlbHNlIG5vdCBzb3J0YWJsZSAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNvcnRhYmxlPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclZhbHVlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gICAgICBoZWFkZXIgdmFsdWUtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclZhbHVlPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlldyBbY29uZmlnXT1cImNvbHVtbkNvbmZpZy5oZWFkZXJWaWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbHVtbkNvbmZpZy5uYW1lXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gY29sdW1uIHZhbHVlINC/0L7Qu9GD0YfQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INC60L7Qu9C+0L3QvtC6INC90YPQttC90L4g0YfQtdGA0LXQtyBnZXRWaWV3KHJvd0luZGV4LCBjb2x1bW5Db25maWcua2V5KSDRgtCw0Lwg0L3QsNGF0L7QtNGP0YLRgdGPINGD0LbQtVxyXG4gICAgICAgINC/0L7QtNCz0L7RgtC+0LLQu9C10L3QvdGL0LUg0LfQvdCw0YfQtdC90LjRjyDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8tLT5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cclxuICAgICAgICAgIDxsaWItY29sdW1uLXZpZXdcclxuICAgICAgICAgICAgW2NvbmZpZ109XCJnZXRWaWV3KGVsZW1lbnQsIGNvbHVtbkNvbmZpZy5rZXkpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6IGNvbHVtbkNvbmZpZy5rZXlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9saWItY29sdW1uLXZpZXc+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnM7ICBzdGlja3k6IHRoaXMudGFibGVDb25maWcuc3RpY2t5Q2ZnPy5oZWFkZXJcIj48L3RyPlxyXG4gICAgICA8dHIgbWF0LXJvd1xyXG4gICAgICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKHJvdylcIlxyXG4gICAgICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsncG9pbnRlcic6IHRhYmxlQ29uZmlnLmNsaWNrQ2ZnPy5wb2ludGVyIHx8IGZhbHNlLCAnbmV3LWNvbG9yJzogaGlnaGxpZ2h0ZWQ9PT1yb3cucm93U3JjICYmIHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uY29sb3J9XCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICdjb2xvcic6IGhpZ2hsaWdodGVkPT09cm93LnJvd1NyYz8gdGFibGVDb25maWc/LmNsaWNrQ2ZnPy5oaWdobGlnaHRDbGlja2VkPy5jb2xvciA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogaGlnaGxpZ2h0ZWQgPT09IHJvdy5yb3dTcmM/IHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uYmFja2dyb3VuZCA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICdib3JkZXInOiBoaWdobGlnaHRlZCA9PT0gcm93LnJvd1NyYz8gdGFibGVDb25maWc/LmNsaWNrQ2ZnPy5oaWdobGlnaHRDbGlja2VkPy5ib3JkZXIgOiB1bmRlZmluZWRcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgI3Jvd0xpbmtcclxuICAgICAgPjwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG5cclxuICAgIDwhLS0gUGFnaW5hdGlvbiAtLT5cclxuICAgIDxtYXQtcGFnaW5hdG9yICpuZ0lmPVwicGFnaW5hdGlvblByb3ZpZGVyXCJcclxuICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnaW5hdGlvblByb3ZpZGVyLnNpemVzXCJcclxuICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uUHJvdmlkZXIuc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBzaG93Rmlyc3RMYXN0QnV0dG9ucz5cclxuICAgIDwvbWF0LXBhZ2luYXRvcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -375,7 +375,7 @@ class NgxAurMatTableComponent {
|
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
NgxAurMatTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
378
|
-
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData", highlight: "highlight" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick", onFilter: "onFilter", columnOffsets: "columnOffsets" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "rows", predicate: ["rowLink"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043D\u0443\u0436\u043D\u043E \u0447\u0435\u0440\u0435\u0437 getView(rowIndex, columnConfig.key) \u0442\u0430\u043C \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0443\u0436\u0435\r\n \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n", styles: [".aur-mat-table table{width:100%;border-collapse:collapse}.aur-mat-table th,td{padding:10px!important}.aur-mat-table .new-color td.mat-cell,.aur-mat-table .new-color td.mat-footer-cell{color:inherit}.aur-mat-table mat-form-field{width:100%}.aur-mat-table .text-right{text-align:right!important}.aur-mat-table .pointer:hover{background-color:#f2f2f2;cursor:pointer}\n"], components: [{ type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: ColumnViewComponent, selector: "lib-column-view", inputs: ["config", "value"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i3$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i3$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1$1.MatPrefix, selector: "[matPrefix]" }, { type: i7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i3$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i3$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i3$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3$1.MatCellDef, selector: "[matCellDef]" }, { type: i3$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i3$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "dataPropertyGetter": DataPropertyGetterPipe } });
|
|
378
|
+
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData", highlight: "highlight" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick", onFilter: "onFilter", columnOffsets: "columnOffsets" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "rows", predicate: ["rowLink"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043D\u0443\u0436\u043D\u043E \u0447\u0435\u0440\u0435\u0437 getView(rowIndex, columnConfig.key) \u0442\u0430\u043C \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0443\u0436\u0435\r\n \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n", styles: [".aur-mat-table table{width:100%;border-collapse:collapse}.aur-mat-table th,td{padding:10px!important}.aur-mat-table .new-color td.mat-cell,.aur-mat-table .new-color td.mat-footer-cell{color:inherit}.aur-mat-table mat-form-field{width:100%}.aur-mat-table .text-right{text-align:right!important}.aur-mat-table .pointer:hover{background-color:#f2f2f2;cursor:pointer}\n"], components: [{ type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: ColumnViewComponent, selector: "lib-column-view", inputs: ["config", "value"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i3$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i3$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1$1.MatSuffix, selector: "[matSuffix]" }, { type: i7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i3$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i3$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i3$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i3$1.MatCellDef, selector: "[matCellDef]" }, { type: i3$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i3$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "dataPropertyGetter": DataPropertyGetterPipe } });
|
|
379
379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, decorators: [{
|
|
380
380
|
type: Component,
|
|
381
381
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-aur-mat-table.js","sources":["../../../projects/ngx-aur-mat-table/src/lib/providers/SelectionProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/RowActionProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableViewConverter.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/IndexProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/model/TableRow.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableDataProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/PaginationProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.html","../../../projects/ngx-aur-mat-table/src/lib/data-property-getter-pipe/data-property-getter.pipe.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.html","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.module.ts","../../../projects/ngx-aur-mat-table/src/public-api.ts","../../../projects/ngx-aur-mat-table/src/ngx-aur-mat-table.ts"],"sourcesContent":["import {SelectionModel} from '@angular/cdk/collections';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {EventEmitter} from '@angular/core';\r\nimport {TableRow} from \"../model/TableRow\";\r\nimport {SelectionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class SelectionProvider<T> {\r\n\r\n public readonly COLUMN_NAME = 'tbl_selects';\r\n selection: SelectionModel<T>;\r\n config: SelectionConfig;\r\n tableDataSource: MatTableDataSource<TableRow<T>>;\r\n\r\n constructor(ctx: SelectionConfig, columns: string[], tableDataSource: MatTableDataSource<TableRow<T>>) {\r\n this.config = ctx;\r\n this.selection = new SelectionModel<T>(ctx.multiple, []);\r\n this.tableDataSource = tableDataSource;\r\n this.initCheckboxColumn(columns);\r\n }\r\n\r\n initCheckboxColumn(columns: string[]) {\r\n if (this.config.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n bind(selected: EventEmitter<T[]>, onSelect: EventEmitter<T[]>, onDeselect: EventEmitter<T[]>) {\r\n this.selection.changed\r\n .subscribe(event => {\r\n if (event.added) {\r\n onSelect.emit(event.added);\r\n }\r\n if (event.removed) {\r\n onDeselect.emit(event.removed);\r\n }\r\n selected.emit(this.selection.selected);\r\n });\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.tableDataSource.data.forEach(row => this.selection.select(row.rowSrc));\r\n }\r\n\r\n isAllSelected(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.tableDataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n}\r\n","import {Action, ActionConfig, IconView} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n\r\n constructor(ctx: ActionConfig<any>, columns: string[]) {\r\n if (ctx.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n /**\r\n * Convert rows and actions to a view format.\r\n * @param rows - The data rows to be converted.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Map of row IDs to their associated action views.\r\n */\r\n public toView<T>(rows: TableRow<T>[], actionConfig: ActionConfig<T>): Map<number, Action<string>[]> {\r\n const result = new Map<number, Action<string>[]>();\r\n for (const row of rows) {\r\n result.set(row.id, this.prepareActionsForRow(row, actionConfig));\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Prepare the actions for a specific row based on the action configuration.\r\n * @param row - The data row for which actions need to be prepared.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Array of actions for the row.\r\n */\r\n private prepareActionsForRow<T>(row: TableRow<T>, actionConfig: ActionConfig<T>): Action<string>[] {\r\n return actionConfig.actions.map(action => {\r\n const actionPrepared = action.action(row.rowSrc);\r\n const iconPrepared: IconView<string> = <IconView<string>> this.iconConfig(action.icon, row.rowSrc);\r\n return { action: actionPrepared, icon: iconPrepared };\r\n });\r\n }\r\n\r\n private iconConfig<T>(iconSource: IconView<(value: T) => string>, value: T): IconView<string> {\r\n return {\r\n name: iconSource.name(value),\r\n color: iconSource.color ? iconSource.color(value) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(value) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(value)}: undefined\r\n }\r\n }\r\n}\r\n","import {TableRow} from \"../model/TableRow\";\r\nimport {ColumnView, IconView, TextView, TableConfig, ImageView} from \"../model/ColumnConfig\";\r\n\r\nexport class TableViewConverter {\r\n\r\n public static toView<T>(rows: TableRow<T>[], tableConfig: TableConfig<T>): Map<string, ColumnView<string>>[] {\r\n const result: Map<string, ColumnView<(value: TableRow<T>) => string>> = new Map();\r\n tableConfig.columnsCfg.forEach(c => {\r\n if (c.valueView) {\r\n result.set(c.key, c.valueView)\r\n }\r\n })\r\n return this.toViewInternal(rows, result);\r\n }\r\n\r\n private static toViewInternal<T>(rows: TableRow<T>[], source: Map<string, ColumnView<(value: TableRow<T>) => string>>): Map<string, ColumnView<string>>[] {\r\n return rows.map(row => this.columnConfig(source, row));\r\n }\r\n\r\n private static columnConfig<T>(source: Map<string, ColumnView<(value: TableRow<T>) => string>>, row: TableRow<T>): Map<string, ColumnView<string>> {\r\n const result: Map<string, ColumnView<string>> = new Map();\r\n source.forEach((source, key) => {\r\n const value: ColumnView<string> = {\r\n icon: this.iconConfig(source.icon, row),\r\n text: this.textConfig(source.text, row),\r\n image: this.imageConfig(source.image, row),\r\n }\r\n result.set(key, value)\r\n });\r\n return result;\r\n }\r\n\r\n private static iconConfig<T>(iconSource: IconView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): IconView<string> | undefined {\r\n if (!iconSource) {\r\n return undefined;\r\n }\r\n return {\r\n name: iconSource.name(row),\r\n color: iconSource.color ? iconSource.color(row) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(row) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(row)}: undefined\r\n }\r\n }\r\n\r\n private static textConfig<T>(textSource: TextView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): TextView<string> | undefined {\r\n if (!textSource) {\r\n return undefined;\r\n }\r\n return {\r\n show: textSource.show,\r\n tooltip: textSource.tooltip ? textSource.tooltip(row) : undefined,\r\n color: textSource.color ? textSource.color(row) : undefined,\r\n }\r\n }\r\n\r\n private static imageConfig<T>(imageSource: ImageView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): ImageView<string> | undefined {\r\n if (!imageSource) {\r\n return undefined;\r\n }\r\n return {\r\n src: imageSource.src(row),\r\n width: imageSource.width || undefined,\r\n height: imageSource.height || undefined\r\n }\r\n }\r\n}\r\n","import {ColumnView, IndexConfig} from \"../model/ColumnConfig\";\r\n\r\n\r\nexport class IndexProvider {\r\n public readonly COLUMN_NAME = 'tbl_index';\r\n public headerView: ColumnView<string> | undefined;\r\n public name: string;\r\n\r\n public offset: number;\r\n\r\n constructor(indexConfig: IndexConfig, columns: string[]) {\r\n if (indexConfig) {\r\n columns.unshift(this.COLUMN_NAME);\r\n }\r\n this.headerView = indexConfig.headerColumn;\r\n this.name = indexConfig.name || '';\r\n this.offset = indexConfig.offset || 0;\r\n }\r\n}\r\n","export class TableRow<T> {\r\n id: number;\r\n rowSrc: T;\r\n\r\n [key: string]: any;\r\n\r\n constructor(id: number, rowSrc: T) {\r\n this.rowSrc = rowSrc;\r\n this.id = id;\r\n }\r\n}\r\n","import {ColumnConfig} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport class TableDataProvider<T> {\r\n\r\n public convert(data: T[], config: ColumnConfig<T>[]): TableRow<T>[] {\r\n let id = 0;\r\n return data.map(d => this.tableRow(id++, d, config));\r\n }\r\n\r\n private tableRow(id: number, obj: T, config: ColumnConfig<T>[]): TableRow<T> {\r\n const row = new TableRow<T>(id, obj);\r\n config.forEach(c => row[c.key] = c.valueConverter(obj));\r\n return row;\r\n }\r\n}\r\n","import {PaginationConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class PaginationProvider {\r\n\r\n public sizes: number[];\r\n public size;\r\n\r\n constructor(config: PaginationConfig) {\r\n this.sizes = config.sizes || [5, 10, 15, 25, 50]\r\n this.size = config.size || this.sizes[1];\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ColumnView} from \"../../model/ColumnConfig\";\n\n@Component({\n selector: 'lib-column-view',\n templateUrl: './column-view.component.html',\n styleUrls: ['./column-view.component.css']\n})\nexport class ColumnViewComponent {\n @Input() config: ColumnView<string> | undefined;\n @Input() value: any;\n}\n","<div class=\"align-container\">\n <div [ngClass]=\"{'circle': config?.icon?.wrapper}\"\n [style.background-color]=\"config?.icon?.wrapper?.color\"\n >\n <mat-icon *ngIf=\"config?.icon\"\n [matTooltip]=\"config?.icon?.tooltip?.toString() || ''\"\n [style.color]=\"config?.icon?.color\"\n >\n {{config?.icon?.name}}\n </mat-icon>\n </div>\n\n <img\n *ngIf=\"config?.image?.src\"\n [src]=\"config?.image?.src\"\n [style.height]=\"config?.image?.height\"\n [style.width]=\"config?.image?.width\"\n alt=\"img\"\n >\n\n <span *ngIf=\"config?.text?.show != false\"\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\"\n >\n {{value}}\n </span>\n</div>\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dataPropertyGetter'\r\n})\r\nexport class DataPropertyGetterPipe implements PipeTransform {\r\n\r\n transform(object: any, keyName: string, ...args: unknown[]): unknown {\r\n return object[keyName];\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {ColumnView, ColumnConfig, TableConfig, ActionConfig, Action} from './model/ColumnConfig';\r\nimport {MatSort, Sort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {SelectionProvider} from './providers/SelectionProvider';\r\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\r\nimport {TableRow} from \"./model/TableRow\";\r\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\r\nimport {IndexProvider} from \"./providers/IndexProvider\";\r\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\r\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\r\n\r\nexport interface HighlightContainer<T> {\r\n value: any;\r\n}\r\n\r\nexport interface ColumnOffset {\r\n left: number,\r\n width: number\r\n}\r\n\r\n@Component({\r\n selector: 'aur-mat-table',\r\n templateUrl: './ngx-aur-mat-table.component.html',\r\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\r\n})\r\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n\r\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\r\n public displayedColumns: string[] = [];\r\n\r\n private tableView: Map<string, ColumnView<string>>[] = [];\r\n\r\n // number rowId\r\n private actionView: Map<number, Action<string>[]> = new Map();\r\n\r\n // @ts-ignore\r\n @ViewChildren('rowLink', {read: ElementRef}) rows: QueryList<ElementRef>;\r\n // @ts-ignore\r\n @ViewChild('table', {read: ElementRef}) table: ElementRef;\r\n\r\n // @ts-ignore\r\n @Input() tableConfig: TableConfig<T>;\r\n\r\n @Input() tableData: T[] = [];\r\n\r\n // @ts-ignore\r\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\r\n // @ts-ignore\r\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\r\n\r\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\r\n\r\n // events if enabled actions\r\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\r\n // -----------------------\r\n\r\n // events if enabled select event\r\n @Output() selected = new EventEmitter<T[]>();\r\n @Output() onSelect = new EventEmitter<T[]>();\r\n @Output() onDeselect = new EventEmitter<T[]>();\r\n //------------------------\r\n\r\n\r\n @Output() onRowClick = new EventEmitter<T>();\r\n\r\n /**\r\n * return filtered rows\r\n */\r\n @Output() onFilter = new EventEmitter<T[]>();\r\n\r\n @Output() columnOffsets = new EventEmitter<ColumnOffset[]>();\r\n\r\n // @ts-ignore\r\n private resizeColumnOffsetsObserver: ResizeObserver;\r\n\r\n // @ts-ignore\r\n selectionProvider: SelectionProvider<T>;\r\n // @ts-ignore\r\n rowActionsProvider: RowActionProvider;\r\n\r\n // @ts-ignore\r\n indexProvider: IndexProvider;\r\n\r\n // @ts-ignore\r\n paginationProvider: PaginationProvider;\r\n\r\n tableDataProvider = new TableDataProvider<T>();\r\n\r\n highlighted: T | undefined;\r\n\r\n //значение передается в контейнере иначе OnChange не видит изменений когда передаются одинаковые значение и подсветка строки не отключается\r\n // @ts-ignore\r\n @Input() highlight: HighlightContainer<T> | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['tableData'] && this.tableData) {\r\n this.prepare();\r\n }\r\n if (changes['highlight'] && this.highlight) {\r\n this.doExternalHighlightRow(this.highlight);\r\n }\r\n }\r\n\r\n private doExternalHighlightRow(h: HighlightContainer<T>) {\r\n if (this.highlighted === h.value) {\r\n this.highlight = undefined;\r\n this.highlighted = undefined;\r\n } else {\r\n this.highlighted = h.value;\r\n const index = this.tableDataSource.data.findIndex(row => row.rowSrc === h.value);\r\n if (index >= 0) {\r\n this.rows?.toArray()[index]?.nativeElement.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n inline: \"center\"\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.tableConfig) {\r\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\r\n }\r\n }\r\n\r\n // we need this, in order to make pagination work with *ngIf\r\n ngAfterViewInit(): void {\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.updateColumnOffsets();\r\n this.resizeColumnOffsetsObserver = new ResizeObserver(() => this.updateColumnOffsets());\r\n this.resizeColumnOffsetsObserver.observe(this.table.nativeElement);\r\n }\r\n\r\n private updateColumnOffsets() {\r\n const offsets: ColumnOffset[] = Array.from(this.table.nativeElement.querySelectorAll('th'))\r\n .map(c => (c as HTMLElement))\r\n .map(c => ({left: c.offsetLeft, width: c.offsetWidth}))\r\n this.columnOffsets.emit(offsets);\r\n }\r\n\r\n private prepare() {\r\n this.setTableDataSource();\r\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\r\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\r\n\r\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\r\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\r\n }\r\n if (this.tableConfig.actionCfg && (this.tableConfig.actionCfg.enable === undefined || this.tableConfig.actionCfg.enable === null || this.tableConfig.actionCfg.enable)) {\r\n this.rowActionsProvider = new RowActionProvider(this.tableConfig.actionCfg, this.displayedColumns);\r\n this.actionView = this.rowActionsProvider.toView(this.tableDataSource.data, this.tableConfig.actionCfg)\r\n }\r\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\r\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\r\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\r\n }\r\n if (this.tableConfig.pageableCfg) {\r\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\r\n }\r\n }\r\n\r\n private setTableDataSource() {\r\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\r\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.tableDataSource.sort = this.matSort;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\r\n this.onFilter.emit(this.tableDataSource.filteredData.map(f => f.rowSrc))\r\n }\r\n\r\n sortTable(sortParameters: Sort) {\r\n this.sort.emit(sortParameters);\r\n }\r\n\r\n emitRowAction(action: string, row: T, $event: MouseEvent) {\r\n $event.stopPropagation();\r\n this.onRowAction.emit({action, value: row});\r\n }\r\n\r\n masterToggle() {\r\n this.selectionProvider.masterToggle();\r\n }\r\n\r\n isAllSelected(): boolean {\r\n return this.selectionProvider.isAllSelected();\r\n }\r\n\r\n castSrc(row: any): TableRow<T> {\r\n return row;\r\n }\r\n\r\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\r\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\r\n }\r\n\r\n getActionsView(row: TableRow<T>): Action<string>[] | undefined {\r\n return this.actionView.get(row.id) ? this.actionView.get(row.id) : undefined;\r\n }\r\n\r\n rowClick(row: TableRow<T>) {\r\n if (row.rowSrc !== this.highlighted || (row.rowSrc === this.highlighted && !this.tableConfig.clickCfg?.cancelable)) {\r\n this.onRowClick.emit(row.rowSrc);\r\n this.highlighted = row.rowSrc;\r\n } else {\r\n this.onRowClick.emit(undefined);\r\n this.highlighted = undefined;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // Останавливаем наблюдение при уничтожении компонента\r\n this.resizeColumnOffsetsObserver.disconnect();\r\n }\r\n}\r\n","<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value получать настройки колонок нужно через getView(rowIndex, columnConfig.key) там находятся уже\r\n подготовленные значения для использования-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\nimport {MatTableModule} from \"@angular/material/table\";\r\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\r\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe,\r\n ColumnViewComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatSortModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule\r\n ],\r\n exports: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe\r\n ]\r\n})\r\nexport class NgxAurMatTableModule {\r\n}\r\n","/*\n * Public API Surface of ngx-aur-mat-table\n */\n\nexport * from './lib/ngx-aur-mat-table.component';\nexport * from './lib/ngx-aur-mat-table.module';\nexport * from './lib/data-property-getter-pipe/data-property-getter.pipe';\nexport * from './lib/model/TableRow'\nexport * from './lib/model/ColumnConfig'\nexport * from './lib/providers/RowActionProvider'\nexport * from './lib/providers/SelectionProvider'\nexport * from './lib/providers/IndexProvider'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i4.ColumnViewComponent","i11","i12.DataPropertyGetterPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-aur-mat-table.js","sources":["../../../projects/ngx-aur-mat-table/src/lib/providers/SelectionProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/RowActionProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableViewConverter.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/IndexProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/model/TableRow.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/TableDataProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/providers/PaginationProvider.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.ts","../../../projects/ngx-aur-mat-table/src/lib/components/column-value/column-view.component.html","../../../projects/ngx-aur-mat-table/src/lib/data-property-getter-pipe/data-property-getter.pipe.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.ts","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.component.html","../../../projects/ngx-aur-mat-table/src/lib/ngx-aur-mat-table.module.ts","../../../projects/ngx-aur-mat-table/src/public-api.ts","../../../projects/ngx-aur-mat-table/src/ngx-aur-mat-table.ts"],"sourcesContent":["import {SelectionModel} from '@angular/cdk/collections';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {EventEmitter} from '@angular/core';\r\nimport {TableRow} from \"../model/TableRow\";\r\nimport {SelectionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class SelectionProvider<T> {\r\n\r\n public readonly COLUMN_NAME = 'tbl_selects';\r\n selection: SelectionModel<T>;\r\n config: SelectionConfig;\r\n tableDataSource: MatTableDataSource<TableRow<T>>;\r\n\r\n constructor(ctx: SelectionConfig, columns: string[], tableDataSource: MatTableDataSource<TableRow<T>>) {\r\n this.config = ctx;\r\n this.selection = new SelectionModel<T>(ctx.multiple, []);\r\n this.tableDataSource = tableDataSource;\r\n this.initCheckboxColumn(columns);\r\n }\r\n\r\n initCheckboxColumn(columns: string[]) {\r\n if (this.config.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n bind(selected: EventEmitter<T[]>, onSelect: EventEmitter<T[]>, onDeselect: EventEmitter<T[]>) {\r\n this.selection.changed\r\n .subscribe(event => {\r\n if (event.added) {\r\n onSelect.emit(event.added);\r\n }\r\n if (event.removed) {\r\n onDeselect.emit(event.removed);\r\n }\r\n selected.emit(this.selection.selected);\r\n });\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.tableDataSource.data.forEach(row => this.selection.select(row.rowSrc));\r\n }\r\n\r\n isAllSelected(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.tableDataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n}\r\n","import {Action, ActionConfig, IconView} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n\r\n constructor(ctx: ActionConfig<any>, columns: string[]) {\r\n if (ctx.position === 'start') {\r\n columns.unshift(this.COLUMN_NAME);\r\n } else {\r\n columns.push(this.COLUMN_NAME);\r\n }\r\n }\r\n\r\n /**\r\n * Convert rows and actions to a view format.\r\n * @param rows - The data rows to be converted.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Map of row IDs to their associated action views.\r\n */\r\n public toView<T>(rows: TableRow<T>[], actionConfig: ActionConfig<T>): Map<number, Action<string>[]> {\r\n const result = new Map<number, Action<string>[]>();\r\n for (const row of rows) {\r\n result.set(row.id, this.prepareActionsForRow(row, actionConfig));\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Prepare the actions for a specific row based on the action configuration.\r\n * @param row - The data row for which actions need to be prepared.\r\n * @param actionConfig - Configuration for actions on rows.\r\n * @return Array of actions for the row.\r\n */\r\n private prepareActionsForRow<T>(row: TableRow<T>, actionConfig: ActionConfig<T>): Action<string>[] {\r\n return actionConfig.actions.map(action => {\r\n const actionPrepared = action.action(row.rowSrc);\r\n const iconPrepared: IconView<string> = <IconView<string>> this.iconConfig(action.icon, row.rowSrc);\r\n return { action: actionPrepared, icon: iconPrepared };\r\n });\r\n }\r\n\r\n private iconConfig<T>(iconSource: IconView<(value: T) => string>, value: T): IconView<string> {\r\n return {\r\n name: iconSource.name(value),\r\n color: iconSource.color ? iconSource.color(value) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(value) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(value)}: undefined\r\n }\r\n }\r\n}\r\n","import {TableRow} from \"../model/TableRow\";\r\nimport {ColumnView, IconView, TextView, TableConfig, ImageView} from \"../model/ColumnConfig\";\r\n\r\nexport class TableViewConverter {\r\n\r\n public static toView<T>(rows: TableRow<T>[], tableConfig: TableConfig<T>): Map<string, ColumnView<string>>[] {\r\n const result: Map<string, ColumnView<(value: TableRow<T>) => string>> = new Map();\r\n tableConfig.columnsCfg.forEach(c => {\r\n if (c.valueView) {\r\n result.set(c.key, c.valueView)\r\n }\r\n })\r\n return this.toViewInternal(rows, result);\r\n }\r\n\r\n private static toViewInternal<T>(rows: TableRow<T>[], source: Map<string, ColumnView<(value: TableRow<T>) => string>>): Map<string, ColumnView<string>>[] {\r\n return rows.map(row => this.columnConfig(source, row));\r\n }\r\n\r\n private static columnConfig<T>(source: Map<string, ColumnView<(value: TableRow<T>) => string>>, row: TableRow<T>): Map<string, ColumnView<string>> {\r\n const result: Map<string, ColumnView<string>> = new Map();\r\n source.forEach((source, key) => {\r\n const value: ColumnView<string> = {\r\n icon: this.iconConfig(source.icon, row),\r\n text: this.textConfig(source.text, row),\r\n image: this.imageConfig(source.image, row),\r\n }\r\n result.set(key, value)\r\n });\r\n return result;\r\n }\r\n\r\n private static iconConfig<T>(iconSource: IconView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): IconView<string> | undefined {\r\n if (!iconSource) {\r\n return undefined;\r\n }\r\n return {\r\n name: iconSource.name(row),\r\n color: iconSource.color ? iconSource.color(row) : undefined,\r\n tooltip: iconSource.tooltip ? iconSource.tooltip(row) : undefined,\r\n position: iconSource.position,\r\n wrapper: iconSource.wrapper? {color: iconSource.wrapper.color(row)}: undefined\r\n }\r\n }\r\n\r\n private static textConfig<T>(textSource: TextView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): TextView<string> | undefined {\r\n if (!textSource) {\r\n return undefined;\r\n }\r\n return {\r\n show: textSource.show,\r\n tooltip: textSource.tooltip ? textSource.tooltip(row) : undefined,\r\n color: textSource.color ? textSource.color(row) : undefined,\r\n }\r\n }\r\n\r\n private static imageConfig<T>(imageSource: ImageView<(value: TableRow<T>) => string> | undefined, row: TableRow<T>): ImageView<string> | undefined {\r\n if (!imageSource) {\r\n return undefined;\r\n }\r\n return {\r\n src: imageSource.src(row),\r\n width: imageSource.width || undefined,\r\n height: imageSource.height || undefined\r\n }\r\n }\r\n}\r\n","import {ColumnView, IndexConfig} from \"../model/ColumnConfig\";\r\n\r\n\r\nexport class IndexProvider {\r\n public readonly COLUMN_NAME = 'tbl_index';\r\n public headerView: ColumnView<string> | undefined;\r\n public name: string;\r\n\r\n public offset: number;\r\n\r\n constructor(indexConfig: IndexConfig, columns: string[]) {\r\n if (indexConfig) {\r\n columns.unshift(this.COLUMN_NAME);\r\n }\r\n this.headerView = indexConfig.headerColumn;\r\n this.name = indexConfig.name || '';\r\n this.offset = indexConfig.offset || 0;\r\n }\r\n}\r\n","export class TableRow<T> {\r\n id: number;\r\n rowSrc: T;\r\n\r\n [key: string]: any;\r\n\r\n constructor(id: number, rowSrc: T) {\r\n this.rowSrc = rowSrc;\r\n this.id = id;\r\n }\r\n}\r\n","import {ColumnConfig} from \"../model/ColumnConfig\";\r\nimport {TableRow} from \"../model/TableRow\";\r\n\r\nexport class TableDataProvider<T> {\r\n\r\n public convert(data: T[], config: ColumnConfig<T>[]): TableRow<T>[] {\r\n let id = 0;\r\n return data.map(d => this.tableRow(id++, d, config));\r\n }\r\n\r\n private tableRow(id: number, obj: T, config: ColumnConfig<T>[]): TableRow<T> {\r\n const row = new TableRow<T>(id, obj);\r\n config.forEach(c => row[c.key] = c.valueConverter(obj));\r\n return row;\r\n }\r\n}\r\n","import {PaginationConfig} from \"../model/ColumnConfig\";\r\n\r\nexport class PaginationProvider {\r\n\r\n public sizes: number[];\r\n public size;\r\n\r\n constructor(config: PaginationConfig) {\r\n this.sizes = config.sizes || [5, 10, 15, 25, 50]\r\n this.size = config.size || this.sizes[1];\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ColumnView} from \"../../model/ColumnConfig\";\n\n@Component({\n selector: 'lib-column-view',\n templateUrl: './column-view.component.html',\n styleUrls: ['./column-view.component.css']\n})\nexport class ColumnViewComponent {\n @Input() config: ColumnView<string> | undefined;\n @Input() value: any;\n}\n","<div class=\"align-container\">\n <div [ngClass]=\"{'circle': config?.icon?.wrapper}\"\n [style.background-color]=\"config?.icon?.wrapper?.color\"\n >\n <mat-icon *ngIf=\"config?.icon\"\n [matTooltip]=\"config?.icon?.tooltip?.toString() || ''\"\n [style.color]=\"config?.icon?.color\"\n >\n {{config?.icon?.name}}\n </mat-icon>\n </div>\n\n <img\n *ngIf=\"config?.image?.src\"\n [src]=\"config?.image?.src\"\n [style.height]=\"config?.image?.height\"\n [style.width]=\"config?.image?.width\"\n alt=\"img\"\n >\n\n <span *ngIf=\"config?.text?.show != false\"\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\"\n >\n {{value}}\n </span>\n</div>\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dataPropertyGetter'\r\n})\r\nexport class DataPropertyGetterPipe implements PipeTransform {\r\n\r\n transform(object: any, keyName: string, ...args: unknown[]): unknown {\r\n return object[keyName];\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {ColumnView, ColumnConfig, TableConfig, ActionConfig, Action} from './model/ColumnConfig';\r\nimport {MatSort, Sort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {SelectionProvider} from './providers/SelectionProvider';\r\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\r\nimport {TableRow} from \"./model/TableRow\";\r\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\r\nimport {IndexProvider} from \"./providers/IndexProvider\";\r\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\r\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\r\n\r\nexport interface HighlightContainer<T> {\r\n value: any;\r\n}\r\n\r\nexport interface ColumnOffset {\r\n left: number,\r\n width: number\r\n}\r\n\r\n@Component({\r\n selector: 'aur-mat-table',\r\n templateUrl: './ngx-aur-mat-table.component.html',\r\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\r\n})\r\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n\r\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\r\n public displayedColumns: string[] = [];\r\n\r\n private tableView: Map<string, ColumnView<string>>[] = [];\r\n\r\n // number rowId\r\n private actionView: Map<number, Action<string>[]> = new Map();\r\n\r\n // @ts-ignore\r\n @ViewChildren('rowLink', {read: ElementRef}) rows: QueryList<ElementRef>;\r\n // @ts-ignore\r\n @ViewChild('table', {read: ElementRef}) table: ElementRef;\r\n\r\n // @ts-ignore\r\n @Input() tableConfig: TableConfig<T>;\r\n\r\n @Input() tableData: T[] = [];\r\n\r\n // @ts-ignore\r\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\r\n // @ts-ignore\r\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\r\n\r\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\r\n\r\n // events if enabled actions\r\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\r\n // -----------------------\r\n\r\n // events if enabled select event\r\n @Output() selected = new EventEmitter<T[]>();\r\n @Output() onSelect = new EventEmitter<T[]>();\r\n @Output() onDeselect = new EventEmitter<T[]>();\r\n //------------------------\r\n\r\n\r\n @Output() onRowClick = new EventEmitter<T>();\r\n\r\n /**\r\n * return filtered rows\r\n */\r\n @Output() onFilter = new EventEmitter<T[]>();\r\n\r\n @Output() columnOffsets = new EventEmitter<ColumnOffset[]>();\r\n\r\n // @ts-ignore\r\n private resizeColumnOffsetsObserver: ResizeObserver;\r\n\r\n // @ts-ignore\r\n selectionProvider: SelectionProvider<T>;\r\n // @ts-ignore\r\n rowActionsProvider: RowActionProvider;\r\n\r\n // @ts-ignore\r\n indexProvider: IndexProvider;\r\n\r\n // @ts-ignore\r\n paginationProvider: PaginationProvider;\r\n\r\n tableDataProvider = new TableDataProvider<T>();\r\n\r\n highlighted: T | undefined;\r\n\r\n //значение передается в контейнере иначе OnChange не видит изменений когда передаются одинаковые значение и подсветка строки не отключается\r\n // @ts-ignore\r\n @Input() highlight: HighlightContainer<T> | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['tableData'] && this.tableData) {\r\n this.prepare();\r\n }\r\n if (changes['highlight'] && this.highlight) {\r\n this.doExternalHighlightRow(this.highlight);\r\n }\r\n }\r\n\r\n private doExternalHighlightRow(h: HighlightContainer<T>) {\r\n if (this.highlighted === h.value) {\r\n this.highlight = undefined;\r\n this.highlighted = undefined;\r\n } else {\r\n this.highlighted = h.value;\r\n const index = this.tableDataSource.data.findIndex(row => row.rowSrc === h.value);\r\n if (index >= 0) {\r\n this.rows?.toArray()[index]?.nativeElement.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n inline: \"center\"\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.tableConfig) {\r\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\r\n }\r\n }\r\n\r\n // we need this, in order to make pagination work with *ngIf\r\n ngAfterViewInit(): void {\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.updateColumnOffsets();\r\n this.resizeColumnOffsetsObserver = new ResizeObserver(() => this.updateColumnOffsets());\r\n this.resizeColumnOffsetsObserver.observe(this.table.nativeElement);\r\n }\r\n\r\n private updateColumnOffsets() {\r\n const offsets: ColumnOffset[] = Array.from(this.table.nativeElement.querySelectorAll('th'))\r\n .map(c => (c as HTMLElement))\r\n .map(c => ({left: c.offsetLeft, width: c.offsetWidth}))\r\n this.columnOffsets.emit(offsets);\r\n }\r\n\r\n private prepare() {\r\n this.setTableDataSource();\r\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\r\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\r\n\r\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\r\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\r\n }\r\n if (this.tableConfig.actionCfg && (this.tableConfig.actionCfg.enable === undefined || this.tableConfig.actionCfg.enable === null || this.tableConfig.actionCfg.enable)) {\r\n this.rowActionsProvider = new RowActionProvider(this.tableConfig.actionCfg, this.displayedColumns);\r\n this.actionView = this.rowActionsProvider.toView(this.tableDataSource.data, this.tableConfig.actionCfg)\r\n }\r\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\r\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\r\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\r\n }\r\n if (this.tableConfig.pageableCfg) {\r\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\r\n }\r\n }\r\n\r\n private setTableDataSource() {\r\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\r\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\r\n this.tableDataSource.paginator = this.matPaginator;\r\n this.tableDataSource.sort = this.matSort;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\r\n this.onFilter.emit(this.tableDataSource.filteredData.map(f => f.rowSrc))\r\n }\r\n\r\n sortTable(sortParameters: Sort) {\r\n this.sort.emit(sortParameters);\r\n }\r\n\r\n emitRowAction(action: string, row: T, $event: MouseEvent) {\r\n $event.stopPropagation();\r\n this.onRowAction.emit({action, value: row});\r\n }\r\n\r\n masterToggle() {\r\n this.selectionProvider.masterToggle();\r\n }\r\n\r\n isAllSelected(): boolean {\r\n return this.selectionProvider.isAllSelected();\r\n }\r\n\r\n castSrc(row: any): TableRow<T> {\r\n return row;\r\n }\r\n\r\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\r\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\r\n }\r\n\r\n getActionsView(row: TableRow<T>): Action<string>[] | undefined {\r\n return this.actionView.get(row.id) ? this.actionView.get(row.id) : undefined;\r\n }\r\n\r\n rowClick(row: TableRow<T>) {\r\n if (row.rowSrc !== this.highlighted || (row.rowSrc === this.highlighted && !this.tableConfig.clickCfg?.cancelable)) {\r\n this.onRowClick.emit(row.rowSrc);\r\n this.highlighted = row.rowSrc;\r\n } else {\r\n this.onRowClick.emit(undefined);\r\n this.highlighted = undefined;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // Останавливаем наблюдение при уничтожении компонента\r\n this.resizeColumnOffsetsObserver.disconnect();\r\n }\r\n}\r\n","<div class=\"aur-mat-table\">\r\n <ng-container>\r\n\r\n <!-- Filter -->\r\n <ng-container *ngIf=\"tableConfig.filterCfg\">\r\n <mat-form-field>\r\n <mat-label>{{tableConfig.filterCfg?.label}}</mat-label>\r\n <input matInput (keyup)=\"applyFilter($event)\"\r\n placeholder=\"{{tableConfig.filterCfg?.placeholder}}\"\r\n style=\"font-size: 18px;\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Table -->\r\n <table\r\n #table\r\n mat-table\r\n matSort\r\n [dataSource]=\"tableDataSource\"\r\n (matSortChange)=\"sortTable($event)\"\r\n [style.height]=\"tableConfig.tableView?.height\"\r\n [style.max-height]=\"tableConfig.tableView?.maxHeight\"\r\n [style.min-height]=\"tableConfig.tableView?.minHeight\"\r\n >\r\n\r\n <!-- index-column-->\r\n <ng-container *ngIf=\"indexProvider\" [matColumnDef]=\"indexProvider.COLUMN_NAME\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n <lib-column-view [config]=\"indexProvider.headerView\">\r\n {{indexProvider.name}}\r\n </lib-column-view>\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let rowIndex = index\">\r\n {{rowIndex + indexProvider.offset}}\r\n </td>\r\n </ng-container>\r\n\r\n <!-- selection-column-->\r\n <ng-container [matColumnDef]=\"selectionProvider.COLUMN_NAME\" *ngIf=\"selectionProvider\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selectionProvider.selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selectionProvider.selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selectionProvider.selection.toggle(castSrc(row).rowSrc) : null\"\r\n [checked]=\"selectionProvider.selection.isSelected(castSrc(row).rowSrc)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- action column -->\r\n <ng-container *ngIf=\"rowActionsProvider\" [matColumnDef]=\"rowActionsProvider.COLUMN_NAME\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button\r\n (click)=\"emitRowAction(action.action, castSrc(element).rowSrc, $event)\"\r\n [matTooltip]=\"action.icon.tooltip || ''\"\r\n *ngFor=\"let action of getActionsView(castSrc(element))\">\r\n <mat-icon [style.color]=\"action.icon.color\">\r\n {{action.icon.name}}\r\n </mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- value-icon-->\r\n <ng-container *ngFor=\"let columnConfig of tableConfig.columnsCfg\" [matColumnDef]=\"columnConfig.key\">\r\n\r\n <!-- if sortable column header -->\r\n <ng-container *ngIf=\"columnConfig.sort; else notSortable\">\r\n <th mat-header-cell *matHeaderCellDef [mat-sort-header]=\"columnConfig.key\"\r\n [arrowPosition]=\"columnConfig.sort.position === 'right' ? 'before' : 'after'\">\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-container>\r\n\r\n <!-- else not sortable -->\r\n <ng-template #notSortable>\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-container *ngTemplateOutlet=\"headerValue\"></ng-container>\r\n </th>\r\n </ng-template>\r\n\r\n <!-- header value-->\r\n <ng-template #headerValue>\r\n <lib-column-view [config]=\"columnConfig.headerView\"\r\n [value]=\"columnConfig.name\"\r\n >\r\n </lib-column-view>\r\n </ng-template>\r\n\r\n <!-- column value получать настройки колонок нужно через getView(rowIndex, columnConfig.key) там находятся уже\r\n подготовленные значения для использования-->\r\n <td mat-cell *matCellDef=\"let element;\">\r\n <lib-column-view\r\n [config]=\"getView(element, columnConfig.key)\"\r\n [value]=\"element | dataPropertyGetter: columnConfig.key\"\r\n >\r\n </lib-column-view>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: this.tableConfig.stickyCfg?.header\"></tr>\r\n <tr mat-row\r\n (click)=\"rowClick(row)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.clickCfg?.pointer || false, 'new-color': highlighted===row.rowSrc && tableConfig?.clickCfg?.highlightClicked?.color}\"\r\n [ngStyle]=\"{\r\n 'color': highlighted===row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.color : undefined,\r\n 'background-color': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.background : undefined,\r\n 'border': highlighted === row.rowSrc? tableConfig?.clickCfg?.highlightClicked?.border : undefined\r\n }\"\r\n #rowLink\r\n ></tr>\r\n </table>\r\n\r\n <!-- Pagination -->\r\n <mat-paginator *ngIf=\"paginationProvider\"\r\n [pageSizeOptions]=\"paginationProvider.sizes\"\r\n [pageSize]=\"paginationProvider.size\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n </ng-container>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\nimport {MatTableModule} from \"@angular/material/table\";\r\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\r\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe,\r\n ColumnViewComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatSortModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule\r\n ],\r\n exports: [\r\n NgxAurMatTableComponent,\r\n DataPropertyGetterPipe\r\n ]\r\n})\r\nexport class NgxAurMatTableModule {\r\n}\r\n","/*\n * Public API Surface of ngx-aur-mat-table\n */\n\nexport * from './lib/ngx-aur-mat-table.component';\nexport * from './lib/ngx-aur-mat-table.module';\nexport * from './lib/data-property-getter-pipe/data-property-getter.pipe';\nexport * from './lib/model/TableRow'\nexport * from './lib/model/ColumnConfig'\nexport * from './lib/providers/RowActionProvider'\nexport * from './lib/providers/SelectionProvider'\nexport * from './lib/providers/IndexProvider'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i4.ColumnViewComponent","i11","i12.DataPropertyGetterPipe"],"mappings":"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"}
|