File tree Expand file tree Collapse file tree 4 files changed +63
-2
lines changed
Expand file tree Collapse file tree 4 files changed +63
-2
lines changed Original file line number Diff line number Diff line change 1+ ## 1.0.0+5
2+
3+ - Fix group of negative numbers.
4+
15## 1.0.0+4
26
37- Allow disable fix number.
Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ class TextNumberFilter {
3434 bool limitedNumber = false ;
3535 bool limitedInteger = false ;
3636 bool ? limitedDecimal;
37+ bool isNegative = false ;
3738 bool numberStarted = false ;
3839 bool hasNumber = false ;
3940 bool foundNumbers = false ;
@@ -81,6 +82,7 @@ class TextNumberFilter {
8182 bool filterNext (int value, int index, LookupTextValueEditor state) {
8283 bool allow = false ;
8384 if (! numberStarted && options.allowNegative && value == _negative) {
85+ isNegative = true ;
8486 allow = true ;
8587 } else if (decimalPoint == null ) {
8688 if (_number_0 <= value && value <= _number_9) {
@@ -315,9 +317,14 @@ class TextNumberFilter {
315317 void groupDigits () {
316318 if (options.groupDigits != null ) {
317319 var index = integerDigits;
320+ var startPoint = 0 ;
321+ if (isNegative) {
322+ index += 1 ;
323+ startPoint = 1 ;
324+ }
318325 while (true ) {
319326 index -= options.groupDigits! ;
320- if (index < 1 ) {
327+ if (index <= startPoint ) {
321328 break ;
322329 }
323330 editor.insert (index, groupSeparator);
Original file line number Diff line number Diff line change 11name : number_text_input_formatter
22description : Number Text Input Formatter for Flutter
3- version : 1.0.0+4
3+ version : 1.0.0+5
44
55homepage : https://github.com/joutvhu/number_text_input_formatter
66repository : https://github.com/joutvhu/number_text_input_formatter.git
Original file line number Diff line number Diff line change @@ -410,6 +410,56 @@ void main() {
410410 expect (result.text, '-2454.41' );
411411 });
412412
413+ test ('allow_negative_4' , () {
414+ var result = NumberTextInputFormatter (
415+ integerDigits: 13 ,
416+ decimalDigits: 2 ,
417+ groupDigits: 3 ,
418+ allowNegative: true ,
419+ ).formatEditUpdate (
420+ const TextEditingValue (
421+ text: '' ,
422+ ),
423+ const TextEditingValue (
424+ text: '-245.41' ,
425+ ),
426+ );
427+ expect (result.text, '-245.41' );
428+ });
429+
430+ test ('allow_negative_5' , () {
431+ var result = NumberTextInputFormatter (
432+ integerDigits: 13 ,
433+ decimalDigits: 2 ,
434+ groupDigits: 3 ,
435+ allowNegative: true ,
436+ ).formatEditUpdate (
437+ const TextEditingValue (
438+ text: '' ,
439+ ),
440+ const TextEditingValue (
441+ text: '-2405.41' ,
442+ ),
443+ );
444+ expect (result.text, '-2,405.41' );
445+ });
446+
447+ test ('allow_negative_6' , () {
448+ var result = NumberTextInputFormatter (
449+ integerDigits: 13 ,
450+ decimalDigits: 2 ,
451+ allowNegative: true ,
452+ ).formatEditUpdate (
453+ const TextEditingValue (
454+ text: '' ,
455+ ),
456+ const TextEditingValue (
457+ text: '--245.41' ,
458+ ),
459+ );
460+ expect (result.text, '-245.41' );
461+ });
462+
413463 test ('insert_decimal_point_1' , () {
414464 var result = NumberTextInputFormatter (
415465 integerDigits: 13 ,
You can’t perform that action at this time.
0 commit comments