cereb 0.1.0 → 0.2.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 +13 -13
- package/dist/browser/dom-event/dom-event-signal.d.ts +6 -0
- package/dist/browser/dom-event/dom-event-signal.d.ts.map +1 -0
- package/dist/browser/dom-event/dom-event.d.ts +3 -2
- package/dist/browser/dom-event/dom-event.d.ts.map +1 -1
- package/dist/browser/dom-event/mouse-events.d.ts +3 -2
- package/dist/browser/dom-event/mouse-events.d.ts.map +1 -1
- package/dist/browser/dom-event/pointer-events.d.ts +3 -2
- package/dist/browser/dom-event/pointer-events.d.ts.map +1 -1
- package/dist/browser/dom-event/touch-events.d.ts +3 -2
- package/dist/browser/dom-event/touch-events.d.ts.map +1 -1
- package/dist/browser/single-pointer/emitter.d.ts +13 -0
- package/dist/browser/single-pointer/emitter.d.ts.map +1 -0
- package/dist/browser/single-pointer/index.d.ts +2 -3
- package/dist/browser/single-pointer/index.d.ts.map +1 -1
- package/dist/browser/single-pointer/mouse-emitter.d.ts +6 -14
- package/dist/browser/single-pointer/mouse-emitter.d.ts.map +1 -1
- package/dist/browser/single-pointer/mouse.d.ts +2 -3
- package/dist/browser/single-pointer/mouse.d.ts.map +1 -1
- package/dist/browser/single-pointer/pointer-emitter.d.ts +7 -18
- package/dist/browser/single-pointer/pointer-emitter.d.ts.map +1 -1
- package/dist/browser/single-pointer/pointer.d.ts +2 -3
- package/dist/browser/single-pointer/pointer.d.ts.map +1 -1
- package/dist/browser/single-pointer/pool.d.ts +3 -3
- package/dist/browser/single-pointer/pool.d.ts.map +1 -1
- package/dist/browser/single-pointer/single-pointer-signal.d.ts +25 -0
- package/dist/browser/single-pointer/single-pointer-signal.d.ts.map +1 -0
- package/dist/browser/single-pointer/touch-emitter.d.ts +6 -14
- package/dist/browser/single-pointer/touch-emitter.d.ts.map +1 -1
- package/dist/browser/single-pointer/touch.d.ts +2 -3
- package/dist/browser/single-pointer/touch.d.ts.map +1 -1
- package/dist/browser/single-pointer/types.d.ts +4 -4
- package/dist/browser/single-pointer/types.d.ts.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/meta.d.ts +3 -0
- package/dist/core/meta.d.ts.map +1 -0
- package/dist/core/signal.d.ts +9 -0
- package/dist/core/signal.d.ts.map +1 -0
- package/dist/{stream → core}/stream.d.ts +6 -5
- package/dist/core/stream.d.ts.map +1 -0
- package/dist/emitter-CyT5OiQO.cjs +2 -0
- package/dist/emitter-CyT5OiQO.cjs.map +1 -0
- package/dist/emitter-FFAuyJ19.js +101 -0
- package/dist/emitter-FFAuyJ19.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +129 -39
- package/dist/index.js.map +1 -1
- package/dist/internal/subject.d.ts +6 -5
- package/dist/internal/subject.d.ts.map +1 -1
- package/dist/internal/test-utils.d.ts +10 -0
- package/dist/internal/test-utils.d.ts.map +1 -0
- package/dist/ochestrations/compose.d.ts +8 -7
- package/dist/ochestrations/compose.d.ts.map +1 -1
- package/dist/ochestrations/pipe.d.ts +12 -11
- package/dist/ochestrations/pipe.d.ts.map +1 -1
- package/dist/operators/buffer.d.ts +5 -4
- package/dist/operators/buffer.d.ts.map +1 -1
- package/dist/operators/debounce.d.ts +3 -2
- package/dist/operators/debounce.d.ts.map +1 -1
- package/dist/operators/distinct.d.ts +8 -7
- package/dist/operators/distinct.d.ts.map +1 -1
- package/dist/operators/filter.d.ts +3 -2
- package/dist/operators/filter.d.ts.map +1 -1
- package/dist/operators/index.d.ts +0 -1
- package/dist/operators/index.d.ts.map +1 -1
- package/dist/operators/map.d.ts +3 -2
- package/dist/operators/map.d.ts.map +1 -1
- package/dist/operators/merge.d.ts +4 -3
- package/dist/operators/merge.d.ts.map +1 -1
- package/dist/operators/share.d.ts +4 -3
- package/dist/operators/share.d.ts.map +1 -1
- package/dist/operators/skip.d.ts +5 -4
- package/dist/operators/skip.d.ts.map +1 -1
- package/dist/operators/spy.d.ts +3 -2
- package/dist/operators/spy.d.ts.map +1 -1
- package/dist/operators/take.d.ts +5 -4
- package/dist/operators/take.d.ts.map +1 -1
- package/dist/operators/throttle.d.ts +4 -3
- package/dist/operators/throttle.d.ts.map +1 -1
- package/dist/operators.cjs +1 -1
- package/dist/operators.cjs.map +1 -1
- package/dist/operators.js +178 -192
- package/dist/operators.js.map +1 -1
- package/dist/single-pointer/mouse.cjs +1 -1
- package/dist/single-pointer/mouse.cjs.map +1 -1
- package/dist/single-pointer/mouse.js +31 -60
- package/dist/single-pointer/mouse.js.map +1 -1
- package/dist/single-pointer/pointer.cjs +1 -1
- package/dist/single-pointer/pointer.js +1 -6
- package/dist/single-pointer/pointer.js.map +1 -1
- package/dist/single-pointer/touch.cjs +1 -1
- package/dist/single-pointer/touch.cjs.map +1 -1
- package/dist/single-pointer/touch.js +34 -64
- package/dist/single-pointer/touch.js.map +1 -1
- package/dist/stream-CDK0RZPi.js.map +1 -1
- package/dist/stream-Cp6eCZs2.cjs.map +1 -1
- package/dist/{types-DkXpfiI3.cjs → types-BGR5Mhw9.cjs} +2 -2
- package/dist/types-BGR5Mhw9.cjs.map +1 -0
- package/dist/types-Ccnqx90M.js.map +1 -1
- package/package.json +1 -1
- package/dist/browser/single-pointer/single-pointer.d.ts +0 -22
- package/dist/browser/single-pointer/single-pointer.d.ts.map +0 -1
- package/dist/factory/defer.d.ts +0 -3
- package/dist/factory/defer.d.ts.map +0 -1
- package/dist/factory/empty.d.ts +0 -3
- package/dist/factory/empty.d.ts.map +0 -1
- package/dist/factory/from-promise.d.ts +0 -3
- package/dist/factory/from-promise.d.ts.map +0 -1
- package/dist/factory/from.d.ts +0 -3
- package/dist/factory/from.d.ts.map +0 -1
- package/dist/factory/index.d.ts +0 -10
- package/dist/factory/index.d.ts.map +0 -1
- package/dist/factory/interval.d.ts +0 -3
- package/dist/factory/interval.d.ts.map +0 -1
- package/dist/factory/never.d.ts +0 -3
- package/dist/factory/never.d.ts.map +0 -1
- package/dist/factory/of.d.ts +0 -3
- package/dist/factory/of.d.ts.map +0 -1
- package/dist/factory/throw-error.d.ts +0 -3
- package/dist/factory/throw-error.d.ts.map +0 -1
- package/dist/factory/timer.d.ts +0 -3
- package/dist/factory/timer.d.ts.map +0 -1
- package/dist/operators/combine.d.ts +0 -8
- package/dist/operators/combine.d.ts.map +0 -1
- package/dist/pointer-CX9qwBVm.cjs +0 -2
- package/dist/pointer-CX9qwBVm.cjs.map +0 -1
- package/dist/pointer-Cq2B2vwv.js +0 -111
- package/dist/pointer-Cq2B2vwv.js.map +0 -1
- package/dist/pool-CM9teIjt.js +0 -42
- package/dist/pool-CM9teIjt.js.map +0 -1
- package/dist/pool-Dr67Mz_1.cjs +0 -2
- package/dist/pool-Dr67Mz_1.cjs.map +0 -1
- package/dist/stream/stream.d.ts.map +0 -1
- package/dist/types-DkXpfiI3.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-Cp6eCZs2.cjs","sources":["../src/
|
|
1
|
+
{"version":3,"file":"stream-Cp6eCZs2.cjs","sources":["../src/core/stream.ts"],"sourcesContent":["import type { Signal } from \"./signal.js\";\n\nexport type Unsubscribe = () => void;\n\nexport interface Observer<T extends Signal> {\n next(value: T): void;\n error?(err: unknown): void;\n complete?(): void;\n}\n\n/**\n * Stream is the core reactive abstraction in Cereb.\n * All streams are blockable - when blocked, events are silently dropped.\n * By default, streams support a single observer. Use share() for multicast.\n */\nexport interface Stream<T extends Signal> {\n subscribe(observer: Observer<T> | ((value: T) => void)): Unsubscribe;\n\n /** Block event propagation. Events are dropped, not queued. */\n block(): void;\n\n /** Unblock event propagation, resuming normal flow. */\n unblock(): void;\n\n /** Returns true if the stream is currently blocked. */\n readonly isBlocked: boolean;\n}\n\nexport type Operator<T extends Signal, R extends Signal> = (source: Stream<T>) => Stream<R>;\n\nexport function toObserver<T extends Signal>(\n observerOrNext: Observer<T> | ((value: T) => void),\n): Observer<T> {\n if (typeof observerOrNext === \"function\") {\n return { next: observerOrNext };\n }\n return observerOrNext;\n}\n\n/**\n * Creates a Stream from a subscribe function.\n * The stream can be blocked/unblocked to control event flow.\n */\nexport function createStream<T extends Signal>(\n subscribeFn: (observer: Observer<T>) => Unsubscribe | void,\n): Stream<T> {\n let blocked = false;\n\n return {\n get isBlocked() {\n return blocked;\n },\n\n block() {\n blocked = true;\n },\n\n unblock() {\n blocked = false;\n },\n\n subscribe(observerOrNext) {\n const observer = toObserver(observerOrNext);\n\n const wrappedObserver: Observer<T> = {\n next(value) {\n if (!blocked) {\n observer.next(value);\n }\n },\n error: observer.error?.bind(observer),\n complete: observer.complete?.bind(observer),\n };\n\n const cleanup = subscribeFn(wrappedObserver);\n return cleanup ?? (() => {});\n },\n };\n}\n"],"names":["toObserver","observerOrNext","createStream","subscribeFn","blocked","observer","wrappedObserver","value"],"mappings":"aA8BO,SAASA,EACdC,EACa,CACb,OAAI,OAAOA,GAAmB,WACrB,CAAE,KAAMA,CAAA,EAEVA,CACT,CAMO,SAASC,EACdC,EACW,CACX,IAAIC,EAAU,GAEd,MAAO,CACL,IAAI,WAAY,CACd,OAAOA,CACT,EAEA,OAAQ,CACNA,EAAU,EACZ,EAEA,SAAU,CACRA,EAAU,EACZ,EAEA,UAAUH,EAAgB,CACxB,MAAMI,EAAWL,EAAWC,CAAc,EAEpCK,EAA+B,CACnC,KAAKC,EAAO,CACLH,GACHC,EAAS,KAAKE,CAAK,CAEvB,EACA,MAAOF,EAAS,OAAO,KAAKA,CAAQ,EACpC,SAAUA,EAAS,UAAU,KAAKA,CAAQ,CAAA,EAI5C,OADgBF,EAAYG,CAAe,IACxB,IAAM,CAAC,EAC5B,CAAA,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(r){switch(r){case-1:return"none";case 0:return"primary";case 1:return"auxiliary";case 2:return"secondary";case 3:return"back";case 4:return"forward";default:return"none"}}exports.
|
|
2
|
-
//# sourceMappingURL=types-
|
|
1
|
+
"use strict";function e(r){switch(r){case-1:return"none";case 0:return"primary";case 1:return"auxiliary";case 2:return"secondary";case 3:return"back";case 4:return"forward";default:return"none"}}exports.toSinglePointerButton=e;
|
|
2
|
+
//# sourceMappingURL=types-BGR5Mhw9.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-BGR5Mhw9.cjs","sources":["../src/browser/single-pointer/types.ts"],"sourcesContent":["export type SinglePointerType = \"touch\" | \"mouse\" | \"pen\" | \"unknown\";\n\nexport type SinglePointerPhase = \"unknown\" | \"start\" | \"move\" | \"end\" | \"cancel\";\n\nexport type SinglePointerButton =\n | \"none\"\n | \"primary\"\n | \"secondary\"\n | \"auxiliary\"\n | \"back\"\n | \"forward\";\n\nexport function toSinglePointerButton(button: number): SinglePointerButton {\n switch (button) {\n case -1:\n return \"none\";\n case 0:\n return \"primary\";\n case 1:\n return \"auxiliary\";\n case 2:\n return \"secondary\";\n case 3:\n return \"back\";\n case 4:\n return \"forward\";\n default:\n return \"none\";\n }\n}\n"],"names":["toSinglePointerButton","button"],"mappings":"aAYO,SAASA,EAAsBC,EAAqC,CACzE,OAAQA,EAAA,CACN,IAAK,GACH,MAAO,OACT,IAAK,GACH,MAAO,UACT,IAAK,GACH,MAAO,YACT,IAAK,GACH,MAAO,YACT,IAAK,GACH,MAAO,OACT,IAAK,GACH,MAAO,UACT,QACE,MAAO,MAAA,CAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-Ccnqx90M.js","sources":["../src/browser/single-pointer/types.ts"],"sourcesContent":["export type
|
|
1
|
+
{"version":3,"file":"types-Ccnqx90M.js","sources":["../src/browser/single-pointer/types.ts"],"sourcesContent":["export type SinglePointerType = \"touch\" | \"mouse\" | \"pen\" | \"unknown\";\n\nexport type SinglePointerPhase = \"unknown\" | \"start\" | \"move\" | \"end\" | \"cancel\";\n\nexport type SinglePointerButton =\n | \"none\"\n | \"primary\"\n | \"secondary\"\n | \"auxiliary\"\n | \"back\"\n | \"forward\";\n\nexport function toSinglePointerButton(button: number): SinglePointerButton {\n switch (button) {\n case -1:\n return \"none\";\n case 0:\n return \"primary\";\n case 1:\n return \"auxiliary\";\n case 2:\n return \"secondary\";\n case 3:\n return \"back\";\n case 4:\n return \"forward\";\n default:\n return \"none\";\n }\n}\n"],"names":["toSinglePointerButton","button"],"mappings":"AAYO,SAASA,EAAsBC,GAAqC;AACzE,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;"}
|
package/package.json
CHANGED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { PointerButton, PointerPhase, PointerType } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Normalized pointer data representing a single point of contact.
|
|
4
|
-
* Abstracts away differences between mouse, touch, and pointer events.
|
|
5
|
-
*/
|
|
6
|
-
export interface SinglePointer {
|
|
7
|
-
phase: PointerPhase;
|
|
8
|
-
x: number;
|
|
9
|
-
y: number;
|
|
10
|
-
pageX: number;
|
|
11
|
-
pageY: number;
|
|
12
|
-
pointerType: PointerType;
|
|
13
|
-
button: PointerButton;
|
|
14
|
-
/** 0.0 ~ 1.0, default 0.5 if unsupported */
|
|
15
|
-
pressure: number;
|
|
16
|
-
timestamp: number;
|
|
17
|
-
deviceId: string;
|
|
18
|
-
}
|
|
19
|
-
export declare function createDefaultSinglePointer(): SinglePointer;
|
|
20
|
-
export declare function resetSinglePointer(p: SinglePointer): void;
|
|
21
|
-
export declare function isSinglePointer(value: unknown): value is SinglePointer;
|
|
22
|
-
//# sourceMappingURL=single-pointer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"single-pointer.d.ts","sourceRoot":"","sources":["../../../src/browser/single-pointer/single-pointer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,0BAA0B,IAAI,aAAa,CAa1D;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAWzD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAStE"}
|
package/dist/factory/defer.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defer.d.ts","sourceRoot":"","sources":["../../src/factory/defer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAI5D"}
|
package/dist/factory/empty.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/factory/empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAK5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-promise.d.ts","sourceRoot":"","sources":["../../src/factory/from-promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAqB7D"}
|
package/dist/factory/from.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from.d.ts","sourceRoot":"","sources":["../../src/factory/from.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAQtD"}
|
package/dist/factory/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './defer.js';
|
|
2
|
-
export * from './empty.js';
|
|
3
|
-
export * from './from.js';
|
|
4
|
-
export * from './from-promise.js';
|
|
5
|
-
export * from './interval.js';
|
|
6
|
-
export * from './never.js';
|
|
7
|
-
export * from './of.js';
|
|
8
|
-
export * from './throw-error.js';
|
|
9
|
-
export * from './timer.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interval.d.ts","sourceRoot":"","sources":["../../src/factory/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAWnD"}
|
package/dist/factory/never.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"never.d.ts","sourceRoot":"","sources":["../../src/factory/never.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAI5C"}
|
package/dist/factory/of.d.ts
DELETED
package/dist/factory/of.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"of.d.ts","sourceRoot":"","sources":["../../src/factory/of.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAMzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throw-error.d.ts","sourceRoot":"","sources":["../../src/factory/throw-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAKxD"}
|
package/dist/factory/timer.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/factory/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAwBpE"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Stream } from '../stream/stream.js';
|
|
2
|
-
export declare function combineLatest<T extends unknown[]>(...sources: {
|
|
3
|
-
[K in keyof T]: Stream<T[K]>;
|
|
4
|
-
}): Stream<T>;
|
|
5
|
-
export declare function forkJoin<T extends unknown[]>(...sources: {
|
|
6
|
-
[K in keyof T]: Stream<T[K]>;
|
|
7
|
-
}): Stream<T>;
|
|
8
|
-
//# sourceMappingURL=combine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../src/operators/combine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,EAC/C,GAAG,OAAO,EAAE;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3C,MAAM,CAAC,CAAC,CAAC,CAgCX;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,EAC1C,GAAG,OAAO,EAAE;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3C,MAAM,CAAC,CAAC,CAAC,CA+BX"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const f=require("./stream-Cp6eCZs2.cjs"),l=require("./pool-Dr67Mz_1.cjs"),m=require("./types-DkXpfiI3.cjs"),d=["pointerdown","pointermove","pointerup","pointercancel"];function P(o,s){return f.createStream(i=>{const e=t=>{i.next(t)};for(const t of d)o.addEventListener(t,e,s);return()=>{for(const t of d)o.removeEventListener(t,e,s)}})}function g(o={}){const{deviceId:s,pooling:i=!1}=o;let e=null,t=s??"";function c(){return i?l.singlePointerPool.acquire():{phase:"move",x:0,y:0,pageX:0,pageY:0,pointerType:"unknown",button:"none",pressure:.5,timestamp:0,deviceId:""}}function u(){e&&i&&l.singlePointerPool.release(e),e=null}return{process(n){if(!n.isPrimary)return e;let p,a;switch(n.type){case"pointerdown":p="start",a=m.toPointerButton(n.button);break;case"pointerup":p="end",a=m.toPointerButton(n.button);break;case"pointercancel":p="cancel",a="none";break;default:p="move",a="none"}const r=c();return r.timestamp=performance.now(),r.deviceId=t||(t=`${n.pointerType}-${n.pointerId}`),r.phase=p,r.x=n.clientX,r.y=n.clientY,r.pageX=n.pageX,r.pageY=n.pageY,r.pointerType=h(n.pointerType),r.button=a,r.pressure=n.pressure,u(),e=r,r},get isActive(){return e!==null},reset(){u(),t=s??""},dispose(){this.reset()}}}function y(o={}){return s=>f.createStream(i=>{const e=g(o),t=s.subscribe({next(c){const u=e.process(c);u&&i.next(u)},error(c){i.error?.(c)},complete(){i.complete?.()}});return()=>{t(),e.dispose()}})}function b(o,s={}){const{listenerOptions:i,...e}=s,t=P(o,i);return y(e)(t)}function h(o){switch(o){case"mouse":return"mouse";case"touch":return"touch";case"pen":return"pen";default:return"unknown"}}exports.createPointerEmitter=g;exports.pointerEvents=P;exports.singlePointer=b;exports.toSinglePointer=y;
|
|
2
|
-
//# sourceMappingURL=pointer-CX9qwBVm.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointer-CX9qwBVm.cjs","sources":["../src/browser/dom-event/pointer-events.ts","../src/browser/single-pointer/pointer-emitter.ts"],"sourcesContent":["import { createStream, type Stream } from \"../../stream/stream.js\";\n\nconst POINTER_EVENTS = [\"pointerdown\", \"pointermove\", \"pointerup\", \"pointercancel\"] as const;\n\nexport function pointerEvents(\n target: EventTarget,\n options?: AddEventListenerOptions,\n): Stream<PointerEvent> {\n return createStream((observer) => {\n const handler = (event: Event) => {\n observer.next(event as PointerEvent);\n };\n\n for (const eventName of POINTER_EVENTS) {\n target.addEventListener(eventName, handler, options);\n }\n\n return () => {\n for (const eventName of POINTER_EVENTS) {\n target.removeEventListener(eventName, handler, options);\n }\n };\n });\n}\n","import type { Operator, Stream } from \"../../stream/stream.js\";\nimport { createStream } from \"../../stream/stream.js\";\nimport { pointerEvents } from \"../dom-event/pointer-events.js\";\nimport { singlePointerPool } from \"./pool.js\";\nimport type { SinglePointer } from \"./single-pointer.js\";\nimport type { PointerButton, PointerPhase, PointerType } from \"./types.js\";\nimport { toPointerButton } from \"./types.js\";\n\nexport interface PointerEmitterOptions {\n deviceId?: string;\n pooling?: boolean;\n}\n\nexport interface PointerEmitter {\n process(event: PointerEvent): SinglePointer | null;\n readonly isActive: boolean;\n reset(): void;\n dispose(): void;\n}\n\nexport function createPointerEmitter(options: PointerEmitterOptions = {}): PointerEmitter {\n const { deviceId: customDeviceId, pooling = false } = options;\n let current: SinglePointer | null = null;\n let resolvedDeviceId = customDeviceId ?? \"\";\n\n function acquirePointer(): SinglePointer {\n if (pooling) {\n return singlePointerPool.acquire();\n }\n return {\n phase: \"move\",\n x: 0,\n y: 0,\n pageX: 0,\n pageY: 0,\n pointerType: \"unknown\",\n button: \"none\",\n pressure: 0.5,\n timestamp: 0,\n deviceId: \"\",\n };\n }\n\n function releaseCurrentPointer(): void {\n if (current && pooling) {\n singlePointerPool.release(current);\n }\n current = null;\n }\n\n return {\n process(event: PointerEvent): SinglePointer | null {\n if (!event.isPrimary) {\n return current;\n }\n\n let phase: PointerPhase;\n let button: PointerButton;\n switch (event.type) {\n case \"pointerdown\":\n phase = \"start\";\n button = toPointerButton(event.button);\n break;\n case \"pointerup\":\n phase = \"end\";\n button = toPointerButton(event.button);\n break;\n case \"pointercancel\":\n phase = \"cancel\";\n button = \"none\";\n break;\n default:\n phase = \"move\";\n button = \"none\";\n }\n\n const pointer = acquirePointer();\n\n pointer.timestamp = performance.now();\n pointer.deviceId =\n resolvedDeviceId || (resolvedDeviceId = `${event.pointerType}-${event.pointerId}`);\n pointer.phase = phase;\n pointer.x = event.clientX;\n pointer.y = event.clientY;\n pointer.pageX = event.pageX;\n pointer.pageY = event.pageY;\n pointer.pointerType = normalizePointerType(event.pointerType);\n pointer.button = button;\n pointer.pressure = event.pressure;\n\n releaseCurrentPointer();\n current = pointer;\n return pointer;\n },\n\n get isActive(): boolean {\n return current !== null;\n },\n\n reset(): void {\n releaseCurrentPointer();\n resolvedDeviceId = customDeviceId ?? \"\";\n },\n\n dispose(): void {\n this.reset();\n },\n };\n}\n\nexport function toSinglePointer(\n options: PointerEmitterOptions = {},\n): Operator<PointerEvent, SinglePointer> {\n return (source) =>\n createStream((observer) => {\n const emitter = createPointerEmitter(options);\n\n const unsub = source.subscribe({\n next(event) {\n const pointer = emitter.process(event);\n if (pointer) {\n observer.next(pointer);\n }\n },\n error(err) {\n observer.error?.(err);\n },\n complete() {\n observer.complete?.();\n },\n });\n\n return () => {\n unsub();\n emitter.dispose();\n };\n });\n}\n\nexport interface SinglePointerOptions extends PointerEmitterOptions {\n listenerOptions?: AddEventListenerOptions;\n}\n\nexport function singlePointer(\n target: EventTarget,\n options: SinglePointerOptions = {},\n): Stream<SinglePointer> {\n const { listenerOptions, ...emitterOptions } = options;\n const source = pointerEvents(target, listenerOptions);\n return toSinglePointer(emitterOptions)(source);\n}\n\nfunction normalizePointerType(type: string): PointerType {\n switch (type) {\n case \"mouse\":\n return \"mouse\";\n case \"touch\":\n return \"touch\";\n case \"pen\":\n return \"pen\";\n default:\n return \"unknown\";\n }\n}\n"],"names":["POINTER_EVENTS","pointerEvents","target","options","createStream","observer","handler","event","eventName","createPointerEmitter","customDeviceId","pooling","current","resolvedDeviceId","acquirePointer","singlePointerPool","releaseCurrentPointer","phase","button","toPointerButton","pointer","normalizePointerType","toSinglePointer","source","emitter","unsub","err","singlePointer","listenerOptions","emitterOptions","type"],"mappings":"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"}
|
package/dist/pointer-Cq2B2vwv.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { c as d } from "./stream-CDK0RZPi.js";
|
|
2
|
-
import { s as l } from "./pool-CM9teIjt.js";
|
|
3
|
-
import { t as m } from "./types-Ccnqx90M.js";
|
|
4
|
-
const f = ["pointerdown", "pointermove", "pointerup", "pointercancel"];
|
|
5
|
-
function P(o, s) {
|
|
6
|
-
return d((i) => {
|
|
7
|
-
const e = (t) => {
|
|
8
|
-
i.next(t);
|
|
9
|
-
};
|
|
10
|
-
for (const t of f)
|
|
11
|
-
o.addEventListener(t, e, s);
|
|
12
|
-
return () => {
|
|
13
|
-
for (const t of f)
|
|
14
|
-
o.removeEventListener(t, e, s);
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
function g(o = {}) {
|
|
19
|
-
const { deviceId: s, pooling: i = !1 } = o;
|
|
20
|
-
let e = null, t = s ?? "";
|
|
21
|
-
function c() {
|
|
22
|
-
return i ? l.acquire() : {
|
|
23
|
-
phase: "move",
|
|
24
|
-
x: 0,
|
|
25
|
-
y: 0,
|
|
26
|
-
pageX: 0,
|
|
27
|
-
pageY: 0,
|
|
28
|
-
pointerType: "unknown",
|
|
29
|
-
button: "none",
|
|
30
|
-
pressure: 0.5,
|
|
31
|
-
timestamp: 0,
|
|
32
|
-
deviceId: ""
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
function p() {
|
|
36
|
-
e && i && l.release(e), e = null;
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
process(n) {
|
|
40
|
-
if (!n.isPrimary)
|
|
41
|
-
return e;
|
|
42
|
-
let u, a;
|
|
43
|
-
switch (n.type) {
|
|
44
|
-
case "pointerdown":
|
|
45
|
-
u = "start", a = m(n.button);
|
|
46
|
-
break;
|
|
47
|
-
case "pointerup":
|
|
48
|
-
u = "end", a = m(n.button);
|
|
49
|
-
break;
|
|
50
|
-
case "pointercancel":
|
|
51
|
-
u = "cancel", a = "none";
|
|
52
|
-
break;
|
|
53
|
-
default:
|
|
54
|
-
u = "move", a = "none";
|
|
55
|
-
}
|
|
56
|
-
const r = c();
|
|
57
|
-
return r.timestamp = performance.now(), r.deviceId = t || (t = `${n.pointerType}-${n.pointerId}`), r.phase = u, r.x = n.clientX, r.y = n.clientY, r.pageX = n.pageX, r.pageY = n.pageY, r.pointerType = h(n.pointerType), r.button = a, r.pressure = n.pressure, p(), e = r, r;
|
|
58
|
-
},
|
|
59
|
-
get isActive() {
|
|
60
|
-
return e !== null;
|
|
61
|
-
},
|
|
62
|
-
reset() {
|
|
63
|
-
p(), t = s ?? "";
|
|
64
|
-
},
|
|
65
|
-
dispose() {
|
|
66
|
-
this.reset();
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
function b(o = {}) {
|
|
71
|
-
return (s) => d((i) => {
|
|
72
|
-
const e = g(o), t = s.subscribe({
|
|
73
|
-
next(c) {
|
|
74
|
-
const p = e.process(c);
|
|
75
|
-
p && i.next(p);
|
|
76
|
-
},
|
|
77
|
-
error(c) {
|
|
78
|
-
i.error?.(c);
|
|
79
|
-
},
|
|
80
|
-
complete() {
|
|
81
|
-
i.complete?.();
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
return () => {
|
|
85
|
-
t(), e.dispose();
|
|
86
|
-
};
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function I(o, s = {}) {
|
|
90
|
-
const { listenerOptions: i, ...e } = s, t = P(o, i);
|
|
91
|
-
return b(e)(t);
|
|
92
|
-
}
|
|
93
|
-
function h(o) {
|
|
94
|
-
switch (o) {
|
|
95
|
-
case "mouse":
|
|
96
|
-
return "mouse";
|
|
97
|
-
case "touch":
|
|
98
|
-
return "touch";
|
|
99
|
-
case "pen":
|
|
100
|
-
return "pen";
|
|
101
|
-
default:
|
|
102
|
-
return "unknown";
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
export {
|
|
106
|
-
g as c,
|
|
107
|
-
P as p,
|
|
108
|
-
I as s,
|
|
109
|
-
b as t
|
|
110
|
-
};
|
|
111
|
-
//# sourceMappingURL=pointer-Cq2B2vwv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointer-Cq2B2vwv.js","sources":["../src/browser/dom-event/pointer-events.ts","../src/browser/single-pointer/pointer-emitter.ts"],"sourcesContent":["import { createStream, type Stream } from \"../../stream/stream.js\";\n\nconst POINTER_EVENTS = [\"pointerdown\", \"pointermove\", \"pointerup\", \"pointercancel\"] as const;\n\nexport function pointerEvents(\n target: EventTarget,\n options?: AddEventListenerOptions,\n): Stream<PointerEvent> {\n return createStream((observer) => {\n const handler = (event: Event) => {\n observer.next(event as PointerEvent);\n };\n\n for (const eventName of POINTER_EVENTS) {\n target.addEventListener(eventName, handler, options);\n }\n\n return () => {\n for (const eventName of POINTER_EVENTS) {\n target.removeEventListener(eventName, handler, options);\n }\n };\n });\n}\n","import type { Operator, Stream } from \"../../stream/stream.js\";\nimport { createStream } from \"../../stream/stream.js\";\nimport { pointerEvents } from \"../dom-event/pointer-events.js\";\nimport { singlePointerPool } from \"./pool.js\";\nimport type { SinglePointer } from \"./single-pointer.js\";\nimport type { PointerButton, PointerPhase, PointerType } from \"./types.js\";\nimport { toPointerButton } from \"./types.js\";\n\nexport interface PointerEmitterOptions {\n deviceId?: string;\n pooling?: boolean;\n}\n\nexport interface PointerEmitter {\n process(event: PointerEvent): SinglePointer | null;\n readonly isActive: boolean;\n reset(): void;\n dispose(): void;\n}\n\nexport function createPointerEmitter(options: PointerEmitterOptions = {}): PointerEmitter {\n const { deviceId: customDeviceId, pooling = false } = options;\n let current: SinglePointer | null = null;\n let resolvedDeviceId = customDeviceId ?? \"\";\n\n function acquirePointer(): SinglePointer {\n if (pooling) {\n return singlePointerPool.acquire();\n }\n return {\n phase: \"move\",\n x: 0,\n y: 0,\n pageX: 0,\n pageY: 0,\n pointerType: \"unknown\",\n button: \"none\",\n pressure: 0.5,\n timestamp: 0,\n deviceId: \"\",\n };\n }\n\n function releaseCurrentPointer(): void {\n if (current && pooling) {\n singlePointerPool.release(current);\n }\n current = null;\n }\n\n return {\n process(event: PointerEvent): SinglePointer | null {\n if (!event.isPrimary) {\n return current;\n }\n\n let phase: PointerPhase;\n let button: PointerButton;\n switch (event.type) {\n case \"pointerdown\":\n phase = \"start\";\n button = toPointerButton(event.button);\n break;\n case \"pointerup\":\n phase = \"end\";\n button = toPointerButton(event.button);\n break;\n case \"pointercancel\":\n phase = \"cancel\";\n button = \"none\";\n break;\n default:\n phase = \"move\";\n button = \"none\";\n }\n\n const pointer = acquirePointer();\n\n pointer.timestamp = performance.now();\n pointer.deviceId =\n resolvedDeviceId || (resolvedDeviceId = `${event.pointerType}-${event.pointerId}`);\n pointer.phase = phase;\n pointer.x = event.clientX;\n pointer.y = event.clientY;\n pointer.pageX = event.pageX;\n pointer.pageY = event.pageY;\n pointer.pointerType = normalizePointerType(event.pointerType);\n pointer.button = button;\n pointer.pressure = event.pressure;\n\n releaseCurrentPointer();\n current = pointer;\n return pointer;\n },\n\n get isActive(): boolean {\n return current !== null;\n },\n\n reset(): void {\n releaseCurrentPointer();\n resolvedDeviceId = customDeviceId ?? \"\";\n },\n\n dispose(): void {\n this.reset();\n },\n };\n}\n\nexport function toSinglePointer(\n options: PointerEmitterOptions = {},\n): Operator<PointerEvent, SinglePointer> {\n return (source) =>\n createStream((observer) => {\n const emitter = createPointerEmitter(options);\n\n const unsub = source.subscribe({\n next(event) {\n const pointer = emitter.process(event);\n if (pointer) {\n observer.next(pointer);\n }\n },\n error(err) {\n observer.error?.(err);\n },\n complete() {\n observer.complete?.();\n },\n });\n\n return () => {\n unsub();\n emitter.dispose();\n };\n });\n}\n\nexport interface SinglePointerOptions extends PointerEmitterOptions {\n listenerOptions?: AddEventListenerOptions;\n}\n\nexport function singlePointer(\n target: EventTarget,\n options: SinglePointerOptions = {},\n): Stream<SinglePointer> {\n const { listenerOptions, ...emitterOptions } = options;\n const source = pointerEvents(target, listenerOptions);\n return toSinglePointer(emitterOptions)(source);\n}\n\nfunction normalizePointerType(type: string): PointerType {\n switch (type) {\n case \"mouse\":\n return \"mouse\";\n case \"touch\":\n return \"touch\";\n case \"pen\":\n return \"pen\";\n default:\n return \"unknown\";\n }\n}\n"],"names":["POINTER_EVENTS","pointerEvents","target","options","createStream","observer","handler","event","eventName","createPointerEmitter","customDeviceId","pooling","current","resolvedDeviceId","acquirePointer","singlePointerPool","releaseCurrentPointer","phase","button","toPointerButton","pointer","normalizePointerType","toSinglePointer","source","emitter","unsub","err","singlePointer","listenerOptions","emitterOptions","type"],"mappings":"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"}
|
package/dist/pool-CM9teIjt.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
function a(e, i, o = {}) {
|
|
2
|
-
const { initialSize: r = 0, maxSize: s = 100 } = o, n = [];
|
|
3
|
-
for (let t = 0; t < r; t++)
|
|
4
|
-
n.push(e());
|
|
5
|
-
return {
|
|
6
|
-
get size() {
|
|
7
|
-
return n.length;
|
|
8
|
-
},
|
|
9
|
-
acquire() {
|
|
10
|
-
return n.length > 0 ? n.pop() : e();
|
|
11
|
-
},
|
|
12
|
-
release(t) {
|
|
13
|
-
n.length < s && (i(t), n.push(t));
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function u() {
|
|
18
|
-
return {
|
|
19
|
-
phase: "move",
|
|
20
|
-
x: 0,
|
|
21
|
-
y: 0,
|
|
22
|
-
pageX: 0,
|
|
23
|
-
pageY: 0,
|
|
24
|
-
pointerType: "unknown",
|
|
25
|
-
button: "none",
|
|
26
|
-
pressure: 0.5,
|
|
27
|
-
timestamp: 0,
|
|
28
|
-
deviceId: ""
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function l(e) {
|
|
32
|
-
e.phase = "move", e.x = 0, e.y = 0, e.pageX = 0, e.pageY = 0, e.pointerType = "unknown", e.button = "none", e.pressure = 0.5, e.timestamp = 0, e.deviceId = "";
|
|
33
|
-
}
|
|
34
|
-
const c = a(u, l, {
|
|
35
|
-
initialSize: 20,
|
|
36
|
-
maxSize: 100
|
|
37
|
-
});
|
|
38
|
-
export {
|
|
39
|
-
a as c,
|
|
40
|
-
c as s
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=pool-CM9teIjt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-CM9teIjt.js","sources":["../src/internal/object-pool.ts","../src/browser/single-pointer/single-pointer.ts","../src/browser/single-pointer/pool.ts"],"sourcesContent":["export interface ObjectPool<T> {\n acquire(): T;\n release(item: T): void;\n readonly size: number;\n}\n\nexport interface ObjectPoolOptions {\n initialSize?: number;\n maxSize?: number;\n}\n\n/**\n * Generic object pool for reusing objects and reducing GC pressure.\n * Useful for high-frequency scenarios like pointer/touch events.\n */\nexport function createObjectPool<T>(\n create: () => T,\n reset: (item: T) => void,\n options: ObjectPoolOptions = {},\n): ObjectPool<T> {\n const { initialSize = 0, maxSize = 100 } = options;\n const pool: T[] = [];\n\n for (let i = 0; i < initialSize; i++) {\n pool.push(create());\n }\n\n return {\n get size() {\n return pool.length;\n },\n\n acquire(): T {\n if (pool.length > 0) {\n return pool.pop()!;\n }\n return create();\n },\n\n release(item: T): void {\n if (pool.length < maxSize) {\n reset(item);\n pool.push(item);\n }\n },\n };\n}\n","import type { PointerButton, PointerPhase, PointerType } from \"./types.js\";\n\n/**\n * Normalized pointer data representing a single point of contact.\n * Abstracts away differences between mouse, touch, and pointer events.\n */\nexport interface SinglePointer {\n phase: PointerPhase;\n x: number;\n y: number;\n pageX: number;\n pageY: number;\n pointerType: PointerType;\n button: PointerButton;\n /** 0.0 ~ 1.0, default 0.5 if unsupported */\n pressure: number;\n timestamp: number;\n deviceId: string;\n}\n\nexport function createDefaultSinglePointer(): SinglePointer {\n return {\n phase: \"move\",\n x: 0,\n y: 0,\n pageX: 0,\n pageY: 0,\n pointerType: \"unknown\",\n button: \"none\",\n pressure: 0.5,\n timestamp: 0,\n deviceId: \"\",\n };\n}\n\nexport function resetSinglePointer(p: SinglePointer): void {\n p.phase = \"move\";\n p.x = 0;\n p.y = 0;\n p.pageX = 0;\n p.pageY = 0;\n p.pointerType = \"unknown\";\n p.button = \"none\";\n p.pressure = 0.5;\n p.timestamp = 0;\n p.deviceId = \"\";\n}\n\nexport function isSinglePointer(value: unknown): value is SinglePointer {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"phase\" in value &&\n \"x\" in value &&\n \"y\" in value &&\n \"pointerType\" in value\n );\n}\n","import { createObjectPool } from \"../../internal/object-pool.js\";\nimport {\n createDefaultSinglePointer,\n resetSinglePointer,\n type SinglePointer,\n} from \"./single-pointer.js\";\n\nexport const singlePointerPool = createObjectPool(createDefaultSinglePointer, resetSinglePointer, {\n initialSize: 20,\n maxSize: 100,\n});\n\nexport function releaseSinglePointer(pointer: SinglePointer): void {\n singlePointerPool.release(pointer);\n}\n"],"names":["createObjectPool","create","reset","options","initialSize","maxSize","pool","i","item","createDefaultSinglePointer","resetSinglePointer","p","singlePointerPool"],"mappings":"AAeO,SAASA,EACdC,GACAC,GACAC,IAA6B,CAAA,GACd;AACf,QAAM,EAAE,aAAAC,IAAc,GAAG,SAAAC,IAAU,QAAQF,GACrCG,IAAY,CAAA;AAElB,WAASC,IAAI,GAAGA,IAAIH,GAAaG;AAC/B,IAAAD,EAAK,KAAKL,GAAQ;AAGpB,SAAO;AAAA,IACL,IAAI,OAAO;AACT,aAAOK,EAAK;AAAA,IACd;AAAA,IAEA,UAAa;AACX,aAAIA,EAAK,SAAS,IACTA,EAAK,IAAA,IAEPL,EAAA;AAAA,IACT;AAAA,IAEA,QAAQO,GAAe;AACrB,MAAIF,EAAK,SAASD,MAChBH,EAAMM,CAAI,GACVF,EAAK,KAAKE,CAAI;AAAA,IAElB;AAAA,EAAA;AAEJ;AC1BO,SAASC,IAA4C;AAC1D,SAAO;AAAA,IACL,OAAO;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAEd;AAEO,SAASC,EAAmBC,GAAwB;AACzD,EAAAA,EAAE,QAAQ,QACVA,EAAE,IAAI,GACNA,EAAE,IAAI,GACNA,EAAE,QAAQ,GACVA,EAAE,QAAQ,GACVA,EAAE,cAAc,WAChBA,EAAE,SAAS,QACXA,EAAE,WAAW,KACbA,EAAE,YAAY,GACdA,EAAE,WAAW;AACf;ACvCO,MAAMC,IAAoBZ,EAAiBS,GAA4BC,GAAoB;AAAA,EAChG,aAAa;AAAA,EACb,SAAS;AACX,CAAC;"}
|
package/dist/pool-Dr67Mz_1.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";function i(e,o,r={}){const{initialSize:s=0,maxSize:u=100}=r,n=[];for(let t=0;t<s;t++)n.push(e());return{get size(){return n.length},acquire(){return n.length>0?n.pop():e()},release(t){n.length<u&&(o(t),n.push(t))}}}function a(){return{phase:"move",x:0,y:0,pageX:0,pageY:0,pointerType:"unknown",button:"none",pressure:.5,timestamp:0,deviceId:""}}function l(e){e.phase="move",e.x=0,e.y=0,e.pageX=0,e.pageY=0,e.pointerType="unknown",e.button="none",e.pressure=.5,e.timestamp=0,e.deviceId=""}const c=i(a,l,{initialSize:20,maxSize:100});exports.createObjectPool=i;exports.singlePointerPool=c;
|
|
2
|
-
//# sourceMappingURL=pool-Dr67Mz_1.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-Dr67Mz_1.cjs","sources":["../src/internal/object-pool.ts","../src/browser/single-pointer/single-pointer.ts","../src/browser/single-pointer/pool.ts"],"sourcesContent":["export interface ObjectPool<T> {\n acquire(): T;\n release(item: T): void;\n readonly size: number;\n}\n\nexport interface ObjectPoolOptions {\n initialSize?: number;\n maxSize?: number;\n}\n\n/**\n * Generic object pool for reusing objects and reducing GC pressure.\n * Useful for high-frequency scenarios like pointer/touch events.\n */\nexport function createObjectPool<T>(\n create: () => T,\n reset: (item: T) => void,\n options: ObjectPoolOptions = {},\n): ObjectPool<T> {\n const { initialSize = 0, maxSize = 100 } = options;\n const pool: T[] = [];\n\n for (let i = 0; i < initialSize; i++) {\n pool.push(create());\n }\n\n return {\n get size() {\n return pool.length;\n },\n\n acquire(): T {\n if (pool.length > 0) {\n return pool.pop()!;\n }\n return create();\n },\n\n release(item: T): void {\n if (pool.length < maxSize) {\n reset(item);\n pool.push(item);\n }\n },\n };\n}\n","import type { PointerButton, PointerPhase, PointerType } from \"./types.js\";\n\n/**\n * Normalized pointer data representing a single point of contact.\n * Abstracts away differences between mouse, touch, and pointer events.\n */\nexport interface SinglePointer {\n phase: PointerPhase;\n x: number;\n y: number;\n pageX: number;\n pageY: number;\n pointerType: PointerType;\n button: PointerButton;\n /** 0.0 ~ 1.0, default 0.5 if unsupported */\n pressure: number;\n timestamp: number;\n deviceId: string;\n}\n\nexport function createDefaultSinglePointer(): SinglePointer {\n return {\n phase: \"move\",\n x: 0,\n y: 0,\n pageX: 0,\n pageY: 0,\n pointerType: \"unknown\",\n button: \"none\",\n pressure: 0.5,\n timestamp: 0,\n deviceId: \"\",\n };\n}\n\nexport function resetSinglePointer(p: SinglePointer): void {\n p.phase = \"move\";\n p.x = 0;\n p.y = 0;\n p.pageX = 0;\n p.pageY = 0;\n p.pointerType = \"unknown\";\n p.button = \"none\";\n p.pressure = 0.5;\n p.timestamp = 0;\n p.deviceId = \"\";\n}\n\nexport function isSinglePointer(value: unknown): value is SinglePointer {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"phase\" in value &&\n \"x\" in value &&\n \"y\" in value &&\n \"pointerType\" in value\n );\n}\n","import { createObjectPool } from \"../../internal/object-pool.js\";\nimport {\n createDefaultSinglePointer,\n resetSinglePointer,\n type SinglePointer,\n} from \"./single-pointer.js\";\n\nexport const singlePointerPool = createObjectPool(createDefaultSinglePointer, resetSinglePointer, {\n initialSize: 20,\n maxSize: 100,\n});\n\nexport function releaseSinglePointer(pointer: SinglePointer): void {\n singlePointerPool.release(pointer);\n}\n"],"names":["createObjectPool","create","reset","options","initialSize","maxSize","pool","i","item","createDefaultSinglePointer","resetSinglePointer","p","singlePointerPool"],"mappings":"aAeO,SAASA,EACdC,EACAC,EACAC,EAA6B,CAAA,EACd,CACf,KAAM,CAAE,YAAAC,EAAc,EAAG,QAAAC,EAAU,KAAQF,EACrCG,EAAY,CAAA,EAElB,QAASC,EAAI,EAAGA,EAAIH,EAAaG,IAC/BD,EAAK,KAAKL,GAAQ,EAGpB,MAAO,CACL,IAAI,MAAO,CACT,OAAOK,EAAK,MACd,EAEA,SAAa,CACX,OAAIA,EAAK,OAAS,EACTA,EAAK,IAAA,EAEPL,EAAA,CACT,EAEA,QAAQO,EAAe,CACjBF,EAAK,OAASD,IAChBH,EAAMM,CAAI,EACVF,EAAK,KAAKE,CAAI,EAElB,CAAA,CAEJ,CC1BO,SAASC,GAA4C,CAC1D,MAAO,CACL,MAAO,OACP,EAAG,EACH,EAAG,EACH,MAAO,EACP,MAAO,EACP,YAAa,UACb,OAAQ,OACR,SAAU,GACV,UAAW,EACX,SAAU,EAAA,CAEd,CAEO,SAASC,EAAmBC,EAAwB,CACzDA,EAAE,MAAQ,OACVA,EAAE,EAAI,EACNA,EAAE,EAAI,EACNA,EAAE,MAAQ,EACVA,EAAE,MAAQ,EACVA,EAAE,YAAc,UAChBA,EAAE,OAAS,OACXA,EAAE,SAAW,GACbA,EAAE,UAAY,EACdA,EAAE,SAAW,EACf,CCvCO,MAAMC,EAAoBZ,EAAiBS,EAA4BC,EAAoB,CAChG,YAAa,GACb,QAAS,GACX,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream/stream.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC;IAErE,+DAA+D;IAC/D,KAAK,IAAI,IAAI,CAAC;IAEd,uDAAuD;IACvD,OAAO,IAAI,IAAI,CAAC;IAEhB,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAE9D,wBAAgB,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAK7F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,IAAI,GACzD,MAAM,CAAC,CAAC,CAAC,CAiCX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-DkXpfiI3.cjs","sources":["../src/browser/single-pointer/types.ts"],"sourcesContent":["export type PointerType = \"touch\" | \"mouse\" | \"pen\" | \"unknown\";\n\nexport type PointerPhase = \"start\" | \"move\" | \"end\" | \"cancel\";\n\nexport type PointerButton = \"none\" | \"primary\" | \"secondary\" | \"auxiliary\" | \"back\" | \"forward\";\n\nexport function toPointerButton(button: number): PointerButton {\n switch (button) {\n case -1:\n return \"none\";\n case 0:\n return \"primary\";\n case 1:\n return \"auxiliary\";\n case 2:\n return \"secondary\";\n case 3:\n return \"back\";\n case 4:\n return \"forward\";\n default:\n return \"none\";\n }\n}\n"],"names":["toPointerButton","button"],"mappings":"aAMO,SAASA,EAAgBC,EAA+B,CAC7D,OAAQA,EAAA,CACN,IAAK,GACH,MAAO,OACT,IAAK,GACH,MAAO,UACT,IAAK,GACH,MAAO,YACT,IAAK,GACH,MAAO,YACT,IAAK,GACH,MAAO,OACT,IAAK,GACH,MAAO,UACT,QACE,MAAO,MAAA,CAEb"}
|