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