Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions projects/components/src/table/table.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,9 @@ export class TableComponent
public readonly columnConfigsChange: EventEmitter<TableColumnConfig[]> = new EventEmitter<TableColumnConfig[]>();

@Output()
public readonly sortChange: EventEmitter<SortedColumn> = new EventEmitter<SortedColumn>();
public readonly sortChange: EventEmitter<SortedColumn<TableColumnConfig>> = new EventEmitter<
SortedColumn<TableColumnConfig>
>();

@ViewChild(PaginatorComponent)
public paginator?: PaginatorComponent;
Expand Down Expand Up @@ -390,7 +392,7 @@ export class TableComponent
combineLatest([this.activatedRoute.queryParamMap, this.columnConfigs$])
.pipe(
map(([queryParamMap, columns]) => this.sortDataFromUrl(queryParamMap, columns)),
filter((sort): sort is Required<SortedColumn> => sort !== undefined)
filter((sort): sort is Required<SortedColumn<TableColumnConfigExtended>> => sort !== undefined)
)
.subscribe(sort => this.updateSort(sort));
}
Expand Down Expand Up @@ -541,7 +543,7 @@ export class TableComponent

public onSortChange(direction: TableSortDirection, columnConfig: TableColumnConfigExtended): void {
if (TableCdkColumnUtil.isColumnSortable(columnConfig)) {
const sortedColumn: SortedColumn = {
const sortedColumn: SortedColumn<TableColumnConfigExtended> = {
column: columnConfig,
direction: direction
};
Expand Down Expand Up @@ -629,7 +631,7 @@ export class TableComponent
return new TableCdkDataSource(this, this, this, this, this, this.paginator);
}

private updateSort(sort: SortedColumn): void {
private updateSort(sort: SortedColumn<TableColumnConfigExtended>): void {
sort.column.sort = sort.direction;
this.columnStateSubject.next(sort.column);
}
Expand Down Expand Up @@ -764,7 +766,10 @@ export class TableComponent
};
}

private sortDataFromUrl(params: ParamMap, columns: TableColumnConfigExtended[]): Required<SortedColumn> | undefined {
private sortDataFromUrl(
params: ParamMap,
columns: TableColumnConfigExtended[]
): Required<SortedColumn<TableColumnConfigExtended>> | undefined {
if (!this.syncWithUrl) {
return undefined;
}
Expand All @@ -781,8 +786,8 @@ export class TableComponent
}
}

export interface SortedColumn {
column: TableColumnConfigExtended;
export interface SortedColumn<TCol extends TableColumnConfig> {
column: TCol;
direction?: TableSortDirection;
}

Expand Down