pixijs-input-devices 0.2.1 → 0.2.2
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 +73 -10
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +56 -23
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,28 +30,84 @@ Ticker.shared.add( () => InputDevice.update() )
|
|
|
30
30
|
Navigation.stage = app.stage
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
### ✨ Binding Groups
|
|
34
|
+
|
|
35
|
+
Use named "groups" to create referenceable groups of inputs.
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
InputDevice.keyboard.options.namedGroups = {
|
|
39
|
+
jump: [ "ArrowUp", "Space", "KeyW" ],
|
|
40
|
+
crouch: [ "ArrowDown","KeyS" ],
|
|
41
|
+
moveSlow: [ "ShiftLeft", "ShiftRight" ],
|
|
42
|
+
left: [ "ArrowLeft", "KeyA" ],
|
|
43
|
+
right: [ "ArrowRight", "KeyD" ],
|
|
44
|
+
|
|
45
|
+
toggleGraphics: [ "KeyB" ],
|
|
46
|
+
// other...
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
GamepadDevice.defaultOptions.namedGroups = {
|
|
50
|
+
jump: [ "A" ],
|
|
51
|
+
crouch: [ "B", "X", "RightTrigger" ],
|
|
52
|
+
|
|
53
|
+
toggleGraphics: [ "RightStick" ],
|
|
54
|
+
// other...
|
|
55
|
+
};
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
These can then be used with the real-time and event-based APIs.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
// real-time:
|
|
62
|
+
if ( gamepad.groupPressed("jump") ) doJump();
|
|
63
|
+
|
|
64
|
+
// events:
|
|
65
|
+
InputDevice.gamepads[0].onGroup( "jump", ( event ) => doJump() );
|
|
66
|
+
|
|
67
|
+
// ...or listen to ANY device:
|
|
68
|
+
InputDevice.onGroup( "toggleGraphics", ( event ) => toggleGraphics() );
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
You definitely do not have to use named inputs:
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
// real-time:
|
|
75
|
+
if ( keyboard.key.Space || keyboard.key.KeyW ) jump = true;
|
|
76
|
+
if ( gamepad.button.A || gamepad.button.LeftTrigger ) jump = true;
|
|
77
|
+
|
|
78
|
+
// events:
|
|
79
|
+
InputDevice.gamepads[0].on( "A", ( event ) => doJump() );
|
|
80
|
+
```
|
|
81
|
+
|
|
33
82
|
### Realtime API
|
|
34
83
|
|
|
35
84
|
Iterate through `InputDevice.devices`, or access devices directly:
|
|
36
85
|
|
|
37
86
|
```ts
|
|
38
|
-
let jump = false,
|
|
87
|
+
let jump = false, crouch = false, moveX = 0
|
|
39
88
|
|
|
40
89
|
const keyboard = InputDevice.keyboard
|
|
41
|
-
if ( keyboard.
|
|
42
|
-
if ( keyboard.
|
|
43
|
-
if ( keyboard.
|
|
44
|
-
|
|
90
|
+
if ( keyboard.groupPressed( "jump" ) ) jump = true
|
|
91
|
+
if ( keyboard.groupPressed( "crouch" ) ) crouch = true
|
|
92
|
+
if ( keyboard.groupPressed( "left" ) ) moveX -= 1
|
|
93
|
+
if ( keyboard.groupPressed( "right" ) ) moveX += 1
|
|
94
|
+
if ( keyboard.groupPressed( "moveSlow" ) ) moveX *= 0.5
|
|
45
95
|
|
|
46
96
|
for ( const gamepad of InputDevice.gamepads ) {
|
|
47
|
-
if ( gamepad.
|
|
48
|
-
if ( gamepad.
|
|
49
|
-
|
|
97
|
+
if ( gamepad.groupPressed( "jump" ) ) jump = true
|
|
98
|
+
if ( gamepad.groupPressed( "crouch" ) ) crouch = true
|
|
99
|
+
|
|
100
|
+
// gamepads have additional analog inputs
|
|
101
|
+
// we're going to apply these only if touched
|
|
102
|
+
if ( gamepad.leftJoystick.x != 0 ) moveX = gamepad.leftJoystick.x
|
|
103
|
+
if ( gamepad.leftTrigger > 0 ) moveX *= ( 1 - gamepad.leftTrigger )
|
|
50
104
|
}
|
|
51
105
|
```
|
|
52
106
|
|
|
53
107
|
### Event API
|
|
54
108
|
|
|
109
|
+
Use `on( ... )` to subscribe to built-in events. Use `onGroup( ... )` to subscribe to custom named input group events.
|
|
110
|
+
|
|
55
111
|
```ts
|
|
56
112
|
// global events
|
|
57
113
|
InputDevice.on( "deviceconnected", ({ device }) =>
|
|
@@ -66,6 +122,11 @@ InputDevice.keyboard.on( "layoutdetected", ({ layout }) =>
|
|
|
66
122
|
// bind keys/buttons
|
|
67
123
|
InputDevice.keyboard.on( "Escape", () => showMenu() )
|
|
68
124
|
InputDevice.gamepads[0].on( "Back", () => showMenu() )
|
|
125
|
+
|
|
126
|
+
// use "onGroup()" to add custom events too:
|
|
127
|
+
InputDevice.onGroup( "pause_menu", ( event ) => {
|
|
128
|
+
// menu was triggered!
|
|
129
|
+
})
|
|
69
130
|
```
|
|
70
131
|
|
|
71
132
|
#### Global Events
|
|
@@ -80,6 +141,7 @@ InputDevice.gamepads[0].on( "Back", () => showMenu() )
|
|
|
80
141
|
| Event | Description | Payload |
|
|
81
142
|
|---|---|---|
|
|
82
143
|
| `"layoutdetected"` | `{layout,layoutSource,device}` | The keyboard layout (`"QWERTY"`, `"QWERTZ"`, `"AZERTY"`, or `"JCUKEN"`) has been detected, either from the native API or from keypresses. |
|
|
144
|
+
| `"group"` | `{groupName,event,keyCode,keyLabel,device}` | A named input group key was pressed. |
|
|
83
145
|
| **Key presses:** | | |
|
|
84
146
|
| `"KeyA"` \| `"KeyB"` \| ... 103 more ... | `{event,keyCode,keyLabel,device}` | `"KeyA"` was pressed. |
|
|
85
147
|
|
|
@@ -87,6 +149,7 @@ InputDevice.gamepads[0].on( "Back", () => showMenu() )
|
|
|
87
149
|
|
|
88
150
|
| Event | Description | Payload |
|
|
89
151
|
|---|---|---|
|
|
152
|
+
| `"group"` | `{groupName,button,buttonCode,device}` | A named input group button was pressed. |
|
|
90
153
|
| **Button presses:** | | |
|
|
91
154
|
| `"A"` \| `"B"` \| `"X"` \| ... 13 more ... | `{button,buttonCode,device}` | Button `"A"` was pressed. Equivalent to `0`. |
|
|
92
155
|
| ... | ... | ... |
|
|
@@ -97,7 +160,7 @@ InputDevice.gamepads[0].on( "Back", () => showMenu() )
|
|
|
97
160
|
> [!TIP]
|
|
98
161
|
> **Multiplayer:** For multiple players, consider assigning devices
|
|
99
162
|
> using `device.meta` (e.g. `device.meta.player = 1`) and use
|
|
100
|
-
> `InputDevice.devices` to iterate through devices
|
|
163
|
+
> `InputDevice.devices` to iterate through devices.
|
|
101
164
|
|
|
102
165
|
### Navigation API
|
|
103
166
|
|
|
@@ -105,8 +168,8 @@ By default, any element with `"mousedown"` or `"pointerdown"` handlers is naviga
|
|
|
105
168
|
|
|
106
169
|
Container properties | type | default | description
|
|
107
170
|
---------------------|------|---------|--------------
|
|
171
|
+
`isNavigatable` | `boolean` | `false` | returns `true` if `navigationMode` is set to `"target"`, or is `"auto"` and a `"pointerdown"` or `"mousedown"` event handler is registered.
|
|
108
172
|
`navigationMode` | `"auto"` \| `"disabled"` \| `"target"` | `"auto"` | When set to `"auto"`, a `Container` can be navigated to if it has a `"pointerdown"` or `"mousedown"` event handler registered.
|
|
109
|
-
`isNavigatable` | `get () => boolean` | `false` | returns `true` if `navigationMode` is `"target"`, or `"auto"` and a `"pointerdown"` or `"mousedown"` event handler is registered.
|
|
110
173
|
`navigationPriority` | `number` | `0` | The priority relative to other navigation items in this group.
|
|
111
174
|
|
|
112
175
|
Navigation intent | Keyboard | Gamepads
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=0,t=1,i=2,a=3,o={A:0,B:1,X:2,Y:3,LeftShoulder:4,RightShoulder:5,LeftTrigger:6,RightTrigger:7,Back:8,Start:9,LeftStick:10,RightStick:11,DPadUp:12,DPadDown:13,DPadLeft:14,DPadRight:15},s=["A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight"];function getAllNavigatables(e,t=[]){for(const i of e.children)i.isNavigatable?t.push(i):getAllNavigatables(i,t);return t}function getFirstNavigatable(e,t,i,{minimumDistance:a=3}={}){return function chooseFirstNavigatableInDirection(e,t,i,{minimumDistance:a=3}={}){var o,s,n,r,d,u,l,c,h;const g=e.filter((e=>e.isNavigatable&&null!=e.parent&&function isVisible(e){for(;null!=e;){if(!e.visible)return!1;e=e.parent}return!0}(e))),p=g.find((e=>e===t));if(void 0===p)return g.sort(((e,t)=>e.navigationPriority-t.navigationPriority)),g[0];if(void 0===i&&p)return p;const m=null!=p?p:g[Math.floor(Math.random()*g.length)];if(void 0===p)return null!==(o=e[0])&&void 0!==o?o:m;const v=p.getBounds(),y={x:v.left+v.width/2,y:v.top+v.height/2},f=g.filter((e=>e!==p)).map((e=>{const t=e.getBounds(),i={x:t.left+t.width/2,y:t.top+t.height/2};return{element:e,bounds:t,center:i,distSqrd:squaredDist(i,y)}}));switch(i){case"navigateUp":return null!==(n=null===(s=f.filter((e=>e.center.y<y.y-a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===s?void 0:s.element)&&void 0!==n?n:m;case"navigateLeft":return null!==(d=null===(r=f.filter((e=>e.center.x<y.x-a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===r?void 0:r.element)&&void 0!==d?d:m;case"navigateRight":return null!==(l=null===(u=f.filter((e=>e.center.x>y.x+a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===u?void 0:u.element)&&void 0!==l?l:m;case"navigateDown":return null!==(h=null===(c=f.filter((e=>e.center.y>y.y+a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===c?void 0:c.element)&&void 0!==h?h:m;default:return p}}(getAllNavigatables(e),t,i,{minimumDistance:a})}function squaredDist(e,t){const i=t.x-e.x,a=t.y-e.y;return i*i+a*a}class NavigationManager{constructor(){this.options={enabled:!0,useFallbackHoverEffect:!0},this._responderStack=[]}get firstResponder(){return this._responderStack[0]}get responders(){return this._responderStack}commit(e,t){this.options.enabled&&this._propagateIntent(e,t)}popResponder(){var e,t,i;const a=this._responderStack.shift();return null===(t=null===(e=this.firstResponder)||void 0===e?void 0:e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==a?void 0:a.resignedAsFirstResponder)||void 0===i||i.call(a),a}pushResponder(e){var t,i;if(this._responderStack.includes(e))throw new Error("Responder already in stack.");const a=this.firstResponder;this._responderStack.unshift(e),null===(t=e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==a?void 0:a.resignedAsFirstResponder)||void 0===i||i.call(a)}_propagateIntent(e,t){var i;for(const a of this._responderStack)if(null===(i=a.handledNavigationIntent)||void 0===i?void 0:i.call(a,e,t))return;void 0===this.stage?console.warn("navigation: no stage root set"):this._handleGlobalIntent(this.stage,e)}_handleGlobalIntent(e,t){var i;if(void 0===this._focused){const i=getFirstNavigatable(e);return void 0===i?void console.debug("navigation: no navigatable views found",t):(this._emitFocus(i),void(this._focused=i))}if("navigateBack"===t)return this._emitBlur(this._focused),void(this._focused=void 0);if("trigger"===t)return void this._emitTrigger(this._focused);const a=null!==(i=getFirstNavigatable(this.stage,this._focused,t))&&void 0!==i?i:this._focused;a!==this._focused&&(this._emitBlur(this._focused),this._emitFocus(a),this._focused=a)}_emitBlur(e){const t=e.eventNames();t.includes("pointerout")?e.emit("pointerout"):t.includes("mouseout")?e.emit("mouseout"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=1),e.emit("blur")}_emitFocus(e){const t=e.eventNames();t.includes("pointerover")?e.emit("pointerover"):t.includes("mouseover")?e.emit("mouseover"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.5),e.emit("focus")}_emitTrigger(e){const t=e.eventNames();t.includes("pointerdown")?e.emit("pointerdown"):t.includes("mousedown")?e.emit("mousedown"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.75),e.emit("trigger")}}NavigationManager.global=new NavigationManager;const n=NavigationManager.global;let r=new Map;function throttle(e,t){var i;const a=Date.now();return(null!==(i=r.get(e))&&void 0!==i?i:0)>a||(r.set(e,a+t),!1)}class EventEmitter{constructor(){this.l={}}hasListener(e){return void 0!==this.l[e]}emit(e,t){var i;null===(i=this.l[e])||void 0===i||i.forEach((e=>e(t)))}on(e,t){var i;this.l[e]||(this.l[e]=[]),null===(i=this.l[e])||void 0===i||i.push(t)}off(e,t){var i,a;this.l[e]=void 0===t||null===(i=this.l[e])||void 0===i?void 0:i.filter((e=>e!==t)),0===(null===(a=this.l[e])||void 0===a?void 0:a.length)&&(this.l[e]=void 0)}}class GamepadDevice{get leftTrigger(){return this.source.buttons[o.LeftTrigger].value}get rightTrigger(){return this.source.buttons[o.RightTrigger].value}get leftShoulder(){return this.source.buttons[o.LeftShoulder].value}get rightShoulder(){return this.source.buttons[o.RightShoulder].value}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.button[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.button[e[t]])return!1;return!0}on(e,t){const i="number"==typeof e?s[e]:e;return this._emitter.on(i,t),this}off(e,t){const i="number"==typeof e?s[e]:e;return this._emitter.off(i,t),this}playVibration({duration:e=200,weakMagnitude:t=.5,strongMagnitude:i=.5,vibrationType:a="dual-rumble",rightTrigger:o=0,leftTrigger:s=0,startDelay:n=0}={}){if(this.options.vibration.enabled&&this.source.vibrationActuator)try{this.source.vibrationActuator.playEffect(a,{duration:e,startDelay:n,weakMagnitude:t,strongMagnitude:i,leftTrigger:s,rightTrigger:o})}catch(e){console.warn("gamepad vibrationActuator failed with error:",e)}}update(e,t){this.lastUpdated=t,this.updatePresses(e,t),this.source=e}clear(){this._axisIntents=this._axisIntents.map((()=>!1)),this._btnPrevState=this._btnPrevState.map((()=>!1))}constructor(s){this.source=s,this.type="gamepad",this.meta={},this.lastUpdated=performance.now(),this.lastActive=performance.now(),this.options=JSON.parse(JSON.stringify(GamepadDevice.defaultOptions)),this.button=Object.keys(o).reduce(((e,t)=>(e[t]=!1,e)),{}),this._btnPrevState=new Array(16),this._axisIntents=new Array(2),this._emitter=new EventEmitter,this.id="gamepad"+s.index,this.layout=function detectLayout(e){const t=(e.id||"").toLowerCase();return/(steam|28de)/.test(t)?"steam":/(logitech|046d|c216)/.test(t)?"logitech":/(nintendo|switch|joycon|057e)/.test(t)?"nintendo":/(dualshock|dualsense|sony|054c|0ce6|0810)/.test(t)?"playstation":/(xbox|xinput|045e|028e|0291|02a0|02a1|02ea|02ff)/.test(t)?"xbox":"generic"}(s),this.leftJoystick=new GamepadJoystick(this,e,t),this.rightJoystick=new GamepadJoystick(this,i,a),this._throttleIdLeftStickX=this.id+"-lsx",this._throttleIdLeftStickY=this.id+"-lsy"}updatePresses(i,a){var r,d,u,l,c;const h=this._btnPrevState.length;for(let e=0;e<h;e++){let t=e;if("nintendo"===this.layout&&"none"!==this.options.remapNintendoMode&&("physical"===this.options.remapNintendoMode?t===o.B?t=o.A:t===o.A?t=o.B:t===o.X?t=o.Y:t===o.Y&&(t=o.X):t===o.B?t=o.X:t===o.X&&(t=o.B)),this._btnPrevState[t]===(null===(r=i.buttons[e])||void 0===r?void 0:r.pressed))continue;this.lastActive=a;const l=null!==(u=null===(d=i.buttons[e])||void 0===d?void 0:d.pressed)&&void 0!==u&&u,c=s[t];this._btnPrevState[t]=l,this.button[c]=l,l&&(this._emitter.hasListener(c)?setTimeout((()=>this._emitter.emit(c,{device:this,button:t,buttonCode:c}))):this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&setTimeout((()=>n.commit(this.options.navigation.binds[t],this))))}const g=null!==(l=i.axes[e])&&void 0!==l?l:0,p=null!==(c=i.axes[t])&&void 0!==c?c:0;if(Math.abs(g)>=this.options.intent.joystickCommitSensitivity){const t=g<0?"navigateLeft":"navigateRight",i=this._axisIntents[e]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[e]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickX,i)&&setTimeout((()=>n.commit(t,this)))}else this._axisIntents[e]=!1;if(Math.abs(p)>=this.options.intent.joystickCommitSensitivity){const e=p<0?"navigateUp":"navigateDown",i=this._axisIntents[t]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[t]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickY,i)&&setTimeout((()=>n.commit(e,this)))}else this._axisIntents[t]=!1}}GamepadDevice.defaultOptions={remapNintendoMode:"physical",namedGroups:{},navigation:{enabled:!0,binds:{[o.A]:"trigger",[o.B]:"navigateBack",[o.Back]:"navigateBack",[o.DPadDown]:"navigateDown",[o.DPadLeft]:"navigateLeft",[o.DPadRight]:"navigateRight",[o.DPadUp]:"navigateUp"}},intent:{joystickCommitSensitivity:.5,firstCooldownMs:400,defaultCooldownMs:80},vibration:{enabled:!0,intensity:1}};class GamepadJoystick{constructor(e,t,i){this._owner=e,this.ix=t,this.iy=i}get x(){return this._owner.source.axes[this.ix]}get y(){return this._owner.source.axes[this.iy]}}const d={AltLeft:"AltLeft",AltRight:"AltRight",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",Backquote:"Backquote",Backslash:"Backslash",Backspace:"Backspace",BracketLeft:"BracketLeft",BracketRight:"BracketRight",CapsLock:"CapsLock",Comma:"Comma",ContextMenu:"ContextMenu",ControlLeft:"ControlLeft",ControlRight:"ControlRight",Delete:"Delete",Digit0:"Digit0",Digit1:"Digit1",Digit2:"Digit2",Digit3:"Digit3",Digit4:"Digit4",Digit5:"Digit5",Digit6:"Digit6",Digit7:"Digit7",Digit8:"Digit8",Digit9:"Digit9",End:"End",Enter:"Enter",Equal:"Equal",Escape:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F2:"F2",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F3:"F3",F30:"F30",F31:"F31",F32:"F32",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",Home:"Home",IntlBackslash:"IntlBackslash",IntlRo:"IntlRo",IntlYen:"IntlYen",KeyA:"KeyA",KeyB:"KeyB",KeyC:"KeyC",KeyD:"KeyD",KeyE:"KeyE",KeyF:"KeyF",KeyG:"KeyG",KeyH:"KeyH",KeyI:"KeyI",KeyJ:"KeyJ",KeyK:"KeyK",KeyL:"KeyL",KeyM:"KeyM",KeyN:"KeyN",KeyO:"KeyO",KeyP:"KeyP",KeyQ:"KeyQ",KeyR:"KeyR",KeyS:"KeyS",KeyT:"KeyT",KeyU:"KeyU",KeyV:"KeyV",KeyW:"KeyW",KeyX:"KeyX",KeyY:"KeyY",KeyZ:"KeyZ",Lang1:"Lang1",Lang2:"Lang2",MediaTrackNext:"MediaTrackNext",MediaTrackPrevious:"MediaTrackPrevious",MetaLeft:"MetaLeft",MetaRight:"MetaRight",Minus:"Minus",NumLock:"NumLock",Numpad0:"Numpad0",Numpad1:"Numpad1",Numpad2:"Numpad2",Numpad3:"Numpad3",Numpad4:"Numpad4",Numpad5:"Numpad5",Numpad6:"Numpad6",Numpad7:"Numpad7",Numpad8:"Numpad8",Numpad9:"Numpad9",NumpadAdd:"NumpadAdd",NumpadComma:"NumpadComma",NumpadDecimal:"NumpadDecimal",NumpadDivide:"NumpadDivide",NumpadMultiply:"NumpadMultiply",NumpadSubtract:"NumpadSubtract",OSLeft:"OSLeft",Pause:"Pause",Period:"Period",Quote:"Quote",ScrollLock:"ScrollLock",Semicolon:"Semicolon",ShiftLeft:"ShiftLeft",ShiftRight:"ShiftRight",Slash:"Slash",Space:"Space",Tab:"Tab",VolumeDown:"VolumeDown",VolumeMute:"VolumeMute",VolumeUp:"VolumeUp",WakeUp:"WakeUp"};function __awaiter(e,t,i,a){return new(i||(i=Promise))((function(o,s){function fulfilled(e){try{step(a.next(e))}catch(e){s(e)}}function rejected(e){try{step(a.throw(e))}catch(e){s(e)}}function step(e){e.done?o(e.value):function adopt(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const u=["fr","mg","lu"],l=["ab","ba","be","bg","ch","kk","ky","mk","mn","ru","sr","tg","tt","uk","uz"],c=["de","cs","sk","sl","hu","hr","bs","ro","sq","me","lt","lv","et"],h=/ф|и|с|в|у|а|п|р|ш|о|л|д|ь|т|щ|з|й|к|ы|е|г|м|ц|ч|н|я|ё|х|ъ|б|ю|э|ж|и/i,g=/[a-z]/i;function inferKeyboardLayoutFromLang(e=function getLang(){var e;const t=navigator;return null!=(null===(e=t.languages)||void 0===e?void 0:e.length)?t.languages[0]:t.userLanguage||t.language||t.browserLanguage}()){const t=(e||"").toLowerCase(),i=t.split("-")[0];return u.includes(i)||t.startsWith("nl-be")?"AZERTY":l.includes(i)?"JCUKEN":c.includes(i)||t.startsWith("sr-latn")?"QWERTZ":"QWERTY"}const p=new Set(["AZERTY","JCUKEN","QWERTY","QWERTZ"]);let m;function getMetaKeyLabel(){var e,t,i,a;const o=navigator,s=null!==(t=null===(e=o.platform)||void 0===e?void 0:e.toLowerCase())&&void 0!==t?t:"",n=null!==(a=null===(i=o.userAgent)||void 0===i?void 0:i.toLowerCase())&&void 0!==a?a:"";return s.includes("mac")?"⌘":s.includes("win")||s.includes("linux")?"⊞":n.includes("android")?"Search":n.includes("iphone")||n.includes("ipad")?"⌘":"⊞"}class KeyboardDevice{constructor(){this.type="keyboard",this.id="keyboard",this.meta={},this.lastUpdated=performance.now(),this.detectLayoutOnKeypress=!0,this.detected=!1,this._emitter=new EventEmitter,this.options={preventDefaultKeys:new Set([]),namedGroups:{},navigation:{enabled:!0,binds:{Space:"trigger",Enter:"trigger",Escape:"navigateBack",Backspace:"navigateBack",ArrowDown:"navigateDown",ArrowLeft:"navigateLeft",ArrowRight:"navigateRight",ArrowUp:"navigateUp",KeyA:"navigateLeft",KeyD:"navigateRight",KeyS:"navigateDown",KeyW:"navigateUp"}}},this.key=Object.keys(d).reduce(((e,t)=>(e[t]=!1,e)),{}),this._layout=inferKeyboardLayoutFromLang(),this._layoutSource="lang",function requestKeyboardLayout(){return __awaiter(this,void 0,void 0,(function*(){const e=navigator;if(e.keyboard&&e.keyboard.getLayoutMap)try{const t=yield e.keyboard.getLayoutMap(),i=t.get("KeyQ"),a=t.get("KeyA"),o=t.get("KeyZ");if("a"===i&&"w"===o&&"q"===a)return"AZERTY";if("q"===i&&"y"===o&&"a"===a)return"QWERTZ";if("q"===i&&"z"===o&&"a"===a)return"QWERTY";if("й"===i&&"я"===o&&"ф"===a)return"JCUKEN"}catch(e){console.error("Error detecting keyboard layout:",e)}}))}().then((e=>{void 0!==e&&(this._layoutSource="browser",this._layout=e,this._emitter.emit("layoutdetected",{layoutSource:"browser",layout:e,device:this}))})),this._configureEventListeners()}get layout(){return this._layout}set layout(e){this._layoutSource="manual",this._layout=e}get layoutSource(){return this._layoutSource}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.key[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.key[e[t]])return!1;return!0}on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}keyLabel(e,t=this._layout){return function getLayoutLabel(e,t){if(void 0===m){const e={ArrowLeft:"←",ArrowRight:"→",ArrowUp:"↑",ArrowDown:"↓",AltLeft:"Left Alt",AltRight:"Right Alt",Backquote:"`",Backslash:"\\",Backspace:"Backspace",BracketLeft:"[",BracketRight:"]",CapsLock:"Caps Lock",Comma:",",ContextMenu:"Context Menu",ControlLeft:"Left Ctrl",ControlRight:"Right Ctrl",Delete:"Delete",Digit0:"0",Digit1:"1",Digit2:"2",Digit3:"3",Digit4:"4",Digit5:"5",Digit6:"6",Digit7:"7",Digit8:"8",Digit9:"9",End:"End",Enter:"Enter",Equal:"=",Escape:"Esc",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F30:"F30",F31:"F31",F32:"F32",Home:"Home",IntlBackslash:"\\",IntlRo:"Ro",IntlYen:"¥",KeyA:"A",KeyB:"B",KeyC:"C",KeyD:"D",KeyE:"E",KeyF:"F",KeyG:"G",KeyH:"H",KeyI:"I",KeyJ:"J",KeyK:"K",KeyL:"L",KeyM:"M",KeyN:"N",KeyO:"O",KeyP:"P",KeyQ:"Q",KeyR:"R",KeyS:"S",KeyT:"T",KeyU:"U",KeyV:"V",KeyW:"W",KeyX:"X",KeyY:"Y",KeyZ:"Z",Lang1:"Language 1",Lang2:"Language 2",MediaTrackNext:"Next Track",MediaTrackPrevious:"Previous Track",MetaLeft:"Left "+getMetaKeyLabel(),MetaRight:"Right "+getMetaKeyLabel(),Minus:"-",NumLock:"Num Lock",Numpad0:"Num0",Numpad1:"Num1",Numpad2:"Num2",Numpad3:"Num3",Numpad4:"Num4",Numpad5:"Num5",Numpad6:"Num6",Numpad7:"Num7",Numpad8:"Num8",Numpad9:"Num9",NumpadAdd:"+",NumpadComma:",",NumpadDecimal:".",NumpadDivide:"/",NumpadMultiply:"*",NumpadSubtract:"-",OSLeft:"OS Left",Pause:"Pause",Period:".",Quote:"'",ScrollLock:"Scroll Lock",Semicolon:";",ShiftLeft:"Left Shift",ShiftRight:"Right Shift",Slash:"/",Space:"Space",Tab:"Tab",VolumeDown:"Volume Down",VolumeMute:"Mute",VolumeUp:"Volume Up",WakeUp:"Wake Up"},t=Object.assign(Object.assign({},e),{KeyA:"Q",KeyQ:"A",KeyW:"Z",KeyZ:"W",Backquote:"²",BracketLeft:"«",BracketRight:"»"}),i=Object.assign(Object.assign({},e),{KeyA:"Ф",KeyB:"И",KeyC:"С",KeyD:"В",KeyE:"У",KeyF:"А",KeyG:"П",KeyH:"Р",KeyI:"Ш",KeyJ:"О",KeyK:"Л",KeyL:"Д",KeyM:"Ь",KeyN:"Т",KeyO:"Щ",KeyP:"З",KeyQ:"Й",KeyR:"К",KeyS:"Ы",KeyT:"Е",KeyU:"Г",KeyV:"М",KeyW:"Ц",KeyX:"Ч",KeyY:"Н",KeyZ:"Я",Backquote:"Ё",BracketLeft:"х",BracketRight:"ъ",Comma:"Б",Period:"Ю",Quote:"Э",Semicolon:"Ж",Slash:"И"}),a=Object.assign(Object.assign({},e),{KeyY:"Z",KeyZ:"Y",BracketLeft:"ü",BracketRight:"ö",Slash:"-"});m={AZERTY:t,JCUKEN:i,QWERTY:e,QWERTZ:a}}return m[t][e]}(e,t)}clear(){for(const e of Object.keys(d))this.key[e]=!1}_configureEventListeners(){document.addEventListener("keydown",(e=>{const t=e.code;if(this.key[t]=!0,this.options.preventDefaultKeys.has(t)&&e.preventDefault(),this.detectLayoutOnKeypress&&"lang"===this._layoutSource){const t=function detectKeyboardLayoutFromKeydown(e){const t=e.key.toLowerCase(),i=e.code;return h.test(t)?(p.delete("AZERTY"),p.delete("QWERTY"),p.delete("QWERTZ")):"Backquote"===i&&"²"===t||"BracketLeft"===i&&"«"===t||"BracketRight"===i&&"»"===t||"KeyA"===i&&"q"===t||"KeyQ"===i&&"a"===t||"KeyW"===i&&"z"===t||"KeyZ"===i&&"w"===t?(p.delete("JCUKEN"),p.delete("QWERTY"),p.delete("QWERTZ")):"BracketLeft"===i&&"ü"===t||"BracketRight"===i&&"ö"===t||"KeyY"===i&&"z"===t||"KeyZ"===i&&"y"===t||"Slash"===i&&"-"===t?(p.delete("AZERTY"),p.delete("JCUKEN"),p.delete("QWERTY")):"BracketLeft"===i&&"["===t||"BracketRight"===i&&"]"===t||"KeyZ"===i&&"z"===t?(p.delete("AZERTY"),p.delete("JCUKEN"),p.delete("QWERTZ")):"KeyQ"===i&&"q"===t||"KeyW"===i&&"w"===t?(p.delete("AZERTY"),p.delete("JCUKEN")):"KeyY"===i&&"Y"===t?(p.delete("QWERTZ"),p.delete("JCUKEN")):g.test(t)&&p.delete("JCUKEN"),1===p.size?[...p][0]:void 0}(e);void 0!==t&&(this._layout=t,this._layoutSource="keypress",this.detectLayoutOnKeypress=!1,this._emitter.emit("layoutdetected",{layout:t,layoutSource:"keypress",device:this}))}this._emitter.hasListener(t)?setTimeout((()=>this._emitter.emit(t,{device:this,keyCode:t,keyLabel:this.keyLabel(t),event:e}))):this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&(e.preventDefault(),setTimeout((()=>n.commit(this.options.navigation.binds[t],this))))})),document.addEventListener("keyup",(e=>{this.key[e.code]=!1,this.options.preventDefaultKeys.has(e.code)&&e.preventDefault()}))}}KeyboardDevice.global=new KeyboardDevice;class InputDeviceManager{on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}get gamepads(){return this._gamepadDevices}get devices(){return this._devices}constructor(){this._emitter=new EventEmitter,this.isMobile=(()=>{let e=!1;var t;return t=navigator.userAgent||navigator.vendor,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0),e})(),this.isTouchCapable=function isTouchCapable(){return"ontouchstart"in window||navigator.maxTouchPoints>0}(),this.hasFocus=!1,this.options={clearInputInBackground:!0},this._gamepadDevices=[],this._gamepadDeviceMap=new Map,this._devices=[];const registerKeyboard=()=>{window.removeEventListener("keydown",registerKeyboard),this._devices.push(this.keyboard),this._emitter.emit("deviceadded",{device:this.keyboard}),this.keyboard.detected=!0};this.keyboard=KeyboardDevice.global,this.isTouchCapable||this.isMobile?window.addEventListener("keydown",registerKeyboard):registerKeyboard(),window.addEventListener("gamepadconnected",(()=>this.pollGamepads(performance.now()))),window.addEventListener("gamepaddisconnected",(e=>this.removeGamepad(e.gamepad.index)))}update(){if(!document.hasFocus())return this.hasFocus&&this.options.clearInputInBackground&&this.devices.forEach((e=>e.clear())),this.hasFocus=!1,this._devices;this.hasFocus=!0;const e=performance.now();return this.keyboard.lastUpdated=e,this.pollGamepads(e),this._devices}add(e){this._devices.push(e)}remove(e){const t=this._devices.indexOf(e);-1!==t&&(this._devices.splice(t,1),this._emitter.emit("deviceremoved",{device:e}))}pollGamepads(e){if(!document.hasFocus())return this._gamepadDevices;if(void 0===navigator.getGamepads)return this._gamepadDevices;for(const t of navigator.getGamepads())if(null!=t)if(this._gamepadDeviceMap.has(t.index)){this._gamepadDeviceMap.get(t.index).update(t,e)}else{const e=new GamepadDevice(t);this._gamepadDeviceMap.set(t.index,e),this._gamepadDevices.push(e),this._devices.push(e),this._emitter.emit("deviceadded",{device:e})}return this._gamepadDevices}removeGamepad(e){const t=this._gamepadDeviceMap.get(e);if(!t)return;const i=this._gamepadDevices.indexOf(t);-1!==i&&this._gamepadDevices.splice(i,1),this.remove(t),this._gamepadDeviceMap.delete(e)}}InputDeviceManager.global=new InputDeviceManager;const v=InputDeviceManager.global;exports.Button=o,exports.CustomDevice=class CustomDevice{constructor(e){this.type="custom",this.meta={},this.lastUpdated=performance.now(),this.id=e}clear(){}},exports.GamepadDevice=GamepadDevice,exports.InputDevice=v,exports.KeyCode=d,exports.KeyboardDevice=KeyboardDevice,exports.Navigation=n,exports.getAllNavigatables=getAllNavigatables,exports.getFirstNavigatable=getFirstNavigatable,exports.registerPixiJSInputDeviceMixin=function registerPixiJSInputDeviceMixin(e){const t=e.prototype;t.navigationPriority=0,t.navigationMode="auto",Object.defineProperty(t,"isNavigatable",{get:function(){if("auto"===this.navigationMode){if(!this.isInteractive)return!1;const e=this.eventNames();return e.includes("pointerdown")||e.includes("mousedown")}return"target"===this.navigationMode},configurable:!0,enumerable:!1})};
|
|
1
|
+
"use strict";class CustomDevice{constructor(e){this.type="custom",this.meta={},this.lastUpdated=performance.now(),this.id=e}clear(){}}const e=0,t=1,i=2,o=3,a={A:0,B:1,X:2,Y:3,LeftShoulder:4,RightShoulder:5,LeftTrigger:6,RightTrigger:7,Back:8,Start:9,LeftStick:10,RightStick:11,DPadUp:12,DPadDown:13,DPadLeft:14,DPadRight:15},s=["A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight"];function getAllNavigatables(e,t=[]){for(const i of e.children)i.isNavigatable?t.push(i):getAllNavigatables(i,t);return t}function getFirstNavigatable(e,t,i,{minimumDistance:o=3}={}){return function chooseFirstNavigatableInDirection(e,t,i,{minimumDistance:o=3}={}){var a,s,n,r,d,u,c,l,h;const p=e.filter((e=>e.isNavigatable&&null!=e.parent&&function isVisible(e){for(;null!=e;){if(!e.visible)return!1;e=e.parent}return!0}(e))),g=p.find((e=>e===t));if(void 0===g)return p.sort(((e,t)=>e.navigationPriority-t.navigationPriority)),p[0];if(void 0===i&&g)return g;const m=null!=g?g:p[Math.floor(Math.random()*p.length)];if(void 0===g)return null!==(a=e[0])&&void 0!==a?a:m;const v=g.getBounds(),y={x:v.left+v.width/2,y:v.top+v.height/2},f=p.filter((e=>e!==g)).map((e=>{const t=e.getBounds(),i={x:t.left+t.width/2,y:t.top+t.height/2};return{element:e,bounds:t,center:i,distSqrd:squaredDist(i,y)}}));switch(i){case"navigateUp":return null!==(n=null===(s=f.filter((e=>e.center.y<y.y-o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===s?void 0:s.element)&&void 0!==n?n:m;case"navigateLeft":return null!==(d=null===(r=f.filter((e=>e.center.x<y.x-o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===r?void 0:r.element)&&void 0!==d?d:m;case"navigateRight":return null!==(c=null===(u=f.filter((e=>e.center.x>y.x+o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===u?void 0:u.element)&&void 0!==c?c:m;case"navigateDown":return null!==(h=null===(l=f.filter((e=>e.center.y>y.y+o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===l?void 0:l.element)&&void 0!==h?h:m;default:return g}}(getAllNavigatables(e),t,i,{minimumDistance:o})}function squaredDist(e,t){const i=t.x-e.x,o=t.y-e.y;return i*i+o*o}class NavigationManager{constructor(){this.options={enabled:!0,useFallbackHoverEffect:!0},this._responderStack=[]}get firstResponder(){return this._responderStack[0]}get responders(){return this._responderStack}commit(e,t){this.options.enabled&&this._propagateIntent(e,t)}popResponder(){var e,t,i;const o=this._responderStack.shift();return null===(t=null===(e=this.firstResponder)||void 0===e?void 0:e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==o?void 0:o.resignedAsFirstResponder)||void 0===i||i.call(o),o}pushResponder(e){var t,i;if(this._responderStack.includes(e))throw new Error("Responder already in stack.");const o=this.firstResponder;this._responderStack.unshift(e),null===(t=e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==o?void 0:o.resignedAsFirstResponder)||void 0===i||i.call(o)}_propagateIntent(e,t){var i;for(const o of this._responderStack)if(null===(i=o.handledNavigationIntent)||void 0===i?void 0:i.call(o,e,t))return;void 0===this.stage?console.warn("navigation: no stage root set"):this._handleGlobalIntent(this.stage,e)}_handleGlobalIntent(e,t){var i;if(void 0===this._focused){const i=getFirstNavigatable(e);return void 0===i?void console.debug("navigation: no navigatable views found",t):(this._emitFocus(i),void(this._focused=i))}if("navigateBack"===t)return this._emitBlur(this._focused),void(this._focused=void 0);if("trigger"===t)return void this._emitTrigger(this._focused);const o=null!==(i=getFirstNavigatable(this.stage,this._focused,t))&&void 0!==i?i:this._focused;o!==this._focused&&(this._emitBlur(this._focused),this._emitFocus(o),this._focused=o)}_emitBlur(e){const t=e.eventNames();t.includes("pointerout")?e.emit("pointerout"):t.includes("mouseout")?e.emit("mouseout"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=1),e.emit("blur")}_emitFocus(e){const t=e.eventNames();t.includes("pointerover")?e.emit("pointerover"):t.includes("mouseover")?e.emit("mouseover"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.5),e.emit("focus")}_emitTrigger(e){const t=e.eventNames();t.includes("pointerdown")?e.emit("pointerdown"):t.includes("mousedown")?e.emit("mousedown"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.75),e.emit("trigger")}}NavigationManager.global=new NavigationManager;const n=NavigationManager.global;let r=new Map;function throttle(e,t){var i;const o=Date.now();return(null!==(i=r.get(e))&&void 0!==i?i:0)>o||(r.set(e,o+t),!1)}class EventEmitter{constructor(){this.l={}}hasListener(e){return void 0!==this.l[e]}emit(e,t){var i;null===(i=this.l[e])||void 0===i||i.forEach((e=>e(t)))}on(e,t){var i;this.l[e]||(this.l[e]=[]),null===(i=this.l[e])||void 0===i||i.push(t)}off(e,t){var i,o;this.l[e]=void 0===t||null===(i=this.l[e])||void 0===i?void 0:i.filter((e=>e!==t)),0===(null===(o=this.l[e])||void 0===o?void 0:o.length)&&(this.l[e]=void 0)}}class GamepadDevice{get leftTrigger(){return this.source.buttons[a.LeftTrigger].value}get rightTrigger(){return this.source.buttons[a.RightTrigger].value}get leftShoulder(){return this.source.buttons[a.LeftShoulder].value}get rightShoulder(){return this.source.buttons[a.RightShoulder].value}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.button[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.button[e[t]])return!1;return!0}on(e,t){const i="number"==typeof e?s[e]:e;return this._emitter.on(i,t),this}off(e,t){const i="number"==typeof e?s[e]:e;return this._emitter.off(i,t),this}onGroup(e,t){return this._groupEmitter.on(e,t),this}offGroup(e,t){return this._groupEmitter.off(e,t),this}playVibration({duration:e=200,weakMagnitude:t=.5,strongMagnitude:i=.5,vibrationType:o="dual-rumble",rightTrigger:a=0,leftTrigger:s=0,startDelay:n=0}={}){if(this.options.vibration.enabled&&this.source.vibrationActuator)try{this.source.vibrationActuator.playEffect(o,{duration:e,startDelay:n,weakMagnitude:t,strongMagnitude:i,leftTrigger:s,rightTrigger:a})}catch(e){console.warn("gamepad vibrationActuator failed with error:",e)}}update(e,t){this.updatePresses(e,t),this.source=e,this.lastUpdated=t}clear(){this._axisIntents=this._axisIntents.map((()=>!1)),this._btnPrevState=this._btnPrevState.map((()=>!1))}constructor(s){this.source=s,this.type="gamepad",this.meta={},this.lastUpdated=performance.now(),this.lastActive=performance.now(),this.options=JSON.parse(JSON.stringify(GamepadDevice.defaultOptions)),this.button=Object.keys(a).reduce(((e,t)=>(e[t]=!1,e)),{}),this._btnPrevState=new Array(16),this._axisIntents=new Array(2),this._emitter=new EventEmitter,this._groupEmitter=new EventEmitter,this.id="gamepad"+s.index,this.layout=function detectLayout(e){const t=(e.id||"").toLowerCase();return/(steam|28de)/.test(t)?"steam":/(logitech|046d|c216)/.test(t)?"logitech":/(nintendo|switch|joycon|057e)/.test(t)?"nintendo":/(dualshock|dualsense|sony|054c|0ce6|0810)/.test(t)?"playstation":/(xbox|xinput|045e|028e|0291|02a0|02a1|02ea|02ff)/.test(t)?"xbox":"generic"}(s),this.leftJoystick=new GamepadJoystick(this,e,t),this.rightJoystick=new GamepadJoystick(this,i,o),this._throttleIdLeftStickX=this.id+"-lsx",this._throttleIdLeftStickY=this.id+"-lsy"}updatePresses(i,o){var r,d,u,c,l;const h=this._btnPrevState.length;for(let e=0;e<h;e++){let t=e;if("nintendo"===this.layout&&"none"!==this.options.remapNintendoMode&&("physical"===this.options.remapNintendoMode?t===a.B?t=a.A:t===a.A?t=a.B:t===a.X?t=a.Y:t===a.Y&&(t=a.X):t===a.B?t=a.X:t===a.X&&(t=a.B)),this._btnPrevState[t]===(null===(r=i.buttons[e])||void 0===r?void 0:r.pressed))continue;this.lastActive=o;const c=null!==(u=null===(d=i.buttons[e])||void 0===d?void 0:d.pressed)&&void 0!==u&&u,l=s[t];this._btnPrevState[t]=c,this.button[l]=c,c&&(this._emitter.hasListener(l)&&setTimeout((()=>this._emitter.emit(l,{device:this,button:t,buttonCode:l}))),n.options.enabled&&this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&setTimeout((()=>n.commit(this.options.navigation.binds[t],this))),Object.entries(this.options.namedGroups).forEach((([e,i])=>{i.includes(l)&&setTimeout((()=>{const i={device:this,button:t,buttonCode:l,groupName:e};this._groupEmitter.emit(e,i),this._emitter.emit("group",i)}))})))}const p=null!==(c=i.axes[e])&&void 0!==c?c:0,g=null!==(l=i.axes[t])&&void 0!==l?l:0;if(Math.abs(p)>=this.options.intent.joystickCommitSensitivity){const t=p<0?"navigateLeft":"navigateRight",i=this._axisIntents[e]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[e]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickX,i)&&setTimeout((()=>n.commit(t,this)))}else this._axisIntents[e]=!1;if(Math.abs(g)>=this.options.intent.joystickCommitSensitivity){const e=g<0?"navigateUp":"navigateDown",i=this._axisIntents[t]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[t]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickY,i)&&setTimeout((()=>n.commit(e,this)))}else this._axisIntents[t]=!1}}GamepadDevice.defaultOptions={remapNintendoMode:"physical",namedGroups:{},navigation:{enabled:!0,binds:{[a.A]:"trigger",[a.B]:"navigateBack",[a.Back]:"navigateBack",[a.DPadDown]:"navigateDown",[a.DPadLeft]:"navigateLeft",[a.DPadRight]:"navigateRight",[a.DPadUp]:"navigateUp"}},intent:{joystickCommitSensitivity:.5,firstCooldownMs:400,defaultCooldownMs:80},vibration:{enabled:!0,intensity:1}};class GamepadJoystick{constructor(e,t,i){this._owner=e,this.ix=t,this.iy=i}get x(){return this._owner.source.axes[this.ix]}get y(){return this._owner.source.axes[this.iy]}}const d={AltLeft:"AltLeft",AltRight:"AltRight",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",Backquote:"Backquote",Backslash:"Backslash",Backspace:"Backspace",BracketLeft:"BracketLeft",BracketRight:"BracketRight",CapsLock:"CapsLock",Comma:"Comma",ContextMenu:"ContextMenu",ControlLeft:"ControlLeft",ControlRight:"ControlRight",Delete:"Delete",Digit0:"Digit0",Digit1:"Digit1",Digit2:"Digit2",Digit3:"Digit3",Digit4:"Digit4",Digit5:"Digit5",Digit6:"Digit6",Digit7:"Digit7",Digit8:"Digit8",Digit9:"Digit9",End:"End",Enter:"Enter",Equal:"Equal",Escape:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F2:"F2",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F3:"F3",F30:"F30",F31:"F31",F32:"F32",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",Home:"Home",IntlBackslash:"IntlBackslash",IntlRo:"IntlRo",IntlYen:"IntlYen",KeyA:"KeyA",KeyB:"KeyB",KeyC:"KeyC",KeyD:"KeyD",KeyE:"KeyE",KeyF:"KeyF",KeyG:"KeyG",KeyH:"KeyH",KeyI:"KeyI",KeyJ:"KeyJ",KeyK:"KeyK",KeyL:"KeyL",KeyM:"KeyM",KeyN:"KeyN",KeyO:"KeyO",KeyP:"KeyP",KeyQ:"KeyQ",KeyR:"KeyR",KeyS:"KeyS",KeyT:"KeyT",KeyU:"KeyU",KeyV:"KeyV",KeyW:"KeyW",KeyX:"KeyX",KeyY:"KeyY",KeyZ:"KeyZ",Lang1:"Lang1",Lang2:"Lang2",MediaTrackNext:"MediaTrackNext",MediaTrackPrevious:"MediaTrackPrevious",MetaLeft:"MetaLeft",MetaRight:"MetaRight",Minus:"Minus",NumLock:"NumLock",Numpad0:"Numpad0",Numpad1:"Numpad1",Numpad2:"Numpad2",Numpad3:"Numpad3",Numpad4:"Numpad4",Numpad5:"Numpad5",Numpad6:"Numpad6",Numpad7:"Numpad7",Numpad8:"Numpad8",Numpad9:"Numpad9",NumpadAdd:"NumpadAdd",NumpadComma:"NumpadComma",NumpadDecimal:"NumpadDecimal",NumpadDivide:"NumpadDivide",NumpadMultiply:"NumpadMultiply",NumpadSubtract:"NumpadSubtract",OSLeft:"OSLeft",Pause:"Pause",Period:"Period",Quote:"Quote",ScrollLock:"ScrollLock",Semicolon:"Semicolon",ShiftLeft:"ShiftLeft",ShiftRight:"ShiftRight",Slash:"Slash",Space:"Space",Tab:"Tab",VolumeDown:"VolumeDown",VolumeMute:"VolumeMute",VolumeUp:"VolumeUp",WakeUp:"WakeUp"};function __awaiter(e,t,i,o){return new(i||(i=Promise))((function(a,s){function fulfilled(e){try{step(o.next(e))}catch(e){s(e)}}function rejected(e){try{step(o.throw(e))}catch(e){s(e)}}function step(e){e.done?a(e.value):function adopt(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((o=o.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const u=["fr","mg","lu"],c=["ab","ba","be","bg","ch","kk","ky","mk","mn","ru","sr","tg","tt","uk","uz"],l=["de","cs","sk","sl","hu","hr","bs","ro","sq","me","lt","lv","et"],h=/ф|и|с|в|у|а|п|р|ш|о|л|д|ь|т|щ|з|й|к|ы|е|г|м|ц|ч|н|я|ё|х|ъ|б|ю|э|ж|и/i,p=/[a-z]/i;function inferKeyboardLayoutFromLang(e=function getLang(){var e;const t=navigator;return null!=(null===(e=t.languages)||void 0===e?void 0:e.length)?t.languages[0]:t.userLanguage||t.language||t.browserLanguage}()){const t=(e||"").toLowerCase(),i=t.split("-")[0];return u.includes(i)||t.startsWith("nl-be")?"AZERTY":c.includes(i)?"JCUKEN":l.includes(i)||t.startsWith("sr-latn")?"QWERTZ":"QWERTY"}const g=new Set(["AZERTY","JCUKEN","QWERTY","QWERTZ"]);let m;function getMetaKeyLabel(){var e,t,i,o;const a=navigator,s=null!==(t=null===(e=a.platform)||void 0===e?void 0:e.toLowerCase())&&void 0!==t?t:"",n=null!==(o=null===(i=a.userAgent)||void 0===i?void 0:i.toLowerCase())&&void 0!==o?o:"";return s.includes("mac")?"⌘":s.includes("win")||s.includes("linux")?"⊞":n.includes("android")?"Search":n.includes("iphone")||n.includes("ipad")?"⌘":"⊞"}class KeyboardDevice{constructor(){this.type="keyboard",this.id="keyboard",this.meta={},this.lastUpdated=performance.now(),this.detectLayoutOnKeypress=!0,this.detected=!1,this.options={namedGroups:{},navigation:{enabled:!0,binds:{Space:"trigger",Enter:"trigger",Escape:"navigateBack",Backspace:"navigateBack",ArrowDown:"navigateDown",ArrowLeft:"navigateLeft",ArrowRight:"navigateRight",ArrowUp:"navigateUp",KeyA:"navigateLeft",KeyD:"navigateRight",KeyS:"navigateDown",KeyW:"navigateUp"}}},this.key=Object.keys(d).reduce(((e,t)=>(e[t]=!1,e)),{}),this._emitter=new EventEmitter,this._groupEmitter=new EventEmitter,this._deferredKeydown=[],this._layout=inferKeyboardLayoutFromLang(),this._layoutSource="lang",function requestKeyboardLayout(){return __awaiter(this,void 0,void 0,(function*(){const e=navigator;if(e.keyboard&&e.keyboard.getLayoutMap)try{const t=yield e.keyboard.getLayoutMap(),i=t.get("KeyQ"),o=t.get("KeyA"),a=t.get("KeyZ");if("a"===i&&"w"===a&&"q"===o)return"AZERTY";if("q"===i&&"y"===a&&"a"===o)return"QWERTZ";if("q"===i&&"z"===a&&"a"===o)return"QWERTY";if("й"===i&&"я"===a&&"ф"===o)return"JCUKEN"}catch(e){console.error("Error detecting keyboard layout:",e)}}))}().then((e=>{void 0!==e&&(this._layoutSource="browser",this._layout=e,this._emitter.emit("layoutdetected",{layoutSource:"browser",layout:e,device:this}))})),this._configureEventListeners()}get layout(){return this._layout}set layout(e){this._layoutSource="manual",this._layout=e}get layoutSource(){return this._layoutSource}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.key[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.key[e[t]])return!1;return!0}on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}onGroup(e,t){return this._groupEmitter.on(e,t),this}offGroup(e,t){return this._groupEmitter.off(e,t),this}keyLabel(e,t=this._layout){return function getLayoutLabel(e,t){if(void 0===m){const e={ArrowLeft:"←",ArrowRight:"→",ArrowUp:"↑",ArrowDown:"↓",AltLeft:"Left Alt",AltRight:"Right Alt",Backquote:"`",Backslash:"\\",Backspace:"Backspace",BracketLeft:"[",BracketRight:"]",CapsLock:"Caps Lock",Comma:",",ContextMenu:"Context Menu",ControlLeft:"Left Ctrl",ControlRight:"Right Ctrl",Delete:"Delete",Digit0:"0",Digit1:"1",Digit2:"2",Digit3:"3",Digit4:"4",Digit5:"5",Digit6:"6",Digit7:"7",Digit8:"8",Digit9:"9",End:"End",Enter:"Enter",Equal:"=",Escape:"Esc",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F30:"F30",F31:"F31",F32:"F32",Home:"Home",IntlBackslash:"\\",IntlRo:"Ro",IntlYen:"¥",KeyA:"A",KeyB:"B",KeyC:"C",KeyD:"D",KeyE:"E",KeyF:"F",KeyG:"G",KeyH:"H",KeyI:"I",KeyJ:"J",KeyK:"K",KeyL:"L",KeyM:"M",KeyN:"N",KeyO:"O",KeyP:"P",KeyQ:"Q",KeyR:"R",KeyS:"S",KeyT:"T",KeyU:"U",KeyV:"V",KeyW:"W",KeyX:"X",KeyY:"Y",KeyZ:"Z",Lang1:"Language 1",Lang2:"Language 2",MediaTrackNext:"Next Track",MediaTrackPrevious:"Previous Track",MetaLeft:"Left "+getMetaKeyLabel(),MetaRight:"Right "+getMetaKeyLabel(),Minus:"-",NumLock:"Num Lock",Numpad0:"Num0",Numpad1:"Num1",Numpad2:"Num2",Numpad3:"Num3",Numpad4:"Num4",Numpad5:"Num5",Numpad6:"Num6",Numpad7:"Num7",Numpad8:"Num8",Numpad9:"Num9",NumpadAdd:"+",NumpadComma:",",NumpadDecimal:".",NumpadDivide:"/",NumpadMultiply:"*",NumpadSubtract:"-",OSLeft:"OS Left",Pause:"Pause",Period:".",Quote:"'",ScrollLock:"Scroll Lock",Semicolon:";",ShiftLeft:"Left Shift",ShiftRight:"Right Shift",Slash:"/",Space:"Space",Tab:"Tab",VolumeDown:"Volume Down",VolumeMute:"Mute",VolumeUp:"Volume Up",WakeUp:"Wake Up"},t=Object.assign(Object.assign({},e),{KeyA:"Q",KeyQ:"A",KeyW:"Z",KeyZ:"W",Backquote:"²",BracketLeft:"«",BracketRight:"»"}),i=Object.assign(Object.assign({},e),{KeyA:"Ф",KeyB:"И",KeyC:"С",KeyD:"В",KeyE:"У",KeyF:"А",KeyG:"П",KeyH:"Р",KeyI:"Ш",KeyJ:"О",KeyK:"Л",KeyL:"Д",KeyM:"Ь",KeyN:"Т",KeyO:"Щ",KeyP:"З",KeyQ:"Й",KeyR:"К",KeyS:"Ы",KeyT:"Е",KeyU:"Г",KeyV:"М",KeyW:"Ц",KeyX:"Ч",KeyY:"Н",KeyZ:"Я",Backquote:"Ё",BracketLeft:"х",BracketRight:"ъ",Comma:"Б",Period:"Ю",Quote:"Э",Semicolon:"Ж",Slash:"И"}),o=Object.assign(Object.assign({},e),{KeyY:"Z",KeyZ:"Y",BracketLeft:"ü",BracketRight:"ö",Slash:"-"});m={AZERTY:t,JCUKEN:i,QWERTY:e,QWERTZ:o}}return m[t][e]}(e,t)}update(e){this._deferredKeydown.length>0&&(this._deferredKeydown.forEach((e=>this._processDeferredKeydownEvent(e))),this._deferredKeydown.length=0),this.lastUpdated=e}clear(){for(const e of Object.keys(d))this.key[e]=!1}_configureEventListeners(){const e=this.key,t=this._deferredKeydown;window.addEventListener("keydown",(e=>t.push(e)),{passive:!0,capture:!0}),window.addEventListener("keyup",(t=>e[t.code]=!1),{passive:!0,capture:!0})}_processDeferredKeydownEvent(e){const t=e.code;if(this.key[t]=!0,this.detectLayoutOnKeypress&&"lang"===this._layoutSource){const t=function detectKeyboardLayoutFromKeydown(e){const t=e.key.toLowerCase(),i=e.code;return h.test(t)?(g.delete("AZERTY"),g.delete("QWERTY"),g.delete("QWERTZ")):"Backquote"===i&&"²"===t||"BracketLeft"===i&&"«"===t||"BracketRight"===i&&"»"===t||"KeyA"===i&&"q"===t||"KeyQ"===i&&"a"===t||"KeyW"===i&&"z"===t||"KeyZ"===i&&"w"===t?(g.delete("JCUKEN"),g.delete("QWERTY"),g.delete("QWERTZ")):"BracketLeft"===i&&"ü"===t||"BracketRight"===i&&"ö"===t||"KeyY"===i&&"z"===t||"KeyZ"===i&&"y"===t||"Slash"===i&&"-"===t?(g.delete("AZERTY"),g.delete("JCUKEN"),g.delete("QWERTY")):"BracketLeft"===i&&"["===t||"BracketRight"===i&&"]"===t||"KeyZ"===i&&"z"===t?(g.delete("AZERTY"),g.delete("JCUKEN"),g.delete("QWERTZ")):"KeyQ"===i&&"q"===t||"KeyW"===i&&"w"===t?(g.delete("AZERTY"),g.delete("JCUKEN")):"KeyY"===i&&"Y"===t?(g.delete("QWERTZ"),g.delete("JCUKEN")):p.test(t)&&g.delete("JCUKEN"),1===g.size?[...g][0]:void 0}(e);void 0!==t&&(this._layout=t,this._layoutSource="keypress",this.detectLayoutOnKeypress=!1,this._emitter.emit("layoutdetected",{layout:t,layoutSource:"keypress",device:this}))}this._emitter.hasListener(t)&&setTimeout((()=>this._emitter.emit(t,{device:this,keyCode:t,keyLabel:this.keyLabel(t),event:e}))),n.options.enabled&&this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&setTimeout((()=>n.commit(this.options.navigation.binds[t],this))),Object.entries(this.options.namedGroups).forEach((([i,o])=>{o.includes(t)&&setTimeout((()=>{const o={device:this,keyCode:t,keyLabel:this.keyLabel(t),event:e,groupName:i};this._groupEmitter.emit(i,o),this._emitter.emit("group",o)}))}))}}KeyboardDevice.global=new KeyboardDevice;class InputDeviceManager{constructor(){this._emitter=new EventEmitter,this.isMobile=(()=>{let e=!1;var t;return t=navigator.userAgent||navigator.vendor,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0),e})(),this.isTouchCapable=function isTouchCapable(){return"ontouchstart"in window||navigator.maxTouchPoints>0}(),this.hasFocus=!1,this.options={clearInputInBackground:!0},this._gamepadDevices=[],this._gamepadDeviceMap=new Map,this._customDevices=[],this._groupEmitter=new EventEmitter,this._devices=[];const registerKeyboard=()=>{this.add(this.keyboard)};this.keyboard=KeyboardDevice.global,this.isTouchCapable||this.isMobile?window.addEventListener("keydown",registerKeyboard,{once:!0}):registerKeyboard(),window.addEventListener("gamepadconnected",(()=>this.pollGamepads(performance.now()))),window.addEventListener("gamepaddisconnected",(e=>this.removeGamepad(e.gamepad.index)))}get gamepads(){return this._gamepadDevices}get devices(){return this._devices}on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}onGroup(e,t){return this._groupEmitter.on(e,t),this}offGroup(e,t){return this._groupEmitter.off(e,t),this}add(e){this._devices.push(e),e instanceof KeyboardDevice?(e.detected=!0,e.on("group",(e=>this._groupEmitter.emit(e.groupName,e)))):e instanceof GamepadDevice?(this._gamepadDeviceMap.set(e.source.index,e),this._gamepadDevices.push(e),e.on("group",(e=>this._groupEmitter.emit(e.groupName,e)))):e instanceof CustomDevice&&this._customDevices.push(e),this._emitter.emit("deviceadded",{device:e})}remove(e){if(e instanceof CustomDevice){const t=this._customDevices.indexOf(e);-1!==t&&this._devices.splice(t,1)}const t=this._devices.indexOf(e);-1!==t&&(this._devices.splice(t,1),this._emitter.emit("deviceremoved",{device:e}))}update(){if(!document.hasFocus())return this.hasFocus&&this.options.clearInputInBackground&&this.devices.forEach((e=>e.clear())),this.hasFocus=!1,this._devices;this.hasFocus=!0;const e=performance.now();return this.keyboard.update(e),this.pollGamepads(e),this._customDevices.length>0&&this._customDevices.forEach((t=>t.update(e))),this._devices}pollGamepads(e){if(!document.hasFocus())return this._gamepadDevices;if(void 0===navigator.getGamepads)return this._gamepadDevices;for(const t of navigator.getGamepads())if(null!=t)if(this._gamepadDeviceMap.has(t.index)){this._gamepadDeviceMap.get(t.index).update(t,e)}else{const i=new GamepadDevice(t);this.add(i),i.update(t,e)}return this._gamepadDevices}removeGamepad(e){const t=this._gamepadDeviceMap.get(e);if(!t)return;const i=this._gamepadDevices.indexOf(t);-1!==i&&this._gamepadDevices.splice(i,1),this.remove(t),this._gamepadDeviceMap.delete(e)}}InputDeviceManager.global=new InputDeviceManager;const v=InputDeviceManager.global;exports.Button=a,exports.CustomDevice=CustomDevice,exports.GamepadDevice=GamepadDevice,exports.InputDevice=v,exports.KeyCode=d,exports.KeyboardDevice=KeyboardDevice,exports.Navigation=n,exports.getAllNavigatables=getAllNavigatables,exports.getFirstNavigatable=getFirstNavigatable,exports.registerPixiJSInputDeviceMixin=function registerPixiJSInputDeviceMixin(e){const t=e.prototype;t.navigationPriority=0,t.navigationMode="auto",Object.defineProperty(t,"isNavigatable",{get:function(){if("auto"===this.navigationMode){if(!this.isInteractive)return!1;const e=this.eventNames();return e.includes("pointerdown")||e.includes("mousedown")}return"target"===this.navigationMode},configurable:!0,enumerable:!1})};
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/lib/devices/gamepads/buttons.ts","../src/lib/navigation/Navigatable.ts","../src/lib/navigation/Navigation.ts","../src/lib/utils/throttle.ts","../src/lib/utils/events.ts","../src/lib/devices/GamepadDevice.ts","../src/lib/devices/gamepads/layouts.ts","../src/lib/devices/keyboard/keys.ts","../node_modules/tslib/tslib.es6.js","../src/lib/devices/keyboard/layouts.ts","../src/lib/devices/KeyboardDevice.ts","../src/lib/InputDevice.ts","../src/lib/utils/detectors.ts","../src/lib/devices/CustomDevice.ts","../src/Container.mixin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null],"names":["Axis","Button","A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight","ButtonCode","getAllNavigatables","target","navigatables","child","children","isNavigatable","push","getFirstNavigatable","root","currentFocus","nearestDirection","minimumDistance","chooseFirstNavigatableInDirection","elements","filter","el","parent","isVisible","visible","focusedElement","find","undefined","sort","a","b","navigationPriority","fallbackElement","Math","floor","random","length","_a","focusedBounds","getBounds","focusedCenter","x","left","width","y","top","height","otherElements","map","bounds","center","element","distSqrd","squaredDist","_c","_b","_e","_d","_g","_f","_j","_h","dx","dy","NavigationManager","constructor","this","options","enabled","useFallbackHoverEffect","_responderStack","firstResponder","responders","commit","intent","device","_propagateIntent","popResponder","responder","shift","becameFirstResponder","resignedAsFirstResponder","pushResponder","includes","Error","previousResponder","unshift","call","handledNavigationIntent","stage","console","warn","_handleGlobalIntent","_focused","navigatable","debug","_emitFocus","_emitBlur","_emitTrigger","nextTarget","eventNames","emit","navigationMode","alpha","global","Navigation","_cooldowns","Map","throttle","id","cooldownMs","now","Date","get","set","EventEmitter","l","hasListener","e","payload","forEach","fn","on","event","off","GamepadDevice","leftTrigger","source","buttons","value","rightTrigger","leftShoulder","rightShoulder","groupPressed","name","namedGroups","anyPressed","btns","i","button","allPressed","listener","_emitter","playVibration","duration","weakMagnitude","strongMagnitude","vibrationType","startDelay","vibration","vibrationActuator","playEffect","error","update","lastUpdated","updatePresses","clear","_axisIntents","_btnPrevState","type","meta","performance","lastActive","JSON","parse","stringify","defaultOptions","Object","keys","reduce","obj","key","Array","index","layout","detectLayout","gamepad","toLowerCase","test","leftJoystick","GamepadJoystick","rightJoystick","_throttleIdLeftStickX","_throttleIdLeftStickY","buttonCount","remapNintendoMode","pressed","isPressed","buttonCode","setTimeout","navigation","binds","leftStickX","axes","leftStickY","abs","joystickCommitSensitivity","xIntent","cooldownDuration","defaultCooldownMs","firstCooldownMs","yIntent","intensity","_owner","ix","iy","KeyCode","AltLeft","AltRight","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backquote","Backslash","Backspace","BracketLeft","BracketRight","CapsLock","Comma","ContextMenu","ControlLeft","ControlRight","Delete","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","End","Enter","Equal","Escape","F1","F10","F11","F12","F13","F14","F15","F16","F17","F18","F19","F2","F20","F21","F22","F23","F24","F25","F26","F27","F28","F29","F3","F30","F31","F32","F4","F5","F6","F7","F8","F9","Home","IntlBackslash","IntlRo","IntlYen","KeyA","KeyB","KeyC","KeyD","KeyE","KeyF","KeyG","KeyH","KeyI","KeyJ","KeyK","KeyL","KeyM","KeyN","KeyO","KeyP","KeyQ","KeyR","KeyS","KeyT","KeyU","KeyV","KeyW","KeyX","KeyY","KeyZ","Lang1","Lang2","MediaTrackNext","MediaTrackPrevious","MetaLeft","MetaRight","Minus","NumLock","Numpad0","Numpad1","Numpad2","Numpad3","Numpad4","Numpad5","Numpad6","Numpad7","Numpad8","Numpad9","NumpadAdd","NumpadComma","NumpadDecimal","NumpadDivide","NumpadMultiply","NumpadSubtract","OSLeft","Pause","Period","Quote","ScrollLock","Semicolon","ShiftLeft","ShiftRight","Slash","Space","Tab","VolumeDown","VolumeMute","VolumeUp","WakeUp","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","adopt","then","apply","SuppressedError","MACRO_AZERTY","MACRO_JCUKEN","MACRO_QWERTZ","JCUKEN_REGEX","xxERTx_REGEX","inferKeyboardLayoutFromLang","lang","getLang","n","navigator","languages","userLanguage","language","browserLanguage","tag","macro","split","startsWith","_possibleLayouts","Set","_labels","getMetaKeyLabel","platform","userAgent","KeyboardDevice","detectLayoutOnKeypress","detected","preventDefaultKeys","_layout","_layoutSource","requestKeyboardLayout","keyboard","getLayoutMap","layoutMap","q","z","err","layoutSource","_configureEventListeners","keyLabel","getLayoutLabel","QWERTY_LABELS","AZERTY_LABELS","assign","JCUKEN_LABELS","QWERTZ_LABELS","AZERTY","JCUKEN","QWERTY","QWERTZ","document","addEventListener","keyCode","code","has","preventDefault","detectKeyboardLayoutFromKeydown","delete","size","InputDeviceManager","gamepads","_gamepadDevices","devices","_devices","isMobile","check","vendor","substr","isTouchCapable","window","maxTouchPoints","hasFocus","clearInputInBackground","_gamepadDeviceMap","registerKeyboard","removeEventListener","pollGamepads","removeGamepad","add","remove","devicesIndex","indexOf","splice","getGamepads","raw","gamepadIndex","gamepadsIndex","InputDevice","CustomDevice","registerPixiJSInputDeviceMixin","container","prototype","defineProperty","isInteractive","onEvents","configurable","enumerable"],"mappings":"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","x_google_ignoreList":[8]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/lib/devices/CustomDevice.ts","../src/lib/devices/gamepads/buttons.ts","../src/lib/navigation/Navigatable.ts","../src/lib/navigation/Navigation.ts","../src/lib/utils/throttle.ts","../src/lib/utils/events.ts","../src/lib/devices/GamepadDevice.ts","../src/lib/devices/gamepads/layouts.ts","../src/lib/devices/keyboard/keys.ts","../node_modules/tslib/tslib.es6.js","../src/lib/devices/keyboard/layouts.ts","../src/lib/devices/KeyboardDevice.ts","../src/lib/InputDevice.ts","../src/lib/utils/detectors.ts","../src/Container.mixin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null],"names":["CustomDevice","constructor","id","this","type","meta","lastUpdated","performance","now","clear","Axis","Button","A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight","ButtonCode","getAllNavigatables","target","navigatables","child","children","isNavigatable","push","getFirstNavigatable","root","currentFocus","nearestDirection","minimumDistance","chooseFirstNavigatableInDirection","elements","filter","el","parent","isVisible","visible","focusedElement","find","undefined","sort","a","b","navigationPriority","fallbackElement","Math","floor","random","length","_a","focusedBounds","getBounds","focusedCenter","x","left","width","y","top","height","otherElements","map","bounds","center","element","distSqrd","squaredDist","_c","_b","_e","_d","_g","_f","_j","_h","dx","dy","NavigationManager","options","enabled","useFallbackHoverEffect","_responderStack","firstResponder","responders","commit","intent","device","_propagateIntent","popResponder","responder","shift","becameFirstResponder","resignedAsFirstResponder","pushResponder","includes","Error","previousResponder","unshift","call","handledNavigationIntent","stage","console","warn","_handleGlobalIntent","_focused","navigatable","debug","_emitFocus","_emitBlur","_emitTrigger","nextTarget","eventNames","emit","navigationMode","alpha","global","Navigation","_cooldowns","Map","throttle","cooldownMs","Date","get","set","EventEmitter","l","hasListener","e","payload","forEach","fn","on","event","off","GamepadDevice","leftTrigger","source","buttons","value","rightTrigger","leftShoulder","rightShoulder","groupPressed","name","namedGroups","anyPressed","btns","i","button","allPressed","listener","_emitter","onGroup","_groupEmitter","offGroup","playVibration","duration","weakMagnitude","strongMagnitude","vibrationType","startDelay","vibration","vibrationActuator","playEffect","error","update","updatePresses","_axisIntents","_btnPrevState","lastActive","JSON","parse","stringify","defaultOptions","Object","keys","reduce","obj","key","Array","index","layout","detectLayout","gamepad","toLowerCase","test","leftJoystick","GamepadJoystick","rightJoystick","_throttleIdLeftStickX","_throttleIdLeftStickY","buttonCount","remapNintendoMode","pressed","isPressed","buttonCode","setTimeout","navigation","binds","entries","groupName","leftStickX","axes","leftStickY","abs","joystickCommitSensitivity","xIntent","cooldownDuration","defaultCooldownMs","firstCooldownMs","yIntent","intensity","_owner","ix","iy","KeyCode","AltLeft","AltRight","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backquote","Backslash","Backspace","BracketLeft","BracketRight","CapsLock","Comma","ContextMenu","ControlLeft","ControlRight","Delete","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","End","Enter","Equal","Escape","F1","F10","F11","F12","F13","F14","F15","F16","F17","F18","F19","F2","F20","F21","F22","F23","F24","F25","F26","F27","F28","F29","F3","F30","F31","F32","F4","F5","F6","F7","F8","F9","Home","IntlBackslash","IntlRo","IntlYen","KeyA","KeyB","KeyC","KeyD","KeyE","KeyF","KeyG","KeyH","KeyI","KeyJ","KeyK","KeyL","KeyM","KeyN","KeyO","KeyP","KeyQ","KeyR","KeyS","KeyT","KeyU","KeyV","KeyW","KeyX","KeyY","KeyZ","Lang1","Lang2","MediaTrackNext","MediaTrackPrevious","MetaLeft","MetaRight","Minus","NumLock","Numpad0","Numpad1","Numpad2","Numpad3","Numpad4","Numpad5","Numpad6","Numpad7","Numpad8","Numpad9","NumpadAdd","NumpadComma","NumpadDecimal","NumpadDivide","NumpadMultiply","NumpadSubtract","OSLeft","Pause","Period","Quote","ScrollLock","Semicolon","ShiftLeft","ShiftRight","Slash","Space","Tab","VolumeDown","VolumeMute","VolumeUp","WakeUp","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","adopt","then","apply","SuppressedError","MACRO_AZERTY","MACRO_JCUKEN","MACRO_QWERTZ","JCUKEN_REGEX","xxERTx_REGEX","inferKeyboardLayoutFromLang","lang","getLang","n","navigator","languages","userLanguage","language","browserLanguage","tag","macro","split","startsWith","_possibleLayouts","Set","_labels","getMetaKeyLabel","platform","userAgent","KeyboardDevice","detectLayoutOnKeypress","detected","_deferredKeydown","_layout","_layoutSource","requestKeyboardLayout","keyboard","getLayoutMap","layoutMap","q","z","err","layoutSource","_configureEventListeners","keyLabel","getLayoutLabel","QWERTY_LABELS","AZERTY_LABELS","assign","JCUKEN_LABELS","QWERTZ_LABELS","AZERTY","JCUKEN","QWERTY","QWERTZ","_processDeferredKeydownEvent","k","d","window","addEventListener","passive","capture","code","keyCode","detectKeyboardLayoutFromKeydown","delete","size","InputDeviceManager","isMobile","check","vendor","substr","isTouchCapable","maxTouchPoints","hasFocus","clearInputInBackground","_gamepadDevices","_gamepadDeviceMap","_customDevices","_devices","registerKeyboard","add","once","pollGamepads","removeGamepad","gamepads","devices","remove","customIndex","indexOf","splice","devicesIndex","document","custom","getGamepads","has","gamepadIndex","gamepadsIndex","InputDevice","registerPixiJSInputDeviceMixin","container","prototype","defineProperty","isInteractive","onEvents","configurable","enumerable"],"mappings":"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","x_google_ignoreList":[9]}
|
package/dist/index.d.ts
CHANGED
|
@@ -52,11 +52,16 @@ declare class InputDeviceManager {
|
|
|
52
52
|
readonly isMobile: boolean;
|
|
53
53
|
/** Whether a touchscreen is available */
|
|
54
54
|
readonly isTouchCapable: boolean;
|
|
55
|
-
/** Add an event listener */
|
|
56
|
-
on<K extends keyof InputDeviceEvent>(event: K, listener: (event: InputDeviceEvent[K]) => void): this;
|
|
57
|
-
/** Remove an event listener (or all if none provided) */
|
|
58
|
-
off<K extends keyof InputDeviceEvent>(event: K, listener: (event: InputDeviceEvent[K]) => void): this;
|
|
59
55
|
private hasFocus;
|
|
56
|
+
options: {
|
|
57
|
+
clearInputInBackground: boolean;
|
|
58
|
+
};
|
|
59
|
+
private readonly _devices;
|
|
60
|
+
private readonly _gamepadDevices;
|
|
61
|
+
private readonly _gamepadDeviceMap;
|
|
62
|
+
private readonly _customDevices;
|
|
63
|
+
private readonly _groupEmitter;
|
|
64
|
+
private constructor();
|
|
60
65
|
/**
|
|
61
66
|
* Connected gamepads accessible by index.
|
|
62
67
|
*
|
|
@@ -69,21 +74,22 @@ declare class InputDeviceManager {
|
|
|
69
74
|
* Keep in mind these inputs may only be up-to-date from the last update().
|
|
70
75
|
*/
|
|
71
76
|
get devices(): readonly Device[];
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
/** Add an event listener */
|
|
78
|
+
on<K extends keyof InputDeviceEvent>(event: K, listener: (event: InputDeviceEvent[K]) => void): this;
|
|
79
|
+
/** Remove an event listener (or all if none provided) */
|
|
80
|
+
off<K extends keyof InputDeviceEvent>(event: K, listener: (event: InputDeviceEvent[K]) => void): this;
|
|
81
|
+
/** Add a named group event listener (or all if none provided). */
|
|
82
|
+
onGroup(name: string, listener: (event: NamedGroupEvent) => void): this;
|
|
83
|
+
/** Remove a named group event listener (or all if none provided). */
|
|
84
|
+
offGroup(name: string, listener?: (event: NamedGroupEvent) => void): this;
|
|
85
|
+
/** Add a custom device. */
|
|
86
|
+
add(device: Device): void;
|
|
87
|
+
/** Remove a custom device. */
|
|
88
|
+
remove(device: Device): void;
|
|
79
89
|
/**
|
|
80
90
|
* Performs a poll of latest input from all devices
|
|
81
91
|
*/
|
|
82
92
|
update(): ReadonlyArray<Device>;
|
|
83
|
-
/** Add a custom device. */
|
|
84
|
-
add(device: CustomDevice): void;
|
|
85
|
-
/** Remove a custom device. */
|
|
86
|
-
remove(device: Device): void;
|
|
87
93
|
/**
|
|
88
94
|
* @returns updates connected gamepads, performing a poll of latest input
|
|
89
95
|
*/
|
|
@@ -263,6 +269,7 @@ export declare class GamepadDevice {
|
|
|
263
269
|
private readonly _throttleIdLeftStickX;
|
|
264
270
|
private readonly _throttleIdLeftStickY;
|
|
265
271
|
private readonly _emitter;
|
|
272
|
+
private readonly _groupEmitter;
|
|
266
273
|
/** A scalar 0.0 to 1.0 representing the trigger pull */
|
|
267
274
|
get leftTrigger(): number;
|
|
268
275
|
/** A scalar 0.0 to 1.0 representing the trigger pull */
|
|
@@ -281,6 +288,10 @@ export declare class GamepadDevice {
|
|
|
281
288
|
on<K extends keyof GamepadDeviceEvent>(event: K, listener: (event: GamepadDeviceEvent[K]) => void): this;
|
|
282
289
|
/** Remove an event listener (or all if none provided). */
|
|
283
290
|
off<K extends keyof GamepadDeviceEvent>(event: K, listener?: (event: GamepadDeviceEvent[K]) => void): this;
|
|
291
|
+
/** Add a named group event listener (or all if none provided). */
|
|
292
|
+
onGroup(name: string, listener: (event: GamepadNamedGroupButtonPressEvent) => void): this;
|
|
293
|
+
/** Remove a named group event listener (or all if none provided). */
|
|
294
|
+
offGroup(name: string, listener?: (event: GamepadNamedGroupButtonPressEvent) => void): this;
|
|
284
295
|
/**
|
|
285
296
|
* Play a vibration effect (if supported).
|
|
286
297
|
*
|
|
@@ -313,14 +324,7 @@ export declare class KeyboardDevice {
|
|
|
313
324
|
* Keyboard has been detected.
|
|
314
325
|
*/
|
|
315
326
|
detected: boolean;
|
|
316
|
-
private _layout;
|
|
317
|
-
private _layoutSource;
|
|
318
|
-
private _emitter;
|
|
319
327
|
options: {
|
|
320
|
-
/**
|
|
321
|
-
* Keys to prevent default event propagation for.
|
|
322
|
-
*/
|
|
323
|
-
preventDefaultKeys: Set<KeyCode>;
|
|
324
328
|
/**
|
|
325
329
|
* Create named groups of buttons.
|
|
326
330
|
*
|
|
@@ -349,6 +353,11 @@ export declare class KeyboardDevice {
|
|
|
349
353
|
};
|
|
350
354
|
/** Accessors for keys */
|
|
351
355
|
key: Record<KeyCode, boolean>;
|
|
356
|
+
private readonly _emitter;
|
|
357
|
+
private readonly _groupEmitter;
|
|
358
|
+
private _layout;
|
|
359
|
+
private _layoutSource;
|
|
360
|
+
private _deferredKeydown;
|
|
352
361
|
private constructor();
|
|
353
362
|
/**
|
|
354
363
|
* Keyboard Layout
|
|
@@ -382,6 +391,10 @@ export declare class KeyboardDevice {
|
|
|
382
391
|
on<K extends keyof KeyboardDeviceEvent>(event: K, listener: (event: KeyboardDeviceEvent[K]) => void): this;
|
|
383
392
|
/** Remove an event listener (or all if none provided). */
|
|
384
393
|
off<K extends keyof KeyboardDeviceEvent>(event: K, listener: (event: KeyboardDeviceEvent[K]) => void): this;
|
|
394
|
+
/** Add a named group event listener (or all if none provided). */
|
|
395
|
+
onGroup(name: string, listener: (event: KeyboardDeviceNamedGroupKeydownEvent) => void): this;
|
|
396
|
+
/** Remove a named group event listener (or all if none provided). */
|
|
397
|
+
offGroup(name: string, listener?: (event: KeyboardDeviceNamedGroupKeydownEvent) => void): this;
|
|
385
398
|
/**
|
|
386
399
|
* Get the label for the given key code in the current keyboard layout.
|
|
387
400
|
*
|
|
@@ -393,11 +406,18 @@ export declare class KeyboardDevice {
|
|
|
393
406
|
* keyboard.localeLabel( "KeyQ" ) // "Й"
|
|
394
407
|
*/
|
|
395
408
|
keyLabel(key: KeyCode, layout?: KeyboardLayout): string;
|
|
409
|
+
/**
|
|
410
|
+
* Process pending keyboard events.
|
|
411
|
+
*
|
|
412
|
+
* @returns any group events to trigger
|
|
413
|
+
*/
|
|
414
|
+
update(now: number): void;
|
|
396
415
|
/**
|
|
397
416
|
* Clear all keyboard keys.
|
|
398
417
|
*/
|
|
399
418
|
clear(): void;
|
|
400
419
|
private _configureEventListeners;
|
|
420
|
+
private _processDeferredKeydownEvent;
|
|
401
421
|
}
|
|
402
422
|
export declare const Button: {
|
|
403
423
|
/** A Button (Xbox / Nintendo: "A", PlayStation: "Cross") */
|
|
@@ -595,6 +615,9 @@ export interface GamepadButtonPressEvent {
|
|
|
595
615
|
button: Button;
|
|
596
616
|
buttonCode: ButtonCode;
|
|
597
617
|
}
|
|
618
|
+
export interface GamepadNamedGroupButtonPressEvent extends GamepadButtonPressEvent {
|
|
619
|
+
groupName: string;
|
|
620
|
+
}
|
|
598
621
|
export interface InputDeviceEvent {
|
|
599
622
|
deviceadded: {
|
|
600
623
|
device: Device;
|
|
@@ -615,6 +638,9 @@ export interface KeyboardDeviceLayoutUpdatedEvent {
|
|
|
615
638
|
layout: KeyboardLayout;
|
|
616
639
|
layoutSource: KeyboardLayoutSource;
|
|
617
640
|
}
|
|
641
|
+
export interface KeyboardDeviceNamedGroupKeydownEvent extends KeyboardDeviceKeydownEvent {
|
|
642
|
+
groupName: string;
|
|
643
|
+
}
|
|
618
644
|
/**
|
|
619
645
|
* A target that responds to navigation on the stack.
|
|
620
646
|
*/
|
|
@@ -645,7 +671,9 @@ export type Button = (typeof Button)[keyof typeof Button];
|
|
|
645
671
|
export type ButtonCode = typeof ButtonCode[number];
|
|
646
672
|
export type Device = GamepadDevice | KeyboardDevice | CustomDevice;
|
|
647
673
|
export type GamepadButtonDownEvent = (gamepad: GamepadDevice, button: Button) => void;
|
|
648
|
-
export type GamepadDeviceEvent = {
|
|
674
|
+
export type GamepadDeviceEvent = {
|
|
675
|
+
group: GamepadNamedGroupButtonPressEvent;
|
|
676
|
+
} & {
|
|
649
677
|
[button in ButtonCode]: GamepadButtonPressEvent;
|
|
650
678
|
} & {
|
|
651
679
|
[button in Button]: GamepadButtonPressEvent;
|
|
@@ -659,11 +687,16 @@ export type GamepadVibration = GamepadEffectParameters & {
|
|
|
659
687
|
export type KeyCode = (typeof KeyCode)[keyof typeof KeyCode];
|
|
660
688
|
export type KeyboardDeviceEvent = {
|
|
661
689
|
layoutdetected: KeyboardDeviceLayoutUpdatedEvent;
|
|
690
|
+
group: KeyboardDeviceNamedGroupKeydownEvent;
|
|
662
691
|
} & {
|
|
663
692
|
[key in KeyCode]: KeyboardDeviceKeydownEvent;
|
|
664
693
|
};
|
|
665
694
|
export type KeyboardLayout = "QWERTY" | "AZERTY" | "JCUKEN" | "QWERTZ";
|
|
666
695
|
export type KeyboardLayoutSource = "browser" | "lang" | "keypress" | "manual";
|
|
696
|
+
export type NamedGroupEvent = {
|
|
697
|
+
device: Device;
|
|
698
|
+
groupName: string;
|
|
699
|
+
};
|
|
667
700
|
export type NavigatableContainer = Container;
|
|
668
701
|
export type NavigationBinds = Partial<Record<KeyCode, NavigationIntent>>;
|
|
669
702
|
export type NavigationDirection = "navigateLeft" | "navigateRight" | "navigateUp" | "navigateDown";
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
class CustomDevice{constructor(e){this.type="custom",this.meta={},this.lastUpdated=performance.now(),this.id=e}clear(){}}const e=0,t=1,i=2,a=3,o={A:0,B:1,X:2,Y:3,LeftShoulder:4,RightShoulder:5,LeftTrigger:6,RightTrigger:7,Back:8,Start:9,LeftStick:10,RightStick:11,DPadUp:12,DPadDown:13,DPadLeft:14,DPadRight:15},n=["A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight"];function getAllNavigatables(e,t=[]){for(const i of e.children)i.isNavigatable?t.push(i):getAllNavigatables(i,t);return t}function getFirstNavigatable(e,t,i,{minimumDistance:a=3}={}){return function chooseFirstNavigatableInDirection(e,t,i,{minimumDistance:a=3}={}){var o,n,s,r,d,u,l,c,h;const g=e.filter((e=>e.isNavigatable&&null!=e.parent&&function isVisible(e){for(;null!=e;){if(!e.visible)return!1;e=e.parent}return!0}(e))),p=g.find((e=>e===t));if(void 0===p)return g.sort(((e,t)=>e.navigationPriority-t.navigationPriority)),g[0];if(void 0===i&&p)return p;const m=null!=p?p:g[Math.floor(Math.random()*g.length)];if(void 0===p)return null!==(o=e[0])&&void 0!==o?o:m;const v=p.getBounds(),y={x:v.left+v.width/2,y:v.top+v.height/2},f=g.filter((e=>e!==p)).map((e=>{const t=e.getBounds(),i={x:t.left+t.width/2,y:t.top+t.height/2};return{element:e,bounds:t,center:i,distSqrd:squaredDist(i,y)}}));switch(i){case"navigateUp":return null!==(s=null===(n=f.filter((e=>e.center.y<y.y-a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===n?void 0:n.element)&&void 0!==s?s:m;case"navigateLeft":return null!==(d=null===(r=f.filter((e=>e.center.x<y.x-a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===r?void 0:r.element)&&void 0!==d?d:m;case"navigateRight":return null!==(l=null===(u=f.filter((e=>e.center.x>y.x+a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===u?void 0:u.element)&&void 0!==l?l:m;case"navigateDown":return null!==(h=null===(c=f.filter((e=>e.center.y>y.y+a)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===c?void 0:c.element)&&void 0!==h?h:m;default:return p}}(getAllNavigatables(e),t,i,{minimumDistance:a})}function squaredDist(e,t){const i=t.x-e.x,a=t.y-e.y;return i*i+a*a}class NavigationManager{constructor(){this.options={enabled:!0,useFallbackHoverEffect:!0},this._responderStack=[]}get firstResponder(){return this._responderStack[0]}get responders(){return this._responderStack}commit(e,t){this.options.enabled&&this._propagateIntent(e,t)}popResponder(){var e,t,i;const a=this._responderStack.shift();return null===(t=null===(e=this.firstResponder)||void 0===e?void 0:e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==a?void 0:a.resignedAsFirstResponder)||void 0===i||i.call(a),a}pushResponder(e){var t,i;if(this._responderStack.includes(e))throw new Error("Responder already in stack.");const a=this.firstResponder;this._responderStack.unshift(e),null===(t=e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==a?void 0:a.resignedAsFirstResponder)||void 0===i||i.call(a)}_propagateIntent(e,t){var i;for(const a of this._responderStack)if(null===(i=a.handledNavigationIntent)||void 0===i?void 0:i.call(a,e,t))return;void 0===this.stage?console.warn("navigation: no stage root set"):this._handleGlobalIntent(this.stage,e)}_handleGlobalIntent(e,t){var i;if(void 0===this._focused){const i=getFirstNavigatable(e);return void 0===i?void console.debug("navigation: no navigatable views found",t):(this._emitFocus(i),void(this._focused=i))}if("navigateBack"===t)return this._emitBlur(this._focused),void(this._focused=void 0);if("trigger"===t)return void this._emitTrigger(this._focused);const a=null!==(i=getFirstNavigatable(this.stage,this._focused,t))&&void 0!==i?i:this._focused;a!==this._focused&&(this._emitBlur(this._focused),this._emitFocus(a),this._focused=a)}_emitBlur(e){const t=e.eventNames();t.includes("pointerout")?e.emit("pointerout"):t.includes("mouseout")?e.emit("mouseout"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=1),e.emit("blur")}_emitFocus(e){const t=e.eventNames();t.includes("pointerover")?e.emit("pointerover"):t.includes("mouseover")?e.emit("mouseover"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.5),e.emit("focus")}_emitTrigger(e){const t=e.eventNames();t.includes("pointerdown")?e.emit("pointerdown"):t.includes("mousedown")?e.emit("mousedown"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.75),e.emit("trigger")}}NavigationManager.global=new NavigationManager;const s=NavigationManager.global;let r=new Map;function throttle(e,t){var i;const a=Date.now();return(null!==(i=r.get(e))&&void 0!==i?i:0)>a||(r.set(e,a+t),!1)}class EventEmitter{constructor(){this.l={}}hasListener(e){return void 0!==this.l[e]}emit(e,t){var i;null===(i=this.l[e])||void 0===i||i.forEach((e=>e(t)))}on(e,t){var i;this.l[e]||(this.l[e]=[]),null===(i=this.l[e])||void 0===i||i.push(t)}off(e,t){var i,a;this.l[e]=void 0===t||null===(i=this.l[e])||void 0===i?void 0:i.filter((e=>e!==t)),0===(null===(a=this.l[e])||void 0===a?void 0:a.length)&&(this.l[e]=void 0)}}class GamepadDevice{get leftTrigger(){return this.source.buttons[o.LeftTrigger].value}get rightTrigger(){return this.source.buttons[o.RightTrigger].value}get leftShoulder(){return this.source.buttons[o.LeftShoulder].value}get rightShoulder(){return this.source.buttons[o.RightShoulder].value}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.button[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.button[e[t]])return!1;return!0}on(e,t){const i="number"==typeof e?n[e]:e;return this._emitter.on(i,t),this}off(e,t){const i="number"==typeof e?n[e]:e;return this._emitter.off(i,t),this}playVibration({duration:e=200,weakMagnitude:t=.5,strongMagnitude:i=.5,vibrationType:a="dual-rumble",rightTrigger:o=0,leftTrigger:n=0,startDelay:s=0}={}){if(this.options.vibration.enabled&&this.source.vibrationActuator)try{this.source.vibrationActuator.playEffect(a,{duration:e,startDelay:s,weakMagnitude:t,strongMagnitude:i,leftTrigger:n,rightTrigger:o})}catch(e){console.warn("gamepad vibrationActuator failed with error:",e)}}update(e,t){this.lastUpdated=t,this.updatePresses(e,t),this.source=e}clear(){this._axisIntents=this._axisIntents.map((()=>!1)),this._btnPrevState=this._btnPrevState.map((()=>!1))}constructor(n){this.source=n,this.type="gamepad",this.meta={},this.lastUpdated=performance.now(),this.lastActive=performance.now(),this.options=JSON.parse(JSON.stringify(GamepadDevice.defaultOptions)),this.button=Object.keys(o).reduce(((e,t)=>(e[t]=!1,e)),{}),this._btnPrevState=new Array(16),this._axisIntents=new Array(2),this._emitter=new EventEmitter,this.id="gamepad"+n.index,this.layout=function detectLayout(e){const t=(e.id||"").toLowerCase();return/(steam|28de)/.test(t)?"steam":/(logitech|046d|c216)/.test(t)?"logitech":/(nintendo|switch|joycon|057e)/.test(t)?"nintendo":/(dualshock|dualsense|sony|054c|0ce6|0810)/.test(t)?"playstation":/(xbox|xinput|045e|028e|0291|02a0|02a1|02ea|02ff)/.test(t)?"xbox":"generic"}(n),this.leftJoystick=new GamepadJoystick(this,e,t),this.rightJoystick=new GamepadJoystick(this,i,a),this._throttleIdLeftStickX=this.id+"-lsx",this._throttleIdLeftStickY=this.id+"-lsy"}updatePresses(i,a){var r,d,u,l,c;const h=this._btnPrevState.length;for(let e=0;e<h;e++){let t=e;if("nintendo"===this.layout&&"none"!==this.options.remapNintendoMode&&("physical"===this.options.remapNintendoMode?t===o.B?t=o.A:t===o.A?t=o.B:t===o.X?t=o.Y:t===o.Y&&(t=o.X):t===o.B?t=o.X:t===o.X&&(t=o.B)),this._btnPrevState[t]===(null===(r=i.buttons[e])||void 0===r?void 0:r.pressed))continue;this.lastActive=a;const l=null!==(u=null===(d=i.buttons[e])||void 0===d?void 0:d.pressed)&&void 0!==u&&u,c=n[t];this._btnPrevState[t]=l,this.button[c]=l,l&&(this._emitter.hasListener(c)?setTimeout((()=>this._emitter.emit(c,{device:this,button:t,buttonCode:c}))):this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&setTimeout((()=>s.commit(this.options.navigation.binds[t],this))))}const g=null!==(l=i.axes[e])&&void 0!==l?l:0,p=null!==(c=i.axes[t])&&void 0!==c?c:0;if(Math.abs(g)>=this.options.intent.joystickCommitSensitivity){const t=g<0?"navigateLeft":"navigateRight",i=this._axisIntents[e]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[e]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickX,i)&&setTimeout((()=>s.commit(t,this)))}else this._axisIntents[e]=!1;if(Math.abs(p)>=this.options.intent.joystickCommitSensitivity){const e=p<0?"navigateUp":"navigateDown",i=this._axisIntents[t]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[t]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickY,i)&&setTimeout((()=>s.commit(e,this)))}else this._axisIntents[t]=!1}}GamepadDevice.defaultOptions={remapNintendoMode:"physical",namedGroups:{},navigation:{enabled:!0,binds:{[o.A]:"trigger",[o.B]:"navigateBack",[o.Back]:"navigateBack",[o.DPadDown]:"navigateDown",[o.DPadLeft]:"navigateLeft",[o.DPadRight]:"navigateRight",[o.DPadUp]:"navigateUp"}},intent:{joystickCommitSensitivity:.5,firstCooldownMs:400,defaultCooldownMs:80},vibration:{enabled:!0,intensity:1}};class GamepadJoystick{constructor(e,t,i){this._owner=e,this.ix=t,this.iy=i}get x(){return this._owner.source.axes[this.ix]}get y(){return this._owner.source.axes[this.iy]}}const d={AltLeft:"AltLeft",AltRight:"AltRight",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",Backquote:"Backquote",Backslash:"Backslash",Backspace:"Backspace",BracketLeft:"BracketLeft",BracketRight:"BracketRight",CapsLock:"CapsLock",Comma:"Comma",ContextMenu:"ContextMenu",ControlLeft:"ControlLeft",ControlRight:"ControlRight",Delete:"Delete",Digit0:"Digit0",Digit1:"Digit1",Digit2:"Digit2",Digit3:"Digit3",Digit4:"Digit4",Digit5:"Digit5",Digit6:"Digit6",Digit7:"Digit7",Digit8:"Digit8",Digit9:"Digit9",End:"End",Enter:"Enter",Equal:"Equal",Escape:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F2:"F2",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F3:"F3",F30:"F30",F31:"F31",F32:"F32",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",Home:"Home",IntlBackslash:"IntlBackslash",IntlRo:"IntlRo",IntlYen:"IntlYen",KeyA:"KeyA",KeyB:"KeyB",KeyC:"KeyC",KeyD:"KeyD",KeyE:"KeyE",KeyF:"KeyF",KeyG:"KeyG",KeyH:"KeyH",KeyI:"KeyI",KeyJ:"KeyJ",KeyK:"KeyK",KeyL:"KeyL",KeyM:"KeyM",KeyN:"KeyN",KeyO:"KeyO",KeyP:"KeyP",KeyQ:"KeyQ",KeyR:"KeyR",KeyS:"KeyS",KeyT:"KeyT",KeyU:"KeyU",KeyV:"KeyV",KeyW:"KeyW",KeyX:"KeyX",KeyY:"KeyY",KeyZ:"KeyZ",Lang1:"Lang1",Lang2:"Lang2",MediaTrackNext:"MediaTrackNext",MediaTrackPrevious:"MediaTrackPrevious",MetaLeft:"MetaLeft",MetaRight:"MetaRight",Minus:"Minus",NumLock:"NumLock",Numpad0:"Numpad0",Numpad1:"Numpad1",Numpad2:"Numpad2",Numpad3:"Numpad3",Numpad4:"Numpad4",Numpad5:"Numpad5",Numpad6:"Numpad6",Numpad7:"Numpad7",Numpad8:"Numpad8",Numpad9:"Numpad9",NumpadAdd:"NumpadAdd",NumpadComma:"NumpadComma",NumpadDecimal:"NumpadDecimal",NumpadDivide:"NumpadDivide",NumpadMultiply:"NumpadMultiply",NumpadSubtract:"NumpadSubtract",OSLeft:"OSLeft",Pause:"Pause",Period:"Period",Quote:"Quote",ScrollLock:"ScrollLock",Semicolon:"Semicolon",ShiftLeft:"ShiftLeft",ShiftRight:"ShiftRight",Slash:"Slash",Space:"Space",Tab:"Tab",VolumeDown:"VolumeDown",VolumeMute:"VolumeMute",VolumeUp:"VolumeUp",WakeUp:"WakeUp"};function __awaiter(e,t,i,a){return new(i||(i=Promise))((function(o,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a.throw(e))}catch(e){n(e)}}function step(e){e.done?o(e.value):function adopt(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const u=["fr","mg","lu"],l=["ab","ba","be","bg","ch","kk","ky","mk","mn","ru","sr","tg","tt","uk","uz"],c=["de","cs","sk","sl","hu","hr","bs","ro","sq","me","lt","lv","et"],h=/ф|и|с|в|у|а|п|р|ш|о|л|д|ь|т|щ|з|й|к|ы|е|г|м|ц|ч|н|я|ё|х|ъ|б|ю|э|ж|и/i,g=/[a-z]/i;function inferKeyboardLayoutFromLang(e=function getLang(){var e;const t=navigator;return null!=(null===(e=t.languages)||void 0===e?void 0:e.length)?t.languages[0]:t.userLanguage||t.language||t.browserLanguage}()){const t=(e||"").toLowerCase(),i=t.split("-")[0];return u.includes(i)||t.startsWith("nl-be")?"AZERTY":l.includes(i)?"JCUKEN":c.includes(i)||t.startsWith("sr-latn")?"QWERTZ":"QWERTY"}const p=new Set(["AZERTY","JCUKEN","QWERTY","QWERTZ"]);let m;function getMetaKeyLabel(){var e,t,i,a;const o=navigator,n=null!==(t=null===(e=o.platform)||void 0===e?void 0:e.toLowerCase())&&void 0!==t?t:"",s=null!==(a=null===(i=o.userAgent)||void 0===i?void 0:i.toLowerCase())&&void 0!==a?a:"";return n.includes("mac")?"⌘":n.includes("win")||n.includes("linux")?"⊞":s.includes("android")?"Search":s.includes("iphone")||s.includes("ipad")?"⌘":"⊞"}class KeyboardDevice{constructor(){this.type="keyboard",this.id="keyboard",this.meta={},this.lastUpdated=performance.now(),this.detectLayoutOnKeypress=!0,this.detected=!1,this._emitter=new EventEmitter,this.options={preventDefaultKeys:new Set([]),namedGroups:{},navigation:{enabled:!0,binds:{Space:"trigger",Enter:"trigger",Escape:"navigateBack",Backspace:"navigateBack",ArrowDown:"navigateDown",ArrowLeft:"navigateLeft",ArrowRight:"navigateRight",ArrowUp:"navigateUp",KeyA:"navigateLeft",KeyD:"navigateRight",KeyS:"navigateDown",KeyW:"navigateUp"}}},this.key=Object.keys(d).reduce(((e,t)=>(e[t]=!1,e)),{}),this._layout=inferKeyboardLayoutFromLang(),this._layoutSource="lang",function requestKeyboardLayout(){return __awaiter(this,void 0,void 0,(function*(){const e=navigator;if(e.keyboard&&e.keyboard.getLayoutMap)try{const t=yield e.keyboard.getLayoutMap(),i=t.get("KeyQ"),a=t.get("KeyA"),o=t.get("KeyZ");if("a"===i&&"w"===o&&"q"===a)return"AZERTY";if("q"===i&&"y"===o&&"a"===a)return"QWERTZ";if("q"===i&&"z"===o&&"a"===a)return"QWERTY";if("й"===i&&"я"===o&&"ф"===a)return"JCUKEN"}catch(e){console.error("Error detecting keyboard layout:",e)}}))}().then((e=>{void 0!==e&&(this._layoutSource="browser",this._layout=e,this._emitter.emit("layoutdetected",{layoutSource:"browser",layout:e,device:this}))})),this._configureEventListeners()}get layout(){return this._layout}set layout(e){this._layoutSource="manual",this._layout=e}get layoutSource(){return this._layoutSource}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.key[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.key[e[t]])return!1;return!0}on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}keyLabel(e,t=this._layout){return function getLayoutLabel(e,t){if(void 0===m){const e={ArrowLeft:"←",ArrowRight:"→",ArrowUp:"↑",ArrowDown:"↓",AltLeft:"Left Alt",AltRight:"Right Alt",Backquote:"`",Backslash:"\\",Backspace:"Backspace",BracketLeft:"[",BracketRight:"]",CapsLock:"Caps Lock",Comma:",",ContextMenu:"Context Menu",ControlLeft:"Left Ctrl",ControlRight:"Right Ctrl",Delete:"Delete",Digit0:"0",Digit1:"1",Digit2:"2",Digit3:"3",Digit4:"4",Digit5:"5",Digit6:"6",Digit7:"7",Digit8:"8",Digit9:"9",End:"End",Enter:"Enter",Equal:"=",Escape:"Esc",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F30:"F30",F31:"F31",F32:"F32",Home:"Home",IntlBackslash:"\\",IntlRo:"Ro",IntlYen:"¥",KeyA:"A",KeyB:"B",KeyC:"C",KeyD:"D",KeyE:"E",KeyF:"F",KeyG:"G",KeyH:"H",KeyI:"I",KeyJ:"J",KeyK:"K",KeyL:"L",KeyM:"M",KeyN:"N",KeyO:"O",KeyP:"P",KeyQ:"Q",KeyR:"R",KeyS:"S",KeyT:"T",KeyU:"U",KeyV:"V",KeyW:"W",KeyX:"X",KeyY:"Y",KeyZ:"Z",Lang1:"Language 1",Lang2:"Language 2",MediaTrackNext:"Next Track",MediaTrackPrevious:"Previous Track",MetaLeft:"Left "+getMetaKeyLabel(),MetaRight:"Right "+getMetaKeyLabel(),Minus:"-",NumLock:"Num Lock",Numpad0:"Num0",Numpad1:"Num1",Numpad2:"Num2",Numpad3:"Num3",Numpad4:"Num4",Numpad5:"Num5",Numpad6:"Num6",Numpad7:"Num7",Numpad8:"Num8",Numpad9:"Num9",NumpadAdd:"+",NumpadComma:",",NumpadDecimal:".",NumpadDivide:"/",NumpadMultiply:"*",NumpadSubtract:"-",OSLeft:"OS Left",Pause:"Pause",Period:".",Quote:"'",ScrollLock:"Scroll Lock",Semicolon:";",ShiftLeft:"Left Shift",ShiftRight:"Right Shift",Slash:"/",Space:"Space",Tab:"Tab",VolumeDown:"Volume Down",VolumeMute:"Mute",VolumeUp:"Volume Up",WakeUp:"Wake Up"},t=Object.assign(Object.assign({},e),{KeyA:"Q",KeyQ:"A",KeyW:"Z",KeyZ:"W",Backquote:"²",BracketLeft:"«",BracketRight:"»"}),i=Object.assign(Object.assign({},e),{KeyA:"Ф",KeyB:"И",KeyC:"С",KeyD:"В",KeyE:"У",KeyF:"А",KeyG:"П",KeyH:"Р",KeyI:"Ш",KeyJ:"О",KeyK:"Л",KeyL:"Д",KeyM:"Ь",KeyN:"Т",KeyO:"Щ",KeyP:"З",KeyQ:"Й",KeyR:"К",KeyS:"Ы",KeyT:"Е",KeyU:"Г",KeyV:"М",KeyW:"Ц",KeyX:"Ч",KeyY:"Н",KeyZ:"Я",Backquote:"Ё",BracketLeft:"х",BracketRight:"ъ",Comma:"Б",Period:"Ю",Quote:"Э",Semicolon:"Ж",Slash:"И"}),a=Object.assign(Object.assign({},e),{KeyY:"Z",KeyZ:"Y",BracketLeft:"ü",BracketRight:"ö",Slash:"-"});m={AZERTY:t,JCUKEN:i,QWERTY:e,QWERTZ:a}}return m[t][e]}(e,t)}clear(){for(const e of Object.keys(d))this.key[e]=!1}_configureEventListeners(){document.addEventListener("keydown",(e=>{const t=e.code;if(this.key[t]=!0,this.options.preventDefaultKeys.has(t)&&e.preventDefault(),this.detectLayoutOnKeypress&&"lang"===this._layoutSource){const t=function detectKeyboardLayoutFromKeydown(e){const t=e.key.toLowerCase(),i=e.code;return h.test(t)?(p.delete("AZERTY"),p.delete("QWERTY"),p.delete("QWERTZ")):"Backquote"===i&&"²"===t||"BracketLeft"===i&&"«"===t||"BracketRight"===i&&"»"===t||"KeyA"===i&&"q"===t||"KeyQ"===i&&"a"===t||"KeyW"===i&&"z"===t||"KeyZ"===i&&"w"===t?(p.delete("JCUKEN"),p.delete("QWERTY"),p.delete("QWERTZ")):"BracketLeft"===i&&"ü"===t||"BracketRight"===i&&"ö"===t||"KeyY"===i&&"z"===t||"KeyZ"===i&&"y"===t||"Slash"===i&&"-"===t?(p.delete("AZERTY"),p.delete("JCUKEN"),p.delete("QWERTY")):"BracketLeft"===i&&"["===t||"BracketRight"===i&&"]"===t||"KeyZ"===i&&"z"===t?(p.delete("AZERTY"),p.delete("JCUKEN"),p.delete("QWERTZ")):"KeyQ"===i&&"q"===t||"KeyW"===i&&"w"===t?(p.delete("AZERTY"),p.delete("JCUKEN")):"KeyY"===i&&"Y"===t?(p.delete("QWERTZ"),p.delete("JCUKEN")):g.test(t)&&p.delete("JCUKEN"),1===p.size?[...p][0]:void 0}(e);void 0!==t&&(this._layout=t,this._layoutSource="keypress",this.detectLayoutOnKeypress=!1,this._emitter.emit("layoutdetected",{layout:t,layoutSource:"keypress",device:this}))}this._emitter.hasListener(t)?setTimeout((()=>this._emitter.emit(t,{device:this,keyCode:t,keyLabel:this.keyLabel(t),event:e}))):this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&(e.preventDefault(),setTimeout((()=>s.commit(this.options.navigation.binds[t],this))))})),document.addEventListener("keyup",(e=>{this.key[e.code]=!1,this.options.preventDefaultKeys.has(e.code)&&e.preventDefault()}))}}KeyboardDevice.global=new KeyboardDevice;class InputDeviceManager{on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}get gamepads(){return this._gamepadDevices}get devices(){return this._devices}constructor(){this._emitter=new EventEmitter,this.isMobile=(()=>{let e=!1;var t;return t=navigator.userAgent||navigator.vendor,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0),e})(),this.isTouchCapable=function isTouchCapable(){return"ontouchstart"in window||navigator.maxTouchPoints>0}(),this.hasFocus=!1,this.options={clearInputInBackground:!0},this._gamepadDevices=[],this._gamepadDeviceMap=new Map,this._devices=[];const registerKeyboard=()=>{window.removeEventListener("keydown",registerKeyboard),this._devices.push(this.keyboard),this._emitter.emit("deviceadded",{device:this.keyboard}),this.keyboard.detected=!0};this.keyboard=KeyboardDevice.global,this.isTouchCapable||this.isMobile?window.addEventListener("keydown",registerKeyboard):registerKeyboard(),window.addEventListener("gamepadconnected",(()=>this.pollGamepads(performance.now()))),window.addEventListener("gamepaddisconnected",(e=>this.removeGamepad(e.gamepad.index)))}update(){if(!document.hasFocus())return this.hasFocus&&this.options.clearInputInBackground&&this.devices.forEach((e=>e.clear())),this.hasFocus=!1,this._devices;this.hasFocus=!0;const e=performance.now();return this.keyboard.lastUpdated=e,this.pollGamepads(e),this._devices}add(e){this._devices.push(e)}remove(e){const t=this._devices.indexOf(e);-1!==t&&(this._devices.splice(t,1),this._emitter.emit("deviceremoved",{device:e}))}pollGamepads(e){if(!document.hasFocus())return this._gamepadDevices;if(void 0===navigator.getGamepads)return this._gamepadDevices;for(const t of navigator.getGamepads())if(null!=t)if(this._gamepadDeviceMap.has(t.index)){this._gamepadDeviceMap.get(t.index).update(t,e)}else{const e=new GamepadDevice(t);this._gamepadDeviceMap.set(t.index,e),this._gamepadDevices.push(e),this._devices.push(e),this._emitter.emit("deviceadded",{device:e})}return this._gamepadDevices}removeGamepad(e){const t=this._gamepadDeviceMap.get(e);if(!t)return;const i=this._gamepadDevices.indexOf(t);-1!==i&&this._gamepadDevices.splice(i,1),this.remove(t),this._gamepadDeviceMap.delete(e)}}InputDeviceManager.global=new InputDeviceManager;const v=InputDeviceManager.global;function registerPixiJSInputDeviceMixin(e){const t=e.prototype;t.navigationPriority=0,t.navigationMode="auto",Object.defineProperty(t,"isNavigatable",{get:function(){if("auto"===this.navigationMode){if(!this.isInteractive)return!1;const e=this.eventNames();return e.includes("pointerdown")||e.includes("mousedown")}return"target"===this.navigationMode},configurable:!0,enumerable:!1})}export{o as Button,CustomDevice,GamepadDevice,v as InputDevice,d as KeyCode,KeyboardDevice,s as Navigation,getAllNavigatables,getFirstNavigatable,registerPixiJSInputDeviceMixin};
|
|
1
|
+
class CustomDevice{constructor(e){this.type="custom",this.meta={},this.lastUpdated=performance.now(),this.id=e}clear(){}}const e=0,t=1,i=2,o=3,a={A:0,B:1,X:2,Y:3,LeftShoulder:4,RightShoulder:5,LeftTrigger:6,RightTrigger:7,Back:8,Start:9,LeftStick:10,RightStick:11,DPadUp:12,DPadDown:13,DPadLeft:14,DPadRight:15},s=["A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight"];function getAllNavigatables(e,t=[]){for(const i of e.children)i.isNavigatable?t.push(i):getAllNavigatables(i,t);return t}function getFirstNavigatable(e,t,i,{minimumDistance:o=3}={}){return function chooseFirstNavigatableInDirection(e,t,i,{minimumDistance:o=3}={}){var a,s,n,r,d,u,c,l,h;const g=e.filter((e=>e.isNavigatable&&null!=e.parent&&function isVisible(e){for(;null!=e;){if(!e.visible)return!1;e=e.parent}return!0}(e))),p=g.find((e=>e===t));if(void 0===p)return g.sort(((e,t)=>e.navigationPriority-t.navigationPriority)),g[0];if(void 0===i&&p)return p;const m=null!=p?p:g[Math.floor(Math.random()*g.length)];if(void 0===p)return null!==(a=e[0])&&void 0!==a?a:m;const v=p.getBounds(),y={x:v.left+v.width/2,y:v.top+v.height/2},f=g.filter((e=>e!==p)).map((e=>{const t=e.getBounds(),i={x:t.left+t.width/2,y:t.top+t.height/2};return{element:e,bounds:t,center:i,distSqrd:squaredDist(i,y)}}));switch(i){case"navigateUp":return null!==(n=null===(s=f.filter((e=>e.center.y<y.y-o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===s?void 0:s.element)&&void 0!==n?n:m;case"navigateLeft":return null!==(d=null===(r=f.filter((e=>e.center.x<y.x-o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===r?void 0:r.element)&&void 0!==d?d:m;case"navigateRight":return null!==(c=null===(u=f.filter((e=>e.center.x>y.x+o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===u?void 0:u.element)&&void 0!==c?c:m;case"navigateDown":return null!==(h=null===(l=f.filter((e=>e.center.y>y.y+o)).sort(((e,t)=>e.distSqrd-t.distSqrd))[0])||void 0===l?void 0:l.element)&&void 0!==h?h:m;default:return p}}(getAllNavigatables(e),t,i,{minimumDistance:o})}function squaredDist(e,t){const i=t.x-e.x,o=t.y-e.y;return i*i+o*o}class NavigationManager{constructor(){this.options={enabled:!0,useFallbackHoverEffect:!0},this._responderStack=[]}get firstResponder(){return this._responderStack[0]}get responders(){return this._responderStack}commit(e,t){this.options.enabled&&this._propagateIntent(e,t)}popResponder(){var e,t,i;const o=this._responderStack.shift();return null===(t=null===(e=this.firstResponder)||void 0===e?void 0:e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==o?void 0:o.resignedAsFirstResponder)||void 0===i||i.call(o),o}pushResponder(e){var t,i;if(this._responderStack.includes(e))throw new Error("Responder already in stack.");const o=this.firstResponder;this._responderStack.unshift(e),null===(t=e.becameFirstResponder)||void 0===t||t.call(e),null===(i=null==o?void 0:o.resignedAsFirstResponder)||void 0===i||i.call(o)}_propagateIntent(e,t){var i;for(const o of this._responderStack)if(null===(i=o.handledNavigationIntent)||void 0===i?void 0:i.call(o,e,t))return;void 0===this.stage?console.warn("navigation: no stage root set"):this._handleGlobalIntent(this.stage,e)}_handleGlobalIntent(e,t){var i;if(void 0===this._focused){const i=getFirstNavigatable(e);return void 0===i?void console.debug("navigation: no navigatable views found",t):(this._emitFocus(i),void(this._focused=i))}if("navigateBack"===t)return this._emitBlur(this._focused),void(this._focused=void 0);if("trigger"===t)return void this._emitTrigger(this._focused);const o=null!==(i=getFirstNavigatable(this.stage,this._focused,t))&&void 0!==i?i:this._focused;o!==this._focused&&(this._emitBlur(this._focused),this._emitFocus(o),this._focused=o)}_emitBlur(e){const t=e.eventNames();t.includes("pointerout")?e.emit("pointerout"):t.includes("mouseout")?e.emit("mouseout"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=1),e.emit("blur")}_emitFocus(e){const t=e.eventNames();t.includes("pointerover")?e.emit("pointerover"):t.includes("mouseover")?e.emit("mouseover"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.5),e.emit("focus")}_emitTrigger(e){const t=e.eventNames();t.includes("pointerdown")?e.emit("pointerdown"):t.includes("mousedown")?e.emit("mousedown"):"auto"===e.navigationMode&&this.options.useFallbackHoverEffect&&(e.alpha=.75),e.emit("trigger")}}NavigationManager.global=new NavigationManager;const n=NavigationManager.global;let r=new Map;function throttle(e,t){var i;const o=Date.now();return(null!==(i=r.get(e))&&void 0!==i?i:0)>o||(r.set(e,o+t),!1)}class EventEmitter{constructor(){this.l={}}hasListener(e){return void 0!==this.l[e]}emit(e,t){var i;null===(i=this.l[e])||void 0===i||i.forEach((e=>e(t)))}on(e,t){var i;this.l[e]||(this.l[e]=[]),null===(i=this.l[e])||void 0===i||i.push(t)}off(e,t){var i,o;this.l[e]=void 0===t||null===(i=this.l[e])||void 0===i?void 0:i.filter((e=>e!==t)),0===(null===(o=this.l[e])||void 0===o?void 0:o.length)&&(this.l[e]=void 0)}}class GamepadDevice{get leftTrigger(){return this.source.buttons[a.LeftTrigger].value}get rightTrigger(){return this.source.buttons[a.RightTrigger].value}get leftShoulder(){return this.source.buttons[a.LeftShoulder].value}get rightShoulder(){return this.source.buttons[a.RightShoulder].value}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.button[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.button[e[t]])return!1;return!0}on(e,t){const i="number"==typeof e?s[e]:e;return this._emitter.on(i,t),this}off(e,t){const i="number"==typeof e?s[e]:e;return this._emitter.off(i,t),this}onGroup(e,t){return this._groupEmitter.on(e,t),this}offGroup(e,t){return this._groupEmitter.off(e,t),this}playVibration({duration:e=200,weakMagnitude:t=.5,strongMagnitude:i=.5,vibrationType:o="dual-rumble",rightTrigger:a=0,leftTrigger:s=0,startDelay:n=0}={}){if(this.options.vibration.enabled&&this.source.vibrationActuator)try{this.source.vibrationActuator.playEffect(o,{duration:e,startDelay:n,weakMagnitude:t,strongMagnitude:i,leftTrigger:s,rightTrigger:a})}catch(e){console.warn("gamepad vibrationActuator failed with error:",e)}}update(e,t){this.updatePresses(e,t),this.source=e,this.lastUpdated=t}clear(){this._axisIntents=this._axisIntents.map((()=>!1)),this._btnPrevState=this._btnPrevState.map((()=>!1))}constructor(s){this.source=s,this.type="gamepad",this.meta={},this.lastUpdated=performance.now(),this.lastActive=performance.now(),this.options=JSON.parse(JSON.stringify(GamepadDevice.defaultOptions)),this.button=Object.keys(a).reduce(((e,t)=>(e[t]=!1,e)),{}),this._btnPrevState=new Array(16),this._axisIntents=new Array(2),this._emitter=new EventEmitter,this._groupEmitter=new EventEmitter,this.id="gamepad"+s.index,this.layout=function detectLayout(e){const t=(e.id||"").toLowerCase();return/(steam|28de)/.test(t)?"steam":/(logitech|046d|c216)/.test(t)?"logitech":/(nintendo|switch|joycon|057e)/.test(t)?"nintendo":/(dualshock|dualsense|sony|054c|0ce6|0810)/.test(t)?"playstation":/(xbox|xinput|045e|028e|0291|02a0|02a1|02ea|02ff)/.test(t)?"xbox":"generic"}(s),this.leftJoystick=new GamepadJoystick(this,e,t),this.rightJoystick=new GamepadJoystick(this,i,o),this._throttleIdLeftStickX=this.id+"-lsx",this._throttleIdLeftStickY=this.id+"-lsy"}updatePresses(i,o){var r,d,u,c,l;const h=this._btnPrevState.length;for(let e=0;e<h;e++){let t=e;if("nintendo"===this.layout&&"none"!==this.options.remapNintendoMode&&("physical"===this.options.remapNintendoMode?t===a.B?t=a.A:t===a.A?t=a.B:t===a.X?t=a.Y:t===a.Y&&(t=a.X):t===a.B?t=a.X:t===a.X&&(t=a.B)),this._btnPrevState[t]===(null===(r=i.buttons[e])||void 0===r?void 0:r.pressed))continue;this.lastActive=o;const c=null!==(u=null===(d=i.buttons[e])||void 0===d?void 0:d.pressed)&&void 0!==u&&u,l=s[t];this._btnPrevState[t]=c,this.button[l]=c,c&&(this._emitter.hasListener(l)&&setTimeout((()=>this._emitter.emit(l,{device:this,button:t,buttonCode:l}))),n.options.enabled&&this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&setTimeout((()=>n.commit(this.options.navigation.binds[t],this))),Object.entries(this.options.namedGroups).forEach((([e,i])=>{i.includes(l)&&setTimeout((()=>{const i={device:this,button:t,buttonCode:l,groupName:e};this._groupEmitter.emit(e,i),this._emitter.emit("group",i)}))})))}const g=null!==(c=i.axes[e])&&void 0!==c?c:0,p=null!==(l=i.axes[t])&&void 0!==l?l:0;if(Math.abs(g)>=this.options.intent.joystickCommitSensitivity){const t=g<0?"navigateLeft":"navigateRight",i=this._axisIntents[e]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[e]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickX,i)&&setTimeout((()=>n.commit(t,this)))}else this._axisIntents[e]=!1;if(Math.abs(p)>=this.options.intent.joystickCommitSensitivity){const e=p<0?"navigateUp":"navigateDown",i=this._axisIntents[t]?this.options.intent.defaultCooldownMs:this.options.intent.firstCooldownMs;this._axisIntents[t]=!0,this.options.navigation.enabled&&!throttle(this._throttleIdLeftStickY,i)&&setTimeout((()=>n.commit(e,this)))}else this._axisIntents[t]=!1}}GamepadDevice.defaultOptions={remapNintendoMode:"physical",namedGroups:{},navigation:{enabled:!0,binds:{[a.A]:"trigger",[a.B]:"navigateBack",[a.Back]:"navigateBack",[a.DPadDown]:"navigateDown",[a.DPadLeft]:"navigateLeft",[a.DPadRight]:"navigateRight",[a.DPadUp]:"navigateUp"}},intent:{joystickCommitSensitivity:.5,firstCooldownMs:400,defaultCooldownMs:80},vibration:{enabled:!0,intensity:1}};class GamepadJoystick{constructor(e,t,i){this._owner=e,this.ix=t,this.iy=i}get x(){return this._owner.source.axes[this.ix]}get y(){return this._owner.source.axes[this.iy]}}const d={AltLeft:"AltLeft",AltRight:"AltRight",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",Backquote:"Backquote",Backslash:"Backslash",Backspace:"Backspace",BracketLeft:"BracketLeft",BracketRight:"BracketRight",CapsLock:"CapsLock",Comma:"Comma",ContextMenu:"ContextMenu",ControlLeft:"ControlLeft",ControlRight:"ControlRight",Delete:"Delete",Digit0:"Digit0",Digit1:"Digit1",Digit2:"Digit2",Digit3:"Digit3",Digit4:"Digit4",Digit5:"Digit5",Digit6:"Digit6",Digit7:"Digit7",Digit8:"Digit8",Digit9:"Digit9",End:"End",Enter:"Enter",Equal:"Equal",Escape:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F2:"F2",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F3:"F3",F30:"F30",F31:"F31",F32:"F32",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",Home:"Home",IntlBackslash:"IntlBackslash",IntlRo:"IntlRo",IntlYen:"IntlYen",KeyA:"KeyA",KeyB:"KeyB",KeyC:"KeyC",KeyD:"KeyD",KeyE:"KeyE",KeyF:"KeyF",KeyG:"KeyG",KeyH:"KeyH",KeyI:"KeyI",KeyJ:"KeyJ",KeyK:"KeyK",KeyL:"KeyL",KeyM:"KeyM",KeyN:"KeyN",KeyO:"KeyO",KeyP:"KeyP",KeyQ:"KeyQ",KeyR:"KeyR",KeyS:"KeyS",KeyT:"KeyT",KeyU:"KeyU",KeyV:"KeyV",KeyW:"KeyW",KeyX:"KeyX",KeyY:"KeyY",KeyZ:"KeyZ",Lang1:"Lang1",Lang2:"Lang2",MediaTrackNext:"MediaTrackNext",MediaTrackPrevious:"MediaTrackPrevious",MetaLeft:"MetaLeft",MetaRight:"MetaRight",Minus:"Minus",NumLock:"NumLock",Numpad0:"Numpad0",Numpad1:"Numpad1",Numpad2:"Numpad2",Numpad3:"Numpad3",Numpad4:"Numpad4",Numpad5:"Numpad5",Numpad6:"Numpad6",Numpad7:"Numpad7",Numpad8:"Numpad8",Numpad9:"Numpad9",NumpadAdd:"NumpadAdd",NumpadComma:"NumpadComma",NumpadDecimal:"NumpadDecimal",NumpadDivide:"NumpadDivide",NumpadMultiply:"NumpadMultiply",NumpadSubtract:"NumpadSubtract",OSLeft:"OSLeft",Pause:"Pause",Period:"Period",Quote:"Quote",ScrollLock:"ScrollLock",Semicolon:"Semicolon",ShiftLeft:"ShiftLeft",ShiftRight:"ShiftRight",Slash:"Slash",Space:"Space",Tab:"Tab",VolumeDown:"VolumeDown",VolumeMute:"VolumeMute",VolumeUp:"VolumeUp",WakeUp:"WakeUp"};function __awaiter(e,t,i,o){return new(i||(i=Promise))((function(a,s){function fulfilled(e){try{step(o.next(e))}catch(e){s(e)}}function rejected(e){try{step(o.throw(e))}catch(e){s(e)}}function step(e){e.done?a(e.value):function adopt(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((o=o.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const u=["fr","mg","lu"],c=["ab","ba","be","bg","ch","kk","ky","mk","mn","ru","sr","tg","tt","uk","uz"],l=["de","cs","sk","sl","hu","hr","bs","ro","sq","me","lt","lv","et"],h=/ф|и|с|в|у|а|п|р|ш|о|л|д|ь|т|щ|з|й|к|ы|е|г|м|ц|ч|н|я|ё|х|ъ|б|ю|э|ж|и/i,g=/[a-z]/i;function inferKeyboardLayoutFromLang(e=function getLang(){var e;const t=navigator;return null!=(null===(e=t.languages)||void 0===e?void 0:e.length)?t.languages[0]:t.userLanguage||t.language||t.browserLanguage}()){const t=(e||"").toLowerCase(),i=t.split("-")[0];return u.includes(i)||t.startsWith("nl-be")?"AZERTY":c.includes(i)?"JCUKEN":l.includes(i)||t.startsWith("sr-latn")?"QWERTZ":"QWERTY"}const p=new Set(["AZERTY","JCUKEN","QWERTY","QWERTZ"]);let m;function getMetaKeyLabel(){var e,t,i,o;const a=navigator,s=null!==(t=null===(e=a.platform)||void 0===e?void 0:e.toLowerCase())&&void 0!==t?t:"",n=null!==(o=null===(i=a.userAgent)||void 0===i?void 0:i.toLowerCase())&&void 0!==o?o:"";return s.includes("mac")?"⌘":s.includes("win")||s.includes("linux")?"⊞":n.includes("android")?"Search":n.includes("iphone")||n.includes("ipad")?"⌘":"⊞"}class KeyboardDevice{constructor(){this.type="keyboard",this.id="keyboard",this.meta={},this.lastUpdated=performance.now(),this.detectLayoutOnKeypress=!0,this.detected=!1,this.options={namedGroups:{},navigation:{enabled:!0,binds:{Space:"trigger",Enter:"trigger",Escape:"navigateBack",Backspace:"navigateBack",ArrowDown:"navigateDown",ArrowLeft:"navigateLeft",ArrowRight:"navigateRight",ArrowUp:"navigateUp",KeyA:"navigateLeft",KeyD:"navigateRight",KeyS:"navigateDown",KeyW:"navigateUp"}}},this.key=Object.keys(d).reduce(((e,t)=>(e[t]=!1,e)),{}),this._emitter=new EventEmitter,this._groupEmitter=new EventEmitter,this._deferredKeydown=[],this._layout=inferKeyboardLayoutFromLang(),this._layoutSource="lang",function requestKeyboardLayout(){return __awaiter(this,void 0,void 0,(function*(){const e=navigator;if(e.keyboard&&e.keyboard.getLayoutMap)try{const t=yield e.keyboard.getLayoutMap(),i=t.get("KeyQ"),o=t.get("KeyA"),a=t.get("KeyZ");if("a"===i&&"w"===a&&"q"===o)return"AZERTY";if("q"===i&&"y"===a&&"a"===o)return"QWERTZ";if("q"===i&&"z"===a&&"a"===o)return"QWERTY";if("й"===i&&"я"===a&&"ф"===o)return"JCUKEN"}catch(e){console.error("Error detecting keyboard layout:",e)}}))}().then((e=>{void 0!==e&&(this._layoutSource="browser",this._layout=e,this._emitter.emit("layoutdetected",{layoutSource:"browser",layout:e,device:this}))})),this._configureEventListeners()}get layout(){return this._layout}set layout(e){this._layoutSource="manual",this._layout=e}get layoutSource(){return this._layoutSource}groupPressed(e){return void 0!==this.options.namedGroups[e]&&this.anyPressed(this.options.namedGroups[e])}anyPressed(e){for(let t=0;t<e.length;t++)if(this.key[e[t]])return!0;return!1}allPressed(e){for(let t=0;t<e.length;t++)if(!this.key[e[t]])return!1;return!0}on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}onGroup(e,t){return this._groupEmitter.on(e,t),this}offGroup(e,t){return this._groupEmitter.off(e,t),this}keyLabel(e,t=this._layout){return function getLayoutLabel(e,t){if(void 0===m){const e={ArrowLeft:"←",ArrowRight:"→",ArrowUp:"↑",ArrowDown:"↓",AltLeft:"Left Alt",AltRight:"Right Alt",Backquote:"`",Backslash:"\\",Backspace:"Backspace",BracketLeft:"[",BracketRight:"]",CapsLock:"Caps Lock",Comma:",",ContextMenu:"Context Menu",ControlLeft:"Left Ctrl",ControlRight:"Right Ctrl",Delete:"Delete",Digit0:"0",Digit1:"1",Digit2:"2",Digit3:"3",Digit4:"4",Digit5:"5",Digit6:"6",Digit7:"7",Digit8:"8",Digit9:"9",End:"End",Enter:"Enter",Equal:"=",Escape:"Esc",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F30:"F30",F31:"F31",F32:"F32",Home:"Home",IntlBackslash:"\\",IntlRo:"Ro",IntlYen:"¥",KeyA:"A",KeyB:"B",KeyC:"C",KeyD:"D",KeyE:"E",KeyF:"F",KeyG:"G",KeyH:"H",KeyI:"I",KeyJ:"J",KeyK:"K",KeyL:"L",KeyM:"M",KeyN:"N",KeyO:"O",KeyP:"P",KeyQ:"Q",KeyR:"R",KeyS:"S",KeyT:"T",KeyU:"U",KeyV:"V",KeyW:"W",KeyX:"X",KeyY:"Y",KeyZ:"Z",Lang1:"Language 1",Lang2:"Language 2",MediaTrackNext:"Next Track",MediaTrackPrevious:"Previous Track",MetaLeft:"Left "+getMetaKeyLabel(),MetaRight:"Right "+getMetaKeyLabel(),Minus:"-",NumLock:"Num Lock",Numpad0:"Num0",Numpad1:"Num1",Numpad2:"Num2",Numpad3:"Num3",Numpad4:"Num4",Numpad5:"Num5",Numpad6:"Num6",Numpad7:"Num7",Numpad8:"Num8",Numpad9:"Num9",NumpadAdd:"+",NumpadComma:",",NumpadDecimal:".",NumpadDivide:"/",NumpadMultiply:"*",NumpadSubtract:"-",OSLeft:"OS Left",Pause:"Pause",Period:".",Quote:"'",ScrollLock:"Scroll Lock",Semicolon:";",ShiftLeft:"Left Shift",ShiftRight:"Right Shift",Slash:"/",Space:"Space",Tab:"Tab",VolumeDown:"Volume Down",VolumeMute:"Mute",VolumeUp:"Volume Up",WakeUp:"Wake Up"},t=Object.assign(Object.assign({},e),{KeyA:"Q",KeyQ:"A",KeyW:"Z",KeyZ:"W",Backquote:"²",BracketLeft:"«",BracketRight:"»"}),i=Object.assign(Object.assign({},e),{KeyA:"Ф",KeyB:"И",KeyC:"С",KeyD:"В",KeyE:"У",KeyF:"А",KeyG:"П",KeyH:"Р",KeyI:"Ш",KeyJ:"О",KeyK:"Л",KeyL:"Д",KeyM:"Ь",KeyN:"Т",KeyO:"Щ",KeyP:"З",KeyQ:"Й",KeyR:"К",KeyS:"Ы",KeyT:"Е",KeyU:"Г",KeyV:"М",KeyW:"Ц",KeyX:"Ч",KeyY:"Н",KeyZ:"Я",Backquote:"Ё",BracketLeft:"х",BracketRight:"ъ",Comma:"Б",Period:"Ю",Quote:"Э",Semicolon:"Ж",Slash:"И"}),o=Object.assign(Object.assign({},e),{KeyY:"Z",KeyZ:"Y",BracketLeft:"ü",BracketRight:"ö",Slash:"-"});m={AZERTY:t,JCUKEN:i,QWERTY:e,QWERTZ:o}}return m[t][e]}(e,t)}update(e){this._deferredKeydown.length>0&&(this._deferredKeydown.forEach((e=>this._processDeferredKeydownEvent(e))),this._deferredKeydown.length=0),this.lastUpdated=e}clear(){for(const e of Object.keys(d))this.key[e]=!1}_configureEventListeners(){const e=this.key,t=this._deferredKeydown;window.addEventListener("keydown",(e=>t.push(e)),{passive:!0,capture:!0}),window.addEventListener("keyup",(t=>e[t.code]=!1),{passive:!0,capture:!0})}_processDeferredKeydownEvent(e){const t=e.code;if(this.key[t]=!0,this.detectLayoutOnKeypress&&"lang"===this._layoutSource){const t=function detectKeyboardLayoutFromKeydown(e){const t=e.key.toLowerCase(),i=e.code;return h.test(t)?(p.delete("AZERTY"),p.delete("QWERTY"),p.delete("QWERTZ")):"Backquote"===i&&"²"===t||"BracketLeft"===i&&"«"===t||"BracketRight"===i&&"»"===t||"KeyA"===i&&"q"===t||"KeyQ"===i&&"a"===t||"KeyW"===i&&"z"===t||"KeyZ"===i&&"w"===t?(p.delete("JCUKEN"),p.delete("QWERTY"),p.delete("QWERTZ")):"BracketLeft"===i&&"ü"===t||"BracketRight"===i&&"ö"===t||"KeyY"===i&&"z"===t||"KeyZ"===i&&"y"===t||"Slash"===i&&"-"===t?(p.delete("AZERTY"),p.delete("JCUKEN"),p.delete("QWERTY")):"BracketLeft"===i&&"["===t||"BracketRight"===i&&"]"===t||"KeyZ"===i&&"z"===t?(p.delete("AZERTY"),p.delete("JCUKEN"),p.delete("QWERTZ")):"KeyQ"===i&&"q"===t||"KeyW"===i&&"w"===t?(p.delete("AZERTY"),p.delete("JCUKEN")):"KeyY"===i&&"Y"===t?(p.delete("QWERTZ"),p.delete("JCUKEN")):g.test(t)&&p.delete("JCUKEN"),1===p.size?[...p][0]:void 0}(e);void 0!==t&&(this._layout=t,this._layoutSource="keypress",this.detectLayoutOnKeypress=!1,this._emitter.emit("layoutdetected",{layout:t,layoutSource:"keypress",device:this}))}this._emitter.hasListener(t)&&setTimeout((()=>this._emitter.emit(t,{device:this,keyCode:t,keyLabel:this.keyLabel(t),event:e}))),n.options.enabled&&this.options.navigation.enabled&&void 0!==this.options.navigation.binds[t]&&setTimeout((()=>n.commit(this.options.navigation.binds[t],this))),Object.entries(this.options.namedGroups).forEach((([i,o])=>{o.includes(t)&&setTimeout((()=>{const o={device:this,keyCode:t,keyLabel:this.keyLabel(t),event:e,groupName:i};this._groupEmitter.emit(i,o),this._emitter.emit("group",o)}))}))}}KeyboardDevice.global=new KeyboardDevice;class InputDeviceManager{constructor(){this._emitter=new EventEmitter,this.isMobile=(()=>{let e=!1;var t;return t=navigator.userAgent||navigator.vendor,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0),e})(),this.isTouchCapable=function isTouchCapable(){return"ontouchstart"in window||navigator.maxTouchPoints>0}(),this.hasFocus=!1,this.options={clearInputInBackground:!0},this._gamepadDevices=[],this._gamepadDeviceMap=new Map,this._customDevices=[],this._groupEmitter=new EventEmitter,this._devices=[];const registerKeyboard=()=>{this.add(this.keyboard)};this.keyboard=KeyboardDevice.global,this.isTouchCapable||this.isMobile?window.addEventListener("keydown",registerKeyboard,{once:!0}):registerKeyboard(),window.addEventListener("gamepadconnected",(()=>this.pollGamepads(performance.now()))),window.addEventListener("gamepaddisconnected",(e=>this.removeGamepad(e.gamepad.index)))}get gamepads(){return this._gamepadDevices}get devices(){return this._devices}on(e,t){return this._emitter.on(e,t),this}off(e,t){return this._emitter.off(e,t),this}onGroup(e,t){return this._groupEmitter.on(e,t),this}offGroup(e,t){return this._groupEmitter.off(e,t),this}add(e){this._devices.push(e),e instanceof KeyboardDevice?(e.detected=!0,e.on("group",(e=>this._groupEmitter.emit(e.groupName,e)))):e instanceof GamepadDevice?(this._gamepadDeviceMap.set(e.source.index,e),this._gamepadDevices.push(e),e.on("group",(e=>this._groupEmitter.emit(e.groupName,e)))):e instanceof CustomDevice&&this._customDevices.push(e),this._emitter.emit("deviceadded",{device:e})}remove(e){if(e instanceof CustomDevice){const t=this._customDevices.indexOf(e);-1!==t&&this._devices.splice(t,1)}const t=this._devices.indexOf(e);-1!==t&&(this._devices.splice(t,1),this._emitter.emit("deviceremoved",{device:e}))}update(){if(!document.hasFocus())return this.hasFocus&&this.options.clearInputInBackground&&this.devices.forEach((e=>e.clear())),this.hasFocus=!1,this._devices;this.hasFocus=!0;const e=performance.now();return this.keyboard.update(e),this.pollGamepads(e),this._customDevices.length>0&&this._customDevices.forEach((t=>t.update(e))),this._devices}pollGamepads(e){if(!document.hasFocus())return this._gamepadDevices;if(void 0===navigator.getGamepads)return this._gamepadDevices;for(const t of navigator.getGamepads())if(null!=t)if(this._gamepadDeviceMap.has(t.index)){this._gamepadDeviceMap.get(t.index).update(t,e)}else{const i=new GamepadDevice(t);this.add(i),i.update(t,e)}return this._gamepadDevices}removeGamepad(e){const t=this._gamepadDeviceMap.get(e);if(!t)return;const i=this._gamepadDevices.indexOf(t);-1!==i&&this._gamepadDevices.splice(i,1),this.remove(t),this._gamepadDeviceMap.delete(e)}}InputDeviceManager.global=new InputDeviceManager;const v=InputDeviceManager.global;function registerPixiJSInputDeviceMixin(e){const t=e.prototype;t.navigationPriority=0,t.navigationMode="auto",Object.defineProperty(t,"isNavigatable",{get:function(){if("auto"===this.navigationMode){if(!this.isInteractive)return!1;const e=this.eventNames();return e.includes("pointerdown")||e.includes("mousedown")}return"target"===this.navigationMode},configurable:!0,enumerable:!1})}export{a as Button,CustomDevice,GamepadDevice,v as InputDevice,d as KeyCode,KeyboardDevice,n as Navigation,getAllNavigatables,getFirstNavigatable,registerPixiJSInputDeviceMixin};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/lib/devices/CustomDevice.ts","../src/lib/devices/gamepads/buttons.ts","../src/lib/navigation/Navigatable.ts","../src/lib/navigation/Navigation.ts","../src/lib/utils/throttle.ts","../src/lib/utils/events.ts","../src/lib/devices/GamepadDevice.ts","../src/lib/devices/gamepads/layouts.ts","../src/lib/devices/keyboard/keys.ts","../node_modules/tslib/tslib.es6.js","../src/lib/devices/keyboard/layouts.ts","../src/lib/devices/KeyboardDevice.ts","../src/lib/InputDevice.ts","../src/lib/utils/detectors.ts","../src/Container.mixin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null],"names":["CustomDevice","constructor","id","this","type","meta","lastUpdated","performance","now","clear","Axis","Button","A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight","ButtonCode","getAllNavigatables","target","navigatables","child","children","isNavigatable","push","getFirstNavigatable","root","currentFocus","nearestDirection","minimumDistance","chooseFirstNavigatableInDirection","elements","filter","el","parent","isVisible","visible","focusedElement","find","undefined","sort","a","b","navigationPriority","fallbackElement","Math","floor","random","length","_a","focusedBounds","getBounds","focusedCenter","x","left","width","y","top","height","otherElements","map","bounds","center","element","distSqrd","squaredDist","_c","_b","_e","_d","_g","_f","_j","_h","dx","dy","NavigationManager","options","enabled","useFallbackHoverEffect","_responderStack","firstResponder","responders","commit","intent","device","_propagateIntent","popResponder","responder","shift","becameFirstResponder","resignedAsFirstResponder","pushResponder","includes","Error","previousResponder","unshift","call","handledNavigationIntent","stage","console","warn","_handleGlobalIntent","_focused","navigatable","debug","_emitFocus","_emitBlur","_emitTrigger","nextTarget","eventNames","emit","navigationMode","alpha","global","Navigation","_cooldowns","Map","throttle","cooldownMs","Date","get","set","EventEmitter","l","hasListener","e","payload","forEach","fn","on","event","off","GamepadDevice","leftTrigger","source","buttons","value","rightTrigger","leftShoulder","rightShoulder","groupPressed","name","namedGroups","anyPressed","btns","i","button","allPressed","listener","_emitter","playVibration","duration","weakMagnitude","strongMagnitude","vibrationType","startDelay","vibration","vibrationActuator","playEffect","error","update","updatePresses","_axisIntents","_btnPrevState","lastActive","JSON","parse","stringify","defaultOptions","Object","keys","reduce","obj","key","Array","index","layout","detectLayout","gamepad","toLowerCase","test","leftJoystick","GamepadJoystick","rightJoystick","_throttleIdLeftStickX","_throttleIdLeftStickY","buttonCount","remapNintendoMode","pressed","isPressed","buttonCode","setTimeout","navigation","binds","leftStickX","axes","leftStickY","abs","joystickCommitSensitivity","xIntent","cooldownDuration","defaultCooldownMs","firstCooldownMs","yIntent","intensity","_owner","ix","iy","KeyCode","AltLeft","AltRight","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backquote","Backslash","Backspace","BracketLeft","BracketRight","CapsLock","Comma","ContextMenu","ControlLeft","ControlRight","Delete","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","End","Enter","Equal","Escape","F1","F10","F11","F12","F13","F14","F15","F16","F17","F18","F19","F2","F20","F21","F22","F23","F24","F25","F26","F27","F28","F29","F3","F30","F31","F32","F4","F5","F6","F7","F8","F9","Home","IntlBackslash","IntlRo","IntlYen","KeyA","KeyB","KeyC","KeyD","KeyE","KeyF","KeyG","KeyH","KeyI","KeyJ","KeyK","KeyL","KeyM","KeyN","KeyO","KeyP","KeyQ","KeyR","KeyS","KeyT","KeyU","KeyV","KeyW","KeyX","KeyY","KeyZ","Lang1","Lang2","MediaTrackNext","MediaTrackPrevious","MetaLeft","MetaRight","Minus","NumLock","Numpad0","Numpad1","Numpad2","Numpad3","Numpad4","Numpad5","Numpad6","Numpad7","Numpad8","Numpad9","NumpadAdd","NumpadComma","NumpadDecimal","NumpadDivide","NumpadMultiply","NumpadSubtract","OSLeft","Pause","Period","Quote","ScrollLock","Semicolon","ShiftLeft","ShiftRight","Slash","Space","Tab","VolumeDown","VolumeMute","VolumeUp","WakeUp","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","adopt","then","apply","SuppressedError","MACRO_AZERTY","MACRO_JCUKEN","MACRO_QWERTZ","JCUKEN_REGEX","xxERTx_REGEX","inferKeyboardLayoutFromLang","lang","getLang","n","navigator","languages","userLanguage","language","browserLanguage","tag","macro","split","startsWith","_possibleLayouts","Set","_labels","getMetaKeyLabel","platform","userAgent","KeyboardDevice","detectLayoutOnKeypress","detected","preventDefaultKeys","_layout","_layoutSource","requestKeyboardLayout","keyboard","getLayoutMap","layoutMap","q","z","err","layoutSource","_configureEventListeners","keyLabel","getLayoutLabel","QWERTY_LABELS","AZERTY_LABELS","assign","JCUKEN_LABELS","QWERTZ_LABELS","AZERTY","JCUKEN","QWERTY","QWERTZ","document","addEventListener","keyCode","code","has","preventDefault","detectKeyboardLayoutFromKeydown","delete","size","InputDeviceManager","gamepads","_gamepadDevices","devices","_devices","isMobile","check","vendor","substr","isTouchCapable","window","maxTouchPoints","hasFocus","clearInputInBackground","_gamepadDeviceMap","registerKeyboard","removeEventListener","pollGamepads","removeGamepad","add","remove","devicesIndex","indexOf","splice","getGamepads","raw","gamepadIndex","gamepadsIndex","InputDevice","registerPixiJSInputDeviceMixin","container","prototype","defineProperty","isInteractive","onEvents","configurable","enumerable"],"mappings":"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","x_google_ignoreList":[9]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/lib/devices/CustomDevice.ts","../src/lib/devices/gamepads/buttons.ts","../src/lib/navigation/Navigatable.ts","../src/lib/navigation/Navigation.ts","../src/lib/utils/throttle.ts","../src/lib/utils/events.ts","../src/lib/devices/GamepadDevice.ts","../src/lib/devices/gamepads/layouts.ts","../src/lib/devices/keyboard/keys.ts","../node_modules/tslib/tslib.es6.js","../src/lib/devices/keyboard/layouts.ts","../src/lib/devices/KeyboardDevice.ts","../src/lib/InputDevice.ts","../src/lib/utils/detectors.ts","../src/Container.mixin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null],"names":["CustomDevice","constructor","id","this","type","meta","lastUpdated","performance","now","clear","Axis","Button","A","B","X","Y","LeftShoulder","RightShoulder","LeftTrigger","RightTrigger","Back","Start","LeftStick","RightStick","DPadUp","DPadDown","DPadLeft","DPadRight","ButtonCode","getAllNavigatables","target","navigatables","child","children","isNavigatable","push","getFirstNavigatable","root","currentFocus","nearestDirection","minimumDistance","chooseFirstNavigatableInDirection","elements","filter","el","parent","isVisible","visible","focusedElement","find","undefined","sort","a","b","navigationPriority","fallbackElement","Math","floor","random","length","_a","focusedBounds","getBounds","focusedCenter","x","left","width","y","top","height","otherElements","map","bounds","center","element","distSqrd","squaredDist","_c","_b","_e","_d","_g","_f","_j","_h","dx","dy","NavigationManager","options","enabled","useFallbackHoverEffect","_responderStack","firstResponder","responders","commit","intent","device","_propagateIntent","popResponder","responder","shift","becameFirstResponder","resignedAsFirstResponder","pushResponder","includes","Error","previousResponder","unshift","call","handledNavigationIntent","stage","console","warn","_handleGlobalIntent","_focused","navigatable","debug","_emitFocus","_emitBlur","_emitTrigger","nextTarget","eventNames","emit","navigationMode","alpha","global","Navigation","_cooldowns","Map","throttle","cooldownMs","Date","get","set","EventEmitter","l","hasListener","e","payload","forEach","fn","on","event","off","GamepadDevice","leftTrigger","source","buttons","value","rightTrigger","leftShoulder","rightShoulder","groupPressed","name","namedGroups","anyPressed","btns","i","button","allPressed","listener","_emitter","onGroup","_groupEmitter","offGroup","playVibration","duration","weakMagnitude","strongMagnitude","vibrationType","startDelay","vibration","vibrationActuator","playEffect","error","update","updatePresses","_axisIntents","_btnPrevState","lastActive","JSON","parse","stringify","defaultOptions","Object","keys","reduce","obj","key","Array","index","layout","detectLayout","gamepad","toLowerCase","test","leftJoystick","GamepadJoystick","rightJoystick","_throttleIdLeftStickX","_throttleIdLeftStickY","buttonCount","remapNintendoMode","pressed","isPressed","buttonCode","setTimeout","navigation","binds","entries","groupName","leftStickX","axes","leftStickY","abs","joystickCommitSensitivity","xIntent","cooldownDuration","defaultCooldownMs","firstCooldownMs","yIntent","intensity","_owner","ix","iy","KeyCode","AltLeft","AltRight","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Backquote","Backslash","Backspace","BracketLeft","BracketRight","CapsLock","Comma","ContextMenu","ControlLeft","ControlRight","Delete","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","End","Enter","Equal","Escape","F1","F10","F11","F12","F13","F14","F15","F16","F17","F18","F19","F2","F20","F21","F22","F23","F24","F25","F26","F27","F28","F29","F3","F30","F31","F32","F4","F5","F6","F7","F8","F9","Home","IntlBackslash","IntlRo","IntlYen","KeyA","KeyB","KeyC","KeyD","KeyE","KeyF","KeyG","KeyH","KeyI","KeyJ","KeyK","KeyL","KeyM","KeyN","KeyO","KeyP","KeyQ","KeyR","KeyS","KeyT","KeyU","KeyV","KeyW","KeyX","KeyY","KeyZ","Lang1","Lang2","MediaTrackNext","MediaTrackPrevious","MetaLeft","MetaRight","Minus","NumLock","Numpad0","Numpad1","Numpad2","Numpad3","Numpad4","Numpad5","Numpad6","Numpad7","Numpad8","Numpad9","NumpadAdd","NumpadComma","NumpadDecimal","NumpadDivide","NumpadMultiply","NumpadSubtract","OSLeft","Pause","Period","Quote","ScrollLock","Semicolon","ShiftLeft","ShiftRight","Slash","Space","Tab","VolumeDown","VolumeMute","VolumeUp","WakeUp","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","adopt","then","apply","SuppressedError","MACRO_AZERTY","MACRO_JCUKEN","MACRO_QWERTZ","JCUKEN_REGEX","xxERTx_REGEX","inferKeyboardLayoutFromLang","lang","getLang","n","navigator","languages","userLanguage","language","browserLanguage","tag","macro","split","startsWith","_possibleLayouts","Set","_labels","getMetaKeyLabel","platform","userAgent","KeyboardDevice","detectLayoutOnKeypress","detected","_deferredKeydown","_layout","_layoutSource","requestKeyboardLayout","keyboard","getLayoutMap","layoutMap","q","z","err","layoutSource","_configureEventListeners","keyLabel","getLayoutLabel","QWERTY_LABELS","AZERTY_LABELS","assign","JCUKEN_LABELS","QWERTZ_LABELS","AZERTY","JCUKEN","QWERTY","QWERTZ","_processDeferredKeydownEvent","k","d","window","addEventListener","passive","capture","code","keyCode","detectKeyboardLayoutFromKeydown","delete","size","InputDeviceManager","isMobile","check","vendor","substr","isTouchCapable","maxTouchPoints","hasFocus","clearInputInBackground","_gamepadDevices","_gamepadDeviceMap","_customDevices","_devices","registerKeyboard","add","once","pollGamepads","removeGamepad","gamepads","devices","remove","customIndex","indexOf","splice","devicesIndex","document","custom","getGamepads","has","gamepadIndex","gamepadsIndex","InputDevice","registerPixiJSInputDeviceMixin","container","prototype","defineProperty","isInteractive","onEvents","configurable","enumerable"],"mappings":"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","x_google_ignoreList":[9]}
|