From c32fa331da6a6d6213e52f35dc4cb8f9272275f8 Mon Sep 17 00:00:00 2001 From: kurkle Date: Wed, 18 Sep 2019 11:08:47 +0300 Subject: [PATCH] Hover styling for dataset in 'dataset' mode --- src/controllers/controller.line.js | 15 +++++++++++++++ src/core/core.controller.js | 5 +++++ src/core/core.datasetController.js | 6 ++++++ 3 files changed, 26 insertions(+) diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index c2d67549bfa..da22a705b04 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -315,4 +315,19 @@ module.exports = DatasetController.extend({ model.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth); model.radius = valueOrDefault(options.hoverRadius, options.radius); }, + + setDatasetHoverStyle: function() { + var line = this.getMeta().dataset; + var model = line._model; + var config = this._config; + var getHoverColor = helpers.getHoverColor; + + line.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor + }; + + model.backgroundColor = valueOrDefault(config.hoverBackgroundColor, getHoverColor(config.backgroundColor)); + model.borderColor = valueOrDefault(config.hoverBorderColor, getHoverColor(config.borderColor)); + }, }); diff --git a/src/core/core.controller.js b/src/core/core.controller.js index 694e7764611..6f3f7f8d1b4 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -964,6 +964,11 @@ helpers.extend(Chart.prototype, /** @lends Chart */ { this.getDatasetMeta(element._datasetIndex).controller[method](element); } } + + if (mode === 'dataset') { + method = enabled ? 'setDatasetHoverStyle' : 'removeDatasetHoverStyle'; + this.getDatasetMeta(elements[0]._datasetIndex).controller[method](); + } }, /** diff --git a/src/core/core.datasetController.js b/src/core/core.datasetController.js index 03a249a3fde..129b2a71b17 100644 --- a/src/core/core.datasetController.js +++ b/src/core/core.datasetController.js @@ -453,6 +453,12 @@ helpers.extend(DatasetController.prototype, { model.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index); }, + removeDatasetHoverStyle: function() { + this.removeHoverStyle(this.getMeta().dataset); + }, + + setDatasetHoverStyle: helpers.noop, + /** * @private */