/**
* @private
*/
- _updateHoverStyles(active, lastActive) {
+ _updateHoverStyles(active, lastActive, replay) {
const me = this;
const options = me.options || {};
const hoverOptions = options.hover;
const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));
const deactivated = diff(lastActive, active);
- const activated = diff(active, lastActive);
+ const activated = replay ? active : diff(active, lastActive);
if (deactivated.length) {
me.updateHoverStyle(deactivated, hoverOptions.mode, false);
changed = !_elementsEqual(active, lastActive);
if (changed || replay) {
me._active = active;
- me._updateHoverStyles(active, lastActive);
+ me._updateHoverStyles(active, lastActive, replay);
}
return changed;
*/
export function _coordsAnimated(element) {
const anims = element && element.$animations;
- return anims && ((anims.x && anims.x.active) || (anims.y && anims.y.active));
+ return anims && ((anims.x && anims.x.active()) || (anims.y && anims.y.active()));
}
expect(elem.getProps(['x', 'y'])).toEqual(jasmine.objectContaining({x: 10, y: 1.5}));
expect(elem.getProps(['x', 'y'], true)).toEqual(jasmine.objectContaining({x: 10, y: 1.5}));
- elem.$animations = {x: {active: true, _to: 20}};
+ elem.$animations = {x: {active: () => true, _to: 20}};
expect(elem.getProps(['x', 'y'])).toEqual(jasmine.objectContaining({x: 10, y: 1.5}));
expect(elem.getProps(['x', 'y'], true)).toEqual(jasmine.objectContaining({x: 20, y: 1.5}));
});