in packages/core/src/events/synthetic-event-manager.ts [82:108]
private handleWheelEvent(wheelEvent: WheelEvent) {
const { offsetX, offsetY } = wheelEvent
const { wheelState } = this
wheelState.position = Point.fromXY(offsetX, offsetY)
assert(this.rootNode)
const result = this.rootNode.hitTestFromRoot(wheelState.position)
wheelState.path = result.path.map(it => it.target)
wheelState.offset = result.path[0].position
assert(wheelState.path)
assert(wheelState.offset)
const event = new SyntheticWheelEvent('wheel', {
nativeEvent: wheelEvent,
bubbles: wheelEvent.bubbles,
cancelable: wheelEvent.cancelable,
path: wheelState.path,
target: wheelState.path[0],
deltaMode: wheelEvent.deltaMode,
deltaX: wheelEvent.deltaX,
deltaY: wheelEvent.deltaY,
deltaZ: wheelEvent.deltaZ,
offsetX: wheelState.offset.x,
offsetY: wheelState.offset.y,
screenX: wheelState.position.x,
screenY: wheelState.position.y,
})
this.dispatchEvent(event)
}