UNPKG

choerodon-ui

Version:

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

177 lines (132 loc) 5.12 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.trimString = trimString; exports.transformString = transformString; exports.formatString = formatString; exports.formatCurrency = formatCurrency; exports.formatNumber = formatNumber; exports.formatBigNumber = formatBigNumber; exports.formatTemplate = formatTemplate; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _isString = _interopRequireDefault(require("lodash/isString")); var _capitalize = _interopRequireDefault(require("lodash/capitalize")); 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, _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, _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) { var _options$style; formatOne = 1 .toLocaleString((0, _utils.normalizeLanguage)(lang), { style: (_options$style = options.style) !== null && _options$style !== void 0 ? _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 = minimumFractionDigits ? minimumFractionDigits === maximumFractionDigits ? minimumFractionDigits : maximumFractionDigits ? valuePrecision > maximumFractionDigits ? maximumFractionDigits : valuePrecision < minimumFractionDigits ? minimumFractionDigits : valuePrecision : valuePrecision < minimumFractionDigits ? minimumFractionDigits : valuePrecision : 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, "}") : ''; }); } //# sourceMappingURL=index.js.map