UNPKG

@telerik/kendo-intl

Version:

A package exporting functions for date and number parsing and formatting

47 lines (39 loc) 1.59 kB
import { PERCENT_PLACEHOLDER, CURRENCY_PLACEHOLDER, CURRENCY, PERCENT, EMPTY } from '../common/constants'; import formatCurrencySymbol from './format-currency-symbol'; var literalRegExp = /(\\.)|(['][^']*[']?)|(["][^"]*["]?)/g; var PLACEHOLDER = "__??__"; export function setStyleOptions(formatOptions, info) { var format = formatOptions.format; //multiply number if the format has percent if (format.indexOf(PERCENT_PLACEHOLDER) !== -1) { formatOptions.style = PERCENT; formatOptions.symbol = info.numbers.symbols.percentSign; formatOptions.number *= 100; } if (format.indexOf(CURRENCY_PLACEHOLDER) !== -1) { formatOptions.style = CURRENCY; formatOptions.symbol = formatCurrencySymbol(info); } } export function setFormatLiterals(formatOptions) { var format = formatOptions.format; if (format.indexOf("'") > -1 || format.indexOf("\"") > -1 || format.indexOf("\\") > -1) { var literals = formatOptions.literals = []; formatOptions.format = format.replace(literalRegExp, function(match) { var quoteChar = match.charAt(0).replace("\\", EMPTY); var literal = match.slice(1).replace(quoteChar, EMPTY); literals.push(literal); return PLACEHOLDER; }); } } export function replaceLiterals(number, literals) { var result = number; if (literals) { var length = literals.length; for (var idx = 0; idx < length; idx++) { result = result.replace(PLACEHOLDER, literals[idx]); } } return result; }