@@ -98,6 +98,13 @@ describe('MDC-based MatSlider' , () => {
98
98
setValueByClick ( sliderInstance , 0 , platform . IOS ) ;
99
99
expect ( document . activeElement ) . toBe ( inputInstance . _hostElement ) ;
100
100
} ) ;
101
+
102
+ it ( 'should not break on when the page layout changes' , ( ) => {
103
+ sliderInstance . _elementRef . nativeElement . style . marginLeft = '100px' ;
104
+ setValueByClick ( sliderInstance , 10 , platform . IOS ) ;
105
+ expect ( inputInstance . value ) . toBe ( 10 ) ;
106
+ sliderInstance . _elementRef . nativeElement . style . marginLeft = 'initial' ;
107
+ } ) ;
101
108
} ) ;
102
109
103
110
describe ( 'standard range slider' , ( ) => {
@@ -1891,6 +1898,7 @@ function setValueByClick(slider: MatSlider, value: number, isIOS: boolean) {
1891
1898
const sliderElement = slider . _elementRef . nativeElement ;
1892
1899
const { x, y} = getCoordsForValue ( slider , value ) ;
1893
1900
1901
+ dispatchPointerEvent ( sliderElement , 'mouseenter' , x , y ) ;
1894
1902
dispatchPointerOrTouchEvent ( sliderElement , PointerEventType . POINTER_DOWN , x , y , isIOS ) ;
1895
1903
dispatchPointerOrTouchEvent ( sliderElement , PointerEventType . POINTER_UP , x , y , isIOS ) ;
1896
1904
}
@@ -1901,6 +1909,7 @@ function slideToValue(slider: MatSlider, value: number, thumbPosition: Thumb, is
1901
1909
const { x : startX , y : startY } = getCoordsForValue ( slider , slider . _getInput ( thumbPosition ) . value ) ;
1902
1910
const { x : endX , y : endY } = getCoordsForValue ( slider , value ) ;
1903
1911
1912
+ dispatchPointerEvent ( sliderElement , 'mouseenter' , startX , startY ) ;
1904
1913
dispatchPointerOrTouchEvent ( sliderElement , PointerEventType . POINTER_DOWN , startX , startY , isIOS ) ;
1905
1914
dispatchPointerOrTouchEvent ( sliderElement , PointerEventType . POINTER_MOVE , endX , endY , isIOS ) ;
1906
1915
dispatchPointerOrTouchEvent ( sliderElement , PointerEventType . POINTER_UP , endX , endY , isIOS ) ;
@@ -1921,11 +1930,11 @@ function getCoordsForValue(slider: MatSlider, value: number): Point {
1921
1930
/** Dispatch a pointerdown or pointerup event if supported, otherwise dispatch the touch event. */
1922
1931
function dispatchPointerOrTouchEvent (
1923
1932
node : Node , type : PointerEventType , x : number , y : number , isIOS : boolean ) {
1924
- if ( isIOS ) {
1925
- dispatchTouchEvent ( node , pointerEventTypeToTouchEventType ( type ) , x , y , x , y ) ;
1926
- } else {
1927
- dispatchPointerEvent ( node , type , x , y ) ;
1928
- }
1933
+ if ( isIOS ) {
1934
+ dispatchTouchEvent ( node , pointerEventTypeToTouchEventType ( type ) , x , y , x , y ) ;
1935
+ } else {
1936
+ dispatchPointerEvent ( node , type , x , y ) ;
1937
+ }
1929
1938
}
1930
1939
1931
1940
/** Returns the touch event equivalent of the given pointer event. */
0 commit comments