```javascript
{
- // X Value of the tooltip as a string
+ // Label for the tooltip
+ label: string,
+
+ // Value for the tooltip
+ value: string,
+
+ // X Value of the tooltip
+ // (deprecated) use `value` or `label` instead
xLabel: string,
- // Y value of the tooltip as a string
+ // Y value of the tooltip
+ // (deprecated) use `value` or `label` instead
yLabel: string,
// Index of the dataset the item comes from
},
tooltips: {
- callbacks: {
- title: function(item, data) {
- // Pick first xLabel for now
- var title = '';
-
- if (item.length > 0) {
- if (item[0].yLabel) {
- title = item[0].yLabel;
- } else if (data.labels.length > 0 && item[0].index < data.labels.length) {
- title = data.labels[item[0].index];
- }
- }
-
- return title;
- },
-
- label: function(item, data) {
- var datasetLabel = data.datasets[item.datasetIndex].label || '';
- return datasetLabel + ': ' + item.xLabel;
- }
- },
mode: 'index',
axis: 'y'
}
// Args are: (tooltipItems, data)
beforeTitle: helpers.noop,
title: function(tooltipItems, data) {
- // Pick first xLabel for now
var title = '';
var labels = data.labels;
var labelCount = labels ? labels.length : 0;
if (tooltipItems.length > 0) {
var item = tooltipItems[0];
-
- if (item.xLabel) {
+ if (item.label) {
+ title = item.label;
+ } else if (item.xLabel) {
title = item.xLabel;
} else if (labelCount > 0 && item.index < labelCount) {
title = labels[item.index];
if (label) {
label += ': ';
}
- label += tooltipItem.yLabel;
+ if (!helpers.isNullOrUndef(tooltipItem.value)) {
+ label += tooltipItem.value;
+ } else {
+ label += tooltipItem.yLabel;
+ }
return label;
},
labelColor: function(tooltipItem, chart) {
var yScale = element._yScale || element._scale; // handle radar || polarArea charts
var index = element._index;
var datasetIndex = element._datasetIndex;
+ var controller = element._chart.getDatasetMeta(datasetIndex).controller;
+ var indexScale = controller._getIndexScale();
+ var valueScale = controller._getValueScale();
return {
xLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',
yLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',
+ label: indexScale ? indexScale.getLabelForIndex(index, datasetIndex) : '',
+ value: valueScale ? valueScale.getLabelForIndex(index, datasetIndex) : '',
index: index,
datasetIndex: datasetIndex,
x: element._model.x,