UNPKG

ant-design-vue

Version:

An enterprise-class UI design language and Vue-based implementation

207 lines (166 loc) 6.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.convertChildrenToData = convertChildrenToData; exports.fillAdditionalInfo = fillAdditionalInfo; exports.fillLegacyProps = fillLegacyProps; var _vue = require("vue"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _propsUtil = require("../../_util/props-util"); var _warning = require("../../vc-util/warning"); var _TreeNode = _interopRequireDefault(require("../TreeNode")); var __rest = void 0 && (void 0).__rest || function (s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; } if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; function isTreeSelectNode(node) { return node && node.type && node.type.isTreeSelectNode; } function convertChildrenToData(rootNodes) { function dig() { var treeNodes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return (0, _propsUtil.filterEmpty)(treeNodes).map(function (treeNode) { var _a, _b, _c; // Filter invalidate node if (!isTreeSelectNode(treeNode)) { (0, _warning.warning)(!treeNode, 'TreeSelect/TreeSelectNode can only accept TreeSelectNode as children.'); return null; } var slots = treeNode.children || {}; var key = treeNode.key; var props = {}; for (var _i = 0, _Object$entries = Object.entries(treeNode.props); _i < _Object$entries.length; _i++) { var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2), k = _Object$entries$_i[0], v = _Object$entries$_i[1]; props[(0, _vue.camelize)(k)] = v; } var isLeaf = props.isLeaf, checkable = props.checkable, selectable = props.selectable, disabled = props.disabled, disableCheckbox = props.disableCheckbox; // 默认值为 undefined var newProps = { isLeaf: isLeaf || isLeaf === '' || undefined, checkable: checkable || checkable === '' || undefined, selectable: selectable || selectable === '' || undefined, disabled: disabled || disabled === '' || undefined, disableCheckbox: disableCheckbox || disableCheckbox === '' || undefined }; var slotsProps = (0, _extends2.default)((0, _extends2.default)({}, props), newProps); var _props$title = props.title, title = _props$title === void 0 ? (_a = slots.title) === null || _a === void 0 ? void 0 : _a.call(slots, slotsProps) : _props$title, _props$switcherIcon = props.switcherIcon, switcherIcon = _props$switcherIcon === void 0 ? (_b = slots.switcherIcon) === null || _b === void 0 ? void 0 : _b.call(slots, slotsProps) : _props$switcherIcon, rest = __rest(props, ["title", "switcherIcon"]); var children = (_c = slots.default) === null || _c === void 0 ? void 0 : _c.call(slots); var dataNode = (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, rest), { title: title, switcherIcon: switcherIcon, key: key, isLeaf: isLeaf }), newProps); var parsedChildren = dig(children); if (parsedChildren.length) { dataNode.children = parsedChildren; } return dataNode; }); } return dig(rootNodes); } function fillLegacyProps(dataNode) { // Skip if not dataNode exist if (!dataNode) { return dataNode; } var cloneNode = (0, _extends2.default)({}, dataNode); if (!('props' in cloneNode)) { Object.defineProperty(cloneNode, 'props', { get: function get() { (0, _warning.warning)(false, 'New `vc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access.'); return cloneNode; } }); } return cloneNode; } function fillAdditionalInfo(extra, triggerValue, checkedValues, treeData, showPosition, fieldNames) { var triggerNode = null; var nodeList = null; function generateMap() { function dig(list) { var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; var parentIncluded = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; return list.map(function (option, index) { var pos = "".concat(level, "-").concat(index); var value = option[fieldNames.value]; var included = checkedValues.includes(value); var children = dig(option[fieldNames.children] || [], pos, included); var node = (0, _vue.createVNode)(_TreeNode.default, option, { default: function _default() { return [children.map(function (child) { return child.node; })]; } }); // Link with trigger node if (triggerValue === value) { triggerNode = node; } if (included) { var checkedNode = { pos: pos, node: node, children: children }; if (!parentIncluded) { nodeList.push(checkedNode); } return checkedNode; } return null; }).filter(function (node) { return node; }); } if (!nodeList) { nodeList = []; dig(treeData); // Sort to keep the checked node length nodeList.sort(function (_ref, _ref2) { var val1 = _ref.node.props.value; var val2 = _ref2.node.props.value; var index1 = checkedValues.indexOf(val1); var index2 = checkedValues.indexOf(val2); return index1 - index2; }); } } Object.defineProperty(extra, 'triggerNode', { get: function get() { (0, _warning.warning)(false, '`triggerNode` is deprecated. Please consider decoupling data with node.'); generateMap(); return triggerNode; } }); Object.defineProperty(extra, 'allCheckedNodes', { get: function get() { (0, _warning.warning)(false, '`allCheckedNodes` is deprecated. Please consider decoupling data with node.'); generateMap(); if (showPosition) { return nodeList; } return nodeList.map(function (_ref3) { var node = _ref3.node; return node; }); } }); }