in packages/timebrush-powerbi/src/dataConversion.ts [46:86]
export default function converter(
dataView: DataView,
selectionIdBuilderFactory: () => powerbi.visuals.ISelectionIdBuilder,
settings?: IConversionSettings): TimeBrushVisualDataItem[] {
"use strict";
let items: TimeBrushVisualDataItem[];
const dataViewCategorical = dataView && dataView.categorical;
// Must be two columns: times and values
if (dataViewCategorical && dataViewCategorical.categories && dataViewCategorical.values && dataViewCategorical.values.length) {
if (dataViewCategorical.categories.length === 1) {
const { defaultBarColor, seriesColors, reverseBars } = (settings || {}) as IConversionSettings;
const values = dataViewCategorical.values;
const gradient = getGradientFromSettings(settings || {});
// We should only add gradients if the data supports gradients, and the user has gradients enabled
const shouldAddGradients = dataSupportsGradients(dataView) && settings.useGradient;
// We should only colorize instances if the data supports colorized instances and the user isn't
// trying to use gradients
const shouldAddInstanceColors = dataSupportsColorizedInstances(dataView) && !settings.useGradient;
const segmentInfo = calculateSegments(
values,
dataSupportsDefaultColor(dataView) ? defaultBarColor : undefined,
shouldAddGradients ? gradient : undefined,
shouldAddInstanceColors ? seriesColors : undefined);
const dates = dataViewCategorical.categories[0].values;
items = dates.map((date, i) => {
return convertItem(
date,
segmentInfo,
i,
dataViewCategorical.categories[0],
values,
reverseBars !== false,
selectionIdBuilderFactory());
}).filter(n => !!n);
}
}
return items;
}