desire method
Implementation
SliderTheme desire(List desirable) {
final desires = [
this,
...desirable.map((e) {
if (e is Slider) return e;
if (e is SliderTheme) return e.child;
return e;
}).whereType<Slider>()
];
final themes = desirable.map((e) {
if (e is SliderTheme) return e.data;
if (e is SliderThemeData) return e;
return null;
}).whereType<SliderThemeData>();
return SliderTheme(
data: themes.reduce((acc, e) => _mergeSliderTheme(acc, e)),
child: Slider(
value: value,
onChanged: onChanged,
onChangeEnd: onChangeEnd,
onChangeStart: onChangeStart,
min: min,
max: max,
divisions: mapDesire<int, Slider>(desires, (e) => e.divisions),
label: label,
activeColor: mapDesire<Color, Slider>(desires, (e) => e.activeColor),
inactiveColor:
mapDesire<Color, Slider>(desires, (e) => e.inactiveColor),
thumbColor: mapDesire<Color, Slider>(desires, (e) => e.thumbColor),
mouseCursor:
mapDesire<MouseCursor, Slider>(desires, (e) => e.mouseCursor),
semanticFormatterCallback: semanticFormatterCallback,
focusNode: mapDesire<FocusNode, Slider>(desires, (e) => e.focusNode),
autofocus: mapDesire<bool, Slider>(desires, (e) => e.autofocus, false)!,
),
);
}