@@ -34,6 +34,14 @@ export class IgxItemListDirective implements OnInit, OnDestroy {
3434
3535 public isActive : boolean ;
3636
37+ private readonly SCROLL_THRESHOLD = 15 ;
38+ private readonly PAN_THRESHOLD = 10 ;
39+
40+ /**
41+ * accumulates wheel scrolls and triggers a change action above SCROLL_THRESHOLD
42+ */
43+ private scrollAccumulator = 0 ;
44+
3745 constructor (
3846 @Inject ( IGX_TIME_PICKER_COMPONENT ) public timePicker : IgxTimePickerBase ,
3947 private elementRef : ElementRef ,
@@ -170,24 +178,35 @@ export class IgxItemListDirective implements OnInit, OnDestroy {
170178 event . preventDefault ( ) ;
171179 event . stopPropagation ( ) ;
172180
173- const delta = event . deltaY ;
174- if ( delta !== 0 ) {
175- this . nextItem ( delta ) ;
181+ this . scrollAccumulator += event . deltaY ;
182+ if ( Math . abs ( this . scrollAccumulator ) > this . SCROLL_THRESHOLD ) {
183+ this . nextItem ( this . scrollAccumulator ) ;
184+ this . scrollAccumulator = 0 ;
176185 }
177186 }
178187
179188 /**
180189 * @hidden @internal
181190 */
182191 public ngOnInit ( ) {
183- const hammerOptions : HammerOptions = { recognizers : [ [ HammerGesturesManager . Hammer ?. Pan , { direction : HammerGesturesManager . Hammer ?. DIRECTION_VERTICAL , threshold : 10 } ] ] } ;
192+ const hammerOptions : HammerOptions = {
193+ recognizers : [
194+ [
195+ HammerGesturesManager . Hammer ?. Pan ,
196+ {
197+ direction : HammerGesturesManager . Hammer ?. DIRECTION_VERTICAL ,
198+ threshold : this . PAN_THRESHOLD
199+ }
200+ ]
201+ ]
202+ } ;
184203 this . touchManager . addEventListener ( this . elementRef . nativeElement , 'pan' , this . onPanMove , hammerOptions ) ;
185204 }
186205
187206 /**
188207 * @hidden @internal
189208 */
190- public ngOnDestroy ( ) {
209+ public ngOnDestroy ( ) {
191210 this . touchManager . destroy ( ) ;
192211 }
193212
@@ -355,7 +374,7 @@ export class IgxTimeItemDirective {
355374 private getHourPart ( date : Date ) : string {
356375 const inputDateParts = DateTimeUtil . parseDateTimeFormat ( this . timePicker . appliedFormat ) ;
357376 const hourPart = inputDateParts . find ( element => element . type === 'hours' ) ;
358- const ampmPart = inputDateParts . find ( element => element . format . indexOf ( 'a' ) !== - 1 || element . format === 'tt' ) ;
377+ const ampmPart = inputDateParts . find ( element => element . format . indexOf ( 'a' ) !== - 1 || element . format === 'tt' ) ;
359378 const hour = DateTimeUtil . getPartValue ( date , hourPart , hourPart . format . length ) ;
360379 if ( ampmPart ) {
361380 const ampm = DateTimeUtil . getPartValue ( date , ampmPart , ampmPart . format . length ) ;
0 commit comments