Stop map column names for notebook grid, instead use field with unique values (#3975)

This commit is contained in:
Chris LaFreniere
2019-02-08 09:59:36 -10:00
committed by GitHub
parent 160ab8d0ae
commit b692088c94

View File

@@ -46,7 +46,7 @@ export function renderDataResource(
let rowNumberColumn = new RowNumberColumn({ numberOfRows: source.length }); let rowNumberColumn = new RowNumberColumn({ numberOfRows: source.length });
columnsTransformed.unshift(rowNumberColumn.getColumnDefinition()); columnsTransformed.unshift(rowNumberColumn.getColumnDefinition());
let transformedData = transformData(sourceObject.data, columns); let transformedData = transformData(sourceObject.data, columnsTransformed);
tableResultsData.push(transformedData); tableResultsData.push(transformedData);
let detailTable = new Table(tableContainer, { let detailTable = new Table(tableContainer, {
@@ -72,30 +72,31 @@ export function renderDataResource(
} }
// SlickGrid requires columns and data to be in a very specific format; this code was adapted from tableInsight.component.ts // SlickGrid requires columns and data to be in a very specific format; this code was adapted from tableInsight.component.ts
function transformData(rows: any[], columns: string[]): { [key: string]: string }[] { function transformData(rows: any[], columns: Slick.Column<any>[]): { [key: string]: string }[] {
return rows.map(row => { return rows.map(row => {
let dataWithSchema = {}; let dataWithSchema = {};
Object.keys(row).forEach((val, index) => { Object.keys(row).forEach((val, index) => {
let displayValue = String(Object.values(row)[index]); let displayValue = String(Object.values(row)[index]);
dataWithSchema[columns[index]] = { // Since the columns[0] represents the row number, start at 1
displayValue: displayValue, dataWithSchema[columns[index + 1].field] = {
ariaLabel: escape(displayValue), displayValue: displayValue,
isNull: false ariaLabel: escape(displayValue),
}; isNull: false
}); };
return dataWithSchema; });
}); return dataWithSchema;
});
} }
function transformColumns(columns: string[]): Slick.Column<any>[] { function transformColumns(columns: string[]): Slick.Column<any>[] {
return columns.map(col => { return columns.map((col, index) => {
return <Slick.Column<any>>{ return <Slick.Column<any>>{
name: col, name: col,
id: col, id: col,
field: col, field: index.toString(),
formatter: textFormatter formatter: textFormatter
}; };
}); });
} }
/** /**