rsuite 6.2.0 → 6.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/AutoComplete/styles/index.css +3 -0
  2. package/CHANGELOG.md +24 -0
  3. package/Cascader/styles/index.css +3 -0
  4. package/CheckPicker/styles/index.css +3 -0
  5. package/CheckTree/styles/index.css +3 -0
  6. package/CheckTreePicker/styles/index.css +3 -0
  7. package/DatePicker/styles/index.css +3 -0
  8. package/DateRangePicker/styles/index.css +3 -0
  9. package/InputPicker/styles/index.css +3 -0
  10. package/MultiCascadeTree/styles/index.css +3 -0
  11. package/MultiCascader/styles/index.css +3 -0
  12. package/Pagination/styles/index.css +3 -0
  13. package/SelectPicker/styles/index.css +3 -0
  14. package/TagInput/styles/index.css +3 -0
  15. package/TagPicker/styles/index.css +3 -0
  16. package/TimePicker/styles/index.css +3 -0
  17. package/TimeRangePicker/styles/index.css +3 -0
  18. package/Tree/styles/index.css +3 -0
  19. package/TreePicker/styles/index.css +3 -0
  20. package/cjs/InputPicker/InputPicker.js +4 -0
  21. package/cjs/internals/Picker/PickerIndicator.js +15 -14
  22. package/cjs/locales/index.d.ts +1 -0
  23. package/cjs/locales/index.js +3 -1
  24. package/cjs/locales/nb_NO.d.ts +173 -0
  25. package/cjs/locales/nb_NO.js +101 -0
  26. package/dist/rsuite-no-reset.css +3 -0
  27. package/dist/rsuite-no-reset.min.css +1 -1
  28. package/dist/rsuite.css +3 -0
  29. package/dist/rsuite.js +2 -2
  30. package/dist/rsuite.min.css +1 -1
  31. package/dist/rsuite.min.js +1 -1
  32. package/dist/rsuite.min.js.map +1 -1
  33. package/esm/InputPicker/InputPicker.js +4 -0
  34. package/esm/internals/Picker/PickerIndicator.js +15 -14
  35. package/esm/locales/index.d.ts +1 -0
  36. package/esm/locales/index.js +1 -0
  37. package/esm/locales/nb_NO.d.ts +173 -0
  38. package/esm/locales/nb_NO.js +97 -0
  39. package/internals/Picker/styles/index.scss +3 -0
  40. package/locales/nb_NO/package.json +7 -0
  41. package/package.json +1 -1
package/dist/rsuite.css CHANGED
@@ -3757,6 +3757,9 @@ tbody.rs-anim-collapse.rs-anim-in{
3757
3757
  align-items:center;
3758
3758
  }
