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
+
1
5
## 1.0.0+4
2
6
3
7
- Allow disable fix number.
Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ class TextNumberFilter {
34
34
bool limitedNumber = false ;
35
35
bool limitedInteger = false ;
36
36
bool ? limitedDecimal;
37
+ bool isNegative = false ;
37
38
bool numberStarted = false ;
38
39
bool hasNumber = false ;
39
40
bool foundNumbers = false ;
@@ -81,6 +82,7 @@ class TextNumberFilter {
81
82
bool filterNext (int value, int index, LookupTextValueEditor state) {
82
83
bool allow = false ;
83
84
if (! numberStarted && options.allowNegative && value == _negative) {
85
+ isNegative = true ;
84
86
allow = true ;
85
87
} else if (decimalPoint == null ) {
86
88
if (_number_0 <= value && value <= _number_9) {
@@ -315,9 +317,14 @@ class TextNumberFilter {
315
317
void groupDigits () {
316
318
if (options.groupDigits != null ) {
317
319
var index = integerDigits;
320
+ var startPoint = 0 ;
321
+ if (isNegative) {
322
+ index += 1 ;
323
+ startPoint = 1 ;
324
+ }
318
325
while (true ) {
319
326
index -= options.groupDigits! ;
320
- if (index < 1 ) {
327
+ if (index <= startPoint ) {
321
328
break ;
322
329
}
323
330
editor.insert (index, groupSeparator);
Original file line number Diff line number Diff line change 1
1
name : number_text_input_formatter
2
2
description : Number Text Input Formatter for Flutter
3
- version : 1.0.0+4
3
+ version : 1.0.0+5
4
4
5
5
homepage : https://github.com/joutvhu/number_text_input_formatter
6
6
repository : 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() {
410
410
expect (result.text, '-2454.41' );
411
411
});
412
412
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
+
413
463
test ('insert_decimal_point_1' , () {
414
464
var result = NumberTextInputFormatter (
415
465
integerDigits: 13 ,
You can’t perform that action at this time.
0 commit comments