]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Reduce duplication in PointElement (#8517)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Wed, 24 Feb 2021 21:28:18 +0000 (23:28 +0200)
committerGitHub <noreply@github.com>
Wed, 24 Feb 2021 21:28:18 +0000 (16:28 -0500)
src/elements/element.point.js

index 0190626a37f71ff9c6c75233c387ec9048af83a1..30932624ef4dace9a291a55ea170f168bd601d27 100644 (file)
@@ -1,6 +1,13 @@
 import Element from '../core/core.element';
 import {drawPoint} from '../helpers/helpers.canvas';
 
+function inRange(el, pos, axis, useFinalPosition) {
+  const options = el.options;
+  const {[axis]: value} = el.getProps([axis], useFinalPosition);
+
+  return (Math.abs(pos - value) < options.radius + options.hitRadius);
+}
+
 export default class PointElement extends Element {
 
   constructor(cfg) {
@@ -22,16 +29,11 @@ export default class PointElement extends Element {
   }
 
   inXRange(mouseX, useFinalPosition) {
-    const options = this.options;
-    const {x} = this.getProps(['x'], useFinalPosition);
-
-    return (Math.abs(mouseX - x) < options.radius + options.hitRadius);
+    return inRange(this, mouseX, 'x', useFinalPosition);
   }
 
   inYRange(mouseY, useFinalPosition) {
-    const options = this.options;
-    const {y} = this.getProps(['x'], useFinalPosition);
-    return (Math.abs(mouseY - y) < options.radius + options.hitRadius);
+    return inRange(this, mouseY, 'y', useFinalPosition);
   }
 
   getCenterPoint(useFinalPosition) {