mirror of
https://github.com/chartjs/Chart.js.git
synced 2025-12-08 20:36:08 +00:00
Fix tooltip for 'dataset' mode (#6961)
This commit is contained in:
parent
5aaff3a1aa
commit
fb19b77e4b
@ -888,10 +888,6 @@ class Chart {
|
||||
if (mode === 'dataset') {
|
||||
meta = this.getDatasetMeta(items[0].datasetIndex);
|
||||
meta.controller['_' + prefix + 'DatasetHoverStyle']();
|
||||
for (i = 0, ilen = meta.data.length; i < ilen; ++i) {
|
||||
meta.controller[prefix + 'HoverStyle'](meta.data[i], items[0].datasetIndex, i);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0, ilen = items.length; i < ilen; ++i) {
|
||||
|
||||
@ -228,7 +228,12 @@ export default {
|
||||
let items = options.intersect ? getIntersectItems(chart, position, axis) : getNearestItems(chart, position, axis);
|
||||
|
||||
if (items.length > 0) {
|
||||
items = [{datasetIndex: items[0].datasetIndex}]; // when mode: 'dataset' we only need to return datasetIndex
|
||||
const datasetIndex = items[0].datasetIndex;
|
||||
const data = chart.getDatasetMeta(datasetIndex).data;
|
||||
items = [];
|
||||
for (let i = 0; i < data.length; ++i) {
|
||||
items.push({element: data[i], datasetIndex, index: i});
|
||||
}
|
||||
}
|
||||
|
||||
return items;
|
||||
|
||||
@ -227,8 +227,8 @@ describe('Core.Interaction', function() {
|
||||
y: point.y
|
||||
};
|
||||
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {intersect: true});
|
||||
expect(elements).toEqual([{datasetIndex: 0}]);
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {intersect: true}).map(item => item.element);
|
||||
expect(elements).toEqual(meta.data);
|
||||
});
|
||||
|
||||
it ('should return an empty array if nothing found', function() {
|
||||
@ -283,8 +283,8 @@ describe('Core.Interaction', function() {
|
||||
y: chart.chartArea.top
|
||||
};
|
||||
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {axis: 'x', intersect: false});
|
||||
expect(elements).toEqual([{datasetIndex: 0}]);
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {axis: 'x', intersect: false}).map(item => item.element);
|
||||
expect(elements).toEqual(chart.getDatasetMeta(0).data);
|
||||
});
|
||||
|
||||
it ('axis: y gets correct items', function() {
|
||||
@ -297,8 +297,8 @@ describe('Core.Interaction', function() {
|
||||
y: chart.chartArea.top
|
||||
};
|
||||
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {axis: 'y', intersect: false});
|
||||
expect(elements).toEqual([{datasetIndex: 1}]);
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {axis: 'y', intersect: false}).map(item => item.element);
|
||||
expect(elements).toEqual(chart.getDatasetMeta(1).data);
|
||||
});
|
||||
|
||||
it ('axis: xy gets correct items', function() {
|
||||
@ -311,8 +311,8 @@ describe('Core.Interaction', function() {
|
||||
y: chart.chartArea.top
|
||||
};
|
||||
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {intersect: false});
|
||||
expect(elements).toEqual([{datasetIndex: 1}]);
|
||||
var elements = Chart.Interaction.modes.dataset(chart, evt, {intersect: false}).map(item => item.element);
|
||||
expect(elements).toEqual(chart.getDatasetMeta(1).data);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user