@flighthq/input 0.5.0-next.1944.cd6b6e7 → 0.5.1-edge.1019.1274ec5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/contract.d.ts +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inputManager.d.ts +48 -53
- package/dist/inputManager.d.ts.map +1 -1
- package/dist/inputManager.js +509 -359
- package/dist/inputManager.js.map +1 -1
- package/package.json +4 -3
- package/src/index.test.ts +27 -0
- package/src/inputManager.test.ts +507 -224
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/input`. The `@flight
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/input@0.5.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/input@0.5.1-edge.1019.1274ec5](https://github.com/flighthq/flight/tree/1274ec5c923947dc64d5ffedcbd8169fc758cd9f/packages/input)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/1274ec5c923947dc64d5ffedcbd8169fc758cd9f/LICENSE.md)
|
package/dist/contract.d.ts
CHANGED
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,gBAAgB,CAAC"}
|
package/dist/contract.js
CHANGED
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,gBAAgB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { applyGamepadAxisDeadZone, applyGamepadStickDeadZone, attachGamepadInput, attachKeyboardInput, attachPointerInput, attachRelativePointerInput, attachTextInput, attachWheelInput, connectInputStateToInputManager, createInputKeyRepeatTimer, createInputManager, createInputState, detachGamepadInput, detachKeyboardInput, detachPointerInput, detachRelativePointerInput, detachTextInput, detachWheelInput, endInputStateFrame,
|
|
1
|
+
export { applyGamepadAxisDeadZone, applyGamepadStickDeadZone, attachGamepadInput, attachKeyboardInput, attachPointerInput, attachRelativePointerInput, attachTextInput, attachWheelInput, connectInputStateToInputManager, createInputKeyRepeatTimer, createInputManager, createInputState, detachGamepadInput, detachKeyboardInput, detachPointerInput, detachRelativePointerInput, detachTextInput, detachWheelInput, endInputStateFrame, getCoalescedInputPointerEvents, getGamepadAxisName, getGamepadButtonName, getInputGamepadAxis, getKeyCodeFromDomKeyboardEvent, getKeyModifierFromDomKeyboardEvent, getMouseWheelModeFromDomWheelEvent, isInputGamepadButtonDown, isInputKeyDown, isInputPointerButtonDown, releaseInputPointerCapture, setInputPointerCapture, wasInputGamepadButtonPressed, wasInputGamepadButtonReleased, wasInputKeyPressed, wasInputKeyReleased, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EAClC,kCAAkC,EAClC,wBAAwB,EACxB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { applyGamepadAxisDeadZone, applyGamepadStickDeadZone, attachGamepadInput, attachKeyboardInput, attachPointerInput, attachRelativePointerInput, attachTextInput, attachWheelInput, connectInputStateToInputManager, createInputKeyRepeatTimer, createInputManager, createInputState, detachGamepadInput, detachKeyboardInput, detachPointerInput, detachRelativePointerInput, detachTextInput, detachWheelInput, endInputStateFrame,
|
|
1
|
+
export { applyGamepadAxisDeadZone, applyGamepadStickDeadZone, attachGamepadInput, attachKeyboardInput, attachPointerInput, attachRelativePointerInput, attachTextInput, attachWheelInput, connectInputStateToInputManager, createInputKeyRepeatTimer, createInputManager, createInputState, detachGamepadInput, detachKeyboardInput, detachPointerInput, detachRelativePointerInput, detachTextInput, detachWheelInput, endInputStateFrame, getCoalescedInputPointerEvents, getGamepadAxisName, getGamepadButtonName, getInputGamepadAxis, getKeyCodeFromDomKeyboardEvent, getKeyModifierFromDomKeyboardEvent, getMouseWheelModeFromDomWheelEvent, isInputGamepadButtonDown, isInputKeyDown, isInputPointerButtonDown, releaseInputPointerCapture, setInputPointerCapture, wasInputGamepadButtonPressed, wasInputGamepadButtonReleased, wasInputKeyPressed, wasInputKeyReleased, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EAClC,kCAAkC,EAClC,wBAAwB,EACxB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
package/dist/inputManager.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AttachInputOptions, GamepadAxisKind, GamepadButtonKind, GamepadMappingKind, InputKeyRepeatOptions, InputKeyRepeatTimer, InputManager, InputPointerData, InputSignals, InputState, MouseWheelMode } from '@flighthq/types/contract';
|
|
1
|
+
import type { AttachInputOptions, Entity, GamepadAxisKind, GamepadButtonKind, GamepadMappingKind, InputIngressBackend, InputIngressSource, InputKeyRepeatOptions, InputKeyRepeatTimer, InputManager, InputPointerData, InputSignals, InputState, MouseWheelMode, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
/**
|
|
3
3
|
* Filters a single gamepad axis value through a simple dead zone.
|
|
4
4
|
* Values within `[-deadZone, deadZone]` are mapped to `0`; values outside
|
|
@@ -21,12 +21,12 @@ export declare function applyGamepadStickDeadZone(out: {
|
|
|
21
21
|
x: number;
|
|
22
22
|
y: number;
|
|
23
23
|
}, x: number, y: number, deadZone: number): void;
|
|
24
|
-
export declare function attachGamepadInput(manager: InputManager,
|
|
25
|
-
export declare function attachKeyboardInput(manager: InputManager,
|
|
26
|
-
export declare function attachPointerInput(manager: InputManager,
|
|
27
|
-
export declare function attachRelativePointerInput(manager: InputManager,
|
|
28
|
-
export declare function attachTextInput(manager: InputManager,
|
|
29
|
-
export declare function attachWheelInput(manager: InputManager,
|
|
24
|
+
export declare function attachGamepadInput(manager: InputManager, source: InputIngressSource, options?: Readonly<AttachInputOptions>): void;
|
|
25
|
+
export declare function attachKeyboardInput(manager: InputManager, source: InputIngressSource, options?: Readonly<AttachInputOptions>): void;
|
|
26
|
+
export declare function attachPointerInput(manager: InputManager, source: InputIngressSource, options?: Readonly<AttachInputOptions>): void;
|
|
27
|
+
export declare function attachRelativePointerInput(manager: InputManager, source: InputIngressSource, options?: Readonly<AttachInputOptions>): void;
|
|
28
|
+
export declare function attachTextInput(manager: InputManager, source: InputIngressSource, options?: Readonly<AttachInputOptions>): void;
|
|
29
|
+
export declare function attachWheelInput(manager: InputManager, source: InputIngressSource, options?: Readonly<AttachInputOptions>): void;
|
|
30
30
|
/**
|
|
31
31
|
* Subscribes `state` to all signals on `manager` to maintain a live held-state snapshot.
|
|
32
32
|
* Also tracks per-frame edge sets (`justPressedKeys`, `justReleasedKeys`,
|
|
@@ -35,42 +35,17 @@ export declare function attachWheelInput(manager: InputManager, element: HTMLEle
|
|
|
35
35
|
* Returns a disposer that disconnects the subscriptions.
|
|
36
36
|
*/
|
|
37
37
|
export declare function connectInputStateToInputManager(state: InputState, manager: InputManager): () => void;
|
|
38
|
-
/**
|
|
39
|
-
* Creates a key-repeat timer for non-DOM sources (gamepad d-pad buttons,
|
|
40
|
-
* virtual on-screen keys, native backends) that do not generate their own
|
|
41
|
-
* auto-repeat events.
|
|
42
|
-
*
|
|
43
|
-
* Call `start(callback)` when a "key" is pressed. The `callback` is invoked
|
|
44
|
-
* immediately on press, then again after `options.delay` ms, then every
|
|
45
|
-
* `options.interval` ms until `stop()` is called.
|
|
46
|
-
*
|
|
47
|
-
* Returns a handle with `start(callback)` and `stop()` methods.
|
|
48
|
-
* The handle may be reused across multiple press/release cycles.
|
|
49
|
-
*
|
|
50
|
-
* ```ts
|
|
51
|
-
* const timer = createInputKeyRepeatTimer({ delay: 500, interval: 33 });
|
|
52
|
-
* // on press:
|
|
53
|
-
* timer.start(() => emitSignal(manager.onKeyDown, dpadData));
|
|
54
|
-
* // on release:
|
|
55
|
-
* timer.stop();
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
38
|
export declare function createInputKeyRepeatTimer(options: Readonly<InputKeyRepeatOptions>): InputKeyRepeatTimer;
|
|
59
39
|
export declare function createInputManager(): InputManager;
|
|
60
40
|
export declare function createInputSignals(): InputSignals;
|
|
61
|
-
/**
|
|
62
|
-
* Creates a fresh `InputState` with empty held-state maps/sets and empty
|
|
63
|
-
* frame-edge sets. Connect it to an `InputManager` via
|
|
64
|
-
* `connectInputStateToInputManager`, and call `endInputStateFrame` once per
|
|
65
|
-
* logical frame to roll the edge sets.
|
|
66
|
-
*/
|
|
67
41
|
export declare function createInputState(): InputState;
|
|
68
|
-
export declare function
|
|
69
|
-
export declare function
|
|
70
|
-
export declare function
|
|
71
|
-
export declare function
|
|
72
|
-
export declare function
|
|
73
|
-
export declare function
|
|
42
|
+
export declare function createWebInputIngressBackend(): InputIngressBackend & Entity;
|
|
43
|
+
export declare function detachGamepadInput(manager: InputManager, source: InputIngressSource): void;
|
|
44
|
+
export declare function detachKeyboardInput(manager: InputManager, source: InputIngressSource): void;
|
|
45
|
+
export declare function detachPointerInput(manager: InputManager, source: InputIngressSource): void;
|
|
46
|
+
export declare function detachRelativePointerInput(manager: InputManager, source: InputIngressSource): void;
|
|
47
|
+
export declare function detachTextInput(manager: InputManager, source: InputIngressSource): void;
|
|
48
|
+
export declare function detachWheelInput(manager: InputManager, source: InputIngressSource): void;
|
|
74
49
|
/**
|
|
75
50
|
* Rolls the per-frame edge sets on `state`, clearing `justPressedKeys`,
|
|
76
51
|
* `justReleasedKeys`, `justPressedGamepadButtons`, and
|
|
@@ -78,11 +53,6 @@ export declare function detachWheelInput(manager: InputManager, element: HTMLEle
|
|
|
78
53
|
* frame (or input-poll cycle) to prepare the edge sets for the next frame.
|
|
79
54
|
*/
|
|
80
55
|
export declare function endInputStateFrame(state: InputState): void;
|
|
81
|
-
/**
|
|
82
|
-
* Exits pointer lock, returning the pointer to normal movement.
|
|
83
|
-
* No-op if pointer lock is not currently active.
|
|
84
|
-
*/
|
|
85
|
-
export declare function exitInputPointerLock(): void;
|
|
86
56
|
/**
|
|
87
57
|
* Returns coalesced pointer event data for a `pointermove` event, iterating
|
|
88
58
|
* over the high-frequency intermediate positions captured since the last
|
|
@@ -110,13 +80,43 @@ export declare function getGamepadButtonName(mapping: GamepadMappingKind, index:
|
|
|
110
80
|
* `gamepad` is the gamepad index; `axis` is the axis index.
|
|
111
81
|
*/
|
|
112
82
|
export declare function getInputGamepadAxis(state: Readonly<InputState>, gamepad: number, axis: number): number;
|
|
83
|
+
export declare function getInputIngressBackend(): InputIngressBackend;
|
|
113
84
|
export declare function getKeyCodeFromDomKeyboardEvent(event: Readonly<KeyboardEvent>): number;
|
|
114
85
|
export declare function getKeyModifierFromDomKeyboardEvent(event: Readonly<KeyboardEvent>): number;
|
|
115
86
|
export declare function getMouseWheelModeFromDomWheelEvent(event: Readonly<WheelEvent>): MouseWheelMode;
|
|
116
87
|
/**
|
|
117
|
-
*
|
|
88
|
+
* Creates a key-repeat timer for non-DOM sources (gamepad d-pad buttons,
|
|
89
|
+
* virtual on-screen keys, native backends) that do not generate their own
|
|
90
|
+
* auto-repeat events.
|
|
91
|
+
*
|
|
92
|
+
* Call `start(callback)` when a "key" is pressed. The `callback` is invoked
|
|
93
|
+
* immediately on press, then again after `options.delay` ms, then every
|
|
94
|
+
* `options.interval` ms until `stop()` is called.
|
|
95
|
+
*
|
|
96
|
+
* Returns a handle with `start(callback)` and `stop()` methods.
|
|
97
|
+
* The handle may be reused across multiple press/release cycles.
|
|
98
|
+
*
|
|
99
|
+
* ```ts
|
|
100
|
+
* const timer = createInputKeyRepeatTimer({ delay: 500, interval: 33 });
|
|
101
|
+
* // on press:
|
|
102
|
+
* timer.start(() => emitSignal(manager.onKeyDown, dpadData));
|
|
103
|
+
* // on release:
|
|
104
|
+
* timer.stop();
|
|
105
|
+
* ```
|
|
118
106
|
*/
|
|
119
|
-
export declare function
|
|
107
|
+
export declare function initializeInputKeyRepeatTimer(out: EntityConstruction<InputKeyRepeatTimer>, options: Readonly<InputKeyRepeatOptions>): void;
|
|
108
|
+
export declare function initializeInputManager(out: EntityConstruction<InputManager>): void;
|
|
109
|
+
export declare function initializeInputSignals(out: EntityConstruction<InputSignals>): void;
|
|
110
|
+
/**
|
|
111
|
+
* Creates a fresh `InputState` with empty held-state maps/sets and empty
|
|
112
|
+
* frame-edge sets. Connect it to an `InputManager` via
|
|
113
|
+
* `connectInputStateToInputManager`, and call `endInputStateFrame` once per
|
|
114
|
+
* logical frame to roll the edge sets.
|
|
115
|
+
*/
|
|
116
|
+
export declare function initializeInputState(out: EntityConstruction<InputState>): void;
|
|
117
|
+
/** Explicit browser adapter for the process-wide input-ingress seam. */
|
|
118
|
+
export declare function initializeWebInputIngressBackend(out: EntityConstruction<InputIngressBackend & Entity>): void;
|
|
119
|
+
export declare function installInputIngressHostBackend(backend: InputIngressBackend): void;
|
|
120
120
|
/**
|
|
121
121
|
* Returns `true` if the given gamepad button is currently held.
|
|
122
122
|
* `gamepad` is the gamepad index; `button` is the button index.
|
|
@@ -131,19 +131,14 @@ export declare function isInputKeyDown(state: Readonly<InputState>, keyCode: num
|
|
|
131
131
|
* `button` corresponds to `MouseEvent.button` (0 = primary, 1 = middle, 2 = secondary, …).
|
|
132
132
|
*/
|
|
133
133
|
export declare function isInputPointerButtonDown(state: Readonly<InputState>, pointerId: number, button: number): boolean;
|
|
134
|
-
export declare function pollGamepadInput(manager: InputManager): void;
|
|
135
134
|
/**
|
|
136
135
|
* Releases pointer capture for `pointerId` from `element`, allowing pointer
|
|
137
136
|
* events to fire on the element under the pointer again.
|
|
138
137
|
* No-op if `element` does not have capture for this pointer.
|
|
139
138
|
*/
|
|
140
139
|
export declare function releaseInputPointerCapture(element: HTMLElement, pointerId: number): void;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
* resolves to `true` when lock is granted or `false` if the request is
|
|
144
|
-
* rejected (e.g. outside a user gesture, or the browser denies it).
|
|
145
|
-
*/
|
|
146
|
-
export declare function requestInputPointerLock(element: HTMLElement): Promise<boolean>;
|
|
140
|
+
export declare function resetInputIngressBackendForTest(): void;
|
|
141
|
+
export declare function setInputIngressBackend(backend: InputIngressBackend | null): void;
|
|
147
142
|
/**
|
|
148
143
|
* Explicitly captures all pointer events for `pointerId` to `element`,
|
|
149
144
|
* regardless of where the pointer moves. Useful for drag operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputManager.d.ts","sourceRoot":"","sources":["../src/inputManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inputManager.d.ts","sourceRoot":"","sources":["../src/inputManager.ts"],"names":[],"mappings":"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"}
|