Skip to content

Commit c98185e

Browse files
committed
Refactor updateElement and removeHoverStyle
1 parent 98ef394 commit c98185e

File tree

1 file changed

+29
-26
lines changed

1 file changed

+29
-26
lines changed

src/controllers/controller.bar.js

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -213,28 +213,9 @@ module.exports = function(Chart) {
213213

214214
updateElement: function(rectangle, index, reset) {
215215
var me = this;
216-
var chart = me.chart;
217-
var meta = me.getMeta();
218-
var dataset = me.getDataset();
219-
var custom = rectangle.custom || {};
220-
var rectangleOptions = chart.options.elements.rectangle;
221-
222-
rectangle._xScale = me.getScaleForId(meta.xAxisID);
223-
rectangle._yScale = me.getScaleForId(meta.yAxisID);
224-
rectangle._datasetIndex = me.index;
225216
rectangle._index = index;
226-
227-
rectangle._model = {
228-
datasetLabel: dataset.label,
229-
label: chart.data.labels[index],
230-
borderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleOptions.borderSkipped,
231-
backgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleOptions.backgroundColor),
232-
borderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleOptions.borderColor),
233-
borderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleOptions.borderWidth)
234-
};
235-
217+
me.updateRectangle(rectangle);
236218
me.updateElementGeometry(rectangle, index, reset);
237-
238219
rectangle.pivot();
239220
},
240221

@@ -474,16 +455,38 @@ module.exports = function(Chart) {
474455
},
475456

476457
removeHoverStyle: function(rectangle) {
477-
var dataset = this.chart.data.datasets[rectangle._datasetIndex];
458+
this.updateRectangle(rectangle);
459+
},
460+
461+
updateRectangle: function(rectangle, options) {
462+
var me = this;
463+
var chart = this.chart;
464+
var dataset = this.getDataset();
478465
var index = rectangle._index;
479466
var custom = rectangle.custom || {};
480-
var model = rectangle._model;
481-
var rectangleElementOptions = this.chart.options.elements.rectangle;
467+
var meta = me.getMeta();
468+
options = options ? options : this.getElementOptions();
482469

483-
model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor);
484-
model.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor);
485-
model.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth);
470+
rectangle._xScale = me.getScaleForId(meta.xAxisID);
471+
rectangle._yScale = me.getScaleForId(meta.yAxisID);
472+
rectangle._datasetIndex = me.index;
473+
474+
if (!rectangle._model) {
475+
rectangle._model = {};
476+
}
477+
478+
rectangle._model.datasetLabel = dataset.label;
479+
rectangle._model.label = chart.data.labels[index];
480+
rectangle._model.borderSkipped = custom.borderSkipped ? custom.borderSkipped : options.borderSkipped;
481+
rectangle._model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, options.backgroundColor);
482+
rectangle._model.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, options.borderColor);
483+
rectangle._model.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, options.borderWidth);
484+
},
485+
486+
getElementOptions: function() {
487+
return this.chart.options.elements.rectangle;
486488
}
489+
487490
});
488491

489492
Chart.controllers.horizontalBar = Chart.controllers.bar.extend({

0 commit comments

Comments
 (0)