ngx-aur-mat-table 0.1.38 → 0.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ngx-aur-mat-table.umd.js +1 -8
- package/bundles/ngx-aur-mat-table.umd.js.map +1 -1
- package/esm2015/lib/ngx-aur-mat-table.component.js +2 -4
- package/esm2015/lib/providers/TableViewConverter.js +1 -6
- package/fesm2015/ngx-aur-mat-table.js +1 -8
- package/fesm2015/ngx-aur-mat-table.js.map +1 -1
- package/package.json +1 -1
|
@@ -95,17 +95,12 @@
|
|
|
95
95
|
function TableViewConverter() {
|
|
96
96
|
}
|
|
97
97
|
TableViewConverter.toView = function (rows, tableConfig) {
|
|
98
|
-
console.log('----------------------------');
|
|
99
|
-
console.log('rows', rows);
|
|
100
|
-
console.log('tableConfig', tableConfig);
|
|
101
98
|
var result = new Map();
|
|
102
99
|
tableConfig.columnsCfg.forEach(function (c) {
|
|
103
100
|
if (c.valueView) {
|
|
104
101
|
result.set(c.key, c.valueView);
|
|
105
102
|
}
|
|
106
103
|
});
|
|
107
|
-
console.log('result', tableConfig);
|
|
108
|
-
console.log('view', this.toViewInternal(rows, result));
|
|
109
104
|
return this.toViewInternal(rows, result);
|
|
110
105
|
};
|
|
111
106
|
TableViewConverter.toViewInternal = function (rows, source) {
|
|
@@ -322,14 +317,12 @@
|
|
|
322
317
|
return row;
|
|
323
318
|
};
|
|
324
319
|
NgxAurMatTableComponent.prototype.getView = function (row, columnKey) {
|
|
325
|
-
console.log('000view', this.tableView);
|
|
326
|
-
console.log('000row', row);
|
|
327
320
|
return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;
|
|
328
321
|
};
|
|
329
322
|
return NgxAurMatTableComponent;
|
|
330
323
|
}());
|
|
331
324
|
NgxAurMatTableComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxAurMatTableComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
332
|
-
NgxAurMatTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick" }, viewQueries: [{ propertyName: "matPaginator", first: true, predicate: i8.MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: i7.MatSort, descendants: true, static: true }], 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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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 {{columnConfig.name}}\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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%}.aur-mat-table th,td{padding:10px!important}.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"] }], pipes: { "dataPropertyGetter": DataPropertyGetterPipe } });
|
|
325
|
+
NgxAurMatTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick" }, viewQueries: [{ propertyName: "matPaginator", first: true, predicate: i8.MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: i7.MatSort, descendants: true, static: true }], 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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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%}.aur-mat-table th,td{padding:10px!important}.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"] }], pipes: { "dataPropertyGetter": DataPropertyGetterPipe } });
|
|
333
326
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxAurMatTableComponent, decorators: [{
|
|
334
327
|
type: i0.Component,
|
|
335
328
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-aur-mat-table.umd.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 {ActionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider<T> {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n config: ActionConfig;\r\n\r\n constructor(ctx: ActionConfig, columns: string[]) {\r\n this.config = ctx;\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","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 console.log('----------------------------')\r\n console.log('rows', rows);\r\n console.log('tableConfig', tableConfig);\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 console.log('result', tableConfig);\r\n console.log('view', this.toViewInternal(rows, result))\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 }\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 <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\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 {\n AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {ColumnView, ColumnConfig, TableConfig} from './model/ColumnConfig';\nimport {MatSort, Sort} from '@angular/material/sort';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {SelectionProvider} from './providers/SelectionProvider';\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\nimport {TableRow} from \"./model/TableRow\";\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\nimport {IndexProvider} from \"./providers/IndexProvider\";\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\n\n\n@Component({\n selector: 'aur-mat-table',\n templateUrl: './ngx-aur-mat-table.component.html',\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\n})\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit {\n\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\n public displayedColumns: string[] = [];\n\n private tableView: Map<string, ColumnView<string>>[] = [];\n\n // @ts-ignore\n @Input() tableConfig: TableConfig<T>;\n\n @Input() tableData: T[] = [];\n\n // @ts-ignore\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\n // @ts-ignore\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\n\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\n\n // events if enabled actions\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\n // -----------------------\n\n // events if enabled select event\n @Output() selected = new EventEmitter<T[]>();\n @Output() onSelect = new EventEmitter<T[]>();\n @Output() onDeselect = new EventEmitter<T[]>();\n //------------------------\n\n\n @Output() onRowClick = new EventEmitter<T>();\n\n // @ts-ignore\n selectionProvider: SelectionProvider<T>;\n // @ts-ignore\n rowActionsProvider: RowActionProvider<T>;\n\n // @ts-ignore\n indexProvider: IndexProvider;\n\n // @ts-ignore\n paginationProvider: PaginationProvider;\n\n tableDataProvider = new TableDataProvider<T>();\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tableData'] && this.tableData) {\n this.prepare();\n }\n }\n\n ngOnInit(): void {\n if (!this.tableConfig) {\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\n }\n }\n\n // we need this, in order to make pagination work with *ngIf\n ngAfterViewInit(): void {\n this.tableDataSource.paginator = this.matPaginator;\n }\n\n private prepare() {\n this.setTableDataSource();\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\n\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\n }\n if (this.tableConfig.actionCfg) {\n this.rowActionsProvider = new RowActionProvider<TableRow<T>>(this.tableConfig.actionCfg, this.displayedColumns);\n }\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\n }\n if (this.tableConfig.pageableCfg) {\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\n }\n }\n\n private setTableDataSource() {\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\n this.tableDataSource.paginator = this.matPaginator;\n this.tableDataSource.sort = this.matSort;\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\n }\n\n sortTable(sortParameters: Sort) {\n this.sort.emit(sortParameters);\n }\n\n emitRowAction(action: string, row: T, $event: MouseEvent) {\n $event.stopPropagation();\n this.onRowAction.emit({action, value: row});\n }\n\n masterToggle() {\n this.selectionProvider.masterToggle();\n }\n\n isAllSelected(): boolean {\n return this.selectionProvider.isAllSelected();\n }\n\n castSrc(row: any): TableRow<T> {\n return row;\n }\n\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\n console.log('000view', this.tableView)\n console.log('000row', row)\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\n }\n}\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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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 {{columnConfig.name}}\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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';\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatTableModule} from \"@angular/material/table\";\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatSortModule} from \"@angular/material/sort\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\nimport {CommonModule} from \"@angular/common\";\n\n\n@NgModule({\n declarations: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe,\n ColumnViewComponent\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatTableModule,\n MatPaginatorModule,\n MatButtonModule,\n MatInputModule,\n MatSortModule,\n MatTooltipModule,\n MatCheckboxModule,\n MatFormFieldModule\n ],\n exports: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe\n ]\n})\nexport class NgxAurMatTableModule {\n}\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","MatPaginator","MatSort","i4.ColumnViewComponent","i5","i6","i7","i8","i9","i10","i11","i12.DataPropertyGetterPipe","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","../../../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 {ActionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider<T> {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n config: ActionConfig;\r\n\r\n constructor(ctx: ActionConfig, columns: string[]) {\r\n this.config = ctx;\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","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 }\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 <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\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 {\n AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {ColumnView, ColumnConfig, TableConfig} from './model/ColumnConfig';\nimport {MatSort, Sort} from '@angular/material/sort';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {SelectionProvider} from './providers/SelectionProvider';\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\nimport {TableRow} from \"./model/TableRow\";\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\nimport {IndexProvider} from \"./providers/IndexProvider\";\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\n\n\n@Component({\n selector: 'aur-mat-table',\n templateUrl: './ngx-aur-mat-table.component.html',\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\n})\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit {\n\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\n public displayedColumns: string[] = [];\n\n private tableView: Map<string, ColumnView<string>>[] = [];\n\n // @ts-ignore\n @Input() tableConfig: TableConfig<T>;\n\n @Input() tableData: T[] = [];\n\n // @ts-ignore\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\n // @ts-ignore\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\n\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\n\n // events if enabled actions\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\n // -----------------------\n\n // events if enabled select event\n @Output() selected = new EventEmitter<T[]>();\n @Output() onSelect = new EventEmitter<T[]>();\n @Output() onDeselect = new EventEmitter<T[]>();\n //------------------------\n\n\n @Output() onRowClick = new EventEmitter<T>();\n\n // @ts-ignore\n selectionProvider: SelectionProvider<T>;\n // @ts-ignore\n rowActionsProvider: RowActionProvider<T>;\n\n // @ts-ignore\n indexProvider: IndexProvider;\n\n // @ts-ignore\n paginationProvider: PaginationProvider;\n\n tableDataProvider = new TableDataProvider<T>();\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tableData'] && this.tableData) {\n this.prepare();\n }\n }\n\n ngOnInit(): void {\n if (!this.tableConfig) {\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\n }\n }\n\n // we need this, in order to make pagination work with *ngIf\n ngAfterViewInit(): void {\n this.tableDataSource.paginator = this.matPaginator;\n }\n\n private prepare() {\n this.setTableDataSource();\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\n\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\n }\n if (this.tableConfig.actionCfg) {\n this.rowActionsProvider = new RowActionProvider<TableRow<T>>(this.tableConfig.actionCfg, this.displayedColumns);\n }\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\n }\n if (this.tableConfig.pageableCfg) {\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\n }\n }\n\n private setTableDataSource() {\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\n this.tableDataSource.paginator = this.matPaginator;\n this.tableDataSource.sort = this.matSort;\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\n }\n\n sortTable(sortParameters: Sort) {\n this.sort.emit(sortParameters);\n }\n\n emitRowAction(action: string, row: T, $event: MouseEvent) {\n $event.stopPropagation();\n this.onRowAction.emit({action, value: row});\n }\n\n masterToggle() {\n this.selectionProvider.masterToggle();\n }\n\n isAllSelected(): boolean {\n return this.selectionProvider.isAllSelected();\n }\n\n castSrc(row: any): TableRow<T> {\n return row;\n }\n\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\n }\n}\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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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';\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatTableModule} from \"@angular/material/table\";\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatSortModule} from \"@angular/material/sort\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\nimport {CommonModule} from \"@angular/common\";\n\n\n@NgModule({\n declarations: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe,\n ColumnViewComponent\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatTableModule,\n MatPaginatorModule,\n MatButtonModule,\n MatInputModule,\n MatSortModule,\n MatTooltipModule,\n MatCheckboxModule,\n MatFormFieldModule\n ],\n exports: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe\n ]\n})\nexport class NgxAurMatTableModule {\n}\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","MatPaginator","MatSort","i4.ColumnViewComponent","i5","i6","i7","i8","i9","i10","i11","i12.DataPropertyGetterPipe","ViewChild","Output","CommonModule","MatIconModule","MatTableModule","MatPaginatorModule","MatButtonModule","MatInputModule","MatSortModule","MatTooltipModule","MatCheckboxModule","MatFormFieldModule","NgModule"],"mappings":"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"}
|
|
@@ -98,13 +98,11 @@ export class NgxAurMatTableComponent {
|
|
|
98
98
|
return row;
|
|
99
99
|
}
|
|
100
100
|
getView(row, columnKey) {
|
|
101
|
-
console.log('000view', this.tableView);
|
|
102
|
-
console.log('000row', row);
|
|
103
101
|
return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;
|
|
104
102
|
}
|
|
105
103
|
}
|
|
106
104
|
NgxAurMatTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
-
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick" }, viewQueries: [{ propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }], 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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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\"
|
|
105
|
+
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick" }, viewQueries: [{ propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }], 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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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%}.aur-mat-table th,td{padding:10px!important}.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"] }], pipes: { "dataPropertyGetter": i12.DataPropertyGetterPipe } });
|
|
108
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, decorators: [{
|
|
109
107
|
type: Component,
|
|
110
108
|
args: [{
|
|
@@ -135,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
135
133
|
}], onRowClick: [{
|
|
136
134
|
type: Output
|
|
137
135
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDVSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUN4RSxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLE9BQU8sRUFBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQWMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWxFLE1BQU0sT0FBTyx1QkFBdUI7SUE2Q2xDO1FBM0NPLG9CQUFlLEdBQUcsSUFBSSxrQkFBa0IsQ0FBYyxFQUFFLENBQUMsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFFL0IsY0FBUyxHQUFzQyxFQUFFLENBQUM7UUFLakQs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LEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEYsQ0FBQzs7cUhBMUhVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLDBUQWF2QixZQUFZLDBFQUVaLE9BQU8sbUZDckNwQixvaExBd0hBOzRGRGxHYSx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNsRDswRUFTVSxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR29DLFlBQVk7c0JBQXJELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFFSixPQUFPO3NCQUExQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBRXhCLElBQUk7c0JBQWIsTUFBTTtnQkFHRyxXQUFXO3NCQUFwQixNQUFNO2dCQUlHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUlHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29sdW1uVmlldywgQ29sdW1uQ29uZmlnLCBUYWJsZUNvbmZpZ30gZnJvbSAnLi9tb2RlbC9Db2x1bW5Db25maWcnO1xuaW1wb3J0IHtNYXRTb3J0LCBTb3J0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7TWF0VGFibGVEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7U2VsZWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL1NlbGVjdGlvblByb3ZpZGVyJztcbmltcG9ydCB7QWN0aW9uRXZlbnQsIFJvd0FjdGlvblByb3ZpZGVyfSBmcm9tICcuL3Byb3ZpZGVycy9Sb3dBY3Rpb25Qcm92aWRlcic7XG5pbXBvcnQge1RhYmxlUm93fSBmcm9tIFwiLi9tb2RlbC9UYWJsZVJvd1wiO1xuaW1wb3J0IHtUYWJsZVZpZXdDb252ZXJ0ZXJ9IGZyb20gXCIuL3Byb3ZpZGVycy9UYWJsZVZpZXdDb252ZXJ0ZXJcIjtcbmltcG9ydCB7SW5kZXhQcm92aWRlcn0gZnJvbSBcIi4vcHJvdmlkZXJzL0luZGV4UHJvdmlkZXJcIjtcbmltcG9ydCB7VGFibGVEYXRhUHJvdmlkZXJ9IGZyb20gXCIuL3Byb3ZpZGVycy9UYWJsZURhdGFQcm92aWRlclwiO1xuaW1wb3J0IHtQYWdpbmF0aW9uUHJvdmlkZXJ9IGZyb20gXCIuL3Byb3ZpZGVycy9QYWdpbmF0aW9uUHJvdmlkZXJcIjtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXItbWF0LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4QXVyTWF0VGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHVibGljIHRhYmxlRGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VGFibGVSb3c8VD4+KFtdKTtcbiAgcHVibGljIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSB0YWJsZVZpZXc6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj5bXSA9IFtdO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQElucHV0KCkgdGFibGVDb25maWc6IFRhYmxlQ29uZmlnPFQ+O1xuXG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogVFtdID0gW107XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwge3N0YXRpYzogZmFsc2V9KSBtYXRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgLy8gQHRzLWlnbm9yZVxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHtzdGF0aWM6IHRydWV9KSBtYXRTb3J0OiBNYXRTb3J0O1xuXG4gIEBPdXRwdXQoKSBzb3J0OiBFdmVudEVtaXR0ZXI8U29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLy8gZXZlbnRzIGlmIGVuYWJsZWQgYWN0aW9uc1xuICBAT3V0cHV0KCkgb25Sb3dBY3Rpb246IEV2ZW50RW1pdHRlcjxBY3Rpb25FdmVudDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkV2ZW50PFQ+PigpO1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIGV2ZW50cyBpZiBlbmFibGVkIHNlbGVjdCBldmVudFxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG4gIEBPdXRwdXQoKSBvbkRlc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuICBAT3V0cHV0KCkgb25Sb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAvLyBAdHMtaWdub3JlXG4gIHNlbGVjdGlvblByb3ZpZGVyOiBTZWxlY3Rpb25Qcm92aWRlcjxUPjtcbiAgLy8gQHRzLWlnbm9yZVxuICByb3dBY3Rpb25zUHJvdmlkZXI6IFJvd0FjdGlvblByb3ZpZGVyPFQ+O1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgaW5kZXhQcm92aWRlcjogSW5kZXhQcm92aWRlcjtcblxuICAvLyBAdHMtaWdub3JlXG4gIHBhZ2luYXRpb25Qcm92aWRlcjogUGFnaW5hdGlvblByb3ZpZGVyO1xuXG4gIHRhYmxlRGF0YVByb3ZpZGVyID0gbmV3IFRhYmxlRGF0YVByb3ZpZGVyPFQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3RhYmxlRGF0YSddICYmIHRoaXMudGFibGVEYXRhKSB7XG4gICAgICB0aGlzLnByZXBhcmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGFibGVDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImluaXQgaW5wdXRzIFt0YWJsZUNvbmZpZ10gaXMgbWFuZGF0b3J5IVwiKVxuICAgIH1cbiAgfVxuXG4gIC8vIHdlIG5lZWQgdGhpcywgaW4gb3JkZXIgdG8gbWFrZSBwYWdpbmF0aW9uIHdvcmsgd2l0aCAqbmdJZlxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5tYXRQYWdpbmF0b3I7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmUoKSB7XG4gICAgdGhpcy5zZXRUYWJsZURhdGFTb3VyY2UoKTtcbiAgICB0aGlzLnRhYmxlVmlldyA9IFRhYmxlVmlld0NvbnZlcnRlci50b1ZpZXcodGhpcy50YWJsZURhdGFTb3VyY2UuZGF0YSwgdGhpcy50YWJsZUNvbmZpZylcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLnRhYmxlQ29uZmlnLmNvbHVtbnNDZmcubWFwKCh0YWJsZUNvbHVtbjogQ29sdW1uQ29uZmlnPGFueT4pID0+IHRhYmxlQ29sdW1uLmtleSk7XG5cbiAgICBpZiAodGhpcy50YWJsZUNvbmZpZy5pbmRleENmZyAmJiB0aGlzLnRhYmxlQ29uZmlnLmluZGV4Q2ZnLmVuYWJsZSkge1xuICAgICAgdGhpcy5pbmRleFByb3ZpZGVyID0gbmV3IEluZGV4UHJvdmlkZXIodGhpcy50YWJsZUNvbmZpZy5pbmRleENmZywgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFibGVDb25maWcuYWN0aW9uQ2ZnKSB7XG4gICAgICB0aGlzLnJvd0FjdGlvbnNQcm92aWRlciA9IG5ldyBSb3dBY3Rpb25Qcm92aWRlcjxUYWJsZVJvdzxUPj4odGhpcy50YWJsZUNvbmZpZy5hY3Rpb25DZmcsIHRoaXMuZGlzcGxheWVkQ29sdW1ucyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLnNlbGVjdGlvbkNmZyAmJiB0aGlzLnRhYmxlQ29uZmlnLnNlbGVjdGlvbkNmZy5lbmFibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIgPSBuZXcgU2VsZWN0aW9uUHJvdmlkZXI8VD4odGhpcy50YWJsZUNvbmZpZy5zZWxlY3Rpb25DZmcsIHRoaXMuZGlzcGxheWVkQ29sdW1ucywgdGhpcy50YWJsZURhdGFTb3VyY2UpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25Qcm92aWRlci5iaW5kKHRoaXMuc2VsZWN0ZWQsIHRoaXMub25TZWxlY3QsIHRoaXMub25EZXNlbGVjdCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLnBhZ2VhYmxlQ2ZnKSB7XG4gICAgICB0aGlzLnBhZ2luYXRpb25Qcm92aWRlciA9IG5ldyBQYWdpbmF0aW9uUHJvdmlkZXIodGhpcy50YWJsZUNvbmZpZy5wYWdlYWJsZUNmZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRUYWJsZURhdGFTb3VyY2UoKSB7XG4gICAgbGV0IGNvbnZlcnQgPSB0aGlzLnRhYmxlRGF0YVByb3ZpZGVyLmNvbnZlcnQodGhpcy50YWJsZURhdGEsIHRoaXMudGFibGVDb25maWcuY29sdW1uc0NmZyk7XG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRhYmxlUm93PFQ+Pihjb252ZXJ0KTtcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdFBhZ2luYXRvcjtcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMudGFibGVEYXRhU291cmNlLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgc29ydFRhYmxlKHNvcnRQYXJhbWV0ZXJzOiBTb3J0KSB7XG4gICAgdGhpcy5zb3J0LmVtaXQoc29ydFBhcmFtZXRlcnMpO1xuICB9XG5cbiAgZW1pdFJvd0FjdGlvbihhY3Rpb246IHN0cmluZywgcm93OiBULCAkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vblJvd0FjdGlvbi5lbWl0KHthY3Rpb24sIHZhbHVlOiByb3d9KTtcbiAgfVxuXG4gIG1hc3RlclRvZ2dsZSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLm1hc3RlclRvZ2dsZSgpO1xuICB9XG5cbiAgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Qcm92aWRlci5pc0FsbFNlbGVjdGVkKCk7XG4gIH1cblxuICBjYXN0U3JjKHJvdzogYW55KTogVGFibGVSb3c8VD4ge1xuICAgIHJldHVybiByb3c7XG4gIH1cblxuICBnZXRWaWV3KHJvdzogVGFibGVSb3c8VD4sIGNvbHVtbktleTogc3RyaW5nKTogQ29sdW1uVmlldzxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zb2xlLmxvZygnMDAwdmlldycsIHRoaXMudGFibGVWaWV3KVxuICAgIGNvbnNvbGUubG9nKCcwMDByb3cnLCByb3cpXG4gICAgcmV0dXJuIHRoaXMudGFibGVWaWV3W3Jvdy5pZF0gPyB0aGlzLnRhYmxlVmlld1tyb3cuaWRdLmdldChjb2x1bW5LZXkpIDogdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXVyLW1hdC10YWJsZVwiPlxyXG4gIDxuZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBGaWx0ZXIgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVDb25maWcuZmlsdGVyQ2ZnXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7dGFibGVDb25maWcuZmlsdGVyQ2ZnPy5sYWJlbH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCJ7e3RhYmxlQ29uZmlnLmZpbHRlckNmZz8ucGxhY2Vob2xkZXJ9fVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXg+c2VhcmNoPC9tYXQtaWNvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gVGFibGUgLS0+XHJcbiAgICA8dGFibGVcclxuICAgICAgbWF0LXRhYmxlXHJcbiAgICAgIG1hdFNvcnRcclxuICAgICAgW2RhdGFTb3VyY2VdPVwidGFibGVEYXRhU291cmNlXCJcclxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydFRhYmxlKCRldmVudClcIlxyXG4gICAgICBbc3R5bGUuaGVpZ2h0XT1cInRhYmxlQ29uZmlnLnRhYmxlVmlldz8uaGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwidGFibGVDb25maWcudGFibGVWaWV3Py5tYXhIZWlnaHRcIlxyXG4gICAgICBbc3R5bGUubWluLWhlaWdodF09XCJ0YWJsZUNvbmZpZy50YWJsZVZpZXc/Lm1pbkhlaWdodFwiXHJcbiAgICA+XHJcblxyXG4gICAgICA8IS0tICAgICAgICBpbmRleC1jb2x1bW4tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluZGV4UHJvdmlkZXJcIiBbbWF0Q29sdW1uRGVmXT1cImluZGV4UHJvdmlkZXIuQ09MVU1OX05BTUVcIj5cclxuXHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICAgIDxsaWItY29sdW1uLXZpZXcgW2NvbmZpZ109XCJpbmRleFByb3ZpZGVyLmhlYWRlclZpZXdcIj5cclxuICAgICAgICAgICAge3tpbmRleFByb3ZpZGVyLm5hbWV9fVxyXG4gICAgICAgICAgPC9saWItY29sdW1uLXZpZXc+XHJcbiAgICAgICAgPC90aD5cclxuXHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCByb3dJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICB7e3Jvd0luZGV4ICsgaW5kZXhQcm92aWRlci5vZmZzZXR9fVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSAgICAgICAgc2VsZWN0aW9uLWNvbHVtbi0tPlxyXG4gICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwic2VsZWN0aW9uUHJvdmlkZXIuQ09MVU1OX05BTUVcIiAqbmdJZj1cInNlbGVjdGlvblByb3ZpZGVyXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiBpc0FsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCI+XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLnRvZ2dsZShjYXN0U3JjKHJvdykucm93U3JjKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaXNTZWxlY3RlZChjYXN0U3JjKHJvdykucm93U3JjKVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIGFjdGlvbiBjb2x1bW4gLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dBY3Rpb25zUHJvdmlkZXJcIiBbbWF0Q29sdW1uRGVmXT1cInJvd0FjdGlvbnNQcm92aWRlci5DT0xVTU5fTkFNRVwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRSb3dBY3Rpb24oYWN0aW9uLmFjdGlvbiwgY2FzdFNyYyhlbGVtZW50KS5yb3dTcmMsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJhY3Rpb24uaWNvbi50b29sdGlwIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zUHJvdmlkZXIuY29uZmlnLmFjdGlvbnNcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJhY3Rpb24uaWNvbi5jb2xvclwiPlxyXG4gICAgICAgICAgICAgIHt7YWN0aW9uLmljb24ubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gICAgdmFsdWUtaWNvbi0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW5Db25maWcgb2YgdGFibGVDb25maWcuY29sdW1uc0NmZ1wiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uQ29uZmlnLmtleVwiPlxyXG5cclxuICAgICAgICA8IS0tIGlmIHNvcnRhYmxlIGNvbHVtbiBoZWFkZXIgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbkNvbmZpZy5zb3J0OyBlbHNlIG5vdFNvcnRhYmxlXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFttYXQtc29ydC1oZWFkZXJdPVwiY29sdW1uQ29uZmlnLmtleVwiXHJcbiAgICAgICAgICAgICAgW2Fycm93UG9zaXRpb25dPVwiY29sdW1uQ29uZmlnLnNvcnQucG9zaXRpb24gPT09ICdyaWdodCcgPyAnYmVmb3JlJyA6ICdhZnRlcidcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclZhbHVlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIGVsc2Ugbm90IHNvcnRhYmxlIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90U29ydGFibGU+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVmFsdWVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPCEtLSAgICAgIGhlYWRlciB2YWx1ZS0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVmFsdWU+XHJcbiAgICAgICAgICA8bGliLWNvbHVtbi12aWV3IFtjb25maWddPVwiY29sdW1uQ29uZmlnLmhlYWRlclZpZXdcIj5cclxuICAgICAgICAgICAge3tjb2x1bW5Db25maWcubmFtZX19XHJcbiAgICAgICAgICA8L2xpYi1jb2x1bW4tdmlldz5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIGNvbHVtbiB2YWx1ZSDQv9C+0LvRg9GH0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDQutC+0LvQvtC90L7QuiDQvdGD0LbQvdC+INGH0LXRgNC10LcgZ2V0Vmlldyhyb3dJbmRleCwgY29sdW1uQ29uZmlnLmtleSkg0YLQsNC8INC90LDRhdC+0LTRj9GC0YHRjyDRg9C20LVcclxuICAgICAgICDQv9C+0LTQs9C+0YLQvtCy0LvQtdC90L3Ri9C1INC30L3QsNGH0LXQvdC40Y8g0LTQu9GPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPLS0+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7XCI+XHJcbiAgICAgICAgICA8bGliLWNvbHVtbi12aWV3XHJcbiAgICAgICAgICAgIFtjb25maWddPVwiZ2V0VmlldyhlbGVtZW50LCBjb2x1bW5Db25maWcua2V5KVwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJlbGVtZW50IHwgZGF0YVByb3BlcnR5R2V0dGVyOiBjb2x1bW5Db25maWcua2V5XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zOyAgc3RpY2t5OiB0aGlzLnRhYmxlQ29uZmlnLnN0aWNreUNmZz8uaGVhZGVyXCI+PC90cj5cclxuICAgICAgPHRyIG1hdC1yb3dcclxuICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrLmVtaXQoY2FzdFNyYyhyb3cpLnJvd1NyYylcIlxyXG4gICAgICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsncG9pbnRlcic6IHRhYmxlQ29uZmlnLnBvaW50ZXJDZmc/LmVuYWJsZSB8fCBmYWxzZX1cIlxyXG4gICAgICA+PC90cj5cclxuICAgIDwvdGFibGU+XHJcblxyXG4gICAgPCEtLSBQYWdpbmF0aW9uIC0tPlxyXG4gICAgPG1hdC1wYWdpbmF0b3IgKm5nSWY9XCJwYWdpbmF0aW9uUHJvdmlkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdpbmF0aW9uUHJvdmlkZXIuc2l6ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2luYXRpb25Qcm92aWRlci5zaXplXCJcclxuICAgICAgICAgICAgICAgICAgIHNob3dGaXJzdExhc3RCdXR0b25zPlxyXG4gICAgPC9tYXQtcGFnaW5hdG9yPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDVSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUN4RSxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLE9BQU8sRUFBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQWMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWxFLE1BQU0sT0FBTyx1QkFBdUI7SUE2Q2xDO1FBM0NPLG9CQUFlLEdBQUcsSUFBSSxrQkFBa0IsQ0FBYyxFQUFFLENBQUMsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFFL0IsY0FBUyxHQUFzQyxFQUFFLENBQUM7UUFLakQs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U0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRixDQUFDOztxSEF4SFUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsMFRBYXZCLFlBQVksMEVBRVosT0FBTyxtRkNyQ3BCLHlqTEF5SEE7NEZEbkdhLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7aUJBQ2xEOzBFQVNVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFHb0MsWUFBWTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVKLE9BQU87c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsSUFBSTtzQkFBYixNQUFNO2dCQUdHLFdBQVc7c0JBQXBCLE1BQU07Z0JBSUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb2x1bW5WaWV3LCBDb2x1bW5Db25maWcsIFRhYmxlQ29uZmlnfSBmcm9tICcuL21vZGVsL0NvbHVtbkNvbmZpZyc7XG5pbXBvcnQge01hdFNvcnQsIFNvcnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7TWF0UGFnaW5hdG9yfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtTZWxlY3Rpb25Qcm92aWRlcn0gZnJvbSAnLi9wcm92aWRlcnMvU2VsZWN0aW9uUHJvdmlkZXInO1xuaW1wb3J0IHtBY3Rpb25FdmVudCwgUm93QWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL1Jvd0FjdGlvblByb3ZpZGVyJztcbmltcG9ydCB7VGFibGVSb3d9IGZyb20gXCIuL21vZGVsL1RhYmxlUm93XCI7XG5pbXBvcnQge1RhYmxlVmlld0NvbnZlcnRlcn0gZnJvbSBcIi4vcHJvdmlkZXJzL1RhYmxlVmlld0NvbnZlcnRlclwiO1xuaW1wb3J0IHtJbmRleFByb3ZpZGVyfSBmcm9tIFwiLi9wcm92aWRlcnMvSW5kZXhQcm92aWRlclwiO1xuaW1wb3J0IHtUYWJsZURhdGFQcm92aWRlcn0gZnJvbSBcIi4vcHJvdmlkZXJzL1RhYmxlRGF0YVByb3ZpZGVyXCI7XG5pbXBvcnQge1BhZ2luYXRpb25Qcm92aWRlcn0gZnJvbSBcIi4vcHJvdmlkZXJzL1BhZ2luYXRpb25Qcm92aWRlclwiO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1ci1tYXQtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hBdXJNYXRUYWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcblxuICBwdWJsaWMgdGFibGVEYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxUYWJsZVJvdzxUPj4oW10pO1xuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIHRhYmxlVmlldzogTWFwPHN0cmluZywgQ29sdW1uVmlldzxzdHJpbmc+PltdID0gW107XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBASW5wdXQoKSB0YWJsZUNvbmZpZzogVGFibGVDb25maWc8VD47XG5cbiAgQElucHV0KCkgdGFibGVEYXRhOiBUW10gPSBbXTtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7c3RhdGljOiBmYWxzZX0pIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuICAvLyBAdHMtaWdub3JlXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwge3N0YXRpYzogdHJ1ZX0pIG1hdFNvcnQ6IE1hdFNvcnQ7XG5cbiAgQE91dHB1dCgpIHNvcnQ6IEV2ZW50RW1pdHRlcjxTb3J0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBldmVudHMgaWYgZW5hYmxlZCBhY3Rpb25zXG4gIEBPdXRwdXQoKSBvblJvd0FjdGlvbjogRXZlbnRFbWl0dGVyPEFjdGlvbkV2ZW50PFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gZXZlbnRzIGlmIGVuYWJsZWQgc2VsZWN0IGV2ZW50XG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcbiAgQE91dHB1dCgpIG9uRGVzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4gIEBPdXRwdXQoKSBvblJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgc2VsZWN0aW9uUHJvdmlkZXI6IFNlbGVjdGlvblByb3ZpZGVyPFQ+O1xuICAvLyBAdHMtaWdub3JlXG4gIHJvd0FjdGlvbnNQcm92aWRlcjogUm93QWN0aW9uUHJvdmlkZXI8VD47XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBpbmRleFByb3ZpZGVyOiBJbmRleFByb3ZpZGVyO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcGFnaW5hdGlvblByb3ZpZGVyOiBQYWdpbmF0aW9uUHJvdmlkZXI7XG5cbiAgdGFibGVEYXRhUHJvdmlkZXIgPSBuZXcgVGFibGVEYXRhUHJvdmlkZXI8VD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndGFibGVEYXRhJ10gJiYgdGhpcy50YWJsZURhdGEpIHtcbiAgICAgIHRoaXMucHJlcGFyZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50YWJsZUNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5pdCBpbnB1dHMgW3RhYmxlQ29uZmlnXSBpcyBtYW5kYXRvcnkhXCIpXG4gICAgfVxuICB9XG5cbiAgLy8gd2UgbmVlZCB0aGlzLCBpbiBvcmRlciB0byBtYWtlIHBhZ2luYXRpb24gd29yayB3aXRoICpuZ0lmXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdFBhZ2luYXRvcjtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZSgpIHtcbiAgICB0aGlzLnNldFRhYmxlRGF0YVNvdXJjZSgpO1xuICAgIHRoaXMudGFibGVWaWV3ID0gVGFibGVWaWV3Q29udmVydGVyLnRvVmlldyh0aGlzLnRhYmxlRGF0YVNvdXJjZS5kYXRhLCB0aGlzLnRhYmxlQ29uZmlnKVxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMudGFibGVDb25maWcuY29sdW1uc0NmZy5tYXAoKHRhYmxlQ29sdW1uOiBDb2x1bW5Db25maWc8YW55PikgPT4gdGFibGVDb2x1bW4ua2V5KTtcblxuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLmluZGV4Q2ZnICYmIHRoaXMudGFibGVDb25maWcuaW5kZXhDZmcuZW5hYmxlKSB7XG4gICAgICB0aGlzLmluZGV4UHJvdmlkZXIgPSBuZXcgSW5kZXhQcm92aWRlcih0aGlzLnRhYmxlQ29uZmlnLmluZGV4Q2ZnLCB0aGlzLmRpc3BsYXllZENvbHVtbnMpO1xuICAgIH1cbiAgICBpZiAodGhpcy50YWJsZUNvbmZpZy5hY3Rpb25DZmcpIHtcbiAgICAgIHRoaXMucm93QWN0aW9uc1Byb3ZpZGVyID0gbmV3IFJvd0FjdGlvblByb3ZpZGVyPFRhYmxlUm93PFQ+Pih0aGlzLnRhYmxlQ29uZmlnLmFjdGlvbkNmZywgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFibGVDb25maWcuc2VsZWN0aW9uQ2ZnICYmIHRoaXMudGFibGVDb25maWcuc2VsZWN0aW9uQ2ZnLmVuYWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Qcm92aWRlciA9IG5ldyBTZWxlY3Rpb25Qcm92aWRlcjxUPih0aGlzLnRhYmxlQ29uZmlnLnNlbGVjdGlvbkNmZywgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLCB0aGlzLnRhYmxlRGF0YVNvdXJjZSk7XG4gICAgICB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLmJpbmQodGhpcy5zZWxlY3RlZCwgdGhpcy5vblNlbGVjdCwgdGhpcy5vbkRlc2VsZWN0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFibGVDb25maWcucGFnZWFibGVDZmcpIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvblByb3ZpZGVyID0gbmV3IFBhZ2luYXRpb25Qcm92aWRlcih0aGlzLnRhYmxlQ29uZmlnLnBhZ2VhYmxlQ2ZnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFRhYmxlRGF0YVNvdXJjZSgpIHtcbiAgICBsZXQgY29udmVydCA9IHRoaXMudGFibGVEYXRhUHJvdmlkZXIuY29udmVydCh0aGlzLnRhYmxlRGF0YSwgdGhpcy50YWJsZUNvbmZpZy5jb2x1bW5zQ2ZnKTtcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VGFibGVSb3c8VD4+KGNvbnZlcnQpO1xuICAgIHRoaXMudGFibGVEYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMubWF0UGFnaW5hdG9yO1xuICAgIHRoaXMudGFibGVEYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XG4gIH1cblxuICBhcHBseUZpbHRlcihldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBzb3J0VGFibGUoc29ydFBhcmFtZXRlcnM6IFNvcnQpIHtcbiAgICB0aGlzLnNvcnQuZW1pdChzb3J0UGFyYW1ldGVycyk7XG4gIH1cblxuICBlbWl0Um93QWN0aW9uKGFjdGlvbjogc3RyaW5nLCByb3c6IFQsICRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9uUm93QWN0aW9uLmVtaXQoe2FjdGlvbiwgdmFsdWU6IHJvd30pO1xuICB9XG5cbiAgbWFzdGVyVG9nZ2xlKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIubWFzdGVyVG9nZ2xlKCk7XG4gIH1cblxuICBpc0FsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLmlzQWxsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIGNhc3RTcmMocm93OiBhbnkpOiBUYWJsZVJvdzxUPiB7XG4gICAgcmV0dXJuIHJvdztcbiAgfVxuXG4gIGdldFZpZXcocm93OiBUYWJsZVJvdzxUPiwgY29sdW1uS2V5OiBzdHJpbmcpOiBDb2x1bW5WaWV3PHN0cmluZz4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRhYmxlVmlld1tyb3cuaWRdID8gdGhpcy50YWJsZVZpZXdbcm93LmlkXS5nZXQoY29sdW1uS2V5KSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1ci1tYXQtdGFibGVcIj5cclxuICA8bmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRmlsdGVyIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlQ29uZmlnLmZpbHRlckNmZ1wiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e3RhYmxlQ29uZmlnLmZpbHRlckNmZz8ubGFiZWx9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwiYXBwbHlGaWx0ZXIoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwie3t0YWJsZUNvbmZpZy5maWx0ZXJDZmc/LnBsYWNlaG9sZGVyfX1cIj5cclxuICAgICAgICA8bWF0LWljb24gbWF0UHJlZml4PnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFRhYmxlIC0tPlxyXG4gICAgPHRhYmxlXHJcbiAgICAgIG1hdC10YWJsZVxyXG4gICAgICBtYXRTb3J0XHJcbiAgICAgIFtkYXRhU291cmNlXT1cInRhYmxlRGF0YVNvdXJjZVwiXHJcbiAgICAgIChtYXRTb3J0Q2hhbmdlKT1cInNvcnRUYWJsZSgkZXZlbnQpXCJcclxuICAgICAgW3N0eWxlLmhlaWdodF09XCJ0YWJsZUNvbmZpZy50YWJsZVZpZXc/LmhlaWdodFwiXHJcbiAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cInRhYmxlQ29uZmlnLnRhYmxlVmlldz8ubWF4SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwidGFibGVDb25maWcudGFibGVWaWV3Py5taW5IZWlnaHRcIlxyXG4gICAgPlxyXG5cclxuICAgICAgPCEtLSAgICAgICAgaW5kZXgtY29sdW1uLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmRleFByb3ZpZGVyXCIgW21hdENvbHVtbkRlZl09XCJpbmRleFByb3ZpZGVyLkNPTFVNTl9OQU1FXCI+XHJcblxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICA8bGliLWNvbHVtbi12aWV3IFtjb25maWddPVwiaW5kZXhQcm92aWRlci5oZWFkZXJWaWV3XCI+XHJcbiAgICAgICAgICAgIHt7aW5kZXhQcm92aWRlci5uYW1lfX1cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgcm93SW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAge3tyb3dJbmRleCArIGluZGV4UHJvdmlkZXIub2Zmc2V0fX1cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gICAgICAgIHNlbGVjdGlvbi1jb2x1bW4tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cInNlbGVjdGlvblByb3ZpZGVyLkNPTFVNTl9OQU1FXCIgKm5nSWY9XCJzZWxlY3Rpb25Qcm92aWRlclwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi50b2dnbGUoY2FzdFNyYyhyb3cpLnJvd1NyYykgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2FzdFNyYyhyb3cpLnJvd1NyYylcIj5cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBhY3Rpb24gY29sdW1uIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93QWN0aW9uc1Byb3ZpZGVyXCIgW21hdENvbHVtbkRlZl09XCJyb3dBY3Rpb25zUHJvdmlkZXIuQ09MVU1OX05BTUVcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWl0Um93QWN0aW9uKGFjdGlvbi5hY3Rpb24sIGNhc3RTcmMoZWxlbWVudCkucm93U3JjLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiYWN0aW9uLmljb24udG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2Ygcm93QWN0aW9uc1Byb3ZpZGVyLmNvbmZpZy5hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3R5bGUuY29sb3JdPVwiYWN0aW9uLmljb24uY29sb3JcIj5cclxuICAgICAgICAgICAgICB7e2FjdGlvbi5pY29uLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tICAgIHZhbHVlLWljb24tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uQ29uZmlnIG9mIHRhYmxlQ29uZmlnLmNvbHVtbnNDZmdcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbkNvbmZpZy5rZXlcIj5cclxuXHJcbiAgICAgICAgPCEtLSBpZiBzb3J0YWJsZSBjb2x1bW4gaGVhZGVyIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Db25maWcuc29ydDsgZWxzZSBub3RTb3J0YWJsZVwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbbWF0LXNvcnQtaGVhZGVyXT1cImNvbHVtbkNvbmZpZy5rZXlcIlxyXG4gICAgICAgICAgICAgIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbkNvbmZpZy5zb3J0LnBvc2l0aW9uID09PSAncmlnaHQnID8gJ2JlZm9yZScgOiAnYWZ0ZXInXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBlbHNlIG5vdCBzb3J0YWJsZSAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNvcnRhYmxlPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclZhbHVlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gICAgICBoZWFkZXIgdmFsdWUtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclZhbHVlPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlldyBbY29uZmlnXT1cImNvbHVtbkNvbmZpZy5oZWFkZXJWaWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbHVtbkNvbmZpZy5uYW1lXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gY29sdW1uIHZhbHVlINC/0L7Qu9GD0YfQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INC60L7Qu9C+0L3QvtC6INC90YPQttC90L4g0YfQtdGA0LXQtyBnZXRWaWV3KHJvd0luZGV4LCBjb2x1bW5Db25maWcua2V5KSDRgtCw0Lwg0L3QsNGF0L7QtNGP0YLRgdGPINGD0LbQtVxyXG4gICAgICAgINC/0L7QtNCz0L7RgtC+0LLQu9C10L3QvdGL0LUg0LfQvdCw0YfQtdC90LjRjyDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8tLT5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cclxuICAgICAgICAgIDxsaWItY29sdW1uLXZpZXdcclxuICAgICAgICAgICAgW2NvbmZpZ109XCJnZXRWaWV3KGVsZW1lbnQsIGNvbHVtbkNvbmZpZy5rZXkpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6IGNvbHVtbkNvbmZpZy5rZXlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9saWItY29sdW1uLXZpZXc+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnM7ICBzdGlja3k6IHRoaXMudGFibGVDb25maWcuc3RpY2t5Q2ZnPy5oZWFkZXJcIj48L3RyPlxyXG4gICAgICA8dHIgbWF0LXJvd1xyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2suZW1pdChjYXN0U3JjKHJvdykucm93U3JjKVwiXHJcbiAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydwb2ludGVyJzogdGFibGVDb25maWcucG9pbnRlckNmZz8uZW5hYmxlIHx8IGZhbHNlfVwiXHJcbiAgICAgID48L3RyPlxyXG4gICAgPC90YWJsZT5cclxuXHJcbiAgICA8IS0tIFBhZ2luYXRpb24gLS0+XHJcbiAgICA8bWF0LXBhZ2luYXRvciAqbmdJZj1cInBhZ2luYXRpb25Qcm92aWRlclwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2luYXRpb25Qcm92aWRlci5zaXplc1wiXHJcbiAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvblByb3ZpZGVyLnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+XHJcbiAgICA8L21hdC1wYWdpbmF0b3I+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
export class TableViewConverter {
|
|
2
2
|
static toView(rows, tableConfig) {
|
|
3
|
-
console.log('----------------------------');
|
|
4
|
-
console.log('rows', rows);
|
|
5
|
-
console.log('tableConfig', tableConfig);
|
|
6
3
|
const result = new Map();
|
|
7
4
|
tableConfig.columnsCfg.forEach(c => {
|
|
8
5
|
if (c.valueView) {
|
|
9
6
|
result.set(c.key, c.valueView);
|
|
10
7
|
}
|
|
11
8
|
});
|
|
12
|
-
console.log('result', tableConfig);
|
|
13
|
-
console.log('view', this.toViewInternal(rows, result));
|
|
14
9
|
return this.toViewInternal(rows, result);
|
|
15
10
|
}
|
|
16
11
|
static toViewInternal(rows, source) {
|
|
@@ -60,4 +55,4 @@ export class TableViewConverter {
|
|
|
60
55
|
};
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVWaWV3Q29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9wcm92aWRlcnMvVGFibGVWaWV3Q29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxrQkFBa0I7SUFFdEIsTUFBTSxDQUFDLE1BQU0sQ0FBSSxJQUFtQixFQUFFLFdBQTJCO1FBQ3RFLE1BQU0sTUFBTSxHQUE0RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2xGLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRTtnQkFDZixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFJLElBQW1CLEVBQUUsTUFBK0Q7UUFDbkgsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVksQ0FBSSxNQUErRCxFQUFFLEdBQWdCO1FBQzlHLE1BQU0sTUFBTSxHQUFvQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQXVCO2dCQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7Z0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO2FBQzNDLENBQUE7WUFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVSxDQUFJLFVBQWdFLEVBQUUsR0FBZ0I7UUFDN0csSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMxQixLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMzRCxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNqRSxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7U0FDOUIsQ0FBQTtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVSxDQUFJLFVBQWdFLEVBQUUsR0FBZ0I7UUFDN0csSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNqRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUM1RCxDQUFBO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxXQUFXLENBQUksV0FBa0UsRUFBRSxHQUFnQjtRQUNoSCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTztZQUNMLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUN6QixLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxTQUFTO1lBQ3JDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxJQUFJLFNBQVM7U0FDeEMsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGFibGVSb3d9IGZyb20gXCIuLi9tb2RlbC9UYWJsZVJvd1wiO1xyXG5pbXBvcnQge0NvbHVtblZpZXcsIEljb25WaWV3LCBUZXh0VmlldywgVGFibGVDb25maWcsIEltYWdlVmlld30gZnJvbSBcIi4uL21vZGVsL0NvbHVtbkNvbmZpZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlVmlld0NvbnZlcnRlciB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdG9WaWV3PFQ+KHJvd3M6IFRhYmxlUm93PFQ+W10sIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZzxUPik6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj5bXSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8KHZhbHVlOiBUYWJsZVJvdzxUPikgPT4gc3RyaW5nPj4gPSBuZXcgTWFwKCk7XHJcbiAgICB0YWJsZUNvbmZpZy5jb2x1bW5zQ2ZnLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGlmIChjLnZhbHVlVmlldykge1xyXG4gICAgICAgIHJlc3VsdC5zZXQoYy5rZXksIGMudmFsdWVWaWV3KVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHRoaXMudG9WaWV3SW50ZXJuYWwocm93cywgcmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIHRvVmlld0ludGVybmFsPFQ+KHJvd3M6IFRhYmxlUm93PFQ+W10sIHNvdXJjZTogTWFwPHN0cmluZywgQ29sdW1uVmlldzwodmFsdWU6IFRhYmxlUm93PFQ+KSA9PiBzdHJpbmc+Pik6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj5bXSB7XHJcbiAgICByZXR1cm4gcm93cy5tYXAocm93ID0+IHRoaXMuY29sdW1uQ29uZmlnKHNvdXJjZSwgcm93KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjb2x1bW5Db25maWc8VD4oc291cmNlOiBNYXA8c3RyaW5nLCBDb2x1bW5WaWV3PCh2YWx1ZTogVGFibGVSb3c8VD4pID0+IHN0cmluZz4+LCByb3c6IFRhYmxlUm93PFQ+KTogTWFwPHN0cmluZywgQ29sdW1uVmlldzxzdHJpbmc+PiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj4gPSBuZXcgTWFwKCk7XHJcbiAgICBzb3VyY2UuZm9yRWFjaCgoc291cmNlLCBrZXkpID0+IHtcclxuICAgICAgY29uc3QgdmFsdWU6IENvbHVtblZpZXc8c3RyaW5nPiA9IHtcclxuICAgICAgICBpY29uOiB0aGlzLmljb25Db25maWcoc291cmNlLmljb24sIHJvdyksXHJcbiAgICAgICAgdGV4dDogdGhpcy50ZXh0Q29uZmlnKHNvdXJjZS50ZXh0LCByb3cpLFxyXG4gICAgICAgIGltYWdlOiB0aGlzLmltYWdlQ29uZmlnKHNvdXJjZS5pbWFnZSwgcm93KVxyXG4gICAgICB9XHJcbiAgICAgIHJlc3VsdC5zZXQoa2V5LCB2YWx1ZSlcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGljb25Db25maWc8VD4oaWNvblNvdXJjZTogSWNvblZpZXc8KHZhbHVlOiBUYWJsZVJvdzxUPikgPT4gc3RyaW5nPiB8IHVuZGVmaW5lZCwgcm93OiBUYWJsZVJvdzxUPik6IEljb25WaWV3PHN0cmluZz4gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCFpY29uU291cmNlKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuYW1lOiBpY29uU291cmNlLm5hbWUocm93KSxcclxuICAgICAgY29sb3I6IGljb25Tb3VyY2UuY29sb3IgPyBpY29uU291cmNlLmNvbG9yKHJvdykgOiB1bmRlZmluZWQsXHJcbiAgICAgIHRvb2x0aXA6IGljb25Tb3VyY2UudG9vbHRpcCA/IGljb25Tb3VyY2UudG9vbHRpcChyb3cpIDogdW5kZWZpbmVkLFxyXG4gICAgICBwb3NpdGlvbjogaWNvblNvdXJjZS5wb3NpdGlvbixcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIHRleHRDb25maWc8VD4odGV4dFNvdXJjZTogVGV4dFZpZXc8KHZhbHVlOiBUYWJsZVJvdzxUPikgPT4gc3RyaW5nPiB8IHVuZGVmaW5lZCwgcm93OiBUYWJsZVJvdzxUPik6IFRleHRWaWV3PHN0cmluZz4gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCF0ZXh0U291cmNlKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzaG93OiB0ZXh0U291cmNlLnNob3csXHJcbiAgICAgIHRvb2x0aXA6IHRleHRTb3VyY2UudG9vbHRpcCA/IHRleHRTb3VyY2UudG9vbHRpcChyb3cpIDogdW5kZWZpbmVkLFxyXG4gICAgICBjb2xvcjogdGV4dFNvdXJjZS5jb2xvciA/IHRleHRTb3VyY2UuY29sb3Iocm93KSA6IHVuZGVmaW5lZCxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGltYWdlQ29uZmlnPFQ+KGltYWdlU291cmNlOiBJbWFnZVZpZXc8KHZhbHVlOiBUYWJsZVJvdzxUPikgPT4gc3RyaW5nPiB8IHVuZGVmaW5lZCwgcm93OiBUYWJsZVJvdzxUPik6IEltYWdlVmlldzxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICghaW1hZ2VTb3VyY2UpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNyYzogaW1hZ2VTb3VyY2Uuc3JjKHJvdyksXHJcbiAgICAgIHdpZHRoOiBpbWFnZVNvdXJjZS53aWR0aCB8fCB1bmRlZmluZWQsXHJcbiAgICAgIGhlaWdodDogaW1hZ2VTb3VyY2UuaGVpZ2h0IHx8IHVuZGVmaW5lZFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -77,17 +77,12 @@ class RowActionProvider {
|
|
|
77
77
|
|
|
78
78
|
class TableViewConverter {
|
|
79
79
|
static toView(rows, tableConfig) {
|
|
80
|
-
console.log('----------------------------');
|
|
81
|
-
console.log('rows', rows);
|
|
82
|
-
console.log('tableConfig', tableConfig);
|
|
83
80
|
const result = new Map();
|
|
84
81
|
tableConfig.columnsCfg.forEach(c => {
|
|
85
82
|
if (c.valueView) {
|
|
86
83
|
result.set(c.key, c.valueView);
|
|
87
84
|
}
|
|
88
85
|
});
|
|
89
|
-
console.log('result', tableConfig);
|
|
90
|
-
console.log('view', this.toViewInternal(rows, result));
|
|
91
86
|
return this.toViewInternal(rows, result);
|
|
92
87
|
}
|
|
93
88
|
static toViewInternal(rows, source) {
|
|
@@ -284,13 +279,11 @@ class NgxAurMatTableComponent {
|
|
|
284
279
|
return row;
|
|
285
280
|
}
|
|
286
281
|
getView(row, columnKey) {
|
|
287
|
-
console.log('000view', this.tableView);
|
|
288
|
-
console.log('000row', row);
|
|
289
282
|
return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;
|
|
290
283
|
}
|
|
291
284
|
}
|
|
292
285
|
NgxAurMatTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
293
|
-
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick" }, viewQueries: [{ propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }], 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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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\"
|
|
286
|
+
NgxAurMatTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NgxAurMatTableComponent, selector: "aur-mat-table", inputs: { tableConfig: "tableConfig", tableData: "tableData" }, outputs: { sort: "sort", onRowAction: "onRowAction", selected: "selected", onSelect: "onSelect", onDeselect: "onDeselect", onRowClick: "onRowClick" }, viewQueries: [{ propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "matSort", first: true, predicate: MatSort, descendants: true, static: true }], 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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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%}.aur-mat-table th,td{padding:10px!important}.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"] }], pipes: { "dataPropertyGetter": DataPropertyGetterPipe } });
|
|
294
287
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxAurMatTableComponent, decorators: [{
|
|
295
288
|
type: Component,
|
|
296
289
|
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 {ActionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider<T> {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n config: ActionConfig;\r\n\r\n constructor(ctx: ActionConfig, columns: string[]) {\r\n this.config = ctx;\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","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 console.log('----------------------------')\r\n console.log('rows', rows);\r\n console.log('tableConfig', tableConfig);\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 console.log('result', tableConfig);\r\n console.log('view', this.toViewInternal(rows, result))\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 }\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 <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\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 {\n AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {ColumnView, ColumnConfig, TableConfig} from './model/ColumnConfig';\nimport {MatSort, Sort} from '@angular/material/sort';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {SelectionProvider} from './providers/SelectionProvider';\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\nimport {TableRow} from \"./model/TableRow\";\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\nimport {IndexProvider} from \"./providers/IndexProvider\";\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\n\n\n@Component({\n selector: 'aur-mat-table',\n templateUrl: './ngx-aur-mat-table.component.html',\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\n})\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit {\n\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\n public displayedColumns: string[] = [];\n\n private tableView: Map<string, ColumnView<string>>[] = [];\n\n // @ts-ignore\n @Input() tableConfig: TableConfig<T>;\n\n @Input() tableData: T[] = [];\n\n // @ts-ignore\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\n // @ts-ignore\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\n\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\n\n // events if enabled actions\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\n // -----------------------\n\n // events if enabled select event\n @Output() selected = new EventEmitter<T[]>();\n @Output() onSelect = new EventEmitter<T[]>();\n @Output() onDeselect = new EventEmitter<T[]>();\n //------------------------\n\n\n @Output() onRowClick = new EventEmitter<T>();\n\n // @ts-ignore\n selectionProvider: SelectionProvider<T>;\n // @ts-ignore\n rowActionsProvider: RowActionProvider<T>;\n\n // @ts-ignore\n indexProvider: IndexProvider;\n\n // @ts-ignore\n paginationProvider: PaginationProvider;\n\n tableDataProvider = new TableDataProvider<T>();\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tableData'] && this.tableData) {\n this.prepare();\n }\n }\n\n ngOnInit(): void {\n if (!this.tableConfig) {\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\n }\n }\n\n // we need this, in order to make pagination work with *ngIf\n ngAfterViewInit(): void {\n this.tableDataSource.paginator = this.matPaginator;\n }\n\n private prepare() {\n this.setTableDataSource();\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\n\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\n }\n if (this.tableConfig.actionCfg) {\n this.rowActionsProvider = new RowActionProvider<TableRow<T>>(this.tableConfig.actionCfg, this.displayedColumns);\n }\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\n }\n if (this.tableConfig.pageableCfg) {\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\n }\n }\n\n private setTableDataSource() {\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\n this.tableDataSource.paginator = this.matPaginator;\n this.tableDataSource.sort = this.matSort;\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\n }\n\n sortTable(sortParameters: Sort) {\n this.sort.emit(sortParameters);\n }\n\n emitRowAction(action: string, row: T, $event: MouseEvent) {\n $event.stopPropagation();\n this.onRowAction.emit({action, value: row});\n }\n\n masterToggle() {\n this.selectionProvider.masterToggle();\n }\n\n isAllSelected(): boolean {\n return this.selectionProvider.isAllSelected();\n }\n\n castSrc(row: any): TableRow<T> {\n return row;\n }\n\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\n console.log('000view', this.tableView)\n console.log('000row', row)\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\n }\n}\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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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 {{columnConfig.name}}\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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';\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatTableModule} from \"@angular/material/table\";\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatSortModule} from \"@angular/material/sort\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\nimport {CommonModule} from \"@angular/common\";\n\n\n@NgModule({\n declarations: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe,\n ColumnViewComponent\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatTableModule,\n MatPaginatorModule,\n MatButtonModule,\n MatInputModule,\n MatSortModule,\n MatTooltipModule,\n MatCheckboxModule,\n MatFormFieldModule\n ],\n exports: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe\n ]\n})\nexport class NgxAurMatTableModule {\n}\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 {ActionConfig} from \"../model/ColumnConfig\";\r\n\r\nexport interface ActionEvent<T> {\r\n action: string;\r\n value: T;\r\n}\r\n\r\nexport class RowActionProvider<T> {\r\n\r\n readonly COLUMN_NAME = 'tbl_actions';\r\n config: ActionConfig;\r\n\r\n constructor(ctx: ActionConfig, columns: string[]) {\r\n this.config = ctx;\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","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 }\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 <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\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 {\n AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {ColumnView, ColumnConfig, TableConfig} from './model/ColumnConfig';\nimport {MatSort, Sort} from '@angular/material/sort';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {SelectionProvider} from './providers/SelectionProvider';\nimport {ActionEvent, RowActionProvider} from './providers/RowActionProvider';\nimport {TableRow} from \"./model/TableRow\";\nimport {TableViewConverter} from \"./providers/TableViewConverter\";\nimport {IndexProvider} from \"./providers/IndexProvider\";\nimport {TableDataProvider} from \"./providers/TableDataProvider\";\nimport {PaginationProvider} from \"./providers/PaginationProvider\";\n\n\n@Component({\n selector: 'aur-mat-table',\n templateUrl: './ngx-aur-mat-table.component.html',\n styleUrls: ['./ngx-aur-mat-table.component.scss'],\n})\nexport class NgxAurMatTableComponent<T> implements OnInit, OnChanges, AfterViewInit {\n\n public tableDataSource = new MatTableDataSource<TableRow<T>>([]);\n public displayedColumns: string[] = [];\n\n private tableView: Map<string, ColumnView<string>>[] = [];\n\n // @ts-ignore\n @Input() tableConfig: TableConfig<T>;\n\n @Input() tableData: T[] = [];\n\n // @ts-ignore\n @ViewChild(MatPaginator, {static: false}) matPaginator: MatPaginator;\n // @ts-ignore\n @ViewChild(MatSort, {static: true}) matSort: MatSort;\n\n @Output() sort: EventEmitter<Sort> = new EventEmitter();\n\n // events if enabled actions\n @Output() onRowAction: EventEmitter<ActionEvent<T>> = new EventEmitter<ActionEvent<T>>();\n // -----------------------\n\n // events if enabled select event\n @Output() selected = new EventEmitter<T[]>();\n @Output() onSelect = new EventEmitter<T[]>();\n @Output() onDeselect = new EventEmitter<T[]>();\n //------------------------\n\n\n @Output() onRowClick = new EventEmitter<T>();\n\n // @ts-ignore\n selectionProvider: SelectionProvider<T>;\n // @ts-ignore\n rowActionsProvider: RowActionProvider<T>;\n\n // @ts-ignore\n indexProvider: IndexProvider;\n\n // @ts-ignore\n paginationProvider: PaginationProvider;\n\n tableDataProvider = new TableDataProvider<T>();\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tableData'] && this.tableData) {\n this.prepare();\n }\n }\n\n ngOnInit(): void {\n if (!this.tableConfig) {\n throw new Error(\"init inputs [tableConfig] is mandatory!\")\n }\n }\n\n // we need this, in order to make pagination work with *ngIf\n ngAfterViewInit(): void {\n this.tableDataSource.paginator = this.matPaginator;\n }\n\n private prepare() {\n this.setTableDataSource();\n this.tableView = TableViewConverter.toView(this.tableDataSource.data, this.tableConfig)\n this.displayedColumns = this.tableConfig.columnsCfg.map((tableColumn: ColumnConfig<any>) => tableColumn.key);\n\n if (this.tableConfig.indexCfg && this.tableConfig.indexCfg.enable) {\n this.indexProvider = new IndexProvider(this.tableConfig.indexCfg, this.displayedColumns);\n }\n if (this.tableConfig.actionCfg) {\n this.rowActionsProvider = new RowActionProvider<TableRow<T>>(this.tableConfig.actionCfg, this.displayedColumns);\n }\n if (this.tableConfig.selectionCfg && this.tableConfig.selectionCfg.enable) {\n this.selectionProvider = new SelectionProvider<T>(this.tableConfig.selectionCfg, this.displayedColumns, this.tableDataSource);\n this.selectionProvider.bind(this.selected, this.onSelect, this.onDeselect);\n }\n if (this.tableConfig.pageableCfg) {\n this.paginationProvider = new PaginationProvider(this.tableConfig.pageableCfg);\n }\n }\n\n private setTableDataSource() {\n let convert = this.tableDataProvider.convert(this.tableData, this.tableConfig.columnsCfg);\n this.tableDataSource = new MatTableDataSource<TableRow<T>>(convert);\n this.tableDataSource.paginator = this.matPaginator;\n this.tableDataSource.sort = this.matSort;\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.tableDataSource.filter = filterValue.trim().toLowerCase();\n }\n\n sortTable(sortParameters: Sort) {\n this.sort.emit(sortParameters);\n }\n\n emitRowAction(action: string, row: T, $event: MouseEvent) {\n $event.stopPropagation();\n this.onRowAction.emit({action, value: row});\n }\n\n masterToggle() {\n this.selectionProvider.masterToggle();\n }\n\n isAllSelected(): boolean {\n return this.selectionProvider.isAllSelected();\n }\n\n castSrc(row: any): TableRow<T> {\n return row;\n }\n\n getView(row: TableRow<T>, columnKey: string): ColumnView<string> | undefined {\n return this.tableView[row.id] ? this.tableView[row.id].get(columnKey) : undefined;\n }\n}\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)\" placeholder=\"{{tableConfig.filterCfg?.placeholder}}\">\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 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 rowActionsProvider.config.actions\">\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)=\"onRowClick.emit(castSrc(row).rowSrc)\"\r\n *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'pointer': tableConfig.pointerCfg?.enable || false}\"\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';\nimport {NgxAurMatTableComponent} from './ngx-aur-mat-table.component';\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatTableModule} from \"@angular/material/table\";\nimport {MatPaginatorModule} from \"@angular/material/paginator\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatSortModule} from \"@angular/material/sort\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\nimport {DataPropertyGetterPipe} from \"./data-property-getter-pipe/data-property-getter.pipe\";\nimport {ColumnViewComponent} from './components/column-value/column-view.component';\nimport {CommonModule} from \"@angular/common\";\n\n\n@NgModule({\n declarations: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe,\n ColumnViewComponent\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatTableModule,\n MatPaginatorModule,\n MatButtonModule,\n MatInputModule,\n MatSortModule,\n MatTooltipModule,\n MatCheckboxModule,\n MatFormFieldModule\n ],\n exports: [\n NgxAurMatTableComponent,\n DataPropertyGetterPipe\n ]\n})\nexport class NgxAurMatTableModule {\n}\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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"}
|