in src/columns.ts [46:69]
public static getCategoricalColumns(dataView: DataView) {
const categorical: DataViewCategorical = dataView && dataView.categorical;
const categories: DataViewCategoryColumn[] = categorical && categorical.categories || [];
const values: DataViewValueColumns = categorical && categorical.values || <DataViewValueColumns>[];
return categorical && _.mapValues(
new this<DataViewCategoryColumn & DataViewValueColumn[] & DataViewValueColumns>(),
(n, i) => {
let result: any = categories.filter(x => x.source.roles && x.source.roles[i])[0];
if (!result) {
result = values.source && values.source.roles && values.source.roles[i] && values;
}
if (!result) {
result = values.filter(x => x.source.roles && x.source.roles[i]);
if (_.isEmpty(result)) {
result = undefined;
}
}
return result;
});
}