Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 1x 1x 1x | import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
import { MatSelectionListChange } from '@angular/material/list';
import { IDashboardTableConfig } from '../../../interfaces/table-config.interface';
@Component({
selector: 'app-table-column-settings',
templateUrl: './table-column-settings.component.html',
styleUrls: ['./table-column-settings.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false,
})
export class AppTableColumnSettingsComponent<T> {
@Input() public columns: IDashboardTableConfig<T>['columns'] = [
{ name: 'one', order: 0 },
{ name: 'two', order: 1 },
];
@Input() public displayedColumns: IDashboardTableConfig<T>['displayedColumns'] = [];
@Output() public readonly columnVisibilityChange = new EventEmitter<IDashboardTableConfig<T>['columns']>();
public changeVisibleColumns(event: MatSelectionListChange) {
const value = event.source.selectedOptions.selected
.map(item => item.value as IDashboardTableConfig<T>['columns']['0'])
.sort((x, y) => x.order - y.order);
this.columnVisibilityChange.emit(value);
}
}
|