@telerik/kendo-intl
Version:
A package exporting functions for date and number parsing and formatting
47 lines (39 loc) • 1.59 kB
JavaScript
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;
}