desire method

SliderTheme desire(
  1. List desirable
)

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)!,
    ),
  );
}