tdesign-react
Version:
TDesign Component for React
704 lines (696 loc) • 28.6 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var defineProperty = require('../../_chunks/dep-0006fcfa.js');
var objectWithoutProperties = require('../../_chunks/dep-8fa3a4c2.js');
var slicedToArray = require('../../_chunks/dep-8e4d656d.js');
var React = require('react');
var classNames = require('classnames');
var _util_composeRefs = require('../../_util/composeRefs.js');
var _util_forwardRefWithStatics = require('../../_util/forwardRefWithStatics.js');
var _util_helper = require('../../_util/helper.js');
var _util_noop = require('../../_util/noop.js');
var _util_parseTNode = require('../../_util/parseTNode.js');
var common_FakeArrow = require('../../common/FakeArrow.js');
var hooks_useConfig = require('../../hooks/useConfig.js');
var hooks_useControlled = require('../../hooks/useControlled.js');
var hooks_useDefaultProps = require('../../hooks/useDefaultProps.js');
var loading_index = require('../../loading/index.js');
var locale_LocalReceiver = require('../../locale/LocalReceiver.js');
var selectInput_index = require('../../select-input/index.js');
var tag_index = require('../../tag/index.js');
var select_defaultProps = require('../defaultProps.js');
var select_util_helper = require('../../_chunks/dep-e83bd2ab.js');
var select_base_Option = require('./Option.js');
var select_base_OptionGroup = require('./OptionGroup.js');
var select_base_PopupContent = require('./PopupContent.js');
var get = require('../../_chunks/dep-0c8c9057.js');
var isFunction = require('../../_chunks/dep-ec8d2dca.js');
var debounce = require('../../_chunks/dep-a231fdc5.js');
require('../../_chunks/dep-667ac7af.js');
require('../../_chunks/dep-00b49251.js');
require('hoist-non-react-statics');
require('../../_chunks/dep-840b1644.js');
require('../../_chunks/dep-255ceed8.js');
require('../../_chunks/dep-25585736.js');
require('../../_chunks/dep-64577888.js');
require('../../_chunks/dep-79629634.js');
require('../../_chunks/dep-62e73936.js');
require('../../_chunks/dep-66114ce9.js');
require('../../_chunks/dep-62d1dd66.js');
require('../../_chunks/dep-7a148045.js');
require('../../_chunks/dep-59671c87.js');
require('../../config-provider/ConfigContext.js');
require('../../_chunks/dep-1df1dad8.js');
require('../../_chunks/dep-5b5ab11b.js');
require('dayjs');
require('../../_chunks/dep-f32c03f1.js');
require('../../_chunks/dep-31c4bc3d.js');
require('../../_chunks/dep-eea2872a.js');
require('../../_chunks/dep-71455db7.js');
require('../../_chunks/dep-9e5a468d.js');
require('../../_chunks/dep-f26edb7b.js');
require('../../_chunks/dep-f33c1939.js');
require('../../_chunks/dep-21ece627.js');
require('../../_chunks/dep-25e4aa84.js');
require('../../_chunks/dep-fc596d16.js');
require('../../_chunks/dep-e1fbe1c3.js');
require('../../_chunks/dep-df2b541f.js');
require('../../_chunks/dep-edd366db.js');
require('../../_chunks/dep-a56c4939.js');
require('../../_chunks/dep-6c297e20.js');
require('../../_chunks/dep-b7ad4d54.js');
require('../../_chunks/dep-a2cb9299.js');
require('../../_chunks/dep-f981815b.js');
require('../../loading/Loading.js');
require('../../_chunks/dep-381fa848.js');
require('../../_chunks/dep-4ed9eda4.js');
require('../../common/Portal.js');
require('react-dom');
require('../../hooks/useLayoutEffect.js');
require('../../loading/gradient.js');
require('../../_chunks/dep-dc4ce063.js');
require('../../_chunks/dep-002fcc1e.js');
require('../../_chunks/dep-e4e1901e.js');
require('../../_chunks/dep-2ffa3ff1.js');
require('../../hooks/useDomRefCallback.js');
require('../../loading/defaultProps.js');
require('../../loading/plugin.js');
require('../../_util/react-render.js');
require('../../_chunks/dep-65ef8e09.js');
require('../../common/PluginContainer.js');
require('../../config-provider/ConfigProvider.js');
require('../../_chunks/dep-ab2f63ec.js');
require('../../_chunks/dep-a48c7e8b.js');
require('../../_chunks/dep-3d4656ee.js');
require('../../_chunks/dep-0ffc9d96.js');
require('../../_chunks/dep-efe6d243.js');
require('../../_chunks/dep-4b18243f.js');
require('../../_chunks/dep-bff2c990.js');
require('../../select-input/SelectInput.js');
require('../../popup/index.js');
require('../../popup/Popup.js');
require('react-transition-group');
require('../../_util/ref.js');
require('react-is');
require('../../_util/isFragment.js');
require('../../hooks/useAnimation.js');
require('../../hooks/useAttach.js');
require('../../hooks/useMutationObserver.js');
require('../../hooks/useLatest.js');
require('../../_chunks/dep-eb6d55c1.js');
require('../../_chunks/dep-014b9b78.js');
require('../../_chunks/dep-abdd786a.js');
require('../../hooks/usePopper.js');
require('@popperjs/core');
require('react-fast-compare');
require('../../hooks/useWindowSize.js');
require('../../popup/defaultProps.js');
require('../../popup/hooks/useTrigger.js');
require('../../_util/listener.js');
require('../../popup/utils/transition.js');
require('../../_chunks/dep-cf14666e.js');
require('../../popup/PopupPlugin.js');
require('../../select-input/useSingle.js');
require('../../input/index.js');
require('../../input/Input.js');
require('tdesign-icons-react');
require('../../hooks/useGlobalIcon.js');
require('../../input/InputGroup.js');
require('../../input/defaultProps.js');
require('../../input/useLengthLimit.js');
require('../../_chunks/dep-1e4197a4.js');
require('../../_chunks/dep-3398c1f2.js');
require('../../_chunks/dep-e57bdc8f.js');
require('../../_chunks/dep-22b1740a.js');
require('../../_chunks/dep-373af7a2.js');
require('../../_chunks/dep-fc29b8b5.js');
require('../../select-input/useMultiple.js');
require('../../tag-input/index.js');
require('../../tag-input/TagInput.js');
require('../../hooks/useDragSorter.js');
require('../../hooks/useEventCallback.js');
require('../../tag-input/defaultProps.js');
require('../../tag-input/useHover.js');
require('../../tag-input/useTagList.js');
require('../../tag-input/useTagScroll.js');
require('../../tag/Tag.js');
require('../../_chunks/dep-4d5c26af.js');
require('../../tag/defaultProps.js');
require('../../tag/CheckTag.js');
require('../../_chunks/dep-4406837c.js');
require('../../tag/CheckTagGroup.js');
require('../../select-input/useOverlayInnerStyle.js');
require('../../select-input/defaultProps.js');
require('../../hooks/useRipple.js');
require('../hooks/usePanelVirtualScroll.js');
require('../../hooks/useVirtualScroll.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
var _excluded = ["overlayClassName", "onScroll", "onScrollToBottom"];
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) { defineProperty._defineProperty(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 Select = _util_forwardRefWithStatics["default"](function (originalProps, ref) {
var props = hooks_useDefaultProps["default"](originalProps, select_defaultProps.selectDefaultProps);
var _useLocaleReceiver = locale_LocalReceiver.useLocaleReceiver("select"),
_useLocaleReceiver2 = slicedToArray._slicedToArray(_useLocaleReceiver, 2),
local = _useLocaleReceiver2[0],
t = _useLocaleReceiver2[1];
var emptyText = t(local.loadingText);
var readonly = props.readonly,
borderless = props.borderless,
autoWidth = props.autoWidth,
creatable = props.creatable,
_props$loadingText = props.loadingText,
loadingText = _props$loadingText === void 0 ? emptyText : _props$loadingText,
max = props.max,
popupProps = props.popupProps,
reserveKeyword = props.reserveKeyword,
className = props.className,
style = props.style,
disabled = props.disabled,
size = props.size,
multiple = props.multiple,
placeholder = props.placeholder,
clearable = props.clearable,
prefixIcon = props.prefixIcon,
options = props.options,
filterable = props.filterable,
loading = props.loading,
empty = props.empty,
valueType = props.valueType,
keys = props.keys,
children = props.children,
collapsedItems = props.collapsedItems,
minCollapsedNum = props.minCollapsedNum,
valueDisplay = props.valueDisplay,
showArrow = props.showArrow,
inputProps = props.inputProps,
panelBottomContent = props.panelBottomContent,
panelTopContent = props.panelTopContent,
selectInputProps = props.selectInputProps,
tagInputProps = props.tagInputProps,
tagProps = props.tagProps,
scroll = props.scroll,
suffixIcon = props.suffixIcon,
label = props.label,
filter = props.filter,
onFocus = props.onFocus,
_onBlur = props.onBlur,
_props$onClear = props.onClear,
onClear = _props$onClear === void 0 ? _util_noop["default"] : _props$onClear,
onCreate = props.onCreate,
onRemove = props.onRemove,
onSearch = props.onSearch,
onEnter = props.onEnter,
onPopupVisibleChange = props.onPopupVisibleChange;
var _useControlled = hooks_useControlled["default"](props, "value", props.onChange),
_useControlled2 = slicedToArray._slicedToArray(_useControlled, 2),
value = _useControlled2[0],
onChange = _useControlled2[1];
var selectInputRef = React.useRef(null);
var _useConfig = hooks_useConfig["default"](),
classPrefix = _useConfig.classPrefix;
var _ref = popupProps || {},
overlayClassName = _ref.overlayClassName,
onScroll = _ref.onScroll,
onScrollToBottom = _ref.onScrollToBottom,
restPopupProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
var _useState = React.useState(false),
_useState2 = slicedToArray._slicedToArray(_useState, 2),
isScrolling = _useState2[0],
toggleIsScrolling = _useState2[1];
var name = "".concat(classPrefix, "-select");
var _useControlled3 = hooks_useControlled["default"](props, "popupVisible", onPopupVisibleChange),
_useControlled4 = slicedToArray._slicedToArray(_useControlled3, 2),
showPopup = _useControlled4[0],
setShowPopup = _useControlled4[1];
var _useControlled5 = hooks_useControlled["default"](props, "inputValue", props.onInputChange),
_useControlled6 = slicedToArray._slicedToArray(_useControlled5, 2),
inputValue = _useControlled6[0],
onInputChange = _useControlled6[1];
var _useOptions = select_util_helper.UseOptions(keys, options, children, valueType, value, reserveKeyword),
currentOptions = _useOptions.currentOptions,
setCurrentOptions = _useOptions.setCurrentOptions,
tmpPropOptions = _useOptions.tmpPropOptions,
valueToOption = _useOptions.valueToOption,
selectedOptions = _useOptions.selectedOptions;
var selectedLabel = React.useMemo(function () {
if (multiple) {
return selectedOptions.map(function (selectedOption) {
return get.get(selectedOption || {}, (keys === null || keys === void 0 ? void 0 : keys.label) || "label") || "";
});
}
return get.get(selectedOptions[0] || {}, (keys === null || keys === void 0 ? void 0 : keys.label) || "label") || void 0;
}, [selectedOptions, keys, multiple]);
var handleShowPopup = function handleShowPopup(visible, ctx) {
if (disabled) return;
visible && toggleIsScrolling(false);
!visible && onInputChange("", {
trigger: "blur"
});
setShowPopup(visible, ctx);
};
var onTagChange = function onTagChange(_currentTags, context) {
var trigger = context.trigger,
index = context.index,
item = context.item,
e = context.e;
if (trigger === "backspace") {
e.stopPropagation();
var closest = -1;
var len = index;
while (len >= 0) {
var option = selectedOptions[len];
if (!select_util_helper.isSelectOptionGroup(option) && !option.disabled) {
closest = len;
break;
}
len -= 1;
}
if (closest < 0) {
return;
}
var values = select_util_helper.getSelectValueArr(value, value[closest], true, valueType, keys);
var _getSelectedOptions = select_util_helper.getSelectedOptions(values, multiple, valueType, keys, valueToOption),
currentSelectedOptions = _getSelectedOptions.currentSelectedOptions;
onChange(values, {
e: e,
trigger: trigger,
selectedOptions: currentSelectedOptions
});
return;
}
if (trigger === "tag-remove") {
var _e$stopPropagation;
e === null || e === void 0 || (_e$stopPropagation = e.stopPropagation) === null || _e$stopPropagation === void 0 || _e$stopPropagation.call(e);
var _values = select_util_helper.getSelectValueArr(value, value[index], true, valueType, keys);
var _getSelectedOptions2 = select_util_helper.getSelectedOptions(_values, multiple, valueType, keys, valueToOption),
_currentSelectedOptions = _getSelectedOptions2.currentSelectedOptions;
onChange(_values, {
e: e,
trigger: trigger,
selectedOptions: _currentSelectedOptions
});
if (isFunction.isFunction(onRemove)) {
onRemove({
value: value[index],
data: {
label: item,
value: value[index]
},
e: e
});
}
}
};
var onCheckAllChange = function onCheckAllChange(checkAll, e) {
var _props$value;
var isDisabledCheckAll = function isDisabledCheckAll(opt) {
return opt.checkAll && opt.disabled;
};
if (!multiple || currentOptions.some(function (opt) {
return !select_util_helper.isSelectOptionGroup(opt) && isDisabledCheckAll(opt);
})) {
return;
}
var isSelectableOption = function isSelectableOption(opt) {
return !opt.checkAll && !opt.disabled;
};
var getOptionValue = function getOptionValue(option) {
return valueType === "object" ? option : option[(keys === null || keys === void 0 ? void 0 : keys.value) || "value"];
};
var values = [];
currentOptions.forEach(function (option) {
if (select_util_helper.isSelectOptionGroup(option)) {
option.children.forEach(function (item) {
if (isSelectableOption(item)) {
values.push(getOptionValue(item));
}
});
} else if (isSelectableOption(option)) {
values.push(getOptionValue(option));
}
});
var _getSelectedOptions3 = select_util_helper.getSelectedOptions(values, multiple, valueType, keys, valueToOption),
currentSelectedOptions = _getSelectedOptions3.currentSelectedOptions,
allSelectedValue = _getSelectedOptions3.allSelectedValue;
var checkAllValue = !checkAll && allSelectedValue.length !== ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.length) ? allSelectedValue : [];
onChange === null || onChange === void 0 || onChange(checkAllValue, {
e: e,
trigger: !checkAll ? "check" : "uncheck",
selectedOptions: currentSelectedOptions
});
};
var handleChange = function handleChange(value2, context) {
var selectedValue = multiple ? context.value : value2;
if (multiple) {
!reserveKeyword && inputValue && onInputChange("", {
e: context.e,
trigger: "change"
});
}
if (creatable && isFunction.isFunction(onCreate)) {
if (options.filter(function (option) {
return option.value === selectedValue;
}).length === 0) {
onCreate(selectedValue);
}
}
var _getSelectedOptions4 = select_util_helper.getSelectedOptions(value2, multiple, valueType, keys, valueToOption, selectedValue),
currentSelectedOptions = _getSelectedOptions4.currentSelectedOptions,
currentOption = _getSelectedOptions4.currentOption;
onChange === null || onChange === void 0 || onChange(value2, {
e: context.e,
trigger: context.trigger,
selectedOptions: currentSelectedOptions,
option: currentOption
});
if (multiple && (context === null || context === void 0 ? void 0 : context.trigger) === "uncheck" && isFunction.isFunction(onRemove)) {
var value3 = context === null || context === void 0 ? void 0 : context.value;
var option = options.find(function (option2) {
return option2.value === value3;
});
onRemove({
value: value3,
data: option,
e: context.e
});
}
};
var handleFilter = function handleFilter(value2) {
var filteredOptions = [];
if (filterable && isFunction.isFunction(onSearch)) {
return;
}
if (!value2) {
setCurrentOptions(tmpPropOptions);
return;
}
var filterLabels = [];
var filterMethods = function filterMethods(option) {
if (filter && isFunction.isFunction(filter)) {
return filter(value2, option);
}
var upperValue = value2.toUpperCase();
return ((option === null || option === void 0 ? void 0 : option.label) || "").toUpperCase().includes(upperValue);
};
tmpPropOptions === null || tmpPropOptions === void 0 || tmpPropOptions.forEach(function (option) {
if (select_util_helper.isSelectOptionGroup(option)) {
var _option$children;
filteredOptions.push(_objectSpread(_objectSpread({}, option), {}, {
children: (_option$children = option.children) === null || _option$children === void 0 ? void 0 : _option$children.filter(function (child) {
if (filterMethods(child)) {
filterLabels.push(child.label);
return true;
}
return false;
})
}));
} else if (filterMethods(option)) {
filterLabels.push(option.label);
filteredOptions.push(option);
}
});
var isSameLabelOptionExist = filterLabels.includes(value2);
if (creatable && !isSameLabelOptionExist) {
filteredOptions = filteredOptions.concat([{
label: value2,
value: value2
}]);
}
setCurrentOptions(filteredOptions);
};
var handleInputChange = function handleInputChange(value2, context) {
if (context.trigger !== "clear") {
onInputChange(value2, {
e: context.e,
trigger: "input"
});
}
if (value2 === void 0) {
return;
}
if (isFunction.isFunction(onSearch)) {
onSearch(value2, {
e: context.e
});
return;
}
};
var handleClear = function handleClear(context) {
context.e.stopPropagation();
if (Array.isArray(value)) {
onChange([], _objectSpread(_objectSpread({}, context), {}, {
trigger: "clear",
selectedOptions: []
}));
} else {
onChange(null, _objectSpread(_objectSpread({}, context), {}, {
trigger: "clear",
selectedOptions: []
}));
}
onClear(context);
};
React.useEffect(function () {
if (typeof inputValue !== "undefined") {
handleFilter(String(inputValue));
}
}, [inputValue, tmpPropOptions]);
var renderSuffixIcon = function renderSuffixIcon() {
if (suffixIcon) {
return suffixIcon;
}
if (loading) {
return /* @__PURE__ */React__default["default"].createElement(loading_index.Loading, {
className: classNames__default["default"]("".concat(name, "__right-icon"), "".concat(name, "__active-icon")),
loading: true,
size: "small"
});
}
return showArrow && /* @__PURE__ */React__default["default"].createElement(common_FakeArrow["default"], {
className: "".concat(name, "__right-icon"),
isActive: showPopup,
disabled: disabled
});
};
var getPopupInstance = React.useCallback(function () {
var _selectInputRef$curre;
return (_selectInputRef$curre = selectInputRef.current) === null || _selectInputRef$curre === void 0 ? void 0 : _selectInputRef$curre.getPopupContentElement();
}, []);
var childrenWithProps = React.Children.map(children, function (child) {
if (/*#__PURE__*/React.isValidElement(child)) {
var addedProps = {
multiple: multiple
};
return /*#__PURE__*/React.cloneElement(child, _objectSpread({}, addedProps));
}
return child;
});
var renderContent = function renderContent() {
var popupContentProps = {
onChange: handleChange,
value: value,
className: className,
size: size,
multiple: multiple,
showPopup: showPopup,
setShowPopup: function setShowPopup(show) {
return handleShowPopup(show, {});
},
options: currentOptions,
empty: empty,
max: max,
loadingText: loadingText,
loading: loading,
valueType: valueType,
keys: keys,
panelBottomContent: panelBottomContent,
panelTopContent: panelTopContent,
onCheckAllChange: onCheckAllChange,
getPopupInstance: getPopupInstance,
scroll: scroll
};
return /* @__PURE__ */React__default["default"].createElement(select_base_PopupContent["default"], _objectSpread({}, popupContentProps), childrenWithProps);
};
var renderValueDisplay = React.useMemo(function () {
if (!valueDisplay) {
if (!multiple) {
if (typeof selectedLabel !== "string") {
return selectedLabel;
}
return "";
}
return function (_ref2) {
var val = _ref2.value;
return val.slice(0, minCollapsedNum ? minCollapsedNum : val.length).map(function (v, key) {
var filterOption = options === null || options === void 0 ? void 0 : options.find(function (option) {
return option.label === v;
});
return /* @__PURE__ */React__default["default"].createElement(tag_index.Tag, _objectSpread(_objectSpread({
key: key,
closable: !(filterOption !== null && filterOption !== void 0 && filterOption.disabled) && !disabled && !readonly,
size: size
}, tagProps), {}, {
onClose: function onClose(_ref3) {
var _e$nativeEvent, _e$nativeEvent$stopIm, _tagProps$onClose;
var e = _ref3.e;
e.stopPropagation();
e === null || e === void 0 || (_e$nativeEvent = e.nativeEvent) === null || _e$nativeEvent === void 0 || (_e$nativeEvent$stopIm = _e$nativeEvent.stopImmediatePropagation) === null || _e$nativeEvent$stopIm === void 0 || _e$nativeEvent$stopIm.call(_e$nativeEvent);
var values = select_util_helper.getSelectValueArr(value, value[key], true, valueType, keys);
var _getSelectedOptions5 = select_util_helper.getSelectedOptions(values, multiple, valueType, keys, valueToOption, value),
currentSelectedOptions = _getSelectedOptions5.currentSelectedOptions;
onChange(values, {
e: e,
selectedOptions: currentSelectedOptions,
trigger: "tag-remove"
});
tagProps === null || tagProps === void 0 || (_tagProps$onClose = tagProps.onClose) === null || _tagProps$onClose === void 0 || _tagProps$onClose.call(tagProps, {
e: e
});
onRemove === null || onRemove === void 0 || onRemove({
value: value[key],
data: {
label: v,
value: value[key]
},
e: e
});
}
}), v);
});
};
}
if (typeof valueDisplay === "string") {
return valueDisplay;
}
if (multiple) {
return function (_ref4) {
var onClose = _ref4.onClose;
return _util_parseTNode.parseContentTNode(valueDisplay, {
value: selectedOptions,
onClose: onClose
});
};
}
return _util_parseTNode.parseContentTNode(valueDisplay, {
value: selectedLabel,
onClose: _util_noop["default"]
});
}, [valueDisplay, multiple, selectedLabel, minCollapsedNum, options, disabled, readonly, size, tagProps, value, valueType, keys, valueToOption, onRemove, selectedOptions]);
var updateScrollTop = function updateScrollTop(content) {
if (!content || isScrolling) {
return;
}
var firstSelectedNode = content.querySelector(".".concat(classPrefix, "-is-selected"));
if (!multiple && firstSelectedNode) {
var _getComputedStyle = getComputedStyle(firstSelectedNode),
paddingBottom = _getComputedStyle.paddingBottom;
var _getComputedStyle2 = getComputedStyle(content),
marginBottom = _getComputedStyle2.marginBottom;
var elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10);
var updateValue = _util_helper.getOffsetTopToContainer(firstSelectedNode, content) - content.offsetTop - (content.clientHeight - firstSelectedNode.clientHeight) + elementBottomHeight;
setTimeout(function () {
content.scrollTop = updateValue;
});
}
};
var onMouseEnter = props.onMouseEnter,
onMouseLeave = props.onMouseLeave;
var handleEnter = function handleEnter(_, context) {
onEnter === null || onEnter === void 0 || onEnter(_objectSpread(_objectSpread({}, context), {}, {
value: value
}));
};
var handleScroll = function handleScroll(_ref5) {
var e = _ref5.e;
toggleIsScrolling(true);
onScroll === null || onScroll === void 0 || onScroll({
e: e
});
if (onScrollToBottom) {
var debounceOnScrollBottom = debounce.debounce(function (e2) {
return onScrollToBottom({
e: e2
});
}, 100);
var _e$target = e.target,
scrollTop = _e$target.scrollTop,
clientHeight = _e$target.clientHeight,
scrollHeight = _e$target.scrollHeight;
if (clientHeight + Math.floor(scrollTop) === scrollHeight) {
debounceOnScrollBottom(e);
}
}
};
return /* @__PURE__ */React__default["default"].createElement("div", {
className: classNames__default["default"]("".concat(name, "__wrap"), className),
style: style,
onMouseEnter: onMouseEnter,
onMouseLeave: onMouseLeave
}, /* @__PURE__ */React__default["default"].createElement(selectInput_index.SelectInput, _objectSpread({
autoWidth: !(style !== null && style !== void 0 && style.width) && autoWidth,
ref: _util_composeRefs["default"](ref, selectInputRef),
className: name,
readonly: readonly,
autofocus: props.autofocus,
allowInput: (filterable !== null && filterable !== void 0 ? filterable : local.filterable) || isFunction.isFunction(filter),
multiple: multiple,
value: selectedLabel,
options: selectedOptions,
valueDisplay: renderValueDisplay,
clearable: clearable,
disabled: disabled,
status: props.status,
tips: props.tips,
borderless: borderless,
label: label,
suffix: props.suffix,
prefixIcon: prefixIcon,
suffixIcon: renderSuffixIcon(),
panel: renderContent(),
placeholder: !multiple && showPopup && selectedLabel ? selectedLabel : placeholder || t(local.placeholder),
inputValue: inputValue,
tagInputProps: _objectSpread({
size: size
}, tagInputProps),
tagProps: _objectSpread({
size: size
}, tagProps),
inputProps: _objectSpread({
size: size
}, inputProps),
minCollapsedNum: minCollapsedNum,
collapsedItems: collapsedItems,
updateScrollTop: updateScrollTop,
popupProps: _objectSpread({
overlayClassName: ["".concat(name, "__dropdown"), overlayClassName],
onScroll: handleScroll
}, restPopupProps),
popupVisible: showPopup,
onPopupVisibleChange: handleShowPopup,
onTagChange: onTagChange,
onInputChange: handleInputChange,
onFocus: onFocus,
onEnter: handleEnter,
onBlur: function onBlur(_, context) {
_onBlur === null || _onBlur === void 0 || _onBlur({
value: value,
e: context.e
});
},
onClear: handleClear
}, selectInputProps)));
}, {
Option: select_base_Option["default"],
OptionGroup: select_base_OptionGroup["default"]
});
Select.displayName = "Select";
exports["default"] = Select;
//# sourceMappingURL=Select.js.map