UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

192 lines (142 loc) 5.68 kB
"use strict"; 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