import { SyntheticWheelEvent } from '../../SyntheticWheelEvent'; import { NativeMouseEvent } from './NativeMouseEvent'; // @ts-ignore: https://github.com/Microsoft/TypeScript/issues/4628 export class NativeWheelEvent extends NativeMouseEvent { //! \see http://stackoverflow.com/questions/5527601/normalizing-mousewheel-speed-across-browsers static normalizeDelta(e: any, delta: number) { return e.deltaMode === 1 ? delta * 40 : e.deltaMode === 2 ? delta * 800 : delta; } static map(e: any) { const ret = new SyntheticWheelEvent(); NativeMouseEvent.init(e, ret); ret.deltaX = NativeWheelEvent.normalizeDelta(e, e.deltaX === undefined ? 0 : e.deltaX); ret.deltaY = NativeWheelEvent.normalizeDelta(e, e.deltaY === undefined ? e.wheelDelta : e.deltaY); return ret; } static readonly target = SyntheticWheelEvent; }