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) {
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;
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() {
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() {
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() {
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);
});
});
});