UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 1.13 kB
import{MOUSEBUTTON_NONE as t}from"./constants.js";function e(){return!!(document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement)}class s{constructor(i,o){var h,n,l,m;this.x=0,this.y=0,this.dx=0,this.dy=0,this.button=t,this.wheelDelta=0,this.element=void 0,this.ctrlKey=!1,this.altKey=!1,this.shiftKey=!1,this.metaKey=!1,this.event=void 0;let y={x:0,y:0};if(o){if(o instanceof s)throw Error("Expected MouseEvent");y=i._getTargetCoords(o)}else o={};if(y)this.x=y.x,this.y=y.y;else{if(!e())return;this.x=0,this.y=0}"wheel"===o.type&&(o.deltaY>0?this.wheelDelta=1:o.deltaY<0&&(this.wheelDelta=-1)),e()?(this.dx=o.movementX||o.webkitMovementX||o.mozMovementX||0,this.dy=o.movementY||o.webkitMovementY||o.mozMovementY||0):(this.dx=this.x-i._lastX,this.dy=this.y-i._lastY),"mousedown"!==o.type&&"mouseup"!==o.type||(this.button=o.button),this.buttons=i._buttons.slice(0),this.element=o.target,this.ctrlKey=null!=(h=o.ctrlKey)&&h,this.altKey=null!=(n=o.altKey)&&n,this.shiftKey=null!=(l=o.shiftKey)&&l,this.metaKey=null!=(m=o.metaKey)&&m,this.event=o}}export{s as MouseEvent,e as isMousePointerLocked};