getCurrencyMeta static method
Get the currency meta data
Implementation
static CurrencyMeta getCurrencyMeta(
String castTo, {
required String value,
void Function(num? value)? onChanged,
}) {
final code = castTo.replaceFirst('currency:', '');
final def = _currencyDefinitions[code];
if (def == null) {
throw Exception('Currency not supported: $code');
}
final symbol = def.symbol;
String defaultValue;
CurrencyInputFormatter formatter;
switch (def.position) {
case _SymbolPosition.leading:
defaultValue = '$symbol$value';
formatter = CurrencyInputFormatter(
onValueChange: onChanged,
leadingSymbol: symbol,
);
case _SymbolPosition.leadingWithSpace:
defaultValue = '$symbol $value';
formatter = CurrencyInputFormatter(
onValueChange: onChanged,
leadingSymbol: '$symbol ',
);
case _SymbolPosition.trailing:
defaultValue = '$value$symbol';
formatter = CurrencyInputFormatter(
onValueChange: onChanged,
trailingSymbol: symbol,
);
case _SymbolPosition.trailingWithSpace:
defaultValue = '$value $symbol';
formatter = CurrencyInputFormatter(
onValueChange: onChanged,
trailingSymbol: ' $symbol',
);
}
return CurrencyMeta(
symbol: symbol,
formatter: formatter,
initialValue: defaultValue,
);
}