2
2
import { findInArray , isFunction , int } from './shims' ;
3
3
import browserPrefix , { getPrefix , browserPrefixToStyle , browserPrefixToKey } from './getPrefix' ;
4
4
5
+ import type DraggableCore from '../DraggableCore' ;
5
6
import type { ControlPosition } from './types' ;
6
7
7
8
let matchesSelectorFunc = '' ;
@@ -95,9 +96,9 @@ export function innerWidth(node: HTMLElement): number {
95
96
}
96
97
97
98
// Get from offsetParent
98
- export function offsetXYFromParentOf ( evt : { clientX : number , clientY : number } , node : HTMLElement & { offsetParent : HTMLElement } ) : ControlPosition {
99
- const offsetParent = node . offsetParent || document . body ;
100
- const offsetParentRect = node . offsetParent === document . body ? { left : 0 , top : 0 } : offsetParent . getBoundingClientRect ( ) ;
99
+ export function offsetXYFromParentOf ( evt : { clientX : number , clientY : number } , node : HTMLElement & { offsetParent : HTMLElement } , draggableCore : DraggableCore ) : ControlPosition {
100
+ const offsetParent = draggableCore . props . offsetParent || node . offsetParent || document . body ;
101
+ const offsetParentRect = offsetParent ? { left : 0 , top : 0 } : offsetParent . getBoundingClientRect ( ) ;
101
102
102
103
const x = evt . clientX + offsetParent . scrollLeft - offsetParentRect . left ;
103
104
const y = evt . clientY + offsetParent . scrollTop - offsetParentRect . top ;
@@ -116,12 +117,12 @@ export function createSVGTransform({x, y}: {x: number, y: number}): string {
116
117
117
118
export function getTouch ( e : MouseEvent , identifier : number ) : ?{ clientX: number , clientY : number } {
118
119
return ( e . targetTouches && findInArray ( e . targetTouches , t => identifier === t . identifier ) ) ||
119
- ( e . changedTouches && findInArray ( e . changedTouches , t => identifier === t . identifier ) ) ;
120
+ ( e . changedTouches && findInArray ( e . changedTouches , t => identifier === t . identifier ) ) ;
120
121
}
121
122
122
123
export function getTouchIdentifier ( e : MouseEvent ) : ?number {
123
124
if ( e . targetTouches && e . targetTouches [ 0 ] ) return e . targetTouches [ 0 ] . identifier ;
124
- if ( e . changedTouches && e . changedTouches [ 0 ] ) return e . changedTouches [ 0 ] . identifier ;
125
+ if ( e . changedTouches && e . changedTouches [ 0 ] ) return e . changedTouches [ 0 ] . identifier ;
125
126
}
126
127
127
128
// User-select Hacks:
0 commit comments