]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Remove _ctx from Element (#6764)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Wed, 20 Nov 2019 00:01:32 +0000 (02:01 +0200)
committerEvert Timberg <evert.timberg+github@gmail.com>
Wed, 20 Nov 2019 00:01:32 +0000 (19:01 -0500)
* Remove _ctx from Element

* Sort

docs/getting-started/v3-migration.md
src/controllers/controller.bar.js
src/controllers/controller.line.js
src/core/core.datasetController.js
src/elements/element.arc.js
src/elements/element.line.js
src/elements/element.point.js
src/elements/element.rectangle.js
test/specs/element.point.tests.js

index 0d1cecc60567889dfab01fa0fd62a2677410fd16..3dfd79bd0975f5abee32bc04bf71f2048c4e96fc 100644 (file)
@@ -82,6 +82,7 @@ Chart.js 3.0 introduces a number of breaking changes. Chart.js 2.0 was released
 
 #### Removal of private APIs
 
+* `Element._ctx`
 * `Element._model.datasetLabel`
 * `Element._model.label`
 * `Point._model.tension`
index b4b2582b6e85d6e3c38584cbe5e525b779e1a869..c368b2d1bdbb17681599ba51893a7c53cf47151b 100644 (file)
@@ -484,7 +484,7 @@ module.exports = DatasetController.extend({
 
                for (; i < ilen; ++i) {
                        if (!isNaN(me._getParsed(i)[vScale.id])) {
-                               rects[i].draw();
+                               rects[i].draw(me._ctx);
                        }
                }
 
index a8acfd11c29de86af95622297a9c6fd323ad0eef..f9283974204e7d4adc63ae97980209e3f28191df 100644 (file)
@@ -229,6 +229,7 @@ module.exports = DatasetController.extend({
 
        draw: function() {
                var me = this;
+               var ctx = me._ctx;
                var chart = me.chart;
                var meta = me._cachedMeta;
                var points = meta.data || [];
@@ -237,12 +238,12 @@ module.exports = DatasetController.extend({
                var ilen = points.length;
 
                if (me._showLine) {
-                       meta.dataset.draw();
+                       meta.dataset.draw(ctx);
                }
 
                // Draw the points
                for (; i < ilen; ++i) {
-                       points[i].draw(area);
+                       points[i].draw(ctx, area);
                }
        },
 
index a389a5930be76059757b8a1c74a54594303d6d8a..6e4ef71cecb03a7cfb19f8eb9023a4bb06a195c6 100644 (file)
@@ -282,6 +282,7 @@ helpers.extend(DatasetController.prototype, {
                const me = this;
                let meta;
                me.chart = chart;
+               me._ctx = chart.ctx;
                me.index = datasetIndex;
                me._cachedMeta = meta = me.getMeta();
                me._type = meta.type;
@@ -371,9 +372,7 @@ helpers.extend(DatasetController.prototype, {
        },
 
        createElement: function(type) {
-               return type && new type({
-                       _ctx: this.chart.ctx
-               });
+               return type && new type();
        },
 
        /**
@@ -768,17 +767,18 @@ helpers.extend(DatasetController.prototype, {
        },
 
        draw: function() {
+               const ctx = this._ctx;
                const meta = this._cachedMeta;
                const elements = meta.data || [];
                const ilen = elements.length;
                let i = 0;
 
                if (meta.dataset) {
-                       meta.dataset.draw();
+                       meta.dataset.draw(ctx);
                }
 
                for (; i < ilen; ++i) {
-                       elements[i].draw();
+                       elements[i].draw(ctx);
                }
        },
 
index 7ab4755068fb3b1727eb32d78e01ab605f2dd835..7706a5e73c013cfd07742b65711a9d70c16a7a2e 100644 (file)
@@ -148,8 +148,7 @@ class Arc extends Element {
                };
        }
 
-       draw() {
-               var ctx = this._ctx;
+       draw(ctx) {
                var vm = this._view;
                var pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;
                var arc = {
index 1a2658eed0adfd265af9655d22f1cb6529eecae2..f57b8b2bfc60f8fb9319d1fb1d454eaf375cc1d4 100644 (file)
@@ -145,10 +145,9 @@ class Line extends Element {
                super(props);
        }
 
-       draw() {
+       draw(ctx) {
                const me = this;
                const vm = me._view;
-               const ctx = me._ctx;
                const spanGaps = vm.spanGaps;
                let closePath = me._loop;
                let points = me._children;
index ed8eef64b83a44a73cd7b1111c999ca593b03956..a6cb6a946a5bc632f88339d54463ab2cad7c18fc 100644 (file)
@@ -67,9 +67,8 @@ class Point extends Element {
                };
        }
 
-       draw(chartArea) {
+       draw(ctx, chartArea) {
                const vm = this._view;
-               const ctx = this._ctx;
                const pointStyle = vm.pointStyle;
                const rotation = vm.rotation;
                const radius = vm.radius;
index 1bbde1e12b120ed9ecdf05291673ef64d8e653a0..d6a07790cfae6aae814c3a64ec1cf75dbf15e516 100644 (file)
@@ -136,8 +136,7 @@ class Rectangle extends Element {
                super(props);
        }
 
-       draw() {
-               var ctx = this._ctx;
+       draw(ctx) {
                var vm = this._view;
                var rects = boundingRects(vm);
                var outer = rects.outer;
index b3ea7631df9ddfbf5ac4e895b969dff17b2bc4d4..199998dd039cc42939a16224c20a775b96ba5cd2 100644 (file)
@@ -74,11 +74,7 @@ describe('Chart.elements.Point', function() {
 
        it ('should not draw if skipped', function() {
                var mockContext = window.createMockContext();
-               var point = new Chart.elements.Point({
-                       _datasetIndex: 2,
-                       _index: 1,
-                       _ctx: mockContext
-               });
+               var point = new Chart.elements.Point();
 
                // Attach a view object as if we were the controller
                point._view = {
@@ -90,7 +86,7 @@ describe('Chart.elements.Point', function() {
                        skip: true
                };
 
-               point.draw();
+               point.draw(mockContext);
 
                expect(mockContext.getCalls()).toEqual([]);
        });