@@ -18,7 +18,7 @@ const startPositions: WeakMap<ImageCropElement, {startX: number; startY: number}
1818const dragStartPositions : WeakMap < ImageCropElement , { dragStartX : number ; dragStartY : number } > = new WeakMap ( )
1919const constructedElements : WeakMap < ImageCropElement , { image : HTMLImageElement ; box : HTMLElement } > = new WeakMap ( )
2020
21- function moveCropArea ( event : MouseEvent | KeyboardEvent ) {
21+ function moveCropArea ( event : TouchEvent | MouseEvent | KeyboardEvent ) {
2222 const el = event . currentTarget
2323 if ( ! ( el instanceof ImageCropElement ) ) return
2424 const { box, image} = constructedElements . get ( el ) || { }
@@ -57,10 +57,17 @@ function moveCropArea(event: MouseEvent | KeyboardEvent) {
5757 dragStartX : event . pageX ,
5858 dragStartY : event . pageY
5959 } )
60+ } else if ( event instanceof TouchEvent ) {
61+ // Only support a single touch at a time
62+ const { pageX, pageY} = event . changedTouches [ 0 ]
63+ dragStartPositions . set ( el , {
64+ dragStartX : pageX ,
65+ dragStartY : pageY
66+ } )
6067 }
6168}
6269
63- function updateCropArea ( event : MouseEvent | KeyboardEvent ) {
70+ function updateCropArea ( event : TouchEvent | MouseEvent | KeyboardEvent ) {
6471 const target = event . target
6572 if ( ! ( target instanceof HTMLElement ) ) return
6673
@@ -89,7 +96,7 @@ function updateCropArea(event: MouseEvent | KeyboardEvent) {
8996 if ( deltaX && deltaY ) updateDimensions ( el , deltaX , deltaY , ! ( event instanceof KeyboardEvent ) )
9097}
9198
92- function startUpdate ( event : MouseEvent ) {
99+ function startUpdate ( event : TouchEvent | MouseEvent ) {
93100 const currentTarget = event . currentTarget
94101 if ( ! ( currentTarget instanceof HTMLElement ) ) return
95102
@@ -164,7 +171,7 @@ function setInitialPosition(el: ImageCropElement) {
164171 updateDimensions ( el , side , side )
165172}
166173
167- function stopUpdate ( event : MouseEvent ) {
174+ function stopUpdate ( event : TouchEvent | MouseEvent ) {
168175 const el = event . currentTarget
169176 if ( ! ( el instanceof ImageCropElement ) ) return
170177
0 commit comments