diff --git a/src/plugins/plugin.filler/filler.helper.js b/src/plugins/plugin.filler/filler.helper.js index ec9fcdbd704..c3ede0bc9d6 100644 --- a/src/plugins/plugin.filler/filler.helper.js +++ b/src/plugins/plugin.filler/filler.helper.js @@ -32,3 +32,7 @@ export function _createBoundaryLine(boundary, line) { _fullLoop: _loop }) : null; } + +export function _shouldApplyFill(source) { + return source && source.fill !== false; +} diff --git a/src/plugins/plugin.filler/index.js b/src/plugins/plugin.filler/index.js index 7cbf5935df7..12bacb0805e 100644 --- a/src/plugins/plugin.filler/index.js +++ b/src/plugins/plugin.filler/index.js @@ -6,6 +6,7 @@ import LineElement from '../../elements/element.line'; import {_drawfill} from './filler.drawing'; +import {_shouldApplyFill} from './filler.helper'; import {_decodeFill, _resolveTarget} from './filler.options'; export default { @@ -58,7 +59,7 @@ export default { } source.line.updateControlPoints(area, source.axis); - if (draw) { + if (draw && source.fill) { _drawfill(chart.ctx, source, area); } } @@ -68,10 +69,12 @@ export default { if (options.drawTime !== 'beforeDatasetsDraw') { return; } + const metasets = chart.getSortedVisibleDatasetMetas(); for (let i = metasets.length - 1; i >= 0; --i) { const source = metasets[i].$filler; - if (source) { + + if (_shouldApplyFill(source)) { _drawfill(chart.ctx, source, chart.chartArea); } } @@ -80,7 +83,7 @@ export default { beforeDatasetDraw(chart, args, options) { const source = args.meta.$filler; - if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') { + if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') { return; } diff --git a/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetDraw.js b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetDraw.js new file mode 100644 index 00000000000..a07432a108b --- /dev/null +++ b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetDraw.js @@ -0,0 +1,22 @@ +module.exports = { + config: { + type: 'line', + data: { + labels: ['0', '1', '2', '3', '4', '5'], + datasets: [{ + backgroundColor: 'red', + data: [3, -3, 0, 5, -5, 0], + fill: false + }] + }, + options: { + plugins: { + legend: false, + title: false, + filler: { + drawTime: 'beforeDatasetDraw' + } + }, + } + }, +}; diff --git a/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetDraw.png b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetDraw.png new file mode 100644 index 00000000000..c45eb28cd0a Binary files /dev/null and b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetDraw.png differ diff --git a/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetsDraw.js b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetsDraw.js new file mode 100644 index 00000000000..6401ab79dba --- /dev/null +++ b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetsDraw.js @@ -0,0 +1,22 @@ +module.exports = { + config: { + type: 'line', + data: { + labels: ['0', '1', '2', '3', '4', '5'], + datasets: [{ + backgroundColor: 'red', + data: [3, -3, 0, 5, -5, 0], + fill: false + }] + }, + options: { + plugins: { + legend: false, + title: false, + filler: { + drawTime: 'beforeDatasetsDraw' + } + }, + } + }, +}; diff --git a/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetsDraw.png b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetsDraw.png new file mode 100644 index 00000000000..c45eb28cd0a Binary files /dev/null and b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDatasetsDraw.png differ diff --git a/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDraw.js b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDraw.js new file mode 100644 index 00000000000..5b0c1b1e617 --- /dev/null +++ b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDraw.js @@ -0,0 +1,22 @@ +module.exports = { + config: { + type: 'line', + data: { + labels: ['0', '1', '2', '3', '4', '5'], + datasets: [{ + backgroundColor: 'red', + data: [3, -3, 0, 5, -5, 0], + fill: false + }] + }, + options: { + plugins: { + legend: false, + title: false, + filler: { + drawTime: 'beforeDraw' + } + }, + } + }, +}; diff --git a/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDraw.png b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDraw.png new file mode 100644 index 00000000000..c45eb28cd0a Binary files /dev/null and b/test/fixtures/plugin.filler/line/drawTimeFillFalse/beforeDraw.png differ