Example #1
0
 _.each(enums, function (e) {
     if (isNumber(e)) {
         keys.push({key: e, value: enums[e]});
         // Uncomment if you want log
         // console.log('key: ', e, 'value: ', enums[e]);
     }
 });
  static format(defaultLocale: string, value: number, style: NumberFormatStyle, digits: string, currency: string = null, currencyAsSymbol: boolean = false): string {

    if (isBlank(value)) return null;

    if (!isNumber(value)) {

      throw new InvalidPipeArgumentException(LocaleNumber, value);

    }

    var minInt = 1, minFraction = 0, maxFraction = 3;
    var re = RegExpWrapper.create('^(\\d+)?\\.((\\d+)(\\-(\\d+))?)?$');

    if (isPresent(digits)) {

      var parts = RegExpWrapper.firstMatch(re, digits);

      if (isBlank(parts)) {
        throw new BaseException(`${digits} is not a valid digit info for number pipes`);
      }
      if (isPresent(parts[1])) {  // Min integer digits.
        minInt = NumberWrapper.parseIntAutoRadix(parts[1]);
      }
      if (isPresent(parts[3])) {  // Min fraction digits.
        minFraction = NumberWrapper.parseIntAutoRadix(parts[3]);
      }
      if (isPresent(parts[5])) {  // Max fraction digits.
        maxFraction = NumberWrapper.parseIntAutoRadix(parts[5]);
      }

    }

    return NumberFormatter.format(value, defaultLocale, style, {
      minimumIntegerDigits: minInt,
      minimumFractionDigits: minFraction,
      maximumFractionDigits: maxFraction,
      currency: currency,
      currencyAsSymbol: currencyAsSymbol
    });

  }