UNPKG

@aplus-frontend/antdv

Version:

Vue basic component library maintained based on ant-design-vue

55 lines (54 loc) 1.98 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _vue = require("vue"); var _legacyUtil = require("../utils/legacyUtil"); var _default = (treeData, searchValue, _ref) => { let { treeNodeFilterProp, filterTreeNode, fieldNames } = _ref; return (0, _vue.computed)(() => { const { children: fieldChildren } = fieldNames.value; const searchValueVal = searchValue.value; const treeNodeFilterPropValue = treeNodeFilterProp === null || treeNodeFilterProp === void 0 ? void 0 : treeNodeFilterProp.value; if (!searchValueVal || filterTreeNode.value === false) { return treeData.value; } let filterOptionFunc; if (typeof filterTreeNode.value === 'function') { filterOptionFunc = filterTreeNode.value; } else { const upperStr = searchValueVal.toUpperCase(); filterOptionFunc = (_, dataNode) => { const value = dataNode[treeNodeFilterPropValue]; return String(value).toUpperCase().includes(upperStr); }; } function dig(list) { let keepAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; const res = []; for (let index = 0, len = list.length; index < len; index++) { const dataNode = list[index]; const children = dataNode[fieldChildren]; const match = keepAll || filterOptionFunc(searchValueVal, (0, _legacyUtil.fillLegacyProps)(dataNode)); const childList = dig(children || [], match); if (match || childList.length) { res.push((0, _extends2.default)((0, _extends2.default)({}, dataNode), { [fieldChildren]: childList })); } } return res; } return dig(treeData.value); }); }; exports.default = _default;