3759
3759
  .rs-picker-toggle-indicator .rs-picker-clean{
3760
+ display:inline-flex;
3761
+ align-items:center;
3762
+ justify-content:center;
3760
3763
  color:var(--rs-text-secondary);
3761
3764
  transition:0.2s color linear;
3762
3765
  cursor:pointer;
package/dist/rsuite.js CHANGED
@@ -3524,7 +3524,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3524
3524
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3525
3525
 
3526
3526
  "use strict";
3527
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\nvar _remove = _interopRequireDefault(__webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\"));\nvar _clone = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\"));\nvar _isArray = _interopRequireDefault(__webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _Tag = _interopRequireDefault(__webpack_require__(/*! ../Tag */ \"./src/Tag/index.tsx\"));\nvar _TextBox = _interopRequireDefault(__webpack_require__(/*! ./TextBox */ \"./src/InputPicker/TextBox.tsx\"));\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\nvar _useInput = _interopRequireDefault(__webpack_require__(/*! ./hooks/useInput */ \"./src/InputPicker/hooks/useInput.ts\"));\nvar _useData = _interopRequireDefault(__webpack_require__(/*! ./hooks/useData */ \"./src/InputPicker/hooks/useData.ts\"));\nvar _Plaintext = _interopRequireDefault(__webpack_require__(/*! ../internals/Plaintext */ \"./src/internals/Plaintext/index.tsx\"));\nvar _utils = __webpack_require__(/*! ../internals/Tree/utils */ \"./src/internals/Tree/utils/index.ts\");\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _constants = __webpack_require__(/*! ../internals/constants */ \"./src/internals/constants/index.ts\");\nvar _InputPickerContext = __webpack_require__(/*! ./InputPickerContext */ \"./src/InputPicker/InputPickerContext.tsx\");\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/InputPicker/utils.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _Position = __webpack_require__(/*! ../internals/Overlay/Position */ \"./src/internals/Overlay/Position.tsx\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/InputPicker/InputPicker.tsx\";\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\n/**\n * Single item selector with text box input.\n *\n * @see https://rsuitejs.com/components/input-picker\n */\nconst InputPicker = (0, _utils3.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('InputPicker', props);\n const {\n as,\n appearance = 'default',\n block,\n cleanable = true,\n cacheData = [],\n className,\n classPrefix = 'picker',\n caretAs,\n data: controlledData = [],\n disabled,\n readOnly,\n plaintext,\n defaultValue,\n defaultOpen = false,\n disabledItemValues = [],\n locale,\n toggleAs,\n style,\n size = 'md',\n searchable = true,\n open: controlledOpen,\n placeholder,\n placement = 'bottomStart',\n groupBy,\n popupClassName,\n popupStyle,\n popupAutoWidth = true,\n listboxMaxHeight = 320,\n creatable,\n shouldDisplayCreateOption,\n value: valueProp,\n valueKey = 'value',\n virtualized,\n labelKey = 'label',\n listProps,\n id,\n tabIndex,\n loading,\n label,\n sort,\n renderListbox,\n renderExtraFooter,\n renderValue,\n renderOption,\n renderOptionGroup,\n onEnter,\n onEntered,\n onExit,\n onExited,\n onChange,\n onClean,\n onCreate,\n onSearch,\n onSelect,\n onBlur,\n onFocus,\n searchBy,\n ...rest\n } = propsWithDefaults;\n const {\n multi,\n tagProps,\n trigger,\n disabledOptions,\n onTagRemove,\n renderCheckbox\n } = (0, _InputPickerContext.useTagContext)();\n if (groupBy === valueKey || groupBy === labelKey) {\n throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');\n }\n const {\n trigger: triggerRef,\n root,\n target,\n overlay,\n list\n } = (0, _Picker.usePickerRef)(ref);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const [open, setOpen] = (0, _hooks.useControlled)(controlledOpen, defaultOpen);\n const {\n inputRef,\n inputProps,\n focus,\n blur\n } = (0, _useInput.default)({\n multi,\n triggerRef\n });\n const handleDataChange = data => {\n setFocusItemValue(data?.[0]?.[valueKey]);\n };\n const {\n data,\n dataWithCache,\n newData,\n setNewData\n } = (0, _useData.default)({\n controlledData,\n cacheData,\n onChange: handleDataChange\n });\n const [value, setValue, isControlled] = (0, _hooks.useControlled)(valueProp, multi ? defaultValue || [] : defaultValue);\n const cloneValue = () => multi ? (0, _clone.default)(value) || [] : value;\n const handleClose = (0, _hooks.useEventCallback)(() => {\n triggerRef?.current?.close();\n\n // The focus is on the trigger button after closing\n target.current?.focus?.();\n });\n const focusItemValueOptions = {\n data: dataWithCache,\n valueKey,\n target: () => overlay.current\n };\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n onKeyDown\n } = (0, _Picker.useFocusItemValue)(multi ? value?.[0] : value, focusItemValueOptions);\n const onSearchCallback = (0, _hooks.useEventCallback)((searchKeyword, filteredData, event) => {\n if (!disabledOptions) {\n // The first option after filtering is the focus.\n let firstItemValue = filteredData?.[0]?.[valueKey];\n\n // If there is no value in the option and new options are supported, the search keyword is the first option\n if (!firstItemValue && creatable) {\n firstItemValue = searchKeyword;\n }\n setFocusItemValue(firstItemValue);\n }\n onSearch?.(searchKeyword, event);\n });\n const searchOptions = {\n labelKey,\n searchBy,\n callback: onSearchCallback\n };\n\n // Use search keywords to filter options.\n const {\n searchKeyword,\n resetSearch,\n checkShouldDisplay,\n handleSearch\n } = (0, _Picker.useSearch)(data, searchOptions);\n\n // Update the position of the menu when the search keyword and value change\n (0, _react.useEffect)(() => {\n triggerRef.current?.updatePosition?.();\n }, [searchKeyword, value]);\n const getDataItem = value => {\n // Find active `MenuItem` by `value`\n const activeItem = dataWithCache.find(item => (0, _utils3.shallowEqual)(item[valueKey], value));\n let itemNode = placeholder;\n if (activeItem?.[labelKey]) {\n itemNode = activeItem?.[labelKey];\n }\n return {\n isValid: !!activeItem,\n activeItem,\n itemNode\n };\n };\n\n /**\n * Convert the string of the newly created option into an object.\n */\n const createOption = value => {\n const option = {\n create: true,\n [valueKey]: value,\n [labelKey]: value\n };\n if (groupBy) {\n return {\n [groupBy]: locale?.newItem,\n ...option\n };\n }\n return option;\n };\n const handleChange = (0, _hooks.useEventCallback)((value, event) => {\n onChange?.(value, event);\n });\n const handleRemoveItemByTag = (0, _hooks.useEventCallback)((tag, event) => {\n event.stopPropagation();\n const val = cloneValue();\n (0, _remove.default)(val, itemVal => (0, _utils3.shallowEqual)(itemVal, tag));\n setValue(val);\n handleChange(val, event);\n onTagRemove?.(tag, event);\n });\n const handleSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n onSelect?.(value, item, event);\n if (creatable && item.create) {\n delete item.create;\n onCreate?.(value, item, event);\n setNewData(newData.concat(item));\n }\n });\n\n /**\n * Callback triggered by single selection\n * @param value\n * @param item\n * @param event\n */\n const handleSelectItem = (0, _hooks.useEventCallback)((value, item, event) => {\n setValue(value);\n setFocusItemValue(value);\n resetSearch();\n handleSelect(value, item, event);\n handleChange(value, event);\n handleClose();\n });\n\n /**\n * Callback triggered by multiple selection\n * @param nextItemValue\n * @param item\n * @param event\n * @param checked\n */\n const handleCheckTag = (0, _hooks.useEventCallback)((nextItemValue, item, event, checked) => {\n const val = cloneValue();\n if (checked) {\n val.push(nextItemValue);\n } else {\n (0, _remove.default)(val, itemVal => (0, _utils3.shallowEqual)(itemVal, nextItemValue));\n }\n setValue(val);\n resetSearch();\n setFocusItemValue(nextItemValue);\n handleSelect(val, item, event);\n handleChange(val, event);\n focus();\n });\n const handleTagKeyPress = (0, _hooks.useEventCallback)(event => {\n // When composing, ignore the keypress event.\n if (event.nativeEvent.isComposing) {\n return;\n }\n const val = cloneValue();\n let newItemValue = focusItemValue || '';\n\n // In TagInput\n if (multi && disabledOptions) {\n newItemValue = searchKeyword;\n }\n if (!newItemValue || !data) {\n return;\n }\n\n // If the value is disabled in this option, it is returned.\n if (disabledItemValues?.some(item => item === newItemValue)) {\n return;\n }\n if (!val.some(v => (0, _utils3.shallowEqual)(v, newItemValue))) {\n val.push(newItemValue);\n } else if (!disabledOptions) {\n (0, _remove.default)(val, itemVal => (0, _utils3.shallowEqual)(itemVal, newItemValue));\n }\n let focusItem = data.find(item => (0, _utils3.shallowEqual)(item?.[valueKey], newItemValue));\n if (!focusItem) {\n focusItem = createOption(newItemValue);\n }\n setValue(val);\n resetSearch();\n handleSelect(val, focusItem, event);\n handleChange(val, event);\n });\n const handleMenuItemKeyPress = (0, _hooks.useEventCallback)(event => {\n if (!focusItemValue || !controlledData) {\n return;\n }\n\n // If the value is disabled in this option, it is returned.\n if (disabledItemValues?.some(item => item === focusItemValue)) {\n return;\n }\n\n // Find active `MenuItem` by `value`\n let focusItem = data.find(item => (0, _utils3.shallowEqual)(item[valueKey], focusItemValue));\n\n // FIXME Bad state flow\n if (!focusItem && focusItemValue === searchKeyword) {\n focusItem = createOption(searchKeyword);\n }\n setValue(focusItemValue);\n resetSearch();\n if (focusItem) {\n handleSelect(focusItemValue, focusItem, event);\n }\n handleChange(focusItemValue, event);\n handleClose();\n });\n\n /**\n * Remove the last item, after pressing the back key on the keyboard.\n * @param event\n */\n const removeLastItem = (0, _hooks.useEventCallback)(event => {\n const target = event?.target;\n if (target?.tagName !== 'INPUT') {\n focus();\n return;\n }\n if (target?.tagName === 'INPUT' && target?.value) {\n return;\n }\n const val = cloneValue();\n val.pop();\n setValue(val);\n handleChange(val, event);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled) {\n return;\n }\n\n // When there is a value in the search box and the user presses the delete key on the keyboard,\n // do not trigger clearing\n if (inputRef.current === event.target && searchKeyword !== '') {\n return;\n }\n setValue(null);\n setFocusItemValue(null);\n resetSearch();\n if (multi) {\n handleChange([], event);\n } else {\n handleChange(null, event);\n }\n onClean?.(event);\n });\n const events = {\n onMenuPressBackspace: multi ? removeLastItem : handleClean,\n onMenuKeyDown: onKeyDown,\n onMenuPressEnter: undefined,\n onKeyDown: undefined\n };\n const handleKeyPress = (0, _hooks.useEventCallback)(event => {\n // When typing a space, create a tag.\n if ((0, _utils3.isOneOf)('Space', trigger) && event.key === _constants.KEY_VALUES.SPACE) {\n handleTagKeyPress(event);\n event.preventDefault();\n }\n\n // When typing a comma, create a tag.\n if ((0, _utils3.isOneOf)('Comma', trigger) && event.key === _constants.KEY_VALUES.COMMA) {\n handleTagKeyPress(event);\n event.preventDefault();\n }\n });\n if (multi) {\n if ((0, _utils3.isOneOf)('Enter', trigger)) {\n events.onMenuPressEnter = handleTagKeyPress;\n }\n if (creatable) {\n events.onKeyDown = handleKeyPress;\n }\n } else {\n events.onMenuPressEnter = handleMenuItemKeyPress;\n }\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n trigger: triggerRef,\n target,\n overlay,\n loading,\n ...events,\n ...rest\n });\n const handleExited = (0, _hooks.useEventCallback)(() => {\n setFocusItemValue(multi ? value?.[0] : value);\n resetSearch();\n });\n const handleFocus = (0, _hooks.useEventCallback)(event => {\n if (!readOnly) {\n setOpen(true);\n triggerRef.current?.open();\n }\n onFocus?.(event);\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n focus();\n setOpen(true);\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n blur();\n setOpen(false);\n });\n const renderListItem = (label, item) => {\n // 'Create option \"{0}\"' => Create option \"xxxxx\"\n const newLabel = item.create ? /*#__PURE__*/_react.default.createElement(\"span\", {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 507,\n columnNumber: 7\n }\n }, (0, _utils3.tplTransform)(locale?.createOption || '', label)) : label;\n return renderOption ? renderOption(newLabel, item) : newLabel;\n };\n const checkValue = () => {\n if (multi) {\n return {\n isValid: false,\n itemNode: null\n };\n }\n const dataItem = getDataItem(value);\n let itemNode = dataItem.itemNode;\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n itemNode = renderValue(value, dataItem.activeItem, itemNode);\n }\n return {\n isValid: dataItem.isValid,\n itemNode\n };\n };\n const renderMultiValue = () => {\n if (!multi) {\n return null;\n }\n const {\n closable = true,\n onClose,\n ...tagRest\n } = tagProps;\n const tags = value || [];\n const items = [];\n const tagElements = tags.map(tag => {\n const {\n isValid,\n itemNode,\n activeItem\n } = getDataItem(tag);\n items.push(activeItem);\n if (!isValid) {\n return null;\n }\n return /*#__PURE__*/_react.default.createElement(_Tag.default, (0, _extends2.default)({\n role: \"option\"\n }, tagRest, {\n key: tag,\n size: (0, _utils2.convertSize)(size),\n closable: !disabled && closable && !readOnly && !plaintext,\n title: typeof itemNode === 'string' ? itemNode : undefined,\n onClose: (0, _utils3.createChainedFunction)(handleRemoveItemByTag.bind(null, tag), onClose),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 548,\n columnNumber: 11\n }\n }), itemNode);\n }).filter(item => item !== null);\n if ((tags.length > 0 || isControlled) && (0, _isFunction.default)(renderValue)) {\n return renderValue(value, items, tagElements);\n }\n return tagElements;\n };\n const renderPopup = (positionProps, speakerRef) => {\n const {\n className,\n left,\n top\n } = positionProps;\n const menuClassPrefix = multi ? 'picker-check-menu' : 'picker-select-menu';\n const classes = merge(className, popupClassName, prefix(multi ? 'check-menu' : 'select-menu'));\n const mergedPopupStyle = (0, _utils3.mergeStyles)((0, _Position.getPositionStyle)(left, top), popupStyle);\n let items = (0, _utils.filterNodesOfTree)(data, checkShouldDisplay);\n if (creatable && (typeof shouldDisplayCreateOption === 'function' ? shouldDisplayCreateOption(searchKeyword, items) : searchKeyword && !items.find(item => item[valueKey] === searchKeyword))) {\n items = [...items, createOption(searchKeyword)];\n }\n\n // Create a tree structure data when set `groupBy`\n if (groupBy) {\n items = (0, _utils3.getDataGroupBy)(items, groupBy, sort);\n } else if (typeof sort === 'function') {\n items = items.sort(sort(false));\n }\n if (disabledOptions) {\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 595,\n columnNumber: 14\n }\n });\n }\n const listbox = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {\n listProps: listProps,\n listRef: list,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n classPrefix: menuClassPrefix,\n listItemClassPrefix: multi ? undefined : `${menuClassPrefix}-item`,\n listItemAs: multi ? _Picker.ListCheckItem : _Picker.ListItem,\n listItemProps: {\n renderCheckbox\n },\n activeItemValues: multi ? value : [value],\n focusItemValue: focusItemValue,\n maxHeight: listboxMaxHeight,\n data: items,\n query: searchKeyword,\n groupBy: groupBy,\n onSelect: multi ? handleCheckTag : handleSelectItem,\n renderOptionGroup: renderOptionGroup,\n renderOption: renderListItem,\n virtualized: virtualized,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 599,\n columnNumber: 7\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix`none`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 621,\n columnNumber: 7\n }\n }, locale?.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: mergedPopupStyle,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 625,\n columnNumber: 7\n }\n }, renderListbox ? renderListbox(listbox) : listbox, renderExtraFooter?.());\n };\n const {\n isValid,\n itemNode\n } = checkValue();\n const tagElements = renderMultiValue();\n\n /**\n * 1.Have a value and the value is valid.\n * 2.Regardless of whether the value is valid, as long as renderValue is set, it is judged to have a value.\n * 3.If renderValue returns null or undefined, hasValue is false.\n */\n const hasSingleValue = !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(itemNode);\n const hasMultiValue = (0, _isArray.default)(value) && value.length > 0 && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(tagElements);\n const hasValue = multi ? !!tagElements?.length || hasMultiValue : isValid || hasSingleValue;\n const searching = !!searchKeyword && open;\n const editable = searchable && !disabled && !loading;\n if (plaintext) {\n const plaintextProps = {};\n\n // When multiple selection, the tag is displayed in a stack layout.\n if (multi && hasValue) {\n plaintextProps.as = _Stack.default;\n plaintextProps.spacing = 6;\n plaintextProps.wrap = true;\n }\n return /*#__PURE__*/_react.default.createElement(_Plaintext.default, (0, _extends2.default)({\n localeKey: \"notSelected\",\n ref: target\n }, plaintextProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 665,\n columnNumber: 7\n }\n }), itemNode || (tagElements?.length ? tagElements : null) || placeholder);\n }\n const placeholderNode = placeholder || (disabledOptions ? null : locale?.placeholder);\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils3.createChainedFunction)(handleEnter, onEnter),\n onEntered: onEntered,\n onExit: (0, _utils3.createChainedFunction)(handleExit, onExit),\n onExited: (0, _utils3.createChainedFunction)(handleExited, onExited)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, (0, _extends2.default)({\n id: id,\n multiple: multi,\n pickerType: multi ? 'tag' : 'input',\n block: block,\n disabled: disabled,\n appearance: appearance,\n as: as,\n triggerProps: triggerProps,\n ref: triggerRef,\n trigger: \"active\",\n speaker: renderPopup,\n placement: placement,\n rootRef: root,\n style: style,\n size: size,\n classPrefix: classPrefix,\n className: className,\n responsive: searchable === false,\n onClick: focus,\n onKeyDown: onPickerKeyDown,\n \"data-focus\": open,\n \"data-disabled-options\": disabledOptions\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 681,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, {\n loading: loading,\n label: label,\n appearance: appearance,\n readOnly: readOnly,\n plaintext: plaintext,\n ref: target,\n as: toggleAs,\n caretAs: caretAs,\n tabIndex: tabIndex,\n onClean: handleClean,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: open,\n disabled: disabled,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue,\n caret: !disabledOptions,\n size: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 706,\n columnNumber: 7\n }\n }, searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/_react.default.createElement(_TextBox.default, {\n showTagList: multi,\n inputRef: inputRef,\n inputValue: open ? searchKeyword : '',\n inputProps: inputProps,\n tags: tagElements,\n editable: editable,\n readOnly: readOnly,\n disabled: disabled,\n multiple: multi,\n onBlur: onBlur,\n onFocus: handleFocus,\n onChange: handleSearch,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 729,\n columnNumber: 7\n }\n }));\n});\nInputPicker.displayName = 'InputPicker';\nvar _default = exports[\"default\"] = InputPicker;\n\n//# sourceURL=webpack://rsuite/./src/InputPicker/InputPicker.tsx?");
3527
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\nvar _remove = _interopRequireDefault(__webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\"));\nvar _clone = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\"));\nvar _isArray = _interopRequireDefault(__webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _Tag = _interopRequireDefault(__webpack_require__(/*! ../Tag */ \"./src/Tag/index.tsx\"));\nvar _TextBox = _interopRequireDefault(__webpack_require__(/*! ./TextBox */ \"./src/InputPicker/TextBox.tsx\"));\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\nvar _useInput = _interopRequireDefault(__webpack_require__(/*! ./hooks/useInput */ \"./src/InputPicker/hooks/useInput.ts\"));\nvar _useData = _interopRequireDefault(__webpack_require__(/*! ./hooks/useData */ \"./src/InputPicker/hooks/useData.ts\"));\nvar _Plaintext = _interopRequireDefault(__webpack_require__(/*! ../internals/Plaintext */ \"./src/internals/Plaintext/index.tsx\"));\nvar _utils = __webpack_require__(/*! ../internals/Tree/utils */ \"./src/internals/Tree/utils/index.ts\");\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _constants = __webpack_require__(/*! ../internals/constants */ \"./src/internals/constants/index.ts\");\nvar _InputPickerContext = __webpack_require__(/*! ./InputPickerContext */ \"./src/InputPicker/InputPickerContext.tsx\");\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/InputPicker/utils.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _Position = __webpack_require__(/*! ../internals/Overlay/Position */ \"./src/internals/Overlay/Position.tsx\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/InputPicker/InputPicker.tsx\";\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\n/**\n * Single item selector with text box input.\n *\n * @see https://rsuitejs.com/components/input-picker\n */\nconst InputPicker = (0, _utils3.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('InputPicker', props);\n const {\n as,\n appearance = 'default',\n block,\n cleanable = true,\n cacheData = [],\n className,\n classPrefix = 'picker',\n caretAs,\n data: controlledData = [],\n disabled,\n readOnly,\n plaintext,\n defaultValue,\n defaultOpen = false,\n disabledItemValues = [],\n locale,\n toggleAs,\n style,\n size = 'md',\n searchable = true,\n open: controlledOpen,\n placeholder,\n placement = 'bottomStart',\n groupBy,\n popupClassName,\n popupStyle,\n popupAutoWidth = true,\n listboxMaxHeight = 320,\n creatable,\n shouldDisplayCreateOption,\n value: valueProp,\n valueKey = 'value',\n virtualized,\n labelKey = 'label',\n listProps,\n id,\n tabIndex,\n loading,\n label,\n sort,\n renderListbox,\n renderExtraFooter,\n renderValue,\n renderOption,\n renderOptionGroup,\n onEnter,\n onEntered,\n onExit,\n onExited,\n onChange,\n onClean,\n onCreate,\n onSearch,\n onSelect,\n onBlur,\n onFocus,\n searchBy,\n ...rest\n } = propsWithDefaults;\n const {\n multi,\n tagProps,\n trigger,\n disabledOptions,\n onTagRemove,\n renderCheckbox\n } = (0, _InputPickerContext.useTagContext)();\n if (groupBy === valueKey || groupBy === labelKey) {\n throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');\n }\n const {\n trigger: triggerRef,\n root,\n target,\n overlay,\n list\n } = (0, _Picker.usePickerRef)(ref);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const [open, setOpen] = (0, _hooks.useControlled)(controlledOpen, defaultOpen);\n const {\n inputRef,\n inputProps,\n focus,\n blur\n } = (0, _useInput.default)({\n multi,\n triggerRef\n });\n const handleDataChange = data => {\n setFocusItemValue(data?.[0]?.[valueKey]);\n };\n const {\n data,\n dataWithCache,\n newData,\n setNewData\n } = (0, _useData.default)({\n controlledData,\n cacheData,\n onChange: handleDataChange\n });\n const [value, setValue, isControlled] = (0, _hooks.useControlled)(valueProp, multi ? defaultValue || [] : defaultValue);\n const cloneValue = () => multi ? (0, _clone.default)(value) || [] : value;\n const handleClose = (0, _hooks.useEventCallback)(() => {\n triggerRef?.current?.close();\n\n // The focus is on the trigger button after closing\n target.current?.focus?.();\n });\n const focusItemValueOptions = {\n data: dataWithCache,\n valueKey,\n target: () => overlay.current\n };\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n onKeyDown\n } = (0, _Picker.useFocusItemValue)(multi ? value?.[0] : value, focusItemValueOptions);\n const onSearchCallback = (0, _hooks.useEventCallback)((searchKeyword, filteredData, event) => {\n if (!disabledOptions) {\n // The first option after filtering is the focus.\n let firstItemValue = filteredData?.[0]?.[valueKey];\n\n // If there is no value in the option and new options are supported, the search keyword is the first option\n if (!firstItemValue && creatable) {\n firstItemValue = searchKeyword;\n }\n setFocusItemValue(firstItemValue);\n }\n onSearch?.(searchKeyword, event);\n });\n const searchOptions = {\n labelKey,\n searchBy,\n callback: onSearchCallback\n };\n\n // Use search keywords to filter options.\n const {\n searchKeyword,\n resetSearch,\n checkShouldDisplay,\n handleSearch\n } = (0, _Picker.useSearch)(data, searchOptions);\n\n // Update the position of the menu when the search keyword and value change\n (0, _react.useEffect)(() => {\n triggerRef.current?.updatePosition?.();\n }, [searchKeyword, value]);\n const getDataItem = value => {\n // Find active `MenuItem` by `value`\n const activeItem = dataWithCache.find(item => (0, _utils3.shallowEqual)(item[valueKey], value));\n let itemNode = placeholder;\n if (activeItem?.[labelKey]) {\n itemNode = activeItem?.[labelKey];\n }\n return {\n isValid: !!activeItem,\n activeItem,\n itemNode\n };\n };\n\n /**\n * Convert the string of the newly created option into an object.\n */\n const createOption = value => {\n const option = {\n create: true,\n [valueKey]: value,\n [labelKey]: value\n };\n if (groupBy) {\n return {\n [groupBy]: locale?.newItem,\n ...option\n };\n }\n return option;\n };\n const handleChange = (0, _hooks.useEventCallback)((value, event) => {\n onChange?.(value, event);\n });\n const handleRemoveItemByTag = (0, _hooks.useEventCallback)((tag, event) => {\n event.stopPropagation();\n const val = cloneValue();\n (0, _remove.default)(val, itemVal => (0, _utils3.shallowEqual)(itemVal, tag));\n setValue(val);\n handleChange(val, event);\n onTagRemove?.(tag, event);\n });\n const handleSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n onSelect?.(value, item, event);\n if (creatable && item.create) {\n delete item.create;\n onCreate?.(value, item, event);\n setNewData(newData.concat(item));\n }\n });\n\n /**\n * Callback triggered by single selection\n * @param value\n * @param item\n * @param event\n */\n const handleSelectItem = (0, _hooks.useEventCallback)((value, item, event) => {\n setValue(value);\n setFocusItemValue(value);\n resetSearch();\n handleSelect(value, item, event);\n handleChange(value, event);\n handleClose();\n });\n\n /**\n * Callback triggered by multiple selection\n * @param nextItemValue\n * @param item\n * @param event\n * @param checked\n */\n const handleCheckTag = (0, _hooks.useEventCallback)((nextItemValue, item, event, checked) => {\n const val = cloneValue();\n if (checked) {\n val.push(nextItemValue);\n } else {\n (0, _remove.default)(val, itemVal => (0, _utils3.shallowEqual)(itemVal, nextItemValue));\n }\n setValue(val);\n resetSearch();\n setFocusItemValue(nextItemValue);\n handleSelect(val, item, event);\n handleChange(val, event);\n focus();\n });\n const handleTagKeyPress = (0, _hooks.useEventCallback)(event => {\n // When composing, ignore the keypress event.\n if (event.nativeEvent.isComposing) {\n return;\n }\n const val = cloneValue();\n let newItemValue = focusItemValue || '';\n\n // In TagInput\n if (multi && disabledOptions) {\n newItemValue = searchKeyword;\n }\n if (!newItemValue || !data) {\n return;\n }\n\n // If the value is disabled in this option, it is returned.\n if (disabledItemValues?.some(item => item === newItemValue)) {\n return;\n }\n if (!val.some(v => (0, _utils3.shallowEqual)(v, newItemValue))) {\n val.push(newItemValue);\n } else if (!disabledOptions) {\n (0, _remove.default)(val, itemVal => (0, _utils3.shallowEqual)(itemVal, newItemValue));\n }\n let focusItem = data.find(item => (0, _utils3.shallowEqual)(item?.[valueKey], newItemValue));\n if (!focusItem) {\n focusItem = createOption(newItemValue);\n }\n setValue(val);\n resetSearch();\n handleSelect(val, focusItem, event);\n handleChange(val, event);\n });\n const handleMenuItemKeyPress = (0, _hooks.useEventCallback)(event => {\n // When composing, ignore the keypress event.\n if (event.nativeEvent.isComposing) {\n return;\n }\n if (!focusItemValue || !controlledData) {\n return;\n }\n\n // If the value is disabled in this option, it is returned.\n if (disabledItemValues?.some(item => item === focusItemValue)) {\n return;\n }\n\n // Find active `MenuItem` by `value`\n let focusItem = data.find(item => (0, _utils3.shallowEqual)(item[valueKey], focusItemValue));\n\n // FIXME Bad state flow\n if (!focusItem && focusItemValue === searchKeyword) {\n focusItem = createOption(searchKeyword);\n }\n setValue(focusItemValue);\n resetSearch();\n if (focusItem) {\n handleSelect(focusItemValue, focusItem, event);\n }\n handleChange(focusItemValue, event);\n handleClose();\n });\n\n /**\n * Remove the last item, after pressing the back key on the keyboard.\n * @param event\n */\n const removeLastItem = (0, _hooks.useEventCallback)(event => {\n const target = event?.target;\n if (target?.tagName !== 'INPUT') {\n focus();\n return;\n }\n if (target?.tagName === 'INPUT' && target?.value) {\n return;\n }\n const val = cloneValue();\n val.pop();\n setValue(val);\n handleChange(val, event);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled) {\n return;\n }\n\n // When there is a value in the search box and the user presses the delete key on the keyboard,\n // do not trigger clearing\n if (inputRef.current === event.target && searchKeyword !== '') {\n return;\n }\n setValue(null);\n setFocusItemValue(null);\n resetSearch();\n if (multi) {\n handleChange([], event);\n } else {\n handleChange(null, event);\n }\n onClean?.(event);\n });\n const events = {\n onMenuPressBackspace: multi ? removeLastItem : handleClean,\n onMenuKeyDown: onKeyDown,\n onMenuPressEnter: undefined,\n onKeyDown: undefined\n };\n const handleKeyPress = (0, _hooks.useEventCallback)(event => {\n // When typing a space, create a tag.\n if ((0, _utils3.isOneOf)('Space', trigger) && event.key === _constants.KEY_VALUES.SPACE) {\n handleTagKeyPress(event);\n event.preventDefault();\n }\n\n // When typing a comma, create a tag.\n if ((0, _utils3.isOneOf)('Comma', trigger) && event.key === _constants.KEY_VALUES.COMMA) {\n handleTagKeyPress(event);\n event.preventDefault();\n }\n });\n if (multi) {\n if ((0, _utils3.isOneOf)('Enter', trigger)) {\n events.onMenuPressEnter = handleTagKeyPress;\n }\n if (creatable) {\n events.onKeyDown = handleKeyPress;\n }\n } else {\n events.onMenuPressEnter = handleMenuItemKeyPress;\n }\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n trigger: triggerRef,\n target,\n overlay,\n loading,\n ...events,\n ...rest\n });\n const handleExited = (0, _hooks.useEventCallback)(() => {\n setFocusItemValue(multi ? value?.[0] : value);\n resetSearch();\n });\n const handleFocus = (0, _hooks.useEventCallback)(event => {\n if (!readOnly) {\n setOpen(true);\n triggerRef.current?.open();\n }\n onFocus?.(event);\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n focus();\n setOpen(true);\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n blur();\n setOpen(false);\n });\n const renderListItem = (label, item) => {\n // 'Create option \"{0}\"' => Create option \"xxxxx\"\n const newLabel = item.create ? /*#__PURE__*/_react.default.createElement(\"span\", {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 7\n }\n }, (0, _utils3.tplTransform)(locale?.createOption || '', label)) : label;\n return renderOption ? renderOption(newLabel, item) : newLabel;\n };\n const checkValue = () => {\n if (multi) {\n return {\n isValid: false,\n itemNode: null\n };\n }\n const dataItem = getDataItem(value);\n let itemNode = dataItem.itemNode;\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n itemNode = renderValue(value, dataItem.activeItem, itemNode);\n }\n return {\n isValid: dataItem.isValid,\n itemNode\n };\n };\n const renderMultiValue = () => {\n if (!multi) {\n return null;\n }\n const {\n closable = true,\n onClose,\n ...tagRest\n } = tagProps;\n const tags = value || [];\n const items = [];\n const tagElements = tags.map(tag => {\n const {\n isValid,\n itemNode,\n activeItem\n } = getDataItem(tag);\n items.push(activeItem);\n if (!isValid) {\n return null;\n }\n return /*#__PURE__*/_react.default.createElement(_Tag.default, (0, _extends2.default)({\n role: \"option\"\n }, tagRest, {\n key: tag,\n size: (0, _utils2.convertSize)(size),\n closable: !disabled && closable && !readOnly && !plaintext,\n title: typeof itemNode === 'string' ? itemNode : undefined,\n onClose: (0, _utils3.createChainedFunction)(handleRemoveItemByTag.bind(null, tag), onClose),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 553,\n columnNumber: 11\n }\n }), itemNode);\n }).filter(item => item !== null);\n if ((tags.length > 0 || isControlled) && (0, _isFunction.default)(renderValue)) {\n return renderValue(value, items, tagElements);\n }\n return tagElements;\n };\n const renderPopup = (positionProps, speakerRef) => {\n const {\n className,\n left,\n top\n } = positionProps;\n const menuClassPrefix = multi ? 'picker-check-menu' : 'picker-select-menu';\n const classes = merge(className, popupClassName, prefix(multi ? 'check-menu' : 'select-menu'));\n const mergedPopupStyle = (0, _utils3.mergeStyles)((0, _Position.getPositionStyle)(left, top), popupStyle);\n let items = (0, _utils.filterNodesOfTree)(data, checkShouldDisplay);\n if (creatable && (typeof shouldDisplayCreateOption === 'function' ? shouldDisplayCreateOption(searchKeyword, items) : searchKeyword && !items.find(item => item[valueKey] === searchKeyword))) {\n items = [...items, createOption(searchKeyword)];\n }\n\n // Create a tree structure data when set `groupBy`\n if (groupBy) {\n items = (0, _utils3.getDataGroupBy)(items, groupBy, sort);\n } else if (typeof sort === 'function') {\n items = items.sort(sort(false));\n }\n if (disabledOptions) {\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 600,\n columnNumber: 14\n }\n });\n }\n const listbox = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {\n listProps: listProps,\n listRef: list,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n classPrefix: menuClassPrefix,\n listItemClassPrefix: multi ? undefined : `${menuClassPrefix}-item`,\n listItemAs: multi ? _Picker.ListCheckItem : _Picker.ListItem,\n listItemProps: {\n renderCheckbox\n },\n activeItemValues: multi ? value : [value],\n focusItemValue: focusItemValue,\n maxHeight: listboxMaxHeight,\n data: items,\n query: searchKeyword,\n groupBy: groupBy,\n onSelect: multi ? handleCheckTag : handleSelectItem,\n renderOptionGroup: renderOptionGroup,\n renderOption: renderListItem,\n virtualized: virtualized,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 604,\n columnNumber: 7\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix`none`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 626,\n columnNumber: 7\n }\n }, locale?.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: mergedPopupStyle,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 630,\n columnNumber: 7\n }\n }, renderListbox ? renderListbox(listbox) : listbox, renderExtraFooter?.());\n };\n const {\n isValid,\n itemNode\n } = checkValue();\n const tagElements = renderMultiValue();\n\n /**\n * 1.Have a value and the value is valid.\n * 2.Regardless of whether the value is valid, as long as renderValue is set, it is judged to have a value.\n * 3.If renderValue returns null or undefined, hasValue is false.\n */\n const hasSingleValue = !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(itemNode);\n const hasMultiValue = (0, _isArray.default)(value) && value.length > 0 && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(tagElements);\n const hasValue = multi ? !!tagElements?.length || hasMultiValue : isValid || hasSingleValue;\n const searching = !!searchKeyword && open;\n const editable = searchable && !disabled && !loading;\n if (plaintext) {\n const plaintextProps = {};\n\n // When multiple selection, the tag is displayed in a stack layout.\n if (multi && hasValue) {\n plaintextProps.as = _Stack.default;\n plaintextProps.spacing = 6;\n plaintextProps.wrap = true;\n }\n return /*#__PURE__*/_react.default.createElement(_Plaintext.default, (0, _extends2.default)({\n localeKey: \"notSelected\",\n ref: target\n }, plaintextProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 670,\n columnNumber: 7\n }\n }), itemNode || (tagElements?.length ? tagElements : null) || placeholder);\n }\n const placeholderNode = placeholder || (disabledOptions ? null : locale?.placeholder);\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils3.createChainedFunction)(handleEnter, onEnter),\n onEntered: onEntered,\n onExit: (0, _utils3.createChainedFunction)(handleExit, onExit),\n onExited: (0, _utils3.createChainedFunction)(handleExited, onExited)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, (0, _extends2.default)({\n id: id,\n multiple: multi,\n pickerType: multi ? 'tag' : 'input',\n block: block,\n disabled: disabled,\n appearance: appearance,\n as: as,\n triggerProps: triggerProps,\n ref: triggerRef,\n trigger: \"active\",\n speaker: renderPopup,\n placement: placement,\n rootRef: root,\n style: style,\n size: size,\n classPrefix: classPrefix,\n className: className,\n responsive: searchable === false,\n onClick: focus,\n onKeyDown: onPickerKeyDown,\n \"data-focus\": open,\n \"data-disabled-options\": disabledOptions\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 686,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, {\n loading: loading,\n label: label,\n appearance: appearance,\n readOnly: readOnly,\n plaintext: plaintext,\n ref: target,\n as: toggleAs,\n caretAs: caretAs,\n tabIndex: tabIndex,\n onClean: handleClean,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: open,\n disabled: disabled,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue,\n caret: !disabledOptions,\n size: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 711,\n columnNumber: 7\n }\n }, searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/_react.default.createElement(_TextBox.default, {\n showTagList: multi,\n inputRef: inputRef,\n inputValue: open ? searchKeyword : '',\n inputProps: inputProps,\n tags: tagElements,\n editable: editable,\n readOnly: readOnly,\n disabled: disabled,\n multiple: multi,\n onBlur: onBlur,\n onFocus: handleFocus,\n onChange: handleSearch,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 734,\n columnNumber: 7\n }\n }));\n});\nInputPicker.displayName = 'InputPicker';\nvar _default = exports[\"default\"] = InputPicker;\n\n//# sourceURL=webpack://rsuite/./src/InputPicker/InputPicker.tsx?");
3528
3528
 
3529
3529
  /***/ }),
