Index: third_party/pkg/angular/lib/formatter/number.dart |
diff --git a/third_party/pkg/angular/lib/filter/number.dart b/third_party/pkg/angular/lib/formatter/number.dart |
similarity index 69% |
rename from third_party/pkg/angular/lib/filter/number.dart |
rename to third_party/pkg/angular/lib/formatter/number.dart |
index 469bb6f39227275ea4a3519425b4b31bf2e7bba9..1cb2514b6b49aae9bfc93fe5bf8c3c1f153bf5d9 100644 |
--- a/third_party/pkg/angular/lib/filter/number.dart |
+++ b/third_party/pkg/angular/lib/formatter/number.dart |
@@ -1,4 +1,4 @@ |
-part of angular.filter; |
+part of angular.formatter_internal; |
/** |
* Formats a number as text. |
@@ -11,10 +11,10 @@ part of angular.filter; |
* {{ number_expression | number[:fractionSize] }} |
* |
*/ |
-@NgFilter(name:'number') |
-class NumberFilter { |
+@Formatter(name:'number') |
+class Number { |
- Map<num, NumberFormat> nfs = new Map<num, NumberFormat>(); |
+ var _nfs = new Map<String, Map<num, NumberFormat>>(); |
/** |
* [value]: the value to format |
@@ -28,14 +28,16 @@ class NumberFilter { |
if (value is String) value = double.parse(value); |
if (!(value is num)) return value; |
if (value.isNaN) return ''; |
- var nf = nfs[fractionSize]; |
+ var verifiedLocale = Intl.verifiedLocale(Intl.getCurrentLocale(), NumberFormat.localeExists); |
+ _nfs.putIfAbsent(verifiedLocale, () => new Map<num, NumberFormat>()); |
+ var nf = _nfs[verifiedLocale][fractionSize]; |
if (nf == null) { |
nf = new NumberFormat()..maximumIntegerDigits = 9; |
if (fractionSize != null) { |
nf.minimumFractionDigits = fractionSize; |
nf.maximumFractionDigits = fractionSize; |
} |
- nfs[fractionSize] = nf; |
+ _nfs[verifiedLocale][fractionSize] = nf; |
} |
return nf.format(value); |
} |