transform method
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;
}