Files
dify/web/app/components/workflow/utils/pointer-position.ts

35 lines
664 B
TypeScript

export type PointerPosition = {
pageX: number
pageY: number
elementX: number
elementY: number
}
export const DEFAULT_POINTER_POSITION: PointerPosition = {
pageX: 0,
pageY: 0,
elementX: 0,
elementY: 0,
}
type ClientPoint = {
clientX: number
clientY: number
}
export const getPointerPositionFromEvent = (
event: ClientPoint,
container: Element | null | undefined,
): PointerPosition => {
const rect = container?.getBoundingClientRect()
const left = rect?.left ?? 0
const top = rect?.top ?? 0
return {
pageX: event.clientX,
pageY: event.clientY,
elementX: event.clientX - left,
elementY: event.clientY - top,
}
}