UNPKG

linkmore-design

Version:

🌈 πŸš€lmη»„δ»ΆεΊ“γ€‚πŸš€

171 lines (165 loc) β€’ 6.84 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "TreeNode", { enumerable: true, get: function () { return _rcTreeSelect.TreeNode; } }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classnames = _interopRequireDefault(require("classnames")); var _rcTreeSelect = _interopRequireWildcard(require("rc-tree-select")); var _omit = _interopRequireDefault(require("rc-util/lib/omit")); var React = _interopRequireWildcard(require("react")); var _configProvider = require("../config-provider"); var _defaultRenderEmpty = _interopRequireDefault(require("../config-provider/defaultRenderEmpty")); var _DisabledContext = _interopRequireDefault(require("../config-provider/DisabledContext")); var _SizeContext = _interopRequireDefault(require("../config-provider/SizeContext")); var _context = require("../form/context"); var _iconUtil = _interopRequireDefault(require("../select/utils/iconUtil")); var _iconUtil2 = _interopRequireDefault(require("../tree/utils/iconUtil")); var _motion = require("../_util/motion"); var _statusUtils = require("../_util/statusUtils"); var _Compact = require("../space/Compact"); var _warning = _interopRequireDefault(require("../_util/warning")); const InternalTreeSelect = ({ prefixCls: customizePrefixCls, size: customizeSize, disabled: customDisabled, bordered = true, className, treeCheckable, multiple, listHeight = 256, listItemHeight = 26, placement, notFoundContent, switcherIcon, treeLine, getPopupContainer, dropdownClassName, popupClassName, treeIcon = false, transitionName, choiceTransitionName = '', status: customStatus, showArrow, treeExpandAction, ...props }, ref) => { const { getPopupContainer: getContextPopupContainer, getPrefixCls, renderEmpty, direction, virtual, dropdownMatchSelectWidth } = React.useContext(_configProvider.ConfigContext); const size = React.useContext(_SizeContext.default); (0, _warning.default)(multiple !== false || !treeCheckable, 'TreeSelect', '`multiple` will always be `true` when `treeCheckable` is true'); (0, _warning.default)(!dropdownClassName, 'TreeSelect', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.'); const prefixCls = getPrefixCls('select', customizePrefixCls); const treePrefixCls = getPrefixCls('select-tree', customizePrefixCls); const treeSelectPrefixCls = getPrefixCls('tree-select', customizePrefixCls); const { compactSize, compactItemClassnames } = (0, _Compact.useCompactItemContext)(prefixCls, direction); const mergedDropdownClassName = (0, _classnames.default)(popupClassName || dropdownClassName, `${treeSelectPrefixCls}-dropdown`, { [`${treeSelectPrefixCls}-dropdown-rtl`]: direction === 'rtl' }); const isMultiple = !!(treeCheckable || multiple); const mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !isMultiple; // ===================== Form ===================== const { status: contextStatus, hasFeedback, isFormItemInput, feedbackIcon } = (0, React.useContext)(_context.FormItemInputContext); const mergedStatus = (0, _statusUtils.getMergedStatus)(contextStatus, customStatus); // ===================== Icons ===================== const { suffixIcon, removeIcon, clearIcon } = (0, _iconUtil.default)({ ...props, multiple: isMultiple, showArrow: mergedShowArrow, hasFeedback, feedbackIcon, prefixCls }); // ===================== Empty ===================== let mergedNotFound; if (notFoundContent !== undefined) { mergedNotFound = notFoundContent; } else { mergedNotFound = (renderEmpty || _defaultRenderEmpty.default)('Select'); } // ==================== Render ===================== const selectProps = (0, _omit.default)(props, ['suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'switcherIcon']); // ===================== Placement ===================== const getPlacement = () => { if (placement !== undefined) { return placement; } return direction === 'rtl' ? 'bottomRight' : 'bottomLeft'; }; const mergedSize = compactSize || customizeSize || size; // ===================== Disabled ===================== const disabled = React.useContext(_DisabledContext.default); const mergedDisabled = customDisabled ?? disabled; const mergedClassName = (0, _classnames.default)(!customizePrefixCls && treeSelectPrefixCls, { [`${prefixCls}-lg`]: mergedSize === 'large', [`${prefixCls}-sm`]: mergedSize === 'small', [`${prefixCls}-rtl`]: direction === 'rtl', [`${prefixCls}-borderless`]: !bordered, [`${prefixCls}-in-form-item`]: isFormItemInput }, (0, _statusUtils.getStatusClassNames)(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className); const rootPrefixCls = getPrefixCls(); return /*#__PURE__*/React.createElement(_rcTreeSelect.default, (0, _extends2.default)({ virtual: virtual, dropdownMatchSelectWidth: dropdownMatchSelectWidth, disabled: mergedDisabled }, selectProps, { ref: ref, prefixCls: prefixCls, className: mergedClassName, listHeight: listHeight, listItemHeight: listItemHeight, treeCheckable: treeCheckable ? /*#__PURE__*/React.createElement("span", { className: `${prefixCls}-tree-checkbox-inner` }) : treeCheckable, treeLine: !!treeLine, inputIcon: suffixIcon, multiple: multiple, placement: getPlacement(), removeIcon: removeIcon, clearIcon: clearIcon, switcherIcon: nodeProps => (0, _iconUtil2.default)(treePrefixCls, switcherIcon, treeLine, nodeProps), showTreeIcon: treeIcon, notFoundContent: mergedNotFound, getPopupContainer: getPopupContainer || getContextPopupContainer, treeMotion: null, dropdownClassName: mergedDropdownClassName, choiceTransitionName: (0, _motion.getTransitionName)(rootPrefixCls, '', choiceTransitionName), transitionName: (0, _motion.getTransitionName)(rootPrefixCls, (0, _motion.getTransitionDirection)(placement), transitionName), showArrow: hasFeedback || showArrow, treeExpandAction: treeExpandAction })); }; const TreeSelectRef = /*#__PURE__*/React.forwardRef(InternalTreeSelect); const TreeSelect = TreeSelectRef; TreeSelect.TreeNode = _rcTreeSelect.TreeNode; TreeSelect.SHOW_ALL = _rcTreeSelect.SHOW_ALL; TreeSelect.SHOW_PARENT = _rcTreeSelect.SHOW_PARENT; TreeSelect.SHOW_CHILD = _rcTreeSelect.SHOW_CHILD; var _default = TreeSelect; exports.default = _default;