All files / src/utils mouse.js

46.15% Statements 18/39
34.62% Branches 9/26
66.67% Functions 2/3
46.15% Lines 18/39
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68    1x       1x 1x 1x                           1x       7x       7x 7x 7x 1x 1x   7x 1x 1x   7x 1x 1x   7x                                              
class Mouse {
  static rel = function(e) {
    Iif (e.changedTouches !== undefined)
      //return Mouse.rel(e.changedTouches[e.targetTouches.length - 1]);
      return Mouse.rel(e.changedTouches[0]);
 
    let mouseX = e.offsetX;
    let mouseY = e.offsetY;
    Iif (mouseX === undefined) {
      const target = e.target || e.srcElement;
      const rect = target.getBoundingClientRect();
      mouseX = e.clientX - rect.left;
      mouseY = e.clientY - rect.top;
      if (mouseX === undefined) {
        mouseX = e.pageX - target.offsetLeft;
        mouseY = e.pageY - target.offsetTop;
        if (mouseX === undefined) {
          console.log(e, "No mouse event defined.");
          return;
        }
      }
    }
    return [mouseX, mouseY];
  }
 
  static abs = function(e) {
    Iif (e.changedTouches !== undefined)
      //return Mouse.abs(e.changedTouches[e.targetTouches.length - 1]);
      return Mouse.abs(e.changedTouches[0]);
 
    let mouseX = e.pageX;
    let mouseY = e.pageY;
    if (mouseX === undefined) {
      mouseX = e.layerX;
      mouseY = e.layerY;
    }
    if (mouseX === undefined) {
      mouseX = e.clientX;
      mouseY = e.clientY;
    }
    if (mouseX === undefined) {
      mouseX = e.x;
      mouseY = e.y;
    }
    return [mouseX, mouseY];
  }
 
  static wheelDelta = function(e) {
    let delta = [e.deltaX, e.deltaY];
    if (delta[0] === undefined) {
      // in case there is a more detailed scroll sensor - use it
      if (e.mozMovementX) {
        delta = [0, e.mozMovementX];
      }
    }
    // safety first
    if (isNaN(delta[0])) {
      delta[0] = 0;
    }
    if (isNaN(delta[1])) {
      delta[1] = 0;
    }
    return delta;
  }
};
 
export default Mouse;