lerp static method

DatePickerThemeData lerp(
  1. DatePickerThemeData? a,
  2. DatePickerThemeData? b,
  3. double t
)

Linearly interpolates between two DatePickerThemeData.

Implementation

static DatePickerThemeData lerp(DatePickerThemeData? a, DatePickerThemeData? b, double t) {
  if (identical(a, b) && a != null) {
    return a;
  }
  return DatePickerThemeData(
    backgroundColor: Color.lerp(a?.backgroundColor, b?.backgroundColor, t),
    elevation: lerpDouble(a?.elevation, b?.elevation, t),
    shadowColor: Color.lerp(a?.shadowColor, b?.shadowColor, t),
    surfaceTintColor: Color.lerp(a?.surfaceTintColor, b?.surfaceTintColor, t),
    shape: ShapeBorder.lerp(a?.shape, b?.shape, t),
    headerBackgroundColor: Color.lerp(a?.headerBackgroundColor, b?.headerBackgroundColor, t),
    headerForegroundColor: Color.lerp(a?.headerForegroundColor, b?.headerForegroundColor, t),
    headerHeadlineStyle: TextStyle.lerp(a?.headerHeadlineStyle, b?.headerHeadlineStyle, t),
    headerHelpStyle: TextStyle.lerp(a?.headerHelpStyle, b?.headerHelpStyle, t),
    weekdayStyle: TextStyle.lerp(a?.weekdayStyle, b?.weekdayStyle, t),
    dayStyle: TextStyle.lerp(a?.dayStyle, b?.dayStyle, t),
    dayForegroundColor: MaterialStateProperty.lerp<Color?>(
      a?.dayForegroundColor,
      b?.dayForegroundColor,
      t,
      Color.lerp,
    ),
    dayBackgroundColor: MaterialStateProperty.lerp<Color?>(
      a?.dayBackgroundColor,
      b?.dayBackgroundColor,
      t,
      Color.lerp,
    ),
    dayOverlayColor: MaterialStateProperty.lerp<Color?>(
      a?.dayOverlayColor,
      b?.dayOverlayColor,
      t,
      Color.lerp,
    ),
    dayShape: MaterialStateProperty.lerp<OutlinedBorder?>(
      a?.dayShape,
      b?.dayShape,
      t,
      OutlinedBorder.lerp,
    ),
    todayForegroundColor: MaterialStateProperty.lerp<Color?>(
      a?.todayForegroundColor,
      b?.todayForegroundColor,
      t,
      Color.lerp,
    ),
    todayBackgroundColor: MaterialStateProperty.lerp<Color?>(
      a?.todayBackgroundColor,
      b?.todayBackgroundColor,
      t,
      Color.lerp,
    ),
    todayBorder: _lerpBorderSide(a?.todayBorder, b?.todayBorder, t),
    yearStyle: TextStyle.lerp(a?.yearStyle, b?.yearStyle, t),
    yearForegroundColor: MaterialStateProperty.lerp<Color?>(
      a?.yearForegroundColor,
      b?.yearForegroundColor,
      t,
      Color.lerp,
    ),
    yearBackgroundColor: MaterialStateProperty.lerp<Color?>(
      a?.yearBackgroundColor,
      b?.yearBackgroundColor,
      t,
      Color.lerp,
    ),
    yearOverlayColor: MaterialStateProperty.lerp<Color?>(
      a?.yearOverlayColor,
      b?.yearOverlayColor,
      t,
      Color.lerp,
    ),
    rangePickerBackgroundColor: Color.lerp(
      a?.rangePickerBackgroundColor,
      b?.rangePickerBackgroundColor,
      t,
    ),
    rangePickerElevation: lerpDouble(a?.rangePickerElevation, b?.rangePickerElevation, t),
    rangePickerShadowColor: Color.lerp(a?.rangePickerShadowColor, b?.rangePickerShadowColor, t),
    rangePickerSurfaceTintColor: Color.lerp(
      a?.rangePickerSurfaceTintColor,
      b?.rangePickerSurfaceTintColor,
      t,
    ),
    rangePickerShape: ShapeBorder.lerp(a?.rangePickerShape, b?.rangePickerShape, t),
    rangePickerHeaderBackgroundColor: Color.lerp(
      a?.rangePickerHeaderBackgroundColor,
      b?.rangePickerHeaderBackgroundColor,
      t,
    ),
    rangePickerHeaderForegroundColor: Color.lerp(
      a?.rangePickerHeaderForegroundColor,
      b?.rangePickerHeaderForegroundColor,
      t,
    ),
    rangePickerHeaderHeadlineStyle: TextStyle.lerp(
      a?.rangePickerHeaderHeadlineStyle,
      b?.rangePickerHeaderHeadlineStyle,
      t,
    ),
    rangePickerHeaderHelpStyle: TextStyle.lerp(
      a?.rangePickerHeaderHelpStyle,
      b?.rangePickerHeaderHelpStyle,
      t,
    ),
    rangeSelectionBackgroundColor: Color.lerp(
      a?.rangeSelectionBackgroundColor,
      b?.rangeSelectionBackgroundColor,
      t,
    ),
    rangeSelectionOverlayColor: MaterialStateProperty.lerp<Color?>(
      a?.rangeSelectionOverlayColor,
      b?.rangeSelectionOverlayColor,
      t,
      Color.lerp,
    ),
    dividerColor: Color.lerp(a?.dividerColor, b?.dividerColor, t),
    inputDecorationTheme: t < 0.5 ? a?.inputDecorationTheme : b?.inputDecorationTheme,
    cancelButtonStyle: ButtonStyle.lerp(a?.cancelButtonStyle, b?.cancelButtonStyle, t),
    confirmButtonStyle: ButtonStyle.lerp(a?.confirmButtonStyle, b?.confirmButtonStyle, t),
    locale: t < 0.5 ? a?.locale : b?.locale,
  );
}