export function createTooltipData()

in src/tooltipBuilder.ts [81:152]


export function createTooltipData(
    dataView: DataView,
    valuesSource: DataViewMetadataColumn,
    seriesValues: TooltipSeriesDataItem[],
    localizationManager: ILocalizationManager): VisualTooltipDataItem[] {

    const items: VisualTooltipDataItem[] = [];

    if (valuesSource) {
        // Dynamic series value
        let dynamicValue: string;

        if (seriesValues.length > 0) {
            const dynamicValueMetadata: DataViewMetadataColumn = seriesValues[0].metadata.source;

            dynamicValue = getFormattedValue(
                valuesSource,
                dynamicValueMetadata.groupName);
        }

        items.push({
            displayName: valuesSource.displayName,
            value: dynamicValue
        });
    }

    for (let index: number = 0; index < seriesValues.length; index++) {
        const seriesData: TooltipSeriesDataItem = seriesValues[index];

        if (seriesData && seriesData.metadata) {
            const seriesMetadataColumn: DataViewMetadataColumn = seriesData.metadata.source,
                value: any = seriesData.value,
                highlightedValue: any = seriesData.highlightedValue;

            if (value || value === 0) {
                let formattedValue: string = getFormattedValue(
                    seriesMetadataColumn,
                    value);

                items.push({
                    displayName: seriesMetadataColumn.displayName,
                    value: formattedValue
                });
            }

            if (highlightedValue || highlightedValue === 0) {
                let formattedHighlightedValue: string = getFormattedValue(
                    seriesMetadataColumn,
                    highlightedValue);

                items.push({
                    displayName: localizationManager.getDisplayName(HighlightedValueDisplayName),
                    value: formattedHighlightedValue
                });
            }

            if (seriesData.metadata.values) {
                let valuesList: string;
                if (seriesData.metadata.highlights)
                    valuesList = seriesData.metadata.highlights.filter(d => d === null ? false : true).join(" ");
                else
                    valuesList = seriesData.metadata.values.join(" ");
                items.push({
                    displayName: localizationManager.getDisplayName(VisualTooltipsValues),
                    value: valuesList
                });
            }
        }
    }

    return items;
}