in src/tooltip.ts [54:135]
export function createTooltipInfo(
dataViewCat: DataViewCategorical,
categoryValue: any,
localizationManager: ILocalizationManager,
value?: any,
categories?: DataViewCategoryColumn[],
seriesData?: TooltipSeriesDataItem[],
seriesIndex?: number,
categoryIndex?: number,
highlightedValue?: any): VisualTooltipDataItem[] {
let categorySource: TooltipCategoryDataItem,
seriesSource: TooltipSeriesDataItem[] = [],
valuesSource: DataViewMetadataColumn = undefined;
seriesIndex = seriesIndex | 0;
let categoriesData: DataViewCategoryColumn[] = dataViewCat
? dataViewCat.categories
: categories;
if (categoriesData && categoriesData.length > 0) {
if (categoriesData.length > 1) {
const compositeCategoriesData: DataViewMetadataColumn[] = [];
for (let i: number = 0; i < categoriesData.length; 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) {
const valueColumn: DataViewValueColumn = dataViewCat.values[seriesIndex],
isAutoGeneratedColumn: boolean = !!(valueColumn
&& valueColumn.source
&& (valueColumn.source as any).isAutoGeneratedColumn);
if (!isAutoGeneratedColumn) {
seriesSource.push({
value,
highlightedValue,
metadata: valueColumn
});
}
}
}
if (seriesData) {
for (let i: number = 0; i < seriesData.length; i++) {
const singleSeriesData: TooltipSeriesDataItem = seriesData[i];
if (categorySource
&& categorySource.metadata[0] === singleSeriesData.metadata.source) {
continue;
}
seriesSource.push({
value: singleSeriesData.value,
metadata: singleSeriesData.metadata
});
}
}
return createTooltipData(categorySource, valuesSource, seriesSource, localizationManager);
}