1- // eslint-disable-next-line
2- const nipplejs = require ( "nipplejs" ) ;
3-
41import { CommandInterface } from "emulators" ;
52import { Layers } from "../../dom/layers" ;
63
74import { mount } from "./mouse-common" ;
85
9- const repeatInterval = 16 ;
10- const repeatThreshold = 300 * 300 ;
116const clickDelay = 500 ;
127const clickThreshold = 50 ;
138
149export function mouseSwipe ( sensitivity : number , layers : Layers , ci : CommandInterface ) {
1510 const el = layers . mouseOverlay ;
1611
1712 let startedAt = - 1 ;
18- let intervalId = - 1 ;
19- let accX = 0 ;
20- let accY = 0 ;
2113 let acc = 0 ;
22-
23- const installRepeat = ( mX : number , mY : number ) => {
24- intervalId = setInterval ( ( ) => {
25- ( ci as any ) . sendMouseRelativeMotion ( mX * sensitivity / 10 , mY * sensitivity / 10 ) ;
26- } , repeatInterval ) as any ;
27- } ;
28-
29- const removeRepeat = ( ) => {
30- if ( intervalId !== - 1 ) {
31- clearInterval ( intervalId ) ;
32- intervalId = - 1 ;
33- }
34- } ;
35-
3614 let prevX = 0 ;
3715 let prevY = 0 ;
3816
3917 const onMouseDown = ( x : number , y : number ) => {
40- removeRepeat ( ) ;
41-
4218 startedAt = Date . now ( ) ;
43- accX = 0 ;
44- accY = 0 ;
4519 acc = 0 ;
4620 prevX = x ;
4721 prevY = y ;
4822 } ;
4923
5024 function onMouseMove ( x : number , y : number , mX : number , mY : number ) {
51- removeRepeat ( ) ;
52-
5325 if ( mX === undefined ) {
5426 mX = x - prevX ;
5527 }
@@ -65,20 +37,12 @@ export function mouseSwipe(sensitivity: number, layers: Layers, ci: CommandInter
6537 return ;
6638 }
6739
68- accX += mX ;
69- accY += mY ;
70-
7140 acc += Math . abs ( mX ) + Math . abs ( mY ) ;
7241
7342 ( ci as any ) . sendMouseRelativeMotion ( mX * sensitivity * 2 , mY * sensitivity * 2 ) ;
74- if ( accX * accX + accY * accY > repeatThreshold ) {
75- installRepeat ( accX , accY ) ;
76- }
7743 }
7844
7945 const onMouseUp = ( x : number , y : number ) => {
80- removeRepeat ( ) ;
81-
8246 const delay = Date . now ( ) - startedAt ;
8347
8448 if ( delay < clickDelay && acc < clickThreshold ) {
0 commit comments