lerp method Null safety

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

Linearly interpolate between two themes.

The arguments must not be null.

Implementation

static SfSliderThemeData? lerp(
    SfSliderThemeData? a, SfSliderThemeData? b, double t) {
  if (a == null && b == null) {
    return null;
  }
  return SfSliderThemeData(
      activeTrackHeight:
          lerpDouble(a!.activeTrackHeight, b!.activeTrackHeight, t),
      inactiveTrackHeight:
          lerpDouble(a.inactiveTrackHeight, b.inactiveTrackHeight, t),
      tickSize: Size.lerp(a.tickSize, b.tickSize, t),
      minorTickSize: Size.lerp(a.minorTickSize, b.minorTickSize, t),
      tickOffset: Offset.lerp(a.tickOffset, b.tickOffset, t),
      labelOffset: Offset.lerp(a.labelOffset, b.labelOffset, t),
      inactiveLabelStyle:
          TextStyle.lerp(a.inactiveLabelStyle, b.inactiveLabelStyle, t),
      activeLabelStyle:
          TextStyle.lerp(a.activeLabelStyle, b.activeLabelStyle, t),
      tooltipTextStyle:
          TextStyle.lerp(a.tooltipTextStyle, b.tooltipTextStyle, t),
      inactiveTrackColor:
          Color.lerp(a.inactiveTrackColor, b.inactiveTrackColor, t),
      activeTrackColor: Color.lerp(a.activeTrackColor, b.activeTrackColor, t),
      thumbColor: Color.lerp(a.thumbColor, b.thumbColor, t),
      thumbStrokeColor: Color.lerp(a.thumbStrokeColor, b.thumbStrokeColor, t),
      activeDividerStrokeColor: Color.lerp(
          a.activeDividerStrokeColor, b.activeDividerStrokeColor, t),
      inactiveDividerStrokeColor: Color.lerp(
          a.inactiveDividerStrokeColor, b.inactiveDividerStrokeColor, t),
      activeTickColor: Color.lerp(a.activeTickColor, b.activeTickColor, t),
      inactiveTickColor:
          Color.lerp(a.inactiveTickColor, b.inactiveTickColor, t),
      disabledActiveTickColor:
          Color.lerp(a.disabledActiveTickColor, b.disabledActiveTickColor, t),
      disabledInactiveTickColor: Color.lerp(
          a.disabledInactiveTickColor, b.disabledInactiveTickColor, t),
      activeMinorTickColor:
          Color.lerp(a.activeMinorTickColor, b.activeMinorTickColor, t),
      inactiveMinorTickColor:
          Color.lerp(a.inactiveMinorTickColor, b.inactiveMinorTickColor, t),
      disabledActiveMinorTickColor: Color.lerp(
          a.disabledActiveMinorTickColor, b.disabledActiveMinorTickColor, t),
      disabledInactiveMinorTickColor: Color.lerp(
          a.disabledInactiveMinorTickColor,
          b.disabledInactiveMinorTickColor,
          t),
      overlayColor: Color.lerp(a.overlayColor, b.overlayColor, t),
      inactiveDividerColor:
          Color.lerp(a.inactiveDividerColor, b.inactiveDividerColor, t),
      activeDividerColor:
          Color.lerp(a.activeDividerColor, b.activeDividerColor, t),
      disabledActiveTrackColor: Color.lerp(
          a.disabledActiveTrackColor, b.disabledActiveTrackColor, t),
      disabledInactiveTrackColor: Color.lerp(
          a.disabledInactiveTrackColor, b.disabledInactiveTrackColor, t),
      disabledActiveDividerColor: Color.lerp(
          a.disabledActiveDividerColor, b.disabledActiveDividerColor, t),
      disabledInactiveDividerColor: Color.lerp(
          a.disabledInactiveDividerColor, b.disabledInactiveDividerColor, t),
      disabledThumbColor:
          Color.lerp(a.disabledThumbColor, b.disabledThumbColor, t),
      tooltipBackgroundColor:
          Color.lerp(a.tooltipBackgroundColor, b.tooltipBackgroundColor, t),
      trackCornerRadius:
          lerpDouble(a.trackCornerRadius, b.trackCornerRadius, t),
      overlayRadius: lerpDouble(a.overlayRadius, b.overlayRadius, t),
      thumbRadius: lerpDouble(a.thumbRadius, b.thumbRadius, t),
      activeDividerRadius:
          lerpDouble(a.activeDividerRadius, b.activeDividerRadius, t),
      inactiveDividerRadius:
          lerpDouble(a.inactiveDividerRadius, b.inactiveDividerRadius, t),
      thumbStrokeWidth: lerpDouble(a.thumbStrokeWidth, b.thumbStrokeWidth, t),
      activeDividerStrokeWidth:
          // ignore: lines_longer_than_80_chars
          lerpDouble(a.activeDividerStrokeWidth, b.activeDividerStrokeWidth, t),
      // ignore: lines_longer_than_80_chars
      inactiveDividerStrokeWidth: lerpDouble(a.inactiveDividerStrokeWidth, b.inactiveDividerStrokeWidth, t));
}