diff --git a/karma.conf.js b/karma.conf.js index 5601cbd7212..c41b23e0e03 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -19,7 +19,6 @@ module.exports = function(karma) { // These settings deal with browser disconnects. We had seen test flakiness from Firefox // [Firefox 56.0.0 (Linux 0.0.0)]: Disconnected (1 times), because no message in 10000 ms. // https://github.com/jasmine/jasmine/issues/1327#issuecomment-332939551 - browserNoActivityTimeout: 60000, browserDisconnectTolerance: 3 }; diff --git a/src/controllers/controller.doughnut.js b/src/controllers/controller.doughnut.js index 58cc1224fd1..eb759fe60b8 100644 --- a/src/controllers/controller.doughnut.js +++ b/src/controllers/controller.doughnut.js @@ -229,8 +229,14 @@ module.exports = function(Chart) { }); var model = arc._model; + // Resets the visual styles - this.removeHoverStyle(arc); + var custom = arc.custom || {}; + var valueOrDefault = helpers.valueAtIndexOrDefault; + var elementOpts = this.chart.options.elements.arc; + model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor); + model.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor); + model.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth); // Set correct angles if not resetting if (!reset || !animationOpts.animateRotate) { @@ -246,19 +252,6 @@ module.exports = function(Chart) { arc.pivot(); }, - /* removeHoverStyle: function(element) { - var elementOpts = this.chart.options.elements.arc; - var dataset = this.chart.data.datasets[element._datasetIndex]; - var index = element._index; - var custom = element.custom || {}; - var valueOrDefault = helpers.valueAtIndexOrDefault; - var model = element._model; - - model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor); - model.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor); - model.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth); - }, */ - calculateTotal: function() { var dataset = this.getDataset(); var meta = this.getMeta(); diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index 86707684b18..12fdd558e76 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -313,18 +313,10 @@ module.exports = function(Chart) { radius: model.radius }; - model.backgroundColor - = custom.hoverBackgroundColor - || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor)); - model.borderColor - = custom.hoverBorderColor - || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor)); - model.borderWidth - = custom.hoverBorderWidth - || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth); - model.radius - = custom.hoverRadius - || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius); + model.backgroundColor = custom.hoverBackgroundColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor)); + model.borderColor = custom.hoverBorderColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor)); + model.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth); + model.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius); }, }); }; diff --git a/src/controllers/controller.polarArea.js b/src/controllers/controller.polarArea.js index c80025e50cc..1b373b53bc5 100644 --- a/src/controllers/controller.polarArea.js +++ b/src/controllers/controller.polarArea.js @@ -188,22 +188,16 @@ module.exports = function(Chart) { }); // Apply border and fill style - me.removeHoverStyle(arc); - - arc.pivot(); - }, - - removeHoverStyle: function(element) { var elementOpts = this.chart.options.elements.arc; - var dataset = this.chart.data.datasets[element._datasetIndex]; - var index = element._index; - var custom = element.custom || {}; + var custom = arc.custom || {}; var valueOrDefault = helpers.valueAtIndexOrDefault; - var model = element._model; + var model = arc._model; model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor); model.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor); model.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth); + + arc.pivot(); }, countVisibleElements: function() { diff --git a/src/controllers/controller.radar.js b/src/controllers/controller.radar.js index b1f0964a390..10d71cdacb5 100644 --- a/src/controllers/controller.radar.js +++ b/src/controllers/controller.radar.js @@ -153,22 +153,10 @@ module.exports = function(Chart) { radius: model.radius }; - model.radius - = custom.hoverRadius - ? custom.hoverRadius - : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius); - model.backgroundColor - = custom.hoverBackgroundColor - ? custom.hoverBackgroundColor - : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor)); - model.borderColor - = custom.hoverBorderColor - ? custom.hoverBorderColor - : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor)); - model.borderWidth - = custom.hoverBorderWidth - ? custom.hoverBorderWidth - : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth); + model.radius = custom.hoverRadius ? custom.hoverRadius : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius); + model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor)); + model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor)); + model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth); }, }); }; diff --git a/src/core/core.datasetController.js b/src/core/core.datasetController.js index 0c2f23f746f..4928f98913e 100644 --- a/src/core/core.datasetController.js +++ b/src/core/core.datasetController.js @@ -247,6 +247,7 @@ module.exports = function(Chart) { var dataset = this.chart.data.datasets[element._datasetIndex]; var index = element._index; var custom = element.custom || {}; + var valueOrDefault = helpers.valueAtIndexOrDefault; var getHoverColor = helpers.getHoverColor; var model = element._model; @@ -256,18 +257,9 @@ module.exports = function(Chart) { borderWidth: model.borderWidth }; - model.backgroundColor - = custom.hoverBackgroundColor - ? custom.hoverBackgroundColor - : helpers.valueAtIndexOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor)); - model.borderColor - = custom.hoverBorderColor - ? custom.hoverBorderColor - : helpers.valueAtIndexOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor)); - model.borderWidth - = custom.hoverBorderWidth - ? custom.hoverBorderWidth - : helpers.valueAtIndexOrDefault(dataset.hoverBorderWidth, index, model.borderWidth); + model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : valueOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor)); + model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor)); + model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth); }, /** diff --git a/test/specs/controller.doughnut.tests.js b/test/specs/controller.doughnut.tests.js index 08df65ff1e5..b1969e2817a 100644 --- a/test/specs/controller.doughnut.tests.js +++ b/test/specs/controller.doughnut.tests.js @@ -294,7 +294,6 @@ describe('Chart.controllers.doughnut', function() { var meta = chart.getDatasetMeta(0); var arc = meta.data[0]; - meta.controller.setHoverStyle(arc); expect(arc._model.backgroundColor).toBe('rgb(230, 0, 0)'); expect(arc._model.borderColor).toBe('rgb(0, 0, 230)'); @@ -357,9 +356,7 @@ describe('Chart.controllers.doughnut', function() { var arc = meta.data[0]; chart.update(); - // meta.controller.setHoverStyle(arc); - // meta.controller.removeHoverStyle(arc); expect(arc._model.backgroundColor).toBe('rgb(255, 0, 0)'); expect(arc._model.borderColor).toBe('rgb(0, 0, 255)'); @@ -369,10 +366,9 @@ describe('Chart.controllers.doughnut', function() { chart.data.datasets[0].backgroundColor = 'rgb(9, 9, 9)'; chart.data.datasets[0].borderColor = 'rgb(18, 18, 18)'; chart.data.datasets[0].borderWidth = 1.56; + chart.update(); - // meta.controller.setHoverStyle(arc); - // meta.controller.removeHoverStyle(arc); expect(arc._model.backgroundColor).toBe('rgb(9, 9, 9)'); expect(arc._model.borderColor).toBe('rgb(18, 18, 18)'); @@ -382,10 +378,9 @@ describe('Chart.controllers.doughnut', function() { chart.data.datasets[0].backgroundColor = ['rgb(255, 255, 255)', 'rgb(9, 9, 9)']; chart.data.datasets[0].borderColor = ['rgb(18, 18, 18)']; chart.data.datasets[0].borderWidth = [0.1, 1.56]; + chart.update(); - // meta.controller.setHoverStyle(arc); - // meta.controller.removeHoverStyle(arc); expect(arc._model.backgroundColor).toBe('rgb(255, 255, 255)'); expect(arc._model.borderColor).toBe('rgb(18, 18, 18)'); @@ -399,9 +394,7 @@ describe('Chart.controllers.doughnut', function() { }; chart.update(); - // meta.controller.setHoverStyle(arc); - // meta.controller.removeHoverStyle(arc); expect(arc._model.backgroundColor).toBe('rgb(7, 7, 7)'); expect(arc._model.borderColor).toBe('rgb(17, 17, 17)'); diff --git a/test/specs/controller.line.tests.js b/test/specs/controller.line.tests.js index fb6c8b39094..b03162ea9d4 100644 --- a/test/specs/controller.line.tests.js +++ b/test/specs/controller.line.tests.js @@ -704,7 +704,6 @@ describe('Chart.controllers.line', function() { meta.controller.removeHoverStyle(point); chart.update(); - expect(point._model.backgroundColor).toBe('rgb(45, 46, 47)'); expect(point._model.borderColor).toBe('rgb(50, 51, 52)'); expect(point._model.borderWidth).toBe(10.1); @@ -718,7 +717,6 @@ describe('Chart.controllers.line', function() { meta.controller.removeHoverStyle(point); chart.update(); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); expect(point._model.borderWidth).toBe(2.1); @@ -731,7 +729,6 @@ describe('Chart.controllers.line', function() { meta.controller.removeHoverStyle(point); chart.update(); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); expect(point._model.borderWidth).toBe(2.1); @@ -747,7 +744,6 @@ describe('Chart.controllers.line', function() { meta.controller.removeHoverStyle(point); chart.update(); - expect(point._model.backgroundColor).toBe('rgb(0, 0, 0)'); expect(point._model.borderColor).toBe('rgb(10, 10, 10)'); expect(point._model.borderWidth).toBe(5.5); diff --git a/test/specs/controller.polarArea.tests.js b/test/specs/controller.polarArea.tests.js index 93b05c07804..1b1efe06614 100644 --- a/test/specs/controller.polarArea.tests.js +++ b/test/specs/controller.polarArea.tests.js @@ -332,14 +332,12 @@ describe('Chart.controllers.polarArea', function() { meta.controller.setHoverStyle(arc); chart.update(); - expect(arc._model.backgroundColor).toBe('rgb(45, 46, 47)'); expect(arc._model.borderColor).toBe('rgb(50, 51, 52)'); expect(arc._model.borderWidth).toBe(10.1); meta.controller.removeHoverStyle(arc); chart.update(); - expect(arc._model.backgroundColor).toBe('rgb(45, 46, 47)'); expect(arc._model.borderColor).toBe('rgb(50, 51, 52)'); expect(arc._model.borderWidth).toBe(10.1);