UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

172 lines (170 loc) 6.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.emptyFun = exports.checkEmpty = exports.assert = void 0; exports.formartBiz = formartBiz; exports.getTextWidthAndHeight = exports.getPopupContainer = exports.getCycleColor = exports.getCeaseDiff = exports.formatValue = void 0; Object.defineProperty(exports, "i18n", { enumerable: true, get: function get() { return _i18n["default"]; } }); exports.removeProperty = exports.notEmpty = exports.loadScript = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _g = _interopRequireDefault(require("../../theme/g2.var")); var _i18n = _interopRequireDefault(require("./i18n")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var assert = exports.assert = function assert(condition, message) { if (!condition) return; if (message instanceof Error) { throw message; } else { throw new Error(message); } }; var checkEmpty = exports.checkEmpty = function checkEmpty(value, defaultValue) { return [null, false, undefined, '', NaN].includes(value) ? defaultValue : value; }; // 仅判断字面量是否为空 var notEmpty = exports.notEmpty = function notEmpty(value) { if ([null, false, undefined, '', NaN].includes(value)) { return false; } if ((0, _typeof2["default"])(value) === 'object') { return Object.keys(value).length !== 0; } return true; }; var numberWithCommas = function numberWithCommas(x) { if (x === null || x === undefined) return '-'; var parts = x.toString().split('.'); parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','); if (parts[1] === '00') { // 当value是整数时,不需要保留两位小数 parts.splice(1, 1); } return parts.join('.'); }; var formatValue = exports.formatValue = function formatValue() { var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'string'; var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-'; return function (value) { var checkedVal = checkEmpty(value, defaultValue); if (checkedVal === defaultValue) return checkedVal; switch (type) { case 'string': return checkedVal; case 'number': return numberWithCommas(checkedVal); case 'decimal': return checkedVal.toFixed(2); case 'percent': return "".concat(numberWithCommas(checkedVal), "%"); case 'decimal_percent': return "".concat(numberWithCommas(checkedVal.toFixed(2)), "%"); default: return checkedVal; } }; }; var emptyFun = exports.emptyFun = function emptyFun() {}; var getCycleColor = exports.getCycleColor = function getCycleColor(name) { var colorList = _g["default"][name] || []; var index = 0; return { next: function next() { if (index >= colorList.length) index = 0; return colorList[index++]; }, reset: function reset() { index = 0; } }; }; var removeProperty = exports.removeProperty = function removeProperty(target) { if (Array.isArray(target)) { return target.map(function (tar) { return removeProperty(tar); }); } var _result = _objectSpread({}, target); for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { keys[_key - 1] = arguments[_key]; } keys.forEach(function (key) { delete _result[key]; }); return _result; }; var getCeaseDiff = exports.getCeaseDiff = function getCeaseDiff() { var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var prevValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var operator = value.length < prevValue.length ? 'delete' : 'add'; var diff = ''; if (operator === 'delete') { diff = prevValue.find(function (prev) { return !value.includes(prev); }) || ''; } else { diff = value.find(function (val) { return !prevValue.includes(val); }) || ''; } return [diff, operator]; }; var loadScript = exports.loadScript = function loadScript(url, cb) { var el = document.createElement('script'); el.charset = 'utf-8'; el.onload = function () { el.onload = null; cb && cb(); }; document.querySelectorAll('head')[0].appendChild(el); el.src = url; }; function formartBiz(num) { return parseFloat(String(Number.isNaN(num) ? 0 : num)).toLocaleString(); } var getPopupContainer = exports.getPopupContainer = function getPopupContainer(triggerNode) { var currentEle = triggerNode; while (currentEle && currentEle.parentElement) { var computedStyle = getComputedStyle(currentEle.parentElement); if (/^(auto)|(scroll)$/.test(computedStyle.getPropertyValue('overflow-y')) && currentEle.parentElement.scrollHeight > currentEle.parentElement.clientHeight) { if (computedStyle.getPropertyValue('position') === 'static') { currentEle.parentElement.style.position = 'relative'; } return currentEle.parentElement; } else { currentEle = currentEle.parentElement; } } return document.body; }; var getTextWidthAndHeight = exports.getTextWidthAndHeight = function getTextWidthAndHeight(text, fontSize, fontFamily) { var text_span = document.createElement('span'); var result = { width: 0, height: 0 }; result.width = text_span.offsetWidth; result.height = text_span.offsetHeight; text_span.style.visibility = 'hidden'; text_span.style.fontSize = fontSize || '12px'; text_span.style.fontFamily = fontFamily || 'Alibaba-PuHuiTi-Regular'; text_span.style.display = 'inline-block'; document.body.appendChild(text_span); if (typeof text_span.textContent !== 'undefined') { text_span.textContent = text; } else { text_span.innerText = text; } result.width = parseFloat(window.getComputedStyle(text_span).width) - result.width; result.height = parseFloat(window.getComputedStyle(text_span).height) - result.height; document.body.removeChild(text_span); return result; };