diff --git a/projects/components/src/table/cells/state-parsers/table-cell-state-parser.ts b/projects/components/src/table/cells/state-parsers/table-cell-state-parser.ts index ff3f7847c..bf6672fd6 100644 --- a/projects/components/src/table/cells/state-parsers/table-cell-state-parser.ts +++ b/projects/components/src/table/cells/state-parsers/table-cell-state-parser.ts @@ -1,4 +1,4 @@ -import { TableRowState } from '../../table-api'; +import { StatefulTableRow, TableRowState } from '../../table-api'; import { TableCellParser } from '../table-cell-parser'; import { TableCellParserBase } from '../table-cell-parser-base'; import { CoreTableCellParserType } from '../types/core-table-cell-parser-type'; @@ -7,8 +7,8 @@ import { CoreTableCellParserType } from '../types/core-table-cell-parser-type'; type: CoreTableCellParserType.State }) export class TableCellStateParser extends TableCellParserBase { - public parseValue(cellData: TableRowState): TableRowState { - return cellData; + public parseValue(_: TableRowState, rowData: StatefulTableRow): TableRowState { + return rowData.$$state; } public parseFilterValue(): undefined { diff --git a/projects/components/src/table/cells/types/core-table-cell-parser-type.ts b/projects/components/src/table/cells/types/core-table-cell-parser-type.ts index 99ccdb803..ea3a57d72 100644 --- a/projects/components/src/table/cells/types/core-table-cell-parser-type.ts +++ b/projects/components/src/table/cells/types/core-table-cell-parser-type.ts @@ -1,7 +1,7 @@ export const enum CoreTableCellParserType { - State = 'state', Boolean = 'boolean', Number = 'number', + State = 'state', String = 'string', Timestamp = 'timestamp', Icon = 'icon', diff --git a/projects/components/src/table/data/table-cdk-data-source.ts b/projects/components/src/table/data/table-cdk-data-source.ts index 4f389dcb2..cd82abbf4 100644 --- a/projects/components/src/table/data/table-cdk-data-source.ts +++ b/projects/components/src/table/data/table-cdk-data-source.ts @@ -59,7 +59,7 @@ export class TableCdkDataSource implements DataSource { .pipe( tap(() => this.loadingStateSubject.next({ loading$: NEVER })), /** - * Below debouce is needed to handle multiple emission from buildChangeObservable. + * Below debounce is needed to handle multiple emission from buildChangeObservable. */ debounceTime(100), mergeMap(([columnConfigs, pageEvent, filters, queryProperties, changedColumn, changedRow]) => diff --git a/projects/components/src/table/table.component.test.ts b/projects/components/src/table/table.component.test.ts index 38546ece6..fa153597e 100644 --- a/projects/components/src/table/table.component.test.ts +++ b/projects/components/src/table/table.component.test.ts @@ -306,7 +306,7 @@ describe('Table component', () => { expectObservable(spectator.component.columnConfigs$).toBe('x', { x: [ expect.objectContaining({ - id: '$$state', + id: '$$selected', display: CoreTableCellRendererType.Checkbox, visible: true }), @@ -371,16 +371,21 @@ describe('Table component', () => { map(columnConfigs => columnConfigs.map(columnConfig => spectator.component.isExpanderColumn(columnConfig))) ) ).toBe('x', { - x: [true, false, false] + x: [true, false, false, false] }); expectObservable(spectator.component.columnConfigs$).toBe('x', { x: [ expect.objectContaining({ - id: '$$state', + id: '$$expanded', display: CoreTableCellRendererType.RowExpander, visible: true }), + expect.objectContaining({ + id: '$$selected', + display: CoreTableCellRendererType.Checkbox, + visible: true + }), expect.objectContaining({ id: 'firstId' }), diff --git a/projects/components/src/table/table.component.ts b/projects/components/src/table/table.component.ts index 988828bf7..8462e1f5f 100644 --- a/projects/components/src/table/table.component.ts +++ b/projects/components/src/table/table.component.ts @@ -194,7 +194,7 @@ export class TableComponent private static readonly SORT_DIRECTION_URL_PARAM: string = 'sort-direction'; private readonly expandableToggleColumnConfig: TableColumnConfig = { - id: '$$state', + id: '$$expanded', width: '32px', visible: true, display: CoreTableCellRendererType.RowExpander, @@ -202,7 +202,7 @@ export class TableComponent }; private readonly multiSelectRowColumnConfig: TableColumnConfig = { - id: '$$state', + id: '$$selected', width: '32px', visible: true, display: CoreTableCellRendererType.Checkbox, @@ -569,11 +569,15 @@ export class TableComponent } private buildColumnConfigExtendeds(columnConfigs: TableColumnConfig[]): TableColumnConfigExtended[] { - const stateColumns = this.hasExpandableRows() - ? [this.expandableToggleColumnConfig] - : this.hasMultiSelect() - ? [this.multiSelectRowColumnConfig] - : []; + const stateColumns = []; + + if (this.hasExpandableRows()) { + stateColumns.push(this.expandableToggleColumnConfig); + } + + if (this.hasMultiSelect()) { + stateColumns.push(this.multiSelectRowColumnConfig); + } return this.tableService.buildExtendedColumnConfigs( [...stateColumns, ...columnConfigs],