UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

169 lines (164 loc) 5.81 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import _typeof from '@babel/runtime/helpers/typeof'; import isFunction from 'lodash/isFunction'; import get from 'lodash/get'; import isObject from 'lodash/isObject'; function toString(obj) { return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase(); } function debounce(fn) { var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200; var timer; return function newFn() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var context = this; clearTimeout(timer); timer = setTimeout(function () { fn.apply(context, args); }, delay); }; } function formatRowAttributes(attributes, params) { if (!attributes) return void 0; var attrList = attributes instanceof Array ? attributes : [attributes]; var result = {}; for (var i = 0; i < attrList.length; i++) { var attrItem = attrList[i]; if (!attrItem) continue; var attrProperty = isFunction(attrItem) ? attrItem(params) : attrItem; result = attrProperty instanceof Array ? formatRowAttributes(attrProperty, params) : Object.assign(result, attrProperty); } return result; } function formatRowClassNames(rowClassNames, params, rowKey) { var rowClassList = rowClassNames instanceof Array ? rowClassNames : [rowClassNames]; var row = params.row, rowIndex = params.rowIndex; var customClasses = []; for (var i = 0, len = rowClassList.length; i < len; i++) { var rName = rowClassList[i]; var tClass = isFunction(rName) ? rName(params) : rName; if (isObject(tClass) && !(tClass instanceof Array)) { tClass[rowIndex] && (tClass = tClass[rowIndex]); var rowId = get(row, rowKey || "id"); tClass[rowId] && (tClass = tClass[rowId]); } else if (tClass instanceof Array) { tClass = formatRowClassNames(tClass, params, rowKey); } customClasses = customClasses.concat(tClass); } return customClasses; } function formatClassNames(classNames, params) { var classes = classNames instanceof Array ? classNames : [classNames]; var arr = []; for (var i = 0, len = classes.length; i < len; i++) { var cls = classes[i]; if (isFunction(cls)) { arr.push(cls(params)); } else { arr.push(cls); } } return arr; } var INNER_PRE_NAME = "@@inner-"; var SCROLL_DIRECTION = /* @__PURE__ */function (SCROLL_DIRECTION2) { SCROLL_DIRECTION2["X"] = "x"; SCROLL_DIRECTION2["Y"] = "y"; SCROLL_DIRECTION2["UNKNOWN"] = "unknown"; return SCROLL_DIRECTION2; }(SCROLL_DIRECTION || {}); var preScrollLeft; var preScrollTop; var getScrollDirection = function getScrollDirection(scrollLeft, scrollTop) { var direction = "unknown" /* UNKNOWN */; if (preScrollTop !== scrollTop) { direction = "y" /* Y */; } else if (preScrollLeft !== scrollLeft) { direction = "x" /* X */; } preScrollTop = scrollTop; preScrollLeft = scrollLeft; return direction; }; var getRecord = function getRecord(record) { if (!record) { return record; } var result = {}; Object.keys(record).forEach(function (key) { var descriptor = Object.getOwnPropertyDescriptor(record, key); descriptor && Reflect.defineProperty(result, key, { set: function set(val) { descriptor.set(val); }, get: function get() { console.warn("The parameter `record` will be deprecated, please use `row` instead"); return descriptor.get(); } }); }); return result; }; function getCurrentRowByKey(columns, key) { if (!columns || !key) return; var col = columns === null || columns === void 0 ? void 0 : columns.find(function (t) { return t.colKey === key; }); if (col) return col; for (var i = 0, len = columns.length; i < len; i++) { var _columns$i; if ((_columns$i = columns[i]) !== null && _columns$i !== void 0 && (_columns$i = _columns$i.children) !== null && _columns$i !== void 0 && _columns$i.length) { var _columns$i2; return getCurrentRowByKey((_columns$i2 = columns[i]) === null || _columns$i2 === void 0 ? void 0 : _columns$i2.children, key); } } } function getAffixProps(mainAffixProps, subAffixProps) { if (_typeof(mainAffixProps) === "object") return mainAffixProps; if (_typeof(subAffixProps) === "object") return subAffixProps; return {}; } function getEditableKeysMap(keys, list, rowKey) { var map = {}; for (var i = 0, len = list.length; i < len; i++) { var rowValue = get(list[i], rowKey); if (keys.includes(rowValue)) { map[rowValue] = true; } } return map; } function getColumnDataByKey(columns, colKey) { for (var i = 0, len = columns.length; i < len; i++) { var _columns$i$children; if (columns[i].colKey === colKey) return columns[i]; if ((_columns$i$children = columns[i].children) !== null && _columns$i$children !== void 0 && _columns$i$children.length) { var t = getColumnDataByKey(columns[i].children, colKey); if (t) return t; } } return null; } function getColumnIndexByKey(columns, colKey) { for (var i = 0, len = columns.length; i < len; i++) { var _columns$i$children2; if (columns[i].colKey === colKey) { return i; } if ((_columns$i$children2 = columns[i].children) !== null && _columns$i$children2 !== void 0 && _columns$i$children2.length) { var t = getColumnDataByKey(columns[i].children, colKey); if (t) return i; } } return -1; } export { INNER_PRE_NAME, SCROLL_DIRECTION, debounce, formatClassNames, formatRowAttributes, formatRowClassNames, getAffixProps, getColumnDataByKey, getColumnIndexByKey, getCurrentRowByKey, getEditableKeysMap, getRecord, getScrollDirection, toString }; //# sourceMappingURL=utils.js.map