choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
192 lines (142 loc) • 5.68 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.formatBigNumber = formatBigNumber;
exports.formatCurrency = formatCurrency;
exports.formatFileSize = formatFileSize;
exports.formatNumber = formatNumber;
exports.formatString = formatString;
exports.formatTemplate = formatTemplate;
exports.transformString = transformString;
exports.trimString = trimString;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _isString = _interopRequireDefault(require("lodash/isString"));
var _defaultTo = _interopRequireDefault(require("lodash/defaultTo"));
var _capitalize = _interopRequireDefault(require("lodash/capitalize"));
var _isNil = _interopRequireDefault(require("lodash/isNil"));
var _bignumber = _interopRequireDefault(require("bignumber.js"));
var _enum = require("../data-set/enum");
var _utils = require("../utils");
function trimString(value, fieldTrim) {
if (fieldTrim) {
switch (fieldTrim) {
case _enum.FieldTrim.both:
return value.trim();
case _enum.FieldTrim.left:
return value.trimLeft();
case _enum.FieldTrim.right:
return value.trimRight();
default:
}
}
return value;
}
function transformString(value, format) {
if (format) {
switch (format) {
case _enum.FieldFormat.uppercase:
return value.toUpperCase();
case _enum.FieldFormat.lowercase:
return value.toLowerCase();
case _enum.FieldFormat.capitalize:
return (0, _capitalize["default"])(value);
default:
}
}
return value;
}
function formatString(value, _ref) {
var trim = _ref.trim,
format = _ref.format;
if ((0, _isString["default"])(value)) {
return transformString(trimString(value, trim), format);
}
return value;
}
function formatCurrency(value, lang, options) {
var v = parseFloat(value);
if (!isNaN(v)) {
if ((0, _utils.toLocaleStringSupportsLocales)()) {
return v.toLocaleString((0, _utils.normalizeLanguage)(lang), (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _utils.getNumberFormatOptions)(_enum.FieldType.currency, options)), options));
}
return (0, _utils.toLocaleStringPolyfill)(v, _enum.FieldType.currency, options);
}
return value;
}
function formatNumber(value, lang, options) {
var v = parseFloat(value);
if (!isNaN(v)) {
if ((0, _utils.toLocaleStringSupportsLocales)()) {
return v.toLocaleString((0, _utils.normalizeLanguage)(lang), (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _utils.getNumberFormatOptions)(_enum.FieldType.number, options)), options));
}
return (0, _utils.toLocaleStringPolyfill)(v, _enum.FieldType.number, options);
}
return value;
}
function formatBigNumber(value, lang, options, bigNumberTarget) {
var valueBig = new _bignumber["default"](value);
if (!(0, _utils.isValidBigNumber)(valueBig)) {
return value;
}
var formatOne = '1';
if ((0, _utils.toLocaleStringSupportsLocales)()) {
if (lang && options && options.currency) {
formatOne = 1 .toLocaleString((0, _utils.normalizeLanguage)(lang), {
style: (0, _defaultTo["default"])(options.style, bigNumberTarget === 'currency' ? 'currency' : 'decimal'),
currency: options.currency,
currencyDisplay: options.currencyDisplay,
maximumFractionDigits: 0
});
}
} else if (options && options.currency) {
formatOne = "".concat(options.currency, " ").concat(formatOne);
}
var decimalPlaces = 0;
var valuePrecision = valueBig.decimalPlaces();
if (options) {
var minimumFractionDigits = options.minimumFractionDigits;
var maximumFractionDigits = options.maximumFractionDigits;
decimalPlaces = !(0, _isNil["default"])(minimumFractionDigits) ? minimumFractionDigits === maximumFractionDigits ? minimumFractionDigits : !(0, _isNil["default"])(maximumFractionDigits) ? valuePrecision > maximumFractionDigits ? maximumFractionDigits : valuePrecision < minimumFractionDigits ? minimumFractionDigits : valuePrecision : valuePrecision < minimumFractionDigits ? minimumFractionDigits : valuePrecision : !(0, _isNil["default"])(maximumFractionDigits) && maximumFractionDigits < valuePrecision ? maximumFractionDigits : valuePrecision;
}
var fmt = {
prefix: '',
decimalSeparator: '.',
groupSeparator: options && options.useGrouping === false ? '' : ',',
groupSize: 3,
secondaryGroupSize: 0,
fractionGroupSeparator: ' ',
fractionGroupSize: 0,
suffix: ''
};
var valueFormat = valueBig.toFormat(decimalPlaces, fmt);
valueFormat = formatOne.replace(/1|一|١/g, valueFormat);
return valueFormat;
}
var nargs = /\{([0-9a-zA-Z_]+)\}/g;
function formatTemplate(string, args, lazy) {
return string.replace(nargs, function (match, i, index) {
if (string[index - 1] === '{' && string[index + match.length] === '}') {
return i;
}
var has = Object.hasOwnProperty.call(args, i);
if (has) {
var result = has ? args[i] : null;
if (result === null || result === undefined) {
return '';
}
return result;
}
return lazy ? "{".concat(i, "}") : '';
});
}
var units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];
function formatFileSize(size) {
var unitIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (size < 1024) {
return "".concat(size).concat(units[unitIndex]);
}
return formatFileSize(Math.round(size / 1024), unitIndex + 1);
}
//# sourceMappingURL=index.js.map
;