export function convertItem()

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