value property

void value=(double? newValue)

Implementation

set value(double? newValue) {
  if (newValue == null) return;

  final cleanValue = double.parse(newValue.toStringAsFixed(2));
  final formattedText = formater.format(cleanValue.clamp(0, max));
  final currentTextOffset = controller.selection.baseOffset;
  final newSymbols =
      findNewSymbols(formattedText, fixNumbers(controller.text));
  log("$currentTextOffset + $newSymbols = ${currentTextOffset + newSymbols}");
  controller.value = TextEditingValue(
      text: formattedText,
      selection: TextSelection.collapsed(
          offset: (currentTextOffset + newSymbols)
              .clamp(-10, formattedText.length)));

  currentValue.value = (cleanValue / max).clamp(0, 1);
  percent.value = (cleanValue * 100 ~/ max).clamp(0, 100);
}