in src/columns.ts [56:86]
public static getCategoricalValues(dataView: DataView): GanttColumns<any> {
let categorical: DataViewCategorical = dataView && dataView.categorical;
let categories: DataViewCategoricalColumn[] = categorical && categorical.categories || [];
let values: DataViewValueColumns = categorical && categorical.values || <DataViewValueColumns>[];
let series: PrimitiveValue[] = categorical && values.source && this.getSeriesValues(dataView);
return categorical && _.mapValues(new this<any[]>(), (n, i) => {
let columns: PrimitiveValue[] | { [x: string]: PrimitiveValue[]; };
(<DataViewValueColumn[]>_.toArray(categories))
.concat(_.toArray(values))
.filter(x => x.source.roles && x.source.roles[i])
.forEach(x => {
if (i === extraInformationRole && x.source.roles && x.source.roles[extraInformationRole]) {
if (!columns) {
columns = {};
}
if (x.source.format) {
const formatter = ValueFormatter.create({ format: x.source.format });
columns[x.source.displayName] = x.values.map(v => formatter.format(v));
} else {
columns[x.source.displayName] = x.values;
}
} else {
columns = x.values;
}
});
return columns || values.source && values.source.roles && values.source.roles[i] && series;
});
}