]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Remove helpers.previousItem/nextItem (#6727)
authorBen McCann <322311+benmccann@users.noreply.github.com>
Wed, 13 Nov 2019 00:18:58 +0000 (16:18 -0800)
committerEvert Timberg <evert.timberg+github@gmail.com>
Wed, 13 Nov 2019 00:18:58 +0000 (19:18 -0500)
docs/getting-started/v3-migration.md
src/controllers/controller.line.js
src/controllers/controller.radar.js
src/core/core.helpers.js
src/elements/element.line.js
test/specs/core.helpers.tests.js

index b8cad41301729087cf73295b4beb6c863b0c4ed5..8cb859cd1149d61a52d90391ca148363618b3810 100644 (file)
@@ -52,7 +52,9 @@ Chart.js is no longer providing the `Chart.bundle.js` and `Chart.bundle.min.js`.
 * `helpers.indexOf`
 * `helpers.min`
 * `helpers.max`
+* `helpers.nextItem`
 * `helpers.numberOfLabelLines`
+* `helpers.previousItem`
 * `helpers.removeEvent`
 * `helpers.scaleMerge`
 * `Scale.getRightValue`
index c4e49110ba4afe3d9b88a24ef6eb5d45826ed3ef..fcd5d7ac6da7f05f60187a1c39294e90faa34935 100644 (file)
@@ -201,9 +201,9 @@ module.exports = DatasetController.extend({
                        for (i = 0, ilen = points.length; i < ilen; ++i) {
                                model = points[i]._model;
                                controlPoints = helpers.splineCurve(
-                                       helpers.previousItem(points, i)._model,
+                                       points[Math.max(0, i - 1)]._model,
                                        model,
-                                       helpers.nextItem(points, i)._model,
+                                       points[Math.min(i + 1, ilen - 1)]._model,
                                        lineModel.tension
                                );
                                model.controlPointPreviousX = controlPoints.previous.x;
index e34dfc418e983f38f97aa59402ab11789947cdf3..b31ceab042c917a6b85c6b5b236a046bda1b9e13 100644 (file)
@@ -19,6 +19,14 @@ defaults._set('radar', {
        }
 });
 
+function nextItem(collection, index) {
+       return index >= collection.length - 1 ? collection[0] : collection[index + 1];
+}
+
+function previousItem(collection, index) {
+       return index <= 0 ? collection[collection.length - 1] : collection[index - 1];
+}
+
 module.exports = DatasetController.extend({
        datasetElementType: elements.Line,
 
@@ -173,9 +181,9 @@ module.exports = DatasetController.extend({
                for (i = 0, ilen = points.length; i < ilen; ++i) {
                        model = points[i]._model;
                        controlPoints = helpers.splineCurve(
-                               helpers.previousItem(points, i, true)._model,
+                               previousItem(points, i)._model,
                                model,
-                               helpers.nextItem(points, i, true)._model,
+                               nextItem(points, i)._model,
                                model.tension
                        );
 
index e5be621fa513b9d9dcdcd4d3b7f2de446429cbc7..84c7379353248494a54c2feffdea78b102c4a2bf 100644 (file)
@@ -292,18 +292,6 @@ module.exports = function() {
                        }
                }
        };
-       helpers.nextItem = function(collection, index, loop) {
-               if (loop) {
-                       return index >= collection.length - 1 ? collection[0] : collection[index + 1];
-               }
-               return index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];
-       };
-       helpers.previousItem = function(collection, index, loop) {
-               if (loop) {
-                       return index <= 0 ? collection[collection.length - 1] : collection[index - 1];
-               }
-               return index <= 0 ? collection[0] : collection[index - 1];
-       };
        // Implementation of the nice number algorithm used in determining where axis labels will go
        helpers.niceNum = function(range, round) {
                var exponent = Math.floor(helpers.math.log10(range));
index f06290672bf4774a1cc6bde2ef7298cbd58ab014..c67e8f5677545326d28881a2221554ca7bd6d21e 100644 (file)
@@ -50,7 +50,7 @@ class Line extends Element {
                if (me._loop) {
                        points = points.slice(); // clone array
                        for (index = 0; index < points.length; ++index) {
-                               previous = helpers.previousItem(points, index);
+                               previous = points[Math.max(0, index - 1)];
                                // If the line has an open path, shift the point array
                                if (!points[index]._view.skip && previous._view.skip) {
                                        points = points.slice(index).concat(points.slice(0, index));
@@ -82,7 +82,7 @@ class Line extends Element {
                // Stroke Line
                ctx.beginPath();
 
-               // First point moves to it's starting position no matter what
+               // First point moves to its starting position no matter what
                currentVM = points[0]._view;
                if (!currentVM.skip) {
                        ctx.moveTo(currentVM.x, currentVM.y);
@@ -91,7 +91,7 @@ class Line extends Element {
 
                for (index = 1; index < points.length; ++index) {
                        currentVM = points[index]._view;
-                       previous = lastDrawnIndex === -1 ? helpers.previousItem(points, index) : points[lastDrawnIndex];
+                       previous = lastDrawnIndex === -1 ? points[index - 1] : points[lastDrawnIndex];
 
                        if (!currentVM.skip) {
                                if ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {
index 15ac144cc7eb265c801bf482455d522d6c8dc005..690f6643bdae319771a5940be22cc4f7bbacc68e 100644 (file)
@@ -312,21 +312,6 @@ describe('Core helper tests', function() {
                }]);
        });
 
-       it('should get the next or previous item in an array', function() {
-               var testData = [0, 1, 2];
-
-               expect(helpers.nextItem(testData, 0, false)).toEqual(1);
-               expect(helpers.nextItem(testData, 2, false)).toEqual(2);
-               expect(helpers.nextItem(testData, 2, true)).toEqual(0);
-               expect(helpers.nextItem(testData, 1, true)).toEqual(2);
-               expect(helpers.nextItem(testData, -1, false)).toEqual(0);
-
-               expect(helpers.previousItem(testData, 0, false)).toEqual(0);
-               expect(helpers.previousItem(testData, 0, true)).toEqual(2);
-               expect(helpers.previousItem(testData, 2, false)).toEqual(1);
-               expect(helpers.previousItem(testData, 1, true)).toEqual(0);
-       });
-
        it('should return the width of the longest text in an Array and 2D Array', function() {
                var context = window.createMockContext();
                var font = "normal 12px 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif";