xdesign-vue-next
Version:
XDesign Component for vue-next
202 lines (194 loc) • 7.72 kB
JavaScript
/**
* xdesign v1.0.6
* (c) 2023 xdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var cloneDeep = require('lodash/cloneDeep');
var isUndefined = require('lodash/isUndefined');
var isArray = require('lodash/isArray');
var utils_event = require('../utils/event.js');
require('lodash/isFunction');
require('lodash/isString');
require('../utils/helper.js');
require('@babel/runtime/helpers/objectWithoutProperties');
require('@babel/runtime/helpers/slicedToArray');
require('lodash/camelCase');
require('lodash/isNull');
require('lodash/isNumber');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var cloneDeep__default = /*#__PURE__*/_interopDefaultLegacy(cloneDeep);
var isUndefined__default = /*#__PURE__*/_interopDefaultLegacy(isUndefined);
var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var TRANSFER_NAME = "XTransfer";
function findTopNode(vm) {
if (vm.$options.name === "x-transfer") {
return vm;
}
if (vm.$parent) {
return findTopNode(vm.$parent);
}
return vm;
}
function getTransferListOption(prop) {
if (isArray__default["default"](prop)) {
return {
source: prop[0],
target: prop[1]
};
}
return {
source: prop,
target: prop
};
}
function getDataValues(data, filterValues) {
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
_ref$isTreeMode = _ref.isTreeMode,
isTreeMode = _ref$isTreeMode === void 0 ? false : _ref$isTreeMode,
_ref$include = _ref.include,
include = _ref$include === void 0 ? true : _ref$include;
if (isTreeMode) {
var result = [];
if (data) {
for (var i = 0; i < data.length; i++) {
var item = data[i];
var isInclude = filterValues.includes(item.value);
if (!include && isInclude) {
continue;
}
if (item.children && item.children.length > 0) {
var childResult = getDataValues(item.children, filterValues, {
isTreeMode: isTreeMode,
include: include
});
result = result.concat(childResult);
} else if (include && isInclude || !include && !isInclude) {
result.push(item.value);
}
}
}
return result;
}
return data.filter(function (item) {
if (!item) return false;
var isInclude = filterValues.includes(item.value);
return (include && isInclude || !include && !isInclude) && !item.disabled;
}).map(function (item) {
return item.value;
});
}
function getTransferData(data, keys) {
var isTreeMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var list = data.map(function (transferDataItem, index) {
var _transferDataItem$dis;
var labelKey = (keys === null || keys === void 0 ? void 0 : keys.label) || "label";
var valueKey = (keys === null || keys === void 0 ? void 0 : keys.value) || "value";
var disabledKey = (keys === null || keys === void 0 ? void 0 : keys.disabled) || "disabled";
if (isUndefined__default["default"](transferDataItem[labelKey])) {
throw new Error("".concat(labelKey, " is not in DataOption ").concat(JSON.stringify(transferDataItem)));
}
if (isUndefined__default["default"](transferDataItem[valueKey])) {
throw new Error("".concat(valueKey, " is not in DataOption ").concat(JSON.stringify(transferDataItem)));
}
var result = {
label: transferDataItem[labelKey],
value: transferDataItem[valueKey],
key: "key__value_".concat(transferDataItem[valueKey], "_index_").concat(index),
disabled: (_transferDataItem$dis = transferDataItem[disabledKey]) !== null && _transferDataItem$dis !== void 0 ? _transferDataItem$dis : false,
data: transferDataItem
};
if (isTreeMode && transferDataItem.children) {
result.children = getTransferData(transferDataItem.children, keys, true);
}
return result;
});
return list;
}
function isAllNodeValid(data, filterValues, needMatch) {
if (filterValues.includes(data.value)) {
return needMatch;
}
return false;
}
function isTreeNodeValid(data, filterValues, needMatch) {
var _data$children;
if (!data) return !needMatch;
if (filterValues.includes(data.value)) {
return needMatch;
}
if ((_data$children = data.children) !== null && _data$children !== void 0 && _data$children.length) {
return data.children.some(function (item) {
return isTreeNodeValid(item, filterValues, needMatch);
});
}
return !needMatch;
}
function cloneTreeWithFilter(sourceTree, targetTree, filterValues, needMatch) {
sourceTree.forEach(function (item) {
var newNode;
if (isAllNodeValid(item, filterValues, needMatch)) {
newNode = cloneDeep__default["default"](item);
targetTree.push(newNode);
} else if (isTreeNodeValid(item, filterValues, needMatch)) {
newNode = _objectSpread({}, item);
delete newNode.children;
targetTree.push(newNode);
if (item.children) {
newNode.children = [];
cloneTreeWithFilter(item.children, newNode.children, filterValues, needMatch);
if (newNode.children.length === 0) {
delete newNode.children;
}
}
}
});
}
function filterTransferData(data, filterValues) {
var needMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var isTreeMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
if (!isTreeMode) {
if (needMatch) {
return filterValues.map(function (value) {
return data.find(function (item) {
return item.value === value;
});
}).filter(function (item) {
return !!item;
});
}
return data.filter(function (item) {
var isMatch = filterValues.includes(item.value);
return !isMatch;
});
}
var result = [];
cloneTreeWithFilter(data, result, filterValues, needMatch);
return result;
}
function getLefCount(nodes) {
var total = 0;
nodes.forEach(function (child) {
if (child.children && child.children.length > 0) {
total += getLefCount(child.children);
} else {
total += 1;
}
});
return total;
}
exports.emitEvent = utils_event.emitEvent;
exports.TRANSFER_NAME = TRANSFER_NAME;
exports.cloneTreeWithFilter = cloneTreeWithFilter;
exports.filterTransferData = filterTransferData;
exports.findTopNode = findTopNode;
exports.getDataValues = getDataValues;
exports.getLefCount = getLefCount;
exports.getTransferData = getTransferData;
exports.getTransferListOption = getTransferListOption;
//# sourceMappingURL=utils.js.map