From cd8f3846e3e521f79b1fb652c2fb4e37945488f8 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 12 Nov 2019 16:18:58 -0800 Subject: [PATCH] Remove helpers.previousItem/nextItem (#6727) --- docs/getting-started/v3-migration.md | 2 ++ src/controllers/controller.line.js | 4 ++-- src/controllers/controller.radar.js | 12 ++++++++++-- src/core/core.helpers.js | 12 ------------ src/elements/element.line.js | 6 +++--- test/specs/core.helpers.tests.js | 15 --------------- 6 files changed, 17 insertions(+), 34 deletions(-) diff --git a/docs/getting-started/v3-migration.md b/docs/getting-started/v3-migration.md index b8cad4130..8cb859cd1 100644 --- a/docs/getting-started/v3-migration.md +++ b/docs/getting-started/v3-migration.md @@ -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` diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index c4e49110b..fcd5d7ac6 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -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; diff --git a/src/controllers/controller.radar.js b/src/controllers/controller.radar.js index e34dfc418..b31ceab04 100644 --- a/src/controllers/controller.radar.js +++ b/src/controllers/controller.radar.js @@ -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 ); diff --git a/src/core/core.helpers.js b/src/core/core.helpers.js index e5be621fa..84c737935 100644 --- a/src/core/core.helpers.js +++ b/src/core/core.helpers.js @@ -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)); diff --git a/src/elements/element.line.js b/src/elements/element.line.js index f06290672..c67e8f567 100644 --- a/src/elements/element.line.js +++ b/src/elements/element.line.js @@ -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) { diff --git a/test/specs/core.helpers.tests.js b/test/specs/core.helpers.tests.js index 15ac144cc..690f6643b 100644 --- a/test/specs/core.helpers.tests.js +++ b/test/specs/core.helpers.tests.js @@ -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"; -- 2.47.2