public static getCategoricalValues()

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;
        });
    }