export function createTooltipData()

in src/tooltipBuilder.ts [119:210]


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

    let items: VisualTooltipDataItem[] = [];

    if (categoryValue) {
        if (categoryValue.metadata.length > 1) {
            let displayName: string = DefaultDisplayName;

            for (let i = 0, ilen = categoryValue.metadata.length; i < ilen; i++) {
                if (i !== 0) {
                    displayName += DisplayNameSeparator;
                }

                displayName += categoryValue.metadata[i].displayName;
            }
            let categoryFormattedValue: string = getFormattedValue(
                categoryValue.metadata[0],
                categoryValue.value);

            items.push({
                displayName,
                value: categoryFormattedValue
            });
        }
        else {
            let categoryFormattedValue: string = getFormattedValue(
                categoryValue.metadata[0],
                categoryValue.value);

            items.push({
                displayName: categoryValue.metadata[0].displayName,
                value: categoryFormattedValue
            });
        }
    }

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

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

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

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

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

        if (seriesData && seriesData.metadata) {
            let 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("Visual_Hightlighted"),
                    value: formattedHighlightedValue
                });
            }
        }
    }

    return items;
}