tdesign-vue
Version:
351 lines (339 loc) • 12.8 kB
JavaScript
/**
* tdesign v1.12.1
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var utils_event = require('../utils/event.js');
var cloneDeep = require('../_chunks/dep-bda7e2bd.js');
var _arrayFilter = require('../_chunks/dep-dd8aea11.js');
var _baseForOwn = require('../_chunks/dep-de009b1f.js');
var isArrayLike = require('../_chunks/dep-ddc1429e.js');
var isArray = require('../_chunks/dep-9b72cbc5.js');
require('../utils/helper.js');
require('@babel/runtime/helpers/objectWithoutProperties');
require('@babel/runtime/helpers/slicedToArray');
require('../_chunks/dep-bf70543d.js');
require('../_chunks/dep-f895c884.js');
require('../_chunks/dep-e1cc6f64.js');
require('../_chunks/dep-5ea2b00f.js');
require('@babel/runtime/helpers/typeof');
require('../_chunks/dep-7b78e8c3.js');
require('../_chunks/dep-d7270eaf.js');
require('../_chunks/dep-68f48b50.js');
require('../_chunks/dep-051ce30d.js');
require('../_chunks/dep-4b30bfe2.js');
require('../_chunks/dep-b0b39c86.js');
require('../_chunks/dep-403352a7.js');
require('../_chunks/dep-cca66fee.js');
require('../_chunks/dep-4361b357.js');
require('../_chunks/dep-887c649b.js');
require('../_chunks/dep-411a10dd.js');
require('../_chunks/dep-51fe98f1.js');
require('../_chunks/dep-3d682642.js');
require('../_chunks/dep-dea23841.js');
require('../_chunks/dep-4aa08166.js');
require('../_chunks/dep-65896ff9.js');
require('../_chunks/dep-b65b2f55.js');
require('../_chunks/dep-6e7b8cda.js');
require('../_chunks/dep-563168ba.js');
require('../_chunks/dep-ed8c3176.js');
require('../_chunks/dep-28836b00.js');
require('../_chunks/dep-35eb80a8.js');
require('../_chunks/dep-a8feef06.js');
require('../_chunks/dep-361a995e.js');
require('../_chunks/dep-165bd1be.js');
require('../_chunks/dep-e1bd36c1.js');
require('../_chunks/dep-2d46186d.js');
require('../_chunks/dep-08d7842c.js');
require('../_chunks/dep-459d78d6.js');
require('../_chunks/dep-98f48ff2.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
/**
* Creates a `baseEach` or `baseEachRight` function.
*
* @private
* @param {Function} eachFunc The function to iterate over a collection.
* @param {boolean} [fromRight] Specify iterating from right to left.
* @returns {Function} Returns the new base function.
*/
function createBaseEach(eachFunc, fromRight) {
return function (collection, iteratee) {
if (collection == null) {
return collection;
}
if (!isArrayLike.isArrayLike(collection)) {
return eachFunc(collection, iteratee);
}
var length = collection.length,
index = fromRight ? length : -1,
iterable = Object(collection);
while (fromRight ? index-- : ++index < length) {
if (iteratee(iterable[index], index, iterable) === false) {
break;
}
}
return collection;
};
}
/**
* The base implementation of `_.forEach` without support for iteratee shorthands.
*
* @private
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} iteratee The function invoked per iteration.
* @returns {Array|Object} Returns `collection`.
*/
var baseEach = createBaseEach(_baseForOwn.baseForOwn);
/**
* The base implementation of `_.filter` without support for iteratee shorthands.
*
* @private
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} predicate The function invoked per iteration.
* @returns {Array} Returns the new filtered array.
*/
function baseFilter(collection, predicate) {
var result = [];
baseEach(collection, function (value, index, collection) {
if (predicate(value, index, collection)) {
result.push(value);
}
});
return result;
}
/**
* Iterates over elements of `collection`, returning an array of all elements
* `predicate` returns truthy for. The predicate is invoked with three
* arguments: (value, index|key, collection).
*
* **Note:** Unlike `_.remove`, this method returns a new array.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new filtered array.
* @see _.reject
* @example
*
* var users = [
* { 'user': 'barney', 'age': 36, 'active': true },
* { 'user': 'fred', 'age': 40, 'active': false }
* ];
*
* _.filter(users, function(o) { return !o.active; });
* // => objects for ['fred']
*
* // The `_.matches` iteratee shorthand.
* _.filter(users, { 'age': 36, 'active': true });
* // => objects for ['barney']
*
* // The `_.matchesProperty` iteratee shorthand.
* _.filter(users, ['active', false]);
* // => objects for ['fred']
*
* // The `_.property` iteratee shorthand.
* _.filter(users, 'active');
* // => objects for ['barney']
*
* // Combining several predicates using `_.overEvery` or `_.overSome`.
* _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));
* // => objects for ['fred', 'barney']
*/
function filter(collection, predicate) {
var func = isArray.isArray(collection) ? _arrayFilter.arrayFilter : baseFilter;
return func(collection, _baseForOwn.baseIteratee(predicate));
}
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) { _defineProperty__default["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 TRANSFER_NAME = "TTransfer";
var SOURCE = "source";
var TARGET = "target";
function findTopNode(vm) {
if (vm.$options.name === TRANSFER_NAME) {
return vm;
}
if (vm.$parent) {
return findTopNode(vm.$parent);
}
return vm;
}
function getTransferListOption(prop) {
if (Array.isArray(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,
_ref$remainValue = _ref.remainValue,
remainValue = _ref$remainValue === void 0 ? [] : _ref$remainValue;
if (isTreeMode) {
var result = [];
if (data) {
for (var i = 0; i < data.length; i++) {
var _item$children;
var item = data[i];
var isInclude = filterValues.includes(item.value) && !item.disabled;
if (!include && isInclude) {
continue;
}
if (item !== null && item !== void 0 && item.children && ((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _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) {
var isInclude = filterValues.includes(item.value);
return (include && isInclude || !include && !isInclude) && (!item.disabled || remainValue.includes(item.value));
}).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 (transferDataItem[labelKey] === void 0) {
throw "".concat(labelKey, " is not in DataOption ").concat(JSON.stringify(transferDataItem));
}
if (transferDataItem[valueKey] === void 0) {
throw "".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 && transferDataItem.children.length > 0) {
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) {
if (filterValues.includes(data.value)) {
return needMatch;
}
if (data !== null && data !== void 0 && data.children) {
return data === null || data === void 0 ? void 0 : 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.cloneDeep(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) {
var dataMap = new Map(data.map(function (item) {
return [item.value, item];
}));
return filterValues.map(function (value) {
return dataMap.get(value);
}).filter(Boolean);
}
return data.filter(function (item) {
var isMatch = filterValues.includes(item.value);
return !isMatch;
});
}
var result = [];
cloneTreeWithFilter(data, result, filterValues, needMatch);
return result;
}
function getLeafCount(nodes) {
var total = 0;
nodes.forEach(function (child) {
if (child.children && child.children.length > 0) {
total += getLeafCount(child.children);
} else {
total += 1;
}
});
return total;
}
function filterTreeData(tree, filterStr) {
var res = filter(cloneDeep.cloneDeep(tree), function (node) {
var _node$children;
if (node.label.toLowerCase().indexOf(filterStr.toLowerCase()) > -1) {
return true;
}
if ((node === null || node === void 0 || (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.length) > 0) {
node.children = filterTreeData(node.children, filterStr);
return node.children.length > 0;
}
return false;
});
return res;
}
exports.emitEvent = utils_event.emitEvent;
exports.SOURCE = SOURCE;
exports.TARGET = TARGET;
exports.TRANSFER_NAME = TRANSFER_NAME;
exports.cloneTreeWithFilter = cloneTreeWithFilter;
exports.filterTransferData = filterTransferData;
exports.filterTreeData = filterTreeData;
exports.findTopNode = findTopNode;
exports.getDataValues = getDataValues;
exports.getLeafCount = getLeafCount;
exports.getTransferData = getTransferData;
exports.getTransferListOption = getTransferListOption;
//# sourceMappingURL=utils.js.map