cereb 1.0.0 → 2.0.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/README.md +38 -77
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/exports/frp.d.ts +21 -0
- package/dist/exports/frp.d.ts.map +1 -0
- package/dist/exports/geometry.d.ts +2 -0
- package/dist/exports/geometry.d.ts.map +1 -0
- package/dist/exports/operators.d.ts +2 -0
- package/dist/exports/operators.d.ts.map +1 -0
- package/dist/features/dom/dom-signal.d.ts +6 -0
- package/dist/features/dom/dom-signal.d.ts.map +1 -0
- package/dist/features/dom/dom.d.ts +19 -0
- package/dist/features/dom/dom.d.ts.map +1 -0
- package/dist/features/dom/index.d.ts +5 -0
- package/dist/features/dom/index.d.ts.map +1 -0
- package/dist/features/dom/mouse.d.ts +4 -0
- package/dist/features/dom/mouse.d.ts.map +1 -0
- package/dist/features/dom/pointer.d.ts +4 -0
- package/dist/features/dom/pointer.d.ts.map +1 -0
- package/dist/features/dom/touch.d.ts +4 -0
- package/dist/features/dom/touch.d.ts.map +1 -0
- package/dist/features/index.d.ts +6 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/keyboard/index.d.ts.map +1 -0
- package/dist/features/keyboard/key-code.d.ts.map +1 -0
- package/dist/features/keyboard/keyboard-signal.d.ts.map +1 -0
- package/dist/features/keyboard/keyboard.d.ts.map +1 -0
- package/dist/features/keyboard/keydown.d.ts.map +1 -0
- package/dist/features/keyboard/keyheld.d.ts.map +1 -0
- package/dist/features/keyboard/shared.d.ts.map +1 -0
- package/dist/features/multi-pointers/default-factory.d.ts +5 -0
- package/dist/features/multi-pointers/default-factory.d.ts.map +1 -0
- package/dist/features/multi-pointers/index.d.ts +5 -0
- package/dist/features/multi-pointers/index.d.ts.map +1 -0
- package/dist/{browser/multi-pointer/multi-pointer-signal.d.ts → features/multi-pointers/multi-pointers-signal.d.ts} +10 -10
- package/dist/features/multi-pointers/multi-pointers-signal.d.ts.map +1 -0
- package/dist/features/multi-pointers/recognizer-from-pointer.d.ts +8 -0
- package/dist/features/multi-pointers/recognizer-from-pointer.d.ts.map +1 -0
- package/dist/{browser/multi-pointer → features/multi-pointers}/recognizer.d.ts +5 -5
- package/dist/features/multi-pointers/recognizer.d.ts.map +1 -0
- package/dist/{browser/multi-pointer → features/multi-pointers}/types.d.ts +1 -1
- package/dist/features/multi-pointers/types.d.ts.map +1 -0
- package/dist/features/pan/geometry.d.ts +10 -0
- package/dist/features/pan/geometry.d.ts.map +1 -0
- package/dist/features/pan/index.d.ts +5 -0
- package/dist/features/pan/index.d.ts.map +1 -0
- package/dist/features/pan/pan-signal.d.ts +29 -0
- package/dist/features/pan/pan-signal.d.ts.map +1 -0
- package/dist/features/pan/pan-types.d.ts +42 -0
- package/dist/features/pan/pan-types.d.ts.map +1 -0
- package/dist/features/pan/pan.d.ts +32 -0
- package/dist/features/pan/pan.d.ts.map +1 -0
- package/dist/features/pan/recognizer.d.ts +38 -0
- package/dist/features/pan/recognizer.d.ts.map +1 -0
- package/dist/features/pan/state.d.ts +29 -0
- package/dist/features/pan/state.d.ts.map +1 -0
- package/dist/features/pinch/geometry.d.ts +23 -0
- package/dist/features/pinch/geometry.d.ts.map +1 -0
- package/dist/features/pinch/index.d.ts +5 -0
- package/dist/features/pinch/index.d.ts.map +1 -0
- package/dist/features/pinch/pinch-signal.d.ts +30 -0
- package/dist/features/pinch/pinch-signal.d.ts.map +1 -0
- package/dist/features/pinch/pinch-types.d.ts +39 -0
- package/dist/features/pinch/pinch-types.d.ts.map +1 -0
- package/dist/features/pinch/pinch.d.ts +37 -0
- package/dist/features/pinch/pinch.d.ts.map +1 -0
- package/dist/features/pinch/recognizer.d.ts +38 -0
- package/dist/features/pinch/recognizer.d.ts.map +1 -0
- package/dist/features/pinch/state.d.ts +27 -0
- package/dist/features/pinch/state.d.ts.map +1 -0
- package/dist/features/single-pointer/default-factory.d.ts.map +1 -0
- package/dist/features/single-pointer/index.d.ts.map +1 -0
- package/dist/features/single-pointer/mouse.d.ts.map +1 -0
- package/dist/features/single-pointer/pointer.d.ts.map +1 -0
- package/dist/{browser → features}/single-pointer/recognizer-from-mouse.d.ts +3 -3
- package/dist/features/single-pointer/recognizer-from-mouse.d.ts.map +1 -0
- package/dist/{browser → features}/single-pointer/recognizer-from-pointer.d.ts +3 -3
- package/dist/features/single-pointer/recognizer-from-pointer.d.ts.map +1 -0
- package/dist/{browser → features}/single-pointer/recognizer-from-touch.d.ts +3 -3
- package/dist/features/single-pointer/recognizer-from-touch.d.ts.map +1 -0
- package/dist/features/single-pointer/recognizer.d.ts.map +1 -0
- package/dist/features/single-pointer/single-pointer-signal.d.ts.map +1 -0
- package/dist/features/single-pointer/touch.d.ts.map +1 -0
- package/dist/features/single-pointer/types.d.ts.map +1 -0
- package/dist/features/tap/geometry.d.ts +5 -0
- package/dist/features/tap/geometry.d.ts.map +1 -0
- package/dist/features/tap/index.d.ts +5 -0
- package/dist/features/tap/index.d.ts.map +1 -0
- package/dist/features/tap/recognizer.d.ts +36 -0
- package/dist/features/tap/recognizer.d.ts.map +1 -0
- package/dist/features/tap/state.d.ts +31 -0
- package/dist/features/tap/state.d.ts.map +1 -0
- package/dist/features/tap/tap-signal.d.ts +30 -0
- package/dist/features/tap/tap-signal.d.ts.map +1 -0
- package/dist/features/tap/tap-types.d.ts +40 -0
- package/dist/features/tap/tap-types.d.ts.map +1 -0
- package/dist/features/tap/tap.d.ts +62 -0
- package/dist/features/tap/tap.d.ts.map +1 -0
- package/dist/features/wheel/index.d.ts.map +1 -0
- package/dist/features/wheel/wheel-signal.d.ts.map +1 -0
- package/dist/features/wheel/wheel.d.ts.map +1 -0
- package/dist/frp.d.ts +2 -21
- package/dist/geometry.cjs +2 -0
- package/dist/geometry.cjs.map +1 -0
- package/dist/geometry.d.ts +2 -0
- package/dist/geometry.js +91 -0
- package/dist/geometry.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +786 -327
- package/dist/index.js.map +1 -1
- package/dist/operators/axis-lock.d.ts +30 -0
- package/dist/operators/axis-lock.d.ts.map +1 -0
- package/dist/operators/index.d.ts +4 -1
- package/dist/operators/index.d.ts.map +1 -1
- package/dist/operators/offset.d.ts +3 -3
- package/dist/operators/offset.d.ts.map +1 -1
- package/dist/operators/session.d.ts +3 -3
- package/dist/operators/session.d.ts.map +1 -1
- package/dist/operators.cjs +1 -1
- package/dist/operators.cjs.map +1 -1
- package/dist/operators.d.ts +2 -2
- package/dist/operators.js +250 -261
- package/dist/operators.js.map +1 -1
- package/dist/session-3LQtJeLu.cjs +2 -0
- package/dist/session-3LQtJeLu.cjs.map +1 -0
- package/dist/session-Ds5wg-LW.js +150 -0
- package/dist/session-Ds5wg-LW.js.map +1 -0
- package/package.json +4 -4
- package/dist/browser/dom-event/dom-event-signal.d.ts +0 -6
- package/dist/browser/dom-event/dom-event-signal.d.ts.map +0 -1
- package/dist/browser/dom-event/dom-event.d.ts +0 -19
- package/dist/browser/dom-event/dom-event.d.ts.map +0 -1
- package/dist/browser/dom-event/index.d.ts +0 -5
- package/dist/browser/dom-event/index.d.ts.map +0 -1
- package/dist/browser/dom-event/mouse-events.d.ts +0 -4
- package/dist/browser/dom-event/mouse-events.d.ts.map +0 -1
- package/dist/browser/dom-event/pointer-events.d.ts +0 -4
- package/dist/browser/dom-event/pointer-events.d.ts.map +0 -1
- package/dist/browser/dom-event/touch-events.d.ts +0 -4
- package/dist/browser/dom-event/touch-events.d.ts.map +0 -1
- package/dist/browser/index.d.ts +0 -6
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/keyboard/index.d.ts.map +0 -1
- package/dist/browser/keyboard/key-code.d.ts.map +0 -1
- package/dist/browser/keyboard/keyboard-signal.d.ts.map +0 -1
- package/dist/browser/keyboard/keyboard.d.ts.map +0 -1
- package/dist/browser/keyboard/keydown.d.ts.map +0 -1
- package/dist/browser/keyboard/keyheld.d.ts.map +0 -1
- package/dist/browser/keyboard/shared.d.ts.map +0 -1
- package/dist/browser/multi-pointer/default-factory.d.ts +0 -5
- package/dist/browser/multi-pointer/default-factory.d.ts.map +0 -1
- package/dist/browser/multi-pointer/index.d.ts +0 -5
- package/dist/browser/multi-pointer/index.d.ts.map +0 -1
- package/dist/browser/multi-pointer/multi-pointer-signal.d.ts.map +0 -1
- package/dist/browser/multi-pointer/recognizer-from-pointer.d.ts +0 -8
- package/dist/browser/multi-pointer/recognizer-from-pointer.d.ts.map +0 -1
- package/dist/browser/multi-pointer/recognizer.d.ts.map +0 -1
- package/dist/browser/multi-pointer/types.d.ts.map +0 -1
- package/dist/browser/single-pointer/default-factory.d.ts.map +0 -1
- package/dist/browser/single-pointer/index.d.ts.map +0 -1
- package/dist/browser/single-pointer/mouse.d.ts.map +0 -1
- package/dist/browser/single-pointer/pointer.d.ts.map +0 -1
- package/dist/browser/single-pointer/recognizer-from-mouse.d.ts.map +0 -1
- package/dist/browser/single-pointer/recognizer-from-pointer.d.ts.map +0 -1
- package/dist/browser/single-pointer/recognizer-from-touch.d.ts.map +0 -1
- package/dist/browser/single-pointer/recognizer.d.ts.map +0 -1
- package/dist/browser/single-pointer/single-pointer-signal.d.ts.map +0 -1
- package/dist/browser/single-pointer/touch.d.ts.map +0 -1
- package/dist/browser/single-pointer/types.d.ts.map +0 -1
- package/dist/browser/wheel/index.d.ts.map +0 -1
- package/dist/browser/wheel/wheel-signal.d.ts.map +0 -1
- package/dist/browser/wheel/wheel.d.ts.map +0 -1
- package/dist/frp.d.ts.map +0 -1
- package/dist/operators.d.ts.map +0 -1
- package/dist/recognizer-3x1IWMaJ.cjs +0 -2
- package/dist/recognizer-3x1IWMaJ.cjs.map +0 -1
- package/dist/recognizer-wJJrCf-d.js +0 -38
- package/dist/recognizer-wJJrCf-d.js.map +0 -1
- package/dist/share-BEu5SsOX.js +0 -97
- package/dist/share-BEu5SsOX.js.map +0 -1
- package/dist/share-vzh9f3Jn.cjs +0 -2
- package/dist/share-vzh9f3Jn.cjs.map +0 -1
- package/dist/single-pointer/mouse.cjs +0 -2
- package/dist/single-pointer/mouse.cjs.map +0 -1
- package/dist/single-pointer/mouse.d.ts +0 -2
- package/dist/single-pointer/mouse.js +0 -46
- package/dist/single-pointer/mouse.js.map +0 -1
- package/dist/single-pointer/pointer.cjs +0 -2
- package/dist/single-pointer/pointer.cjs.map +0 -1
- package/dist/single-pointer/pointer.d.ts +0 -2
- package/dist/single-pointer/pointer.js +0 -63
- package/dist/single-pointer/pointer.js.map +0 -1
- package/dist/single-pointer/touch.cjs +0 -2
- package/dist/single-pointer/touch.cjs.map +0 -1
- package/dist/single-pointer/touch.d.ts +0 -2
- package/dist/single-pointer/touch.js +0 -50
- package/dist/single-pointer/touch.js.map +0 -1
- package/dist/types-BGR5Mhw9.cjs +0 -2
- package/dist/types-BGR5Mhw9.cjs.map +0 -1
- package/dist/types-Ccnqx90M.js +0 -22
- package/dist/types-Ccnqx90M.js.map +0 -1
- /package/dist/{browser → features}/keyboard/index.d.ts +0 -0
- /package/dist/{browser → features}/keyboard/key-code.d.ts +0 -0
- /package/dist/{browser → features}/keyboard/keyboard-signal.d.ts +0 -0
- /package/dist/{browser → features}/keyboard/keyboard.d.ts +0 -0
- /package/dist/{browser → features}/keyboard/keydown.d.ts +0 -0
- /package/dist/{browser → features}/keyboard/keyheld.d.ts +0 -0
- /package/dist/{browser → features}/keyboard/shared.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/default-factory.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/index.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/mouse.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/pointer.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/recognizer.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/single-pointer-signal.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/touch.d.ts +0 -0
- /package/dist/{browser → features}/single-pointer/types.d.ts +0 -0
- /package/dist/{browser → features}/wheel/index.d.ts +0 -0
- /package/dist/{browser → features}/wheel/wheel-signal.d.ts +0 -0
- /package/dist/{browser → features}/wheel/wheel.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,60 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
<h1 align="center"><img width="50" height="50" alt="Cereb logo" src="https://cereb.dev/logo-square-light.svg" /><br/>Cereb</h1>
|
|
2
|
+
<h3 align="center">An open source interaction library<br />for composable gesture and event streams</h3>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://www.npmjs.com/package/cereb" rel="noopener noreferrer nofollow" ><img src="https://img.shields.io/npm/v/cereb?color=0368FF&label=version" alt="npm version"></a>
|
|
5
|
+
<img alt="NPM License" src="https://img.shields.io/npm/l/cereb?color=FF2B6E">
|
|
6
|
+
</p>
|
|
5
7
|
|
|
6
8
|
```bash
|
|
7
9
|
npm install --save cereb
|
|
8
10
|
```
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## Getting started
|
|
13
|
-
|
|
14
|
-
The example below moves an element by tracking pointer position:
|
|
15
|
-
|
|
16
|
-
```typescript
|
|
17
|
-
import { singlePointer } from "cereb";
|
|
18
|
-
|
|
19
|
-
// Create a stream from pointer events
|
|
20
|
-
singlePointer(canvas)
|
|
21
|
-
// Listen to stream events
|
|
22
|
-
.on((signal) => {
|
|
23
|
-
// Receive signals from the stream
|
|
24
|
-
const { phase, cursor } = signal.value;
|
|
25
|
-
const [x, y] = cursor;
|
|
26
|
-
switch (phase){
|
|
27
|
-
case "move":
|
|
28
|
-
element.style.transform = `translate(${x}px, ${y}px)`;
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
<br>
|
|
35
|
-
|
|
36
|
-
## High-level gestures packages
|
|
12
|
+
[Learn how to use Cereb in your project](https://cereb.dev).
|
|
37
13
|
|
|
38
|
-
|
|
14
|
+
## Table of Contents
|
|
39
15
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
16
|
+
1. [Why Cereb?](#why-cereb)
|
|
17
|
+
2. [Examples](#examples)
|
|
18
|
+
3. [Documentation](#documentation)
|
|
19
|
+
4. [License](#license)
|
|
20
|
+
5. [Contributing](#contributing)
|
|
44
21
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
npm install --save cereb @cereb/pinch
|
|
49
|
-
```
|
|
22
|
+
## Examples
|
|
50
23
|
|
|
51
24
|
```typescript
|
|
25
|
+
import { pinch } from "cereb";
|
|
52
26
|
import { zoom } from "cereb/operators";
|
|
53
|
-
import { pinch } from "@cereb/pinch";
|
|
54
27
|
|
|
28
|
+
// pipe creates a pipeline where signals flow through operators
|
|
29
|
+
// Each operator extends the signal (signals are immutable)
|
|
55
30
|
pinch(element)
|
|
56
|
-
|
|
57
|
-
.on((signal) => {
|
|
31
|
+
// Operator: Determine scale value.
|
|
32
|
+
.pipe(zoom({ minScale: 0.5, maxScale: 3.0 })).on((signal) => {
|
|
58
33
|
// The scale property is extended from the value.
|
|
59
34
|
// - pinch emits distance → zoom calculates scale
|
|
60
35
|
// - zoom also works with other inputs (keyboard, wheel, etc.)
|
|
@@ -62,50 +37,36 @@ pinch(element)
|
|
|
62
37
|
});
|
|
63
38
|
```
|
|
64
39
|
|
|
65
|
-
|
|
40
|
+
[See all Examples and Demo →](https://cereb.dev/examples/space-adventure)
|
|
66
41
|
|
|
67
|
-
##
|
|
68
|
-
|
|
69
|
-
### Stream API
|
|
70
|
-
|
|
71
|
-
Create streams from various input sources:
|
|
72
|
-
|
|
73
|
-
| API | Description |
|
|
74
|
-
|-----|-------------|
|
|
75
|
-
| [pan](https://cereb.dev/stream-api/pan) | Pan gesture with velocity and direction |
|
|
76
|
-
| [pinch](https://cereb.dev/stream-api/pinch) | Pinch gesture with distance and center |
|
|
77
|
-
| [singlePointer](https://cereb.dev/stream-api/single-pointer) | Unified pointer (mouse/touch/pen) |
|
|
78
|
-
| [multiPointer](https://cereb.dev/stream-api/multi-pointer) | Multi-touch tracking |
|
|
79
|
-
| [keyboard](https://cereb.dev/stream-api/keyboard) | Keyboard events (keydown + keyup) |
|
|
80
|
-
| [keydown](https://cereb.dev/stream-api/keydown) | Keydown events only |
|
|
81
|
-
| [keyheld](https://cereb.dev/stream-api/keyheld) | Track if a key is held |
|
|
82
|
-
| [wheel](https://cereb.dev/stream-api/wheel) | Wheel/scroll events |
|
|
83
|
-
| [domEvent](https://cereb.dev/stream-api/dom-event) | Any DOM event |
|
|
84
|
-
|
|
85
|
-
### Operator API
|
|
86
|
-
|
|
87
|
-
Transform and compose streams with operators like `filter`, `map`, `merge`, `throttle`, `debounce`, and more.
|
|
42
|
+
## Why Cereb?
|
|
88
43
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<br>
|
|
92
|
-
|
|
93
|
-
## The Problems Cereb Solves
|
|
94
|
-
|
|
95
|
-
- **Spaghetti Event Code** — Scattered handlers, shared mutable state, duplicated logic
|
|
44
|
+
- **No Abstraction for Event Flow** — DOM events lack structure for state, dependencies, and composition
|
|
96
45
|
- **Lightweight Bundle** — ~77% smaller than Hammer.js (1.73 KB gzipped for pan gesture)
|
|
97
46
|
- **Resource Efficiency** — Event listener reuse, single-responsibility operators
|
|
98
47
|
|
|
99
48
|
[See detailed examples →](https://cereb.dev/core-concepts/the-problem-solves)
|
|
100
49
|
|
|
101
|
-
|
|
50
|
+
## Documentation
|
|
51
|
+
|
|
52
|
+
You can find the Cereb documentation [on the website](https://cereb.dev).
|
|
53
|
+
|
|
54
|
+
- **Core Concepts**
|
|
55
|
+
- [Key Models](https://cereb.dev/core-concepts/key-models/)
|
|
56
|
+
- [Behavior & Event](https://cereb.dev/core-concepts/behavior-and-event/)
|
|
57
|
+
- [Creating Operators](https://cereb.dev/core-concepts/creating-operators/)
|
|
58
|
+
- [High-Order Operators](https://cereb.dev/core-concepts/higher-order-operators/)
|
|
59
|
+
- [The Problem Solves](https://cereb.dev/core-concepts/the-problem-solves/)
|
|
60
|
+
- **API Reference**
|
|
61
|
+
- [Stream](https://cereb.dev/stream-api/pan/)
|
|
62
|
+
- [Operators](https://cereb.dev/operator-api/compose/)
|
|
102
63
|
|
|
103
64
|
## Contributing
|
|
104
65
|
|
|
105
|
-
|
|
66
|
+
If you find Cereb useful, consider giving it a star — it helps others discover the project!
|
|
106
67
|
|
|
107
|
-
|
|
68
|
+
Contributions are welcome! Please read our [Contributing Guide](https://github.com/devphilip21/cereb/blob/main/CONTRIBUTING.md) before submitting a Pull Request.
|
|
108
69
|
|
|
109
70
|
## License
|
|
110
71
|
|
|
111
|
-
MIT
|
|
72
|
+
Cereb is [MIT licensed](https://github.com/devphilip21/cereb/blob/main/LICENSE).
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { setCerebDeviceId } from './meta.js';
|
|
2
|
-
export { createSignal, type ExtendSignalValue, type Signal } from './signal.js';
|
|
2
|
+
export { createSignal, type ExtendSignalValue, type Signal, type SignalWith } from './signal.js';
|
|
3
3
|
export { createStream, type Observer, type Operator, type Stream, type Unsubscribe, } from './stream.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FRP (Functional Reactive Programming) module for Cereb.
|
|
3
|
+
*
|
|
4
|
+
* This module introduces the classic FRP concepts:
|
|
5
|
+
* - Behavior: Continuous time-varying values (always has a current value)
|
|
6
|
+
* - Event: Discrete occurrences (alias for Stream)
|
|
7
|
+
*
|
|
8
|
+
* Key differences from Stream:
|
|
9
|
+
* - Behavior.sample() - Get current value anytime
|
|
10
|
+
* - Behavior.onChange() - Subscribe to value changes
|
|
11
|
+
* - Behavior.dispose() - Clean up resources
|
|
12
|
+
*
|
|
13
|
+
* Use cases:
|
|
14
|
+
* - Animation frames that need current position/scale/rotation
|
|
15
|
+
* - VR headset tracking with continuous position sampling
|
|
16
|
+
* - Combining multiple input sources into a unified transform
|
|
17
|
+
*
|
|
18
|
+
* @module cereb/frp
|
|
19
|
+
*/
|
|
20
|
+
export * from '../frp/index.js';
|
|
21
|
+
//# sourceMappingURL=frp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frp.d.ts","sourceRoot":"","sources":["../../src/exports/frp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/exports/geometry.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/exports/operators.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Signal } from '../../core/signal.js';
|
|
2
|
+
export interface DomSignal<E extends Event> extends Signal<"dom", E> {
|
|
3
|
+
}
|
|
4
|
+
export declare const DOM_SIGNAL_KIND: "dom";
|
|
5
|
+
export declare function createDomSignal<E extends Event>(event: E): DomSignal<E>;
|
|
6
|
+
//# sourceMappingURL=dom-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-signal.d.ts","sourceRoot":"","sources":["../../../src/features/dom/dom-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;CAAG;AAEvE,eAAO,MAAM,eAAe,EAAG,KAAc,CAAC;AAE9C,wBAAgB,eAAe,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEvE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Stream } from '../../core/stream.js';
|
|
2
|
+
import { DomSignal } from './dom-signal.js';
|
|
3
|
+
type AnyEventMap = Record<string, Event>;
|
|
4
|
+
/**
|
|
5
|
+
* Strongly-typed event target for custom event maps.
|
|
6
|
+
* Useful for non-DOM EventTargets that still have named events.
|
|
7
|
+
*/
|
|
8
|
+
export type TypedEventTarget<M extends AnyEventMap> = EventTarget & {
|
|
9
|
+
addEventListener<K extends keyof M>(type: K, listener: (event: M[K]) => void, options?: AddEventListenerOptions): void;
|
|
10
|
+
removeEventListener<K extends keyof M>(type: K, listener: (event: M[K]) => void, options?: AddEventListenerOptions): void;
|
|
11
|
+
};
|
|
12
|
+
export declare function dom<K extends keyof WindowEventMap>(target: Window, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<WindowEventMap[K]>>;
|
|
13
|
+
export declare function dom<K extends keyof DocumentEventMap>(target: Document, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<DocumentEventMap[K]>>;
|
|
14
|
+
export declare function dom<K extends keyof HTMLElementEventMap>(target: HTMLElement, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<HTMLElementEventMap[K]>>;
|
|
15
|
+
export declare function dom<K extends keyof SVGElementEventMap>(target: SVGElement, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<SVGElementEventMap[K]>>;
|
|
16
|
+
export declare function dom<M extends AnyEventMap, K extends keyof M>(target: TypedEventTarget<M>, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<M[K]>>;
|
|
17
|
+
export declare function dom<E extends Event = Event>(target: EventTarget, eventName: string, options?: AddEventListenerOptions): Stream<DomSignal<E>>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/features/dom/dom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAElE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,WAAW,IAAI,WAAW,GAAG;IAClE,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,EAChC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC/B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAAC;IACR,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,EACnC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC/B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAAC;CACT,CAAC;AAEF,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAChD,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAClD,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACrD,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACpD,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,wBAAgB,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,CAAC,EAC1D,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,wBAAgB,GAAG,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EACzC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../../../src/features/dom/mouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIlE,wBAAgB,KAAK,CACnB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAkB/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/features/dom/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIlE,wBAAgB,OAAO,CACrB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAkBjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touch.d.ts","sourceRoot":"","sources":["../../../src/features/dom/touch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIlE,wBAAgB,KAAK,CACnB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAkB/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-code.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/key-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mDAAmD;AACnD,KAAK,QAAQ,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,KAAK,QAAQ,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,6CAA6C;AAC7C,KAAK,cAAc,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,aAAa,GACb,cAAc,GACd,WAAW,GACX,WAAW,GACX,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,eAAe,GACf,QAAQ,GACR,SAAS,CAAC;AAEd,oBAAoB;AACpB,KAAK,WAAW,GACZ,QAAQ,GACR,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,aAAa,GACb,YAAY,GACZ,OAAO,CAAC;AAEZ,sBAAsB;AACtB,KAAK,aAAa,GACd,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,MAAM,GACN,KAAK,GACL,QAAQ,GACR,UAAU,CAAC;AAEf,mBAAmB;AACnB,KAAK,UAAU,GACX,WAAW,GACX,KAAK,GACL,OAAO,GACP,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,oBAAoB;AACpB,KAAK,eAAe,GAChB,WAAW,GACX,YAAY,GACZ,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,CAAC;AAElB,kBAAkB;AAClB,KAAK,SAAS,GACV,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,aAAa,GACb,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,WAAW,GACX,aAAa,GACb,UAAU,GACV,eAAe,GACf,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard-signal.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keyboard-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;CAAG;AAE5E,eAAO,MAAM,oBAAoB,EAAG,UAAmB,CAAC;AAExD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAEzE;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,GACnB,cAAc,CAYhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAoD/F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keydown.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keydown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAoD7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyheld.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keyheld.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,UAAU,YAAY;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;CAAG;AAEzE,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CA6B3F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAyB1F,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAO7E;AAgBD,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAO5E"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Stream } from '../../core/stream.js';
|
|
2
|
+
import { MultiPointersSignal } from './multi-pointers-signal.js';
|
|
3
|
+
import { MultiPointersOptions } from './types.js';
|
|
4
|
+
export declare function multiPointers(target: EventTarget, options?: MultiPointersOptions): Stream<MultiPointersSignal>;
|
|
5
|
+
//# sourceMappingURL=default-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-factory.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/default-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAAC,mBAAmB,CAAC,CAG7B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { multiPointers } from './default-factory.js';
|
|
2
|
+
export type { MULTI_POINTERS_SIGNAL_KIND, MultiPointers, MultiPointersPhase, MultiPointersSignal, PointerInfo, } from './multi-pointers-signal.js';
|
|
3
|
+
export { multiPointersFromPointer } from './recognizer-from-pointer.js';
|
|
4
|
+
export type { MultiPointersOptions } from './types.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EACV,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import { Signal } from '../../core/signal.js';
|
|
2
2
|
import { Point } from '../../geometry/types.js';
|
|
3
3
|
import { SinglePointerButton, SinglePointerPhase, SinglePointerType } from '../single-pointer/types.js';
|
|
4
|
-
export interface
|
|
4
|
+
export interface MultiPointersSignal extends Signal<"multi-pointers", MultiPointers> {
|
|
5
5
|
}
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const MULTI_POINTERS_SIGNAL_KIND: "multi-pointers";
|
|
7
7
|
/**
|
|
8
8
|
* Represents the complete state of all active pointers at a given moment.
|
|
9
9
|
* Emitted as a snapshot whenever any pointer changes state.
|
|
10
10
|
*/
|
|
11
|
-
export interface
|
|
12
|
-
/** Session-level phase: tracks the overall multi-
|
|
13
|
-
phase:
|
|
11
|
+
export interface MultiPointers {
|
|
12
|
+
/** Session-level phase: tracks the overall multi-pointers interaction lifecycle */
|
|
13
|
+
phase: MultiPointersPhase;
|
|
14
14
|
/** Array of currently active pointers */
|
|
15
15
|
pointers: readonly PointerInfo[];
|
|
16
16
|
/** Total number of active pointers */
|
|
17
17
|
count: number;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Session-level phase for multi-
|
|
20
|
+
* Session-level phase for multi-pointers interactions:
|
|
21
21
|
* - "idle": No active pointers
|
|
22
22
|
* - "active": One or more pointers are active
|
|
23
23
|
* - "ended": All pointers have ended (transition state)
|
|
24
24
|
*/
|
|
25
|
-
export type
|
|
25
|
+
export type MultiPointersPhase = "idle" | "active" | "ended";
|
|
26
26
|
/**
|
|
27
|
-
* Information about a single pointer within a multi-
|
|
27
|
+
* Information about a single pointer within a multi-pointers context.
|
|
28
28
|
*/
|
|
29
29
|
export interface PointerInfo {
|
|
30
30
|
id: string;
|
|
@@ -36,6 +36,6 @@ export interface PointerInfo {
|
|
|
36
36
|
/** 0.0 ~ 1.0, default 0.5 if unsupported */
|
|
37
37
|
pressure: number;
|
|
38
38
|
}
|
|
39
|
-
export declare function
|
|
39
|
+
export declare function createMultiPointersSignal(multiPointers: MultiPointers): MultiPointersSignal;
|
|
40
40
|
export declare function createDefaultPointerInfo(): PointerInfo;
|
|
41
|
-
//# sourceMappingURL=multi-
|
|
41
|
+
//# sourceMappingURL=multi-pointers-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-pointers-signal.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/multi-pointers-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC;CAAG;AAEvF,eAAO,MAAM,0BAA0B,EAAG,gBAAyB,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,KAAK,EAAE,kBAAkB,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,KAAK,CAAC;IACd,UAAU,EAAE,KAAK,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,aAAa,GAAG,mBAAmB,CAE3F;AAED,wBAAgB,wBAAwB,IAAI,WAAW,CAUtD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Operator } from '../../core/stream.js';
|
|
2
|
+
import { DomSignal } from '../dom/dom-signal.js';
|
|
3
|
+
import { MultiPointersSignal } from './multi-pointers-signal.js';
|
|
4
|
+
import { MultiPointersRecognizer } from './recognizer.js';
|
|
5
|
+
import { MultiPointersOptions } from './types.js';
|
|
6
|
+
export declare function createPointerRecognizer(options?: MultiPointersOptions): MultiPointersRecognizer<DomSignal<PointerEvent>>;
|
|
7
|
+
export declare function multiPointersFromPointer(options?: MultiPointersOptions): Operator<DomSignal<PointerEvent>, MultiPointersSignal>;
|
|
8
|
+
//# sourceMappingURL=recognizer-from-pointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recognizer-from-pointer.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/recognizer-from-pointer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOtD,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,oBAAyB,GACjC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAqDlD;AAED,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,oBAAyB,GACjC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,CAyBxD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Signal } from '../../core/signal.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
export interface
|
|
5
|
-
process(event: InputSignal):
|
|
2
|
+
import { MultiPointersSignal, PointerInfo } from './multi-pointers-signal.js';
|
|
3
|
+
import { MultiPointersOptions } from './types.js';
|
|
4
|
+
export interface MultiPointersRecognizer<InputSignal extends Signal> {
|
|
5
|
+
process(event: InputSignal): MultiPointersSignal | null;
|
|
6
6
|
readonly isActive: boolean;
|
|
7
7
|
readonly activeCount: number;
|
|
8
8
|
reset(): void;
|
|
@@ -21,5 +21,5 @@ export interface PointerUpdateResult {
|
|
|
21
21
|
* Creates a recognizer that tracks multiple pointers and emits snapshot signals.
|
|
22
22
|
* Maintains internal state of all active pointers using a Map.
|
|
23
23
|
*/
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function createMultiPointersRecognizer<InputSignal extends Signal>(processor: (inputSignal: InputSignal, pointerMap: Map<string, PointerInfo>, options: Required<MultiPointersOptions>) => PointerUpdateResult | null, options?: MultiPointersOptions): MultiPointersRecognizer<InputSignal>;
|
|
25
25
|
//# sourceMappingURL=recognizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recognizer.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/recognizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,uBAAuB,CAAC,WAAW,SAAS,MAAM;IACjE,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,SAAS,MAAM,EACtE,SAAS,EAAE,CACT,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KACpC,mBAAmB,GAAG,IAAI,EAC/B,OAAO,GAAE,oBAAyB,GACjC,uBAAuB,CAAC,WAAW,CAAC,CAyDtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PanDirection } from './pan-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Determine primary direction from delta values.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getDirection(deltaX: number, deltaY: number): PanDirection;
|
|
6
|
+
/**
|
|
7
|
+
* Calculate Euclidean distance between two points.
|
|
8
|
+
*/
|
|
9
|
+
export declare function calculateDistance(x1: number, y1: number, x2: number, y2: number): number;
|
|
10
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../src/features/pan/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAazE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAIxF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { pan, panRecognizer } from './pan.js';
|
|
2
|
+
export type { PanSignal, PanValue } from './pan-signal.js';
|
|
3
|
+
export type { PanDirection, PanDirectionMode, PanOptions, PanPhase, PanSourcePhase, PanSourceSignal, PanSourceValue, } from './pan-types.js';
|
|
4
|
+
export { createPanRecognizer, type PanRecognizer } from './recognizer.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/pan/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Signal } from '../../core/index.js';
|
|
2
|
+
import { Point, Vector } from '../../geometry/index.js';
|
|
3
|
+
import { PanDirection, PanPhase } from './pan-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Pan gesture value emitted during pan lifecycle (start, move, end, cancel).
|
|
6
|
+
* Contains position deltas, velocity, cumulative distance, and direction information.
|
|
7
|
+
*/
|
|
8
|
+
export interface PanValue {
|
|
9
|
+
phase: PanPhase;
|
|
10
|
+
/** Current position [x, y] (client coordinates) */
|
|
11
|
+
cursor: Point;
|
|
12
|
+
/** Current position [pageX, pageY] (page coordinates) */
|
|
13
|
+
pageCursor: Point;
|
|
14
|
+
/** Displacement from start [deltaX, deltaY] */
|
|
15
|
+
delta: Vector;
|
|
16
|
+
/** Velocity [vx, vy] in pixels per millisecond */
|
|
17
|
+
velocity: Vector;
|
|
18
|
+
/** Total cumulative distance traveled */
|
|
19
|
+
distance: number;
|
|
20
|
+
/** Current movement direction */
|
|
21
|
+
direction: PanDirection;
|
|
22
|
+
}
|
|
23
|
+
export interface PanSignal<T = {}> extends Signal<"pan", PanValue & T> {
|
|
24
|
+
}
|
|
25
|
+
export declare const PAN_SIGNAL_KIND: "pan";
|
|
26
|
+
export declare function createDefaultPanValue(): PanValue;
|
|
27
|
+
export declare function createDefaultPanSignal(): PanSignal;
|
|
28
|
+
export declare function createPanSignal(value: PanValue): PanSignal;
|
|
29
|
+
//# sourceMappingURL=pan-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pan-signal.d.ts","sourceRoot":"","sources":["../../../src/features/pan/pan-signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAC;IAEhB,mDAAmD;IACnD,MAAM,EAAE,KAAK,CAAC;IACd,yDAAyD;IACzD,UAAU,EAAE,KAAK,CAAC;IAElB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,EAAE,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC;CAAG;AAEzE,eAAO,MAAM,eAAe,EAAG,KAAc,CAAC;AAE9C,wBAAgB,qBAAqB,IAAI,QAAQ,CAUhD;AAED,wBAAgB,sBAAsB,IAAI,SAAS,CAElD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAE1D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type PanPhase = "unknown" | "start" | "move" | "end" | "cancel";
|
|
2
|
+
export type PanDirection = "up" | "down" | "left" | "right" | "none";
|
|
3
|
+
export type PanDirectionMode = "horizontal" | "vertical" | "all";
|
|
4
|
+
/**
|
|
5
|
+
* Pointer phase values that PanRecognizer can process.
|
|
6
|
+
*/
|
|
7
|
+
export type PanSourcePhase = "start" | "move" | "end" | "cancel";
|
|
8
|
+
/**
|
|
9
|
+
* Value interface that PanRecognizer requires from input signals.
|
|
10
|
+
* Any signal whose value satisfies this interface can be processed.
|
|
11
|
+
*/
|
|
12
|
+
export interface PanSourceValue {
|
|
13
|
+
readonly phase: PanSourcePhase;
|
|
14
|
+
readonly cursor: readonly [number, number];
|
|
15
|
+
readonly pageCursor: readonly [number, number];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Minimal signal interface that PanRecognizer requires.
|
|
19
|
+
* Decoupled from SinglePointerSignal to allow any compatible source.
|
|
20
|
+
*/
|
|
21
|
+
export interface PanSourceSignal {
|
|
22
|
+
readonly value: PanSourceValue;
|
|
23
|
+
readonly createdAt: number;
|
|
24
|
+
readonly deviceId: string;
|
|
25
|
+
}
|
|
26
|
+
export interface PanOptions {
|
|
27
|
+
/**
|
|
28
|
+
* Minimum movement required before pan gesture is recognized.
|
|
29
|
+
* Applied per-axis based on direction mode.
|
|
30
|
+
* @default 10
|
|
31
|
+
*/
|
|
32
|
+
threshold?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Direction constraint for threshold calculation.
|
|
35
|
+
* - "horizontal": only X movement counts toward threshold
|
|
36
|
+
* - "vertical": only Y movement counts toward threshold
|
|
37
|
+
* - "all": any movement counts
|
|
38
|
+
* @default "all"
|
|
39
|
+
*/
|
|
40
|
+
direction?: PanDirectionMode;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=pan-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pan-types.d.ts","sourceRoot":"","sources":["../../../src/features/pan/pan-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Operator, Signal, Stream } from '../../core/index.js';
|
|
2
|
+
import { PanSignal } from './pan-signal.js';
|
|
3
|
+
import { PanOptions, PanSourceValue } from './pan-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Operator that transforms pointer events into PanSignal events.
|
|
6
|
+
*
|
|
7
|
+
* Accepts any Signal whose value satisfies PanSourceValue interface.
|
|
8
|
+
*
|
|
9
|
+
* Use this when you need to compose with other operators or use a custom pointer source.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* singlePointer(element)
|
|
14
|
+
* .pipe(panRecognizer({ threshold: 10 }))
|
|
15
|
+
* .on(pan => console.log(pan.value.deltaX, pan.value.velocityX));
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function panRecognizer<T extends Signal<string, PanSourceValue>>(options?: PanOptions): Operator<T, PanSignal>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a pan gesture stream from an element.
|
|
21
|
+
*
|
|
22
|
+
* This is a convenience function that combines singlePointer and pan gesture processing.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* pan(element, { threshold: 10 })
|
|
27
|
+
* .pipe(withVelocity())
|
|
28
|
+
* .on(event => console.log(event.deltaX, event.velocityX));
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function pan(target: EventTarget, options?: PanOptions): Stream<PanSignal>;
|
|
32
|
+
//# sourceMappingURL=pan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pan.d.ts","sourceRoot":"","sources":["../../../src/features/pan/pan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGjE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACpE,OAAO,GAAE,UAAe,GACvB,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAuBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAEpF"}
|