rsuite 6.0.0 → 6.0.1

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.
package/dist/rsuite.js CHANGED
@@ -1962,7 +1962,7 @@ eval("\n\nexports.__esModule = true;\nexports.getColumnsAndPaths = getColumnsAnd
1962
1962
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1963
1963
 
1964
1964
  "use strict";
1965
- 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\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 _TreeView = _interopRequireDefault(__webpack_require__(/*! ../CascadeTree/TreeView */ \"./src/CascadeTree/TreeView.tsx\"));\nvar _SearchView = _interopRequireDefault(__webpack_require__(/*! ../CascadeTree/SearchView */ \"./src/CascadeTree/SearchView.tsx\"));\nvar _hooks = __webpack_require__(/*! ../CascadeTree/hooks */ \"./src/CascadeTree/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../Tree/utils */ \"./src/Tree/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../internals/Tree/utils */ \"./src/internals/Tree/utils/index.ts\");\nvar _hooks2 = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _useActive = _interopRequireDefault(__webpack_require__(/*! ./useActive */ \"./src/Cascader/useActive.ts\"));\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Cascader/Cascader.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); }\nconst emptyArray = [];\n/**\n * The `Cascader` component displays a hierarchical list of options.\n * @see https://rsuitejs.com/components/cascader\n */\nconst Cascader = (0, _utils3.forwardRef)((props, ref) => {\n const {\n rtl,\n propsWithDefaults\n } = (0, _hooks2.useCustom)('Cascader', props);\n const {\n appearance = 'default',\n as,\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n columnHeight,\n columnWidth,\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n childrenKey = 'children',\n id,\n labelKey = 'label',\n locale,\n parentSelectable,\n placeholder,\n placement = 'bottomStart',\n popupClassName,\n popupStyle,\n renderColumn,\n renderExtraFooter,\n renderSearchItem,\n renderTreeNode,\n renderValue,\n searchable = true,\n style,\n toggleAs,\n value: valueProp,\n valueKey = 'value',\n onClean,\n onChange,\n onEnter,\n onExit,\n onSearch,\n onSelect,\n getChildren,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks2.useControlled)(valueProp, defaultValue);\n\n // Store the children of each node\n const childrenMap = (0, _hooks2.useMap)();\n\n // Store the parent of each node\n const parentMap = (0, _react.useMemo)(() => (0, _utils2.getParentMap)(data, item => {\n var _childrenMap$get;\n return (_childrenMap$get = childrenMap.get(item)) !== null && _childrenMap$get !== void 0 ? _childrenMap$get : item[childrenKey];\n }), [childrenMap, childrenKey, data]);\n\n // Flatten the tree data\n const flattenedData = (0, _react.useMemo)(() => (0, _utils.flattenTree)(data, item => {\n var _childrenMap$get2;\n return (_childrenMap$get2 = childrenMap.get(item)) !== null && _childrenMap$get2 !== void 0 ? _childrenMap$get2 : item[childrenKey];\n }), [childrenMap, childrenKey, data]);\n\n // The selected item\n const selectedItem = flattenedData.find(item => item[valueKey] === value);\n\n // Callback function after selecting the node\n const onSelectCallback = (node, event) => {\n var _trigger$current;\n const {\n isLeafNode,\n cascadePaths,\n itemData\n } = node;\n onSelect === null || onSelect === void 0 || onSelect(itemData, cascadePaths, event);\n const nextValue = itemData[valueKey];\n if (isLeafNode) {\n // Determines whether the option is a leaf node, and if so, closes the picker.\n handleClose();\n setValue(nextValue);\n return;\n }\n\n // When the parent is optional, the value and the displayed path are updated.\n if (parentSelectable && !(0, _utils3.shallowEqual)(value, nextValue)) {\n setValue(nextValue);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n }\n\n // Update menu position\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || _trigger$current.updatePosition();\n };\n const {\n activeItem,\n setActiveItem,\n loadingItemsSet,\n handleSelect\n } = (0, _hooks.useSelect)({\n value,\n valueKey,\n childrenKey,\n childrenMap,\n selectedItem,\n getChildren,\n onChange,\n onSelect: onSelectCallback\n });\n const {\n columns,\n pathTowardsActiveItem,\n pathTowardsSelectedItem\n } = (0, _hooks.usePaths)({\n data,\n activeItem,\n selectedItem,\n getParent: item => parentMap.get(item),\n getChildren: item => {\n var _childrenMap$get3;\n return (_childrenMap$get3 = childrenMap.get(item)) !== null && _childrenMap$get3 !== void 0 ? _childrenMap$get3 : item[childrenKey];\n }\n });\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 */\n let hasValue = pathTowardsSelectedItem.length > 0 || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n const {\n prefix,\n merge\n } = (0, _hooks2.useStyles)(classPrefix);\n const onFocusItemCallback = (0, _react.useCallback)(value => {\n setActiveItem(flattenedData.find(item => item[valueKey] === value));\n }, [flattenedData, setActiveItem, valueKey]);\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n setLayer,\n setKeys,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(value, {\n rtl,\n data: flattenedData,\n valueKey,\n defaultLayer: pathTowardsSelectedItem !== null && pathTowardsSelectedItem !== void 0 && pathTowardsSelectedItem.length ? pathTowardsSelectedItem.length - 1 : 0,\n target: () => overlay.current,\n getParent: item => parentMap.get(item),\n callback: onFocusItemCallback\n });\n const onSearchCallback = (value, items, event) => {\n onSearch === null || onSearch === void 0 || onSearch(value, event);\n if (!value || items.length === 0) {\n setFocusItemValue(undefined);\n return;\n }\n if (items.length > 0) {\n setFocusItemValue(items[0][valueKey]);\n setLayer(0);\n setKeys([]);\n }\n };\n const {\n items,\n searchKeyword,\n setSearchKeyword,\n handleSearch\n } = (0, _hooks.useSearch)({\n labelKey,\n childrenKey,\n parentMap,\n flattenedData,\n parentSelectable,\n onSearch: onSearchCallback\n });\n const {\n active,\n events\n } = (0, _useActive.default)({\n onEnter,\n onExit,\n target,\n setSearchKeyword\n });\n const handleClose = (0, _hooks2.useEventCallback)(() => {\n var _trigger$current2, _target$current, _target$current$focus;\n (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 || _trigger$current2.close();\n\n // The focus is on the trigger button after closing\n (_target$current = target.current) === null || _target$current === void 0 || (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 || _target$current$focus.call(_target$current);\n });\n const handleClean = (0, _hooks2.useEventCallback)(event => {\n if (disabled || !target.current) {\n return;\n }\n setValue(null);\n onChange === null || onChange === void 0 || onChange(null, event);\n });\n const handleMenuPressEnter = (0, _hooks2.useEventCallback)(event => {\n const focusItem = (0, _utils2.findNodeOfTree)(data, item => item[valueKey] === focusItemValue);\n const isLeafNode = focusItem && !focusItem[childrenKey];\n if (isLeafNode) {\n setValue(focusItemValue);\n if (pathTowardsActiveItem.length) {\n setLayer(pathTowardsActiveItem.length - 1);\n }\n if (!(0, _utils3.shallowEqual)(value, focusItemValue)) {\n onSelect === null || onSelect === void 0 || onSelect(focusItem, pathTowardsActiveItem, event);\n onChange === null || onChange === void 0 || onChange(focusItemValue !== null && focusItemValue !== void 0 ? focusItemValue : null, event);\n }\n handleClose();\n }\n });\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n ...rest\n });\n\n /**\n * The search structure option is processed after being selected.\n */\n const handleSearchRowSelect = (0, _hooks2.useEventCallback)((itemData, nodes, event) => {\n const nextValue = itemData[valueKey];\n handleClose();\n setSearchKeyword('');\n setValue(nextValue);\n onSelect === null || onSelect === void 0 || onSelect(itemData, nodes, event);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n });\n const renderCascadeColumn = (childNodes, column) => {\n if (typeof renderColumn === 'function') {\n return renderColumn(childNodes, column);\n }\n return childNodes;\n };\n const renderCascadeTreeNode = (node, itemData) => {\n if (typeof renderTreeNode === 'function') {\n return renderTreeNode(node, itemData);\n }\n return node;\n };\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps || {};\n const classes = merge(className, popupClassName, prefix('popup-cascader'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n className: classes,\n style: popupStyle,\n target: trigger,\n onKeyDown: onPickerKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {\n data: items,\n searchKeyword: searchKeyword,\n valueKey: valueKey,\n labelKey: labelKey,\n locale: locale,\n parentMap: parentMap,\n disabledItemValues: disabledItemValues,\n focusItemValue: focusItemValue,\n inputRef: searchInput,\n renderSearchItem: renderSearchItem,\n onSelect: handleSearchRowSelect,\n onSearch: handleSearch,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 13\n }\n }), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_TreeView.default, {\n columnWidth: columnWidth,\n columnHeight: columnHeight,\n disabledItemValues: disabledItemValues,\n loadingItemsSet: loadingItemsSet,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n classPrefix: 'cascade-tree',\n data: columns,\n cascadePaths: pathTowardsActiveItem,\n activeItemValue: value,\n onSelect: handleSelect,\n renderColumn: renderCascadeColumn,\n renderTreeNode: renderCascadeTreeNode,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 370,\n columnNumber: 13\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n let selectedElement = placeholder;\n if (pathTowardsSelectedItem.length > 0) {\n selectedElement = [];\n pathTowardsSelectedItem.forEach((item, index) => {\n const key = item[valueKey] || item[labelKey];\n selectedElement.push(/*#__PURE__*/_react.default.createElement(\"span\", {\n key: key,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 30\n }\n }, item[labelKey]));\n if (index < pathTowardsSelectedItem.length - 1) {\n selectedElement.push(/*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"separator\",\n key: `${key}-separator`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 13\n }\n }, ' / '));\n }\n });\n }\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, pathTowardsSelectedItem, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...events\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n name: \"cascader\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 424,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value !== null && value !== void 0 ? value : '',\n focusItemValue: focusItemValue\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nCascader.displayName = 'Cascader';\nvar _default = exports[\"default\"] = Cascader;\n\n//# sourceURL=webpack://rsuite/./src/Cascader/Cascader.tsx?");
1965
+ 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\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 _TreeView = _interopRequireDefault(__webpack_require__(/*! ../CascadeTree/TreeView */ \"./src/CascadeTree/TreeView.tsx\"));\nvar _SearchView = _interopRequireDefault(__webpack_require__(/*! ../CascadeTree/SearchView */ \"./src/CascadeTree/SearchView.tsx\"));\nvar _hooks = __webpack_require__(/*! ../CascadeTree/hooks */ \"./src/CascadeTree/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../Tree/utils */ \"./src/Tree/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../internals/Tree/utils */ \"./src/internals/Tree/utils/index.ts\");\nvar _hooks2 = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _useActive = _interopRequireDefault(__webpack_require__(/*! ./useActive */ \"./src/Cascader/useActive.ts\"));\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Cascader/Cascader.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); }\nconst emptyArray = [];\n/**\n * The `Cascader` component displays a hierarchical list of options.\n * @see https://rsuitejs.com/components/cascader\n */\nconst Cascader = (0, _utils3.forwardRef)((props, ref) => {\n const {\n rtl,\n propsWithDefaults\n } = (0, _hooks2.useCustom)('Cascader', props);\n const {\n appearance = 'default',\n as,\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n columnHeight,\n columnWidth,\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n childrenKey = 'children',\n id,\n labelKey = 'label',\n locale,\n parentSelectable,\n placeholder,\n placement = 'bottomStart',\n popupClassName,\n popupStyle,\n renderColumn,\n renderExtraFooter,\n renderSearchItem,\n renderTreeNode,\n renderValue,\n searchable = true,\n style,\n toggleAs,\n value: valueProp,\n valueKey = 'value',\n onClean,\n onChange,\n onEnter,\n onExit,\n onSearch,\n onSelect,\n getChildren,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks2.useControlled)(valueProp, defaultValue);\n\n // Store the children of each node\n const childrenMap = (0, _hooks2.useMap)();\n\n // Store the parent of each node\n const parentMap = (0, _react.useMemo)(() => (0, _utils2.getParentMap)(data, item => {\n var _childrenMap$get;\n return (_childrenMap$get = childrenMap.get(item)) !== null && _childrenMap$get !== void 0 ? _childrenMap$get : item[childrenKey];\n }), [childrenMap, childrenKey, data]);\n\n // Flatten the tree data\n const flattenedData = (0, _react.useMemo)(() => (0, _utils.flattenTree)(data, item => {\n var _childrenMap$get2;\n return (_childrenMap$get2 = childrenMap.get(item)) !== null && _childrenMap$get2 !== void 0 ? _childrenMap$get2 : item[childrenKey];\n }), [childrenMap, childrenKey, data]);\n\n // The selected item\n const selectedItem = flattenedData.find(item => item[valueKey] === value);\n\n // Callback function after selecting the node\n const onSelectCallback = (node, event) => {\n var _trigger$current;\n const {\n isLeafNode,\n cascadePaths,\n itemData\n } = node;\n onSelect === null || onSelect === void 0 || onSelect(itemData, cascadePaths, event);\n const nextValue = itemData[valueKey];\n if (isLeafNode) {\n // Determines whether the option is a leaf node, and if so, closes the picker.\n handleClose();\n setValue(nextValue);\n return;\n }\n\n // When the parent is optional, the value and the displayed path are updated.\n if (parentSelectable && !(0, _utils3.shallowEqual)(value, nextValue)) {\n setValue(nextValue);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n }\n\n // Update menu position\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || _trigger$current.updatePosition();\n };\n const {\n activeItem,\n setActiveItem,\n loadingItemsSet,\n handleSelect\n } = (0, _hooks.useSelect)({\n value,\n valueKey,\n childrenKey,\n childrenMap,\n selectedItem,\n getChildren,\n onChange,\n onSelect: onSelectCallback\n });\n const {\n columns,\n pathTowardsActiveItem,\n pathTowardsSelectedItem\n } = (0, _hooks.usePaths)({\n data,\n activeItem,\n selectedItem,\n getParent: item => parentMap.get(item),\n getChildren: item => {\n var _childrenMap$get3;\n return (_childrenMap$get3 = childrenMap.get(item)) !== null && _childrenMap$get3 !== void 0 ? _childrenMap$get3 : item[childrenKey];\n }\n });\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 */\n let hasValue = pathTowardsSelectedItem.length > 0 || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n const {\n prefix,\n merge\n } = (0, _hooks2.useStyles)(classPrefix);\n const onFocusItemCallback = (0, _react.useCallback)(value => {\n setActiveItem(flattenedData.find(item => item[valueKey] === value));\n }, [flattenedData, setActiveItem, valueKey]);\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n setLayer,\n setKeys,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(value, {\n rtl,\n data: flattenedData,\n valueKey,\n defaultLayer: pathTowardsSelectedItem !== null && pathTowardsSelectedItem !== void 0 && pathTowardsSelectedItem.length ? pathTowardsSelectedItem.length - 1 : 0,\n target: () => overlay.current,\n getParent: item => parentMap.get(item),\n callback: onFocusItemCallback\n });\n const onSearchCallback = (value, items, event) => {\n onSearch === null || onSearch === void 0 || onSearch(value, event);\n if (!value || items.length === 0) {\n setFocusItemValue(undefined);\n return;\n }\n if (items.length > 0) {\n setFocusItemValue(items[0][valueKey]);\n setLayer(0);\n setKeys([]);\n }\n };\n const {\n items,\n searchKeyword,\n setSearchKeyword,\n handleSearch\n } = (0, _hooks.useSearch)({\n labelKey,\n childrenKey,\n parentMap,\n flattenedData,\n parentSelectable,\n onSearch: onSearchCallback\n });\n const {\n active,\n events\n } = (0, _useActive.default)({\n onEnter,\n onExit,\n target,\n setSearchKeyword\n });\n const handleClose = (0, _hooks2.useEventCallback)(() => {\n var _trigger$current2, _target$current, _target$current$focus;\n (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 || _trigger$current2.close();\n\n // The focus is on the trigger button after closing\n (_target$current = target.current) === null || _target$current === void 0 || (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 || _target$current$focus.call(_target$current);\n });\n const handleClean = (0, _hooks2.useEventCallback)(event => {\n if (disabled || !target.current) {\n return;\n }\n setValue(null);\n onChange === null || onChange === void 0 || onChange(null, event);\n });\n const handleMenuPressEnter = (0, _hooks2.useEventCallback)(event => {\n const focusItem = (0, _utils2.findNodeOfTree)(data, item => item[valueKey] === focusItemValue);\n const isLeafNode = focusItem && !focusItem[childrenKey];\n if (isLeafNode) {\n setValue(focusItemValue);\n if (pathTowardsActiveItem.length) {\n setLayer(pathTowardsActiveItem.length - 1);\n }\n if (!(0, _utils3.shallowEqual)(value, focusItemValue)) {\n onSelect === null || onSelect === void 0 || onSelect(focusItem, pathTowardsActiveItem, event);\n onChange === null || onChange === void 0 || onChange(focusItemValue !== null && focusItemValue !== void 0 ? focusItemValue : null, event);\n }\n handleClose();\n }\n });\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n ...rest\n });\n\n /**\n * The search structure option is processed after being selected.\n */\n const handleSearchRowSelect = (0, _hooks2.useEventCallback)((itemData, nodes, event) => {\n const nextValue = itemData[valueKey];\n handleClose();\n setSearchKeyword('');\n setValue(nextValue);\n onSelect === null || onSelect === void 0 || onSelect(itemData, nodes, event);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n });\n const renderCascadeColumn = (childNodes, column) => {\n if (typeof renderColumn === 'function') {\n return renderColumn(childNodes, column);\n }\n return childNodes;\n };\n const renderCascadeTreeNode = (node, itemData) => {\n if (typeof renderTreeNode === 'function') {\n return renderTreeNode(node, itemData);\n }\n return node;\n };\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps || {};\n const classes = merge(className, popupClassName, prefix('popup-cascader'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n className: classes,\n style: popupStyle,\n target: trigger,\n onKeyDown: onPickerKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {\n data: items,\n searchKeyword: searchKeyword,\n valueKey: valueKey,\n labelKey: labelKey,\n locale: locale,\n parentMap: parentMap,\n disabledItemValues: disabledItemValues,\n focusItemValue: focusItemValue,\n inputRef: searchInput,\n renderSearchItem: renderSearchItem,\n onSelect: handleSearchRowSelect,\n onSearch: handleSearch,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 13\n }\n }), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_TreeView.default, {\n columnWidth: columnWidth,\n columnHeight: columnHeight,\n disabledItemValues: disabledItemValues,\n loadingItemsSet: loadingItemsSet,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n classPrefix: 'cascade-tree',\n data: columns,\n cascadePaths: pathTowardsActiveItem,\n activeItemValue: value,\n onSelect: handleSelect,\n renderColumn: renderCascadeColumn,\n renderTreeNode: renderCascadeTreeNode,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 370,\n columnNumber: 13\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n let selectedElement = placeholder;\n if (pathTowardsSelectedItem.length > 0) {\n selectedElement = [];\n pathTowardsSelectedItem.forEach((item, index) => {\n const key = item[valueKey] || item[labelKey];\n selectedElement.push(/*#__PURE__*/_react.default.createElement(\"span\", {\n key: key,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 30\n }\n }, item[labelKey]));\n if (index < pathTowardsSelectedItem.length - 1) {\n selectedElement.push(/*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"separator\",\n key: `${key}-separator`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 13\n }\n }, ' / '));\n }\n });\n }\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, pathTowardsSelectedItem, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...events\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n pickerType: \"cascader\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 424,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value !== null && value !== void 0 ? value : '',\n focusItemValue: focusItemValue\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nCascader.displayName = 'Cascader';\nvar _default = exports[\"default\"] = Cascader;\n\n//# sourceURL=webpack://rsuite/./src/Cascader/Cascader.tsx?");
1966
1966
 
1967
1967
  /***/ }),
1968
1968
 
@@ -2017,7 +2017,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2017
2017
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2018
2018
 
2019
2019
  "use strict";
2020
- 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 _clone = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _SearchBox = _interopRequireDefault(__webpack_require__(/*! ../internals/SearchBox */ \"./src/internals/SearchBox/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 _utils2 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CheckPicker/CheckPicker.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); }\nconst emptyArray = [];\n/**\n * A component for selecting checkable items in a dropdown list.\n * @see https://rsuitejs.com/components/check-picker\n */\nconst CheckPicker = (0, _utils2.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('CheckPicker', props);\n const {\n appearance = 'default',\n as,\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n countable = true,\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n groupBy,\n id,\n labelKey = 'label',\n listProps,\n listboxMaxHeight = 320,\n locale,\n placeholder,\n placement = 'bottomStart',\n popupAutoWidth = true,\n popupClassName,\n popupStyle,\n searchable = true,\n sticky,\n style,\n size,\n toggleAs,\n value: valueProp,\n valueKey = 'value',\n virtualized,\n sort,\n searchBy,\n renderOption,\n renderOptionGroup,\n renderListbox,\n renderValue,\n renderExtraFooter,\n onGroupTitleClick,\n onSearch,\n onEnter,\n onExit,\n onClean,\n onChange,\n onSelect,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue || []);\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(value === null || value === void 0 ? void 0 : value[0], {\n data,\n valueKey,\n target: () => overlay.current\n });\n const handleSearchCallback = (0, _hooks.useEventCallback)((searchKeyword, filteredData, event) => {\n var _filteredData$;\n // The first option after filtering is the focus.\n setFocusItemValue(filteredData === null || filteredData === void 0 || (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);\n onSearch === null || onSearch === void 0 || onSearch(searchKeyword, event);\n });\n\n // Use search keywords to filter options.\n const {\n searchKeyword,\n filteredData,\n handleSearch,\n resetSearch,\n checkShouldDisplay\n } = (0, _Picker.useSearch)(data, {\n labelKey,\n searchBy,\n callback: handleSearchCallback\n });\n\n // Use component active state to support keyboard events.\n const [active, setActive] = (0, _react.useState)(false);\n\n // A list of shortcut options.\n // when opened again, the selected options are displayed at the top.\n const [stickyItems, setStickyItems] = (0, _react.useState)([]);\n const initStickyItems = () => {\n if (!sticky) {\n return;\n }\n let nextStickyItems = [];\n if (data && value.length) {\n nextStickyItems = data.filter(item => {\n return value.some(v => v === item[valueKey]);\n });\n }\n setStickyItems(nextStickyItems);\n };\n const handleChangeValue = (0, _hooks.useEventCallback)((value, event) => {\n onChange === null || onChange === void 0 || onChange(value, event);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled || !cleanable) {\n return;\n }\n setValue([]);\n onClean === null || onClean === void 0 || onClean(event);\n handleChangeValue([], event);\n });\n const handleMenuPressEnter = event => {\n const nextValue = (0, _clone.default)(value);\n if (!focusItemValue) {\n return;\n }\n if (!nextValue.some(v => (0, _utils2.shallowEqual)(v, focusItemValue))) {\n nextValue.push(focusItemValue);\n } else {\n (0, _remove.default)(nextValue, itemVal => (0, _utils2.shallowEqual)(itemVal, focusItemValue));\n }\n const focusItem = data.find(item => (0, _utils2.shallowEqual)(item === null || item === void 0 ? void 0 : item[valueKey], focusItemValue));\n setValue(nextValue);\n handleSelect(nextValue, focusItem, event);\n handleChangeValue(nextValue, event);\n };\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n onMenuPressBackspace: handleClean,\n ...rest\n });\n const handleSelect = (0, _hooks.useEventCallback)((nextItemValue, item, event) => {\n onSelect === null || onSelect === void 0 || onSelect(nextItemValue, item, event);\n });\n const handleItemSelect = (0, _hooks.useEventCallback)((nextItemValue, item, event, checked) => {\n const nextValue = (0, _clone.default)(value);\n if (checked) {\n nextValue.push(nextItemValue);\n } else {\n (0, _remove.default)(nextValue, itemVal => (0, _utils2.shallowEqual)(itemVal, nextItemValue));\n }\n setValue(nextValue);\n setFocusItemValue(nextItemValue);\n handleSelect(nextValue, item, event);\n handleChangeValue(nextValue, event);\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n setActive(true);\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n resetSearch();\n setFocusItemValue(null);\n setActive(false);\n });\n const selectedItems = data.filter(item => value === null || value === void 0 ? void 0 : value.some(val => (0, _utils2.shallowEqual)(item[valueKey], val))) || [];\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 */\n let hasValue = selectedItems.length > 0 || (value === null || value === void 0 ? void 0 : value.length) > 0 && (0, _isFunction.default)(renderValue);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n let selectedElement = placeholder;\n if (selectedItems.length > 0) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedItems,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n prefix: prefix,\n badgeSize: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 9\n }\n });\n }\n if ((value === null || value === void 0 ? void 0 : value.length) > 0 && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, selectedItems, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const renderPopup = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('check-menu'));\n let items = filteredData;\n let filteredStickyItems = [];\n if (stickyItems) {\n filteredStickyItems = (0, _utils.filterNodesOfTree)(stickyItems, item => checkShouldDisplay(item));\n items = (0, _utils.filterNodesOfTree)(data, item => {\n return checkShouldDisplay(item) && !stickyItems.some(v => v[valueKey] === item[valueKey]);\n });\n }\n\n // Create a tree structure data when set `groupBy`\n if (groupBy) {\n items = (0, _utils2.getDataGroupBy)(items, groupBy, sort);\n } else if (typeof sort === 'function') {\n items = items.sort(sort(false));\n }\n const listbox = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {\n listProps: listProps,\n listRef: list,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n renderOptionGroup: renderOptionGroup,\n renderOption: renderOption,\n maxHeight: listboxMaxHeight,\n classPrefix: 'picker-check-menu',\n listItemAs: _Picker.ListCheckItem,\n activeItemValues: value,\n focusItemValue: focusItemValue,\n data: [...filteredStickyItems, ...items],\n groupBy: groupBy,\n onSelect: handleItemSelect,\n onGroupTitleClick: onGroupTitleClick,\n virtualized: virtualized,\n query: searchKeyword,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 309,\n columnNumber: 11\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix`none`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 11\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils2.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n onKeyDown: onPickerKeyDown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchBox.default, {\n placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeyword,\n inputRef: searchInput,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 343,\n columnNumber: 13\n }\n }), renderListbox ? renderListbox(listbox) : listbox, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils2.createChainedFunction)(initStickyItems, handleEnter, onEnter),\n onExit: (0, _utils2.createChainedFunction)(handleExit, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n multiple: true,\n name: \"check\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderPopup,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n disabled: disabled,\n onClean: handleClean,\n onKeyDown: onPickerKeyDown,\n as: toggleAs,\n cleanable: cleanable && !disabled,\n countable: countable,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue,\n size: size\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nCheckPicker.displayName = 'CheckPicker';\nvar _default = exports[\"default\"] = CheckPicker;\n\n//# sourceURL=webpack://rsuite/./src/CheckPicker/CheckPicker.tsx?");
2020
+ 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 _clone = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _SearchBox = _interopRequireDefault(__webpack_require__(/*! ../internals/SearchBox */ \"./src/internals/SearchBox/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 _utils2 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CheckPicker/CheckPicker.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); }\nconst emptyArray = [];\n/**\n * A component for selecting checkable items in a dropdown list.\n * @see https://rsuitejs.com/components/check-picker\n */\nconst CheckPicker = (0, _utils2.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('CheckPicker', props);\n const {\n appearance = 'default',\n as,\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n countable = true,\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n groupBy,\n id,\n labelKey = 'label',\n listProps,\n listboxMaxHeight = 320,\n locale,\n placeholder,\n placement = 'bottomStart',\n popupAutoWidth = true,\n popupClassName,\n popupStyle,\n searchable = true,\n sticky,\n style,\n size,\n toggleAs,\n value: valueProp,\n valueKey = 'value',\n virtualized,\n sort,\n searchBy,\n renderOption,\n renderOptionGroup,\n renderListbox,\n renderValue,\n renderExtraFooter,\n onGroupTitleClick,\n onSearch,\n onEnter,\n onExit,\n onClean,\n onChange,\n onSelect,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue || []);\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(value === null || value === void 0 ? void 0 : value[0], {\n data,\n valueKey,\n target: () => overlay.current\n });\n const handleSearchCallback = (0, _hooks.useEventCallback)((searchKeyword, filteredData, event) => {\n var _filteredData$;\n // The first option after filtering is the focus.\n setFocusItemValue(filteredData === null || filteredData === void 0 || (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);\n onSearch === null || onSearch === void 0 || onSearch(searchKeyword, event);\n });\n\n // Use search keywords to filter options.\n const {\n searchKeyword,\n filteredData,\n handleSearch,\n resetSearch,\n checkShouldDisplay\n } = (0, _Picker.useSearch)(data, {\n labelKey,\n searchBy,\n callback: handleSearchCallback\n });\n\n // Use component active state to support keyboard events.\n const [active, setActive] = (0, _react.useState)(false);\n\n // A list of shortcut options.\n // when opened again, the selected options are displayed at the top.\n const [stickyItems, setStickyItems] = (0, _react.useState)([]);\n const initStickyItems = () => {\n if (!sticky) {\n return;\n }\n let nextStickyItems = [];\n if (data && value.length) {\n nextStickyItems = data.filter(item => {\n return value.some(v => v === item[valueKey]);\n });\n }\n setStickyItems(nextStickyItems);\n };\n const handleChangeValue = (0, _hooks.useEventCallback)((value, event) => {\n onChange === null || onChange === void 0 || onChange(value, event);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled || !cleanable) {\n return;\n }\n setValue([]);\n onClean === null || onClean === void 0 || onClean(event);\n handleChangeValue([], event);\n });\n const handleMenuPressEnter = event => {\n const nextValue = (0, _clone.default)(value);\n if (!focusItemValue) {\n return;\n }\n if (!nextValue.some(v => (0, _utils2.shallowEqual)(v, focusItemValue))) {\n nextValue.push(focusItemValue);\n } else {\n (0, _remove.default)(nextValue, itemVal => (0, _utils2.shallowEqual)(itemVal, focusItemValue));\n }\n const focusItem = data.find(item => (0, _utils2.shallowEqual)(item === null || item === void 0 ? void 0 : item[valueKey], focusItemValue));\n setValue(nextValue);\n handleSelect(nextValue, focusItem, event);\n handleChangeValue(nextValue, event);\n };\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n onMenuPressBackspace: handleClean,\n ...rest\n });\n const handleSelect = (0, _hooks.useEventCallback)((nextItemValue, item, event) => {\n onSelect === null || onSelect === void 0 || onSelect(nextItemValue, item, event);\n });\n const handleItemSelect = (0, _hooks.useEventCallback)((nextItemValue, item, event, checked) => {\n const nextValue = (0, _clone.default)(value);\n if (checked) {\n nextValue.push(nextItemValue);\n } else {\n (0, _remove.default)(nextValue, itemVal => (0, _utils2.shallowEqual)(itemVal, nextItemValue));\n }\n setValue(nextValue);\n setFocusItemValue(nextItemValue);\n handleSelect(nextValue, item, event);\n handleChangeValue(nextValue, event);\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n setActive(true);\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n resetSearch();\n setFocusItemValue(null);\n setActive(false);\n });\n const selectedItems = data.filter(item => value === null || value === void 0 ? void 0 : value.some(val => (0, _utils2.shallowEqual)(item[valueKey], val))) || [];\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 */\n let hasValue = selectedItems.length > 0 || (value === null || value === void 0 ? void 0 : value.length) > 0 && (0, _isFunction.default)(renderValue);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n let selectedElement = placeholder;\n if (selectedItems.length > 0) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedItems,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n prefix: prefix,\n badgeSize: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 9\n }\n });\n }\n if ((value === null || value === void 0 ? void 0 : value.length) > 0 && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, selectedItems, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const renderPopup = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('check-menu'));\n let items = filteredData;\n let filteredStickyItems = [];\n if (stickyItems) {\n filteredStickyItems = (0, _utils.filterNodesOfTree)(stickyItems, item => checkShouldDisplay(item));\n items = (0, _utils.filterNodesOfTree)(data, item => {\n return checkShouldDisplay(item) && !stickyItems.some(v => v[valueKey] === item[valueKey]);\n });\n }\n\n // Create a tree structure data when set `groupBy`\n if (groupBy) {\n items = (0, _utils2.getDataGroupBy)(items, groupBy, sort);\n } else if (typeof sort === 'function') {\n items = items.sort(sort(false));\n }\n const listbox = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {\n listProps: listProps,\n listRef: list,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n renderOptionGroup: renderOptionGroup,\n renderOption: renderOption,\n maxHeight: listboxMaxHeight,\n classPrefix: 'picker-check-menu',\n listItemAs: _Picker.ListCheckItem,\n activeItemValues: value,\n focusItemValue: focusItemValue,\n data: [...filteredStickyItems, ...items],\n groupBy: groupBy,\n onSelect: handleItemSelect,\n onGroupTitleClick: onGroupTitleClick,\n virtualized: virtualized,\n query: searchKeyword,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 309,\n columnNumber: 11\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix`none`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 11\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils2.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n onKeyDown: onPickerKeyDown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchBox.default, {\n placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeyword,\n inputRef: searchInput,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 343,\n columnNumber: 13\n }\n }), renderListbox ? renderListbox(listbox) : listbox, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils2.createChainedFunction)(initStickyItems, handleEnter, onEnter),\n onExit: (0, _utils2.createChainedFunction)(handleExit, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n multiple: true,\n pickerType: \"check\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderPopup,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n disabled: disabled,\n onClean: handleClean,\n onKeyDown: onPickerKeyDown,\n as: toggleAs,\n cleanable: cleanable && !disabled,\n countable: countable,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue,\n size: size\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nCheckPicker.displayName = 'CheckPicker';\nvar _default = exports[\"default\"] = CheckPicker;\n\n//# sourceURL=webpack://rsuite/./src/CheckPicker/CheckPicker.tsx?");
2021
2021
 
2022
2022
  /***/ }),
2023
2023
 
@@ -2127,7 +2127,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2127
2127
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2128
2128
 
2129
2129
  "use strict";
2130
- 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 _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\nvar _CheckTreeView = _interopRequireDefault(__webpack_require__(/*! ../CheckTree/CheckTreeView */ \"./src/CheckTree/CheckTreeView.tsx\"));\nvar _useTreeValue = _interopRequireDefault(__webpack_require__(/*! ../CheckTree/hooks/useTreeValue */ \"./src/CheckTree/hooks/useTreeValue.ts\"));\nvar _useFlattenTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useFlattenTree */ \"./src/Tree/hooks/useFlattenTree.ts\"));\nvar _useTreeWithChildren = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useTreeWithChildren */ \"./src/Tree/hooks/useTreeWithChildren.ts\"));\nvar _useExpandTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useExpandTree */ \"./src/Tree/hooks/useExpandTree.ts\"));\nvar _useFocusState = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFocusState */ \"./src/CheckTreePicker/hooks/useFocusState.ts\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../CheckTree/utils */ \"./src/CheckTree/utils.ts\");\nvar _TreeProvider = __webpack_require__(/*! ../internals/Tree/TreeProvider */ \"./src/internals/Tree/TreeProvider.tsx\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CheckTreePicker/CheckTreePicker.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 * The `CheckTreePicker` component is used for selecting multiple options which are organized in a tree structure.\n *\n * @see https://rsuitejs.com/components/check-tree-picker\n */\nconst CheckTreePicker = (0, _utils.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('CheckTreePicker', props);\n const {\n as,\n id,\n appearance = 'default',\n block,\n cleanable = true,\n countable = true,\n cascade = true,\n className,\n classPrefix = 'picker',\n childrenKey = 'children',\n disabled,\n data = [],\n defaultValue = [],\n defaultExpandAll = false,\n disabledItemValues = [],\n expandItemValues: controlledExpandItemValues,\n defaultExpandItemValues = [],\n placeholder,\n popupClassName,\n popupStyle,\n popupAutoWidth = true,\n placement = 'bottomStart',\n treeHeight = 320,\n toggleAs,\n searchBy,\n searchKeyword,\n showIndentLine,\n searchable = true,\n style,\n size,\n valueKey = 'value',\n value: controlledValue,\n virtualized = false,\n uncheckableItemValues = [],\n locale,\n labelKey = 'label',\n listProps,\n getChildren,\n renderExtraFooter,\n onEnter,\n onChange,\n onClean,\n onExit,\n onSearch,\n onSelect,\n onSelectItem,\n onScroll,\n onExpand,\n renderValue,\n renderTree,\n renderTreeIcon,\n renderTreeNode,\n onCascadeChange,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput,\n treeView\n } = (0, _Picker.usePickerRef)(ref);\n const {\n prefix\n } = (0, _hooks.useStyles)(classPrefix);\n const [value, setValue] = (0, _useTreeValue.default)(controlledValue, {\n defaultValue,\n uncheckableItemValues\n });\n const itemDataKeys = {\n childrenKey,\n labelKey,\n valueKey\n };\n const {\n treeData,\n loadingNodeValues,\n appendChild\n } = (0, _useTreeWithChildren.default)(data, itemDataKeys);\n const {\n expandItemValues,\n handleExpandTreeNode\n } = (0, _useExpandTree.default)(data, {\n ...itemDataKeys,\n defaultExpandAll,\n defaultExpandItemValues,\n controlledExpandItemValues,\n onExpand,\n getChildren,\n appendChild\n });\n const flattenedNodes = (0, _useFlattenTree.default)(treeData, {\n ...itemDataKeys,\n uncheckableItemValues,\n multiple: true,\n cascade,\n value\n });\n const selectedNodes = (0, _utils2.getSelectedItems)(flattenedNodes, value);\n const {\n register,\n focusFirstNode\n } = (0, _TreeProvider.useTreeImperativeHandle)();\n const {\n focusItemValue,\n setFocusItemValue,\n active,\n triggerProps\n } = (0, _useFocusState.default)({\n target,\n onEnter,\n onExit\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n const target = event.target;\n // exclude searchbox\n if (target.matches('input[role=\"searchbox\"]') || disabled || !cleanable) {\n return;\n }\n setFocusItemValue(null);\n setValue([]);\n onChange === null || onChange === void 0 || onChange([], event);\n onCascadeChange === null || onCascadeChange === void 0 || onCascadeChange([], event);\n });\n const handleTreeKeyDown = (0, _hooks.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n del: handleClean,\n down: () => focusFirstNode()\n });\n });\n const onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: handleTreeKeyDown,\n ...rest\n });\n\n // transform the parent node value to the leaf node value\n const handleTransValue2Children = (0, _hooks.useEventCallback)(nextSelectedNodes => {\n return nextSelectedNodes.map(node => {\n const currentNode = node.refKey ? flattenedNodes[node.refKey] : null;\n if (currentNode && currentNode[childrenKey] && currentNode[childrenKey].length) {\n const childNodes = currentNode[childrenKey].filter(child => {\n const childValue = child[valueKey];\n return !disabledItemValues.includes(childValue) && !uncheckableItemValues.includes(childValue);\n });\n return handleTransValue2Children(childNodes);\n }\n return node;\n }).flat();\n });\n const handleChangeCascade = (0, _hooks.useEventCallback)((nextValue, event) => {\n if (!cascade) {\n onCascadeChange === null || onCascadeChange === void 0 || onCascadeChange(nextValue, event);\n } else {\n const nextSelectedNodes = (0, _utils2.getSelectedItems)(flattenedNodes, nextValue);\n const childrenNodes = handleTransValue2Children(nextSelectedNodes);\n const childrenValue = childrenNodes.map(node => node[valueKey]);\n onCascadeChange === null || onCascadeChange === void 0 || onCascadeChange(childrenValue, event);\n }\n });\n const handleChange = (0, _hooks.useEventCallback)((nextValue, event) => {\n setValue(nextValue);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n handleChangeCascade(nextValue, event);\n });\n const treeContext = (0, _react.useMemo)(() => ({\n register,\n props: {\n labelKey,\n valueKey,\n childrenKey,\n virtualized,\n renderTreeIcon,\n renderTreeNode\n }\n }), [childrenKey, labelKey, valueKey, virtualized, register, renderTreeIcon, renderTreeNode]);\n const checkTreeView = /*#__PURE__*/_react.default.createElement(_TreeProvider.TreeProvider, {\n value: treeContext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_CheckTreeView.default, {\n ref: treeView,\n disabledItemValues: disabledItemValues,\n expandItemValues: expandItemValues,\n uncheckableItemValues: uncheckableItemValues,\n cascade: cascade,\n data: treeData,\n height: treeHeight,\n showIndentLine: showIndentLine,\n listProps: listProps,\n listRef: list,\n locale: locale,\n searchBy: searchBy,\n searchable: searchable,\n searchKeyword: searchKeyword,\n searchInputRef: searchInput,\n onScroll: onScroll,\n onSelect: onSelect,\n onSelectItem: onSelectItem,\n onExpand: handleExpandTreeNode,\n onSearch: onSearch,\n onChange: handleChange,\n onFocusItem: setFocusItemValue,\n value: value,\n loadingNodeValues: loadingNodeValues,\n flattenedNodes: flattenedNodes,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 7\n }\n }));\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = (0, _classnames.default)(className, popupClassName, prefix('check-tree-menu'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n onKeyDown: onPickerKeydown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 7\n }\n }, renderTree ? renderTree(checkTreeView) : checkTreeView, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\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 */\n let hasValidValue = selectedNodes.length > 0 || value.length > 0 && (0, _isFunction.default)(renderValue);\n let selectedElement = placeholder;\n if (hasValidValue) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedNodes,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n prefix: prefix,\n cascade: cascade,\n locale: locale,\n badgeSize: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 308,\n columnNumber: 7\n }\n });\n if ((0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, selectedNodes, selectedElement);\n if ((0, _isNil.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n name: \"check-tree\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n multiple: true,\n triggerProps: {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...triggerProps\n },\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 329,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n onKeyDown: onPickerKeydown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n countable: countable,\n disabled: disabled,\n as: toggleAs,\n hasValue: hasValidValue,\n active: active,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue,\n size: size\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 7\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nCheckTreePicker.displayName = 'CheckTreePicker';\nvar _default = exports[\"default\"] = CheckTreePicker;\n\n//# sourceURL=webpack://rsuite/./src/CheckTreePicker/CheckTreePicker.tsx?");
2130
+ 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 _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\nvar _CheckTreeView = _interopRequireDefault(__webpack_require__(/*! ../CheckTree/CheckTreeView */ \"./src/CheckTree/CheckTreeView.tsx\"));\nvar _useTreeValue = _interopRequireDefault(__webpack_require__(/*! ../CheckTree/hooks/useTreeValue */ \"./src/CheckTree/hooks/useTreeValue.ts\"));\nvar _useFlattenTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useFlattenTree */ \"./src/Tree/hooks/useFlattenTree.ts\"));\nvar _useTreeWithChildren = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useTreeWithChildren */ \"./src/Tree/hooks/useTreeWithChildren.ts\"));\nvar _useExpandTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useExpandTree */ \"./src/Tree/hooks/useExpandTree.ts\"));\nvar _useFocusState = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFocusState */ \"./src/CheckTreePicker/hooks/useFocusState.ts\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../CheckTree/utils */ \"./src/CheckTree/utils.ts\");\nvar _TreeProvider = __webpack_require__(/*! ../internals/Tree/TreeProvider */ \"./src/internals/Tree/TreeProvider.tsx\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CheckTreePicker/CheckTreePicker.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 * The `CheckTreePicker` component is used for selecting multiple options which are organized in a tree structure.\n *\n * @see https://rsuitejs.com/components/check-tree-picker\n */\nconst CheckTreePicker = (0, _utils.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('CheckTreePicker', props);\n const {\n as,\n id,\n appearance = 'default',\n block,\n cleanable = true,\n countable = true,\n cascade = true,\n className,\n classPrefix = 'picker',\n childrenKey = 'children',\n disabled,\n data = [],\n defaultValue = [],\n defaultExpandAll = false,\n disabledItemValues = [],\n expandItemValues: controlledExpandItemValues,\n defaultExpandItemValues = [],\n placeholder,\n popupClassName,\n popupStyle,\n popupAutoWidth = true,\n placement = 'bottomStart',\n treeHeight = 320,\n toggleAs,\n searchBy,\n searchKeyword,\n showIndentLine,\n searchable = true,\n style,\n size,\n valueKey = 'value',\n value: controlledValue,\n virtualized = false,\n uncheckableItemValues = [],\n locale,\n labelKey = 'label',\n listProps,\n getChildren,\n renderExtraFooter,\n onEnter,\n onChange,\n onClean,\n onExit,\n onSearch,\n onSelect,\n onSelectItem,\n onScroll,\n onExpand,\n renderValue,\n renderTree,\n renderTreeIcon,\n renderTreeNode,\n onCascadeChange,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput,\n treeView\n } = (0, _Picker.usePickerRef)(ref);\n const {\n prefix\n } = (0, _hooks.useStyles)(classPrefix);\n const [value, setValue] = (0, _useTreeValue.default)(controlledValue, {\n defaultValue,\n uncheckableItemValues\n });\n const itemDataKeys = {\n childrenKey,\n labelKey,\n valueKey\n };\n const {\n treeData,\n loadingNodeValues,\n appendChild\n } = (0, _useTreeWithChildren.default)(data, itemDataKeys);\n const {\n expandItemValues,\n handleExpandTreeNode\n } = (0, _useExpandTree.default)(data, {\n ...itemDataKeys,\n defaultExpandAll,\n defaultExpandItemValues,\n controlledExpandItemValues,\n onExpand,\n getChildren,\n appendChild\n });\n const flattenedNodes = (0, _useFlattenTree.default)(treeData, {\n ...itemDataKeys,\n uncheckableItemValues,\n multiple: true,\n cascade,\n value\n });\n const selectedNodes = (0, _utils2.getSelectedItems)(flattenedNodes, value);\n const {\n register,\n focusFirstNode\n } = (0, _TreeProvider.useTreeImperativeHandle)();\n const {\n focusItemValue,\n setFocusItemValue,\n active,\n triggerProps\n } = (0, _useFocusState.default)({\n target,\n onEnter,\n onExit\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n const target = event.target;\n // exclude searchbox\n if (target.matches('input[role=\"searchbox\"]') || disabled || !cleanable) {\n return;\n }\n setFocusItemValue(null);\n setValue([]);\n onChange === null || onChange === void 0 || onChange([], event);\n onCascadeChange === null || onCascadeChange === void 0 || onCascadeChange([], event);\n });\n const handleTreeKeyDown = (0, _hooks.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n del: handleClean,\n down: () => focusFirstNode()\n });\n });\n const onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: handleTreeKeyDown,\n ...rest\n });\n\n // transform the parent node value to the leaf node value\n const handleTransValue2Children = (0, _hooks.useEventCallback)(nextSelectedNodes => {\n return nextSelectedNodes.map(node => {\n const currentNode = node.refKey ? flattenedNodes[node.refKey] : null;\n if (currentNode && currentNode[childrenKey] && currentNode[childrenKey].length) {\n const childNodes = currentNode[childrenKey].filter(child => {\n const childValue = child[valueKey];\n return !disabledItemValues.includes(childValue) && !uncheckableItemValues.includes(childValue);\n });\n return handleTransValue2Children(childNodes);\n }\n return node;\n }).flat();\n });\n const handleChangeCascade = (0, _hooks.useEventCallback)((nextValue, event) => {\n if (!cascade) {\n onCascadeChange === null || onCascadeChange === void 0 || onCascadeChange(nextValue, event);\n } else {\n const nextSelectedNodes = (0, _utils2.getSelectedItems)(flattenedNodes, nextValue);\n const childrenNodes = handleTransValue2Children(nextSelectedNodes);\n const childrenValue = childrenNodes.map(node => node[valueKey]);\n onCascadeChange === null || onCascadeChange === void 0 || onCascadeChange(childrenValue, event);\n }\n });\n const handleChange = (0, _hooks.useEventCallback)((nextValue, event) => {\n setValue(nextValue);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n handleChangeCascade(nextValue, event);\n });\n const treeContext = (0, _react.useMemo)(() => ({\n register,\n props: {\n labelKey,\n valueKey,\n childrenKey,\n virtualized,\n renderTreeIcon,\n renderTreeNode\n }\n }), [childrenKey, labelKey, valueKey, virtualized, register, renderTreeIcon, renderTreeNode]);\n const checkTreeView = /*#__PURE__*/_react.default.createElement(_TreeProvider.TreeProvider, {\n value: treeContext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_CheckTreeView.default, {\n ref: treeView,\n disabledItemValues: disabledItemValues,\n expandItemValues: expandItemValues,\n uncheckableItemValues: uncheckableItemValues,\n cascade: cascade,\n data: treeData,\n height: treeHeight,\n showIndentLine: showIndentLine,\n listProps: listProps,\n listRef: list,\n locale: locale,\n searchBy: searchBy,\n searchable: searchable,\n searchKeyword: searchKeyword,\n searchInputRef: searchInput,\n onScroll: onScroll,\n onSelect: onSelect,\n onSelectItem: onSelectItem,\n onExpand: handleExpandTreeNode,\n onSearch: onSearch,\n onChange: handleChange,\n onFocusItem: setFocusItemValue,\n value: value,\n loadingNodeValues: loadingNodeValues,\n flattenedNodes: flattenedNodes,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 7\n }\n }));\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = (0, _classnames.default)(className, popupClassName, prefix('check-tree-menu'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n onKeyDown: onPickerKeydown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 7\n }\n }, renderTree ? renderTree(checkTreeView) : checkTreeView, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\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 */\n let hasValidValue = selectedNodes.length > 0 || value.length > 0 && (0, _isFunction.default)(renderValue);\n let selectedElement = placeholder;\n if (hasValidValue) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedNodes,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n prefix: prefix,\n cascade: cascade,\n locale: locale,\n badgeSize: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 308,\n columnNumber: 7\n }\n });\n if ((0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, selectedNodes, selectedElement);\n if ((0, _isNil.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n pickerType: \"check-tree\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n multiple: true,\n triggerProps: {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...triggerProps\n },\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 329,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n onKeyDown: onPickerKeydown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n countable: countable,\n disabled: disabled,\n as: toggleAs,\n hasValue: hasValidValue,\n active: active,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue,\n size: size\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 7\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nCheckTreePicker.displayName = 'CheckTreePicker';\nvar _default = exports[\"default\"] = CheckTreePicker;\n\n//# sourceURL=webpack://rsuite/./src/CheckTreePicker/CheckTreePicker.tsx?");
2131
2131
 
2132
2132
  /***/ }),
2133
2133
 
@@ -2402,7 +2402,7 @@ eval("\n\nexports.__esModule = true;\nexports.getDatePattern = getDatePattern;\n
2402
2402
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2403
2403
 
2404
2404
  "use strict";
2405
- 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 _mapValues = _interopRequireDefault(__webpack_require__(/*! lodash/mapValues */ \"./node_modules/lodash/mapValues.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _CalenderSimple = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/CalenderSimple */ \"./node_modules/@rsuite/icons/esm/react/CalenderSimple.js\"));\nvar _Time = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Time */ \"./node_modules/@rsuite/icons/esm/react/Time.js\"));\nvar _CalendarContainer = _interopRequireDefault(__webpack_require__(/*! ../Calendar/CalendarContainer */ \"./src/Calendar/CalendarContainer.tsx\"));\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ./Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\nvar _PredefinedRanges = _interopRequireDefault(__webpack_require__(/*! ./PredefinedRanges */ \"./src/DatePicker/PredefinedRanges.tsx\"));\nvar _DateInput = _interopRequireDefault(__webpack_require__(/*! ../DateInput */ \"./src/DateInput/index.tsx\"));\nvar _InputGroup = _interopRequireDefault(__webpack_require__(/*! ../InputGroup */ \"./src/InputGroup/index.tsx\"));\nvar _useMonthView = _interopRequireDefault(__webpack_require__(/*! ./hooks/useMonthView */ \"./src/DatePicker/hooks/useMonthView.ts\"));\nvar _useFocus = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFocus */ \"./src/DatePicker/hooks/useFocus.ts\"));\nvar _useCustomizedInput = _interopRequireDefault(__webpack_require__(/*! ./hooks/useCustomizedInput */ \"./src/DatePicker/hooks/useCustomizedInput.ts\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../internals/Box */ \"./src/internals/Box/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../Calendar/hooks */ \"./src/Calendar/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../Calendar/utils */ \"./src/Calendar/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _hooks2 = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _OverlayTrigger = __webpack_require__(/*! ../internals/Overlay/OverlayTrigger */ \"./src/internals/Overlay/OverlayTrigger.tsx\");\nvar _utils3 = __webpack_require__(/*! ./utils */ \"./src/DatePicker/utils.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DatePicker/DatePicker.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 * A date picker allows users to select a date from a calendar.\n *\n * @see https://rsuitejs.com/components/date-picker\n */\nconst DatePicker = (0, _utils2.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks2.useCustom)('DatePicker', props);\n const {\n as,\n block,\n className,\n classPrefix = 'picker',\n calendarDefaultDate,\n cleanable = true,\n caretAs: caretAsProp,\n editable = true,\n defaultValue,\n disabled,\n readOnly: readOnly,\n plaintext,\n format,\n id: idProp,\n isoWeek,\n weekStart,\n limitEndYear = 1000,\n limitStartYear,\n locale,\n loading,\n label,\n popupClassName,\n popupStyle,\n appearance = 'default',\n placement = 'bottomStart',\n oneTap,\n placeholder = '',\n ranges,\n value: valueProp,\n showMeridiem,\n showWeekNumbers,\n style,\n size,\n monthDropdownProps,\n shouldDisableDate,\n shouldDisableHour,\n shouldDisableMinute,\n shouldDisableSecond,\n onChange,\n onChangeCalendarDate,\n onClean,\n onEnter,\n onExit,\n onNextMonth,\n onOk,\n onPrevMonth,\n onSelect,\n onToggleMonthDropdown,\n onToggleTimeDropdown,\n onShortcutClick,\n renderCell,\n renderValue,\n ...restProps\n } = propsWithDefaults;\n const id = (0, _hooks2.useUniqueId)('rs-', idProp);\n const {\n trigger,\n root,\n target,\n overlay\n } = (0, _Picker.usePickerRef)(ref);\n const formatStr = format || (locale === null || locale === void 0 ? void 0 : locale.shortDateFormat) || 'yyyy-MM-dd';\n const {\n merge,\n prefix\n } = (0, _hooks2.useStyles)(classPrefix);\n const [value, setValue] = (0, _hooks2.useControlled)(valueProp, defaultValue);\n const {\n calendarDate,\n setCalendarDate,\n resetCalendarDate\n } = (0, _hooks.useCalendarDate)(value, calendarDefaultDate);\n const {\n setMonthView,\n monthView,\n toggleMonthView\n } = (0, _useMonthView.default)({\n onToggleMonthDropdown\n });\n const {\n mode\n } = (0, _date.useDateMode)(formatStr);\n\n // Show only the calendar month panel. formatStr = 'yyyy-MM'\n const showMonth = mode === _date.DateMode.Month || monthView;\n const {\n focusInput,\n focusSelectedDate,\n onKeyFocusEvent\n } = (0, _useFocus.default)({\n target,\n showMonth,\n id,\n locale\n });\n\n /**\n * Check whether the date is disabled.\n */\n const isDateDisabled = date => {\n if (typeof shouldDisableDate === 'function') {\n return shouldDisableDate(date);\n }\n return false;\n };\n\n /**\n * Check whether the time is within the time range of the shortcut option in the toolbar.\n */\n const isDatetimeDisabled = date => {\n return (isDateDisabled === null || isDateDisabled === void 0 ? void 0 : isDateDisabled(date)) || (0, _date.disableTime)(props, date);\n };\n\n /**\n * Check whether the month is disabled.\n * If any day in the month is disabled, the entire month is disabled\n */\n const isMonthDisabled = date => {\n return (0, _utils.isEveryDateInMonth)(date.getFullYear(), date.getMonth(), isDateDisabled);\n };\n\n /**\n * Whether \"OK\" button is disabled\n *\n * - If format is date, disable ok button if selected date is disabled\n * - If format is month, disable ok button if all dates in the month of selected date are disabled\n */\n const isOkButtonDisabled = selectedDate => {\n if (mode === _date.DateMode.Month) {\n return isMonthDisabled(selectedDate);\n }\n return isDatetimeDisabled(selectedDate);\n };\n const isErrorValue = value => {\n if (!(0, _date.isValid)(value)) {\n return true;\n } else if (value && isDateDisabled(value)) {\n return true;\n }\n return false;\n };\n\n /**\n * Switch to the callback triggered after the next month.\n */\n const handleMoveForward = (0, _hooks2.useEventCallback)(nextPageDate => {\n setCalendarDate(nextPageDate);\n onNextMonth === null || onNextMonth === void 0 || onNextMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 || onChangeCalendarDate(nextPageDate);\n });\n\n /**\n * Switch to the callback triggered after the previous month.\n */\n const handleMoveBackward = (0, _hooks2.useEventCallback)(nextPageDate => {\n setCalendarDate(nextPageDate);\n onPrevMonth === null || onPrevMonth === void 0 || onPrevMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 || onChangeCalendarDate(nextPageDate);\n });\n\n /**\n * The callback triggered when the date changes.\n */\n const handleDateChange = (0, _hooks2.useEventCallback)((nextValue, event) => {\n onSelect === null || onSelect === void 0 || onSelect(nextValue, event);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 || onChangeCalendarDate(nextValue, event);\n });\n\n /**\n * A callback triggered when the time on the calendar changes.\n */\n const handleChangeTime = (0, _hooks2.useEventCallback)(nextPageTime => {\n setCalendarDate(nextPageTime);\n handleDateChange(nextPageTime);\n });\n\n /**\n * Close the calendar panel.\n */\n const handleClose = (0, _hooks2.useEventCallback)(() => {\n var _trigger$current, _trigger$current$clos;\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const updateValue = (event, date, closeOverlay = true) => {\n const nextValue = typeof date !== 'undefined' ? date : calendarDate;\n setCalendarDate(nextValue || (0, _date.startOfToday)());\n setValue(nextValue);\n if (nextValue !== value) {\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n }\n\n // `closeOverlay` default value is `true`\n if (closeOverlay !== false) {\n handleClose();\n }\n };\n\n /**\n * The callback triggered after the date in the shortcut area is clicked.\n */\n const handleShortcutPageDate = (0, _hooks2.useEventCallback)((range, closeOverlay, event) => {\n const value = range.value;\n updateValue(event, value, closeOverlay);\n handleDateChange(value, event);\n onShortcutClick === null || onShortcutClick === void 0 || onShortcutClick(range, event);\n });\n\n /**\n * The callback triggered after clicking the OK button.\n */\n const handleOK = (0, _hooks2.useEventCallback)(event => {\n updateValue(event);\n onOk === null || onOk === void 0 || onOk(calendarDate, event);\n focusInput();\n });\n\n /**\n * Callback after clicking the clear button.\n */\n\n const handleClean = (0, _hooks2.useEventCallback)(event => {\n event === null || event === void 0 || event.stopPropagation();\n updateValue(event, null);\n resetCalendarDate(null);\n onClean === null || onClean === void 0 || onClean(event);\n });\n const handlePickerPopupKeyDown = (0, _hooks2.useEventCallback)(event => {\n onKeyFocusEvent(event, {\n date: calendarDate,\n callback: setCalendarDate\n });\n if (event.key === 'Enter') {\n handleOK(event);\n }\n });\n const handleClick = (0, _hooks2.useEventCallback)(() => {\n if (editable) {\n return;\n }\n focusSelectedDate();\n });\n\n /**\n * Callback after the date is selected.\n */\n const handleCalendarSelect = (0, _hooks2.useEventCallback)((date, event, updatableValue = true) => {\n const nextValue = (0, _date.copyTime)({\n from: calendarDate,\n to: date\n });\n setCalendarDate(nextValue);\n handleDateChange(nextValue);\n if (oneTap && updatableValue) {\n updateValue(event, nextValue);\n focusInput();\n }\n });\n\n /**\n * A callback triggered when the date on the calendar changes.\n */\n const handleChangeMonth = (0, _hooks2.useEventCallback)((nextPageDate, event) => {\n setCalendarDate(nextPageDate);\n handleDateChange(nextPageDate);\n focusSelectedDate();\n if (oneTap && mode === _date.DateMode.Month) {\n updateValue(event, nextPageDate);\n focusInput();\n }\n });\n\n /**\n * Callback after the input box value is changed.\n */\n const handleInputChange = (0, _hooks2.useEventCallback)((value, event) => {\n if (!isErrorValue(value)) {\n handleCalendarSelect(value, event);\n }\n updateValue(event, value, false);\n });\n const handleInputKeyDown = (0, _hooks2.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n esc: handleClose,\n enter: () => {\n var _trigger$current2;\n const {\n open\n } = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {};\n if (open) {\n if ((0, _date.isValid)(calendarDate) && !isDateDisabled(calendarDate)) {\n updateValue(event);\n focusInput();\n }\n } else {\n var _trigger$current3;\n (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 || _trigger$current3.open();\n }\n }\n });\n });\n const calendarProps = (0, _mapValues.default)((0, _pick.default)(props, _date.calendarOnlyProps), func => (next, date) => {\n var _func;\n return (_func = func === null || func === void 0 ? void 0 : func(next, date)) !== null && _func !== void 0 ? _func : false;\n });\n const {\n sideRanges,\n bottomRanges\n } = (0, _utils3.splitRanges)(ranges);\n const renderCalendarOverlay = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(popupClassName, className, prefix('popup-date'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n role: \"dialog\",\n \"aria-labelledby\": label ? `${id}-label` : undefined,\n tabIndex: -1,\n className: classes,\n ref: (0, _utils2.mergeRefs)(overlay, speakerRef),\n style: popupStyle,\n target: trigger,\n onKeyDown: handlePickerPopupKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 572,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Stack.default, {\n align: \"flex-start\",\n h: \"100%\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 582,\n columnNumber: 9\n }\n }, sideRanges && sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {\n direction: \"column\",\n spacing: 0,\n className: prefix('date-predefined'),\n ranges: sideRanges,\n calendarDate: calendarDate,\n locale: locale,\n disableShortcut: isDatetimeDisabled,\n onShortcutClick: handleShortcutPageDate,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 584,\n columnNumber: 13\n }\n }), /*#__PURE__*/_react.default.createElement(_Box.default, {\n className: prefix('box'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 596,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(_CalendarContainer.default, (0, _extends2.default)({}, calendarProps, {\n targetId: id,\n locale: locale,\n showWeekNumbers: showWeekNumbers,\n showMeridiem: showMeridiem,\n disabledDate: isDateDisabled,\n disabledHours: shouldDisableHour,\n disabledMinutes: shouldDisableMinute,\n disabledSeconds: shouldDisableSecond,\n limitEndYear: limitEndYear,\n limitStartYear: limitStartYear,\n format: formatStr,\n isoWeek: isoWeek,\n weekStart: weekStart,\n calendarDate: calendarDate,\n monthDropdownProps: monthDropdownProps,\n renderCellOnPicker: renderCell,\n onMoveForward: handleMoveForward,\n onMoveBackward: handleMoveBackward,\n onSelect: handleCalendarSelect,\n onToggleMonthDropdown: toggleMonthView,\n onToggleTimeDropdown: onToggleTimeDropdown,\n onChangeMonth: handleChangeMonth,\n onChangeTime: handleChangeTime,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 597,\n columnNumber: 13\n }\n })), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n ranges: bottomRanges,\n calendarDate: calendarDate,\n disableOkBtn: isOkButtonDisabled,\n disableShortcut: isDatetimeDisabled,\n onShortcutClick: handleShortcutPageDate,\n onOk: handleOK,\n hideOkBtn: oneTap,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 623,\n columnNumber: 13\n }\n }))));\n };\n const hasValue = (0, _date.isValid)(value);\n const caretAs = (0, _react.useMemo)(() => {\n if (caretAsProp === null) {\n return null;\n }\n return caretAsProp || (mode === _date.DateMode.Time ? _Time.default : _CalenderSimple.default);\n }, [caretAsProp, mode]);\n const handleTriggerClose = (0, _hooks2.useEventCallback)(cause => {\n var _props$onClose;\n // Unless overlay is closing on user clicking \"OK\" button,\n // reset the selected date on calendar panel\n if (cause !== _OverlayTrigger.OverlayCloseCause.ImperativeHandle) {\n resetCalendarDate();\n }\n setMonthView(false);\n (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);\n });\n const showCleanButton = cleanable && hasValue && !readOnly;\n const [ariaProps, rest] = (0, _utils2.partitionHTMLProps)(restProps, {\n htmlProps: [],\n includeAria: true\n });\n const invalidValue = value && isErrorValue(value);\n const customizedProps = {\n value,\n formatStr,\n renderValue,\n readOnly,\n editable,\n loading\n };\n const {\n customValue,\n inputReadOnly,\n Input,\n events\n } = (0, _useCustomizedInput.default)(customizedProps);\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onClose: handleTriggerClose,\n onEnter: (0, _utils2.createChainedFunction)(events.onActive, onEnter),\n onExit: (0, _utils2.createChainedFunction)(events.onInactive, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n name: \"date\",\n classPrefix: classPrefix,\n className: merge(className, {\n [prefix('error')]: invalidValue\n }),\n block: block,\n disabled: disabled,\n appearance: appearance,\n style: style,\n rootRef: root,\n trigger: \"active\",\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderCalendarOverlay,\n \"data-cleanable\": cleanable,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 675,\n columnNumber: 5\n }\n }, plaintext ? /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n value: value,\n format: formatStr,\n plaintext: plaintext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 693,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _utils3.getRestProps)(rest), {\n inside: true,\n size: size,\n disabled: disabled,\n className: prefix`input-group`,\n onClick: handleClick,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 695,\n columnNumber: 9\n }\n }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {\n className: prefix`label`,\n id: `${id}-label`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 11\n }\n }, label), /*#__PURE__*/_react.default.createElement(Input, (0, _extends2.default)({\n \"aria-haspopup\": \"dialog\",\n \"aria-invalid\": invalidValue,\n \"aria-labelledby\": label ? `${id}-label` : undefined\n }, ariaProps, {\n ref: target,\n id: id,\n value: customValue || value,\n format: formatStr,\n placeholder: placeholder ? placeholder : formatStr,\n disabled: disabled,\n readOnly: inputReadOnly,\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 706,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(_Picker.PickerIndicator, {\n size: size,\n loading: loading,\n caretAs: caretAs,\n onClose: handleClean,\n showCleanButton: showCleanButton,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 722,\n columnNumber: 11\n }\n })));\n});\nDatePicker.displayName = 'DatePicker';\nvar _default = exports[\"default\"] = DatePicker;\n\n//# sourceURL=webpack://rsuite/./src/DatePicker/DatePicker.tsx?");
2405
+ 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 _mapValues = _interopRequireDefault(__webpack_require__(/*! lodash/mapValues */ \"./node_modules/lodash/mapValues.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _CalenderSimple = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/CalenderSimple */ \"./node_modules/@rsuite/icons/esm/react/CalenderSimple.js\"));\nvar _Time = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Time */ \"./node_modules/@rsuite/icons/esm/react/Time.js\"));\nvar _CalendarContainer = _interopRequireDefault(__webpack_require__(/*! ../Calendar/CalendarContainer */ \"./src/Calendar/CalendarContainer.tsx\"));\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ./Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\nvar _PredefinedRanges = _interopRequireDefault(__webpack_require__(/*! ./PredefinedRanges */ \"./src/DatePicker/PredefinedRanges.tsx\"));\nvar _DateInput = _interopRequireDefault(__webpack_require__(/*! ../DateInput */ \"./src/DateInput/index.tsx\"));\nvar _InputGroup = _interopRequireDefault(__webpack_require__(/*! ../InputGroup */ \"./src/InputGroup/index.tsx\"));\nvar _useMonthView = _interopRequireDefault(__webpack_require__(/*! ./hooks/useMonthView */ \"./src/DatePicker/hooks/useMonthView.ts\"));\nvar _useFocus = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFocus */ \"./src/DatePicker/hooks/useFocus.ts\"));\nvar _useCustomizedInput = _interopRequireDefault(__webpack_require__(/*! ./hooks/useCustomizedInput */ \"./src/DatePicker/hooks/useCustomizedInput.ts\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../internals/Box */ \"./src/internals/Box/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../Calendar/hooks */ \"./src/Calendar/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../Calendar/utils */ \"./src/Calendar/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _hooks2 = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _OverlayTrigger = __webpack_require__(/*! ../internals/Overlay/OverlayTrigger */ \"./src/internals/Overlay/OverlayTrigger.tsx\");\nvar _utils3 = __webpack_require__(/*! ./utils */ \"./src/DatePicker/utils.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DatePicker/DatePicker.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 * A date picker allows users to select a date from a calendar.\n *\n * @see https://rsuitejs.com/components/date-picker\n */\nconst DatePicker = (0, _utils2.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks2.useCustom)('DatePicker', props);\n const {\n as,\n block,\n className,\n classPrefix = 'picker',\n calendarDefaultDate,\n cleanable = true,\n caretAs: caretAsProp,\n editable = true,\n defaultValue,\n disabled,\n readOnly: readOnly,\n plaintext,\n format,\n id: idProp,\n isoWeek,\n weekStart,\n limitEndYear = 1000,\n limitStartYear,\n locale,\n loading,\n label,\n popupClassName,\n popupStyle,\n appearance = 'default',\n placement = 'bottomStart',\n oneTap,\n placeholder = '',\n ranges,\n value: valueProp,\n showMeridiem,\n showWeekNumbers,\n style,\n size,\n monthDropdownProps,\n shouldDisableDate,\n shouldDisableHour,\n shouldDisableMinute,\n shouldDisableSecond,\n onChange,\n onChangeCalendarDate,\n onClean,\n onEnter,\n onExit,\n onNextMonth,\n onOk,\n onPrevMonth,\n onSelect,\n onToggleMonthDropdown,\n onToggleTimeDropdown,\n onShortcutClick,\n renderCell,\n renderValue,\n ...restProps\n } = propsWithDefaults;\n const id = (0, _hooks2.useUniqueId)('rs-', idProp);\n const {\n trigger,\n root,\n target,\n overlay\n } = (0, _Picker.usePickerRef)(ref);\n const formatStr = format || (locale === null || locale === void 0 ? void 0 : locale.shortDateFormat) || 'yyyy-MM-dd';\n const {\n merge,\n prefix\n } = (0, _hooks2.useStyles)(classPrefix);\n const [value, setValue] = (0, _hooks2.useControlled)(valueProp, defaultValue);\n const {\n calendarDate,\n setCalendarDate,\n resetCalendarDate\n } = (0, _hooks.useCalendarDate)(value, calendarDefaultDate);\n const {\n setMonthView,\n monthView,\n toggleMonthView\n } = (0, _useMonthView.default)({\n onToggleMonthDropdown\n });\n const {\n mode\n } = (0, _date.useDateMode)(formatStr);\n\n // Show only the calendar month panel. formatStr = 'yyyy-MM'\n const showMonth = mode === _date.DateMode.Month || monthView;\n const {\n focusInput,\n focusSelectedDate,\n onKeyFocusEvent\n } = (0, _useFocus.default)({\n target,\n showMonth,\n id,\n locale\n });\n\n /**\n * Check whether the date is disabled.\n */\n const isDateDisabled = date => {\n if (typeof shouldDisableDate === 'function') {\n return shouldDisableDate(date);\n }\n return false;\n };\n\n /**\n * Check whether the time is within the time range of the shortcut option in the toolbar.\n */\n const isDatetimeDisabled = date => {\n return (isDateDisabled === null || isDateDisabled === void 0 ? void 0 : isDateDisabled(date)) || (0, _date.disableTime)(props, date);\n };\n\n /**\n * Check whether the month is disabled.\n * If any day in the month is disabled, the entire month is disabled\n */\n const isMonthDisabled = date => {\n return (0, _utils.isEveryDateInMonth)(date.getFullYear(), date.getMonth(), isDateDisabled);\n };\n\n /**\n * Whether \"OK\" button is disabled\n *\n * - If format is date, disable ok button if selected date is disabled\n * - If format is month, disable ok button if all dates in the month of selected date are disabled\n */\n const isOkButtonDisabled = selectedDate => {\n if (mode === _date.DateMode.Month) {\n return isMonthDisabled(selectedDate);\n }\n return isDatetimeDisabled(selectedDate);\n };\n const isErrorValue = value => {\n if (!(0, _date.isValid)(value)) {\n return true;\n } else if (value && isDateDisabled(value)) {\n return true;\n }\n return false;\n };\n\n /**\n * Switch to the callback triggered after the next month.\n */\n const handleMoveForward = (0, _hooks2.useEventCallback)(nextPageDate => {\n setCalendarDate(nextPageDate);\n onNextMonth === null || onNextMonth === void 0 || onNextMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 || onChangeCalendarDate(nextPageDate);\n });\n\n /**\n * Switch to the callback triggered after the previous month.\n */\n const handleMoveBackward = (0, _hooks2.useEventCallback)(nextPageDate => {\n setCalendarDate(nextPageDate);\n onPrevMonth === null || onPrevMonth === void 0 || onPrevMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 || onChangeCalendarDate(nextPageDate);\n });\n\n /**\n * The callback triggered when the date changes.\n */\n const handleDateChange = (0, _hooks2.useEventCallback)((nextValue, event) => {\n onSelect === null || onSelect === void 0 || onSelect(nextValue, event);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 || onChangeCalendarDate(nextValue, event);\n });\n\n /**\n * A callback triggered when the time on the calendar changes.\n */\n const handleChangeTime = (0, _hooks2.useEventCallback)(nextPageTime => {\n setCalendarDate(nextPageTime);\n handleDateChange(nextPageTime);\n });\n\n /**\n * Close the calendar panel.\n */\n const handleClose = (0, _hooks2.useEventCallback)(() => {\n var _trigger$current, _trigger$current$clos;\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const updateValue = (event, date, closeOverlay = true) => {\n const nextValue = typeof date !== 'undefined' ? date : calendarDate;\n setCalendarDate(nextValue || (0, _date.startOfToday)());\n setValue(nextValue);\n if (nextValue !== value) {\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n }\n\n // `closeOverlay` default value is `true`\n if (closeOverlay !== false) {\n handleClose();\n }\n };\n\n /**\n * The callback triggered after the date in the shortcut area is clicked.\n */\n const handleShortcutPageDate = (0, _hooks2.useEventCallback)((range, closeOverlay, event) => {\n const value = range.value;\n updateValue(event, value, closeOverlay);\n handleDateChange(value, event);\n onShortcutClick === null || onShortcutClick === void 0 || onShortcutClick(range, event);\n });\n\n /**\n * The callback triggered after clicking the OK button.\n */\n const handleOK = (0, _hooks2.useEventCallback)(event => {\n updateValue(event);\n onOk === null || onOk === void 0 || onOk(calendarDate, event);\n focusInput();\n });\n\n /**\n * Callback after clicking the clear button.\n */\n\n const handleClean = (0, _hooks2.useEventCallback)(event => {\n event === null || event === void 0 || event.stopPropagation();\n updateValue(event, null);\n resetCalendarDate(null);\n onClean === null || onClean === void 0 || onClean(event);\n });\n const handlePickerPopupKeyDown = (0, _hooks2.useEventCallback)(event => {\n onKeyFocusEvent(event, {\n date: calendarDate,\n callback: setCalendarDate\n });\n if (event.key === 'Enter') {\n handleOK(event);\n }\n });\n const handleClick = (0, _hooks2.useEventCallback)(() => {\n if (editable) {\n return;\n }\n focusSelectedDate();\n });\n\n /**\n * Callback after the date is selected.\n */\n const handleCalendarSelect = (0, _hooks2.useEventCallback)((date, event, updatableValue = true) => {\n const nextValue = (0, _date.copyTime)({\n from: calendarDate,\n to: date\n });\n setCalendarDate(nextValue);\n handleDateChange(nextValue);\n if (oneTap && updatableValue) {\n updateValue(event, nextValue);\n focusInput();\n }\n });\n\n /**\n * A callback triggered when the date on the calendar changes.\n */\n const handleChangeMonth = (0, _hooks2.useEventCallback)((nextPageDate, event) => {\n setCalendarDate(nextPageDate);\n handleDateChange(nextPageDate);\n focusSelectedDate();\n if (oneTap && mode === _date.DateMode.Month) {\n updateValue(event, nextPageDate);\n focusInput();\n }\n });\n\n /**\n * Callback after the input box value is changed.\n */\n const handleInputChange = (0, _hooks2.useEventCallback)((value, event) => {\n if (!isErrorValue(value)) {\n handleCalendarSelect(value, event);\n }\n updateValue(event, value, false);\n });\n const handleInputKeyDown = (0, _hooks2.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n esc: handleClose,\n enter: () => {\n var _trigger$current2;\n const {\n open\n } = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {};\n if (open) {\n if ((0, _date.isValid)(calendarDate) && !isDateDisabled(calendarDate)) {\n updateValue(event);\n focusInput();\n }\n } else {\n var _trigger$current3;\n (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 || _trigger$current3.open();\n }\n }\n });\n });\n const calendarProps = (0, _mapValues.default)((0, _pick.default)(props, _date.calendarOnlyProps), func => (next, date) => {\n var _func;\n return (_func = func === null || func === void 0 ? void 0 : func(next, date)) !== null && _func !== void 0 ? _func : false;\n });\n const {\n sideRanges,\n bottomRanges\n } = (0, _utils3.splitRanges)(ranges);\n const renderCalendarOverlay = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(popupClassName, className, prefix('popup-date'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n role: \"dialog\",\n \"aria-labelledby\": label ? `${id}-label` : undefined,\n tabIndex: -1,\n className: classes,\n ref: (0, _utils2.mergeRefs)(overlay, speakerRef),\n style: popupStyle,\n target: trigger,\n onKeyDown: handlePickerPopupKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 572,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Stack.default, {\n align: \"flex-start\",\n h: \"100%\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 582,\n columnNumber: 9\n }\n }, sideRanges && sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {\n direction: \"column\",\n spacing: 0,\n className: prefix('date-predefined'),\n ranges: sideRanges,\n calendarDate: calendarDate,\n locale: locale,\n disableShortcut: isDatetimeDisabled,\n onShortcutClick: handleShortcutPageDate,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 584,\n columnNumber: 13\n }\n }), /*#__PURE__*/_react.default.createElement(_Box.default, {\n className: prefix('box'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 596,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(_CalendarContainer.default, (0, _extends2.default)({}, calendarProps, {\n targetId: id,\n locale: locale,\n showWeekNumbers: showWeekNumbers,\n showMeridiem: showMeridiem,\n disabledDate: isDateDisabled,\n disabledHours: shouldDisableHour,\n disabledMinutes: shouldDisableMinute,\n disabledSeconds: shouldDisableSecond,\n limitEndYear: limitEndYear,\n limitStartYear: limitStartYear,\n format: formatStr,\n isoWeek: isoWeek,\n weekStart: weekStart,\n calendarDate: calendarDate,\n monthDropdownProps: monthDropdownProps,\n renderCellOnPicker: renderCell,\n onMoveForward: handleMoveForward,\n onMoveBackward: handleMoveBackward,\n onSelect: handleCalendarSelect,\n onToggleMonthDropdown: toggleMonthView,\n onToggleTimeDropdown: onToggleTimeDropdown,\n onChangeMonth: handleChangeMonth,\n onChangeTime: handleChangeTime,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 597,\n columnNumber: 13\n }\n })), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n ranges: bottomRanges,\n calendarDate: calendarDate,\n disableOkBtn: isOkButtonDisabled,\n disableShortcut: isDatetimeDisabled,\n onShortcutClick: handleShortcutPageDate,\n onOk: handleOK,\n hideOkBtn: oneTap,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 623,\n columnNumber: 13\n }\n }))));\n };\n const hasValue = (0, _date.isValid)(value);\n const caretAs = (0, _react.useMemo)(() => {\n if (caretAsProp === null) {\n return null;\n }\n return caretAsProp || (mode === _date.DateMode.Time ? _Time.default : _CalenderSimple.default);\n }, [caretAsProp, mode]);\n const handleTriggerClose = (0, _hooks2.useEventCallback)(cause => {\n var _props$onClose;\n // Unless overlay is closing on user clicking \"OK\" button,\n // reset the selected date on calendar panel\n if (cause !== _OverlayTrigger.OverlayCloseCause.ImperativeHandle) {\n resetCalendarDate();\n }\n setMonthView(false);\n (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);\n });\n const showCleanButton = cleanable && hasValue && !readOnly;\n const [ariaProps, rest] = (0, _utils2.partitionHTMLProps)(restProps, {\n htmlProps: [],\n includeAria: true\n });\n const invalidValue = value && isErrorValue(value);\n const customizedProps = {\n value,\n formatStr,\n renderValue,\n readOnly,\n editable,\n loading\n };\n const {\n customValue,\n inputReadOnly,\n Input,\n events\n } = (0, _useCustomizedInput.default)(customizedProps);\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onClose: handleTriggerClose,\n onEnter: (0, _utils2.createChainedFunction)(events.onActive, onEnter),\n onExit: (0, _utils2.createChainedFunction)(events.onInactive, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n pickerType: \"date\",\n classPrefix: classPrefix,\n className: merge(className, {\n [prefix('error')]: invalidValue\n }),\n block: block,\n disabled: disabled,\n appearance: appearance,\n style: style,\n rootRef: root,\n trigger: \"active\",\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderCalendarOverlay,\n \"data-cleanable\": cleanable,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 675,\n columnNumber: 5\n }\n }, plaintext ? /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n value: value,\n format: formatStr,\n plaintext: plaintext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 693,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _utils3.getRestProps)(rest), {\n inside: true,\n size: size,\n disabled: disabled,\n className: prefix`input-group`,\n onClick: handleClick,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 695,\n columnNumber: 9\n }\n }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {\n className: prefix`label`,\n id: `${id}-label`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 11\n }\n }, label), /*#__PURE__*/_react.default.createElement(Input, (0, _extends2.default)({\n \"aria-haspopup\": \"dialog\",\n \"aria-invalid\": invalidValue,\n \"aria-labelledby\": label ? `${id}-label` : undefined\n }, ariaProps, {\n ref: target,\n id: id,\n value: customValue || value,\n format: formatStr,\n placeholder: placeholder ? placeholder : formatStr,\n disabled: disabled,\n readOnly: inputReadOnly,\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 706,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(_Picker.PickerIndicator, {\n size: size,\n loading: loading,\n caretAs: caretAs,\n onClose: handleClean,\n showCleanButton: showCleanButton,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 722,\n columnNumber: 11\n }\n })));\n});\nDatePicker.displayName = 'DatePicker';\nvar _default = exports[\"default\"] = DatePicker;\n\n//# sourceURL=webpack://rsuite/./src/DatePicker/DatePicker.tsx?");
2406
2406
 
2407
2407
  /***/ }),
2408
2408
 
@@ -2534,7 +2534,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2534
2534
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2535
2535
 
2536
2536
  "use strict";
2537
- 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 _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _Calendar = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Calendar */ \"./node_modules/@rsuite/icons/esm/react/Calendar.js\"));\nvar _Time = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Time */ \"./node_modules/@rsuite/icons/esm/react/Time.js\"));\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\nvar _PredefinedRanges = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/PredefinedRanges */ \"./src/DatePicker/PredefinedRanges.tsx\"));\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\nvar _DateRangeInput = _interopRequireDefault(__webpack_require__(/*! ../DateRangeInput */ \"./src/DateRangeInput/index.tsx\"));\nvar _InputGroup = _interopRequireDefault(__webpack_require__(/*! ../InputGroup */ \"./src/InputGroup/index.tsx\"));\nvar _Header = _interopRequireDefault(__webpack_require__(/*! ./Header */ \"./src/DateRangePicker/Header.tsx\"));\nvar _useDateDisabled = _interopRequireDefault(__webpack_require__(/*! ./hooks/useDateDisabled */ \"./src/DateRangePicker/hooks/useDateDisabled.ts\"));\nvar _useCustomizedInput = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/hooks/useCustomizedInput */ \"./src/DatePicker/hooks/useCustomizedInput.ts\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../internals/Box */ \"./src/internals/Box/index.tsx\"));\nvar _Calendar2 = _interopRequireDefault(__webpack_require__(/*! ./Calendar */ \"./src/DateRangePicker/Calendar.tsx\"));\nvar StaticMethods = _interopRequireWildcard(__webpack_require__(/*! ./disabledDateUtils */ \"./src/DateRangePicker/disabledDateUtils.ts\"));\nvar _DateRangePickerProvider = __webpack_require__(/*! ./DateRangePickerProvider */ \"./src/DateRangePicker/DateRangePickerProvider.ts\");\nvar _utils = __webpack_require__(/*! ./utils */ \"./src/DateRangePicker/utils.ts\");\nvar _constants = __webpack_require__(/*! ../internals/constants */ \"./src/internals/constants/index.ts\");\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../DatePicker/utils */ \"./src/DatePicker/utils.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangePicker/DateRangePicker.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 * A date range picker allows you to select a date range from a calendar.\n *\n * @see https://rsuitejs.com/components/date-range-picker\n */\nconst DateRangePicker = (0, _utils3.forwardRef)((props, ref) => {\n var _ref, _ref2;\n const {\n formatDate,\n propsWithDefaults\n } = (0, _hooks.useCustom)('DateRangePicker', props);\n const {\n as,\n block,\n classPrefix = 'picker',\n className,\n appearance = 'default',\n editable = true,\n cleanable = true,\n character = ' ~ ',\n calendarSnapping,\n defaultCalendarValue,\n defaultValue,\n plaintext,\n disabled,\n shouldDisableDate,\n shouldDisableHour,\n shouldDisableMinute,\n shouldDisableSecond,\n format,\n hoverRange,\n id: idProp,\n isoWeek = false,\n weekStart,\n limitEndYear = 1000,\n limitStartYear,\n locale,\n loading,\n label,\n popupClassName,\n popupStyle,\n oneTap,\n placeholder = '',\n placement = 'bottomStart',\n ranges,\n readOnly,\n showOneCalendar = false,\n showWeekNumbers,\n showMeridiem,\n showHeader = true,\n style,\n size,\n caretAs: caretAsProp,\n value: valueProp,\n monthDropdownProps,\n hideHours,\n hideMinutes,\n hideSeconds,\n onChange,\n onClean,\n onEnter,\n onExit,\n onOk,\n onSelect,\n onShortcutClick,\n renderTitle,\n renderValue,\n renderCell,\n ...restProps\n } = propsWithDefaults;\n const id = (0, _hooks.useUniqueId)('rs-', idProp);\n const {\n trigger,\n root,\n target,\n overlay\n } = (0, _Picker.usePickerRef)(ref);\n const {\n merge,\n prefix\n } = (0, _hooks.useStyles)(classPrefix);\n const formatStr = format || (locale === null || locale === void 0 ? void 0 : locale.shortDateFormat) || 'yyyy-MM-dd';\n const rangeFormatStr = `${formatStr}${character}${formatStr}`;\n const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null);\n const {\n mode,\n has\n } = (0, _date.useDateMode)(formatStr);\n\n // Show only the calendar month panel. formatStr = 'yyyy-MM'\n const onlyShowMonth = mode === _date.DateMode.Month;\n\n // Only show the time panel. formatStr = 'HH:mm:ss'\n const onlyShowTime = mode === _date.DateMode.Time;\n\n // Allows two calendar panels to display the same month.\n const allowSameMonth = onlyShowMonth || showOneCalendar || onlyShowTime;\n\n // Default gap between two calendars, if `showOneCalendar` is set, the gap is 0\n const calendarGap = allowSameMonth ? 0 : 1;\n\n /**\n * Whether to complete the selection.\n * Everytime selection will change this value. If the value is false, it means that the selection has not been completed.\n *\n * In `oneTap` mode, select action will not change this value, its value should be true always.\n */\n const [isSelectedIdle, setSelectedIdle] = (0, _react.useState)(true);\n\n /**\n * The currently selected date range.\n *\n * The time range is selected by two clicks. After the first click,\n * the cursor will store a temporary event date in the process until\n * the second click to determine the end date of the date range.\n *\n */\n const [selectedDates, setSelectedDates] = (0, _react.useState)((_ref = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue) !== null && _ref !== void 0 ? _ref : []);\n\n // The date of the current hover, used to reduce the calculation of `handleMouseMove`\n const [hoverDateRange, setHoverDateRange] = (0, _react.useState)(value);\n\n // The displayed calendar panel is rendered based on this value.\n const [calendarDateRange, setCalendarDateRangeValue] = (0, _react.useState)((0, _utils.getSafeCalendarDate)({\n value: (_ref2 = value !== null && value !== void 0 ? value : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null,\n allowSameMonth\n }));\n\n /**\n * When hoverRange is set, `selectValue` will be updated during the hover process,\n * which will cause the `selectValue` to be updated after the first click,\n * so declare a Ref to temporarily store the `selectValue` of the first click.\n */\n const selectRangeValueRef = (0, _react.useRef)(null);\n\n /**\n *\n * The key of the currently active calendar panel.\n * Used to switch when only one calendar panel is displayed.\n */\n const [activeCalendarKey, setActiveCalendarKey] = (0, _react.useState)();\n\n /**\n * Get the time on the calendar.\n */\n const getCalendarDatetime = calendarKey => {\n const index = calendarKey === 'start' ? 0 : 1;\n return (calendarDateRange === null || calendarDateRange === void 0 ? void 0 : calendarDateRange[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);\n };\n\n /**\n * Call this function to update the calendar panel rendering benchmark value.\n * If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].\n */\n const setCalendarDateRange = ({\n dateRange,\n calendarKey,\n eventName\n }) => {\n let nextValue = dateRange;\n\n // The time should remain the same when the dates in the date range are changed.\n if (has('time') && dateRange !== null && dateRange !== void 0 && dateRange.length && (eventName === 'changeDate' || eventName === 'changeMonth')) {\n const startDate = (0, _date.copyTime)({\n from: getCalendarDatetime('start'),\n to: dateRange[0]\n });\n const endDate = (0, _date.copyTime)({\n from: getCalendarDatetime('end'),\n to: dateRange.length === 1 ? (0, _date.addMonths)(startDate, calendarGap) : dateRange[1]\n });\n nextValue = [startDate, endDate];\n } else if (dateRange === null && typeof defaultCalendarValue !== 'undefined') {\n // Make the calendar render the value of defaultCalendarValue after clearing the value.\n nextValue = defaultCalendarValue;\n }\n const nextCalendarDate = (0, _utils.getSafeCalendarDate)({\n value: nextValue,\n calendarKey,\n allowSameMonth\n });\n setCalendarDateRangeValue(nextCalendarDate);\n if (onlyShowMonth && eventName === 'changeMonth') {\n setSelectedDates(nextCalendarDate);\n }\n };\n (0, _react.useEffect)(() => {\n // If value changes, update the selected and hover date values on the calendar panel.\n setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);\n setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);\n }, [valueProp]);\n const getInputHtmlSize = () => {\n const padding = 4;\n let strings = rangeFormatStr;\n if (value) {\n const [startDate, endDate] = value;\n strings = `${formatDate(startDate, formatStr)}${character}${formatDate(endDate, formatStr)}`;\n }\n return (0, _utils3.getStringLength)(strings) + padding;\n };\n\n /**\n * preset hover range\n */\n const getHoverRangeValue = date => {\n function getHoverRangeFunc() {\n if (hoverRange === 'week') {\n return date => (0, _utils.getWeekHoverRange)(date, {\n isoWeek,\n weekStart,\n locale: locale === null || locale === void 0 ? void 0 : locale.dateLocale\n });\n } else if (hoverRange === 'month') {\n return _utils.getMonthHoverRange;\n }\n return hoverRange;\n }\n const hoverRangeFunc = getHoverRangeFunc();\n if ((0, _isNil.default)(hoverRangeFunc)) {\n return null;\n }\n let hoverValues = hoverRangeFunc(date);\n const isHoverRangeValid = hoverValues instanceof Array && hoverValues.length === 2;\n if (!isHoverRangeValid) {\n return null;\n }\n if ((0, _date.isAfter)(hoverValues[0], hoverValues[1])) {\n hoverValues = (0, _date.reverseDateRangeOmitTime)(hoverValues);\n }\n return hoverValues;\n };\n const setDateRange = (event, nextValue, closeOverlay = true) => {\n // If nextValue is null, it means that the user is erasing the selected dates.\n setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);\n setValue(nextValue);\n if (!(0, _utils.isSameRange)(nextValue, value, formatStr)) {\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n }\n\n // `closeOverlay` default value is `true`\n if (closeOverlay !== false) {\n handleClose();\n }\n };\n\n /**\n * Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.\n * The MouseMove event is called between the first click and the second click to update the selection state.\n */\n const onMouseMove = (0, _hooks.useEventCallback)(date => {\n const nextHoverDateRange = getHoverRangeValue(date);\n\n // If hasDoneSelect is false,\n // it means there's already one selected date\n // and waiting for user to select the second date to complete the selection.\n if (!isSelectedIdle) {\n // If `hoverRange` is set, you need to change the value of hoverDateRange according to the rules\n if (!(0, _isNil.default)(nextHoverDateRange) && !(0, _isNil.default)(selectRangeValueRef.current)) {\n let nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];\n if ((0, _date.isBefore)(nextHoverDateRange[0], selectRangeValueRef.current[0])) {\n nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];\n }\n setSelectedDates(nextSelectedDates);\n } else {\n setHoverDateRange(prevHoverValue => (0, _isNil.default)(prevHoverValue) ? null : [prevHoverValue[0], date]);\n }\n\n // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated\n } else if (!(0, _isNil.default)(nextHoverDateRange)) {\n setHoverDateRange(nextHoverDateRange);\n }\n });\n\n /**\n * Callback for selecting a date cell in the calendar grid\n */\n const handleSelectDate = (0, _hooks.useEventCallback)((index, date, event) => {\n const calendarKey = index === 0 ? 'start' : 'end';\n let nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];\n const hoverRangeValue = getHoverRangeValue(date);\n const noHoverRangeValid = (0, _isNil.default)(hoverRangeValue);\n\n // in `oneTap` mode\n if (oneTap) {\n setDateRange(event, noHoverRangeValid ? [(0, _date.startOfDay)(date), (0, _date.endOfDay)(date)] : hoverRangeValue);\n onSelect === null || onSelect === void 0 || onSelect(date, event);\n return;\n }\n\n // no preset hover range can use\n if (noHoverRangeValid) {\n // start select\n if (isSelectedIdle) {\n nextSelectDates = [date];\n } else {\n // finish select\n nextSelectDates[1] = date;\n }\n } else {\n if (!isSelectedIdle) {\n nextSelectDates = selectedDates;\n selectRangeValueRef.current = null;\n } else {\n nextSelectDates = hoverRangeValue;\n selectRangeValueRef.current = hoverRangeValue;\n }\n }\n if (nextSelectDates.length === 2) {\n // If user have completed the selection, then sort the selected dates.\n if ((0, _date.isAfter)(nextSelectDates[0], nextSelectDates[1])) {\n nextSelectDates = (0, _date.reverseDateRangeOmitTime)(nextSelectDates);\n }\n if (has('time')) {\n nextSelectDates = [(0, _date.copyTime)({\n from: getCalendarDatetime('start'),\n to: nextSelectDates[0]\n }), (0, _date.copyTime)({\n from: getCalendarDatetime('end'),\n to: nextSelectDates[1]\n })];\n }\n setHoverDateRange(nextSelectDates);\n } else {\n setHoverDateRange([nextSelectDates[0], nextSelectDates[0]]);\n }\n if (isSelectedIdle) {\n setActiveCalendarKey('end');\n } else {\n setActiveCalendarKey('start');\n }\n setSelectedDates(nextSelectDates);\n if (!(0, _date.isSameMonth)(calendarDateRange[index], date) || calendarSnapping) {\n setCalendarDateRange({\n dateRange: nextSelectDates,\n calendarKey,\n eventName: 'changeDate'\n });\n }\n onSelect === null || onSelect === void 0 || onSelect(date, event);\n setSelectedIdle(!isSelectedIdle);\n });\n\n /**\n * If `selectValue` changed, there will be the following effects.\n * 1. Check if the selection is completed.\n * 2. if the selection is completed, set the temporary `hoverValue` empty.\n */\n (0, _react.useEffect)(() => {\n const selectValueLength = selectedDates.length;\n const doneSelected = selectValueLength === 0 || selectValueLength === 2;\n doneSelected && setHoverDateRange(null);\n }, [selectedDates]);\n const onChangeCalendarMonth = (0, _hooks.useEventCallback)((index, date) => {\n const calendarKey = index === 0 ? 'start' : 'end';\n const nextCalendarDate = Array.from(calendarDateRange);\n nextCalendarDate[index] = date;\n setCalendarDateRange({\n dateRange: nextCalendarDate,\n calendarKey,\n eventName: 'changeMonth'\n });\n });\n const onChangeCalendarTime = (0, _hooks.useEventCallback)((index, date) => {\n const calendarKey = index === 0 ? 'start' : 'end';\n const nextCalendarDate = Array.from(calendarDateRange);\n nextCalendarDate[index] = date;\n setCalendarDateRange({\n dateRange: nextCalendarDate,\n calendarKey,\n eventName: 'changeTime'\n });\n setSelectedDates(prev => {\n const next = [...prev];\n\n // if next[index] is not empty, only update the time after aligning the year, month and day\n next[index] = next[index] ? (0, _date.copyTime)({\n from: date,\n to: next[index]\n }) : new Date(date.valueOf());\n return next;\n });\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n let nextCalendarDate;\n if (value && value.length) {\n const [startDate, endData] = value;\n nextCalendarDate = [startDate, (0, _date.isSameMonth)(startDate, endData) ? (0, _date.addMonths)(endData, calendarGap) : endData];\n } else {\n // Reset the date on the calendar to the default date\n nextCalendarDate = (0, _utils.getSafeCalendarDate)({\n value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null,\n allowSameMonth\n });\n }\n setSelectedDates(value !== null && value !== void 0 ? value : []);\n setCalendarDateRange({\n dateRange: nextCalendarDate\n });\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n setSelectedIdle(true);\n });\n\n /**\n * Toolbar operation callback function\n */\n const handleShortcutPageDate = (0, _hooks.useEventCallback)((range, closeOverlay = false, event) => {\n const value = range.value;\n setCalendarDateRange({\n dateRange: value,\n eventName: 'shortcutSelection'\n });\n if (closeOverlay) {\n setDateRange(event, value, closeOverlay);\n } else {\n setSelectedDates(value !== null && value !== void 0 ? value : []);\n }\n onShortcutClick === null || onShortcutClick === void 0 || onShortcutClick(range, event);\n\n // End unfinished selections.\n setSelectedIdle(true);\n });\n const calculateDateRange = () => {\n const [start = calendarDateRange[0], end = calendarDateRange[1]] = selectedDates;\n if (onlyShowTime) {\n return [start, end];\n }\n return selectedDates;\n };\n const handleClickOK = (0, _hooks.useEventCallback)(event => {\n const nextValue = calculateDateRange();\n setDateRange(event, nextValue);\n onOk === null || onOk === void 0 || onOk(nextValue, event);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n setCalendarDateRange({\n dateRange: null\n });\n setDateRange(event, null);\n onClean === null || onClean === void 0 || onClean(event);\n event.stopPropagation();\n });\n\n /**\n * Callback after the input box value is changed.\n */\n const handleInputChange = (0, _hooks.useEventCallback)((value, event) => {\n if (!value) {\n return;\n }\n const [startDate, endDate] = value;\n const selectValue = [startDate, endDate];\n setHoverDateRange(selectValue);\n setSelectedDates(selectValue);\n setCalendarDateRange({\n dateRange: selectValue\n });\n setDateRange(event, selectValue, false);\n });\n\n /**\n * Check if the date is disabled\n */\n const isDateDisabled = (0, _useDateDisabled.default)({\n shouldDisableDate\n });\n\n /**\n * Check if a date range is disabled\n */\n const isRangeDisabled = (start, end, target) => {\n if (isDateDisabled) {\n // If the date is between the start and the end the button is disabled\n while ((0, _date.isBefore)(start, end) || (0, _date.isSameDay)(start, end)) {\n if (isDateDisabled(start, {\n selectDate: selectedDates,\n selectedDone: isSelectedIdle,\n target\n })) {\n return true;\n }\n start = (0, _date.addDays)(start, 1);\n }\n }\n return false;\n };\n\n /**\n * Determine if the OK button should be disabled\n */\n const shouldDisableOkButton = () => {\n const [startDate, endDate] = calculateDateRange();\n\n // Check if start or end dates are missing\n if (!startDate || !endDate) {\n return true;\n }\n\n // Additional condition if only showing time\n if (!onlyShowTime && !isSelectedIdle) {\n return true;\n }\n\n // Check if there is any error in the selected date range\n if (isErrorValue([startDate, endDate])) {\n return true;\n }\n return false;\n };\n\n /**\n * Check if a shortcut is disabled based on the selected date range\n */\n const shouldDisableShortcut = (selectedDates = []) => {\n if (selectedDates === null) {\n return false;\n }\n const [startDate, endDate] = selectedDates;\n\n // Disable if either start or end date is missing\n if (!startDate || !endDate) {\n return true;\n }\n\n // Check if the date range is disabled for the shortcut\n return isRangeDisabled(startDate, endDate, _constants.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);\n };\n const handleClose = (0, _hooks.useEventCallback)(() => {\n var _trigger$current, _trigger$current$clos;\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const handleInputKeyDown = (0, _hooks.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n esc: handleClose,\n enter: () => {\n var _trigger$current2;\n const {\n open\n } = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {};\n if (!open) {\n var _trigger$current3;\n (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 || _trigger$current3.open();\n }\n }\n });\n });\n const disableCalendarDate = isDateDisabled ? (date, values, type) => {\n return isDateDisabled(date, {\n selectDate: values,\n selectedDone: isSelectedIdle,\n target: type\n });\n } : undefined;\n const renderCalendarOverlay = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('popup-daterange'));\n const panelClasses = prefix('daterange-panel', {\n 'daterange-panel-show-one-calendar': showOneCalendar,\n 'daterange-panel-only-time': onlyShowTime\n });\n\n /**\n * Set a min-width (528px) when there are two calendars\n * @see https://github.com/rsuite/rsuite/issues/3522\n */\n const panelStyles = {\n minWidth: showOneCalendar || onlyShowTime ? 'auto' : 528\n };\n const calendarProps = {\n locale,\n isoWeek,\n weekStart,\n limitEndYear,\n showMeridiem,\n calendarDateRange,\n limitStartYear,\n showWeekNumbers,\n format: formatStr,\n value: selectedDates,\n monthDropdownProps,\n hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,\n hideHours,\n hideMinutes,\n hideSeconds,\n disabledHours: shouldDisableHour,\n disabledMinutes: shouldDisableMinute,\n disabledSeconds: shouldDisableSecond,\n disabledDate: disableCalendarDate,\n onSelect: handleSelectDate,\n onChangeCalendarMonth,\n onChangeCalendarTime,\n onMouseMove,\n renderTitle,\n renderCellOnPicker: renderCell\n };\n const getCalendars = () => {\n if (showOneCalendar) {\n return /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: activeCalendarKey === 'end' ? 1 : 0\n }, calendarProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 918,\n columnNumber: 18\n }\n }));\n }\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 0\n }, calendarProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 923,\n columnNumber: 13\n }\n })), /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 1\n }, calendarProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 924,\n columnNumber: 13\n }\n })));\n };\n const {\n sideRanges,\n bottomRanges\n } = (0, _utils2.splitRanges)(ranges);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n role: \"dialog\",\n \"aria-labelledby\": label ? `${id}-label` : undefined,\n tabIndex: -1,\n className: classes,\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n target: trigger,\n style: popupStyle,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 932,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: panelClasses,\n style: panelStyles,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 941,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(_Stack.default, {\n align: \"flex-start\",\n h: \"100%\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 942,\n columnNumber: 13\n }\n }, sideRanges && sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {\n direction: \"column\",\n spacing: 0,\n className: prefix('daterange-predefined'),\n ranges: sideRanges,\n calendarDate: calendarDateRange,\n locale: locale,\n disableShortcut: shouldDisableShortcut,\n onShortcutClick: handleShortcutPageDate,\n \"data-testid\": \"daterange-predefined-side\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 944,\n columnNumber: 17\n }\n }), /*#__PURE__*/_react.default.createElement(_Box.default, {\n className: prefix('box'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 957,\n columnNumber: 15\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('daterange-content'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 958,\n columnNumber: 17\n }\n }, showHeader && /*#__PURE__*/_react.default.createElement(_Header.default, {\n value: isSelectedIdle ? selectedDates : hoverDateRange,\n formatStr: formatStr,\n character: character,\n clickable: showOneCalendar,\n activeKey: activeCalendarKey,\n onSelect: setActiveCalendarKey,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 960,\n columnNumber: 21\n }\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(`daterange-calendar-${showOneCalendar ? 'single' : 'group'}`),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 970,\n columnNumber: 19\n }\n }, /*#__PURE__*/_react.default.createElement(_DateRangePickerProvider.DateRangePickerProvider, {\n value: {\n isSelectedIdle\n },\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 973,\n columnNumber: 21\n }\n }, getCalendars()))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n calendarDate: selectedDates,\n disableOkBtn: shouldDisableOkButton,\n disableShortcut: shouldDisableShortcut,\n hideOkBtn: oneTap,\n onOk: handleClickOK,\n onShortcutClick: handleShortcutPageDate,\n ranges: bottomRanges,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 978,\n columnNumber: 17\n }\n })))));\n };\n const hasValue = !(0, _isNil.default)(value) && value.length > 1;\n const caretAs = (0, _react.useMemo)(() => {\n if (caretAsProp === null) {\n return null;\n }\n return caretAsProp || (onlyShowTime ? _Time.default : _Calendar.default);\n }, [caretAsProp, onlyShowTime]);\n const isErrorValue = value => {\n if (!value) {\n return false;\n }\n\n // If the value is an empty array, it is not an error value.\n if (Array.isArray(value) && value.length === 0) {\n return false;\n }\n const [startDate, endDate] = value;\n if (!(0, _date.isValid)(startDate) || !(0, _date.isValid)(endDate)) {\n return true;\n }\n if ((0, _date.isBefore)(endDate, startDate)) {\n return true;\n }\n const disabledOptions = {\n selectDate: value,\n selectedDone: isSelectedIdle,\n target: _constants.DATERANGE_DISABLED_TARGET.INPUT\n };\n if (isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(startDate, disabledOptions) || isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(endDate, disabledOptions)) {\n return true;\n }\n return false;\n };\n const [ariaProps, rest] = (0, _utils3.partitionHTMLProps)(restProps, {\n htmlProps: [],\n includeAria: true\n });\n const showCleanButton = cleanable && hasValue && !readOnly;\n const invalidValue = value && isErrorValue(value);\n const {\n customValue,\n inputReadOnly,\n Input,\n events\n } = (0, _useCustomizedInput.default)({\n mode: 'dateRange',\n value,\n formatStr,\n renderValue,\n readOnly,\n editable,\n loading\n });\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils3.createChainedFunction)(events.onActive, handleEnter, onEnter),\n onExit: (0, _utils3.createChainedFunction)(events.onInactive, handleExit, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n name: \"date-range\",\n classPrefix: classPrefix,\n className: merge(className, {\n [prefix('error')]: invalidValue\n }),\n block: block,\n disabled: disabled,\n appearance: appearance,\n style: style,\n rootRef: root,\n ref: trigger,\n placement: placement,\n trigger: \"active\",\n triggerProps: triggerProps,\n speaker: renderCalendarOverlay,\n \"data-cleanable\": cleanable,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1061,\n columnNumber: 7\n }\n }, plaintext ? /*#__PURE__*/_react.default.createElement(_DateRangeInput.default, {\n value: value,\n format: formatStr,\n plaintext: plaintext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1079,\n columnNumber: 11\n }\n }) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _omit.default)(rest, [..._date.calendarOnlyProps, ..._Picker.triggerPropKeys]), {\n inside: true,\n className: prefix`input-group`,\n disabled: disabled,\n size: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1081,\n columnNumber: 11\n }\n }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {\n className: prefix`label`,\n id: `${id}-label`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1088,\n columnNumber: 13\n }\n }, label), /*#__PURE__*/_react.default.createElement(Input, (0, _extends2.default)({\n \"aria-haspopup\": \"dialog\",\n \"aria-invalid\": invalidValue,\n \"aria-labelledby\": label ? `${id}-label` : undefined\n }, ariaProps, {\n ref: target,\n id: id,\n value: customValue || value,\n character: character,\n format: formatStr,\n placeholder: placeholder ? placeholder : rangeFormatStr,\n disabled: disabled,\n readOnly: inputReadOnly,\n htmlSize: getInputHtmlSize(),\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1091,\n columnNumber: 13\n }\n })), /*#__PURE__*/_react.default.createElement(_Picker.PickerIndicator, {\n size: size,\n loading: loading,\n caretAs: caretAs,\n onClose: handleClean,\n showCleanButton: showCleanButton,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1108,\n columnNumber: 13\n }\n })));\n}, StaticMethods);\nDateRangePicker.displayName = 'DateRangePicker';\nvar _default = exports[\"default\"] = DateRangePicker;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/DateRangePicker.tsx?");
2537
+ 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 _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _Calendar = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Calendar */ \"./node_modules/@rsuite/icons/esm/react/Calendar.js\"));\nvar _Time = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/Time */ \"./node_modules/@rsuite/icons/esm/react/Time.js\"));\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\nvar _PredefinedRanges = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/PredefinedRanges */ \"./src/DatePicker/PredefinedRanges.tsx\"));\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\nvar _DateRangeInput = _interopRequireDefault(__webpack_require__(/*! ../DateRangeInput */ \"./src/DateRangeInput/index.tsx\"));\nvar _InputGroup = _interopRequireDefault(__webpack_require__(/*! ../InputGroup */ \"./src/InputGroup/index.tsx\"));\nvar _Header = _interopRequireDefault(__webpack_require__(/*! ./Header */ \"./src/DateRangePicker/Header.tsx\"));\nvar _useDateDisabled = _interopRequireDefault(__webpack_require__(/*! ./hooks/useDateDisabled */ \"./src/DateRangePicker/hooks/useDateDisabled.ts\"));\nvar _useCustomizedInput = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/hooks/useCustomizedInput */ \"./src/DatePicker/hooks/useCustomizedInput.ts\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../internals/Box */ \"./src/internals/Box/index.tsx\"));\nvar _Calendar2 = _interopRequireDefault(__webpack_require__(/*! ./Calendar */ \"./src/DateRangePicker/Calendar.tsx\"));\nvar StaticMethods = _interopRequireWildcard(__webpack_require__(/*! ./disabledDateUtils */ \"./src/DateRangePicker/disabledDateUtils.ts\"));\nvar _DateRangePickerProvider = __webpack_require__(/*! ./DateRangePickerProvider */ \"./src/DateRangePicker/DateRangePickerProvider.ts\");\nvar _utils = __webpack_require__(/*! ./utils */ \"./src/DateRangePicker/utils.ts\");\nvar _constants = __webpack_require__(/*! ../internals/constants */ \"./src/internals/constants/index.ts\");\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../DatePicker/utils */ \"./src/DatePicker/utils.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangePicker/DateRangePicker.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 * A date range picker allows you to select a date range from a calendar.\n *\n * @see https://rsuitejs.com/components/date-range-picker\n */\nconst DateRangePicker = (0, _utils3.forwardRef)((props, ref) => {\n var _ref, _ref2;\n const {\n formatDate,\n propsWithDefaults\n } = (0, _hooks.useCustom)('DateRangePicker', props);\n const {\n as,\n block,\n classPrefix = 'picker',\n className,\n appearance = 'default',\n editable = true,\n cleanable = true,\n character = ' ~ ',\n calendarSnapping,\n defaultCalendarValue,\n defaultValue,\n plaintext,\n disabled,\n shouldDisableDate,\n shouldDisableHour,\n shouldDisableMinute,\n shouldDisableSecond,\n format,\n hoverRange,\n id: idProp,\n isoWeek = false,\n weekStart,\n limitEndYear = 1000,\n limitStartYear,\n locale,\n loading,\n label,\n popupClassName,\n popupStyle,\n oneTap,\n placeholder = '',\n placement = 'bottomStart',\n ranges,\n readOnly,\n showOneCalendar = false,\n showWeekNumbers,\n showMeridiem,\n showHeader = true,\n style,\n size,\n caretAs: caretAsProp,\n value: valueProp,\n monthDropdownProps,\n hideHours,\n hideMinutes,\n hideSeconds,\n onChange,\n onClean,\n onEnter,\n onExit,\n onOk,\n onSelect,\n onShortcutClick,\n renderTitle,\n renderValue,\n renderCell,\n ...restProps\n } = propsWithDefaults;\n const id = (0, _hooks.useUniqueId)('rs-', idProp);\n const {\n trigger,\n root,\n target,\n overlay\n } = (0, _Picker.usePickerRef)(ref);\n const {\n merge,\n prefix\n } = (0, _hooks.useStyles)(classPrefix);\n const formatStr = format || (locale === null || locale === void 0 ? void 0 : locale.shortDateFormat) || 'yyyy-MM-dd';\n const rangeFormatStr = `${formatStr}${character}${formatStr}`;\n const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null);\n const {\n mode,\n has\n } = (0, _date.useDateMode)(formatStr);\n\n // Show only the calendar month panel. formatStr = 'yyyy-MM'\n const onlyShowMonth = mode === _date.DateMode.Month;\n\n // Only show the time panel. formatStr = 'HH:mm:ss'\n const onlyShowTime = mode === _date.DateMode.Time;\n\n // Allows two calendar panels to display the same month.\n const allowSameMonth = onlyShowMonth || showOneCalendar || onlyShowTime;\n\n // Default gap between two calendars, if `showOneCalendar` is set, the gap is 0\n const calendarGap = allowSameMonth ? 0 : 1;\n\n /**\n * Whether to complete the selection.\n * Everytime selection will change this value. If the value is false, it means that the selection has not been completed.\n *\n * In `oneTap` mode, select action will not change this value, its value should be true always.\n */\n const [isSelectedIdle, setSelectedIdle] = (0, _react.useState)(true);\n\n /**\n * The currently selected date range.\n *\n * The time range is selected by two clicks. After the first click,\n * the cursor will store a temporary event date in the process until\n * the second click to determine the end date of the date range.\n *\n */\n const [selectedDates, setSelectedDates] = (0, _react.useState)((_ref = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue) !== null && _ref !== void 0 ? _ref : []);\n\n // The date of the current hover, used to reduce the calculation of `handleMouseMove`\n const [hoverDateRange, setHoverDateRange] = (0, _react.useState)(value);\n\n // The displayed calendar panel is rendered based on this value.\n const [calendarDateRange, setCalendarDateRangeValue] = (0, _react.useState)((0, _utils.getSafeCalendarDate)({\n value: (_ref2 = value !== null && value !== void 0 ? value : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null,\n allowSameMonth\n }));\n\n /**\n * When hoverRange is set, `selectValue` will be updated during the hover process,\n * which will cause the `selectValue` to be updated after the first click,\n * so declare a Ref to temporarily store the `selectValue` of the first click.\n */\n const selectRangeValueRef = (0, _react.useRef)(null);\n\n /**\n *\n * The key of the currently active calendar panel.\n * Used to switch when only one calendar panel is displayed.\n */\n const [activeCalendarKey, setActiveCalendarKey] = (0, _react.useState)();\n\n /**\n * Get the time on the calendar.\n */\n const getCalendarDatetime = calendarKey => {\n const index = calendarKey === 'start' ? 0 : 1;\n return (calendarDateRange === null || calendarDateRange === void 0 ? void 0 : calendarDateRange[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);\n };\n\n /**\n * Call this function to update the calendar panel rendering benchmark value.\n * If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].\n */\n const setCalendarDateRange = ({\n dateRange,\n calendarKey,\n eventName\n }) => {\n let nextValue = dateRange;\n\n // The time should remain the same when the dates in the date range are changed.\n if (has('time') && dateRange !== null && dateRange !== void 0 && dateRange.length && (eventName === 'changeDate' || eventName === 'changeMonth')) {\n const startDate = (0, _date.copyTime)({\n from: getCalendarDatetime('start'),\n to: dateRange[0]\n });\n const endDate = (0, _date.copyTime)({\n from: getCalendarDatetime('end'),\n to: dateRange.length === 1 ? (0, _date.addMonths)(startDate, calendarGap) : dateRange[1]\n });\n nextValue = [startDate, endDate];\n } else if (dateRange === null && typeof defaultCalendarValue !== 'undefined') {\n // Make the calendar render the value of defaultCalendarValue after clearing the value.\n nextValue = defaultCalendarValue;\n }\n const nextCalendarDate = (0, _utils.getSafeCalendarDate)({\n value: nextValue,\n calendarKey,\n allowSameMonth\n });\n setCalendarDateRangeValue(nextCalendarDate);\n if (onlyShowMonth && eventName === 'changeMonth') {\n setSelectedDates(nextCalendarDate);\n }\n };\n (0, _react.useEffect)(() => {\n // If value changes, update the selected and hover date values on the calendar panel.\n setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);\n setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);\n }, [valueProp]);\n const getInputHtmlSize = () => {\n const padding = 4;\n let strings = rangeFormatStr;\n if (value) {\n const [startDate, endDate] = value;\n strings = `${formatDate(startDate, formatStr)}${character}${formatDate(endDate, formatStr)}`;\n }\n return (0, _utils3.getStringLength)(strings) + padding;\n };\n\n /**\n * preset hover range\n */\n const getHoverRangeValue = date => {\n function getHoverRangeFunc() {\n if (hoverRange === 'week') {\n return date => (0, _utils.getWeekHoverRange)(date, {\n isoWeek,\n weekStart,\n locale: locale === null || locale === void 0 ? void 0 : locale.dateLocale\n });\n } else if (hoverRange === 'month') {\n return _utils.getMonthHoverRange;\n }\n return hoverRange;\n }\n const hoverRangeFunc = getHoverRangeFunc();\n if ((0, _isNil.default)(hoverRangeFunc)) {\n return null;\n }\n let hoverValues = hoverRangeFunc(date);\n const isHoverRangeValid = hoverValues instanceof Array && hoverValues.length === 2;\n if (!isHoverRangeValid) {\n return null;\n }\n if ((0, _date.isAfter)(hoverValues[0], hoverValues[1])) {\n hoverValues = (0, _date.reverseDateRangeOmitTime)(hoverValues);\n }\n return hoverValues;\n };\n const setDateRange = (event, nextValue, closeOverlay = true) => {\n // If nextValue is null, it means that the user is erasing the selected dates.\n setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);\n setValue(nextValue);\n if (!(0, _utils.isSameRange)(nextValue, value, formatStr)) {\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n }\n\n // `closeOverlay` default value is `true`\n if (closeOverlay !== false) {\n handleClose();\n }\n };\n\n /**\n * Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.\n * The MouseMove event is called between the first click and the second click to update the selection state.\n */\n const onMouseMove = (0, _hooks.useEventCallback)(date => {\n const nextHoverDateRange = getHoverRangeValue(date);\n\n // If hasDoneSelect is false,\n // it means there's already one selected date\n // and waiting for user to select the second date to complete the selection.\n if (!isSelectedIdle) {\n // If `hoverRange` is set, you need to change the value of hoverDateRange according to the rules\n if (!(0, _isNil.default)(nextHoverDateRange) && !(0, _isNil.default)(selectRangeValueRef.current)) {\n let nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];\n if ((0, _date.isBefore)(nextHoverDateRange[0], selectRangeValueRef.current[0])) {\n nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];\n }\n setSelectedDates(nextSelectedDates);\n } else {\n setHoverDateRange(prevHoverValue => (0, _isNil.default)(prevHoverValue) ? null : [prevHoverValue[0], date]);\n }\n\n // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated\n } else if (!(0, _isNil.default)(nextHoverDateRange)) {\n setHoverDateRange(nextHoverDateRange);\n }\n });\n\n /**\n * Callback for selecting a date cell in the calendar grid\n */\n const handleSelectDate = (0, _hooks.useEventCallback)((index, date, event) => {\n const calendarKey = index === 0 ? 'start' : 'end';\n let nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];\n const hoverRangeValue = getHoverRangeValue(date);\n const noHoverRangeValid = (0, _isNil.default)(hoverRangeValue);\n\n // in `oneTap` mode\n if (oneTap) {\n setDateRange(event, noHoverRangeValid ? [(0, _date.startOfDay)(date), (0, _date.endOfDay)(date)] : hoverRangeValue);\n onSelect === null || onSelect === void 0 || onSelect(date, event);\n return;\n }\n\n // no preset hover range can use\n if (noHoverRangeValid) {\n // start select\n if (isSelectedIdle) {\n nextSelectDates = [date];\n } else {\n // finish select\n nextSelectDates[1] = date;\n }\n } else {\n if (!isSelectedIdle) {\n nextSelectDates = selectedDates;\n selectRangeValueRef.current = null;\n } else {\n nextSelectDates = hoverRangeValue;\n selectRangeValueRef.current = hoverRangeValue;\n }\n }\n if (nextSelectDates.length === 2) {\n // If user have completed the selection, then sort the selected dates.\n if ((0, _date.isAfter)(nextSelectDates[0], nextSelectDates[1])) {\n nextSelectDates = (0, _date.reverseDateRangeOmitTime)(nextSelectDates);\n }\n if (has('time')) {\n nextSelectDates = [(0, _date.copyTime)({\n from: getCalendarDatetime('start'),\n to: nextSelectDates[0]\n }), (0, _date.copyTime)({\n from: getCalendarDatetime('end'),\n to: nextSelectDates[1]\n })];\n }\n setHoverDateRange(nextSelectDates);\n } else {\n setHoverDateRange([nextSelectDates[0], nextSelectDates[0]]);\n }\n if (isSelectedIdle) {\n setActiveCalendarKey('end');\n } else {\n setActiveCalendarKey('start');\n }\n setSelectedDates(nextSelectDates);\n if (!(0, _date.isSameMonth)(calendarDateRange[index], date) || calendarSnapping) {\n setCalendarDateRange({\n dateRange: nextSelectDates,\n calendarKey,\n eventName: 'changeDate'\n });\n }\n onSelect === null || onSelect === void 0 || onSelect(date, event);\n setSelectedIdle(!isSelectedIdle);\n });\n\n /**\n * If `selectValue` changed, there will be the following effects.\n * 1. Check if the selection is completed.\n * 2. if the selection is completed, set the temporary `hoverValue` empty.\n */\n (0, _react.useEffect)(() => {\n const selectValueLength = selectedDates.length;\n const doneSelected = selectValueLength === 0 || selectValueLength === 2;\n doneSelected && setHoverDateRange(null);\n }, [selectedDates]);\n const onChangeCalendarMonth = (0, _hooks.useEventCallback)((index, date) => {\n const calendarKey = index === 0 ? 'start' : 'end';\n const nextCalendarDate = Array.from(calendarDateRange);\n nextCalendarDate[index] = date;\n setCalendarDateRange({\n dateRange: nextCalendarDate,\n calendarKey,\n eventName: 'changeMonth'\n });\n });\n const onChangeCalendarTime = (0, _hooks.useEventCallback)((index, date) => {\n const calendarKey = index === 0 ? 'start' : 'end';\n const nextCalendarDate = Array.from(calendarDateRange);\n nextCalendarDate[index] = date;\n setCalendarDateRange({\n dateRange: nextCalendarDate,\n calendarKey,\n eventName: 'changeTime'\n });\n setSelectedDates(prev => {\n const next = [...prev];\n\n // if next[index] is not empty, only update the time after aligning the year, month and day\n next[index] = next[index] ? (0, _date.copyTime)({\n from: date,\n to: next[index]\n }) : new Date(date.valueOf());\n return next;\n });\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n let nextCalendarDate;\n if (value && value.length) {\n const [startDate, endData] = value;\n nextCalendarDate = [startDate, (0, _date.isSameMonth)(startDate, endData) ? (0, _date.addMonths)(endData, calendarGap) : endData];\n } else {\n // Reset the date on the calendar to the default date\n nextCalendarDate = (0, _utils.getSafeCalendarDate)({\n value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null,\n allowSameMonth\n });\n }\n setSelectedDates(value !== null && value !== void 0 ? value : []);\n setCalendarDateRange({\n dateRange: nextCalendarDate\n });\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n setSelectedIdle(true);\n });\n\n /**\n * Toolbar operation callback function\n */\n const handleShortcutPageDate = (0, _hooks.useEventCallback)((range, closeOverlay = false, event) => {\n const value = range.value;\n setCalendarDateRange({\n dateRange: value,\n eventName: 'shortcutSelection'\n });\n if (closeOverlay) {\n setDateRange(event, value, closeOverlay);\n } else {\n setSelectedDates(value !== null && value !== void 0 ? value : []);\n }\n onShortcutClick === null || onShortcutClick === void 0 || onShortcutClick(range, event);\n\n // End unfinished selections.\n setSelectedIdle(true);\n });\n const calculateDateRange = () => {\n const [start = calendarDateRange[0], end = calendarDateRange[1]] = selectedDates;\n if (onlyShowTime) {\n return [start, end];\n }\n return selectedDates;\n };\n const handleClickOK = (0, _hooks.useEventCallback)(event => {\n const nextValue = calculateDateRange();\n setDateRange(event, nextValue);\n onOk === null || onOk === void 0 || onOk(nextValue, event);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n setCalendarDateRange({\n dateRange: null\n });\n setDateRange(event, null);\n onClean === null || onClean === void 0 || onClean(event);\n event.stopPropagation();\n });\n\n /**\n * Callback after the input box value is changed.\n */\n const handleInputChange = (0, _hooks.useEventCallback)((value, event) => {\n if (!value) {\n return;\n }\n const [startDate, endDate] = value;\n const selectValue = [startDate, endDate];\n setHoverDateRange(selectValue);\n setSelectedDates(selectValue);\n setCalendarDateRange({\n dateRange: selectValue\n });\n setDateRange(event, selectValue, false);\n });\n\n /**\n * Check if the date is disabled\n */\n const isDateDisabled = (0, _useDateDisabled.default)({\n shouldDisableDate\n });\n\n /**\n * Check if a date range is disabled\n */\n const isRangeDisabled = (start, end, target) => {\n if (isDateDisabled) {\n // If the date is between the start and the end the button is disabled\n while ((0, _date.isBefore)(start, end) || (0, _date.isSameDay)(start, end)) {\n if (isDateDisabled(start, {\n selectDate: selectedDates,\n selectedDone: isSelectedIdle,\n target\n })) {\n return true;\n }\n start = (0, _date.addDays)(start, 1);\n }\n }\n return false;\n };\n\n /**\n * Determine if the OK button should be disabled\n */\n const shouldDisableOkButton = () => {\n const [startDate, endDate] = calculateDateRange();\n\n // Check if start or end dates are missing\n if (!startDate || !endDate) {\n return true;\n }\n\n // Additional condition if only showing time\n if (!onlyShowTime && !isSelectedIdle) {\n return true;\n }\n\n // Check if there is any error in the selected date range\n if (isErrorValue([startDate, endDate])) {\n return true;\n }\n return false;\n };\n\n /**\n * Check if a shortcut is disabled based on the selected date range\n */\n const shouldDisableShortcut = (selectedDates = []) => {\n if (selectedDates === null) {\n return false;\n }\n const [startDate, endDate] = selectedDates;\n\n // Disable if either start or end date is missing\n if (!startDate || !endDate) {\n return true;\n }\n\n // Check if the date range is disabled for the shortcut\n return isRangeDisabled(startDate, endDate, _constants.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);\n };\n const handleClose = (0, _hooks.useEventCallback)(() => {\n var _trigger$current, _trigger$current$clos;\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const handleInputKeyDown = (0, _hooks.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n esc: handleClose,\n enter: () => {\n var _trigger$current2;\n const {\n open\n } = ((_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.getState()) || {};\n if (!open) {\n var _trigger$current3;\n (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 || _trigger$current3.open();\n }\n }\n });\n });\n const disableCalendarDate = isDateDisabled ? (date, values, type) => {\n return isDateDisabled(date, {\n selectDate: values,\n selectedDone: isSelectedIdle,\n target: type\n });\n } : undefined;\n const renderCalendarOverlay = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('popup-daterange'));\n const panelClasses = prefix('daterange-panel', {\n 'daterange-panel-show-one-calendar': showOneCalendar,\n 'daterange-panel-only-time': onlyShowTime\n });\n\n /**\n * Set a min-width (528px) when there are two calendars\n * @see https://github.com/rsuite/rsuite/issues/3522\n */\n const panelStyles = {\n minWidth: showOneCalendar || onlyShowTime ? 'auto' : 528\n };\n const calendarProps = {\n locale,\n isoWeek,\n weekStart,\n limitEndYear,\n showMeridiem,\n calendarDateRange,\n limitStartYear,\n showWeekNumbers,\n format: formatStr,\n value: selectedDates,\n monthDropdownProps,\n hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,\n hideHours,\n hideMinutes,\n hideSeconds,\n disabledHours: shouldDisableHour,\n disabledMinutes: shouldDisableMinute,\n disabledSeconds: shouldDisableSecond,\n disabledDate: disableCalendarDate,\n onSelect: handleSelectDate,\n onChangeCalendarMonth,\n onChangeCalendarTime,\n onMouseMove,\n renderTitle,\n renderCellOnPicker: renderCell\n };\n const getCalendars = () => {\n if (showOneCalendar) {\n return /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: activeCalendarKey === 'end' ? 1 : 0\n }, calendarProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 918,\n columnNumber: 18\n }\n }));\n }\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 0\n }, calendarProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 923,\n columnNumber: 13\n }\n })), /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 1\n }, calendarProps, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 924,\n columnNumber: 13\n }\n })));\n };\n const {\n sideRanges,\n bottomRanges\n } = (0, _utils2.splitRanges)(ranges);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n role: \"dialog\",\n \"aria-labelledby\": label ? `${id}-label` : undefined,\n tabIndex: -1,\n className: classes,\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n target: trigger,\n style: popupStyle,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 932,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: panelClasses,\n style: panelStyles,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 941,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(_Stack.default, {\n align: \"flex-start\",\n h: \"100%\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 942,\n columnNumber: 13\n }\n }, sideRanges && sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {\n direction: \"column\",\n spacing: 0,\n className: prefix('daterange-predefined'),\n ranges: sideRanges,\n calendarDate: calendarDateRange,\n locale: locale,\n disableShortcut: shouldDisableShortcut,\n onShortcutClick: handleShortcutPageDate,\n \"data-testid\": \"daterange-predefined-side\",\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 944,\n columnNumber: 17\n }\n }), /*#__PURE__*/_react.default.createElement(_Box.default, {\n className: prefix('box'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 957,\n columnNumber: 15\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('daterange-content'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 958,\n columnNumber: 17\n }\n }, showHeader && /*#__PURE__*/_react.default.createElement(_Header.default, {\n value: isSelectedIdle ? selectedDates : hoverDateRange,\n formatStr: formatStr,\n character: character,\n clickable: showOneCalendar,\n activeKey: activeCalendarKey,\n onSelect: setActiveCalendarKey,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 960,\n columnNumber: 21\n }\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(`daterange-calendar-${showOneCalendar ? 'single' : 'group'}`),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 970,\n columnNumber: 19\n }\n }, /*#__PURE__*/_react.default.createElement(_DateRangePickerProvider.DateRangePickerProvider, {\n value: {\n isSelectedIdle\n },\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 973,\n columnNumber: 21\n }\n }, getCalendars()))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n calendarDate: selectedDates,\n disableOkBtn: shouldDisableOkButton,\n disableShortcut: shouldDisableShortcut,\n hideOkBtn: oneTap,\n onOk: handleClickOK,\n onShortcutClick: handleShortcutPageDate,\n ranges: bottomRanges,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 978,\n columnNumber: 17\n }\n })))));\n };\n const hasValue = !(0, _isNil.default)(value) && value.length > 1;\n const caretAs = (0, _react.useMemo)(() => {\n if (caretAsProp === null) {\n return null;\n }\n return caretAsProp || (onlyShowTime ? _Time.default : _Calendar.default);\n }, [caretAsProp, onlyShowTime]);\n const isErrorValue = value => {\n if (!value) {\n return false;\n }\n\n // If the value is an empty array, it is not an error value.\n if (Array.isArray(value) && value.length === 0) {\n return false;\n }\n const [startDate, endDate] = value;\n if (!(0, _date.isValid)(startDate) || !(0, _date.isValid)(endDate)) {\n return true;\n }\n if ((0, _date.isBefore)(endDate, startDate)) {\n return true;\n }\n const disabledOptions = {\n selectDate: value,\n selectedDone: isSelectedIdle,\n target: _constants.DATERANGE_DISABLED_TARGET.INPUT\n };\n if (isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(startDate, disabledOptions) || isDateDisabled !== null && isDateDisabled !== void 0 && isDateDisabled(endDate, disabledOptions)) {\n return true;\n }\n return false;\n };\n const [ariaProps, rest] = (0, _utils3.partitionHTMLProps)(restProps, {\n htmlProps: [],\n includeAria: true\n });\n const showCleanButton = cleanable && hasValue && !readOnly;\n const invalidValue = value && isErrorValue(value);\n const {\n customValue,\n inputReadOnly,\n Input,\n events\n } = (0, _useCustomizedInput.default)({\n mode: 'dateRange',\n value,\n formatStr,\n renderValue,\n readOnly,\n editable,\n loading\n });\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils3.createChainedFunction)(events.onActive, handleEnter, onEnter),\n onExit: (0, _utils3.createChainedFunction)(events.onInactive, handleExit, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n pickerType: \"date-range\",\n classPrefix: classPrefix,\n className: merge(className, {\n [prefix('error')]: invalidValue\n }),\n block: block,\n disabled: disabled,\n appearance: appearance,\n style: style,\n rootRef: root,\n ref: trigger,\n placement: placement,\n trigger: \"active\",\n triggerProps: triggerProps,\n speaker: renderCalendarOverlay,\n \"data-cleanable\": cleanable,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1061,\n columnNumber: 7\n }\n }, plaintext ? /*#__PURE__*/_react.default.createElement(_DateRangeInput.default, {\n value: value,\n format: formatStr,\n plaintext: plaintext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1079,\n columnNumber: 11\n }\n }) : /*#__PURE__*/_react.default.createElement(_InputGroup.default, (0, _extends2.default)({}, (0, _omit.default)(rest, [..._date.calendarOnlyProps, ..._Picker.triggerPropKeys]), {\n inside: true,\n className: prefix`input-group`,\n disabled: disabled,\n size: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1081,\n columnNumber: 11\n }\n }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {\n className: prefix`label`,\n id: `${id}-label`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1088,\n columnNumber: 13\n }\n }, label), /*#__PURE__*/_react.default.createElement(Input, (0, _extends2.default)({\n \"aria-haspopup\": \"dialog\",\n \"aria-invalid\": invalidValue,\n \"aria-labelledby\": label ? `${id}-label` : undefined\n }, ariaProps, {\n ref: target,\n id: id,\n value: customValue || value,\n character: character,\n format: formatStr,\n placeholder: placeholder ? placeholder : rangeFormatStr,\n disabled: disabled,\n readOnly: inputReadOnly,\n htmlSize: getInputHtmlSize(),\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1091,\n columnNumber: 13\n }\n })), /*#__PURE__*/_react.default.createElement(_Picker.PickerIndicator, {\n size: size,\n loading: loading,\n caretAs: caretAs,\n onClose: handleClean,\n showCleanButton: showCleanButton,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 1108,\n columnNumber: 13\n }\n })));\n}, StaticMethods);\nDateRangePicker.displayName = 'DateRangePicker';\nvar _default = exports[\"default\"] = DateRangePicker;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/DateRangePicker.tsx?");
2538
2538
 
