From 7f71990a40d12c019b5ba341afd42d93e20ebc42 Mon Sep 17 00:00:00 2001 From: Simon Brunel Date: Sun, 22 May 2016 00:21:59 +0200 Subject: [PATCH] Decomplexify Chart.core.controller.eventHandler Refactor redundant code, use local variables and introduce a new helper to compare arrays (Chart.helpers.arrayEquals). --- src/core/core.controller.js | 170 ++++++++++++++++-------------------- src/core/core.helpers.js | 24 +++++ 2 files changed, 99 insertions(+), 95 deletions(-) diff --git a/src/core/core.controller.js b/src/core/core.controller.js index aa60acc0b..36edf9e7a 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -388,6 +388,20 @@ module.exports = function(Chart) { return elementsArray; }, + getElementsAtEventForMode: function(e, mode) { + var me = this; + switch (mode) { + case 'single': + return me.getElementAtEvent(e); + case 'label': + return me.getElementsAtEvent(e); + case 'dataset': + return me.getDatasetAtEvent(e); + default: + return e; + } + }, + getDatasetAtEvent: function(e) { var elementsArray = this.getElementAtEvent(e); @@ -484,140 +498,106 @@ module.exports = function(Chart) { this.eventHandler(evt); }); }, + + updateHoverStyle: function(elements, mode, enabled) { + var method = enabled? 'setHoverStyle' : 'removeHoverStyle'; + var element, i, ilen; + + switch (mode) { + case 'single': + elements = [ elements[0] ]; + break; + case 'label': + case 'dataset': + // elements = elements; + break; + default: + // unsupported mode + return; + } + + for (i=0, ilen=elements.length; i