in src/dataViewBuilder/testDataViewBuilder.ts [128:164]
static createDataViewBuilderColumnOptions(
categoriesColumns: (TestDataViewBuilderCategoryColumnOptions | TestDataViewBuilderCategoryColumnOptions[])[],
valuesColumns: (DataViewBuilderValuesColumnOptions | DataViewBuilderValuesColumnOptions[])[],
filter?: (options: TestDataViewBuilderColumnOptions) => boolean,
customizeColumns?: CustomizeColumnFn): DataViewBuilderAllColumnOptions {
let filterColumns = filter
? (options) => Array.isArray(options.values) && filter(options)
: (options) => Array.isArray(options.values);
let resultCategoriesColumns = isEmpty(categoriesColumns) ? [] : (<TestDataViewBuilderCategoryColumnOptions[]>flatten(categoriesColumns)).filter(filterColumns);
let resultValuesColumns = isEmpty(valuesColumns) ? [] : (<DataViewBuilderValuesColumnOptions[]>flatten(valuesColumns)).filter(filterColumns);
let allColumns = (resultCategoriesColumns || []).concat(resultValuesColumns || []);
allColumns.forEach((x: DataViewCategoricalColumn, i) => x.source.index = i);
if (customizeColumns) {
allColumns.forEach((column: TestDataViewBuilderColumnOptions) => customizeColumns(column.source));
}
allColumns.forEach((column: TestDataViewBuilderColumnOptions) => {
if (column.source.format) {
let objects = column.source.objects = (<any>column.source.objects || {});
objects.general = objects.general || {};
objects.general.formatString = objects.general.formatString || column.source.format;
}
});
return {
categories: resultCategoriesColumns.filter(x => !x.isGroup),
grouped: resultCategoriesColumns.filter(x => x.isGroup),
values: resultValuesColumns
};
}