private handleWheelEvent()

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)
  }