in packages/timebrush-powerbi/src/dataConversion.ts [91:120]
export function convertItem(
date: any,
segmentInfo: Array<{ name: string; color: any; }>,
valueIdx: number,
categoryIdentity: powerbi.DataViewCategoryColumn,
values: powerbi.DataViewValueColumns,
reverseBars: boolean,
selectionIdBuilder: powerbi.visuals.ISelectionIdBuilder) {
"use strict";
const coercedDate = coerceDate(date);
let total = 0;
segmentInfo.forEach((n, j) => {
total += (values[j].values[valueIdx] as number || 0);
});
let valueSegments = segmentInfo.map((n, j) => {
const segVal = values[j].values[valueIdx] as number;
return {
value: parseFloat(((total === 0 ? 0 : segVal / total) * 100).toFixed(2)),
color: n.color,
};
}).filter(n => n.value > 0.1);
valueSegments = reverseBars ? valueSegments.reverse() : valueSegments;
return coercedDate ? {
date: coercedDate,
rawDate: date,
value: total,
identity: (selectionIdBuilder) ? selectionIdBuilder.withCategory(categoryIdentity, valueIdx).createSelectionId() : -1,
valueSegments,
} as TimeBrushVisualDataItem : null;
}