UNPKG

@ucloud-pccl/react-components

Version:
571 lines (569 loc) 27.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof3 = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.deprecatedLogForPopover = exports.default = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _Popover = _interopRequireDefault(require("../../components/Popover")); var _ConfigContext = _interopRequireDefault(require("../../components/ConfigProvider/ConfigContext")); var _useLocale = _interopRequireDefault(require("../../components/LocaleProvider/useLocale")); var _group4 = require("../../hooks/group"); var _usePopoverConfig = require("../../hooks/usePopoverConfig"); var _useUncontrolled5 = _interopRequireDefault(require("../../hooks/useUncontrolled")); var _useInitial = _interopRequireDefault(require("../../hooks/useInitial")); var _noop = _interopRequireDefault(require("../../utils/noop")); var _deprecatedLog = _interopRequireDefault(require("../../utils/deprecatedLog")); var _isObject = _interopRequireDefault(require("../../utils/isObject")); var _once = _interopRequireDefault(require("../../utils/once")); var _isEmpty = _interopRequireDefault(require("../../utils/isEmpty")); var _Option = require("./Option"); var _Group = _interopRequireDefault(require("./Group")); var _Extra = _interopRequireDefault(require("./Extra")); var _style = require("./style"); var _SelectContext = _interopRequireDefault(require("./SelectContext")); var _zh_CN = _interopRequireDefault(require("./locale/zh_CN")); var _excluded = ["size", "disabled", "multiple", "placeholder", "renderContent", "renderSelector", "renderPopup", "value", "visible", "locale", "dataSource", "clearable", "clearIconShow", "onChange"], _excluded2 = ["content"], _excluded3 = ["size", "value", "defaultValue", "onChange", "onVisibleChange", "disabled", "search", "multiple", "renderContent", "renderSelector", "placeholder", "locale", "options", "children", "emptyContent", "showSelectAll", "extra", "customStyle", "popover", "popoverProps", "renderPopup", "virtualList", "clearable", "clearIconShow", "extraChildren"]; var _this = void 0; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } 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) { (0, _defineProperty2.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 deprecatedLogForPopover = exports.deprecatedLogForPopover = (0, _once.default)(function () { (0, _newArrowCheck2.default)(this, _this); return (0, _deprecatedLog.default)('Select popover', 'popoverProps'); }.bind(void 0)); var warnLogForVirtualList = (0, _once.default)(function () { (0, _newArrowCheck2.default)(this, _this); return console.error('Select virtualList only valid when use options'); }.bind(void 0)); var warnLogForCustomHeight = (0, _once.default)(function () { (0, _newArrowCheck2.default)(this, _this); return console.error('CustomStyle.optionListMaxHeight is invalid when use virtualList, please use virtualList.height'); }.bind(void 0)); var warnLogForSearchProps = (0, _once.default)(function () { (0, _newArrowCheck2.default)(this, _this); return console.error("Don't use item.props in custom search, just use item as props."); }.bind(void 0)); var groupOptions = { itemTag: 'isMenuItem', subGroupTag: 'isMenuSubMenu', itemKeyName: 'value', subGroupKeyName: 'groupKey', displayName: 'label', subGroupName: 'children', ItemComponent: _Option.PureOption, SubGroupComponent: _Group.default }; var Selector = function Selector(_ref) { var _this2 = this; (0, _newArrowCheck2.default)(this, _this); var size = _ref.size, disabled = _ref.disabled, multiple = _ref.multiple, placeholder = _ref.placeholder, renderContent = _ref.renderContent, renderSelector = _ref.renderSelector, renderPopup = _ref.renderPopup, value = _ref.value, visible = _ref.visible, locale = _ref.locale, dataSource = _ref.dataSource, clearable = _ref.clearable, clearIconShow = _ref.clearIconShow, onChange = _ref.onChange, rest = (0, _objectWithoutProperties2.default)(_ref, _excluded); placeholder = (0, _react.useMemo)(function () { (0, _newArrowCheck2.default)(this, _this2); return placeholder || locale.placeholder; }.bind(this), [locale.placeholder, placeholder]); var defaultRenderContent = (0, _react.useCallback)(function (value, valueChild) { (0, _newArrowCheck2.default)(this, _this2); if (!multiple) { if (value === undefined) { return /*#__PURE__*/_react.default.createElement("span", { className: _style.selectorContentHolder }, placeholder); } else { return valueChild; } } else { if (value && value.length) { return "".concat(locale.selected).concat(value.length).concat(locale.items); } else { return /*#__PURE__*/_react.default.createElement("span", { className: _style.selectorContentHolder }, placeholder); } } }.bind(this), [locale.items, locale.selected, multiple, placeholder]); var getContent = (0, _react.useCallback)(function () { var _this3 = this; (0, _newArrowCheck2.default)(this, _this2); var _dataSource = (0, _slicedToArray2.default)(dataSource, 5), _dataSource$ = _dataSource[4], childrenMap = _dataSource$ === void 0 ? new Map() : _dataSource$; var valueChild; var getValueChild = function getValueChild(v) { (0, _newArrowCheck2.default)(this, _this3); return childrenMap.has(v) ? childrenMap.get(v) : v; }.bind(this); if (!multiple) { valueChild = getValueChild(value); } else { var _value = value ? (0, _toConsumableArray2.default)(value) : []; // only get the top twenty item child for better performance if (_value.length > 20) { _value.length = 20; } valueChild = _value.map(getValueChild); } if (renderContent) { return renderContent(value, valueChild); } else { return defaultRenderContent(value, valueChild); } }.bind(this), [dataSource, defaultRenderContent, multiple, renderContent, value]); var content = (0, _react.useMemo)(getContent, [getContent]); // 自定义渲染弹层时,开发者可能不传入 options 和 children,导致 content memo deps 不触发变更,故强制更新 if (renderPopup) content = getContent(); if (renderSelector) { var selector = renderSelector(content, visible) || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null); return /*#__PURE__*/_react.default.isValidElement(selector) ? /*#__PURE__*/_react.default.cloneElement(selector, rest) : null; } var title = typeof content === 'string' ? content : undefined; var handleClear = function handleClear() { (0, _newArrowCheck2.default)(this, _this2); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore onChange === null || onChange === void 0 || onChange(multiple ? [] : undefined); }.bind(this); return /*#__PURE__*/_react.default.createElement(_style.SSelector, (0, _extends2.default)({ size: size, disabled: disabled, title: title, clearable: clearable, clearIconShow: clearIconShow }, rest), /*#__PURE__*/_react.default.createElement("div", { className: _style.selectorContentCls, key: "content" }, content), clearable && (multiple ? value === null || value === void 0 ? void 0 : value.length : !!value) && /*#__PURE__*/_react.default.createElement(_style.ClearIcon, { onClick: handleClear, className: "".concat(_style.prefixCls, "-clearIcon"), key: "icon", type: 'cross-circle-filled' }), /*#__PURE__*/_react.default.createElement(_style.Arrow, { key: "icon", type: visible ? 'arrow-up' : 'arrow-down' })); }.bind(void 0); var Popup = function Popup(_ref2) { var _this4 = this; (0, _newArrowCheck2.default)(this, _this); var extra = _ref2.extra, _ref2$customStyle = _ref2.customStyle, customStyle = _ref2$customStyle === void 0 ? {} : _ref2$customStyle, search = _ref2.search, multiple = _ref2.multiple, emptyContent = _ref2.emptyContent, showSelectAll = _ref2.showSelectAll, value = _ref2.value, renderPopup = _ref2.renderPopup, options = _ref2.options, children = _ref2.children, onChange = _ref2.onChange, locale = _ref2.locale, handleVisibleChange = _ref2.handleVisibleChange, hidePopup = _ref2.hidePopup, dataSource = _ref2.dataSource, searchValue = _ref2.searchValue, setSearchValue = _ref2.setSearchValue, virtualList = _ref2.virtualList, width = _ref2.width, extraChildren = _ref2.extraChildren; var handleChange = (0, _react.useCallback)(function (value) { (0, _newArrowCheck2.default)(this, _this4); if (!multiple) { handleVisibleChange(false); onChange(value[0]); } else { onChange(value); } }.bind(this), [multiple, onChange, handleVisibleChange]); var handleSearchInput = (0, _react.useCallback)(function (e) { (0, _newArrowCheck2.default)(this, _this4); setSearchValue(e.target.value); }.bind(this), [setSearchValue]); var finalExtra = (0, _react.useMemo)(function () { (0, _newArrowCheck2.default)(this, _this4); if (typeof extra === 'function') { return /*#__PURE__*/_react.default.createElement(_Extra.default, null, extra(hidePopup)); } else if (!(0, _isEmpty.default)(extra)) { if (/*#__PURE__*/_react.default.isValidElement(extra)) { return /*#__PURE__*/_react.default.createElement(_Extra.default, null, extra); } else if ((0, _isObject.default)(extra)) { var _ref3 = extra, content = _ref3.content, rest = (0, _objectWithoutProperties2.default)(_ref3, _excluded2); return /*#__PURE__*/_react.default.createElement(_Extra.default, rest, content); } } }.bind(this), [extra, hidePopup]); if (renderPopup) { return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderPopup({ handleVisible: handleVisibleChange, onChange: onChange, value: value, multiple: multiple, extra: extra, search: search, children: children, options: options })); } var maxWidth = customStyle.popupMaxWidth ? customStyle.popupMaxWidth : 'none'; var newCustomStyle = _objectSpread({}, customStyle); if (virtualList) { newCustomStyle.optionListMaxHeight = 'none'; if ('optionListMaxHeight' in newCustomStyle) warnLogForCustomHeight(); } var renderEmptyContent = function renderEmptyContent() { (0, _newArrowCheck2.default)(this, _this4); return emptyContent || /*#__PURE__*/_react.default.createElement(_style.EmptyContentWrapper, null, locale.emptyTip); }.bind(this); return /*#__PURE__*/_react.default.createElement(_style.MenuWrap, { width: width }, extraChildren && extraChildren, search && /*#__PURE__*/_react.default.createElement(_style.SelectSearchInput, { onChange: handleSearchInput, value: searchValue, status: "default" }), children || options ? /*#__PURE__*/_react.default.createElement(_style.BlockMenu, { onChange: handleChange, customStyle: newCustomStyle, menuCustomStyle: { maxWidth: maxWidth }, dataSource: dataSource, multiple: multiple, showSelectAll: showSelectAll, selectedKeys: multiple ? value : [value], virtualList: options ? virtualList : false }) : /*#__PURE__*/_react.default.createElement(_style.BlockMenu, null, renderEmptyContent()), finalExtra ? /*#__PURE__*/_react.default.createElement(_style.FooterWrap, null, finalExtra) : null); }.bind(void 0); var groupOptionsAsDataSource = function groupOptionsAsDataSource(options) { var _this5 = this; var globalDisabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var _ref4 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { subGroupName: 'children', displayName: 'label', itemKeyName: 'itemKey', subGroupKeyName: 'subGroupKey', ItemComponent: function ItemComponent() { (0, _newArrowCheck2.default)(this, _this5); return null; }.bind(this), SubGroupComponent: function SubGroupComponent() { (0, _newArrowCheck2.default)(this, _this5); return null; }.bind(this) }, subGroupName = _ref4.subGroupName, displayName = _ref4.displayName, itemKeyName = _ref4.itemKeyName, subGroupKeyName = _ref4.subGroupKeyName, ItemComponent = _ref4.ItemComponent, SubGroupComponent = _ref4.SubGroupComponent; var searchValue = arguments.length > 3 ? arguments[3] : undefined; var handleSearch = arguments.length > 4 ? arguments[4] : undefined; var subGroupMap = new Map(); var childrenMap = new Map(); var isValidKey = function isValidKey(v) { (0, _newArrowCheck2.default)(this, _this5); return typeof v === 'string' || typeof v === 'number'; }.bind(this); var _group3 = function group(options) { var _this6 = this; var disabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var prefixKey = arguments.length > 2 ? arguments[2] : undefined; var validKeys = []; var disabledKeys = []; var renderChildren = []; options.forEach(function (child, i) { (0, _newArrowCheck2.default)(this, _this6); var subChildren = child[subGroupName]; if (subChildren) { var _key = child[subGroupKeyName] || child.key || "".concat(prefixKey, "-").concat(i); var reactKey = child.key || isValidKey(child[subGroupKeyName]) ? child[subGroupKeyName] : "".concat(prefixKey, "-").concat(i); var isDisabled = disabled || child.disabled; var _group = _group3(subChildren, isDisabled, _key), _group2 = (0, _slicedToArray2.default)(_group, 3), subValidKeys = _group2[0], subDisabledKeys = _group2[1], subRenderChildren = _group2[2]; subGroupMap.set(_key, { validKeys: subValidKeys, disabledKeys: subDisabledKeys }); validKeys.push.apply(validKeys, (0, _toConsumableArray2.default)(subValidKeys)); disabledKeys.push.apply(disabledKeys, (0, _toConsumableArray2.default)(subDisabledKeys)); var visible = searchValue ? !!subRenderChildren.length : true; if (visible) { renderChildren.push(/*#__PURE__*/_react.default.createElement(SubGroupComponent, (0, _extends2.default)({ key: reactKey }, child, (0, _defineProperty2.default)({ disabled: globalDisabled || isDisabled }, subGroupKeyName, _key)), subRenderChildren)); } } else { var _ref6; var _key2 = child[itemKeyName] === undefined ? child.key : child[itemKeyName]; var _reactKey = child.key || isValidKey(child[itemKeyName]) ? child[itemKeyName] : "".concat(prefixKey, "-").concat(i); var _isDisabled = disabled || child.disabled; if (_isDisabled) { disabledKeys.push(_key2); } else { validKeys.push(_key2); } var display = (_ref6 = child[displayName]) !== null && _ref6 !== void 0 ? _ref6 : _key2; var _visible = searchValue ? handleSearch(_key2, child) : true; if (_visible) { renderChildren.push(/*#__PURE__*/_react.default.createElement(ItemComponent, (0, _extends2.default)({ key: _reactKey }, child, (0, _defineProperty2.default)({ disabled: globalDisabled || _isDisabled }, itemKeyName, _key2)), display)); } childrenMap.set(_key2, display); } }.bind(this)); return [validKeys, disabledKeys, renderChildren]; }; return [].concat((0, _toConsumableArray2.default)(_group3(options, false, 'group-root')), [subGroupMap, childrenMap]); }; var Select = function Select(_ref8) { var _search, _search2, _search3, _this7 = this; (0, _newArrowCheck2.default)(this, _this); var _ref8$size = _ref8.size, size = _ref8$size === void 0 ? 'lg' : _ref8$size, _value = _ref8.value, defaultValue = _ref8.defaultValue, _onChange = _ref8.onChange, _ref8$onVisibleChange = _ref8.onVisibleChange, onVisibleChange = _ref8$onVisibleChange === void 0 ? _noop.default : _ref8$onVisibleChange, disabled = _ref8.disabled, search = _ref8.search, multiple = _ref8.multiple, renderContent = _ref8.renderContent, renderSelector = _ref8.renderSelector, placeholder = _ref8.placeholder, _locale = _ref8.locale, options = _ref8.options, children = _ref8.children, emptyContent = _ref8.emptyContent, showSelectAll = _ref8.showSelectAll, extra = _ref8.extra, customStyle = _ref8.customStyle, popover = _ref8.popover, popoverProps = _ref8.popoverProps, renderPopup = _ref8.renderPopup, virtualList = _ref8.virtualList, clearable = _ref8.clearable, clearIconShow = _ref8.clearIconShow, extraChildren = _ref8.extraChildren, rest = (0, _objectWithoutProperties2.default)(_ref8, _excluded3); var ref = (0, _react.useRef)(null); var _useUncontrolled = (0, _useUncontrolled5.default)(_value, defaultValue, _onChange), _useUncontrolled2 = (0, _slicedToArray2.default)(_useUncontrolled, 2), value = _useUncontrolled2[0], onChange = _useUncontrolled2[1]; var _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2.default)(_useState, 2), visible = _useState2[0], setVisible = _useState2[1]; var _useState3 = (0, _react.useState)(0), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), width = _useState4[0], setWidth = _useState4[1]; var locale = (0, _useLocale.default)(_zh_CN.default, 'Select', _locale); if (search === true) search = {}; var _useUncontrolled3 = (0, _useUncontrolled5.default)((_search = search) === null || _search === void 0 ? void 0 : _search.searchValue, ((_search2 = search) === null || _search2 === void 0 ? void 0 : _search2.defaultSearchValue) || '', (_search3 = search) === null || _search3 === void 0 ? void 0 : _search3.onSearchValueChange), _useUncontrolled4 = (0, _slicedToArray2.default)(_useUncontrolled3, 2), searchValue = _useUncontrolled4[0], setSearchValue = _useUncontrolled4[1]; (0, _useInitial.default)(function () { (0, _newArrowCheck2.default)(this, _this7); if (popover) deprecatedLogForPopover(); if (virtualList && !options) warnLogForVirtualList(); }.bind(this)); var handleSearch = (0, _react.useCallback)(function (value, props) { var _this8 = this; (0, _newArrowCheck2.default)(this, _this7); if (!search || !searchValue) { return true; } if ((0, _typeof2.default)(search) === 'object' && search.handleSearch) { var _beforeProps$label; // assign props for forward compatible var beforeProps = _objectSpread({}, props); if (options) beforeProps.children = (_beforeProps$label = beforeProps.label) !== null && _beforeProps$label !== void 0 ? _beforeProps$label : beforeProps.value; var itemInfo = _objectSpread({}, props); if (!('props' in itemInfo)) { Object.defineProperty(itemInfo, 'props', { get: function get() { (0, _newArrowCheck2.default)(this, _this8); warnLogForSearchProps(); return beforeProps; }.bind(this) }); } return search.handleSearch(searchValue, value, itemInfo); } else { // use label for options case var _children = options ? props.label : props.children; return (value + '').indexOf(searchValue) >= 0 || _children && typeof _children === 'string' && _children.indexOf(searchValue) >= 0; } }.bind(this), [options, search, searchValue]); var childrenDataSource = (0, _react.useMemo)(function () { (0, _newArrowCheck2.default)(this, _this7); return options ? [] : (0, _group4.groupChildrenAsDataSource)(children, disabled, groupOptions); }.bind(this), [children, disabled, options]); var optionsDataSource = (0, _react.useMemo)(function () { (0, _newArrowCheck2.default)(this, _this7); return options ? groupOptionsAsDataSource(options, disabled, groupOptions, searchValue, handleSearch) : []; }.bind(this), [disabled, handleSearch, options, searchValue]); virtualList = (0, _react.useMemo)(function () { (0, _newArrowCheck2.default)(this, _this7); return options ? virtualList : false; }.bind(this), [options, virtualList]); var dataSource = (0, _react.useMemo)(function () { (0, _newArrowCheck2.default)(this, _this7); return options ? optionsDataSource : childrenDataSource; }.bind(this), [options, childrenDataSource, optionsDataSource]); var handleVisibleChange = (0, _react.useCallback)(function (open) { (0, _newArrowCheck2.default)(this, _this7); setVisible(open); onVisibleChange(open); }.bind(this), [onVisibleChange]); var hidePopup = (0, _react.useCallback)(function () { (0, _newArrowCheck2.default)(this, _this7); return handleVisibleChange(false); }.bind(this), [handleVisibleChange]); (0, _react.useEffect)(function () { var _ref$current; (0, _newArrowCheck2.default)(this, _this7); setWidth(((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.offsetWidth) || 0); }.bind(this), []); return /*#__PURE__*/_react.default.createElement(_ConfigContext.default.Consumer, null, function (configContext) { (0, _newArrowCheck2.default)(this, _this7); var popupConfigProps = (0, _usePopoverConfig.getPopoverConfigFromContext)(configContext); return /*#__PURE__*/_react.default.createElement(_SelectContext.default.Provider, { value: { hidePopup: hidePopup, handleSearch: handleSearch, searchValue: searchValue } }, /*#__PURE__*/_react.default.createElement(_style.SelectWrap, (0, _extends2.default)({}, rest, { ref: ref }), /*#__PURE__*/_react.default.createElement(_Popover.default, (0, _extends2.default)({ onVisibleChange: handleVisibleChange, placement: "bottomLeft", trigger: ['click'] }, popupConfigProps, { visible: visible }, popover, popoverProps, { popup: /*#__PURE__*/_react.default.createElement(Popup, { extra: extra, customStyle: customStyle, search: search, multiple: multiple, emptyContent: emptyContent, showSelectAll: showSelectAll, value: value, renderPopup: renderPopup, options: options, children: children, onChange: onChange, locale: locale, handleVisibleChange: handleVisibleChange, hidePopup: hidePopup, dataSource: dataSource, searchValue: searchValue, setSearchValue: setSearchValue, virtualList: virtualList, width: width, extraChildren: extraChildren }), forceRender: false }), /*#__PURE__*/_react.default.createElement(Selector, { size: size, disabled: disabled, multiple: multiple, placeholder: placeholder, renderContent: renderContent, renderSelector: renderSelector, renderPopup: renderPopup, value: value, visible: visible, locale: locale, dataSource: dataSource, clearable: clearable, clearIconShow: clearIconShow, onChange: onChange })))); }.bind(this)); }.bind(void 0); Select.propTypes = { placeholder: _propTypes.default.node, onChange: _propTypes.default.func, options: _propTypes.default.arrayOf(_propTypes.default.shape({ label: _propTypes.default.node })), extra: _propTypes.default.oneOfType([_propTypes.default.shape({ content: _propTypes.default.node.isRequired }), _propTypes.default.node, _propTypes.default.func]), multiple: _propTypes.default.bool, showSelectAll: _propTypes.default.bool, disabled: _propTypes.default.bool, renderContent: _propTypes.default.func, renderSelector: _propTypes.default.func, renderPopup: _propTypes.default.func, search: _propTypes.default.oneOfType([_propTypes.default.oneOf([true]), _propTypes.default.shape({ handleSearch: _propTypes.default.func, searchValue: _propTypes.default.string, defaultSearchValue: _propTypes.default.string, onSearchValueChange: _propTypes.default.func })]), popover: _propTypes.default.any, popoverProps: _propTypes.default.any, onVisibleChange: _propTypes.default.func, locale: _propTypes.default.any, customStyle: _propTypes.default.shape({ optionListMaxHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), popupMaxWidth: _propTypes.default.string, popupWidth: _propTypes.default.string }), emptyContent: _propTypes.default.node, virtualList: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.shape({ simple: _propTypes.default.oneOf([true]), height: _propTypes.default.number })]), width: _propTypes.default.number, clearable: _propTypes.default.bool, clearIconShow: _propTypes.default.bool, extraChildren: _propTypes.default.node }; var _default = exports.default = Select;