@@ -34,6 +34,14 @@ export class IgxItemListDirective implements OnInit, OnDestroy {
34
34
35
35
public isActive : boolean ;
36
36
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
+
37
45
constructor (
38
46
@Inject ( IGX_TIME_PICKER_COMPONENT ) public timePicker : IgxTimePickerBase ,
39
47
private elementRef : ElementRef ,
@@ -170,24 +178,35 @@ export class IgxItemListDirective implements OnInit, OnDestroy {
170
178
event . preventDefault ( ) ;
171
179
event . stopPropagation ( ) ;
172
180
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 ;
176
185
}
177
186
}
178
187
179
188
/**
180
189
* @hidden @internal
181
190
*/
182
191
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
+ } ;
184
203
this . touchManager . addEventListener ( this . elementRef . nativeElement , 'pan' , this . onPanMove , hammerOptions ) ;
185
204
}
186
205
187
206
/**
188
207
* @hidden @internal
189
208
*/
190
- public ngOnDestroy ( ) {
209
+ public ngOnDestroy ( ) {
191
210
this . touchManager . destroy ( ) ;
192
211
}
193
212
@@ -355,7 +374,7 @@ export class IgxTimeItemDirective {
355
374
private getHourPart ( date : Date ) : string {
356
375
const inputDateParts = DateTimeUtil . parseDateTimeFormat ( this . timePicker . appliedFormat ) ;
357
376
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' ) ;
359
378
const hour = DateTimeUtil . getPartValue ( date , hourPart , hourPart . format . length ) ;
360
379
if ( ampmPart ) {
361
380
const ampm = DateTimeUtil . getPartValue ( date , ampmPart , ampmPart . format . length ) ;
0 commit comments