| Index: third_party/pkg/angular/lib/formatter/currency.dart
|
| diff --git a/third_party/pkg/angular/lib/filter/currency.dart b/third_party/pkg/angular/lib/formatter/currency.dart
|
| similarity index 63%
|
| rename from third_party/pkg/angular/lib/filter/currency.dart
|
| rename to third_party/pkg/angular/lib/formatter/currency.dart
|
| index 0359ae2b6f27ce03003c2ccc308e63e09e4c2c67..b96124b4eaee24249897009a17cd045b29ca8eb9 100644
|
| --- a/third_party/pkg/angular/lib/filter/currency.dart
|
| +++ b/third_party/pkg/angular/lib/formatter/currency.dart
|
| @@ -1,4 +1,4 @@
|
| -part of angular.filter;
|
| +part of angular.formatter_internal;
|
|
|
| /**
|
| * Formats a number as a currency (ie $1,234.56). When no currency symbol is
|
| @@ -10,14 +10,10 @@ part of angular.filter;
|
| * {{ numeric_expression | currency[:symbol[:leading]] }}
|
| *
|
| */
|
| -@NgFilter(name:'currency')
|
| -class CurrencyFilter {
|
| - NumberFormat nf = new NumberFormat();
|
| +@Formatter(name:'currency')
|
| +class Currency implements Function {
|
|
|
| - CurrencyFilter() {
|
| - nf.minimumFractionDigits = 2;
|
| - nf.maximumFractionDigits = 2;
|
| - }
|
| + var _nfs = new Map<String, NumberFormat>();
|
|
|
| /**
|
| * [value]: the value to format
|
| @@ -30,6 +26,14 @@ class CurrencyFilter {
|
| if (value is String) value = double.parse(value);
|
| if (value is! num) return value;
|
| if (value.isNaN) return '';
|
| + var verifiedLocale = Intl.verifiedLocale(Intl.getCurrentLocale(), NumberFormat.localeExists);
|
| + var nf = _nfs[verifiedLocale];
|
| + if (nf == null) {
|
| + nf = new NumberFormat();
|
| + nf.minimumFractionDigits = 2;
|
| + nf.maximumFractionDigits = 2;
|
| + _nfs[verifiedLocale] = nf;
|
| + }
|
| var neg = value < 0;
|
| if (neg) value = -value;
|
| var before = neg ? '(' : '';
|
|
|