transform method

  1. @override
String transform(
  1. Duration input,
  2. String locale
)
override

Transforms input into an instance of U using the provided locale.

Implementation

@override
String transform(Duration input, String locale) {
  final sign = input.isNegative ? _Sign.negative : _Sign.positive;
  input = input.abs();

  var time = input.inSeconds.seconds();

  // Perform rounding as dictated by [round] and [granularity].
  if (round) {
    var roundTo = time.getLargestUnit(permissibleUnits: _supportedTimeUnits);

    if (granularity == Granularity.primaryAndSecondaryUnits) {
      roundTo = roundTo.nextSmaller ?? roundTo;
    }

    time = time.round(roundTo);
  }

  // Then transform the rounded value.
  final result = _transformFrom(
    time,
    isRelativeToNow,
    granularity,
    sign,
    locale,
  );
  return result;
}