export function createTooltipInfo()

in src/tooltipBuilder.ts [57:117]


export function createTooltipInfo(
    dataViewCat: DataViewCategorical,
    categoryValue: any,
    localizationManager,
    value?: any,
    seriesIndex?: number): VisualTooltipDataItem[] {

    let categorySource: TooltipCategoryDataItem,
        seriesSource: TooltipSeriesDataItem[] = [],
        valuesSource: DataViewMetadataColumn = undefined;

    seriesIndex = seriesIndex | DefaultSeriesIndex;

    let categoriesData: DataViewCategoricalColumn[] = dataViewCat && dataViewCat.categories;

    if (categoriesData && categoriesData.length > 0) {
        if (categoriesData.length > 1) {
            let compositeCategoriesData: DataViewMetadataColumn[] = [];

            for (let i: number = 0, ilen: number = categoriesData.length; i < ilen; i++) {
                compositeCategoriesData.push(categoriesData[i].source);
            }

            categorySource = {
                value: categoryValue,
                metadata: compositeCategoriesData
            };
        }
        else {
            categorySource = {
                value: categoryValue,
                metadata: [categoriesData[0].source]
            };
        }
    }
    if (dataViewCat && dataViewCat.values) {
        if (!categorySource || !(categorySource.metadata[0] === dataViewCat.values.source)) {
            valuesSource = dataViewCat.values.source;
        }

        if (dataViewCat.values.length > 0) {
            let valueColumn: DataViewValueColumn = dataViewCat.values[seriesIndex],
                isAutoGeneratedColumn: boolean = !!(valueColumn
                    && valueColumn.source
                    && (<any>valueColumn.source).isAutoGeneratedColumn);

            if (!isAutoGeneratedColumn) {
                seriesSource.push({
                    value: value,
                    metadata: valueColumn
                });
            }
        }
    }

    return createTooltipData(
        categorySource,
        valuesSource,
        seriesSource,
        localizationManager);
}