@@ -8,7 +8,20 @@ const EVENT_NAMESPACE = 'dxWheel';
88const NATIVE_EVENT_NAME = 'wheel' ;
99
1010const PIXEL_MODE = 0 ;
11- const DELTA_MUTLIPLIER = 30 ;
11+ const DELTA_MULTIPLIER = 30 ;
12+
13+ enum DeltaMode {
14+ DOM_DELTA_PIXEL = 0 ,
15+ DOM_DELTA_LINE = 1 ,
16+ DOM_DELTA_PAGE = 2 ,
17+ }
18+
19+ interface WheelEvent {
20+ deltaMode : DeltaMode ;
21+ deltaX : number ;
22+ deltaY : number ;
23+ deltaZ : number ;
24+ }
1225
1326const wheel = {
1427 setup ( element ) {
@@ -23,13 +36,15 @@ const wheel = {
2336 _wheelHandler ( e ) {
2437 const {
2538 deltaMode, deltaY, deltaX, deltaZ,
26- } = e . originalEvent ;
39+ } : WheelEvent = e . originalEvent ;
40+
41+ const delta = this . _getWheelDelta ( deltaY , deltaX ) ;
2742
2843 fireEvent ( {
2944 type : EVENT_NAME ,
3045 originalEvent : e ,
3146 // @ts -expect-error
32- delta : this . _normalizeDelta ( deltaY , deltaMode ) ,
47+ delta : this . _normalizeDelta ( delta , deltaMode ) ,
3348 deltaX,
3449 deltaY,
3550 deltaZ,
@@ -40,13 +55,25 @@ const wheel = {
4055 e . stopPropagation ( ) ;
4156 } ,
4257
43- _normalizeDelta ( delta , deltaMode = PIXEL_MODE ) {
58+ _normalizeDelta ( delta : number , deltaMode = PIXEL_MODE ) {
4459 if ( deltaMode === PIXEL_MODE ) {
4560 return - delta ;
4661 }
4762 // Use multiplier to get rough delta value in px for the LINE or PAGE mode
4863 // https://bugzilla.mozilla.org/show_bug.cgi?id=1392460
49- return - DELTA_MUTLIPLIER * delta ;
64+ return - DELTA_MULTIPLIER * delta ;
65+ } ,
66+
67+ _getWheelDelta ( deltaY : number , deltaX : number ) {
68+ if ( deltaY ) {
69+ return deltaY ;
70+ }
71+
72+ if ( deltaX ) {
73+ return deltaX ;
74+ }
75+
76+ return 0 ;
5077 } ,
5178} ;
5279
0 commit comments