interaction-system 1.0.0 → 1.0.1
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/dist/common/TypedEmitter.d.ts +20 -0
- package/dist/common/TypedEmitter.d.ts.map +1 -0
- package/dist/index.cjs.js +17 -15
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +17 -15
- package/dist/index.es.js.map +1 -1
- package/dist/input/KeyInputHandler.d.ts.map +1 -1
- package/dist/interaction/FeaturedInteractionHandler.d.ts.map +1 -1
- package/dist/interaction/InteractionHandler.d.ts.map +1 -1
- package/dist/messages/KeyCodeControlMessage.d.ts.map +1 -1
- package/dist/messages/ScrollControlMessage.d.ts.map +1 -1
- package/dist/messages/TouchControlMessage.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type EventMap = Record<string, any>;
|
|
2
|
+
export type EventKey<T extends EventMap> = string & keyof T;
|
|
3
|
+
export type EventReceiver<T> = (params: T) => void;
|
|
4
|
+
interface Emitter<T extends EventMap> {
|
|
5
|
+
on<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void;
|
|
6
|
+
off<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void;
|
|
7
|
+
emit<K extends EventKey<T>>(eventName: K, params: T[K]): void;
|
|
8
|
+
}
|
|
9
|
+
export declare class TypedEmitter<T extends EventMap> implements Emitter<T> {
|
|
10
|
+
private emitter;
|
|
11
|
+
addEventListener<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void;
|
|
12
|
+
removeEventListener<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void;
|
|
13
|
+
dispatchEvent(event: Event): boolean;
|
|
14
|
+
on<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void;
|
|
15
|
+
once<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void;
|
|
16
|
+
off<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void;
|
|
17
|
+
emit<K extends EventKey<T>>(eventName: K, params: T[K]): boolean;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=TypedEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedEmitter.d.ts","sourceRoot":"","sources":["../../src/common/TypedEmitter.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;AAEnD,UAAU,OAAO,CAAC,CAAC,SAAS,QAAQ;IAChC,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvE,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxE,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACjE;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAsB;IACrC,gBAAgB,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIpF,mBAAmB,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIvF,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIpC,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAItE,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIxE,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIvE,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;CAGnE"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -56,6 +56,7 @@ const _TouchControlMessage = class _TouchControlMessage extends ControlMessage {
|
|
|
56
56
|
toBuffer() {
|
|
57
57
|
const buffer$1 = buffer.Buffer.alloc(_TouchControlMessage.PAYLOAD_LENGTH + 1);
|
|
58
58
|
let offset = 0;
|
|
59
|
+
offset = buffer$1.writeUInt8(0, offset);
|
|
59
60
|
offset = buffer$1.writeUInt8(this.type, offset);
|
|
60
61
|
offset = buffer$1.writeUInt8(this.action, offset);
|
|
61
62
|
offset = buffer$1.writeUInt32BE(0, offset);
|
|
@@ -65,6 +66,7 @@ const _TouchControlMessage = class _TouchControlMessage extends ControlMessage {
|
|
|
65
66
|
offset = buffer$1.writeUInt16BE(this.position.screenSize.width, offset);
|
|
66
67
|
offset = buffer$1.writeUInt16BE(this.position.screenSize.height, offset);
|
|
67
68
|
offset = buffer$1.writeUInt16BE(this.pressure * _TouchControlMessage.MAX_PRESSURE_VALUE, offset);
|
|
69
|
+
offset = buffer$1.writeUInt32BE(0, offset);
|
|
68
70
|
buffer$1.writeUInt32BE(this.buttons, offset);
|
|
69
71
|
return buffer$1;
|
|
70
72
|
}
|
|
@@ -82,7 +84,7 @@ const _TouchControlMessage = class _TouchControlMessage extends ControlMessage {
|
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
86
|
};
|
|
85
|
-
_TouchControlMessage.PAYLOAD_LENGTH = 28;
|
|
87
|
+
_TouchControlMessage.PAYLOAD_LENGTH = 28 + 4;
|
|
86
88
|
_TouchControlMessage.MAX_PRESSURE_VALUE = 65535;
|
|
87
89
|
let TouchControlMessage = _TouchControlMessage;
|
|
88
90
|
class Size {
|
|
@@ -686,14 +688,6 @@ const _InteractionHandler = class _InteractionHandler {
|
|
|
686
688
|
}
|
|
687
689
|
}
|
|
688
690
|
});
|
|
689
|
-
if (this.multiTouchActive) {
|
|
690
|
-
if (this.multiTouchCenter) {
|
|
691
|
-
this.drawCenter(this.multiTouchCenter);
|
|
692
|
-
}
|
|
693
|
-
points.forEach((point) => {
|
|
694
|
-
this.drawPointer(point);
|
|
695
|
-
});
|
|
696
|
-
}
|
|
697
691
|
const hasActionUp = messages.find((message) => {
|
|
698
692
|
return message.action === MotionEvent.ACTION_UP;
|
|
699
693
|
});
|
|
@@ -749,6 +743,7 @@ _InteractionHandler.onKeyEvent = (event) => {
|
|
|
749
743
|
};
|
|
750
744
|
let InteractionHandler = _InteractionHandler;
|
|
751
745
|
const _ScrollControlMessage = class _ScrollControlMessage extends ControlMessage {
|
|
746
|
+
// 1字节代表群控还是单控,后面4字节为底层需要填充
|
|
752
747
|
constructor(position, hScroll, vScroll) {
|
|
753
748
|
super(ControlMessage.TYPE_SCROLL);
|
|
754
749
|
this.position = position;
|
|
@@ -761,13 +756,15 @@ const _ScrollControlMessage = class _ScrollControlMessage extends ControlMessage
|
|
|
761
756
|
toBuffer() {
|
|
762
757
|
const buffer$1 = buffer.Buffer.alloc(_ScrollControlMessage.PAYLOAD_LENGTH + 1);
|
|
763
758
|
let offset = 0;
|
|
759
|
+
offset = buffer$1.writeUInt8(0, offset);
|
|
764
760
|
offset = buffer$1.writeUInt8(this.type, offset);
|
|
765
761
|
offset = buffer$1.writeUInt32BE(this.position.point.x, offset);
|
|
766
762
|
offset = buffer$1.writeUInt32BE(this.position.point.y, offset);
|
|
767
763
|
offset = buffer$1.writeUInt16BE(this.position.screenSize.width, offset);
|
|
768
764
|
offset = buffer$1.writeUInt16BE(this.position.screenSize.height, offset);
|
|
769
|
-
offset = buffer$1.
|
|
770
|
-
buffer$1.
|
|
765
|
+
offset = buffer$1.writeInt16BE(this.hScroll, offset);
|
|
766
|
+
offset = buffer$1.writeInt16BE(this.vScroll, offset);
|
|
767
|
+
buffer$1.writeInt32BE(0, offset);
|
|
771
768
|
return buffer$1;
|
|
772
769
|
}
|
|
773
770
|
toString() {
|
|
@@ -782,7 +779,7 @@ const _ScrollControlMessage = class _ScrollControlMessage extends ControlMessage
|
|
|
782
779
|
};
|
|
783
780
|
}
|
|
784
781
|
};
|
|
785
|
-
_ScrollControlMessage.PAYLOAD_LENGTH =
|
|
782
|
+
_ScrollControlMessage.PAYLOAD_LENGTH = 21;
|
|
786
783
|
let ScrollControlMessage = _ScrollControlMessage;
|
|
787
784
|
const TAG$1 = "[FeaturedTouchHandler]";
|
|
788
785
|
const _FeaturedInteractionHandler = class _FeaturedInteractionHandler extends InteractionHandler {
|
|
@@ -810,8 +807,8 @@ const _FeaturedInteractionHandler = class _FeaturedInteractionHandler extends In
|
|
|
810
807
|
const messages = [];
|
|
811
808
|
const touchOnClient = InteractionHandler.buildTouchOnClient(event, screenInfo);
|
|
812
809
|
if (touchOnClient) {
|
|
813
|
-
const hScroll = event.deltaX > 0 ? -
|
|
814
|
-
const vScroll = event.deltaY > 0 ? -
|
|
810
|
+
const hScroll = event.deltaX > 0 ? -1e3 : event.deltaX < -0 ? 1e3 : 0;
|
|
811
|
+
const vScroll = event.deltaY > 0 ? -1e3 : event.deltaY < -0 ? 1e3 : 0;
|
|
815
812
|
const time = Date.now();
|
|
816
813
|
if (!this.lastScrollEvent || time - this.lastScrollEvent.time > _FeaturedInteractionHandler.SCROLL_EVENT_THROTTLING_TIME || this.lastScrollEvent.vScroll !== vScroll || this.lastScrollEvent.hScroll !== hScroll) {
|
|
817
814
|
this.lastScrollEvent = { time, hScroll, vScroll };
|
|
@@ -978,6 +975,7 @@ const _KeyCodeControlMessage = class _KeyCodeControlMessage extends ControlMessa
|
|
|
978
975
|
toBuffer() {
|
|
979
976
|
const buffer$1 = buffer.Buffer.alloc(_KeyCodeControlMessage.PAYLOAD_LENGTH + 1);
|
|
980
977
|
let offset = 0;
|
|
978
|
+
offset = buffer$1.writeInt8(0, offset);
|
|
981
979
|
offset = buffer$1.writeInt8(this.type, offset);
|
|
982
980
|
offset = buffer$1.writeInt8(this.action, offset);
|
|
983
981
|
offset = buffer$1.writeInt32BE(this.keycode, offset);
|
|
@@ -998,7 +996,7 @@ const _KeyCodeControlMessage = class _KeyCodeControlMessage extends ControlMessa
|
|
|
998
996
|
};
|
|
999
997
|
}
|
|
1000
998
|
};
|
|
1001
|
-
_KeyCodeControlMessage.PAYLOAD_LENGTH = 13;
|
|
999
|
+
_KeyCodeControlMessage.PAYLOAD_LENGTH = 13 + 1;
|
|
1002
1000
|
let KeyCodeControlMessage = _KeyCodeControlMessage;
|
|
1003
1001
|
const _TextControlMessage = class _TextControlMessage extends ControlMessage {
|
|
1004
1002
|
constructor(text) {
|
|
@@ -1843,6 +1841,10 @@ const _KeyInputHandler = class _KeyInputHandler {
|
|
|
1843
1841
|
_KeyInputHandler.repeatCounter = /* @__PURE__ */ new Map();
|
|
1844
1842
|
_KeyInputHandler.listeners = /* @__PURE__ */ new Set();
|
|
1845
1843
|
_KeyInputHandler.handler = (event) => {
|
|
1844
|
+
const target = event.target;
|
|
1845
|
+
if (target instanceof HTMLElement && (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable)) {
|
|
1846
|
+
return;
|
|
1847
|
+
}
|
|
1846
1848
|
const keyboardEvent = event;
|
|
1847
1849
|
const keyCode = KeyToCodeMap.get(keyboardEvent.code);
|
|
1848
1850
|
if (!keyCode) {
|