choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
278 lines (211 loc) • 8.07 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.MIN_SAFE_INTEGER = exports.MAX_SAFE_INTEGER = void 0;
exports.getDateFormatByField = getDateFormatByField;
exports.getDateFormatByFieldType = getDateFormatByFieldType;
exports.getGlobalConfig = getGlobalConfig;
exports.getNearStepMomentValues = getNearStepMomentValues;
exports.getNearStepValues = getNearStepValues;
exports.getNumberFormatOptions = getNumberFormatOptions;
exports.isEmpty = isEmpty;
exports.isSame = isSame;
exports.isSameLike = isSameLike;
exports.normalizeLanguage = normalizeLanguage;
exports.parseBigNumber = parseBigNumber;
exports.parseNumber = parseNumber;
exports.toRangeValue = toRangeValue;
exports.warning = warning;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _moment = _interopRequireDefault(require("moment"));
var _mobx = require("mobx");
var _warning = _interopRequireDefault(require("warning"));
var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
var _defaultTo = _interopRequireDefault(require("lodash/defaultTo"));
var _isObject = _interopRequireDefault(require("lodash/isObject"));
var _isNil = _interopRequireDefault(require("lodash/isNil"));
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
var _isString = _interopRequireDefault(require("lodash/isString"));
var _isBoolean = _interopRequireDefault(require("lodash/isBoolean"));
var _bignumber = require("bignumber.js");
var _enum = require("../enum");
var _enum2 = require("../data-set/enum");
var _configure = require("../configure");
var _formatter = require("../formatter");
var _math = _interopRequireDefault(require("../math"));
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || 1 - Math.pow(2, 53);
exports.MIN_SAFE_INTEGER = MIN_SAFE_INTEGER;
var warned = {};
function warning(valid, message) {
if (!valid && !warned[message]) {
(0, _warning["default"])(false, message);
warned[message] = true;
}
}
function isEmpty(value) {
return (0, _isNil["default"])(value) || value === '';
}
function isSame(newValue, oldValue) {
if (newValue === oldValue || isEmpty(newValue) && isEmpty(oldValue)) {
return true;
}
if (_math["default"].isBigNumber(newValue) || _math["default"].isBigNumber(oldValue)) {
return _math["default"].eq(newValue, oldValue);
}
return (0, _isEqual["default"])(newValue, oldValue);
}
function isSameLike(newValue, oldValue) {
/* eslint-disable-next-line */
return isSame(newValue, oldValue) || newValue == oldValue;
}
function parseNumber(value, precision, strict) {
if ((0, _isBoolean["default"])(value)) {
var _result = Number(value);
return strict ? new _bignumber.BigNumber(_result) : _result;
}
var result = new _bignumber.BigNumber((0, _isNumber["default"])(precision) ? _math["default"].toFixed(value, precision) : value);
return strict ? result : _math["default"].fix(result);
}
function parseBigNumber(value, precision) {
return new _bignumber.BigNumber((0, _isNumber["default"])(precision) ? _math["default"].toFixed(value, precision) : value);
}
function getBeforeStepValue(value, min, step, options) {
return _math["default"].minus(value, _math["default"].mod(_math["default"].minus(value, min, options), step, options), options);
}
function getNearStepMoments(value, step, unit) {
var unitValue = value.get(unit);
var mod = unitValue % step;
if (mod !== 0) {
var before = unitValue - mod;
var after = before + step;
return [value.clone().set(unit, before), value.clone().set(unit, after)];
}
}
function getNearStepMomentValues(value, step) {
if (!(0, _isNumber["default"])(step) && !(0, _isString["default"])(step) && !_math["default"].isBigNumber(step)) {
var hour = step.hour,
minute = step.minute,
second = step.second;
if (second) {
return getNearStepMoments(value, second, _enum.TimeUnit.second);
}
if (minute) {
return getNearStepMoments(value, minute, _enum.TimeUnit.minute);
}
if (hour) {
return getNearStepMoments(value, hour, _enum.TimeUnit.hour);
}
}
}
function getNearStepValues(value, step, min, max, options) {
if (!isEmpty(value) && !!step && (_math["default"].isBigNumber(step) || (0, _typeof2["default"])(step) !== 'object')) {
min = (0, _defaultTo["default"])(min, -Infinity);
max = (0, _defaultTo["default"])(max, Infinity); // min 等于最小安全数时, 且 max 小于 0, 设置 step 计算起点为: Math.floor(max / step) * step
var actualMin = _math["default"].isFinite(min) ? min : _math["default"].lt(max, 0) ? _math["default"].multipliedBy(_math["default"].floor(_math["default"].div(max, step, options), options), step, options) : 0;
var beforeStep = getBeforeStepValue(value, actualMin, step, options);
if (_math["default"].eq(beforeStep, value)) {
return undefined;
}
if (_math["default"].gt(beforeStep, max)) {
beforeStep = getBeforeStepValue(max, actualMin, step, options);
} else if (_math["default"].lt(beforeStep, min)) {
beforeStep = min;
}
var afterStep = _math["default"].plus(beforeStep, step, options);
var values = [beforeStep];
if (_math["default"].lte(afterStep, max)) {
values.push(afterStep);
}
return values;
}
}
function getGlobalConfig(key, field) {
if (field) {
return field.dataSet.getConfig(key);
}
return (0, _configure.getConfig)(key);
}
function getDateFormatByFieldType(type, field) {
var formatter = getGlobalConfig('formatter', field);
switch (type) {
case _enum2.FieldType.date:
return formatter.date;
case _enum2.FieldType.dateTime:
return formatter.dateTime;
case _enum2.FieldType.week:
return formatter.week;
case _enum2.FieldType.month:
return formatter.month;
case _enum2.FieldType.year:
return formatter.year;
case _enum2.FieldType.time:
return formatter.time;
default:
return formatter.date;
}
}
function getDateFormatByField(field, type, record) {
if (field) {
return field.get('format', record) || getDateFormatByFieldType(type || field.get('type', record), field);
}
if (type) {
return getDateFormatByFieldType(type, field);
}
return getGlobalConfig('formatter', field).jsonDate || _moment["default"].defaultFormat;
}
function getNumberFormatOptions(type, options) {
if (type === _enum2.FieldType.number) {
return {
style: 'decimal'
};
}
if (options && options.currency) {
return {
style: 'currency'
};
}
return {
style: 'decimal',
minimumFractionDigits: 2,
maximumFractionDigits: 2
};
}
function toRangeValue(value, range) {
if ((0, _mobx.isArrayLike)(range)) {
if ((0, _mobx.isObservableObject)(value)) {
return [(0, _mobx.get)(value, range[0]), (0, _mobx.get)(value, range[1])];
}
if ((0, _isObject["default"])(value)) {
return [value[range[0]], value[range[1]]];
}
} else if ((0, _mobx.isArrayLike)(value)) {
return value.slice(0, 2);
}
return [undefined, undefined];
}
function normalizeLanguage(language) {
return language && language.replace('_', '-').toLowerCase();
}
var _default = {
MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,
MIN_SAFE_INTEGER: MIN_SAFE_INTEGER,
warning: warning,
isEmpty: isEmpty,
isSame: isSame,
isSameLike: isSameLike,
parseNumber: parseNumber,
getNearStepValues: getNearStepValues,
getDateFormatByFieldType: getDateFormatByFieldType,
getDateFormatByField: getDateFormatByField,
getNumberFormatOptions: getNumberFormatOptions,
toRangeValue: toRangeValue,
normalizeLanguage: normalizeLanguage,
parseBigNumber: parseBigNumber,
formatFileSize: _formatter.formatFileSize
};
exports["default"] = _default;
//# sourceMappingURL=index.js.map
;