@@ -5,12 +5,12 @@ import {
5
5
ViewChild ,
6
6
TemplateRef ,
7
7
ContentChild ,
8
- AfterContentInit ,
9
8
OnDestroy ,
10
9
HostListener ,
11
10
ViewChildren ,
12
11
QueryList ,
13
- ChangeDetectorRef
12
+ ChangeDetectorRef ,
13
+ AfterContentChecked
14
14
} from '@angular/core' ;
15
15
import { ControlValueAccessor , NG_VALUE_ACCESSOR } from '@angular/forms' ;
16
16
import { EditorProvider } from '../core/edit-provider' ;
@@ -63,7 +63,7 @@ export class IgxSliderComponent implements
63
63
EditorProvider ,
64
64
OnInit ,
65
65
AfterViewInit ,
66
- AfterContentInit ,
66
+ AfterContentChecked ,
67
67
OnDestroy {
68
68
69
69
// Limit handle travel zone
@@ -657,7 +657,7 @@ export class IgxSliderComponent implements
657
657
* @hidden
658
658
*/
659
659
@HostListener ( 'pointerdown' , [ '$event' ] )
660
- public onPointerDown ( $event ) {
660
+ public onPointerDown ( $event : PointerEvent ) {
661
661
this . findClosestThumb ( $event ) ;
662
662
663
663
if ( ! this . thumbTo . isActive && this . thumbFrom === undefined ) {
@@ -668,6 +668,7 @@ export class IgxSliderComponent implements
668
668
activeThumb . nativeElement . setPointerCapture ( $event . pointerId ) ;
669
669
this . showSliderIndicators ( ) ;
670
670
671
+ $event . preventDefault ( ) ;
671
672
}
672
673
673
674
@@ -680,6 +681,9 @@ export class IgxSliderComponent implements
680
681
return ;
681
682
}
682
683
684
+ const activeThumb = this . thumbTo . isActive ? this . thumbTo : this . thumbTo ;
685
+ activeThumb . nativeElement . releasePointerCapture ( $event . pointerId ) ;
686
+
683
687
this . hideSliderIndicators ( ) ;
684
688
}
685
689
@@ -709,14 +713,6 @@ export class IgxSliderComponent implements
709
713
this . hideSliderIndicators ( ) ;
710
714
}
711
715
712
- /**
713
- * @hidden
714
- */
715
- @HostListener ( 'tap' , [ '$event' ] )
716
- public onTapListener ( $event ) {
717
- this . onTap ( $event ) ;
718
- }
719
-
720
716
/**
721
717
*Returns whether the `IgxSliderComponent` type is RANGE.
722
718
*```typescript
@@ -874,7 +870,7 @@ export class IgxSliderComponent implements
874
870
/**
875
871
* @hidden
876
872
*/
877
- public ngAfterContentInit ( ) {
873
+ public ngAfterContentChecked ( ) {
878
874
// Calculates the distance between every step in pixels.
879
875
this . stepDistance = this . calculateStepDistance ( ) ;
880
876
}
@@ -920,13 +916,6 @@ export class IgxSliderComponent implements
920
916
return this . isRange ? this . thumbFrom . nativeElement : this . thumbTo . nativeElement ;
921
917
}
922
918
923
- /**
924
- *
925
- * @hidden
926
- */
927
- public onTap ( $event ) {
928
- this . update ( $event . srcEvent . clientX ) ;
929
- }
930
919
/**
931
920
*
932
921
* @hidden
@@ -1006,9 +995,9 @@ export class IgxSliderComponent implements
1006
995
return value ;
1007
996
}
1008
997
1009
- private findClosestThumb ( event ) {
998
+ private findClosestThumb ( event : PointerEvent ) {
1010
999
if ( this . isRange ) {
1011
- this . closestHandle ( event . clientX ) ;
1000
+ this . closestHandle ( event ) ;
1012
1001
} else {
1013
1002
this . thumbTo . nativeElement . focus ( ) ;
1014
1003
}
@@ -1086,15 +1075,19 @@ export class IgxSliderComponent implements
1086
1075
this . updateTrack ( ) ;
1087
1076
}
1088
1077
1089
- private closestHandle ( mouseX ) {
1078
+ private closestHandle ( event : PointerEvent ) {
1090
1079
const fromOffset = this . thumbFrom . nativeElement . offsetLeft + this . thumbFrom . nativeElement . offsetWidth / 2 ;
1091
1080
const toOffset = this . thumbTo . nativeElement . offsetLeft + this . thumbTo . nativeElement . offsetWidth / 2 ;
1092
- const xPointer = mouseX - this . _el . nativeElement . getBoundingClientRect ( ) . left ;
1081
+ const xPointer = event . clientX - this . _el . nativeElement . getBoundingClientRect ( ) . left ;
1093
1082
const match = this . closestTo ( xPointer , [ fromOffset , toOffset ] ) ;
1094
1083
1095
- if ( match === fromOffset ) {
1084
+ if ( fromOffset === toOffset && toOffset < xPointer ) {
1085
+ this . thumbTo . nativeElement . focus ( ) ;
1086
+ } else if ( fromOffset === toOffset && toOffset > xPointer ) {
1087
+ this . thumbFrom . nativeElement . focus ( ) ;
1088
+ } else if ( match === fromOffset ) {
1096
1089
this . thumbFrom . nativeElement . focus ( ) ;
1097
- } else if ( match === toOffset ) {
1090
+ } else {
1098
1091
this . thumbTo . nativeElement . focus ( ) ;
1099
1092
}
1100
1093
}
0 commit comments