in src/columns.ts [42:67]
public static getCategoricalValues(dataView: DataView) {
const categorical: DataViewCategorical = dataView && dataView.categorical;
const categories: (DataViewCategoryColumn | DataViewValueColumn)[] = categorical && categorical.categories || [];
const values: DataViewValueColumns = categorical && categorical.values || <DataViewValueColumns>[];
const series: any = categorical && values.source && this.getSeriesValues(dataView);
return categorical && _.mapValues(new this<any[]>(), (n, i) =>
(<(DataViewCategoryColumn | DataViewValueColumn)[]>_
.toArray(categories))
.concat(_.toArray(values))
.filter(x => x.source.roles && x.source.roles[i])
.map(x => x.values.map(y => {
if (_.isString(y)) {
let date: Date = new Date(y);
if (isNaN(date.getTime())) {
return y;
}
return date;
}
return y;
}))[0]
|| values.source && values.source.roles && values.source.roles[i] && series);
}