]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Remove deprecated interaction modes (#6625)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Mon, 28 Oct 2019 22:11:38 +0000 (00:11 +0200)
committerEvert Timberg <evert.timberg+github@gmail.com>
Mon, 28 Oct 2019 22:11:38 +0000 (18:11 -0400)
* Remove deprecated interaction modes
* Use default modes

docs/general/interactions/modes.md
src/controllers/controller.bar.js
src/controllers/controller.bubble.js
src/controllers/controller.doughnut.js
src/controllers/controller.line.js
src/controllers/controller.scatter.js
src/core/core.controller.js
src/core/core.interaction.js
test/specs/controller.line.tests.js
test/specs/core.controller.tests.js
test/specs/core.tooltip.tests.js

index 2398908356a1b57311f88bc4e2a3520ecc00031c..1c6b16d032fd0e89e3b6c898e63e05b8f7f402ae 100644 (file)
@@ -34,12 +34,6 @@ var chart = new Chart(ctx, {
 });
 ```
 
-## single (deprecated)
-Finds the first item that intersects the point and returns it. Behaves like `'nearest'` mode with `intersect = true`.
-
-## label (deprecated)
-See `'index'` mode.
-
 ## index
 Finds item at the same index. If the `intersect` setting is true, the first intersecting item is used to determine the index in the data. If `intersect` false the nearest item, in the x direction, is used to determine the index.
 
@@ -70,9 +64,6 @@ var chart = new Chart(ctx, {
 });
 ```
 
-## x-axis (deprecated)
-Behaves like `'index'` mode with `intersect = false`.
-
 ## dataset
 Finds items in the same dataset. If the `intersect` setting is true, the first intersecting item is used to determine the index in the data. If `intersect` false the nearest item is used to determine the index.
 
index eadbc41bfbddb39f9ea059873d1175034765a43c..f7a4b221650b4d9c333672d46d6c0338bc4f9758 100644 (file)
@@ -9,7 +9,7 @@ var valueOrDefault = helpers.valueOrDefault;
 
 defaults._set('bar', {
        hover: {
-               mode: 'label'
+               mode: 'index'
        },
 
        scales: {
index 5549097b7b61c16cbb6af2ab6c27b54eb3c7b965..87db319a89a850197384ff463e38b9c466f881a5 100644 (file)
@@ -9,10 +9,6 @@ var valueOrDefault = helpers.valueOrDefault;
 var resolve = helpers.options.resolve;
 
 defaults._set('bubble', {
-       hover: {
-               mode: 'single'
-       },
-
        scales: {
                xAxes: [{
                        type: 'linear', // bubble should probably use a linear scale by default
index 72cbe2413b8a88f249483c015467d01d0c839079..7495d15faf63bd99ca93f83c830fc341eae34ed7 100644 (file)
@@ -18,9 +18,6 @@ defaults._set('doughnut', {
                // Boolean - Whether we animate scaling the Doughnut from the centre
                animateScale: false
        },
-       hover: {
-               mode: 'single'
-       },
        legendCallback: function(chart) {
                var list = document.createElement('ul');
                var data = chart.data;
index de689941eff7c7de8e8536020d20821335c469a9..a8e242d3410a65d3c3077af58da41d147655be3c 100644 (file)
@@ -14,7 +14,7 @@ defaults._set('line', {
        spanGaps: false,
 
        hover: {
-               mode: 'label'
+               mode: 'index'
        },
 
        scales: {
index 1b2061b4a2e35a0b4bc4858292b6d55dab1e50f3..c7b107d46a9cba80a58d4a913fff987fb25db0de 100644 (file)
@@ -4,10 +4,6 @@ var LineController = require('./controller.line');
 var defaults = require('../core/core.defaults');
 
 defaults._set('scatter', {
-       hover: {
-               mode: 'single'
-       },
-
        scales: {
                xAxes: [{
                        id: 'x-axis-1',    // need an ID so datasets can reference the scale
index 8827c78df403e8f78ec232a9596f36c4f174010b..c2ef85e807fa44038e58bb2d4377dc7b3163ef90 100644 (file)
@@ -800,15 +800,15 @@ helpers.extend(Chart.prototype, /** @lends Chart */ {
         * @return An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw
         */
        getElementAtEvent: function(e) {
-               return Interaction.modes.single(this, e);
+               return Interaction.modes.nearest(this, e, {intersect: true});
        },
 
        getElementsAtEvent: function(e) {
-               return Interaction.modes.label(this, e, {intersect: true});
+               return Interaction.modes.index(this, e, {intersect: true});
        },
 
        getElementsAtXAxis: function(e) {
-               return Interaction.modes['x-axis'](this, e, {intersect: true});
+               return Interaction.modes.index(this, e, {intersect: false});
        },
 
        getElementsAtEventForMode: function(e, mode, options) {
index f5051fbff1c0786a7bbd9a5e5a3ba9f859c1b14a..a11f0ae54214b8d358435e05b0740b67dcd6cb6c 100644 (file)
@@ -144,28 +144,6 @@ function indexMode(chart, e, options) {
 module.exports = {
        // Helper function for different modes
        modes: {
-               single: function(chart, e) {
-                       var position = getRelativePosition(e, chart);
-                       var elements = [];
-
-                       parseVisibleItems(chart, function(element) {
-                               if (element.inRange(position.x, position.y)) {
-                                       elements.push(element);
-                                       return elements;
-                               }
-                       });
-
-                       return elements.slice(0, 1);
-               },
-
-               /**
-                * @function Chart.Interaction.modes.label
-                * @deprecated since version 2.4.0
-                * @todo remove at version 3
-                * @private
-                */
-               label: indexMode,
-
                /**
                 * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something
                 * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item
@@ -200,16 +178,6 @@ module.exports = {
                        return items;
                },
 
-               /**
-                * @function Chart.Interaction.modes.x-axis
-                * @deprecated since version 2.4.0. Use index mode and intersect == true
-                * @todo remove at version 3
-                * @private
-                */
-               'x-axis': function(chart, e) {
-                       return indexMode(chart, e, {intersect: false});
-               },
-
                /**
                 * Point mode returns all elements that hit test based on the event position
                 * of the event
index 6d3e861f8e3251da0832bd6502c0bde9641f8219..2216753c46eae627a5606036f5d2f0e436499224 100644 (file)
@@ -244,7 +244,8 @@ describe('Chart.controllers.line', function() {
                                legend: false,
                                title: false,
                                hover: {
-                                       mode: 'single'
+                                       mode: 'nearest',
+                                       intersect: true
                                },
                                scales: {
                                        xAxes: [{
index 010235f477419cedec9b751dfa052a602949473a..e41f24a4db6af964b9292a0f322a23a68556ba56 100644 (file)
@@ -87,7 +87,7 @@ describe('Chart', function() {
                        defaults.global.responsiveAnimationDuration = 0;
                        defaults.global.hover.onHover = null;
                        defaults.line.spanGaps = false;
-                       defaults.line.hover.mode = 'label';
+                       defaults.line.hover.mode = 'index';
                });
 
                it('should override default options', function() {
@@ -122,7 +122,7 @@ describe('Chart', function() {
 
                        defaults.global.responsiveAnimationDuration = 0;
                        defaults.global.hover.onHover = null;
-                       defaults.line.hover.mode = 'label';
+                       defaults.line.hover.mode = 'index';
                        defaults.line.spanGaps = false;
                });
 
index bda878f85bb2b8545fcfa325cc66a63b15c147da..741c4944de3644bb0002dab701ed2e93d0d1bdbf 100755 (executable)
@@ -257,7 +257,8 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'single'
+                                       mode: 'nearest',
+                                       intersect: true
                                }
                        }
                });
@@ -366,7 +367,7 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'label',
+                                       mode: 'index',
                                        callbacks: {
                                                beforeTitle: function() {
                                                        return 'beforeTitle';
@@ -519,7 +520,7 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'label',
+                                       mode: 'index',
                                        itemSort: function(a, b) {
                                                return a.datasetIndex > b.datasetIndex ? -1 : 1;
                                        }
@@ -600,7 +601,7 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'label',
+                                       mode: 'index',
                                        reverse: true
                                }
                        }
@@ -681,7 +682,7 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'label'
+                                       mode: 'index'
                                }
                        }
                });
@@ -760,7 +761,7 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'label',
+                                       mode: 'index',
                                        filter: function(tooltipItem, data) {
                                                // For testing purposes remove the first dataset that has a tooltipHidden property
                                                return !data.datasets[tooltipItem.datasetIndex].tooltipHidden;
@@ -885,7 +886,8 @@ describe('Core.Tooltip', function() {
                                },
                                options: {
                                        tooltips: {
-                                               mode: 'single'
+                                               mode: 'nearest',
+                                               intersect: true
                                        }
                                }
                        });
@@ -935,7 +937,8 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'single',
+                                       mode: 'nearest',
+                                       intersect: true,
                                        callbacks: {
                                                title: function() {
                                                        return 'registering callback...';
@@ -1123,7 +1126,7 @@ describe('Core.Tooltip', function() {
                        },
                        options: {
                                tooltips: {
-                                       mode: 'label',
+                                       mode: 'index',
                                        callbacks: {
                                                beforeTitle: function() {
                                                        return 'beforeTitle\nnewline';