{ "version": 3, "sources": [ "pointerUtils.ts" ], "names": [ "browser", "dom", "domUtils", "hypot", "is", "pointerExtend", "copyCoords", "dest", "src", "page", "x", "y", "client", "timeStamp", "setCoordDeltas", "targetObj", "prev", "cur", "setCoordVelocity", "delta", "dt", "Math", "max", "setZeroCoords", "isNativePointer", "pointer", "Event", "Touch", "getXY", "type", "xy", "getPageXY", "isOperaMobile", "window", "scrollX", "scrollY", "getClientXY", "getPointerId", "number", "pointerId", "identifier", "setCoords", "pointers", "length", "pointerAverage", "tmpXY", "getTouchPair", "event", "touches", "array", "changedTouches", "average", "pageX", "pageY", "clientX", "clientY", "screenX", "screenY", "prop", "touchBBox", "minX", "min", "minY", "maxX", "maxY", "left", "top", "right", "bottom", "width", "height", "touchDistance", "deltaSource", "sourceX", "sourceY", "dx", "dy", "touchAngle", "angle", "atan2", "PI", "getPointerType", "string", "pointerType", "undefined", "test", "getEventTargets", "path", "func", "composedPath", "getActualElement", "target", "currentTarget", "newCoords", "coordsToEvent", "coords", "buttons" ], "mappings": "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", "sourcesContent": [ "import browser from './browser'\nimport dom from './domObjects'\nimport * as domUtils from './domUtils'\nimport hypot from './hypot'\nimport * as is from './is'\nimport pointerExtend from './pointerExtend'\n\nexport function copyCoords (dest: Interact.CoordsSetMember, src: Interact.CoordsSetMember) {\n dest.page = dest.page || {} as any\n dest.page.x = src.page.x\n dest.page.y = src.page.y\n\n dest.client = dest.client || {} as any\n dest.client.x = src.client.x\n dest.client.y = src.client.y\n\n dest.timeStamp = src.timeStamp\n}\n\nexport function setCoordDeltas (targetObj: Interact.CoordsSetMember, prev: Interact.CoordsSetMember, cur: Interact.CoordsSetMember) {\n targetObj.page.x = cur.page.x - prev.page.x\n targetObj.page.y = cur.page.y - prev.page.y\n targetObj.client.x = cur.client.x - prev.client.x\n targetObj.client.y = cur.client.y - prev.client.y\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp\n}\n\nexport function setCoordVelocity (targetObj: Interact.CoordsSetMember, delta: Interact.CoordsSetMember) {\n const dt = Math.max(delta.timeStamp / 1000, 0.001)\n\n targetObj.page.x = delta.page.x / dt\n targetObj.page.y = delta.page.y / dt\n targetObj.client.x = delta.client.x / dt\n targetObj.client.y = delta.client.y / dt\n targetObj.timeStamp = dt\n}\n\nexport function setZeroCoords (targetObj: Interact.CoordsSetMember) {\n targetObj.page.x = 0\n targetObj.page.y = 0\n targetObj.client.x = 0\n targetObj.client.y = 0\n}\n\nexport function isNativePointer (pointer: any) {\n return (pointer instanceof dom.Event || pointer instanceof dom.Touch)\n}\n\n// Get specified X/Y coords for mouse or event.touches[0]\nexport function getXY (type, pointer, xy) {\n xy = xy || {}\n type = type || 'page'\n\n xy.x = pointer[type + 'X']\n xy.y = pointer[type + 'Y']\n\n return xy\n}\n\nexport function getPageXY (pointer: Interact.PointerType | Interact.InteractEvent, page?: Interact.Point) {\n page = page || { x: 0, y: 0 }\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && isNativePointer(pointer)) {\n getXY('screen', pointer, page)\n\n page.x += window.scrollX\n page.y += window.scrollY\n }\n else {\n getXY('page', pointer, page)\n }\n\n return page\n}\n\nexport function getClientXY (pointer, client) {\n client = client || {}\n\n if (browser.isOperaMobile && isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n getXY('screen', pointer, client)\n }\n else {\n getXY('client', pointer, client)\n }\n\n return client\n}\n\nexport function getPointerId (pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier\n}\n\nexport function setCoords (targetObj, pointers: any[], timeStamp: number) {\n const pointer = (pointers.length > 1\n ? pointerAverage(pointers)\n : pointers[0])\n\n const tmpXY = {} as { x: number, y: number }\n\n getPageXY(pointer, tmpXY)\n targetObj.page.x = tmpXY.x\n targetObj.page.y = tmpXY.y\n\n getClientXY(pointer, tmpXY)\n targetObj.client.x = tmpXY.x\n targetObj.client.y = tmpXY.y\n\n targetObj.timeStamp = timeStamp\n}\n\nexport function getTouchPair (event) {\n const touches = []\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0]\n touches[1] = event[1]\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0]\n touches[1] = event.changedTouches[0]\n }\n else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0]\n touches[1] = event.changedTouches[1]\n }\n }\n else {\n touches[0] = event.touches[0]\n touches[1] = event.touches[1]\n }\n }\n\n return touches\n}\n\nexport function pointerAverage (pointers: PointerEvent[] | Event[]) {\n const average = {\n pageX : 0,\n pageY : 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0,\n }\n\n for (const pointer of pointers) {\n for (const prop in average) {\n average[prop] += pointer[prop]\n }\n }\n for (const prop in average) {\n average[prop] /= pointers.length\n }\n\n return average\n}\n\nexport function touchBBox (event: Event | Array<(Interact.PointerType) | TouchEvent>) {\n if (!(event as any).length &&\n !((event as TouchEvent).touches &&\n (event as TouchEvent).touches.length > 1)) {\n return null\n }\n\n const touches = getTouchPair(event)\n const minX = Math.min(touches[0].pageX, touches[1].pageX)\n const minY = Math.min(touches[0].pageY, touches[1].pageY)\n const maxX = Math.max(touches[0].pageX, touches[1].pageX)\n const maxY = Math.max(touches[0].pageY, touches[1].pageY)\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n right: maxX,\n bottom: maxY,\n width: maxX - minX,\n height: maxY - minY,\n }\n}\n\nexport function touchDistance (event, deltaSource) {\n const sourceX = deltaSource + 'X'\n const sourceY = deltaSource + 'Y'\n const touches = getTouchPair(event)\n\n const dx = touches[0][sourceX] - touches[1][sourceX]\n const dy = touches[0][sourceY] - touches[1][sourceY]\n\n return hypot(dx, dy)\n}\n\nexport function touchAngle (event, deltaSource) {\n const sourceX = deltaSource + 'X'\n const sourceY = deltaSource + 'Y'\n const touches = getTouchPair(event)\n const dx = touches[1][sourceX] - touches[0][sourceX]\n const dy = touches[1][sourceY] - touches[0][sourceY]\n const angle = 180 * Math.atan2(dy, dx) / Math.PI\n\n return angle\n}\n\nexport function getPointerType (pointer) {\n return is.string(pointer.pointerType)\n ? pointer.pointerType\n : is.number(pointer.pointerType)\n ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof dom.Touch\n ? 'touch'\n : 'mouse'\n}\n\n// [ event.target, event.currentTarget ]\nexport function getEventTargets (event) {\n const path = is.func(event.composedPath) ? event.composedPath() : event.path\n\n return [\n domUtils.getActualElement(path ? path[0] : event.target),\n domUtils.getActualElement(event.currentTarget),\n ]\n}\n\nexport function newCoords (): Interact.CoordsSetMember {\n return {\n page : { x: 0, y: 0 },\n client : { x: 0, y: 0 },\n timeStamp: 0,\n }\n}\n\nexport function coordsToEvent (coords: MockCoords) {\n const event = {\n coords,\n get page () { return this.coords.page },\n get client () { return this.coords.client },\n get timeStamp () { return this.coords.timeStamp },\n get pageX () { return this.coords.page.x },\n get pageY () { return this.coords.page.y },\n get clientX () { return this.coords.client.x },\n get clientY () { return this.coords.client.y },\n get pointerId () { return this.coords.pointerId },\n get target () { return this.coords.target },\n get type () { return this.coords.type },\n get pointerType () { return this.coords.pointerType },\n get buttons () { return this.coords.buttons },\n }\n\n return event as typeof event & Interact.PointerType & Interact.PointerEventType\n}\n\nexport interface MockCoords {\n page: Interact.Point\n client: Interact.Point\n timeStamp?: number\n pointerId?: any\n target?: any\n type?: string\n pointerType?: string\n buttons?: number\n}\n\nexport { pointerExtend }\n" ] }