UNPKG

@txdfe/at

Version:

一个设计体系组件库

960 lines (776 loc) 33.4 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _select = _interopRequireDefault(require("../select")); var _tree = _interopRequireDefault(require("../tree")); var _util = require("../tree/view/util"); var _util2 = require("../util"); var _excluded = ["children"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } 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(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; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var noop = function noop() {}; var TreeNode = _tree["default"].Node; var pickOthers = _util2.obj.pickOthers; /** * TreeSelect */ var TreeSelect = /*#__PURE__*/function (_Component) { _inherits(TreeSelect, _Component); var _super = _createSuper(TreeSelect); function TreeSelect(_props, context) { var _this; _classCallCheck(this, TreeSelect); _this = _super.call(this, _props, context); _defineProperty(_assertThisInitialized(_this), "updateCache", function (props) { _this._k2n = {}; _this._p2n = {}; _this._v2n = {}; if ('dataSource' in props) { var loop = function loop(data) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; return data.map(function (item, index) { var value = item.value, children = item.children; var pos = "".concat(prefix, "-").concat(index); var key = item.key || pos; var newItem = _objectSpread(_objectSpread({}, item), {}, { key: key, pos: pos }); if (children && children.length) { newItem.children = loop(children, pos); } _this._k2n[key] = _this._p2n[pos] = _this._v2n[value] = newItem; return newItem; }); }; loop(props.dataSource); } else if ('children' in props) { var _loop = function _loop(children) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; return _react.Children.map(children, function (node, index) { if (! /*#__PURE__*/_react["default"].isValidElement(node)) { return; } var _node$props = node.props, value = _node$props.value, children = _node$props.children; var pos = "".concat(prefix, "-").concat(index); var key = node.key || pos; var newItem = _objectSpread(_objectSpread({}, node.props), {}, { key: key, pos: pos }); if (children && _react.Children.count(children)) { newItem.children = _loop(children, pos); } _this._k2n[key] = _this._p2n[pos] = _this._v2n[value] = newItem; return newItem; }); }; _loop(props.children); } }); _defineProperty(_assertThisInitialized(_this), "getKeysByValue", function (value) { return value.reduce(function (ret, v) { var k = _this._v2n[v] && _this._v2n[v].key; if (k) { ret.push(k); } else { // value不在dataSource中,将value作为key ret.push(v); } return ret; }, []); }); _defineProperty(_assertThisInitialized(_this), "getValueByKeys", function (keys) { return keys.map(function (k) { return typeof _this._k2n[k].value === 'undefined' ? k : _this._k2n[k].value; }); }); _defineProperty(_assertThisInitialized(_this), "getValueForSelect", function (value) { var treeCheckedStrategy = _this.props.treeCheckedStrategy; var keys = _this.getKeysByValue(value); var keyNotInDataSource = keys.find(function (k) { return typeof _this._k2n[k] === 'undefined'; }); keys = (0, _util.getAllCheckedKeys)(keys, _this._k2n, _this._p2n); switch (treeCheckedStrategy) { case 'parent': keys = (0, _util.filterChildKey)(keys, _this._k2n); break; case 'child': keys = (0, _util.filterParentKey)(keys, _this._k2n); break; default: break; } var result = _this.getValueByKeys(keys); if (typeof keyNotInDataSource !== 'undefined') { result.push(keyNotInDataSource); } return result; }); _defineProperty(_assertThisInitialized(_this), "getData", function (value, forSelect) { return value.reduce(function (ret, v) { var k = _this._v2n[v] && _this._v2n[v].key; if (k) { var _this$_k2n$k = _this._k2n[k], label = _this$_k2n$k.label, pos = _this$_k2n$k.pos, disabled = _this$_k2n$k.disabled, checkboxDisabled = _this$_k2n$k.checkboxDisabled; var d = { value: v, label: label, pos: pos }; if (forSelect) { d.disabled = disabled || checkboxDisabled; } else { d.key = k; } ret.push(d); } else { // 不存在强行构造 ret.push({ value: v, label: '', pos: '' }); } return ret; }, []); }); _defineProperty(_assertThisInitialized(_this), "saveTreeRef", function (ref) { _this.tree = ref; }); _defineProperty(_assertThisInitialized(_this), "saveSelectRef", function (ref) { _this.select = ref; }); _defineProperty(_assertThisInitialized(_this), "handleVisibleChange", function (visible, type) { if (!('visible' in _this.props)) { _this.setState({ visible: visible }); } if (['fromTree', 'keyboard'].indexOf(type) !== -1 && !visible) { _this.select.focusInput(); } _this.props.onVisibleChange(visible, type); }); _defineProperty(_assertThisInitialized(_this), "handleSelect", function (selectedKeys, extra) { var _this$props = _this.props, multiple = _this$props.multiple, onChange = _this$props.onChange; var selected = extra.selected; if (multiple || selected) { var value = _this.getValueByKeys(selectedKeys); if (!('value' in _this.props)) { _this.setState({ value: value }); } if (!multiple) { _this.handleVisibleChange(false, 'fromTree'); } var data = _this.getData(value); multiple ? onChange(value, data) : onChange(value[0], data[0]); } else { _this.handleVisibleChange(false, 'fromTree'); } }); _defineProperty(_assertThisInitialized(_this), "handleCheck", function (checkedKeys) { var onChange = _this.props.onChange; var value = _this.getValueByKeys(checkedKeys); var keys = _this.getKeysByValue(_this.state.value); var keyNotInDataSource = keys.find(function (k) { return typeof _this._k2n[k] === 'undefined'; }); if (typeof keyNotInDataSource !== 'undefined') { value.push(keyNotInDataSource); } if (!('value' in _this.props)) { _this.setState({ value: value }); } onChange(value, _this.getData(value)); }); _defineProperty(_assertThisInitialized(_this), "handleRemove", function (removedItem) { var removedValue = removedItem.value; var _this$props2 = _this.props, treeCheckable = _this$props2.treeCheckable, treeCheckStrictly = _this$props2.treeCheckStrictly, treeCheckedStrategy = _this$props2.treeCheckedStrategy, onChange = _this$props2.onChange; var value; if (treeCheckable && !treeCheckStrictly && treeCheckedStrategy === 'all') { var removedPos = _this._v2n[removedValue].pos; value = _this.state.value.filter(function (v) { var p = _this._v2n[v].pos; return !(0, _util.isDescendantOrSelf)(removedPos, p); }); var nums = removedPos.split('-'); for (var i = nums.length; i > 2; i--) { var parentPos = nums.slice(0, i - 1).join('-'); var parentValue = _this._p2n[parentPos].value; var parentIndex = value.indexOf(parentValue); if (parentIndex > -1) { value.splice(parentIndex, 1); } else { break; } } } else { value = _this.state.value.filter(function (v) { return v !== removedValue; }); } if (!('value' in _this.props)) { _this.setState({ value: value }); } var data = _this.getData(value); onChange(value, data); }); _defineProperty(_assertThisInitialized(_this), "handleSearch", function (searchedValue) { var searchedKeys = []; var retainedKeys = []; Object.keys(_this._k2n).forEach(function (k) { var _this$_k2n$k2 = _this._k2n[k], label = _this$_k2n$k2.label, pos = _this$_k2n$k2.pos; if (_this.isSearched(label, searchedValue)) { searchedKeys.push(k); var posArr = pos.split('-'); posArr.forEach(function (n, i) { if (i > 0) { var p = posArr.slice(0, i + 1).join('-'); var kk = _this._p2n[p].key; if (retainedKeys.indexOf(kk) === -1) { retainedKeys.push(kk); } } }); } }); _this.setState({ searchedValue: searchedValue, expandedKeys: searchedKeys, autoExpandParent: true }); _this.searchedKeys = searchedKeys; _this.retainedKeys = retainedKeys; _this.props.onSearch(searchedValue); }); _defineProperty(_assertThisInitialized(_this), "handleSearchClear", function (triggerType) { _this.setState({ searchedValue: '', expandedKeys: [] }); _this.props.onSearchClear(triggerType); }); _defineProperty(_assertThisInitialized(_this), "handleExpand", function (expandedKeys) { _this.setState({ expandedKeys: expandedKeys, autoExpandParent: false }); }); _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (e) { var onKeyDown = _this.props.onKeyDown; var visible = _this.state.visible; if (onKeyDown) { onKeyDown(e); } if (!visible) { return; } switch (e.keyCode) { case _util2.KEYCODE.UP: case _util2.KEYCODE.DOWN: _this.tree.setFocusKey(); e.preventDefault(); break; default: break; } }); _defineProperty(_assertThisInitialized(_this), "handleChange", function () { // 单选时点击清空按钮 var _this$props3 = _this.props, hasClear = _this$props3.hasClear, multiple = _this$props3.multiple, treeCheckable = _this$props3.treeCheckable; if (hasClear && (!multiple || !treeCheckable)) { if (!('value' in _this.props)) { _this.setState({ value: [] }); } _this.props.onChange(null, null); } }); _defineProperty(_assertThisInitialized(_this), "isSearched", function (label, searchedValue) { var labelString = ''; var loop = function loop(arg) { if ( /*#__PURE__*/(0, _react.isValidElement)(arg) && arg.props.children) { _react.Children.forEach(arg.props.children, loop); } else if (typeof arg === 'string') { labelString += arg; } }; loop(label); if (labelString.length >= searchedValue.length && labelString.indexOf(searchedValue) > -1) { return true; } return false; }); _defineProperty(_assertThisInitialized(_this), "searchNodes", function (children) { var loop = function loop(children) { var retainedNodes = []; _react.Children.forEach(children, function (child) { if (_this.searchedKeys.indexOf(child.key) > -1) { retainedNodes.push(child); } else if (_this.retainedKeys.indexOf(child.key) > -1) { var retainedNode = child.props.children ? /*#__PURE__*/(0, _react.cloneElement)(child, {}, loop(child.props.children)) : child; retainedNodes.push(retainedNode); } else { var hideNode = /*#__PURE__*/(0, _react.cloneElement)(child, { style: { display: 'none' } }); retainedNodes.push(hideNode); } }); return retainedNodes; }; return loop(children); }); _defineProperty(_assertThisInitialized(_this), "createNodesByData", function (data, searching) { var loop = function loop(data, isParentMatched) { var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0'; var retainedNodes = []; data.forEach(function (item, index) { var children = item.children, others = _objectWithoutProperties(item, _excluded); var pos = "".concat(prefix, "-").concat(index); var key = _this._p2n[pos].key; var addNode = function addNode(isParentMatched, hide) { if (hide) { others.style = { display: 'none' }; } retainedNodes.push( /*#__PURE__*/_react["default"].createElement(TreeNode, _extends({}, others, { key: key }), children && children.length ? loop(children, isParentMatched, pos) : null)); }; if (searching) { if (_this.searchedKeys.indexOf(key) > -1 || isParentMatched) { addNode(true); } else if (_this.retainedKeys.indexOf(key) > -1) { addNode(false); } else { addNode(false, true); } } else { addNode(); } }); return retainedNodes; }; return loop(data, false); }); _defineProperty(_assertThisInitialized(_this), "renderPopupContent", function () { var prefix = _this.props.prefix; var treeSelectPrefix = "".concat(prefix, "tree-select-"); if (!_this.state.visible) { return /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(treeSelectPrefix, "dropdown") }); } var _this$props4 = _this.props, multiple = _this$props4.multiple, treeCheckable = _this$props4.treeCheckable, treeCheckStrictly = _this$props4.treeCheckStrictly, treeCheckedStrategy = _this$props4.treeCheckedStrategy, treeDefaultExpandAll = _this$props4.treeDefaultExpandAll, treeDefaultExpandedKeys = _this$props4.treeDefaultExpandedKeys, treeLoadData = _this$props4.treeLoadData, customTreeProps = _this$props4.treeProps, showSearch = _this$props4.showSearch, dataSource = _this$props4.dataSource, children = _this$props4.children, readOnly = _this$props4.readOnly, notFoundContent = _this$props4.notFoundContent; var _this$state = _this.state, value = _this$state.value, searchedValue = _this$state.searchedValue, expandedKeys = _this$state.expandedKeys, autoExpandParent = _this$state.autoExpandParent; var treeProps = { multiple: multiple, ref: _this.saveTreeRef, loadData: treeLoadData, defaultExpandAll: treeDefaultExpandAll, defaultExpandedKeys: treeDefaultExpandedKeys }; var keys = _this.getKeysByValue(value); if (treeCheckable) { treeProps.checkable = treeCheckable; treeProps.checkStrictly = treeCheckStrictly; treeProps.checkedStrategy = treeCheckStrictly ? 'all' : treeCheckedStrategy; treeProps.checkedKeys = keys; if (!readOnly) { treeProps.onCheck = _this.handleCheck; } } else { treeProps.selectedKeys = keys; if (!readOnly) { treeProps.onSelect = _this.handleSelect; } } var notFound = false; var newChildren; if (showSearch && searchedValue) { treeProps.expandedKeys = expandedKeys; treeProps.autoExpandParent = autoExpandParent; treeProps.onExpand = _this.handleExpand; treeProps.filterTreeNode = function (node) { return _this.searchedKeys.indexOf(node.props.eventKey) > -1; }; if (_this.searchedKeys.length) { newChildren = dataSource ? _this.createNodesByData(dataSource, true) : _this.searchNodes(children); } else { notFound = true; } } else { // eslint-disable-next-line if (dataSource) { if (dataSource.length) { newChildren = _this.createNodesByData(dataSource); } else { notFound = true; } } else { // eslint-disable-next-line if (_react.Children.count(children)) { newChildren = children; } else { notFound = true; } } } return /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(treeSelectPrefix, "dropdown") }, notFound ? /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(treeSelectPrefix, "not-found") }, notFoundContent) : /*#__PURE__*/_react["default"].createElement(_tree["default"], _extends({}, customTreeProps, treeProps), newChildren)); }); var defaultVisible = _props.defaultVisible, _visible = _props.visible, defaultValue = _props.defaultValue, _value = _props.value; _this.state = { visible: typeof _visible === 'undefined' ? defaultVisible : _visible, value: (0, _util.normalizeToArray)(typeof _value === 'undefined' ? defaultValue : _value), searchedValue: '', expandedKeys: [], autoExpandParent: false }; _this.updateCache(_props); return _this; } _createClass(TreeSelect, [{ key: "UNSAFE_componentWillReceiveProps", value: function UNSAFE_componentWillReceiveProps(nextProps) { this.updateCache(nextProps); var st = {}; if ('value' in nextProps) { st.value = (0, _util.normalizeToArray)(nextProps.value); } if ('visible' in nextProps) { st.visible = nextProps.visible; } if (Object.keys(st).length) { this.setState(st); } } }, { key: "render", value: /* eslint-enable */ function render() { var _this$props5 = this.props, prefix = _this$props5.prefix, size = _this$props5.size, placeholder = _this$props5.placeholder, disabled = _this$props5.disabled, hasArrow = _this$props5.hasArrow, hasBorder = _this$props5.hasBorder, hasClear = _this$props5.hasClear, label = _this$props5.label, readOnly = _this$props5.readOnly, autoWidth = _this$props5.autoWidth, popupStyle = _this$props5.popupStyle, popupClassName = _this$props5.popupClassName, showSearch = _this$props5.showSearch, valueRender = _this$props5.valueRender, multiple = _this$props5.multiple, treeCheckable = _this$props5.treeCheckable, treeCheckStrictly = _this$props5.treeCheckStrictly, className = _this$props5.className, popupContainer = _this$props5.popupContainer, popupProps = _this$props5.popupProps, followTrigger = _this$props5.followTrigger; var others = pickOthers(Object.keys(TreeSelect.propTypes), this.props); var _this$state2 = this.state, value = _this$state2.value, visible = _this$state2.visible; var valueForSelect = treeCheckable && !treeCheckStrictly ? this.getValueForSelect(value) : value; // 设置的value不存在于dataSource中时,直接用传入的value代替 if (!valueForSelect.length) { valueForSelect = value; } var data = this.getData(valueForSelect, true); if (!multiple && !treeCheckable) { data = data[0]; } return /*#__PURE__*/_react["default"].createElement(_select["default"], _extends({ prefix: prefix, className: className, size: size, hasBorder: hasBorder, hasArrow: hasArrow, hasClear: hasClear, valueRender: valueRender, placeholder: placeholder, disabled: disabled, autoWidth: autoWidth, label: label, readOnly: readOnly, ref: this.saveSelectRef, mode: treeCheckable || multiple ? 'multiple' : 'single', value: data, onRemove: this.handleRemove, onChange: this.handleChange, visible: visible, onVisibleChange: this.handleVisibleChange, showSearch: showSearch, onSearch: this.handleSearch, onSearchClear: this.handleSearchClear, onKeyDown: this.handleKeyDown, popupContent: this.renderPopupContent(), popupContainer: popupContainer, popupStyle: popupStyle, popupClassName: popupClassName, popupProps: popupProps, followTrigger: followTrigger }, others)); } }]); return TreeSelect; }(_react.Component); exports["default"] = TreeSelect; _defineProperty(TreeSelect, "propTypes", { prefix: _propTypes["default"].string, pure: _propTypes["default"].bool, className: _propTypes["default"].string, /** * 树节点 */ children: _propTypes["default"].node, /** * 选择框大小 */ size: _propTypes["default"].oneOf(['small', 'medium', 'large']), /** * 选择框占位符 */ placeholder: _propTypes["default"].string, /** * 是否禁用 */ disabled: _propTypes["default"].bool, /** * 是否有下拉箭头 */ hasArrow: _propTypes["default"].bool, /** * 是否有边框 */ hasBorder: _propTypes["default"].bool, /** * 是否有清空按钮 */ hasClear: _propTypes["default"].bool, /** * 自定义内联 label */ label: _propTypes["default"].node, /** * 是否只读,只读模式下可以展开弹层但不能选择 */ readOnly: _propTypes["default"].bool, /** * 下拉框是否与选择器对齐 */ autoWidth: _propTypes["default"].bool, /** * 数据源,该属性优先级高于 children */ dataSource: _propTypes["default"].arrayOf(_propTypes["default"].object), /** * 选中的值渲染方式 */ valueRender: _propTypes["default"].func, /** * (受控)当前值 */ value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].arrayOf(_propTypes["default"].string)]), /** * (非受控)默认值 */ defaultValue: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].arrayOf(_propTypes["default"].string)]), /** * 选中值改变时触发的回调函数 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组 * @param {Object|Array} data 选中的数据,包括 value, label, pos, key属性,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点 */ onChange: _propTypes["default"].func, /** * 是否显示搜索框 */ showSearch: _propTypes["default"].bool, /** * 在搜索框中输入时触发的回调函数 * @param {String} keyword 输入的关键字 */ onSearch: _propTypes["default"].func, onSearchClear: _propTypes["default"].func, /** * 无数据时显示内容 */ notFoundContent: _propTypes["default"].node, /** * 是否支持多选 */ multiple: _propTypes["default"].bool, /** * 下拉框中的树是否支持勾选节点的复选框 */ treeCheckable: _propTypes["default"].bool, /** * 下拉框中的树勾选节点复选框是否完全受控(父子节点选中状态不再关联) */ treeCheckStrictly: _propTypes["default"].bool, /** * 定义选中时回填的方式 * @enumdesc 返回所有选中的节点, 父子节点都选中时只返回父节点, 父子节点都选中时只返回子节点 */ treeCheckedStrategy: _propTypes["default"].oneOf(['all', 'parent', 'child']), /** * 下拉框中的树是否默认展开所有节点 */ treeDefaultExpandAll: _propTypes["default"].bool, /** * 下拉框中的树默认展开节点key的数组 */ treeDefaultExpandedKeys: _propTypes["default"].arrayOf(_propTypes["default"].string), /** * 下拉框中的树异步加载数据的函数,使用请参考[Tree的异步加载数据Demo](https://fusion.design/component/tree) * @param {ReactElement} node 被点击展开的节点 */ treeLoadData: _propTypes["default"].func, /** * 透传到 Tree 的属性对象 */ treeProps: _propTypes["default"].object, /** * 初始下拉框是否显示 */ defaultVisible: _propTypes["default"].bool, /** * 当前下拉框是否显示 */ visible: _propTypes["default"].bool, /** * 下拉框显示或关闭时触发事件的回调函数 * @param {Boolean} visible 是否显示 * @param {String} type 触发显示关闭的操作类型 */ onVisibleChange: _propTypes["default"].func, /** * 下拉框自定义样式对象 */ popupStyle: _propTypes["default"].object, /** * 下拉框样式自定义类名 */ popupClassName: _propTypes["default"].string, /** * 下拉框挂载的容器节点 */ popupContainer: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].func]), /** * 透传到 Popup 的属性对象 */ popupProps: _propTypes["default"].object, /** * 是否跟随滚动 */ followTrigger: _propTypes["default"].bool }); _defineProperty(TreeSelect, "defaultProps", { prefix: 'next-', pure: false, size: 'medium', disabled: false, hasArrow: true, hasBorder: true, hasClear: false, autoWidth: true, defaultValue: null, valueRender: function valueRender(item) { return item.label || item.value; }, onChange: noop, showSearch: false, onSearch: noop, onSearchClear: noop, notFoundContent: 'Not Found', multiple: false, treeCheckable: false, treeCheckStrictly: false, treeCheckedStrategy: 'parent', treeDefaultExpandAll: false, treeDefaultExpandedKeys: [], treeProps: {}, defaultVisible: false, onVisibleChange: noop }); TreeSelect.Node = TreeNode;