qt-public-ui
Version:
新设计规范下业务组件库
172 lines (170 loc) • 6.87 kB
JavaScript
;
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;
};