@codexo/exojs 0.7.12 → 0.8.0
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/CHANGELOG.md +737 -0
- package/dist/esm/core/Application.d.ts +3 -1
- package/dist/esm/core/Application.js +7 -6
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +30 -0
- package/dist/esm/core/Scene.js +56 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.js +2 -2
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.js +2 -2
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +1 -1
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/index.js +32 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.js +18 -19
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +164 -62
- package/dist/esm/input/Gamepad.js +290 -134
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.d.ts +120 -0
- package/dist/esm/input/GamepadAxis.js +106 -0
- package/dist/esm/input/GamepadAxis.js.map +1 -0
- package/dist/esm/input/GamepadButton.d.ts +110 -0
- package/dist/esm/input/GamepadButton.js +99 -0
- package/dist/esm/input/GamepadButton.js.map +1 -0
- package/dist/esm/input/GamepadDefinitions.js +4 -0
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +28 -24
- package/dist/esm/input/GamepadMapping.js +33 -16
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +10 -8
- package/dist/esm/input/GamepadPromptLayouts.js +21 -20
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +6 -3
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +55 -46
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/InputBinding.d.ts +74 -0
- package/dist/esm/input/InputBinding.js +100 -0
- package/dist/esm/input/InputBinding.js.map +1 -0
- package/dist/esm/input/InputManager.d.ts +79 -33
- package/dist/esm/input/InputManager.js +229 -104
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +1 -1
- package/dist/esm/input/InteractionManager.js +13 -13
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +14 -9
- package/dist/esm/input/JoyConLeftGamepadMapping.js +39 -9
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +14 -9
- package/dist/esm/input/JoyConRightGamepadMapping.js +35 -9
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +84 -71
- package/dist/esm/input/Pointer.js +71 -71
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamDeckGamepadMapping.d.ts +18 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js +76 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -0
- package/dist/esm/input/index.d.ts +7 -4
- package/dist/esm/input/types.d.ts +0 -76
- package/dist/esm/input/types.js +1 -80
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/particles/ParticleSystem.d.ts +180 -83
- package/dist/esm/particles/ParticleSystem.js +446 -133
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/distributions/BoxArea.d.ts +17 -0
- package/dist/esm/particles/distributions/BoxArea.js +48 -0
- package/dist/esm/particles/distributions/BoxArea.js.map +1 -0
- package/dist/esm/particles/distributions/CircleArea.d.ts +19 -0
- package/dist/esm/particles/distributions/CircleArea.js +33 -0
- package/dist/esm/particles/distributions/CircleArea.js.map +1 -0
- package/dist/esm/particles/distributions/ConeDirection.d.ts +28 -0
- package/dist/esm/particles/distributions/ConeDirection.js +44 -0
- package/dist/esm/particles/distributions/ConeDirection.js.map +1 -0
- package/dist/esm/particles/distributions/Constant.d.ts +17 -0
- package/dist/esm/particles/distributions/Constant.js +35 -0
- package/dist/esm/particles/distributions/Constant.js.map +1 -0
- package/dist/esm/particles/distributions/Curve.d.ts +30 -0
- package/dist/esm/particles/distributions/Curve.js +53 -0
- package/dist/esm/particles/distributions/Curve.js.map +1 -0
- package/dist/esm/particles/distributions/Distribution.d.ts +45 -0
- package/dist/esm/particles/distributions/Gradient.d.ts +40 -0
- package/dist/esm/particles/distributions/Gradient.js +72 -0
- package/dist/esm/particles/distributions/Gradient.js.map +1 -0
- package/dist/esm/particles/distributions/LineSegment.d.ts +15 -0
- package/dist/esm/particles/distributions/LineSegment.js +27 -0
- package/dist/esm/particles/distributions/LineSegment.js.map +1 -0
- package/dist/esm/particles/distributions/Range.d.ts +12 -0
- package/dist/esm/particles/distributions/Range.js +19 -0
- package/dist/esm/particles/distributions/Range.js.map +1 -0
- package/dist/esm/particles/distributions/VectorRange.d.ts +20 -0
- package/dist/esm/particles/distributions/VectorRange.js +31 -0
- package/dist/esm/particles/distributions/VectorRange.js.map +1 -0
- package/dist/esm/particles/distributions/index.d.ts +12 -0
- package/dist/esm/particles/gpu/ParticleGpuState.d.ts +57 -0
- package/dist/esm/particles/gpu/ParticleGpuState.js +508 -0
- package/dist/esm/particles/gpu/ParticleGpuState.js.map +1 -0
- package/dist/esm/particles/index.d.ts +2 -10
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +24 -0
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +60 -0
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/ApplyForce.d.ts +20 -0
- package/dist/esm/particles/modules/ApplyForce.js +48 -0
- package/dist/esm/particles/modules/ApplyForce.js.map +1 -0
- package/dist/esm/particles/modules/AttractToPoint.d.ts +27 -0
- package/dist/esm/particles/modules/AttractToPoint.js +73 -0
- package/dist/esm/particles/modules/AttractToPoint.js.map +1 -0
- package/dist/esm/particles/modules/BurstSpawn.d.ts +53 -0
- package/dist/esm/particles/modules/BurstSpawn.js +94 -0
- package/dist/esm/particles/modules/BurstSpawn.js.map +1 -0
- package/dist/esm/particles/modules/ColorOverLifetime.d.ts +22 -0
- package/dist/esm/particles/modules/ColorOverLifetime.js +65 -0
- package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/ColorOverSpeed.d.ts +27 -0
- package/dist/esm/particles/modules/ColorOverSpeed.js +86 -0
- package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -0
- package/dist/esm/particles/modules/DeathModule.d.ts +24 -0
- package/dist/esm/particles/modules/DeathModule.js +25 -0
- package/dist/esm/particles/modules/DeathModule.js.map +1 -0
- package/dist/esm/particles/modules/Drag.d.ts +20 -0
- package/dist/esm/particles/modules/Drag.js +45 -0
- package/dist/esm/particles/modules/Drag.js.map +1 -0
- package/dist/esm/particles/modules/OrbitalForce.d.ts +28 -0
- package/dist/esm/particles/modules/OrbitalForce.js +65 -0
- package/dist/esm/particles/modules/OrbitalForce.js.map +1 -0
- package/dist/esm/particles/modules/RateSpawn.d.ts +41 -0
- package/dist/esm/particles/modules/RateSpawn.js +76 -0
- package/dist/esm/particles/modules/RateSpawn.js.map +1 -0
- package/dist/esm/particles/modules/RepelFromPoint.d.ts +24 -0
- package/dist/esm/particles/modules/RepelFromPoint.js +76 -0
- package/dist/esm/particles/modules/RepelFromPoint.js.map +1 -0
- package/dist/esm/particles/modules/RotateOverLifetime.d.ts +20 -0
- package/dist/esm/particles/modules/RotateOverLifetime.js +43 -0
- package/dist/esm/particles/modules/RotateOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +26 -0
- package/dist/esm/particles/modules/ScaleOverLifetime.js +59 -0
- package/dist/esm/particles/modules/ScaleOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/SpawnModule.d.ts +30 -0
- package/dist/esm/particles/modules/SpawnModule.js +31 -0
- package/dist/esm/particles/modules/SpawnModule.js.map +1 -0
- package/dist/esm/particles/modules/SpawnOnDeath.d.ts +24 -0
- package/dist/esm/particles/modules/SpawnOnDeath.js +47 -0
- package/dist/esm/particles/modules/SpawnOnDeath.js.map +1 -0
- package/dist/esm/particles/modules/Turbulence.d.ts +30 -0
- package/dist/esm/particles/modules/Turbulence.js +122 -0
- package/dist/esm/particles/modules/Turbulence.js.map +1 -0
- package/dist/esm/particles/modules/UpdateModule.d.ts +95 -0
- package/dist/esm/particles/modules/UpdateModule.js +66 -0
- package/dist/esm/particles/modules/UpdateModule.js.map +1 -0
- package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +30 -0
- package/dist/esm/particles/modules/VelocityOverLifetime.js +84 -0
- package/dist/esm/particles/modules/VelocityOverLifetime.js.map +1 -0
- package/dist/esm/particles/modules/WgslContribution.d.ts +81 -0
- package/dist/esm/particles/modules/WgslContribution.js +34 -0
- package/dist/esm/particles/modules/WgslContribution.js.map +1 -0
- package/dist/esm/particles/modules/index.d.ts +22 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +9 -14
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +90 -61
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +9 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +107 -23
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +52 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +29 -0
- package/dist/esm/rendering/webgpu/compute/index.d.ts +3 -0
- package/dist/esm/resources/CacheFirstStrategy.d.ts +7 -4
- package/dist/esm/resources/CacheFirstStrategy.js +11 -8
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStrategy.d.ts +14 -6
- package/dist/esm/resources/Loader.d.ts +8 -3
- package/dist/esm/resources/Loader.js +19 -37
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +3 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +8 -3
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +2 -2
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +2 -2
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +3 -3
- package/dist/esm/resources/factories/VttFactory.js +83 -6
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/exo.esm.js +4028 -1518
- package/dist/exo.esm.js.map +1 -1
- package/package.json +2 -1
- package/dist/esm/input/GamepadChannels.d.ts +0 -47
- package/dist/esm/input/GamepadChannels.js +0 -53
- package/dist/esm/input/GamepadChannels.js.map +0 -1
- package/dist/esm/input/GamepadControl.d.ts +0 -33
- package/dist/esm/input/GamepadControl.js +0 -42
- package/dist/esm/input/GamepadControl.js.map +0 -1
- package/dist/esm/input/Input.d.ts +0 -52
- package/dist/esm/input/Input.js +0 -90
- package/dist/esm/input/Input.js.map +0 -1
- package/dist/esm/particles/Particle.d.ts +0 -77
- package/dist/esm/particles/Particle.js +0 -143
- package/dist/esm/particles/Particle.js.map +0 -1
- package/dist/esm/particles/ParticleProperties.d.ts +0 -29
- package/dist/esm/particles/affectors/ColorAffector.d.ts +0 -30
- package/dist/esm/particles/affectors/ColorAffector.js +0 -55
- package/dist/esm/particles/affectors/ColorAffector.js.map +0 -1
- package/dist/esm/particles/affectors/ForceAffector.d.ts +0 -24
- package/dist/esm/particles/affectors/ForceAffector.js +0 -39
- package/dist/esm/particles/affectors/ForceAffector.js.map +0 -1
- package/dist/esm/particles/affectors/ParticleAffector.d.ts +0 -19
- package/dist/esm/particles/affectors/ScaleAffector.d.ts +0 -23
- package/dist/esm/particles/affectors/ScaleAffector.js +0 -38
- package/dist/esm/particles/affectors/ScaleAffector.js.map +0 -1
- package/dist/esm/particles/affectors/TorqueAffector.d.ts +0 -23
- package/dist/esm/particles/affectors/TorqueAffector.js +0 -37
- package/dist/esm/particles/affectors/TorqueAffector.js.map +0 -1
- package/dist/esm/particles/emitters/ParticleEmitter.d.ts +0 -19
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +0 -62
- package/dist/esm/particles/emitters/ParticleOptions.js +0 -120
- package/dist/esm/particles/emitters/ParticleOptions.js.map +0 -1
- package/dist/esm/particles/emitters/UniversalEmitter.d.ts +0 -40
- package/dist/esm/particles/emitters/UniversalEmitter.js +0 -68
- package/dist/esm/particles/emitters/UniversalEmitter.js.map +0 -1
|
@@ -7,8 +7,10 @@ import { ChannelSize, maxPointers, ChannelOffset } from './types.js';
|
|
|
7
7
|
import { Gamepad } from './Gamepad.js';
|
|
8
8
|
import { PointerState, Pointer, PointerStateFlag } from './Pointer.js';
|
|
9
9
|
import { GestureRecognizer } from './GestureRecognizer.js';
|
|
10
|
+
import { InputBinding } from './InputBinding.js';
|
|
10
11
|
import { builtInGamepadDefinitions, resolveGamepadDefinition } from './GamepadDefinitions.js';
|
|
11
12
|
|
|
13
|
+
const gamepadSlots = 4;
|
|
12
14
|
var InputManagerFlag;
|
|
13
15
|
(function (InputManagerFlag) {
|
|
14
16
|
InputManagerFlag[InputManagerFlag["None"] = 0] = "None";
|
|
@@ -25,10 +27,11 @@ var InputManagerFlag;
|
|
|
25
27
|
* rotate / long-press).
|
|
26
28
|
*
|
|
27
29
|
* All raw inputs are written into a shared `Float32Array` channel buffer.
|
|
28
|
-
* Bind {@link
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
30
|
+
* Bind input listeners via the {@link onTrigger} / {@link onActive} /
|
|
31
|
+
* {@link onStart} / {@link onStop} factory methods (or via
|
|
32
|
+
* {@link Gamepad.onTrigger}-style methods on individual pads), or
|
|
33
|
+
* subscribe to the signal-style notifications
|
|
34
|
+
* (`onKeyDown`, `onPointerDown`, `onGamepadConnected`, `onAnyGamepadButtonDown`, …).
|
|
32
35
|
*
|
|
33
36
|
* Driven each frame by {@link Application.update}; constructed
|
|
34
37
|
* automatically — you do not instantiate this class yourself.
|
|
@@ -36,18 +39,19 @@ var InputManagerFlag;
|
|
|
36
39
|
class InputManager {
|
|
37
40
|
canvas;
|
|
38
41
|
channels = new Float32Array(ChannelSize.Container);
|
|
39
|
-
inputs = new Set();
|
|
40
42
|
pointers = {};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
_gamepads;
|
|
44
|
+
gamepadsByBrowserIndex = new Map();
|
|
45
|
+
bindings = new Set();
|
|
46
|
+
bindingDetacher = { detach: (binding) => { this.bindings.delete(binding); } };
|
|
44
47
|
wheelOffset = new Vector();
|
|
45
48
|
flags = new Flags();
|
|
46
49
|
channelsPressed = [];
|
|
47
50
|
channelsReleased = [];
|
|
48
51
|
gamepadDefinitions;
|
|
52
|
+
slotStrategy;
|
|
49
53
|
// Slot allocation for unified pointer tracking (mouse / touch / pen).
|
|
50
|
-
pointerSlots = new Map();
|
|
54
|
+
pointerSlots = new Map();
|
|
51
55
|
freeSlots = Array.from({ length: maxPointers }, (_, i) => i);
|
|
52
56
|
gestureRecognizer;
|
|
53
57
|
canvasFocusedValue;
|
|
@@ -76,9 +80,22 @@ class InputManager {
|
|
|
76
80
|
onMouseWheel = new Signal();
|
|
77
81
|
onKeyDown = new Signal();
|
|
78
82
|
onKeyUp = new Signal();
|
|
83
|
+
/** Fires when a physical pad connects to any slot. */
|
|
79
84
|
onGamepadConnected = new Signal();
|
|
85
|
+
/** Fires when a physical pad disconnects from any slot. */
|
|
80
86
|
onGamepadDisconnected = new Signal();
|
|
81
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Fires when a `'compact'`-strategy disconnect shifts a higher-numbered
|
|
89
|
+
* slot's pad into a lower one. Dispatched once per moved pad with the
|
|
90
|
+
* destination slot and the slot index it came from.
|
|
91
|
+
*/
|
|
92
|
+
onAnyGamepadReassigned = new Signal();
|
|
93
|
+
/** Fires whenever any pad reports a button press transition. */
|
|
94
|
+
onAnyGamepadButtonDown = new Signal();
|
|
95
|
+
/** Fires whenever any pad reports a button release transition. */
|
|
96
|
+
onAnyGamepadButtonUp = new Signal();
|
|
97
|
+
/** Fires whenever any pad reports an axis value change. */
|
|
98
|
+
onAnyGamepadAxisChange = new Signal();
|
|
82
99
|
/** Fires on every two-touch-pointer move where the distance between them changed. `scale` > 1 = spreading, < 1 = pinching. */
|
|
83
100
|
onPinch = new Signal();
|
|
84
101
|
/** Fires on every two-touch-pointer move where the angle between them changed. `angleDelta` is in radians. */
|
|
@@ -86,16 +103,25 @@ class InputManager {
|
|
|
86
103
|
/** Fires when a pointer has been held without significant movement for ≥ 500 ms. */
|
|
87
104
|
onLongPress = new Signal();
|
|
88
105
|
constructor(app) {
|
|
89
|
-
const { gamepadDefinitions = [], pointerDistanceThreshold } = app.options;
|
|
106
|
+
const { gamepadDefinitions = [], pointerDistanceThreshold, gamepadSlotStrategy = 'sticky', } = app.options;
|
|
90
107
|
this.canvas = app.canvas;
|
|
91
108
|
this.canvasFocusedValue = document.activeElement === this.canvas;
|
|
92
109
|
this.pointerDistanceThreshold = pointerDistanceThreshold;
|
|
93
110
|
this.gamepadDefinitions = [...gamepadDefinitions, ...builtInGamepadDefinitions];
|
|
111
|
+
this.slotStrategy = gamepadSlotStrategy;
|
|
94
112
|
// Disable the browser's default pan/zoom/double-tap-zoom on touch devices so
|
|
95
113
|
// pointer events reach the canvas without being swallowed by the browser's
|
|
96
114
|
// native touch gestures.
|
|
97
115
|
this.canvas.style.touchAction = 'none';
|
|
98
116
|
this.gestureRecognizer = new GestureRecognizer(pointerDistanceThreshold, this.onPinch, this.onRotate, this.onLongPress);
|
|
117
|
+
const slot0 = new Gamepad(0, this.channels);
|
|
118
|
+
const slot1 = new Gamepad(1, this.channels);
|
|
119
|
+
const slot2 = new Gamepad(2, this.channels);
|
|
120
|
+
const slot3 = new Gamepad(3, this.channels);
|
|
121
|
+
this._gamepads = [slot0, slot1, slot2, slot3];
|
|
122
|
+
for (const pad of this._gamepads) {
|
|
123
|
+
this.wireGamepadEvents(pad);
|
|
124
|
+
}
|
|
99
125
|
this.addEventListeners();
|
|
100
126
|
}
|
|
101
127
|
/**
|
|
@@ -109,7 +135,6 @@ class InputManager {
|
|
|
109
135
|
return { x: pointer.x, y: pointer.y };
|
|
110
136
|
}
|
|
111
137
|
}
|
|
112
|
-
// Fall back to first non-cancelled pointer.
|
|
113
138
|
for (const pointer of Object.values(this.pointers)) {
|
|
114
139
|
if (pointer.currentState !== PointerState.Cancelled) {
|
|
115
140
|
return { x: pointer.x, y: pointer.y };
|
|
@@ -124,58 +149,103 @@ class InputManager {
|
|
|
124
149
|
get canvasFocused() {
|
|
125
150
|
return this.canvasFocusedValue;
|
|
126
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Always-4 array of {@link Gamepad} slot mailboxes. Each entry exists for
|
|
154
|
+
* the application's full lifetime; check `pad.connected` for hardware
|
|
155
|
+
* presence. Listeners attached to a slot survive disconnect/reconnect.
|
|
156
|
+
*/
|
|
127
157
|
get gamepads() {
|
|
128
|
-
return this.
|
|
158
|
+
return this._gamepads;
|
|
129
159
|
}
|
|
130
|
-
|
|
131
|
-
|
|
160
|
+
/** The slot strategy active for this `InputManager`. */
|
|
161
|
+
get gamepadSlotStrategy() {
|
|
162
|
+
return this.slotStrategy;
|
|
132
163
|
}
|
|
133
164
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* inputs; chainable.
|
|
165
|
+
* Direct accessor for a single gamepad slot. Equivalent to
|
|
166
|
+
* `app.input.gamepads[slot]` but reads more clearly at call sites.
|
|
137
167
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
168
|
+
getGamepad(slot) {
|
|
169
|
+
return this._gamepads[slot];
|
|
170
|
+
}
|
|
171
|
+
/** Subset of {@link gamepads} containing only currently connected pads, in slot order. */
|
|
172
|
+
get connectedGamepads() {
|
|
173
|
+
const result = [];
|
|
174
|
+
for (const pad of this._gamepads) {
|
|
175
|
+
if (pad.connected) {
|
|
176
|
+
result.push(pad);
|
|
177
|
+
}
|
|
142
178
|
}
|
|
143
|
-
|
|
144
|
-
return this;
|
|
179
|
+
return result;
|
|
145
180
|
}
|
|
146
|
-
/**
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
181
|
+
/** Number of slots currently occupied by a physical gamepad. */
|
|
182
|
+
get connectedGamepadCount() {
|
|
183
|
+
let count = 0;
|
|
184
|
+
for (const pad of this._gamepads) {
|
|
185
|
+
if (pad.connected) {
|
|
186
|
+
count++;
|
|
187
|
+
}
|
|
151
188
|
}
|
|
152
|
-
|
|
153
|
-
return this;
|
|
189
|
+
return count;
|
|
154
190
|
}
|
|
155
|
-
/**
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
clear(destroyInputs = false) {
|
|
161
|
-
if (destroyInputs) {
|
|
162
|
-
for (const input of this.inputs) {
|
|
163
|
-
input.destroy();
|
|
191
|
+
/** First connected gamepad in slot order, or `null` when no pads are attached. */
|
|
192
|
+
get firstConnectedGamepad() {
|
|
193
|
+
for (const pad of this._gamepads) {
|
|
194
|
+
if (pad.connected) {
|
|
195
|
+
return pad;
|
|
164
196
|
}
|
|
165
197
|
}
|
|
166
|
-
|
|
167
|
-
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
/** `true` when at least one slot is occupied by a physical gamepad. */
|
|
201
|
+
get hasGamepad() {
|
|
202
|
+
for (const pad of this._gamepads) {
|
|
203
|
+
if (pad.connected) {
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Register a callback fired once when any of `channels` becomes active.
|
|
211
|
+
* Manual lifecycle — call `.unbind()` on the returned binding to detach.
|
|
212
|
+
*/
|
|
213
|
+
onStart(channel, callback, options) {
|
|
214
|
+
const binding = this.createBinding(channel, options);
|
|
215
|
+
binding.onStart.add(callback);
|
|
216
|
+
return binding;
|
|
217
|
+
}
|
|
218
|
+
/** Register a callback fired every frame while any of `channels` is active. */
|
|
219
|
+
onActive(channel, callback, options) {
|
|
220
|
+
const binding = this.createBinding(channel, options);
|
|
221
|
+
binding.onActive.add(callback);
|
|
222
|
+
return binding;
|
|
223
|
+
}
|
|
224
|
+
/** Register a callback fired once when all of `channels` become inactive. */
|
|
225
|
+
onStop(channel, callback, options) {
|
|
226
|
+
const binding = this.createBinding(channel, options);
|
|
227
|
+
binding.onStop.add(callback);
|
|
228
|
+
return binding;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Register a callback fired when the input is released within
|
|
232
|
+
* {@link InputBindingOptions.threshold} ms of activation (a "tap").
|
|
233
|
+
*/
|
|
234
|
+
onTrigger(channel, callback, options) {
|
|
235
|
+
const binding = this.createBinding(channel, options);
|
|
236
|
+
binding.onTrigger.add(callback);
|
|
237
|
+
return binding;
|
|
168
238
|
}
|
|
169
239
|
/**
|
|
170
240
|
* Per-frame entry point invoked by {@link Application.update}. Polls
|
|
171
241
|
* the gamepad API, drains queued keyboard/pointer/wheel deltas into
|
|
172
242
|
* the channel buffer, fires the corresponding Signals, then evaluates
|
|
173
|
-
* each registered
|
|
243
|
+
* each registered binding.
|
|
174
244
|
*/
|
|
175
245
|
update() {
|
|
176
246
|
this.updateGamepads();
|
|
177
|
-
for (const
|
|
178
|
-
|
|
247
|
+
for (const binding of this.bindings) {
|
|
248
|
+
binding.update(this.channels);
|
|
179
249
|
}
|
|
180
250
|
if (this.flags.value !== InputManagerFlag.None) {
|
|
181
251
|
this.updateEvents();
|
|
@@ -188,12 +258,14 @@ class InputManager {
|
|
|
188
258
|
for (const pointer of Object.values(this.pointers)) {
|
|
189
259
|
pointer.destroy();
|
|
190
260
|
}
|
|
191
|
-
for (const
|
|
192
|
-
|
|
261
|
+
for (const pad of this._gamepads) {
|
|
262
|
+
pad.destroy();
|
|
263
|
+
}
|
|
264
|
+
for (const binding of Array.from(this.bindings)) {
|
|
265
|
+
binding.unbind();
|
|
193
266
|
}
|
|
194
|
-
this.
|
|
195
|
-
this.
|
|
196
|
-
this.gamepadsValue.length = 0;
|
|
267
|
+
this.bindings.clear();
|
|
268
|
+
this.gamepadsByBrowserIndex.clear();
|
|
197
269
|
this.channelsPressed.length = 0;
|
|
198
270
|
this.channelsReleased.length = 0;
|
|
199
271
|
this.pointerSlots.clear();
|
|
@@ -213,18 +285,40 @@ class InputManager {
|
|
|
213
285
|
this.onKeyUp.destroy();
|
|
214
286
|
this.onGamepadConnected.destroy();
|
|
215
287
|
this.onGamepadDisconnected.destroy();
|
|
216
|
-
this.
|
|
288
|
+
this.onAnyGamepadReassigned.destroy();
|
|
289
|
+
this.onAnyGamepadButtonDown.destroy();
|
|
290
|
+
this.onAnyGamepadButtonUp.destroy();
|
|
291
|
+
this.onAnyGamepadAxisChange.destroy();
|
|
217
292
|
this.onPinch.destroy();
|
|
218
293
|
this.onRotate.destroy();
|
|
219
294
|
this.onLongPress.destroy();
|
|
220
295
|
this.onCanvasFocusChange.destroy();
|
|
221
296
|
}
|
|
297
|
+
createBinding(channel, options = {}) {
|
|
298
|
+
const list = Array.isArray(channel) ? channel : [channel];
|
|
299
|
+
const slot = options.gamepadSlot ?? 0;
|
|
300
|
+
const resolved = list.map((c) => this.resolveExternalChannel(c, slot));
|
|
301
|
+
const binding = new InputBinding(resolved, options, this.bindingDetacher);
|
|
302
|
+
this.bindings.add(binding);
|
|
303
|
+
return binding;
|
|
304
|
+
}
|
|
305
|
+
resolveExternalChannel(channel, slot) {
|
|
306
|
+
if (channel >= ChannelOffset.Gamepads && channel < ChannelOffset.Gamepads + ChannelSize.Category) {
|
|
307
|
+
return ChannelOffset.Gamepads + (slot * ChannelSize.Gamepad) + (channel ^ ChannelOffset.Gamepads);
|
|
308
|
+
}
|
|
309
|
+
return channel;
|
|
310
|
+
}
|
|
311
|
+
wireGamepadEvents(pad) {
|
|
312
|
+
pad.onButtonDown.add((button, value) => { this.onAnyGamepadButtonDown.dispatch(pad, button, value); });
|
|
313
|
+
pad.onButtonUp.add((button, value) => { this.onAnyGamepadButtonUp.dispatch(pad, button, value); });
|
|
314
|
+
pad.onAxisChange.add((axis, value) => { this.onAnyGamepadAxisChange.dispatch(pad, axis, value); });
|
|
315
|
+
}
|
|
222
316
|
_assignSlot(pointerId) {
|
|
223
317
|
if (this.pointerSlots.has(pointerId)) {
|
|
224
318
|
return this.pointerSlots.get(pointerId);
|
|
225
319
|
}
|
|
226
320
|
if (this.freeSlots.length === 0) {
|
|
227
|
-
return null;
|
|
321
|
+
return null;
|
|
228
322
|
}
|
|
229
323
|
const slot = this.freeSlots.shift();
|
|
230
324
|
this.pointerSlots.set(pointerId, slot);
|
|
@@ -234,14 +328,10 @@ class InputManager {
|
|
|
234
328
|
const slot = this.pointerSlots.get(pointerId);
|
|
235
329
|
if (slot !== undefined) {
|
|
236
330
|
this.pointerSlots.delete(pointerId);
|
|
237
|
-
// Push to the front so slot 0 is recovered first, keeping allocation predictable.
|
|
238
331
|
this.freeSlots.unshift(slot);
|
|
239
332
|
}
|
|
240
333
|
}
|
|
241
334
|
handleKeyDown(event) {
|
|
242
|
-
// Game-engine convention: keys only register while the canvas
|
|
243
|
-
// owns focus. Otherwise typing into adjacent <input> fields would
|
|
244
|
-
// also drive game state, which is never what users want.
|
|
245
335
|
if (!this.canvasFocusedValue) {
|
|
246
336
|
return;
|
|
247
337
|
}
|
|
@@ -249,9 +339,6 @@ class InputManager {
|
|
|
249
339
|
this.channels[channel] = 1;
|
|
250
340
|
this.channelsPressed.push(channel);
|
|
251
341
|
this.flags.push(InputManagerFlag.KeyDown);
|
|
252
|
-
// Consume the event: stop default browser actions (page scroll on
|
|
253
|
-
// arrow/space, find-as-you-type on /, etc.) and stop propagation
|
|
254
|
-
// so other listeners on the page don't double-handle.
|
|
255
342
|
stopEvent(event);
|
|
256
343
|
}
|
|
257
344
|
handleKeyUp(event) {
|
|
@@ -267,7 +354,7 @@ class InputManager {
|
|
|
267
354
|
handlePointerOver(event) {
|
|
268
355
|
const slot = this._assignSlot(event.pointerId);
|
|
269
356
|
if (slot === null) {
|
|
270
|
-
return;
|
|
357
|
+
return;
|
|
271
358
|
}
|
|
272
359
|
this.pointers[event.pointerId] = new Pointer(event, this.canvas, this.channels, slot);
|
|
273
360
|
this.flags.push(InputManagerFlag.PointerUpdate);
|
|
@@ -292,10 +379,6 @@ class InputManager {
|
|
|
292
379
|
pointer.handlePress(event);
|
|
293
380
|
this.gestureRecognizer.onPointerDown(pointer);
|
|
294
381
|
this.flags.push(InputManagerFlag.PointerUpdate);
|
|
295
|
-
// preventDefault stops native drag / text-selection;
|
|
296
|
-
// stopImmediatePropagation prevents bubbling to host-page click
|
|
297
|
-
// handlers so an embedded canvas doesn't accidentally trigger UI
|
|
298
|
-
// outside its bounds.
|
|
299
382
|
stopEvent(event);
|
|
300
383
|
}
|
|
301
384
|
handlePointerMove(event) {
|
|
@@ -355,13 +438,6 @@ class InputManager {
|
|
|
355
438
|
this.onCanvasFocusChange.dispatch(false);
|
|
356
439
|
}
|
|
357
440
|
}
|
|
358
|
-
/**
|
|
359
|
-
* Force every currently-held keyboard channel back to zero and emit
|
|
360
|
-
* onKeyUp for each. Called on canvas/window blur so keys held when
|
|
361
|
-
* focus leaves don't stay stuck "down" forever — without this, a user
|
|
362
|
-
* who alt-tabs while pressing W would have W register as held until
|
|
363
|
-
* they manually release while focus is back.
|
|
364
|
-
*/
|
|
365
441
|
releaseAllKeyboardChannels() {
|
|
366
442
|
for (let offset = 0; offset < ChannelSize.Category; offset++) {
|
|
367
443
|
const channel = ChannelOffset.Keyboard + offset;
|
|
@@ -410,49 +486,98 @@ class InputManager {
|
|
|
410
486
|
this.canvas.removeEventListener('selectstart', stopEvent, activeListenerOption);
|
|
411
487
|
}
|
|
412
488
|
updateGamepads() {
|
|
413
|
-
const
|
|
414
|
-
|
|
415
|
-
for (const
|
|
416
|
-
if (!
|
|
489
|
+
const browserGamepads = window.navigator.getGamepads();
|
|
490
|
+
const seenBrowserIndices = new Set();
|
|
491
|
+
for (const browserGamepad of browserGamepads) {
|
|
492
|
+
if (!browserGamepad) {
|
|
417
493
|
continue;
|
|
418
494
|
}
|
|
419
|
-
const
|
|
420
|
-
if (
|
|
495
|
+
const browserIndex = browserGamepad.index;
|
|
496
|
+
if (browserIndex < 0) {
|
|
421
497
|
continue;
|
|
422
498
|
}
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
if (
|
|
426
|
-
const
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
this.
|
|
431
|
-
|
|
432
|
-
else {
|
|
433
|
-
gamepad.connect(activeGamepad);
|
|
499
|
+
seenBrowserIndices.add(browserIndex);
|
|
500
|
+
const existing = this.gamepadsByBrowserIndex.get(browserIndex);
|
|
501
|
+
if (existing === undefined) {
|
|
502
|
+
const pad = this.assignSlotForNewPad(browserGamepad);
|
|
503
|
+
if (pad === null) {
|
|
504
|
+
continue;
|
|
505
|
+
}
|
|
506
|
+
this.gamepadsByBrowserIndex.set(browserIndex, pad);
|
|
507
|
+
this.onGamepadConnected.dispatch(pad);
|
|
434
508
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
if (this.gamepadSlotsActive[gamepad.index] === 0) {
|
|
441
|
-
gamepad.disconnect();
|
|
442
|
-
this.gamepadsValue.splice(index, 1);
|
|
443
|
-
this.gamepadsByIndex.delete(gamepad.index);
|
|
444
|
-
this.onGamepadDisconnected.dispatch(gamepad, this.gamepadsValue);
|
|
445
|
-
gamepad.destroy();
|
|
509
|
+
}
|
|
510
|
+
for (const [browserIndex, pad] of Array.from(this.gamepadsByBrowserIndex.entries())) {
|
|
511
|
+
if (!seenBrowserIndices.has(browserIndex)) {
|
|
512
|
+
this.gamepadsByBrowserIndex.delete(browserIndex);
|
|
513
|
+
this.handleGamepadDisconnect(pad);
|
|
446
514
|
}
|
|
447
515
|
}
|
|
516
|
+
for (const pad of this._gamepads) {
|
|
517
|
+
pad.update();
|
|
518
|
+
}
|
|
448
519
|
return this;
|
|
449
520
|
}
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
521
|
+
assignSlotForNewPad(browserGamepad) {
|
|
522
|
+
const definition = resolveGamepadDefinition(browserGamepad, this.gamepadDefinitions);
|
|
523
|
+
for (const pad of this._gamepads) {
|
|
524
|
+
if (!pad.connected) {
|
|
525
|
+
pad._bind(browserGamepad, definition);
|
|
526
|
+
return pad;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
return null;
|
|
530
|
+
}
|
|
531
|
+
handleGamepadDisconnect(pad) {
|
|
532
|
+
if (this.slotStrategy !== 'compact') {
|
|
533
|
+
// Sticky: pad's slot becomes empty in place; fire onDisconnect
|
|
534
|
+
// on that slot directly.
|
|
535
|
+
pad._unbind();
|
|
536
|
+
this.onGamepadDisconnected.dispatch(pad);
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
// Compact: in semantic terms the user lost a player, and the trailing
|
|
540
|
+
// (highest-numbered) occupied slot is the one that becomes empty.
|
|
541
|
+
// 1. Snapshot the highest occupied slot before any state change.
|
|
542
|
+
// 2. Silently vacate the disconnecting pad (no onDisconnect yet).
|
|
543
|
+
// 3. Shift higher-numbered occupied slots down to fill any gaps,
|
|
544
|
+
// firing onPadReassigned for each slot that received a new pad.
|
|
545
|
+
// 4. Fire onDisconnect on the slot that ended up empty (the one
|
|
546
|
+
// snapshotted in step 1).
|
|
547
|
+
let lastOccupiedSlot = -1;
|
|
548
|
+
for (let i = gamepadSlots - 1; i >= 0; i--) {
|
|
549
|
+
if (this._gamepads[i].connected) {
|
|
550
|
+
lastOccupiedSlot = i;
|
|
551
|
+
break;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
pad._silentUnbind();
|
|
555
|
+
for (let target = 0; target < gamepadSlots; target++) {
|
|
556
|
+
if (this._gamepads[target].connected) {
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
559
|
+
for (let source = target + 1; source < gamepadSlots; source++) {
|
|
560
|
+
const sourcePad = this._gamepads[source];
|
|
561
|
+
if (!sourcePad.connected) {
|
|
562
|
+
continue;
|
|
563
|
+
}
|
|
564
|
+
const browserIndex = sourcePad.browserGamepad?.index;
|
|
565
|
+
const targetPad = this._gamepads[target];
|
|
566
|
+
const sourceSlot = sourcePad.slot;
|
|
567
|
+
targetPad._rebindFrom(sourcePad);
|
|
568
|
+
if (browserIndex !== undefined) {
|
|
569
|
+
this.gamepadsByBrowserIndex.set(browserIndex, targetPad);
|
|
570
|
+
}
|
|
571
|
+
targetPad.onPadReassigned.dispatch(sourceSlot);
|
|
572
|
+
this.onAnyGamepadReassigned.dispatch(targetPad, sourceSlot);
|
|
573
|
+
break;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
if (lastOccupiedSlot >= 0) {
|
|
577
|
+
const emptiedSlot = this._gamepads[lastOccupiedSlot];
|
|
578
|
+
emptiedSlot._dispatchDisconnect();
|
|
579
|
+
this.onGamepadDisconnected.dispatch(emptiedSlot);
|
|
454
580
|
}
|
|
455
|
-
this.gamepadsValue.splice(insertIndex, 0, gamepad);
|
|
456
581
|
}
|
|
457
582
|
updateEvents() {
|
|
458
583
|
if (this.flags.pop(InputManagerFlag.KeyDown)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputManager.js","sources":["../../../../src/input/InputManager.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAgBA,IAAK,gBAMJ;AAND,CAAA,UAAK,gBAAgB,EAAA;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAgB;AAChB,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAc;AACd,IAAA,gBAAA,CAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,gBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAsB;AAC1B,CAAC,EANI,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AAQrB;;;;;;;;;;;;;;;AAeG;MACU,YAAY,CAAA;AACJ,IAAA,MAAM;IACN,QAAQ,GAAiB,IAAI,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC;AAChE,IAAA,MAAM,GAAG,IAAI,GAAG,EAAS;IACzB,QAAQ,GAA4B,EAAE;IACtC,aAAa,GAAmB,EAAE;AAClC,IAAA,eAAe,GAAG,IAAI,GAAG,EAAmB;AAC5C,IAAA,kBAAkB,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;AAC/E,IAAA,WAAW,GAAG,IAAI,MAAM,EAAE;AAC1B,IAAA,KAAK,GAAG,IAAI,KAAK,EAAoB;IACrC,eAAe,GAAkB,EAAE;IACnC,gBAAgB,GAAkB,EAAE;AACpC,IAAA,kBAAkB;;AAGlB,IAAA,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,SAAS,GAAkB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAE3E,IAAA,iBAAiB;AAE1B,IAAA,kBAAkB;AAClB,IAAA,wBAAwB;IAEf,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1C,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACtD,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;IACpD,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;IACpD,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;IACpD,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACtD,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;IACxD,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACtD,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACtD,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;IAClD,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAE3D,IAAA,mBAAmB,GAAG,IAAI,MAAM,EAAsB;AACtD,IAAA,cAAc,GAAG,IAAI,MAAM,EAAa;AACxC,IAAA,cAAc,GAAG,IAAI,MAAM,EAAa;AACxC,IAAA,aAAa,GAAG,IAAI,MAAM,EAAa;AACvC,IAAA,aAAa,GAAG,IAAI,MAAM,EAAa;AACvC,IAAA,WAAW,GAAG,IAAI,MAAM,EAAa;AACrC,IAAA,YAAY,GAAG,IAAI,MAAM,EAAa;AACtC,IAAA,cAAc,GAAG,IAAI,MAAM,EAAa;AACxC,IAAA,eAAe,GAAG,IAAI,MAAM,EAAa;AACzC,IAAA,YAAY,GAAG,IAAI,MAAM,EAAY;AACrC,IAAA,SAAS,GAAG,IAAI,MAAM,EAAY;AAClC,IAAA,OAAO,GAAG,IAAI,MAAM,EAAY;AAChC,IAAA,kBAAkB,GAAG,IAAI,MAAM,EAA6B;AAC5D,IAAA,qBAAqB,GAAG,IAAI,MAAM,EAA6B;AAC/D,IAAA,gBAAgB,GAAG,IAAI,MAAM,EAA6B;;AAG1D,IAAA,OAAO,GAAG,IAAI,MAAM,EAAmC;;AAEvD,IAAA,QAAQ,GAAG,IAAI,MAAM,EAAwC;;AAE7D,IAAA,WAAW,GAAG,IAAI,MAAM,EAAsB;AAE9D,IAAA,WAAA,CAAmB,GAAgB,EAAA;QAC/B,MAAM,EAAE,kBAAkB,GAAG,EAAE,EAAE,wBAAwB,EAAE,GAAG,GAAG,CAAC,OAAO;AAEzE,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;QACxB,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM;AAChE,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;QACxD,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,kBAAkB,EAAE,GAAG,yBAAyB,CAAC;;;;QAK/E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM;QAEtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC1C,wBAAwB,EACxB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,CACnB;QAED,IAAI,CAAC,iBAAiB,EAAE;IAC5B;AAEA;;;;AAIG;IACI,yBAAyB,GAAA;AAC5B,QAAA,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAChD,YAAA,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY,CAAC,SAAS,EAAE;AACtE,gBAAA,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE;YACzC;QACJ;;AAGA,QAAA,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChD,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY,CAAC,SAAS,EAAE;AACjD,gBAAA,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE;YACzC;QACJ;AAEA,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,IAAW,gBAAgB,GAAA;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,MAC7C,OAAO,CAAC,YAAY,KAAK,YAAY,CAAC;eACnC,OAAO,CAAC,YAAY,KAAK,YAAY,CAAC,SAAS,CACrD,CAAC;IACN;AAEA,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,kBAAkB;IAClC;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC7B;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;IAClD;AAEA;;;;AAIG;AACI,IAAA,GAAG,CAAC,MAA4B,EAAA;AACnC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACvB,YAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAE1C,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAEvB,QAAA,OAAO,IAAI;IACf;;AAGO,IAAA,MAAM,CAAC,MAA4B,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACvB,YAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE7C,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AAE1B,QAAA,OAAO,IAAI;IACf;AAEA;;;;AAIG;IACI,KAAK,CAAC,aAAa,GAAG,KAAK,EAAA;QAC9B,IAAI,aAAa,EAAE;AACf,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC7B,KAAK,CAAC,OAAO,EAAE;YACnB;QACJ;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAEnB,QAAA,OAAO,IAAI;IACf;AAEA;;;;;AAKG;IACI,MAAM,GAAA;QACT,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AAC7B,YAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B;QAEA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,gBAAgB,CAAC,IAAI,EAAE;YAC5C,IAAI,CAAC,YAAY,EAAE;QACvB;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;AAEhC,QAAA,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChD,OAAO,CAAC,OAAO,EAAE;QACrB;AAEA,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE;YACtC,OAAO,CAAC,OAAO,EAAE;QACrB;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAEpB,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACjC,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;AACpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;IACtC;AAEQ,IAAA,WAAW,CAAC,SAAiB,EAAA;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAE;QAC5C;QAEA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;QAChB;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAG;QAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;AAEtC,QAAA,OAAO,IAAI;IACf;AAEQ,IAAA,YAAY,CAAC,SAAiB,EAAA;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AAE7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;;AAEnC,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QAChC;IACJ;AAEQ,IAAA,aAAa,CAAC,KAAoB,EAAA;;;;AAItC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B;QACJ;QAEA,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO;AAEtD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;;;;QAKzC,SAAS,CAAC,KAAK,CAAC;IACpB;AAEQ,IAAA,WAAW,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B;QACJ;QAEA,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO;AAEtD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAEvC,SAAS,CAAC,KAAK,CAAC;IACpB;AAEQ,IAAA,iBAAiB,CAAC,KAAmB,EAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;AAE9C,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,YAAA,OAAO;QACX;QAEA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;QACrF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACnD;AAEQ,IAAA,kBAAkB,CAAC,KAAmB,EAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE;YACV;QACJ;AAEA,QAAA,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACnD;AAEQ,IAAA,iBAAiB,CAAC,KAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE;YACV;QACJ;AAEA,QAAA,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;;;;;QAM/C,SAAS,CAAC,KAAK,CAAC;IACpB;AAEQ,IAAA,iBAAiB,CAAC,KAAmB,EAAA;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE;YACV;QACJ;AAEA,QAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACnD;AAEQ,IAAA,eAAe,CAAC,KAAmB,EAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE;YACV;QACJ;AAEA,QAAA,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAE/C,SAAS,CAAC,KAAK,CAAC;IACpB;AAEQ,IAAA,mBAAmB,CAAC,KAAmB,EAAA;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE;YACV;QACJ;AAEA,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACnD;AAEQ,IAAA,gBAAgB,CAAC,KAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B;QACJ;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;QAE5C,SAAS,CAAC,KAAK,CAAC;IACpB;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC3C;IACJ;IAEQ,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;YAC/B,IAAI,CAAC,0BAA0B,EAAE;AACjC,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5C;IACJ;IAEQ,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;YAC/B,IAAI,CAAC,0BAA0B,EAAE;AACjC,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5C;IACJ;AAEA;;;;;;AAMG;IACK,0BAA0B,GAAA;AAC9B,QAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;AAC1D,YAAA,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,GAAG,MAAM;YAE/C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3C;QACJ;IACJ;IAEQ,iBAAiB,GAAA;QACrB,MAAM,YAAY,GAAG,MAAM;QAC3B,MAAM,oBAAoB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9D,MAAM,qBAAqB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QAE9D,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;QACnE,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;QAC/D,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;AACnE,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACpE,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;AAClE,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;AACnF,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AAC3F,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;AAC7F,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;AAC1F,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AAC3F,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;AACtF,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;QAC/F,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,oBAAoB,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,oBAAoB,CAAC;IAChF;IAEQ,oBAAoB,GAAA;QACxB,MAAM,oBAAoB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9D,MAAM,qBAAqB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QAE9D,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;QAChE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;QAC5D,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;AAChE,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACvE,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;AACrE,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;AACtF,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AAC9F,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;AAChG,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;AAC7F,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AAC9F,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;AACzF,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;QAClG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,oBAAoB,CAAC;QAC/E,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,oBAAoB,CAAC;IACnF;IAEQ,cAAc,GAAA;QAClB,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;AAErD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAE/B,QAAA,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YACxC,IAAI,CAAC,aAAa,EAAE;gBAChB;YACJ;AAEA,YAAA,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK;AAEvC,YAAA,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBAClE;YACJ;AAEA,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC;YAExC,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;YAEnD,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,UAAU,GAAG,wBAAwB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAEnF,gBAAA,OAAO,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC/D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;AAC9C,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;YACjE;iBAAO;AACH,gBAAA,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;YAClC;YAEA,OAAO,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;QAC/D;AAEA,QAAA,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAEzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC9C,OAAO,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC1C,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;gBAChE,OAAO,CAAC,OAAO,EAAE;YACrB;QACJ;AAEA,QAAA,OAAO,IAAI;IACf;AAEQ,IAAA,oBAAoB,CAAC,OAAgB,EAAA;QACzC,IAAI,WAAW,GAAG,CAAC;QAEnB,OAAO,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE;YACrG,WAAW,IAAI,CAAC;QACpB;QAEA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC;IACtD;IAEQ,YAAY,GAAA;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE;AACxC,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpC;AAEA,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACnC;QAEA,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzC,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClC;AAEA,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACpC;QAEA,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YAC7C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B;QAEA,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE;YAChD,IAAI,CAAC,mBAAmB,EAAE;QAC9B;AAEA,QAAA,OAAO,IAAI;IACf;IAEQ,mBAAmB,GAAA;AACvB,QAAA,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAChD,YAAA,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO;YAE9B,IAAI,UAAU,CAAC,KAAK,KAAK,gBAAgB,CAAC,IAAI,EAAE;gBAC5C;YACJ;YAEA,IAAI,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzC;YAEA,IAAI,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxC;YAEA,IAAI,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxC;YAEA,IAAI,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;AACrC,gBAAA,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ;AAEjD,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAElC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AAC5B,oBAAA,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE;AACnF,wBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACvC;yBAAO;AACH,wBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACzC;gBACJ;gBAEA,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;YAChC;YAEA,IAAI,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;AACzC,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1C;YAEA,IAAI,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC;QACJ;IACJ;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"InputManager.js","sources":["../../../../src/input/InputManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ export declare class InteractionManager {
|
|
|
81
81
|
/**
|
|
82
82
|
* Process all pending pointer events accumulated since the last frame.
|
|
83
83
|
* Must be called once per frame from {@link Application.update}, after
|
|
84
|
-
* `
|
|
84
|
+
* `input.update()` has run (so signals are already dispatched and
|
|
85
85
|
* queued here) and before game-state updates so that user listeners on
|
|
86
86
|
* `onPointerDown` etc. fire before per-frame logic mutates state.
|
|
87
87
|
*
|
|
@@ -75,12 +75,12 @@ class InteractionManager {
|
|
|
75
75
|
this._onPointerTapHandler = this._handlePointerTap.bind(this);
|
|
76
76
|
this._onPointerCancelHandler = this._handlePointerCancel.bind(this);
|
|
77
77
|
this._onPointerLeaveHandler = this._handlePointerLeave.bind(this);
|
|
78
|
-
app.
|
|
79
|
-
app.
|
|
80
|
-
app.
|
|
81
|
-
app.
|
|
82
|
-
app.
|
|
83
|
-
app.
|
|
78
|
+
app.input.onPointerDown.add(this._onPointerDownHandler);
|
|
79
|
+
app.input.onPointerMove.add(this._onPointerMoveHandler);
|
|
80
|
+
app.input.onPointerUp.add(this._onPointerUpHandler);
|
|
81
|
+
app.input.onPointerTap.add(this._onPointerTapHandler);
|
|
82
|
+
app.input.onPointerCancel.add(this._onPointerCancelHandler);
|
|
83
|
+
app.input.onPointerLeave.add(this._onPointerLeaveHandler);
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Returns the RenderNode currently hovered by the given pointer, or null.
|
|
@@ -124,12 +124,12 @@ class InteractionManager {
|
|
|
124
124
|
return this._quadtree;
|
|
125
125
|
}
|
|
126
126
|
destroy() {
|
|
127
|
-
this._app.
|
|
128
|
-
this._app.
|
|
129
|
-
this._app.
|
|
130
|
-
this._app.
|
|
131
|
-
this._app.
|
|
132
|
-
this._app.
|
|
127
|
+
this._app.input.onPointerDown.remove(this._onPointerDownHandler);
|
|
128
|
+
this._app.input.onPointerMove.remove(this._onPointerMoveHandler);
|
|
129
|
+
this._app.input.onPointerUp.remove(this._onPointerUpHandler);
|
|
130
|
+
this._app.input.onPointerTap.remove(this._onPointerTapHandler);
|
|
131
|
+
this._app.input.onPointerCancel.remove(this._onPointerCancelHandler);
|
|
132
|
+
this._app.input.onPointerLeave.remove(this._onPointerLeaveHandler);
|
|
133
133
|
this._lastHit.clear();
|
|
134
134
|
this._pending.clear();
|
|
135
135
|
this._capturedPointers.clear();
|
|
@@ -147,7 +147,7 @@ class InteractionManager {
|
|
|
147
147
|
/**
|
|
148
148
|
* Process all pending pointer events accumulated since the last frame.
|
|
149
149
|
* Must be called once per frame from {@link Application.update}, after
|
|
150
|
-
* `
|
|
150
|
+
* `input.update()` has run (so signals are already dispatched and
|
|
151
151
|
* queued here) and before game-state updates so that user listeners on
|
|
152
152
|
* `onPointerDown` etc. fire before per-frame logic mutates state.
|
|
153
153
|
*
|