3530
3530
 
@@ -6890,7 +6890,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
6890
6890
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6891
6891
 
6892
6892
  "use strict";
6893
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\nvar _Icon = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Icon */ \"./node_modules/@rsuite/icons/esm/Icon.js\"));\nvar _InputGroup = _interopRequireDefault(__webpack_require__(/*! ../../InputGroup */ \"./src/InputGroup/index.tsx\"));\nvar _CloseButton = _interopRequireDefault(__webpack_require__(/*! ../CloseButton */ \"./src/internals/CloseButton/index.tsx\"));\nvar _Loader = _interopRequireDefault(__webpack_require__(/*! ../../Loader */ \"./src/Loader/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../hooks */ \"./src/internals/hooks/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/internals/Picker/PickerIndicator.tsx\";\nconst PickerIndicator = ({\n loading,\n caretAs,\n onClose,\n showCleanButton,\n as: Component = _InputGroup.default.Addon,\n disabled,\n size\n}) => {\n const {\n getLocale\n } = (0, _hooks.useCustom)();\n const {\n clear\n } = getLocale('common');\n const {\n prefix\n } = (0, _hooks.useStyles)('picker');\n const addon = () => {\n if (loading) {\n return /*#__PURE__*/_react.default.createElement(_Loader.default, {\n className: prefix('loader'),\n \"data-testid\": \"spinner\",\n size: size === 'xs' ? 'xs' : 'sm',\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }\n });\n }\n const caret = caretAs && /*#__PURE__*/_react.default.createElement(_Icon.default, {\n as: caretAs,\n className: prefix('caret-icon'),\n \"data-testid\": \"caret\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }\n });\n const cleanButton = showCleanButton && !disabled && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {\n className: prefix('clean'),\n tabIndex: -1,\n locale: {\n closeLabel: clear\n },\n onClick: onClose,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 7\n }\n });\n if (caret && cleanButton) {\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, caret, cleanButton);\n }\n return cleanButton || caret || null;\n };\n const props = Component === _InputGroup.default.Addon ? {\n disabled\n } : undefined;\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 10\n }\n }), addon());\n};\nvar _default = exports[\"default\"] = PickerIndicator;\n\n//# sourceURL=webpack://rsuite/./src/internals/Picker/PickerIndicator.tsx?");
6893
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\nvar _Icon = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Icon */ \"./node_modules/@rsuite/icons/esm/Icon.js\"));\nvar _InputGroup = _interopRequireDefault(__webpack_require__(/*! ../../InputGroup */ \"./src/InputGroup/index.tsx\"));\nvar _CloseButton = _interopRequireDefault(__webpack_require__(/*! ../CloseButton */ \"./src/internals/CloseButton/index.tsx\"));\nvar _Loader = _interopRequireDefault(__webpack_require__(/*! ../../Loader */ \"./src/Loader/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../hooks */ \"./src/internals/hooks/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/internals/Picker/PickerIndicator.tsx\";\nconst PickerIndicator = ({\n loading,\n caretAs,\n onClose,\n showCleanButton,\n as: Component = _InputGroup.default.Addon,\n disabled,\n size\n}) => {\n const {\n getLocale\n } = (0, _hooks.useCustom)();\n const {\n clear\n } = getLocale('common');\n const {\n prefix\n } = (0, _hooks.useStyles)('picker');\n const addon = () => {\n if (loading) {\n return /*#__PURE__*/_react.default.createElement(_Loader.default, {\n className: prefix('loader'),\n \"data-testid\": \"spinner\",\n size: size === 'xs' ? 'xs' : 'sm',\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }\n });\n }\n if (showCleanButton && !disabled) {\n return /*#__PURE__*/_react.default.createElement(_CloseButton.default, {\n className: prefix('clean'),\n tabIndex: -1,\n locale: {\n closeLabel: clear\n },\n onClick: onClose,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }\n });\n }\n return caretAs && /*#__PURE__*/_react.default.createElement(_Icon.default, {\n as: caretAs,\n className: prefix('caret-icon'),\n \"data-testid\": \"caret\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 23\n }\n });\n };\n const props = Component === _InputGroup.default.Addon ? {\n className: prefix('toggle-indicator'),\n disabled\n } : Component === _react.default.Fragment ? undefined : {\n className: prefix('toggle-indicator')\n };\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 10\n }\n }), addon());\n};\nvar _default = exports[\"default\"] = PickerIndicator;\n\n//# sourceURL=webpack://rsuite/./src/internals/Picker/PickerIndicator.tsx?");
6894
6894
 
6895
6895
  /***/ }),
6896
6896