@use-gesture/core
Advanced tools
Comparing version 10.0.0-beta.3 to 10.0.0-beta.4
@@ -1,1 +0,11 @@ | ||
export * from "./declarations/src/index"; | ||
// are you seeing an error that a default export doesn't exist but your source file has a default export? | ||
// you should run `yarn` or `yarn preconstruct dev` if preconstruct dev isn't in your postinstall hook | ||
// curious why you need to? | ||
// this file exists so that you can import from the entrypoint normally | ||
// except that it points to your source file and you don't need to run build constantly | ||
// which means we need to re-export all of the modules from your source file | ||
// and since export * doesn't include default exports, we need to read your source file | ||
// to check for a default export and re-export it if it exists | ||
// it's not ideal, but it works pretty well ¯\_(ツ)_/¯ | ||
export * from "../src/index"; |
@@ -1,7 +0,16 @@ | ||
'use strict'; | ||
"use strict"; | ||
// this file might look strange and you might be wondering what it's for | ||
// it's lets you import your source files by importing this entrypoint | ||
// as you would import it if it was built with preconstruct build | ||
// this file is slightly different to some others though | ||
// it has a require hook which compiles your code with Babel | ||
// this means that you don't have to set up @babel/register or anything like that | ||
// but you can still require this module and it'll be compiled | ||
if (process.env.NODE_ENV === "production") { | ||
module.exports = require("./use-gesture-core.cjs.prod.js"); | ||
} else { | ||
module.exports = require("./use-gesture-core.cjs.dev.js"); | ||
} | ||
// this bit of code imports the require hook and registers it | ||
let unregister = require("../../../node_modules/.pnpm/@preconstruct+hook@0.4.0/node_modules/@preconstruct/hook").___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, "../../..", ".."); | ||
// this re-exports the source file | ||
module.exports = require("../src/index.ts"); | ||
unregister(); |
{ | ||
"name": "@use-gesture/core", | ||
"version": "10.0.0-beta.3", | ||
"version": "10.0.0-beta.4", | ||
"description": "Core engine for receiving gestures", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
import { EngineMap } from './imports' | ||
import { parse } from './config/resolver' | ||
import { Touches, isTouch, toReactHandlerProp } from './utils/events' | ||
import { isTouch, toReactHandlerProp, touchIds } from './utils/events' | ||
import { EventStore } from './EventStore' | ||
@@ -46,3 +46,3 @@ import { TimeoutStore } from './TimeoutStore' | ||
if (isTouch(event)) { | ||
this.touchIds = new Set(Touches.ids(event as TouchEvent)) | ||
this.touchIds = new Set(touchIds(event as TouchEvent)) | ||
} else if ('pointerId' in event) { | ||
@@ -49,0 +49,0 @@ if (event.type === 'pointerup') this.pointerIds.delete(event.pointerId) |
import { CoordinatesEngine } from './CoordinatesEngine' | ||
import { coordinatesConfigResolver } from '../config/coordinatesConfigResolver' | ||
import { Pointer } from '../utils/events' | ||
import { pointerId, pointerValues } from '../utils/events' | ||
import { V } from '../utils/maths' | ||
@@ -90,6 +90,6 @@ import { Vector2 } from '../types' | ||
state._pointerId = Pointer.id(event) | ||
state._pointerId = pointerId(event) | ||
state._pointerActive = true | ||
state.values = Pointer.values(event) | ||
state.values = pointerValues(event) | ||
state.initial = state.values | ||
@@ -121,6 +121,6 @@ | ||
if (!state._pointerActive) return | ||
const id = Pointer.id(event) | ||
const id = pointerId(event) | ||
if (state._pointerId && id !== state._pointerId) return | ||
const values = Pointer.values(event) | ||
const values = pointerValues(event) | ||
@@ -171,2 +171,3 @@ if (document.pointerLockElement === event.target) { | ||
if (process.env.NODE_ENV === 'development') { | ||
// eslint-disable-next-line no-console | ||
console.warn( | ||
@@ -182,3 +183,3 @@ `[@use-gesture]: If you see this message, it's likely that you're using an outdated version of \`@react-three/fiber\`. \n\nPlease upgrade to the latest version.` | ||
if (!state._pointerActive) return | ||
const id = Pointer.id(event) | ||
const id = pointerId(event) | ||
if (state._pointerId && id !== state._pointerId) return | ||
@@ -267,5 +268,3 @@ | ||
pointerClean() { | ||
const state = this.state | ||
if (!state._pointerActive) return | ||
if (this.config.pointerLock && document.pointerLockElement === state.target) { | ||
if (this.config.pointerLock && document.pointerLockElement === this.state.target) { | ||
document.exitPointerLock() | ||
@@ -272,0 +271,0 @@ } |
@@ -7,2 +7,3 @@ import { Controller } from '../Controller' | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
export interface Engine<Key extends GestureKey> { | ||
@@ -9,0 +10,0 @@ /** |
import { CoordinatesEngine } from './CoordinatesEngine' | ||
import { Pointer } from '../utils/events' | ||
import { pointerValues } from '../utils/events' | ||
import { V } from '../utils/maths' | ||
@@ -10,3 +10,3 @@ | ||
this.start(event) | ||
this.state.values = Pointer.values(event) | ||
this.state.values = pointerValues(event) | ||
@@ -21,3 +21,3 @@ this.compute(event) | ||
state._active = false | ||
const values = Pointer.values(event) | ||
const values = pointerValues(event) | ||
state._movement = state._delta = V.sub(values, state.values) | ||
@@ -24,0 +24,0 @@ state.values = values |
import { CoordinatesEngine } from './CoordinatesEngine' | ||
import { Pointer } from '../utils/events' | ||
import { pointerValues } from '../utils/events' | ||
import { V } from '../utils/maths' | ||
@@ -17,3 +17,3 @@ | ||
const state = this.state | ||
state.values = Pointer.values(event) | ||
state.values = pointerValues(event) | ||
this.compute(event) | ||
@@ -26,3 +26,3 @@ state.initial = state.values | ||
if (!this.state._active) return | ||
const values = Pointer.values(event) | ||
const values = pointerValues(event) | ||
const state = this.state | ||
@@ -29,0 +29,0 @@ state._delta = V.sub(values, state.values) |
import { Engine } from './Engine' | ||
import { Touches, Wheel, distanceAngle } from '../utils/events' | ||
import { touchDistanceAngle, distanceAngle, wheelValues } from '../utils/events' | ||
import { V } from '../utils/maths' | ||
@@ -87,3 +87,3 @@ import { Vector2, WebKitGestureEvent } from '../types' | ||
const payload = Touches.distanceAngle(event, state._touchIds) | ||
const payload = touchDistanceAngle(event, state._touchIds) | ||
this.pinchStart(event, payload) | ||
@@ -129,3 +129,3 @@ } | ||
if (!this.state._active) return | ||
const payload = Touches.distanceAngle(event, this.state._touchIds) | ||
const payload = touchDistanceAngle(event, this.state._touchIds) | ||
this.pinchMove(event, payload) | ||
@@ -253,3 +253,3 @@ } | ||
const state = this.state | ||
state._delta = [-Wheel.values(event)[1] / PINCH_WHEEL_RATIO, 0] | ||
state._delta = [-wheelValues(event)[1] / PINCH_WHEEL_RATIO, 0] | ||
V.addTo(state._movement, state._delta) | ||
@@ -256,0 +256,0 @@ |
import { CoordinatesEngine } from './CoordinatesEngine' | ||
import { Scroll } from '../utils/events' | ||
import { scrollValues } from '../utils/events' | ||
import { V } from '../utils/maths' | ||
@@ -17,3 +17,3 @@ | ||
const state = this.state | ||
const values = Scroll.values(event) | ||
const values = scrollValues(event) | ||
state._delta = V.sub(values, state.values) | ||
@@ -20,0 +20,0 @@ V.addTo(state._movement, state._delta) |
import { CoordinatesEngine } from './CoordinatesEngine' | ||
import { Wheel } from '../utils/events' | ||
import { wheelValues } from '../utils/events' | ||
import { V } from '../utils/maths' | ||
@@ -23,3 +23,3 @@ | ||
const state = this.state | ||
state._delta = Wheel.values(event) | ||
state._delta = wheelValues(event) | ||
V.addTo(this.state._movement, state._delta) | ||
@@ -26,0 +26,0 @@ |
@@ -57,24 +57,22 @@ import { Vector2 } from '../types' | ||
export const Touches = { | ||
ids(event: TouchEvent) { | ||
return getCurrentTargetTouchList(event).map((touch) => touch.identifier) | ||
}, | ||
distanceAngle(event: TouchEvent, ids: number[]) { | ||
const [P1, P2] = Array.from(event.touches).filter((touch) => ids.includes(touch.identifier)) | ||
return distanceAngle(P1, P2) | ||
} | ||
export function touchIds(event: TouchEvent) { | ||
return getCurrentTargetTouchList(event).map((touch) => touch.identifier) | ||
} | ||
export const Pointer = { | ||
id(event: PointerEvent | TouchEvent) { | ||
const valueEvent = getValueEvent(event) | ||
return isTouch(event) ? (valueEvent as Touch).identifier : (valueEvent as PointerEvent).pointerId | ||
}, | ||
values(event: PointerEvent | TouchEvent): Vector2 { | ||
// if ('spaceX' in event) return [event.spaceX, event.spaceY] | ||
const valueEvent = getValueEvent(event) | ||
return [valueEvent.clientX, valueEvent.clientY] | ||
} | ||
export function touchDistanceAngle(event: TouchEvent, ids: number[]) { | ||
const [P1, P2] = Array.from(event.touches).filter((touch) => ids.includes(touch.identifier)) | ||
return distanceAngle(P1, P2) | ||
} | ||
export function pointerId(event: PointerEvent | TouchEvent) { | ||
const valueEvent = getValueEvent(event) | ||
return isTouch(event) ? (valueEvent as Touch).identifier : (valueEvent as PointerEvent).pointerId | ||
} | ||
export function pointerValues(event: PointerEvent | TouchEvent): Vector2 { | ||
// if ('spaceX' in event) return [event.spaceX, event.spaceY] | ||
const valueEvent = getValueEvent(event) | ||
return [valueEvent.clientX, valueEvent.clientY] | ||
} | ||
// wheel delta defaults from https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js | ||
@@ -84,24 +82,20 @@ const LINE_HEIGHT = 40 | ||
export const Wheel = { | ||
values(event: WheelEvent): Vector2 { | ||
let { deltaX, deltaY, deltaMode } = event | ||
// normalize wheel values, especially for Firefox | ||
if (deltaMode === 1) { | ||
deltaX *= LINE_HEIGHT | ||
deltaY *= LINE_HEIGHT | ||
} else if (deltaMode === 2) { | ||
deltaX *= PAGE_HEIGHT | ||
deltaY *= PAGE_HEIGHT | ||
} | ||
return [deltaX, deltaY] | ||
export function wheelValues(event: WheelEvent): Vector2 { | ||
let { deltaX, deltaY, deltaMode } = event | ||
// normalize wheel values, especially for Firefox | ||
if (deltaMode === 1) { | ||
deltaX *= LINE_HEIGHT | ||
deltaY *= LINE_HEIGHT | ||
} else if (deltaMode === 2) { | ||
deltaX *= PAGE_HEIGHT | ||
deltaY *= PAGE_HEIGHT | ||
} | ||
return [deltaX, deltaY] | ||
} | ||
export const Scroll = { | ||
values(event: UIEvent): Vector2 { | ||
// If the currentTarget is the window then we return the scrollX/Y position. | ||
// If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top | ||
const { scrollX, scrollY, scrollLeft, scrollTop } = event.currentTarget as Element & Window | ||
return [scrollX ?? scrollLeft ?? 0, scrollY ?? scrollTop ?? 0] | ||
} | ||
export function scrollValues(event: UIEvent): Vector2 { | ||
// If the currentTarget is the window then we return the scrollX/Y position. | ||
// If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top | ||
const { scrollX, scrollY, scrollLeft, scrollTop } = event.currentTarget as Element & Window | ||
return [scrollX ?? scrollLeft ?? 0, scrollY ?? scrollTop ?? 0] | ||
} | ||
@@ -108,0 +102,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
0
78783
36
2256
1