@@ -4,6 +4,9 @@ import { CoercibleProperty, Color, Property, View, backgroundColorProperty, back
4
4
import { stepSizeProperty , thumbColorProperty , trackBackgroundColorProperty , trackFillColorProperty } from './cssproperties' ;
5
5
6
6
let ASlider : typeof com . google . android . material . slider . Slider ;
7
+
8
+ const DEFAULT_MIN = 0 ;
9
+ const DEFAULT_MAX = 0 ;
7
10
export function sliderGetEnabledColorStateList ( color : Color , alpha = 255 ) {
8
11
if ( ! color ) {
9
12
return null ;
@@ -12,10 +15,12 @@ export function sliderGetEnabledColorStateList(color: Color, alpha = 255) {
12
15
}
13
16
export const valueProperty = new CoercibleProperty < Slider , number > ( {
14
17
name : 'value' ,
15
- defaultValue : 0 ,
18
+ // defaultValue: 0,
16
19
coerceValue : ( target , value ) => {
17
- value = Math . max ( value , target . minValue ) ;
18
- value = Math . min ( value , target . maxValue ) ;
20
+ if ( target . minValue !== undefined && target . maxValue !== undefined ) {
21
+ value = Math . max ( value , target . minValue ) ;
22
+ value = Math . min ( value , target . maxValue ) ;
23
+ }
19
24
20
25
return value ;
21
26
} ,
@@ -26,7 +31,7 @@ export const valueProperty = new CoercibleProperty<Slider, number>({
26
31
*/
27
32
export const minValueProperty = new Property < Slider , number > ( {
28
33
name : 'minValue' ,
29
- defaultValue : 0 ,
34
+ // defaultValue: 0,
30
35
valueChanged : ( target , oldValue , newValue ) => {
31
36
maxValueProperty . coerce ( target ) ;
32
37
valueProperty . coerce ( target ) ;
@@ -38,7 +43,7 @@ export const minValueProperty = new Property<Slider, number>({
38
43
*/
39
44
export const maxValueProperty = new CoercibleProperty < Slider , number > ( {
40
45
name : 'maxValue' ,
41
- defaultValue : 100 ,
46
+ // defaultValue: 100,
42
47
coerceValue : ( target , value ) => {
43
48
const minValue = target . minValue ;
44
49
if ( value < minValue ) {
@@ -86,9 +91,9 @@ export class Slider extends View {
86
91
}
87
92
}
88
93
} ) ;
94
+ nativeView . setValueFrom ( this . minValue || DEFAULT_MIN ) ;
95
+ nativeView . setValueTo ( this . maxValue || DEFAULT_MAX ) ;
89
96
nativeView . addOnChangeListener ( this . listener ) ;
90
- nativeView . setValueFrom ( this . minValue ) ;
91
- nativeView . setValueTo ( this . maxValue ) ;
92
97
}
93
98
disposeNativeView ( ) {
94
99
if ( this . listener ) {
@@ -138,23 +143,23 @@ export class Slider extends View {
138
143
}
139
144
}
140
145
[ stepSizeProperty . getDefault ] ( ) {
141
- return 0 ;
146
+ return DEFAULT_MIN ;
142
147
}
143
148
[ stepSizeProperty . setNative ] ( value ) {
144
149
this . nativeViewProtected . setStepSize ( value ) ;
145
150
}
146
151
[ valueProperty . setNative ] ( value ) {
147
152
// ensure we set min/max to prevent errors in listviews while reusing cells
148
153
// will sliders with different min/max
149
- this . nativeViewProtected . setValueFrom ( this . minValue ) ;
150
- this . nativeViewProtected . setValueTo ( this . maxValue ) ;
154
+ this . nativeViewProtected . setValueFrom ( this . minValue || DEFAULT_MIN ) ;
155
+ this . nativeViewProtected . setValueTo ( this . maxValue || DEFAULT_MAX ) ;
151
156
this . nativeViewProtected . setValue ( value ) ;
152
157
}
153
158
[ minValueProperty . setNative ] ( value ) {
154
159
this . nativeViewProtected . setValueFrom ( value ) ;
155
160
}
156
161
[ maxValueProperty . getDefault ] ( ) {
157
- return 100 ;
162
+ return DEFAULT_MAX ;
158
163
}
159
164
[ maxValueProperty . setNative ] ( value ) {
160
165
this . nativeViewProtected . setValueTo ( value ) ;
0 commit comments