2539
2539
  /***/ }),
2540
2540
 
@@ -3513,7 +3513,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3513
3513
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3514
3514
 
3515
3515
  "use strict";
3516
- 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 var _data$;\n setFocusItemValue(data === null || data === void 0 || (_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$[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 var _triggerRef$current, _target$current, _target$current$focus;\n triggerRef === null || triggerRef === void 0 || (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 || _triggerRef$current.close();\n\n // The focus is on the trigger button after closing\n (_target$current = target.current) === null || _target$current === void 0 || (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 || _target$current$focus.call(_target$current);\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 === null || value === void 0 ? void 0 : value[0] : value, focusItemValueOptions);\n const onSearchCallback = (0, _hooks.useEventCallback)((searchKeyword, filteredData, event) => {\n if (!disabledOptions) {\n var _filteredData$;\n // The first option after filtering is the focus.\n let firstItemValue = filteredData === null || filteredData === void 0 || (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[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 === null || onSearch === void 0 || 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 var _triggerRef$current2, _triggerRef$current2$;\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 || (_triggerRef$current2$ = _triggerRef$current2.updatePosition) === null || _triggerRef$current2$ === void 0 || _triggerRef$current2$.call(_triggerRef$current2);\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 !== null && activeItem !== void 0 && activeItem[labelKey]) {\n itemNode = activeItem === null || activeItem === void 0 ? void 0 : 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 === null || locale === void 0 ? void 0 : locale.newItem,\n ...option\n };\n }\n return option;\n };\n const handleChange = (0, _hooks.useEventCallback)((value, event) => {\n onChange === null || onChange === void 0 || 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 === null || onTagRemove === void 0 || onTagRemove(tag, event);\n });\n const handleSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n onSelect === null || onSelect === void 0 || onSelect(value, item, event);\n if (creatable && item.create) {\n delete item.create;\n onCreate === null || onCreate === void 0 || 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 !== null && disabledItemValues !== void 0 && 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 === null || item === void 0 ? void 0 : 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 !== null && disabledItemValues !== void 0 && 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 === null || event === void 0 ? void 0 : event.target;\n if ((target === null || target === void 0 ? void 0 : target.tagName) !== 'INPUT') {\n focus();\n return;\n }\n if ((target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT' && target !== null && target !== void 0 && 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 === null || onClean === void 0 || 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 === null || value === void 0 ? void 0 : value[0] : value);\n resetSearch();\n });\n const handleFocus = (0, _hooks.useEventCallback)(event => {\n if (!readOnly) {\n var _triggerRef$current3;\n setOpen(true);\n (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 || _triggerRef$current3.open();\n }\n onFocus === null || onFocus === void 0 || 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 === null || locale === void 0 ? void 0 : 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 === null || locale === void 0 ? void 0 : 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 === null || renderExtraFooter === void 0 ? void 0 : 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 !== null && tagElements !== void 0 && 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 !== null && tagElements !== void 0 && tagElements.length ? tagElements : null) || placeholder);\n }\n const placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : 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 name: 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?");
3516
+ 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 var _data$;\n setFocusItemValue(data === null || data === void 0 || (_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$[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 var _triggerRef$current, _target$current, _target$current$focus;\n triggerRef === null || triggerRef === void 0 || (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 || _triggerRef$current.close();\n\n // The focus is on the trigger button after closing\n (_target$current = target.current) === null || _target$current === void 0 || (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 || _target$current$focus.call(_target$current);\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 === null || value === void 0 ? void 0 : value[0] : value, focusItemValueOptions);\n const onSearchCallback = (0, _hooks.useEventCallback)((searchKeyword, filteredData, event) => {\n if (!disabledOptions) {\n var _filteredData$;\n // The first option after filtering is the focus.\n let firstItemValue = filteredData === null || filteredData === void 0 || (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[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 === null || onSearch === void 0 || 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 var _triggerRef$current2, _triggerRef$current2$;\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 || (_triggerRef$current2$ = _triggerRef$current2.updatePosition) === null || _triggerRef$current2$ === void 0 || _triggerRef$current2$.call(_triggerRef$current2);\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 !== null && activeItem !== void 0 && activeItem[labelKey]) {\n itemNode = activeItem === null || activeItem === void 0 ? void 0 : 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 === null || locale === void 0 ? void 0 : locale.newItem,\n ...option\n };\n }\n return option;\n };\n const handleChange = (0, _hooks.useEventCallback)((value, event) => {\n onChange === null || onChange === void 0 || 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 === null || onTagRemove === void 0 || onTagRemove(tag, event);\n });\n const handleSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n onSelect === null || onSelect === void 0 || onSelect(value, item, event);\n if (creatable && item.create) {\n delete item.create;\n onCreate === null || onCreate === void 0 || 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 !== null && disabledItemValues !== void 0 && 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 === null || item === void 0 ? void 0 : 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 !== null && disabledItemValues !== void 0 && 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 === null || event === void 0 ? void 0 : event.target;\n if ((target === null || target === void 0 ? void 0 : target.tagName) !== 'INPUT') {\n focus();\n return;\n }\n if ((target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT' && target !== null && target !== void 0 && 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 === null || onClean === void 0 || 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 === null || value === void 0 ? void 0 : value[0] : value);\n resetSearch();\n });\n const handleFocus = (0, _hooks.useEventCallback)(event => {\n if (!readOnly) {\n var _triggerRef$current3;\n setOpen(true);\n (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 || _triggerRef$current3.open();\n }\n onFocus === null || onFocus === void 0 || 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 === null || locale === void 0 ? void 0 : 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 === null || locale === void 0 ? void 0 : 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 === null || renderExtraFooter === void 0 ? void 0 : 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 !== null && tagElements !== void 0 && 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 !== null && tagElements !== void 0 && tagElements.length ? tagElements : null) || placeholder);\n }\n const placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : 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?");
3517
3517
 
3518
3518
  /***/ }),
3519
3519
 
@@ -4162,7 +4162,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
4162
4162
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4163
4163
 
4164
4164
  "use strict";
4165
- 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _TreeView = _interopRequireDefault(__webpack_require__(/*! ../MultiCascadeTree/TreeView */ \"./src/MultiCascadeTree/TreeView.tsx\"));\nvar _SearchView = _interopRequireDefault(__webpack_require__(/*! ../MultiCascadeTree/SearchView */ \"./src/MultiCascadeTree/SearchView.tsx\"));\nvar _useActive = _interopRequireDefault(__webpack_require__(/*! ../Cascader/useActive */ \"./src/Cascader/useActive.ts\"));\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 _utils2 = __webpack_require__(/*! ../CascadeTree/utils */ \"./src/CascadeTree/utils.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _hooks2 = __webpack_require__(/*! ../MultiCascadeTree/hooks */ \"./src/MultiCascadeTree/hooks/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/MultiCascader/MultiCascader.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); }\nconst emptyArray = [];\n\n/**\n * The `MultiCascader` component is used to select multiple values from cascading options.\n * @see https://rsuitejs.com/components/multi-cascader/\n */\nconst MultiCascader = (0, _utils3.forwardRef)((props, ref) => {\n var _selectedPaths;\n const {\n propsWithDefaults,\n rtl\n } = (0, _hooks.useCustom)('MultiCascader', props);\n const {\n as,\n appearance = 'default',\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n columnHeight,\n columnWidth,\n childrenKey = 'children',\n countable = true,\n cascade = true,\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n id,\n labelKey = 'label',\n locale,\n placeholder,\n placement = 'bottomStart',\n popupClassName,\n popupStyle,\n renderColumn,\n renderExtraFooter,\n renderTreeNode,\n renderValue,\n searchable = true,\n style,\n size,\n toggleAs,\n uncheckableItemValues = emptyArray,\n value: valueProp,\n valueKey = 'value',\n getChildren,\n onClean,\n onChange,\n onCheck,\n onEnter,\n onExit,\n onSearch,\n onSelect,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const onSelectCallback = (0, _react.useCallback)((node, cascadePaths, event) => {\n var _trigger$current, _trigger$current$upda;\n onSelect === null || onSelect === void 0 || onSelect(node, cascadePaths, event);\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 || _trigger$current$upda.call(_trigger$current);\n }, [onSelect, trigger]);\n const {\n selectedPaths,\n flattenData,\n columnData,\n setColumnData,\n setSelectedPaths,\n handleSelect\n } = (0, _hooks2.useSelect)({\n data,\n childrenKey,\n labelKey,\n valueKey,\n onSelect: onSelectCallback,\n getChildren\n });\n const [controlledValue] = (0, _hooks.useControlled)(valueProp, defaultValue);\n const itemKeys = {\n childrenKey,\n labelKey,\n valueKey\n };\n const cascadeValueProps = {\n ...itemKeys,\n uncheckableItemValues,\n cascade,\n value: controlledValue,\n onCheck,\n onChange\n };\n const {\n value,\n setValue,\n handleCheck\n } = (0, _hooks2.useCascadeValue)(cascadeValueProps, flattenData);\n const selectedItems = flattenData.filter(item => value.some(v => v === item[valueKey])) || [];\n const onFocusItemCallback = (0, _react.useCallback)(value => {\n const {\n columns,\n path\n } = (0, _utils2.getColumnsAndPaths)(data, flattenData.find(item => item[valueKey] === value), {\n getParent: () => undefined,\n getChildren: item => item[childrenKey]\n });\n setColumnData(columns);\n setSelectedPaths(path);\n }, [childrenKey, data, flattenData, setColumnData, setSelectedPaths, valueKey]);\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setLayer,\n setKeys,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(selectedPaths === null || selectedPaths === void 0 || (_selectedPaths = selectedPaths[selectedPaths.length - 1]) === null || _selectedPaths === void 0 ? void 0 : _selectedPaths[valueKey], {\n rtl,\n data: flattenData,\n valueKey,\n defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,\n target: () => overlay.current,\n callback: onFocusItemCallback\n });\n const onSearchCallback = (value, event) => {\n if (value) {\n setLayer(0);\n } else if (selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length) {\n setLayer(selectedPaths.length - 1);\n }\n setKeys([]);\n onSearch === null || onSearch === void 0 || onSearch(value, event);\n };\n const {\n items,\n searchKeyword,\n setSearchKeyword,\n handleSearch\n } = (0, _hooks2.useSearch)({\n labelKey,\n valueKey,\n childrenKey,\n flattenedData: flattenData,\n uncheckableItemValues,\n onSearch: onSearchCallback\n });\n const {\n active,\n events\n } = (0, _useActive.default)({\n onEnter,\n onExit,\n target,\n setSearchKeyword\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled || !target.current) {\n return;\n }\n setSelectedPaths([]);\n setValue([]);\n setColumnData([data]);\n onChange === null || onChange === void 0 || onChange([], event);\n });\n const handleMenuPressEnter = (0, _hooks.useEventCallback)(event => {\n var _overlay$current;\n const focusItem = (0, _utils.findNodeOfTree)(data, item => item[valueKey] === focusItemValue);\n const checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector(`[data-key=\"${focusItemValue}\"] [type=\"checkbox\"]`);\n if (checkbox) {\n handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');\n }\n });\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n ...rest\n });\n const renderCascadeColumn = (childNodes, column) => {\n if (typeof renderColumn === 'function') {\n return renderColumn(childNodes, column);\n }\n return childNodes;\n };\n const renderCascadeTreeNode = (node, itemData) => {\n if (typeof renderTreeNode === 'function') {\n return renderTreeNode(node, itemData);\n }\n return node;\n };\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps || {};\n const classes = merge(className, popupClassName, prefix('popup-multi-cascader'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n className: classes,\n style: popupStyle,\n target: trigger,\n onKeyDown: onPickerKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {\n locale: locale,\n cascade: cascade,\n data: items,\n value: value,\n searchKeyword: searchKeyword,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n disabledItemValues: disabledItemValues,\n inputRef: searchInput,\n onCheck: handleCheck,\n onSearch: handleSearch,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 13\n }\n }), !searchKeyword && /*#__PURE__*/_react.default.createElement(_TreeView.default, {\n cascade: cascade,\n columnWidth: columnWidth,\n columnHeight: columnHeight,\n classPrefix: \"cascade-tree\",\n uncheckableItemValues: uncheckableItemValues,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n cascadeData: columnData,\n cascadePaths: selectedPaths,\n value: value,\n onSelect: handleSelect,\n onCheck: handleCheck,\n renderColumn: renderCascadeColumn,\n renderTreeNode: renderCascadeTreeNode,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 304,\n columnNumber: 13\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n let selectedElement = placeholder;\n if (selectedItems.length > 0) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedItems,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n prefix: prefix,\n cascade: cascade,\n locale: locale,\n badgeSize: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 9\n }\n });\n }\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 */\n let hasValue = selectedItems.length > 0 || Number(valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && (0, _isFunction.default)(renderValue);\n if (hasValue && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value.length ? value : valueProp !== null && valueProp !== void 0 ? valueProp : [], selectedItems, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...events\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n name: \"multi-cascader\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n multiple: true,\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 372,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n countable: countable,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value,\n size: size\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 390,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nMultiCascader.displayName = 'MultiCascader';\nvar _default = exports[\"default\"] = MultiCascader;\n\n//# sourceURL=webpack://rsuite/./src/MultiCascader/MultiCascader.tsx?");
4165
+ 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _TreeView = _interopRequireDefault(__webpack_require__(/*! ../MultiCascadeTree/TreeView */ \"./src/MultiCascadeTree/TreeView.tsx\"));\nvar _SearchView = _interopRequireDefault(__webpack_require__(/*! ../MultiCascadeTree/SearchView */ \"./src/MultiCascadeTree/SearchView.tsx\"));\nvar _useActive = _interopRequireDefault(__webpack_require__(/*! ../Cascader/useActive */ \"./src/Cascader/useActive.ts\"));\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 _utils2 = __webpack_require__(/*! ../CascadeTree/utils */ \"./src/CascadeTree/utils.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _hooks2 = __webpack_require__(/*! ../MultiCascadeTree/hooks */ \"./src/MultiCascadeTree/hooks/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/MultiCascader/MultiCascader.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); }\nconst emptyArray = [];\n\n/**\n * The `MultiCascader` component is used to select multiple values from cascading options.\n * @see https://rsuitejs.com/components/multi-cascader/\n */\nconst MultiCascader = (0, _utils3.forwardRef)((props, ref) => {\n var _selectedPaths;\n const {\n propsWithDefaults,\n rtl\n } = (0, _hooks.useCustom)('MultiCascader', props);\n const {\n as,\n appearance = 'default',\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n columnHeight,\n columnWidth,\n childrenKey = 'children',\n countable = true,\n cascade = true,\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n id,\n labelKey = 'label',\n locale,\n placeholder,\n placement = 'bottomStart',\n popupClassName,\n popupStyle,\n renderColumn,\n renderExtraFooter,\n renderTreeNode,\n renderValue,\n searchable = true,\n style,\n size,\n toggleAs,\n uncheckableItemValues = emptyArray,\n value: valueProp,\n valueKey = 'value',\n getChildren,\n onClean,\n onChange,\n onCheck,\n onEnter,\n onExit,\n onSearch,\n onSelect,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const onSelectCallback = (0, _react.useCallback)((node, cascadePaths, event) => {\n var _trigger$current, _trigger$current$upda;\n onSelect === null || onSelect === void 0 || onSelect(node, cascadePaths, event);\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 || _trigger$current$upda.call(_trigger$current);\n }, [onSelect, trigger]);\n const {\n selectedPaths,\n flattenData,\n columnData,\n setColumnData,\n setSelectedPaths,\n handleSelect\n } = (0, _hooks2.useSelect)({\n data,\n childrenKey,\n labelKey,\n valueKey,\n onSelect: onSelectCallback,\n getChildren\n });\n const [controlledValue] = (0, _hooks.useControlled)(valueProp, defaultValue);\n const itemKeys = {\n childrenKey,\n labelKey,\n valueKey\n };\n const cascadeValueProps = {\n ...itemKeys,\n uncheckableItemValues,\n cascade,\n value: controlledValue,\n onCheck,\n onChange\n };\n const {\n value,\n setValue,\n handleCheck\n } = (0, _hooks2.useCascadeValue)(cascadeValueProps, flattenData);\n const selectedItems = flattenData.filter(item => value.some(v => v === item[valueKey])) || [];\n const onFocusItemCallback = (0, _react.useCallback)(value => {\n const {\n columns,\n path\n } = (0, _utils2.getColumnsAndPaths)(data, flattenData.find(item => item[valueKey] === value), {\n getParent: () => undefined,\n getChildren: item => item[childrenKey]\n });\n setColumnData(columns);\n setSelectedPaths(path);\n }, [childrenKey, data, flattenData, setColumnData, setSelectedPaths, valueKey]);\n\n // Used to hover the focuse item when trigger `onKeydown`\n const {\n focusItemValue,\n setLayer,\n setKeys,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(selectedPaths === null || selectedPaths === void 0 || (_selectedPaths = selectedPaths[selectedPaths.length - 1]) === null || _selectedPaths === void 0 ? void 0 : _selectedPaths[valueKey], {\n rtl,\n data: flattenData,\n valueKey,\n defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,\n target: () => overlay.current,\n callback: onFocusItemCallback\n });\n const onSearchCallback = (value, event) => {\n if (value) {\n setLayer(0);\n } else if (selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length) {\n setLayer(selectedPaths.length - 1);\n }\n setKeys([]);\n onSearch === null || onSearch === void 0 || onSearch(value, event);\n };\n const {\n items,\n searchKeyword,\n setSearchKeyword,\n handleSearch\n } = (0, _hooks2.useSearch)({\n labelKey,\n valueKey,\n childrenKey,\n flattenedData: flattenData,\n uncheckableItemValues,\n onSearch: onSearchCallback\n });\n const {\n active,\n events\n } = (0, _useActive.default)({\n onEnter,\n onExit,\n target,\n setSearchKeyword\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled || !target.current) {\n return;\n }\n setSelectedPaths([]);\n setValue([]);\n setColumnData([data]);\n onChange === null || onChange === void 0 || onChange([], event);\n });\n const handleMenuPressEnter = (0, _hooks.useEventCallback)(event => {\n var _overlay$current;\n const focusItem = (0, _utils.findNodeOfTree)(data, item => item[valueKey] === focusItemValue);\n const checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector(`[data-key=\"${focusItemValue}\"] [type=\"checkbox\"]`);\n if (checkbox) {\n handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');\n }\n });\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n ...rest\n });\n const renderCascadeColumn = (childNodes, column) => {\n if (typeof renderColumn === 'function') {\n return renderColumn(childNodes, column);\n }\n return childNodes;\n };\n const renderCascadeTreeNode = (node, itemData) => {\n if (typeof renderTreeNode === 'function') {\n return renderTreeNode(node, itemData);\n }\n return node;\n };\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps || {};\n const classes = merge(className, popupClassName, prefix('popup-multi-cascader'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils3.mergeRefs)(overlay, speakerRef),\n className: classes,\n style: popupStyle,\n target: trigger,\n onKeyDown: onPickerKeyDown,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {\n locale: locale,\n cascade: cascade,\n data: items,\n value: value,\n searchKeyword: searchKeyword,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n disabledItemValues: disabledItemValues,\n inputRef: searchInput,\n onCheck: handleCheck,\n onSearch: handleSearch,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 13\n }\n }), !searchKeyword && /*#__PURE__*/_react.default.createElement(_TreeView.default, {\n cascade: cascade,\n columnWidth: columnWidth,\n columnHeight: columnHeight,\n classPrefix: \"cascade-tree\",\n uncheckableItemValues: uncheckableItemValues,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n cascadeData: columnData,\n cascadePaths: selectedPaths,\n value: value,\n onSelect: handleSelect,\n onCheck: handleCheck,\n renderColumn: renderCascadeColumn,\n renderTreeNode: renderCascadeTreeNode,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 304,\n columnNumber: 13\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n let selectedElement = placeholder;\n if (selectedItems.length > 0) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedItems,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n prefix: prefix,\n cascade: cascade,\n locale: locale,\n badgeSize: size,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 9\n }\n });\n }\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 */\n let hasValue = selectedItems.length > 0 || Number(valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && (0, _isFunction.default)(renderValue);\n if (hasValue && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value.length ? value : valueProp !== null && valueProp !== void 0 ? valueProp : [], selectedItems, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...events\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n pickerType: \"multi-cascader\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n multiple: true,\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 372,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n countable: countable,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value,\n size: size\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 390,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nMultiCascader.displayName = 'MultiCascader';\nvar _default = exports[\"default\"] = MultiCascader;\n\n//# sourceURL=webpack://rsuite/./src/MultiCascader/MultiCascader.tsx?");
4166
4166
 
4167
4167
  /***/ }),
4168
4168
 
@@ -4624,7 +4624,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
4624
4624
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4625
4625
 
4626
4626
  "use strict";
4627
- 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 _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\nvar _Heading = _interopRequireDefault(__webpack_require__(/*! ../Heading */ \"./src/Heading/index.tsx\"));\nvar _AccordionButton = _interopRequireDefault(__webpack_require__(/*! ./AccordionButton */ \"./src/Panel/AccordionButton.tsx\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../internals/Box */ \"./src/internals/Box/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Panel/PanelHeader.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); }\nconst PanelHeader = props => {\n const {\n as = _Heading.default,\n classPrefix = 'panel',\n className,\n children,\n collapsible,\n caretAs,\n disabled,\n expanded,\n role,\n bodyId,\n buttonId,\n onClickButton,\n ...rest\n } = props;\n const {\n merge,\n prefix\n } = (0, _hooks.useStyles)(classPrefix);\n let headerElement;\n if (! /*#__PURE__*/(0, _react.isValidElement)(children) || Array.isArray(children)) {\n headerElement = /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('title'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 21\n }\n }, children);\n } else {\n const className = merge(prefix('title'), (0, _get.default)(children, 'props.className'));\n headerElement = /*#__PURE__*/(0, _react.cloneElement)(children, {\n className\n });\n }\n return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({\n as: as,\n level: 2,\n className: merge(className, prefix('header'))\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 5\n }\n }), collapsible ? /*#__PURE__*/_react.default.createElement(_AccordionButton.default, {\n id: buttonId,\n role: role,\n caretAs: caretAs,\n controlId: bodyId,\n disabled: disabled,\n expanded: expanded,\n onClick: onClickButton,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 9\n }\n }, headerElement) : headerElement);\n};\nvar _default = exports[\"default\"] = PanelHeader;\n\n//# sourceURL=webpack://rsuite/./src/Panel/PanelHeader.tsx?");
4627
+ 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 _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\nvar _AccordionButton = _interopRequireDefault(__webpack_require__(/*! ./AccordionButton */ \"./src/Panel/AccordionButton.tsx\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../internals/Box */ \"./src/internals/Box/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Panel/PanelHeader.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); }\nconst PanelHeader = props => {\n const {\n as = 'div',\n classPrefix = 'panel',\n className,\n children,\n collapsible,\n caretAs,\n disabled,\n expanded,\n role,\n bodyId,\n buttonId,\n onClickButton,\n ...rest\n } = props;\n const {\n merge,\n prefix\n } = (0, _hooks.useStyles)(classPrefix);\n let headerElement;\n if (! /*#__PURE__*/(0, _react.isValidElement)(children) || Array.isArray(children) || (0, _utils.isFragment)(children)) {\n headerElement = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('title'),\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 21\n }\n }, children);\n } else {\n const className = merge(prefix('title'), (0, _get.default)(children, 'props.className'));\n headerElement = /*#__PURE__*/(0, _react.cloneElement)(children, {\n className\n });\n }\n return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({\n as: as,\n className: merge(className, prefix('header'))\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 5\n }\n }), collapsible ? /*#__PURE__*/_react.default.createElement(_AccordionButton.default, {\n id: buttonId,\n role: role,\n caretAs: caretAs,\n controlId: bodyId,\n disabled: disabled,\n expanded: expanded,\n onClick: onClickButton,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 9\n }\n }, headerElement) : headerElement);\n};\nvar _default = exports[\"default\"] = PanelHeader;\n\n//# sourceURL=webpack://rsuite/./src/Panel/PanelHeader.tsx?");
4628
4628
 
4629
4629
  /***/ }),
4630
4630
 
@@ -5196,7 +5196,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
5196
5196
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5197
5197
 
5198
5198
  "use strict";
5199
- 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\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 _SearchBox = _interopRequireDefault(__webpack_require__(/*! ../internals/SearchBox */ \"./src/internals/SearchBox/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/SelectPicker/SelectPicker.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); }\nconst emptyArray = [];\n/**\n * The `SelectPicker` component is used to select an item from a list of data.\n * @see https://rsuitejs.com/components/select-picker/\n */\nconst SelectPicker = (0, _utils.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('SelectPicker', props);\n const {\n appearance = 'default',\n as,\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n groupBy,\n id,\n labelKey = 'label',\n listProps,\n listboxMaxHeight = 320,\n locale,\n placeholder,\n placement = 'bottomStart',\n popupAutoWidth = true,\n popupClassName,\n popupStyle,\n searchable = true,\n style,\n toggleAs,\n value: valueProp,\n valueKey = 'value',\n virtualized,\n sort,\n searchBy,\n renderValue,\n renderListbox,\n renderOptionGroup,\n renderOption,\n renderExtraFooter,\n onGroupTitleClick,\n onEnter,\n onExit,\n onClean,\n onChange,\n onSelect,\n onSearch,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue);\n\n // Used to hover the focus item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(value, {\n data,\n valueKey,\n target: () => overlay.current\n });\n\n // Use search keywords to filter options.\n const {\n searchKeyword,\n filteredData,\n resetSearch,\n handleSearch\n } = (0, _Picker.useSearch)(data, {\n labelKey,\n searchBy,\n callback: (searchKeyword, filteredData, event) => {\n var _filteredData$;\n // The first option after filtering is the focus.\n setFocusItemValue(filteredData === null || filteredData === void 0 || (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);\n onSearch === null || onSearch === void 0 || onSearch(searchKeyword, event);\n }\n });\n\n // Use component active state to support keyboard events.\n const [active, setActive] = (0, _react.useState)(false);\n const handleClose = (0, _hooks.useEventCallback)(() => {\n var _trigger$current, _trigger$current$clos;\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const handleSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n var _target$current;\n onSelect === null || onSelect === void 0 || onSelect(value, item, event);\n (_target$current = target.current) === null || _target$current === void 0 || _target$current.focus();\n });\n const handleChangeValue = (0, _hooks.useEventCallback)((value, event) => {\n onChange === null || onChange === void 0 || onChange(value, event);\n });\n const handleMenuPressEnter = (0, _hooks.useEventCallback)(event => {\n if (!focusItemValue) {\n return;\n }\n\n // Find active `MenuItem` by `value`\n const focusItem = data.find(item => (0, _utils.shallowEqual)(item[valueKey], focusItemValue));\n setValue(focusItemValue);\n handleSelect(focusItemValue, focusItem, event);\n handleChangeValue(focusItemValue, event);\n handleClose();\n });\n const handleItemSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n setValue(value);\n setFocusItemValue(value);\n handleSelect(value, item, event);\n handleChangeValue(value, event);\n handleClose();\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled || !cleanable) {\n return;\n }\n setValue(null);\n setFocusItemValue(value);\n handleChangeValue(null, event);\n });\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n ...rest\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n resetSearch();\n setActive(false);\n onSearch === null || onSearch === void 0 || onSearch('');\n setFocusItemValue(null);\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n setActive(true);\n setFocusItemValue(value);\n });\n\n // Find active `MenuItem` by `value`\n const activeItem = data.find(item => (0, _utils.shallowEqual)(item[valueKey], value));\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 */\n let hasValue = !!activeItem || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n let selectedElement = placeholder;\n if (activeItem !== null && activeItem !== void 0 && activeItem[labelKey]) {\n selectedElement = activeItem[labelKey];\n }\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, activeItem, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const renderPopup = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('select-menu'));\n let items = filteredData;\n\n // Create a tree structure data when set `groupBy`\n if (groupBy) {\n items = (0, _utils.getDataGroupBy)(items, groupBy, sort);\n } else if (typeof sort === 'function') {\n items = items.sort(sort(false));\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 renderOptionGroup: renderOptionGroup,\n renderOption: renderOption,\n maxHeight: listboxMaxHeight,\n classPrefix: 'picker-select-menu',\n listItemClassPrefix: 'picker-select-menu-item',\n listItemAs: _Picker.ListItem,\n activeItemValues: [value],\n focusItemValue: focusItemValue,\n data: items,\n query: searchKeyword,\n groupBy: groupBy,\n onSelect: handleItemSelect,\n onGroupTitleClick: onGroupTitleClick,\n virtualized: virtualized,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix`none`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n onKeyDown: onPickerKeyDown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchBox.default, {\n placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeyword,\n inputRef: searchInput,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 13\n }\n }), renderListbox ? renderListbox(listbox) : listbox, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),\n onExit: (0, _utils.createChainedFunction)(handleExit, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n name: \"select\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderPopup,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n as: toggleAs,\n disabled: disabled,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n inputValue: value !== null && value !== void 0 ? value : '',\n focusItemValue: focusItemValue,\n active: active,\n placement: placement\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nSelectPicker.displayName = 'SelectPicker';\nvar _default = exports[\"default\"] = SelectPicker;\n\n//# sourceURL=webpack://rsuite/./src/SelectPicker/SelectPicker.tsx?");
5199
+ 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\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 _SearchBox = _interopRequireDefault(__webpack_require__(/*! ../internals/SearchBox */ \"./src/internals/SearchBox/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/SelectPicker/SelectPicker.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); }\nconst emptyArray = [];\n/**\n * The `SelectPicker` component is used to select an item from a list of data.\n * @see https://rsuitejs.com/components/select-picker/\n */\nconst SelectPicker = (0, _utils.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('SelectPicker', props);\n const {\n appearance = 'default',\n as,\n block,\n className,\n cleanable = true,\n classPrefix = 'picker',\n data = emptyArray,\n defaultValue,\n disabled,\n disabledItemValues = emptyArray,\n groupBy,\n id,\n labelKey = 'label',\n listProps,\n listboxMaxHeight = 320,\n locale,\n placeholder,\n placement = 'bottomStart',\n popupAutoWidth = true,\n popupClassName,\n popupStyle,\n searchable = true,\n style,\n toggleAs,\n value: valueProp,\n valueKey = 'value',\n virtualized,\n sort,\n searchBy,\n renderValue,\n renderListbox,\n renderOptionGroup,\n renderOption,\n renderExtraFooter,\n onGroupTitleClick,\n onEnter,\n onExit,\n onClean,\n onChange,\n onSelect,\n onSearch,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks.useControlled)(valueProp, defaultValue);\n\n // Used to hover the focus item when trigger `onKeydown`\n const {\n focusItemValue,\n setFocusItemValue,\n onKeyDown: onFocusItem\n } = (0, _Picker.useFocusItemValue)(value, {\n data,\n valueKey,\n target: () => overlay.current\n });\n\n // Use search keywords to filter options.\n const {\n searchKeyword,\n filteredData,\n resetSearch,\n handleSearch\n } = (0, _Picker.useSearch)(data, {\n labelKey,\n searchBy,\n callback: (searchKeyword, filteredData, event) => {\n var _filteredData$;\n // The first option after filtering is the focus.\n setFocusItemValue(filteredData === null || filteredData === void 0 || (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);\n onSearch === null || onSearch === void 0 || onSearch(searchKeyword, event);\n }\n });\n\n // Use component active state to support keyboard events.\n const [active, setActive] = (0, _react.useState)(false);\n const handleClose = (0, _hooks.useEventCallback)(() => {\n var _trigger$current, _trigger$current$clos;\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const handleSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n var _target$current;\n onSelect === null || onSelect === void 0 || onSelect(value, item, event);\n (_target$current = target.current) === null || _target$current === void 0 || _target$current.focus();\n });\n const handleChangeValue = (0, _hooks.useEventCallback)((value, event) => {\n onChange === null || onChange === void 0 || onChange(value, event);\n });\n const handleMenuPressEnter = (0, _hooks.useEventCallback)(event => {\n if (!focusItemValue) {\n return;\n }\n\n // Find active `MenuItem` by `value`\n const focusItem = data.find(item => (0, _utils.shallowEqual)(item[valueKey], focusItemValue));\n setValue(focusItemValue);\n handleSelect(focusItemValue, focusItem, event);\n handleChangeValue(focusItemValue, event);\n handleClose();\n });\n const handleItemSelect = (0, _hooks.useEventCallback)((value, item, event) => {\n setValue(value);\n setFocusItemValue(value);\n handleSelect(value, item, event);\n handleChangeValue(value, event);\n handleClose();\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n if (disabled || !cleanable) {\n return;\n }\n setValue(null);\n setFocusItemValue(value);\n handleChangeValue(null, event);\n });\n const onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n ...rest\n });\n const handleExit = (0, _hooks.useEventCallback)(() => {\n resetSearch();\n setActive(false);\n onSearch === null || onSearch === void 0 || onSearch('');\n setFocusItemValue(null);\n });\n const handleEnter = (0, _hooks.useEventCallback)(() => {\n setActive(true);\n setFocusItemValue(value);\n });\n\n // Find active `MenuItem` by `value`\n const activeItem = data.find(item => (0, _utils.shallowEqual)(item[valueKey], value));\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 */\n let hasValue = !!activeItem || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n let selectedElement = placeholder;\n if (activeItem !== null && activeItem !== void 0 && activeItem[labelKey]) {\n selectedElement = activeItem[labelKey];\n }\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, activeItem, selectedElement);\n // If renderValue returns null or undefined, hasValue is false.\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n const renderPopup = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('select-menu'));\n let items = filteredData;\n\n // Create a tree structure data when set `groupBy`\n if (groupBy) {\n items = (0, _utils.getDataGroupBy)(items, groupBy, sort);\n } else if (typeof sort === 'function') {\n items = items.sort(sort(false));\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 renderOptionGroup: renderOptionGroup,\n renderOption: renderOption,\n maxHeight: listboxMaxHeight,\n classPrefix: 'picker-select-menu',\n listItemClassPrefix: 'picker-select-menu-item',\n listItemAs: _Picker.ListItem,\n activeItemValues: [value],\n focusItemValue: focusItemValue,\n data: items,\n query: searchKeyword,\n groupBy: groupBy,\n onSelect: handleItemSelect,\n onGroupTitleClick: onGroupTitleClick,\n virtualized: virtualized,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix`none`,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n ref: (0, _utils.mergeRefs)(overlay, speakerRef),\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n onKeyDown: onPickerKeyDown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_SearchBox.default, {\n placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeyword,\n inputRef: searchInput,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 13\n }\n }), renderListbox ? renderListbox(listbox) : listbox, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n const triggerProps = {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),\n onExit: (0, _utils.createChainedFunction)(handleExit, onExit)\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n pickerType: \"select\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n triggerProps: triggerProps,\n ref: trigger,\n placement: placement,\n speaker: renderPopup,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n as: toggleAs,\n disabled: disabled,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n inputValue: value !== null && value !== void 0 ? value : '',\n focusItemValue: focusItemValue,\n active: active,\n placement: placement\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nSelectPicker.displayName = 'SelectPicker';\nvar _default = exports[\"default\"] = SelectPicker;\n\n//# sourceURL=webpack://rsuite/./src/SelectPicker/SelectPicker.tsx?");
5200
5200
 
5201
5201
  /***/ }),
5202
5202
 
@@ -6362,7 +6362,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
6362
6362
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6363
6363
 
6364
6364
  "use strict";
6365
- 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\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 _useTreeWithChildren = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useTreeWithChildren */ \"./src/Tree/hooks/useTreeWithChildren.ts\"));\nvar _useFlattenTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useFlattenTree */ \"./src/Tree/hooks/useFlattenTree.ts\"));\nvar _useFocusState = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFocusState */ \"./src/TreePicker/hooks/useFocusState.ts\"));\nvar _useExpandTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useExpandTree */ \"./src/Tree/hooks/useExpandTree.ts\"));\nvar _TreeView = _interopRequireDefault(__webpack_require__(/*! ../Tree/TreeView */ \"./src/Tree/TreeView.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../Tree/utils */ \"./src/Tree/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/Tree/utils */ \"./src/internals/Tree/utils/index.ts\");\nvar _TreeProvider = __webpack_require__(/*! ../internals/Tree/TreeProvider */ \"./src/internals/Tree/TreeProvider.tsx\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/TreePicker/TreePicker.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 * The `TreePicker` component is used for selecting single options which are organized in a tree structure.\n *\n * @see https://rsuitejs.com/components/tree-picker/\n */\nconst TreePicker = (0, _utils.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('TreePicker', props);\n const {\n as,\n appearance = 'default',\n classPrefix = 'picker',\n cleanable = true,\n childrenKey = 'children',\n data = [],\n disabled,\n defaultValue,\n defaultExpandAll = false,\n disabledItemValues = [],\n defaultExpandItemValues = [],\n expandItemValues: controlledExpandItemValues,\n id,\n block,\n className,\n locale,\n labelKey = 'label',\n onlyLeafSelectable,\n placeholder,\n placement = 'bottomStart',\n style,\n searchKeyword,\n searchable = true,\n showIndentLine,\n popupClassName,\n popupStyle,\n popupAutoWidth = true,\n treeHeight = 320,\n valueKey = 'value',\n virtualized = false,\n value: controlledValue,\n listProps,\n toggleAs,\n searchBy,\n getChildren,\n onClean,\n onSearch,\n onSelect,\n onSelectItem,\n onChange,\n onExpand,\n onEnter,\n onExit,\n onEntered,\n renderValue,\n renderTree,\n renderTreeIcon,\n renderTreeNode,\n renderExtraFooter,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput,\n treeView\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks.useControlled)(controlledValue, defaultValue);\n const itemDataKeys = {\n childrenKey,\n labelKey,\n valueKey\n };\n const {\n treeData,\n loadingNodeValues,\n appendChild\n } = (0, _useTreeWithChildren.default)(data, itemDataKeys);\n const flattenedNodes = (0, _useFlattenTree.default)(treeData, {\n ...itemDataKeys\n });\n const {\n expandItemValues,\n handleExpandTreeNode\n } = (0, _useExpandTree.default)(data, {\n ...itemDataKeys,\n defaultExpandAll,\n defaultExpandItemValues,\n controlledExpandItemValues,\n onExpand,\n getChildren,\n appendChild\n });\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const activeNode = (0, _utils2.getTreeActiveNode)(flattenedNodes, value, valueKey);\n const {\n register,\n focusFirstNode,\n focusActiveNode\n } = (0, _TreeProvider.useTreeImperativeHandle)();\n const {\n active,\n focusItemValue,\n setFocusItemValue,\n triggerProps\n } = (0, _useFocusState.default)({\n focusActiveNode,\n target,\n value,\n onEnter,\n onExit,\n onEntered\n });\n const handleSelect = (0, _hooks.useEventCallback)((treeNode, value, event) => {\n var _target$current, _trigger$current, _trigger$current$clos;\n onSelect === null || onSelect === void 0 || onSelect(treeNode, value, event);\n\n // Only leaf nodes can update the value and close the picker.\n if (onlyLeafSelectable && !(0, _utils3.isLeafNode)(treeNode)) {\n return;\n }\n setFocusItemValue(value);\n handleChange(value, event);\n (_target$current = target.current) === null || _target$current === void 0 || _target$current.focus();\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n const target = event.target;\n // exclude searchbox\n if (target.matches('input[role=\"searchbox\"]') || disabled || !cleanable) {\n return;\n }\n setValue(null);\n onChange === null || onChange === void 0 || onChange(null, event);\n });\n const handleTreePressEnter = (0, _hooks.useEventCallback)(event => {\n if ((0, _isNil.default)(focusItemValue)) {\n return;\n }\n const activeItem = (0, _utils2.getActiveItem)(focusItemValue, flattenedNodes, valueKey);\n handleSelect(activeItem, focusItemValue, event);\n });\n const handleTreeKeyDown = (0, _hooks.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n del: handleClean,\n down: () => focusFirstNode(),\n enter: handleTreePressEnter\n });\n });\n const onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !activeNode || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: handleTreeKeyDown,\n ...rest\n });\n const handleChange = (0, _hooks.useEventCallback)((nextValue, event) => {\n setValue(nextValue);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n });\n const treeContext = (0, _react.useMemo)(() => ({\n register,\n props: {\n labelKey,\n valueKey,\n childrenKey,\n virtualized,\n renderTreeIcon,\n renderTreeNode\n }\n }), [childrenKey, labelKey, valueKey, virtualized, register, renderTreeIcon, renderTreeNode]);\n const tree = /*#__PURE__*/_react.default.createElement(_TreeProvider.TreeProvider, {\n value: treeContext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_TreeView.default, {\n ref: treeView,\n value: value,\n data: treeData,\n disabledItemValues: disabledItemValues,\n expandItemValues: expandItemValues,\n showIndentLine: showIndentLine,\n searchable: searchable,\n searchKeyword: searchKeyword,\n searchBy: searchBy,\n searchInputRef: searchInput,\n loadingNodeValues: loadingNodeValues,\n flattenedNodes: flattenedNodes,\n listProps: listProps,\n listRef: list,\n locale: locale,\n height: treeHeight,\n onExpand: handleExpandTreeNode,\n onSearch: onSearch,\n onSelect: handleSelect,\n onSelectItem: onSelectItem,\n onFocusItem: setFocusItemValue,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 7\n }\n }));\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('tree-menu'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n ref: (0, _utils.mergeRefs)(overlay, speakerRef),\n onKeyDown: onPickerKeydown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 7\n }\n }, renderTree ? renderTree(tree) : tree, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\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 */\n let hasValidValue = !(0, _isNil.default)(activeNode) || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n let selectedElement = placeholder;\n if (hasValidValue) {\n const node = activeNode !== null && activeNode !== void 0 ? activeNode : {};\n selectedElement = node[labelKey];\n if ((0, _isFunction.default)(renderValue) && value) {\n selectedElement = renderValue(value, node, selectedElement);\n if ((0, _isNil.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n name: \"tree\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n triggerProps: {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...triggerProps\n },\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n onKeyDown: onPickerKeydown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n as: toggleAs,\n disabled: disabled,\n hasValue: hasValidValue,\n active: active,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 314,\n columnNumber: 7\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nTreePicker.displayName = 'TreePicker';\nvar _default = exports[\"default\"] = TreePicker;\n\n//# sourceURL=webpack://rsuite/./src/TreePicker/TreePicker.tsx?");
6365
+ 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\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 _useTreeWithChildren = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useTreeWithChildren */ \"./src/Tree/hooks/useTreeWithChildren.ts\"));\nvar _useFlattenTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useFlattenTree */ \"./src/Tree/hooks/useFlattenTree.ts\"));\nvar _useFocusState = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFocusState */ \"./src/TreePicker/hooks/useFocusState.ts\"));\nvar _useExpandTree = _interopRequireDefault(__webpack_require__(/*! ../Tree/hooks/useExpandTree */ \"./src/Tree/hooks/useExpandTree.ts\"));\nvar _TreeView = _interopRequireDefault(__webpack_require__(/*! ../Tree/TreeView */ \"./src/Tree/TreeView.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../Tree/utils */ \"./src/Tree/utils/index.ts\");\nvar _Picker = __webpack_require__(/*! ../internals/Picker */ \"./src/internals/Picker/index.ts\");\nvar _utils3 = __webpack_require__(/*! ../internals/Tree/utils */ \"./src/internals/Tree/utils/index.ts\");\nvar _TreeProvider = __webpack_require__(/*! ../internals/Tree/TreeProvider */ \"./src/internals/Tree/TreeProvider.tsx\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/TreePicker/TreePicker.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 * The `TreePicker` component is used for selecting single options which are organized in a tree structure.\n *\n * @see https://rsuitejs.com/components/tree-picker/\n */\nconst TreePicker = (0, _utils.forwardRef)((props, ref) => {\n const {\n propsWithDefaults\n } = (0, _hooks.useCustom)('TreePicker', props);\n const {\n as,\n appearance = 'default',\n classPrefix = 'picker',\n cleanable = true,\n childrenKey = 'children',\n data = [],\n disabled,\n defaultValue,\n defaultExpandAll = false,\n disabledItemValues = [],\n defaultExpandItemValues = [],\n expandItemValues: controlledExpandItemValues,\n id,\n block,\n className,\n locale,\n labelKey = 'label',\n onlyLeafSelectable,\n placeholder,\n placement = 'bottomStart',\n style,\n searchKeyword,\n searchable = true,\n showIndentLine,\n popupClassName,\n popupStyle,\n popupAutoWidth = true,\n treeHeight = 320,\n valueKey = 'value',\n virtualized = false,\n value: controlledValue,\n listProps,\n toggleAs,\n searchBy,\n getChildren,\n onClean,\n onSearch,\n onSelect,\n onSelectItem,\n onChange,\n onExpand,\n onEnter,\n onExit,\n onEntered,\n renderValue,\n renderTree,\n renderTreeIcon,\n renderTreeNode,\n renderExtraFooter,\n ...rest\n } = propsWithDefaults;\n const {\n trigger,\n root,\n target,\n overlay,\n list,\n searchInput,\n treeView\n } = (0, _Picker.usePickerRef)(ref);\n const [value, setValue] = (0, _hooks.useControlled)(controlledValue, defaultValue);\n const itemDataKeys = {\n childrenKey,\n labelKey,\n valueKey\n };\n const {\n treeData,\n loadingNodeValues,\n appendChild\n } = (0, _useTreeWithChildren.default)(data, itemDataKeys);\n const flattenedNodes = (0, _useFlattenTree.default)(treeData, {\n ...itemDataKeys\n });\n const {\n expandItemValues,\n handleExpandTreeNode\n } = (0, _useExpandTree.default)(data, {\n ...itemDataKeys,\n defaultExpandAll,\n defaultExpandItemValues,\n controlledExpandItemValues,\n onExpand,\n getChildren,\n appendChild\n });\n const {\n prefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const activeNode = (0, _utils2.getTreeActiveNode)(flattenedNodes, value, valueKey);\n const {\n register,\n focusFirstNode,\n focusActiveNode\n } = (0, _TreeProvider.useTreeImperativeHandle)();\n const {\n active,\n focusItemValue,\n setFocusItemValue,\n triggerProps\n } = (0, _useFocusState.default)({\n focusActiveNode,\n target,\n value,\n onEnter,\n onExit,\n onEntered\n });\n const handleSelect = (0, _hooks.useEventCallback)((treeNode, value, event) => {\n var _target$current, _trigger$current, _trigger$current$clos;\n onSelect === null || onSelect === void 0 || onSelect(treeNode, value, event);\n\n // Only leaf nodes can update the value and close the picker.\n if (onlyLeafSelectable && !(0, _utils3.isLeafNode)(treeNode)) {\n return;\n }\n setFocusItemValue(value);\n handleChange(value, event);\n (_target$current = target.current) === null || _target$current === void 0 || _target$current.focus();\n (_trigger$current = trigger.current) === null || _trigger$current === void 0 || (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 || _trigger$current$clos.call(_trigger$current);\n });\n const handleClean = (0, _hooks.useEventCallback)(event => {\n const target = event.target;\n // exclude searchbox\n if (target.matches('input[role=\"searchbox\"]') || disabled || !cleanable) {\n return;\n }\n setValue(null);\n onChange === null || onChange === void 0 || onChange(null, event);\n });\n const handleTreePressEnter = (0, _hooks.useEventCallback)(event => {\n if ((0, _isNil.default)(focusItemValue)) {\n return;\n }\n const activeItem = (0, _utils2.getActiveItem)(focusItemValue, flattenedNodes, valueKey);\n handleSelect(activeItem, focusItemValue, event);\n });\n const handleTreeKeyDown = (0, _hooks.useEventCallback)(event => {\n (0, _Picker.onMenuKeyDown)(event, {\n del: handleClean,\n down: () => focusFirstNode(),\n enter: handleTreePressEnter\n });\n });\n const onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !activeNode || !active,\n trigger,\n target,\n overlay,\n searchInput,\n active,\n onExit: handleClean,\n onMenuKeyDown: handleTreeKeyDown,\n ...rest\n });\n const handleChange = (0, _hooks.useEventCallback)((nextValue, event) => {\n setValue(nextValue);\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n });\n const treeContext = (0, _react.useMemo)(() => ({\n register,\n props: {\n labelKey,\n valueKey,\n childrenKey,\n virtualized,\n renderTreeIcon,\n renderTreeNode\n }\n }), [childrenKey, labelKey, valueKey, virtualized, register, renderTreeIcon, renderTreeNode]);\n const tree = /*#__PURE__*/_react.default.createElement(_TreeProvider.TreeProvider, {\n value: treeContext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_TreeView.default, {\n ref: treeView,\n value: value,\n data: treeData,\n disabledItemValues: disabledItemValues,\n expandItemValues: expandItemValues,\n showIndentLine: showIndentLine,\n searchable: searchable,\n searchKeyword: searchKeyword,\n searchBy: searchBy,\n searchInputRef: searchInput,\n loadingNodeValues: loadingNodeValues,\n flattenedNodes: flattenedNodes,\n listProps: listProps,\n listRef: list,\n locale: locale,\n height: treeHeight,\n onExpand: handleExpandTreeNode,\n onSearch: onSearch,\n onSelect: handleSelect,\n onSelectItem: onSelectItem,\n onFocusItem: setFocusItemValue,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 7\n }\n }));\n const renderTreeView = (positionProps, speakerRef) => {\n const {\n className\n } = positionProps;\n const classes = merge(className, popupClassName, prefix('tree-menu'));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {\n autoWidth: popupAutoWidth,\n className: classes,\n style: popupStyle,\n ref: (0, _utils.mergeRefs)(overlay, speakerRef),\n onKeyDown: onPickerKeydown,\n target: trigger,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 7\n }\n }, renderTree ? renderTree(tree) : tree, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\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 */\n let hasValidValue = !(0, _isNil.default)(activeNode) || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n let selectedElement = placeholder;\n if (hasValidValue) {\n const node = activeNode !== null && activeNode !== void 0 ? activeNode : {};\n selectedElement = node[labelKey];\n if ((0, _isFunction.default)(renderValue) && value) {\n selectedElement = renderValue(value, node, selectedElement);\n if ((0, _isNil.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n as: as,\n id: id,\n pickerType: \"tree\",\n block: block,\n disabled: disabled,\n appearance: appearance,\n popupType: \"tree\",\n triggerProps: {\n ...(0, _pick.default)(props, _Picker.triggerPropKeys),\n ...triggerProps\n },\n ref: trigger,\n placement: placement,\n speaker: renderTreeView,\n rootRef: root,\n style: style,\n classPrefix: classPrefix,\n className: className,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({\n ref: target,\n appearance: appearance,\n onKeyDown: onPickerKeydown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n as: toggleAs,\n disabled: disabled,\n hasValue: hasValidValue,\n active: active,\n placement: placement,\n inputValue: value,\n focusItemValue: focusItemValue\n }, rest, {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 314,\n columnNumber: 7\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder)));\n});\nTreePicker.displayName = 'TreePicker';\nvar _default = exports[\"default\"] = TreePicker;\n\n//# sourceURL=webpack://rsuite/./src/TreePicker/TreePicker.tsx?");
6366
6366
 
6367
6367
  /***/ }),
6368
6368
 
@@ -6923,7 +6923,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
6923
6923
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6924
6924
 
6925
6925
  "use strict";
6926
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports.triggerPropKeys = exports.pickerCommonPropKeys = exports.overlayPropKeys = exports[\"default\"] = exports.PickerToggleTrigger = exports.ComboboxContext = 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../Box */ \"./src/internals/Box/index.tsx\"));\nvar _PickerDrawer = _interopRequireDefault(__webpack_require__(/*! ./PickerDrawer */ \"./src/internals/Picker/PickerDrawer.tsx\"));\nvar _OverlayTrigger = _interopRequireDefault(__webpack_require__(/*! ../Overlay/OverlayTrigger */ \"./src/internals/Overlay/OverlayTrigger.tsx\"));\nvar _hooks = __webpack_require__(/*! ../hooks */ \"./src/internals/hooks/index.ts\");\nvar _useBreakpointValue = __webpack_require__(/*! ../../useBreakpointValue */ \"./src/useBreakpointValue/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/internals/Picker/PickerToggleTrigger.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); }\nconst overlayPropKeys = exports.overlayPropKeys = ['onEntered', 'onExited', 'onEnter', 'onEntering', 'onExit', 'onExiting', 'open', 'onOpen', 'defaultOpen', 'onClose', 'container', 'containerPadding', 'preventOverflow'];\nconst pickerCommonPropKeys = exports.pickerCommonPropKeys = ['disabled', 'plaintext', 'readOnly', 'loading', 'label'];\nconst triggerPropKeys = exports.triggerPropKeys = [...overlayPropKeys, ...pickerCommonPropKeys];\nconst ComboboxContext = exports.ComboboxContext = /*#__PURE__*/_react.default.createContext({\n popupType: 'listbox'\n});\nconst PickerToggleTrigger = exports.PickerToggleTrigger = /*#__PURE__*/_react.default.forwardRef((props, ref) => {\n const {\n appearance,\n as,\n block,\n children,\n className,\n classPrefix = 'picker',\n disabled,\n id,\n multiple,\n name,\n triggerProps,\n placement,\n popupType = 'listbox',\n rootRef,\n speaker,\n style,\n size,\n trigger = 'click',\n responsive = true,\n onKeyDown,\n onClick,\n ...rest\n } = props;\n const pickerTriggerProps = (0, _pick.default)(triggerProps, triggerPropKeys);\n const pickerId = (0, _hooks.useUniqueId)('rs-', id);\n const breakpoint = (0, _useBreakpointValue.useBreakpointValue)({\n xsOnly: 'xs'\n }, {\n enabled: responsive\n });\n // Only use the breakpoint value if not disabled\n const effectiveBreakpoint = disabled ? undefined : breakpoint;\n const comboboxContext = (0, _react.useMemo)(() => ({\n id: pickerId,\n hasLabel: typeof pickerTriggerProps.label !== 'undefined',\n multiple,\n placement,\n breakpoint: effectiveBreakpoint,\n popupType\n }), [pickerId, multiple, placement, effectiveBreakpoint, popupType]);\n const {\n withPrefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const classes = merge(className, withPrefix());\n return /*#__PURE__*/_react.default.createElement(ComboboxContext.Provider, {\n value: comboboxContext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, (0, _extends2.default)({}, pickerTriggerProps, {\n disabled: pickerTriggerProps.disabled || pickerTriggerProps.loading,\n ref: ref,\n trigger: trigger,\n placement: placement,\n speaker: speaker,\n overlayAs: effectiveBreakpoint === 'xs' ? _PickerDrawer.default : undefined,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 9\n }\n }), /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({\n as: as,\n className: classes,\n style: style,\n ref: rootRef,\n \"data-picker\": name,\n \"data-appearance\": appearance,\n \"data-size\": size,\n \"data-disabled\": disabled || undefined,\n \"data-block\": block || undefined,\n \"data-testid\": \"picker\",\n onKeyDown: onKeyDown,\n onClick: onClick\n }, (0, _omit.default)(rest, [...triggerPropKeys]), {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 11\n }\n }), children)));\n});\nPickerToggleTrigger.displayName = 'PickerToggleTrigger';\nvar _default = exports[\"default\"] = PickerToggleTrigger;\n\n//# sourceURL=webpack://rsuite/./src/internals/Picker/PickerToggleTrigger.tsx?");
6926
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports.triggerPropKeys = exports.pickerCommonPropKeys = exports.overlayPropKeys = exports[\"default\"] = exports.PickerToggleTrigger = exports.ComboboxContext = 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _Box = _interopRequireDefault(__webpack_require__(/*! ../Box */ \"./src/internals/Box/index.tsx\"));\nvar _PickerDrawer = _interopRequireDefault(__webpack_require__(/*! ./PickerDrawer */ \"./src/internals/Picker/PickerDrawer.tsx\"));\nvar _OverlayTrigger = _interopRequireDefault(__webpack_require__(/*! ../Overlay/OverlayTrigger */ \"./src/internals/Overlay/OverlayTrigger.tsx\"));\nvar _hooks = __webpack_require__(/*! ../hooks */ \"./src/internals/hooks/index.ts\");\nvar _useBreakpointValue = __webpack_require__(/*! ../../useBreakpointValue */ \"./src/useBreakpointValue/index.ts\");\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/internals/Picker/PickerToggleTrigger.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); }\nconst overlayPropKeys = exports.overlayPropKeys = ['onEntered', 'onExited', 'onEnter', 'onEntering', 'onExit', 'onExiting', 'open', 'onOpen', 'defaultOpen', 'onClose', 'container', 'containerPadding', 'preventOverflow'];\nconst pickerCommonPropKeys = exports.pickerCommonPropKeys = ['disabled', 'plaintext', 'readOnly', 'loading', 'label'];\nconst triggerPropKeys = exports.triggerPropKeys = [...overlayPropKeys, ...pickerCommonPropKeys];\nconst ComboboxContext = exports.ComboboxContext = /*#__PURE__*/_react.default.createContext({\n popupType: 'listbox'\n});\nconst PickerToggleTrigger = exports.PickerToggleTrigger = /*#__PURE__*/_react.default.forwardRef((props, ref) => {\n const {\n appearance,\n as,\n block,\n children,\n className,\n classPrefix = 'picker',\n disabled,\n id,\n multiple,\n name,\n pickerType,\n triggerProps,\n placement,\n popupType = 'listbox',\n rootRef,\n speaker,\n style,\n size,\n trigger = 'click',\n responsive = true,\n onKeyDown,\n onClick,\n ...rest\n } = props;\n const pickerTriggerProps = (0, _pick.default)(triggerProps, triggerPropKeys);\n const pickerId = (0, _hooks.useUniqueId)('rs-', id);\n const breakpoint = (0, _useBreakpointValue.useBreakpointValue)({\n xsOnly: 'xs'\n }, {\n enabled: responsive\n });\n // Only use the breakpoint value if not disabled\n const effectiveBreakpoint = disabled ? undefined : breakpoint;\n const comboboxContext = (0, _react.useMemo)(() => ({\n id: pickerId,\n hasLabel: typeof pickerTriggerProps.label !== 'undefined',\n multiple,\n placement,\n breakpoint: effectiveBreakpoint,\n popupType\n }), [pickerId, multiple, placement, effectiveBreakpoint, popupType]);\n const {\n withPrefix,\n merge\n } = (0, _hooks.useStyles)(classPrefix);\n const classes = merge(className, withPrefix());\n return /*#__PURE__*/_react.default.createElement(ComboboxContext.Provider, {\n value: comboboxContext,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, (0, _extends2.default)({}, pickerTriggerProps, {\n disabled: pickerTriggerProps.disabled || pickerTriggerProps.loading,\n ref: ref,\n trigger: trigger,\n placement: placement,\n speaker: speaker,\n overlayAs: effectiveBreakpoint === 'xs' ? _PickerDrawer.default : undefined,\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 9\n }\n }), /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({\n as: as,\n className: classes,\n style: style,\n ref: rootRef,\n name: name,\n \"data-picker\": pickerType,\n \"data-appearance\": appearance,\n \"data-size\": size,\n \"data-disabled\": disabled || undefined,\n \"data-block\": block || undefined,\n \"data-testid\": \"picker\",\n onKeyDown: onKeyDown,\n onClick: onClick\n }, (0, _omit.default)(rest, [...triggerPropKeys]), {\n __self: void 0,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 11\n }\n }), children)));\n});\nPickerToggleTrigger.displayName = 'PickerToggleTrigger';\nvar _default = exports[\"default\"] = PickerToggleTrigger;\n\n//# sourceURL=webpack://rsuite/./src/internals/Picker/PickerToggleTrigger.tsx?");
6927
6927
 
6928
6928
  /***/ }),
6929
6929
 
@@ -11182,9 +11182,9 @@ eval("var toFinite = __webpack_require__(/*! ./toFinite */ \"./node_modules/loda
11182
11182
  /*!*****************************************!*\
11183
11183
  !*** ./node_modules/lodash/toNumber.js ***!
11184
11184
  \*****************************************/
11185
- /***/ (function(module) {
11185
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
11186
11186
 
11187
- eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/toNumber.js?");
11187
+ eval("var baseTrim = __webpack_require__(/*! ./_baseTrim */ \"./node_modules/lodash/_baseTrim.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/toNumber.js?");
11188
11188
 
11189
11189
  /***/ }),
11190
11190
 
@@ -11202,9 +11202,9 @@ eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules
11202
11202
  /*!*****************************************!*\
11203
11203
  !*** ./node_modules/lodash/toString.js ***!
11204
11204
  \*****************************************/
11205
- /***/ (function(module) {
11205
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
11206
11206
 
11207
- eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/toString.js?");
11207
+ eval("var baseToString = __webpack_require__(/*! ./_baseToString */ \"./node_modules/lodash/_baseToString.js\");\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/toString.js?");
11208
11208
 
11209
11209
  /***/ }),
11210
11210