rsuite 5.16.1 → 5.16.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/Picker/styles/index.less +3 -1
  3. package/Slider/styles/index.less +2 -1
  4. package/TreePicker/styles/index.less +0 -3
  5. package/cjs/Cascader/utils.js +3 -5
  6. package/cjs/CheckPicker/CheckPicker.d.ts +1 -1
  7. package/cjs/CheckPicker/test/CheckPicker.test.js +8 -0
  8. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +2 -2
  9. package/cjs/CheckTreePicker/CheckTreePicker.js +5 -0
  10. package/cjs/CheckTreePicker/test/CheckTreePicker.test.d.ts +1 -0
  11. package/cjs/CheckTreePicker/test/CheckTreePicker.test.js +15 -0
  12. package/cjs/CheckTreePicker/utils.js +3 -1
  13. package/cjs/CustomProvider/CustomProvider.js +6 -3
  14. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  15. package/cjs/DatePicker/DatePicker.js +1 -1
  16. package/cjs/DatePicker/Toolbar.js +1 -1
  17. package/cjs/DateRangePicker/Calendar.d.ts +0 -1
  18. package/cjs/DateRangePicker/Calendar.js +1 -39
  19. package/cjs/DateRangePicker/DateRangePicker.d.ts +1 -1
  20. package/cjs/DateRangePicker/DateRangePicker.js +23 -23
  21. package/cjs/DateRangePicker/utils.d.ts +2 -1
  22. package/cjs/DateRangePicker/utils.js +12 -3
  23. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  24. package/cjs/InputPicker/test/InputPicker.test.d.ts +1 -0
  25. package/cjs/InputPicker/test/InputPicker.test.js +15 -0
  26. package/cjs/MultiCascader/utils.js +3 -2
  27. package/cjs/Overlay/OverlayTrigger.js +43 -34
  28. package/cjs/Panel/Panel.js +8 -7
  29. package/cjs/Picker/DropdownMenu.d.ts +1 -1
  30. package/cjs/Picker/PickerToggle.d.ts +1 -1
  31. package/cjs/Picker/PickerToggle.js +52 -27
  32. package/cjs/SelectPicker/SelectPicker.d.ts +9 -3
  33. package/cjs/SelectPicker/test/SelectPicker.test.js +33 -0
  34. package/cjs/Tree/Tree.d.ts +2 -2
  35. package/cjs/Tree/test/Tree.test.d.ts +1 -0
  36. package/cjs/Tree/test/Tree.test.js +18 -0
  37. package/cjs/TreePicker/TreePicker.d.ts +2 -2
  38. package/cjs/TreePicker/test/TreePicker.test.d.ts +1 -0
  39. package/cjs/TreePicker/test/TreePicker.test.js +15 -0
  40. package/cjs/utils/attachParent.d.ts +1 -0
  41. package/cjs/utils/attachParent.js +15 -0
  42. package/cjs/utils/treeUtils.js +3 -2
  43. package/cjs/utils/usePortal.d.ts +4 -2
  44. package/cjs/utils/usePortal.js +40 -14
  45. package/dist/rsuite-rtl.css +9 -10
  46. package/dist/rsuite-rtl.min.css +1 -1
  47. package/dist/rsuite-rtl.min.css.map +1 -1
  48. package/dist/rsuite.css +9 -10
  49. package/dist/rsuite.js +29 -18
  50. package/dist/rsuite.js.map +1 -1
  51. package/dist/rsuite.min.css +1 -1
  52. package/dist/rsuite.min.css.map +1 -1
  53. package/dist/rsuite.min.js +1 -1
  54. package/dist/rsuite.min.js.map +1 -1
  55. package/esm/Cascader/utils.js +2 -4
  56. package/esm/CheckPicker/CheckPicker.d.ts +1 -1
  57. package/esm/CheckPicker/test/CheckPicker.test.js +8 -0
  58. package/esm/CheckTreePicker/CheckTreePicker.d.ts +2 -2
  59. package/esm/CheckTreePicker/CheckTreePicker.js +5 -0
  60. package/esm/CheckTreePicker/test/CheckTreePicker.test.d.ts +1 -0
  61. package/esm/CheckTreePicker/test/CheckTreePicker.test.js +10 -0
  62. package/esm/CheckTreePicker/utils.js +2 -1
  63. package/esm/CustomProvider/CustomProvider.js +6 -3
  64. package/esm/DatePicker/DatePicker.d.ts +1 -1
  65. package/esm/DatePicker/DatePicker.js +1 -1
  66. package/esm/DatePicker/Toolbar.js +1 -1
  67. package/esm/DateRangePicker/Calendar.d.ts +0 -1
  68. package/esm/DateRangePicker/Calendar.js +2 -41
  69. package/esm/DateRangePicker/DateRangePicker.d.ts +1 -1
  70. package/esm/DateRangePicker/DateRangePicker.js +23 -23
  71. package/esm/DateRangePicker/utils.d.ts +2 -1
  72. package/esm/DateRangePicker/utils.js +12 -3
  73. package/esm/InputPicker/InputPicker.d.ts +2 -2
  74. package/esm/InputPicker/test/InputPicker.test.d.ts +1 -0
  75. package/esm/InputPicker/test/InputPicker.test.js +10 -0
  76. package/esm/MultiCascader/utils.js +2 -2
  77. package/esm/Overlay/OverlayTrigger.js +44 -35
  78. package/esm/Panel/Panel.js +8 -7
  79. package/esm/Picker/DropdownMenu.d.ts +1 -1
  80. package/esm/Picker/PickerToggle.d.ts +1 -1
  81. package/esm/Picker/PickerToggle.js +52 -27
  82. package/esm/SelectPicker/SelectPicker.d.ts +9 -3
  83. package/esm/SelectPicker/test/SelectPicker.test.js +32 -0
  84. package/esm/Tree/Tree.d.ts +2 -2
  85. package/esm/Tree/test/Tree.test.d.ts +1 -0
  86. package/esm/Tree/test/Tree.test.js +11 -0
  87. package/esm/TreePicker/TreePicker.d.ts +2 -2
  88. package/esm/TreePicker/test/TreePicker.test.d.ts +1 -0
  89. package/esm/TreePicker/test/TreePicker.test.js +10 -0
  90. package/esm/utils/attachParent.d.ts +1 -0
  91. package/esm/utils/attachParent.js +10 -0
  92. package/esm/utils/treeUtils.js +2 -2
  93. package/esm/utils/usePortal.d.ts +4 -2
  94. package/esm/utils/usePortal.js +36 -14
  95. package/package.json +1 -1
package/dist/rsuite.js CHANGED
@@ -2144,7 +2144,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2144
2144
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2145
2145
 
2146
2146
  "use strict";
2147
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.getColumnsAndPaths = getColumnsAndPaths;\nexports.usePaths = usePaths;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _slice = _interopRequireDefault(__webpack_require__(/*! lodash/slice */ \"./node_modules/lodash/slice.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nfunction getColumnsAndPaths(data, value, options) {\n var childrenKey = options.childrenKey,\n valueKey = options.valueKey,\n isAttachChildren = options.isAttachChildren;\n var columns = [];\n var paths = [];\n\n var findNode = function findNode(items) {\n var _loop = function _loop(i) {\n var children = items[i][childrenKey];\n\n if ((0, _utils.shallowEqual)(items[i][valueKey], value)) {\n return {\n v: {\n items: items,\n active: items[i]\n }\n };\n } else if (children) {\n var node = findNode(children);\n\n if (node) {\n columns.push(children.map(function (item) {\n return (0, _extends2.default)({}, item, {\n parent: items[i]\n });\n }));\n paths.push(node.active);\n return {\n v: {\n items: items,\n active: items[i]\n }\n };\n }\n }\n };\n\n for (var i = 0; i < items.length; i += 1) {\n var _ret = _loop(i);\n\n if (typeof _ret === \"object\") return _ret.v;\n }\n\n return null;\n };\n\n var selectedNode = findNode(data);\n columns.push(data);\n\n if (selectedNode) {\n paths.push(selectedNode.active);\n }\n\n if (isAttachChildren) {\n var valueToNode = (0, _treeUtils.findNodeOfTree)(data, function (item) {\n return item[valueKey] === value;\n });\n\n if (valueToNode !== null && valueToNode !== void 0 && valueToNode[childrenKey]) {\n columns.unshift(valueToNode[childrenKey]);\n }\n }\n\n columns.reverse();\n paths.reverse();\n return {\n columns: columns,\n paths: paths\n };\n}\n\nfunction usePaths(props) {\n var data = props.data,\n valueKey = props.valueKey,\n childrenKey = props.childrenKey,\n value = props.value;\n\n var _useMemo = (0, _react.useMemo)(function () {\n return getColumnsAndPaths(data, value, {\n valueKey: valueKey,\n childrenKey: childrenKey\n });\n }, [data, value, valueKey, childrenKey]),\n columns = _useMemo.columns,\n paths = _useMemo.paths; // The columns displayed in the cascading panel.\n\n\n var _useState = (0, _react.useState)(columns),\n columnData = _useState[0],\n setColumnData = _useState[1]; // The path after cascading data selection.\n\n\n var _useState2 = (0, _react.useState)(paths),\n selectedPaths = _useState2[0],\n setSelectedPaths = _useState2[1]; // The path corresponding to the selected value.\n\n\n var _useState3 = (0, _react.useState)(paths),\n valueToPaths = _useState3[0],\n setValueToPaths = _useState3[1];\n /**\n * Add a list of options to the cascading panel. Used for lazy loading options.\n * @param column\n * @param index The index of the current column.\n */\n\n\n function addColumn(column, index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index), [column]));\n }\n /**\n * Enforce update of columns and paths.\n * @param nextValue Selected value\n * @param isAttachChildren Whether to attach the children of the selected node.\n */\n\n\n function enforceUpdate(nextValue, isAttachChildren) {\n var _getColumnsAndPaths = getColumnsAndPaths(data, nextValue, {\n valueKey: valueKey,\n childrenKey: childrenKey,\n isAttachChildren: isAttachChildren\n }),\n columns = _getColumnsAndPaths.columns,\n paths = _getColumnsAndPaths.paths;\n\n setColumnData(columns);\n setSelectedPaths(paths);\n }\n\n (0, _utils.useUpdateEffect)(function () {\n // Update paths when value is updated, then update valueToPaths.\n setValueToPaths(paths);\n }, [paths]);\n (0, _utils.useUpdateEffect)(function () {\n enforceUpdate(value);\n }, [data]);\n return {\n enforceUpdate: enforceUpdate,\n columnData: columnData,\n valueToPaths: valueToPaths,\n selectedPaths: selectedPaths,\n setValueToPaths: setValueToPaths,\n setColumnData: setColumnData,\n setSelectedPaths: setSelectedPaths,\n addColumn: addColumn\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/Cascader/utils.ts?");
2147
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.getColumnsAndPaths = getColumnsAndPaths;\nexports.usePaths = usePaths;\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _slice = _interopRequireDefault(__webpack_require__(/*! lodash/slice */ \"./node_modules/lodash/slice.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _attachParent = __webpack_require__(/*! ../utils/attachParent */ \"./src/utils/attachParent.ts\");\n\nfunction getColumnsAndPaths(data, value, options) {\n var childrenKey = options.childrenKey,\n valueKey = options.valueKey,\n isAttachChildren = options.isAttachChildren;\n var columns = [];\n var paths = [];\n\n var findNode = function findNode(items) {\n var _loop = function _loop(i) {\n var children = items[i][childrenKey];\n\n if ((0, _utils.shallowEqual)(items[i][valueKey], value)) {\n return {\n v: {\n items: items,\n active: items[i]\n }\n };\n } else if (children) {\n var node = findNode(children);\n\n if (node) {\n columns.push(children.map(function (item) {\n return (0, _attachParent.attachParent)(item, items[i]);\n }));\n paths.push(node.active);\n return {\n v: {\n items: items,\n active: items[i]\n }\n };\n }\n }\n };\n\n for (var i = 0; i < items.length; i += 1) {\n var _ret = _loop(i);\n\n if (typeof _ret === \"object\") return _ret.v;\n }\n\n return null;\n };\n\n var selectedNode = findNode(data);\n columns.push(data);\n\n if (selectedNode) {\n paths.push(selectedNode.active);\n }\n\n if (isAttachChildren) {\n var valueToNode = (0, _treeUtils.findNodeOfTree)(data, function (item) {\n return item[valueKey] === value;\n });\n\n if (valueToNode !== null && valueToNode !== void 0 && valueToNode[childrenKey]) {\n columns.unshift(valueToNode[childrenKey]);\n }\n }\n\n columns.reverse();\n paths.reverse();\n return {\n columns: columns,\n paths: paths\n };\n}\n\nfunction usePaths(props) {\n var data = props.data,\n valueKey = props.valueKey,\n childrenKey = props.childrenKey,\n value = props.value;\n\n var _useMemo = (0, _react.useMemo)(function () {\n return getColumnsAndPaths(data, value, {\n valueKey: valueKey,\n childrenKey: childrenKey\n });\n }, [data, value, valueKey, childrenKey]),\n columns = _useMemo.columns,\n paths = _useMemo.paths; // The columns displayed in the cascading panel.\n\n\n var _useState = (0, _react.useState)(columns),\n columnData = _useState[0],\n setColumnData = _useState[1]; // The path after cascading data selection.\n\n\n var _useState2 = (0, _react.useState)(paths),\n selectedPaths = _useState2[0],\n setSelectedPaths = _useState2[1]; // The path corresponding to the selected value.\n\n\n var _useState3 = (0, _react.useState)(paths),\n valueToPaths = _useState3[0],\n setValueToPaths = _useState3[1];\n /**\n * Add a list of options to the cascading panel. Used for lazy loading options.\n * @param column\n * @param index The index of the current column.\n */\n\n\n function addColumn(column, index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index), [column]));\n }\n /**\n * Enforce update of columns and paths.\n * @param nextValue Selected value\n * @param isAttachChildren Whether to attach the children of the selected node.\n */\n\n\n function enforceUpdate(nextValue, isAttachChildren) {\n var _getColumnsAndPaths = getColumnsAndPaths(data, nextValue, {\n valueKey: valueKey,\n childrenKey: childrenKey,\n isAttachChildren: isAttachChildren\n }),\n columns = _getColumnsAndPaths.columns,\n paths = _getColumnsAndPaths.paths;\n\n setColumnData(columns);\n setSelectedPaths(paths);\n }\n\n (0, _utils.useUpdateEffect)(function () {\n // Update paths when value is updated, then update valueToPaths.\n setValueToPaths(paths);\n }, [paths]);\n (0, _utils.useUpdateEffect)(function () {\n enforceUpdate(value);\n }, [data]);\n return {\n enforceUpdate: enforceUpdate,\n columnData: columnData,\n valueToPaths: valueToPaths,\n selectedPaths: selectedPaths,\n setValueToPaths: setValueToPaths,\n setColumnData: setColumnData,\n setSelectedPaths: setSelectedPaths,\n addColumn: addColumn\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/Cascader/utils.ts?");
2148
2148
 
2149
2149
  /***/ }),
2150
2150
 
@@ -2199,7 +2199,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2199
2199
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2200
2200
 
2201
2201
  "use strict";
2202
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _cloneDeep2 = _interopRequireDefault(__webpack_require__(/*! lodash/cloneDeep */ \"./node_modules/lodash/cloneDeep.js\"));\n\nvar _omit2 = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _isFunction2 = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _pick2 = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _VirtualizedList = __webpack_require__(/*! ../Picker/VirtualizedList */ \"./src/Picker/VirtualizedList.tsx\");\n\nvar _CheckTreeNode = _interopRequireDefault(__webpack_require__(/*! ./CheckTreeNode */ \"./src/CheckTreePicker/CheckTreeNode.tsx\"));\n\nvar _TreeContext = _interopRequireDefault(__webpack_require__(/*! ../Tree/TreeContext */ \"./src/Tree/TreeContext.ts\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/CheckTreePicker/utils.ts\");\n\nvar _TreePicker = __webpack_require__(/*! ../TreePicker/TreePicker */ \"./src/TreePicker/TreePicker.tsx\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CheckTreePicker/CheckTreePicker.tsx\",\n _this = void 0;\n\nvar emptyArray = [];\n\nvar CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$data = props.data,\n data = _props$data === void 0 ? emptyArray : _props$data,\n style = props.style,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$countable = props.countable,\n countable = _props$countable === void 0 ? true : _props$countable,\n searchBy = props.searchBy,\n toggleAs = props.toggleAs,\n searchKeyword = props.searchKeyword,\n showIndentLine = props.showIndentLine,\n overrideLocale = props.locale,\n _props$cascade = props.cascade,\n cascade = _props$cascade === void 0 ? true : _props$cascade,\n disabled = props.disabled,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n _props$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\n placeholder = props.placeholder,\n controlledValue = props.value,\n _props$defaultValue = props.defaultValue,\n defaultValue = _props$defaultValue === void 0 ? emptyArray : _props$defaultValue,\n _props$defaultExpandA = props.defaultExpandAll,\n defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n controlledExpandItemValues = props.expandItemValues,\n _props$defaultExpandI = props.defaultExpandItemValues,\n defaultExpandItemValues = _props$defaultExpandI === void 0 ? emptyArray : _props$defaultExpandI,\n _props$height = props.height,\n height = _props$height === void 0 ? 360 : _props$height,\n menuStyle = props.menuStyle,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$virtualized = props.virtualized,\n virtualized = _props$virtualized === void 0 ? false : _props$virtualized,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n menuClassName = props.menuClassName,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n _props$uncheckableIte = props.uncheckableItemValues,\n uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,\n id = props.id,\n listProps = props.listProps,\n renderMenu = props.renderMenu,\n getChildren = props.getChildren,\n renderExtraFooter = props.renderExtraFooter,\n onEntered = props.onEntered,\n onChange = props.onChange,\n onClean = props.onClean,\n onClose = props.onClose,\n onExited = props.onExited,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onOpen = props.onOpen,\n onScroll = props.onScroll,\n onExpand = props.onExpand,\n renderValue = props.renderValue,\n renderTreeIcon = props.renderTreeIcon,\n renderTreeNode = props.renderTreeNode,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"style\", \"appearance\", \"cleanable\", \"countable\", \"searchBy\", \"toggleAs\", \"searchKeyword\", \"showIndentLine\", \"locale\", \"cascade\", \"disabled\", \"valueKey\", \"labelKey\", \"placement\", \"childrenKey\", \"placeholder\", \"value\", \"defaultValue\", \"defaultExpandAll\", \"disabledItemValues\", \"expandItemValues\", \"defaultExpandItemValues\", \"height\", \"menuStyle\", \"searchable\", \"virtualized\", \"className\", \"classPrefix\", \"menuClassName\", \"menuAutoWidth\", \"uncheckableItemValues\", \"id\", \"listProps\", \"renderMenu\", \"getChildren\", \"renderExtraFooter\", \"onEntered\", \"onChange\", \"onClean\", \"onClose\", \"onExited\", \"onSearch\", \"onSelect\", \"onOpen\", \"onScroll\", \"onExpand\", \"renderValue\", \"renderTreeIcon\", \"renderTreeNode\"]);\n\n var _useContext = (0, _react.useContext)(_TreeContext.default),\n inline = _useContext.inline;\n\n var triggerRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var listRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n var treeViewRef = (0, _react.useRef)(null);\n\n var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),\n rtl = _useCustom.rtl,\n locale = _useCustom.locale;\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var _useState2 = (0, _react.useState)(null),\n activeNode = _useState2[0],\n setActiveNode = _useState2[1];\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useClassNames2 = (0, _utils.useClassNames)('check-tree'),\n checkTreePrefix = _useClassNames2.prefix,\n withCheckTreeClassPrefix = _useClassNames2.withClassPrefix;\n\n var _useControlled = (0, _utils.useControlled)(controlledValue, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n\n var _useGetTreeNodeChildr = (0, _treeUtils.useGetTreeNodeChildren)(data, valueKey, childrenKey),\n treeData = _useGetTreeNodeChildr.data,\n setTreeData = _useGetTreeNodeChildr.setData,\n loadingNodeValues = _useGetTreeNodeChildr.loadingNodeValues,\n loadChildren = _useGetTreeNodeChildr.loadChildren;\n\n var _useControlled2 = (0, _utils.useControlled)(controlledExpandItemValues, (0, _treeUtils.getDefaultExpandItemValues)(treeData, {\n defaultExpandAll: defaultExpandAll,\n valueKey: valueKey,\n childrenKey: childrenKey,\n defaultExpandItemValues: defaultExpandItemValues\n })),\n expandItemValues = _useControlled2[0],\n setExpandItemValues = _useControlled2[1];\n\n var _useState3 = (0, _react.useState)(null),\n focusItemValue = _useState3[0],\n setFocusItemValue = _useState3[1];\n\n var _useFlattenTreeData = (0, _treeUtils.useFlattenTreeData)({\n data: treeData,\n labelKey: labelKey,\n valueKey: valueKey,\n childrenKey: childrenKey,\n uncheckableItemValues: uncheckableItemValues,\n callback: function callback(nodes) {\n // after flattenData, always unSerialize check property value\n unSerializeList({\n nodes: nodes,\n key: 'check',\n value: value,\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n forceUpdate();\n }\n }),\n flattenNodes = _useFlattenTreeData.flattenNodes,\n forceUpdate = _useFlattenTreeData.forceUpdate,\n formatVirtualizedTreeData = _useFlattenTreeData.formatVirtualizedTreeData,\n serializeListOnlyParent = _useFlattenTreeData.serializeListOnlyParent,\n unSerializeList = _useFlattenTreeData.unSerializeList;\n\n var _useTreeSearch = (0, _treeUtils.useTreeSearch)({\n labelKey: labelKey,\n childrenKey: childrenKey,\n searchKeyword: searchKeyword,\n data: treeData,\n searchBy: searchBy,\n callback: function callback(searchKeyword, _filterData, event) {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }\n }),\n filteredData = _useTreeSearch.filteredData,\n searchKeywordState = _useTreeSearch.searchKeywordState,\n setSearchKeyword = _useTreeSearch.setSearchKeyword,\n handleSearch = _useTreeSearch.handleSearch,\n setFilteredData = _useTreeSearch.setFilteredData;\n\n var _useTreeNodeRefs = (0, _treeUtils.useTreeNodeRefs)(),\n treeNodesRefs = _useTreeNodeRefs.treeNodesRefs,\n saveTreeNodeRef = _useTreeNodeRefs.saveTreeNodeRef;\n /**\n * get formatted nodes for render tree\n * @params render - renderNode function. only used when virtualized setting false\n */\n\n\n var getFormattedNodes = (0, _react.useCallback)(function (render) {\n if (virtualized) {\n return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {\n cascade: cascade,\n searchKeyword: searchKeywordState\n }).filter(function (item) {\n return item.visible;\n });\n }\n\n return (0, _utils2.getFormattedTree)(filteredData, flattenNodes, {\n childrenKey: childrenKey,\n cascade: cascade\n }).map(function (node) {\n return render === null || render === void 0 ? void 0 : render(node, 1);\n });\n }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized, childrenKey, cascade]);\n\n var getTreeNodeProps = function getTreeNodeProps(node, layer) {\n return {\n as: Component,\n rtl: rtl,\n value: node[valueKey],\n label: node[labelKey],\n layer: layer,\n focus: (0, _utils.shallowEqual)(focusItemValue, node[valueKey]),\n expand: node.expand,\n visible: node.visible,\n loading: loadingNodeValues.some(function (item) {\n return (0, _utils.shallowEqual)(item, node[valueKey]);\n }),\n disabled: (0, _utils2.getDisabledState)(flattenNodes, node, {\n disabledItemValues: disabledItemValues,\n valueKey: valueKey\n }),\n nodeData: node,\n checkState: node.checkState,\n uncheckable: (0, _utils2.isNodeUncheckable)(node, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n }),\n allUncheckable: (0, _utils2.isAllSiblingNodeUncheckable)(node, flattenNodes, uncheckableItemValues, valueKey),\n onSelect: handleSelect,\n onExpand: handleExpand,\n onRenderTreeNode: renderTreeNode,\n onRenderTreeIcon: renderTreeIcon\n };\n };\n\n var focusActiveNode = (0, _react.useCallback)(function () {\n if (listRef.current) {\n (0, _treeUtils.focusToActiveTreeNode)({\n list: listRef.current,\n valueKey: valueKey,\n selector: \".\" + checkTreePrefix('node-active'),\n activeNode: activeNode,\n virtualized: virtualized,\n container: treeViewRef.current,\n formattedNodes: getFormattedNodes()\n });\n }\n }, [checkTreePrefix, activeNode, getFormattedNodes, valueKey, virtualized]);\n (0, _react.useEffect)(function () {\n setValue((0, _utils2.getCheckTreePickerDefaultValue)(value, uncheckableItemValues));\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n (0, _react.useEffect)(function () {\n setFilteredData(data, searchKeywordState);\n setTreeData(data);\n }, [data, searchKeywordState, setFilteredData, setTreeData]);\n (0, _react.useEffect)(function () {\n setFilteredData(treeData, searchKeywordState);\n }, [treeData, searchKeywordState, setFilteredData]);\n (0, _react.useEffect)(function () {\n if (Array.isArray(controlledExpandItemValues)) {\n setExpandItemValues(controlledExpandItemValues);\n }\n }, [controlledExpandItemValues, setExpandItemValues]);\n (0, _react.useEffect)(function () {\n setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');\n }, [searchKeyword, setSearchKeyword]);\n (0, _react.useEffect)(function () {\n unSerializeList({\n nodes: flattenNodes,\n key: 'check',\n value: value,\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n forceUpdate();\n }, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);\n var toggleUpChecked = (0, _react.useCallback)(function (nodes, node, checked) {\n var currentNode = node.refKey ? nodes[node.refKey] : null;\n\n if (cascade && currentNode) {\n if (!checked) {\n currentNode.check = checked;\n currentNode.checkAll = checked;\n } else {\n if ((0, _utils2.isEveryChildChecked)(nodes, currentNode)) {\n currentNode.check = true;\n currentNode.checkAll = true;\n } else {\n currentNode.check = false;\n currentNode.checkAll = false;\n }\n }\n\n if (currentNode.parent) {\n toggleUpChecked(nodes, currentNode.parent, checked);\n }\n }\n }, [cascade]);\n var toggleDownChecked = (0, _react.useCallback)(function (nodes, node, isChecked) {\n var currentNode = node.refKey ? nodes[node.refKey] : null;\n\n if (!currentNode) {\n return;\n }\n\n currentNode.check = isChecked;\n\n if (!currentNode[childrenKey] || !currentNode[childrenKey].length || !cascade) {\n currentNode.checkAll = false;\n } else {\n currentNode.checkAll = isChecked;\n currentNode[childrenKey].forEach(function (child) {\n toggleDownChecked(nodes, child, isChecked);\n });\n }\n }, [cascade, childrenKey]);\n var toggleChecked = (0, _react.useCallback)(function (node, isChecked) {\n var nodes = (0, _cloneDeep2.default)(flattenNodes);\n toggleDownChecked(nodes, node, isChecked);\n node.parent && toggleUpChecked(nodes, node.parent, isChecked);\n var values = serializeListOnlyParent(nodes, 'check'); // filter uncheckableItemValues\n\n return values.filter(function (v) {\n return !uncheckableItemValues.includes(v);\n });\n }, [flattenNodes, uncheckableItemValues, serializeListOnlyParent, toggleDownChecked, toggleUpChecked]);\n var handleSelect = (0, _react.useCallback)(function (node, event) {\n var currentNode = node.refKey ? flattenNodes[node.refKey] : null;\n\n if (!node || !currentNode) {\n return;\n }\n\n var selectedValues = toggleChecked(node, !currentNode.check);\n\n if (!isControlled) {\n unSerializeList({\n nodes: flattenNodes,\n key: 'check',\n value: selectedValues,\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n setValue(selectedValues);\n }\n\n setActiveNode(node);\n setFocusItemValue(node[valueKey]);\n onChange === null || onChange === void 0 ? void 0 : onChange(selectedValues, event);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, selectedValues, event);\n }, [cascade, valueKey, flattenNodes, isControlled, uncheckableItemValues, setValue, onChange, onSelect, toggleChecked, unSerializeList]);\n\n var hasValue = function hasValue() {\n var selectedValues = Object.keys(flattenNodes).map(function (refKey) {\n return flattenNodes[refKey][valueKey];\n }).filter(function (item) {\n return value.some(function (v) {\n return (0, _utils.shallowEqual)(v, item);\n });\n });\n return !!selectedValues.length;\n };\n\n var handleOpen = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$o;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$o = _triggerRef$current.open) === null || _triggerRef$current$o === void 0 ? void 0 : _triggerRef$current$o.call(_triggerRef$current);\n setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);\n focusActiveNode();\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [activeNode, focusActiveNode, onOpen, valueKey]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current2, _triggerRef$current2$, _targetRef$current;\n\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.close) === null || _triggerRef$current2$ === void 0 ? void 0 : _triggerRef$current2$.call(_triggerRef$current2);\n setSearchKeyword('');\n onClose === null || onClose === void 0 ? void 0 : onClose();\n setFocusItemValue(null);\n setActive(false);\n /**\n * when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu\n */\n\n (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();\n }, [onClose, setSearchKeyword]);\n var handleExpand = (0, _react.useCallback)(function (node) {\n var nextExpandItemValues = (0, _treeUtils.toggleExpand)({\n node: node,\n isExpand: !node.expand,\n expandItemValues: expandItemValues,\n valueKey: valueKey\n });\n setExpandItemValues(nextExpandItemValues);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(nextExpandItemValues, node, (0, _Picker.createConcatChildrenFunction)(node, node[valueKey], {\n valueKey: valueKey,\n childrenKey: childrenKey\n }));\n\n if ((0, _isFunction2.default)(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {\n loadChildren(node, getChildren);\n }\n }, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);\n (0, _Picker.usePublicMethods)(ref, {\n rootRef: inline ? treeViewRef : undefined,\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef,\n listRef: listRef,\n inline: inline\n });\n var handleClean = (0, _react.useCallback)(function (event) {\n var target = event.target; // exclude searchBar\n\n if (target.matches('div[role=\"searchbox\"] > input')) {\n return;\n }\n\n setActiveNode(null);\n setValue([]);\n setFocusItemValue(null);\n unSerializeList({\n nodes: flattenNodes,\n key: 'check',\n value: [],\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n onChange === null || onChange === void 0 ? void 0 : onChange([], event);\n }, [cascade, flattenNodes, onChange, setValue, unSerializeList, uncheckableItemValues]);\n var handleFocusItem = (0, _react.useCallback)(function (key) {\n var focusableItems = (0, _treeUtils.getFocusableItems)(filteredData, {\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n childrenKey: childrenKey,\n expandItemValues: expandItemValues\n }, (0, _treeUtils.isSearching)(searchKeywordState));\n var selector = \".\" + checkTreePrefix('node-label');\n var focusProps = {\n focusItemValue: focusItemValue,\n focusableItems: focusableItems,\n treeNodesRefs: treeNodesRefs,\n selector: selector,\n valueKey: valueKey,\n callback: function callback(nextFocusItemValue) {\n setFocusItemValue(nextFocusItemValue);\n }\n };\n\n if (key === _utils.KEY_VALUES.DOWN) {\n (0, _treeUtils.focusNextItem)(focusProps);\n return;\n }\n\n if (key === _utils.KEY_VALUES.UP) {\n (0, _treeUtils.focusPreviousItem)(focusProps);\n }\n }, [searchKeywordState, checkTreePrefix, expandItemValues, filteredData, focusItemValue, treeNodesRefs, childrenKey, valueKey, disabledItemValues]);\n var handleLeftArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.leftArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n onExpand: handleExpand,\n childrenKey: childrenKey,\n onFocusItem: function onFocusItem() {\n var _focusItem$parent, _focusItem$parent2;\n\n setFocusItemValue(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent = focusItem.parent) === null || _focusItem$parent === void 0 ? void 0 : _focusItem$parent[valueKey]);\n (0, _treeUtils.focusTreeNode)(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, \".\" + checkTreePrefix('node-label'));\n }\n });\n }, [checkTreePrefix, expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, valueKey, childrenKey]);\n var handleRightArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.rightArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n childrenKey: childrenKey,\n onExpand: handleExpand,\n onFocusItem: function onFocusItem() {\n handleFocusItem(_utils.KEY_VALUES.DOWN);\n }\n });\n }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);\n var selectActiveItem = (0, _react.useCallback)(function (event) {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var activeItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n\n if (!(0, _utils2.isNodeUncheckable)(activeItem, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n }) && activeItem !== null) {\n handleSelect(activeItem, event);\n }\n }, [flattenNodes, focusItemValue, handleSelect, uncheckableItemValues, valueKey]);\n var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef,\n searchInputRef: searchInputRef,\n active: active,\n onExit: handleClean,\n onClose: handleClose,\n onMenuKeyDown: function onMenuKeyDown(event) {\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem,\n del: handleClean\n });\n }\n });\n var handleTreeKeydown = (0, _react.useCallback)(function (event) {\n if (!treeViewRef.current) {\n return;\n }\n\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem\n });\n }, [handleFocusItem, handleLeftArrow, handleRightArrow, rtl, selectActiveItem]);\n\n var renderNode = function renderNode(node, layer) {\n var visible = node.visible,\n refKey = node.refKey; // when searching, all nodes should be expand\n\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n\n if (!visible) {\n return null;\n }\n\n var children = node[childrenKey];\n var visibleChildren = (0, _isUndefined2.default)(searchKeywordState) || searchKeywordState.length === 0 ? !!children : (0, _treeUtils.hasVisibleChildren)(node, childrenKey);\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n expand: expand\n }), layer), {\n hasChildren: visibleChildren\n });\n\n if (nodeProps.hasChildren) {\n var _merge;\n\n layer += 1;\n var openClass = checkTreePrefix('open');\n var childrenClass = merge(checkTreePrefix('node-children'), (_merge = {}, _merge[openClass] = expand && visibleChildren, _merge));\n var nodes = children || [];\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: childrenClass,\n key: node[valueKey],\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 717,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({}, nodeProps, {\n ref: function ref(_ref) {\n return saveTreeNodeRef(_ref, refKey);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 718,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: checkTreePrefix('children'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 719,\n columnNumber: 11\n }\n }, nodes.map(function (child) {\n return renderNode(child, layer);\n }), showIndentLine && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: checkTreePrefix('indent-line'),\n style: (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1, true),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 722,\n columnNumber: 15\n }\n })));\n }\n\n return /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({\n key: node[valueKey],\n ref: function ref(_ref2) {\n return saveTreeNodeRef(_ref2, refKey);\n }\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 733,\n columnNumber: 7\n }\n }));\n };\n\n var renderVirtualListNode = function renderVirtualListNode(nodes) {\n return function (_ref3) {\n var key = _ref3.key,\n index = _ref3.index,\n style = _ref3.style;\n var node = nodes[index];\n var layer = node.layer,\n refKey = node.refKey,\n visible = node.visible;\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n expand: expand\n }), layer), {\n hasChildren: node.hasChildren\n });\n return visible && /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({\n style: style,\n key: key,\n ref: function ref(_ref4) {\n return saveTreeNodeRef(_ref4, refKey);\n }\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 757,\n columnNumber: 11\n }\n }));\n };\n };\n\n var renderCheckTree = function renderCheckTree() {\n var _withCheckTreeClassPr, _merge2;\n\n var classes = withCheckTreeClassPrefix((_withCheckTreeClassPr = {}, _withCheckTreeClassPr[className !== null && className !== void 0 ? className : ''] = inline, _withCheckTreeClassPr['without-children'] = !(0, _utils2.isSomeNodeHasChildren)(data, childrenKey), _withCheckTreeClassPr.virtualized = virtualized, _withCheckTreeClassPr));\n var formattedNodes = getFormattedNodes(renderNode);\n\n if (!formattedNodes.some(function (v) {\n return v !== null;\n })) {\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('none'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 777,\n columnNumber: 14\n }\n }, locale.noResultsText);\n }\n\n var treeNodesClass = merge(checkTreePrefix('nodes'), (_merge2 = {}, _merge2[checkTreePrefix('all-uncheckable')] = (0, _utils2.isEveryFirstLevelNodeUncheckable)(flattenNodes, uncheckableItemValues, valueKey), _merge2));\n var styles = inline ? (0, _extends2.default)({\n height: height\n }, style) : {};\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n id: id ? id + \"-listbox\" : undefined,\n ref: treeViewRef,\n role: \"tree\",\n \"aria-multiselectable\": true,\n className: classes,\n style: styles,\n onScroll: onScroll,\n onKeyDown: inline ? handleTreeKeydown : undefined,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 790,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treeNodesClass,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 800,\n columnNumber: 9\n }\n }, virtualized ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.AutoSizer, {\n defaultHeight: inline ? height : _TreePicker.maxTreeHeight,\n style: {\n width: 'auto',\n height: 'auto'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 802,\n columnNumber: 13\n }\n }, function (_ref5) {\n var height = _ref5.height,\n width = _ref5.width;\n return /*#__PURE__*/_react.default.createElement(_VirtualizedList.List, (0, _extends2.default)({\n ref: listRef,\n width: width,\n height: height,\n rowHeight: 36,\n rowCount: formattedNodes.length,\n rowRenderer: renderVirtualListNode(formattedNodes),\n scrollToAlignment: \"center\"\n }, listProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 807,\n columnNumber: 17\n }\n }));\n }) : formattedNodes));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = (0, _classnames.default)(className, menuClassName, prefix('check-tree-menu'));\n var mergedMenuStyle = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var styles = virtualized ? (0, _extends2.default)({\n height: height\n }, mergedMenuStyle) : (0, _extends2.default)({}, mergedMenuStyle);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n onKeyDown: onPickerKeydown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 834,\n columnNumber: 7\n }\n }, searchable ? /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {\n placeholder: locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeywordState,\n inputRef: searchInputRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 843,\n columnNumber: 11\n }\n }) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\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\n\n var hasValidValue = hasValue() || value.length > 0 && (0, _isFunction2.default)(renderValue);\n var selectedElement = placeholder;\n var selectedItems = (0, _utils2.getSelectedItems)(flattenNodes, value, valueKey);\n\n if (hasValidValue) {\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 __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 866,\n columnNumber: 7\n }\n });\n\n if ((0, _isFunction2.default)(renderValue)) {\n selectedElement = renderValue(value, selectedItems, selectedElement);\n\n if ((0, _isNil2.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n countable: countable,\n cleanable: cleanable,\n disabled: disabled,\n hasValue: hasValidValue,\n name: 'check-tree'\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n if (inline) {\n return renderCheckTree();\n }\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick2.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEnter: handleOpen,\n onEntered: onEntered,\n onExited: (0, _utils.createChainedFunction)(handleClose, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 901,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 910,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit2.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n ref: targetRef,\n appearance: appearance,\n onKeyDown: onPickerKeydown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n disabled: disabled,\n as: toggleAs,\n hasValue: hasValidValue,\n active: active,\n placement: placement,\n inputValue: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 911,\n columnNumber: 9\n }\n }), selectedElement || locale.placeholder)));\n});\n\nCheckTreePicker.displayName = 'CheckTreePicker';\nCheckTreePicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n height: _propTypes.default.number,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n locale: _propTypes.default.any,\n cascade: _propTypes.default.bool,\n countable: _propTypes.default.bool,\n searchable: _propTypes.default.bool,\n virtualized: _propTypes.default.bool,\n searchKeyword: _propTypes.default.string,\n menuAutoWidth: _propTypes.default.bool,\n defaultExpandAll: _propTypes.default.bool,\n containerPadding: _propTypes.default.number,\n disabledItemValues: _propTypes.default.array,\n expandItemValues: _propTypes.default.array,\n defaultExpandItemValues: _propTypes.default.array,\n uncheckableItemValues: _propTypes.default.array,\n onSearch: _propTypes.default.func,\n onExpand: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n renderTreeNode: _propTypes.default.func,\n renderTreeIcon: _propTypes.default.func,\n searchBy: _propTypes.default.func,\n onScroll: _propTypes.default.func\n});\nvar _default = CheckTreePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/CheckTreePicker/CheckTreePicker.tsx?");
2202
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _cloneDeep2 = _interopRequireDefault(__webpack_require__(/*! lodash/cloneDeep */ \"./node_modules/lodash/cloneDeep.js\"));\n\nvar _omit2 = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _isFunction2 = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _pick2 = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _VirtualizedList = __webpack_require__(/*! ../Picker/VirtualizedList */ \"./src/Picker/VirtualizedList.tsx\");\n\nvar _CheckTreeNode = _interopRequireDefault(__webpack_require__(/*! ./CheckTreeNode */ \"./src/CheckTreePicker/CheckTreeNode.tsx\"));\n\nvar _TreeContext = _interopRequireDefault(__webpack_require__(/*! ../Tree/TreeContext */ \"./src/Tree/TreeContext.ts\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/CheckTreePicker/utils.ts\");\n\nvar _TreePicker = __webpack_require__(/*! ../TreePicker/TreePicker */ \"./src/TreePicker/TreePicker.tsx\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CheckTreePicker/CheckTreePicker.tsx\",\n _this = void 0;\n\nvar emptyArray = [];\n\nvar CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$data = props.data,\n data = _props$data === void 0 ? emptyArray : _props$data,\n style = props.style,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$countable = props.countable,\n countable = _props$countable === void 0 ? true : _props$countable,\n searchBy = props.searchBy,\n toggleAs = props.toggleAs,\n searchKeyword = props.searchKeyword,\n showIndentLine = props.showIndentLine,\n overrideLocale = props.locale,\n _props$cascade = props.cascade,\n cascade = _props$cascade === void 0 ? true : _props$cascade,\n disabled = props.disabled,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n _props$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\n placeholder = props.placeholder,\n controlledValue = props.value,\n _props$defaultValue = props.defaultValue,\n defaultValue = _props$defaultValue === void 0 ? emptyArray : _props$defaultValue,\n _props$defaultExpandA = props.defaultExpandAll,\n defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n controlledExpandItemValues = props.expandItemValues,\n _props$defaultExpandI = props.defaultExpandItemValues,\n defaultExpandItemValues = _props$defaultExpandI === void 0 ? emptyArray : _props$defaultExpandI,\n _props$height = props.height,\n height = _props$height === void 0 ? 360 : _props$height,\n menuStyle = props.menuStyle,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$virtualized = props.virtualized,\n virtualized = _props$virtualized === void 0 ? false : _props$virtualized,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n menuClassName = props.menuClassName,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n _props$uncheckableIte = props.uncheckableItemValues,\n uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,\n id = props.id,\n listProps = props.listProps,\n renderMenu = props.renderMenu,\n getChildren = props.getChildren,\n renderExtraFooter = props.renderExtraFooter,\n onEntered = props.onEntered,\n onChange = props.onChange,\n onClean = props.onClean,\n onClose = props.onClose,\n onExited = props.onExited,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onOpen = props.onOpen,\n onScroll = props.onScroll,\n onExpand = props.onExpand,\n renderValue = props.renderValue,\n renderTreeIcon = props.renderTreeIcon,\n renderTreeNode = props.renderTreeNode,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"style\", \"appearance\", \"cleanable\", \"countable\", \"searchBy\", \"toggleAs\", \"searchKeyword\", \"showIndentLine\", \"locale\", \"cascade\", \"disabled\", \"valueKey\", \"labelKey\", \"placement\", \"childrenKey\", \"placeholder\", \"value\", \"defaultValue\", \"defaultExpandAll\", \"disabledItemValues\", \"expandItemValues\", \"defaultExpandItemValues\", \"height\", \"menuStyle\", \"searchable\", \"virtualized\", \"className\", \"classPrefix\", \"menuClassName\", \"menuAutoWidth\", \"uncheckableItemValues\", \"id\", \"listProps\", \"renderMenu\", \"getChildren\", \"renderExtraFooter\", \"onEntered\", \"onChange\", \"onClean\", \"onClose\", \"onExited\", \"onSearch\", \"onSelect\", \"onOpen\", \"onScroll\", \"onExpand\", \"renderValue\", \"renderTreeIcon\", \"renderTreeNode\"]);\n\n var _useContext = (0, _react.useContext)(_TreeContext.default),\n inline = _useContext.inline;\n\n var triggerRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var listRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n var treeViewRef = (0, _react.useRef)(null);\n\n var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),\n rtl = _useCustom.rtl,\n locale = _useCustom.locale;\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var _useState2 = (0, _react.useState)(null),\n activeNode = _useState2[0],\n setActiveNode = _useState2[1];\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useClassNames2 = (0, _utils.useClassNames)('check-tree'),\n checkTreePrefix = _useClassNames2.prefix,\n withCheckTreeClassPrefix = _useClassNames2.withClassPrefix;\n\n var _useControlled = (0, _utils.useControlled)(controlledValue, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n\n var _useGetTreeNodeChildr = (0, _treeUtils.useGetTreeNodeChildren)(data, valueKey, childrenKey),\n treeData = _useGetTreeNodeChildr.data,\n setTreeData = _useGetTreeNodeChildr.setData,\n loadingNodeValues = _useGetTreeNodeChildr.loadingNodeValues,\n loadChildren = _useGetTreeNodeChildr.loadChildren;\n\n var _useControlled2 = (0, _utils.useControlled)(controlledExpandItemValues, (0, _treeUtils.getDefaultExpandItemValues)(treeData, {\n defaultExpandAll: defaultExpandAll,\n valueKey: valueKey,\n childrenKey: childrenKey,\n defaultExpandItemValues: defaultExpandItemValues\n })),\n expandItemValues = _useControlled2[0],\n setExpandItemValues = _useControlled2[1];\n\n var _useState3 = (0, _react.useState)(null),\n focusItemValue = _useState3[0],\n setFocusItemValue = _useState3[1];\n\n var _useFlattenTreeData = (0, _treeUtils.useFlattenTreeData)({\n data: treeData,\n labelKey: labelKey,\n valueKey: valueKey,\n childrenKey: childrenKey,\n uncheckableItemValues: uncheckableItemValues,\n callback: function callback(nodes) {\n // after flattenData, always unSerialize check property value\n unSerializeList({\n nodes: nodes,\n key: 'check',\n value: value,\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n forceUpdate();\n }\n }),\n flattenNodes = _useFlattenTreeData.flattenNodes,\n forceUpdate = _useFlattenTreeData.forceUpdate,\n formatVirtualizedTreeData = _useFlattenTreeData.formatVirtualizedTreeData,\n serializeListOnlyParent = _useFlattenTreeData.serializeListOnlyParent,\n unSerializeList = _useFlattenTreeData.unSerializeList;\n\n var _useTreeSearch = (0, _treeUtils.useTreeSearch)({\n labelKey: labelKey,\n childrenKey: childrenKey,\n searchKeyword: searchKeyword,\n data: treeData,\n searchBy: searchBy,\n callback: function callback(searchKeyword, _filterData, event) {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }\n }),\n filteredData = _useTreeSearch.filteredData,\n searchKeywordState = _useTreeSearch.searchKeywordState,\n setSearchKeyword = _useTreeSearch.setSearchKeyword,\n handleSearch = _useTreeSearch.handleSearch,\n setFilteredData = _useTreeSearch.setFilteredData;\n\n var _useTreeNodeRefs = (0, _treeUtils.useTreeNodeRefs)(),\n treeNodesRefs = _useTreeNodeRefs.treeNodesRefs,\n saveTreeNodeRef = _useTreeNodeRefs.saveTreeNodeRef;\n /**\n * get formatted nodes for render tree\n * @params render - renderNode function. only used when virtualized setting false\n */\n\n\n var getFormattedNodes = (0, _react.useCallback)(function (render) {\n if (virtualized) {\n return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {\n cascade: cascade,\n searchKeyword: searchKeywordState\n }).filter(function (item) {\n return item.visible;\n });\n }\n\n return (0, _utils2.getFormattedTree)(filteredData, flattenNodes, {\n childrenKey: childrenKey,\n cascade: cascade\n }).map(function (node) {\n return render === null || render === void 0 ? void 0 : render(node, 1);\n });\n }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized, childrenKey, cascade]);\n\n var getTreeNodeProps = function getTreeNodeProps(node, layer) {\n return {\n as: Component,\n rtl: rtl,\n value: node[valueKey],\n label: node[labelKey],\n layer: layer,\n focus: (0, _utils.shallowEqual)(focusItemValue, node[valueKey]),\n expand: node.expand,\n visible: node.visible,\n loading: loadingNodeValues.some(function (item) {\n return (0, _utils.shallowEqual)(item, node[valueKey]);\n }),\n disabled: (0, _utils2.getDisabledState)(flattenNodes, node, {\n disabledItemValues: disabledItemValues,\n valueKey: valueKey\n }),\n nodeData: node,\n checkState: node.checkState,\n uncheckable: (0, _utils2.isNodeUncheckable)(node, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n }),\n allUncheckable: (0, _utils2.isAllSiblingNodeUncheckable)(node, flattenNodes, uncheckableItemValues, valueKey),\n onSelect: handleSelect,\n onExpand: handleExpand,\n onRenderTreeNode: renderTreeNode,\n onRenderTreeIcon: renderTreeIcon\n };\n };\n\n var focusActiveNode = (0, _react.useCallback)(function () {\n if (listRef.current) {\n (0, _treeUtils.focusToActiveTreeNode)({\n list: listRef.current,\n valueKey: valueKey,\n selector: \".\" + checkTreePrefix('node-active'),\n activeNode: activeNode,\n virtualized: virtualized,\n container: treeViewRef.current,\n formattedNodes: getFormattedNodes()\n });\n }\n }, [checkTreePrefix, activeNode, getFormattedNodes, valueKey, virtualized]);\n (0, _react.useEffect)(function () {\n setValue((0, _utils2.getCheckTreePickerDefaultValue)(value, uncheckableItemValues));\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n (0, _react.useEffect)(function () {\n setFilteredData(data, searchKeywordState);\n setTreeData(data);\n }, [data, searchKeywordState, setFilteredData, setTreeData]);\n (0, _react.useEffect)(function () {\n setFilteredData(treeData, searchKeywordState);\n }, [treeData, searchKeywordState, setFilteredData]);\n (0, _react.useEffect)(function () {\n if (Array.isArray(controlledExpandItemValues)) {\n setExpandItemValues(controlledExpandItemValues);\n }\n }, [controlledExpandItemValues, setExpandItemValues]);\n (0, _react.useEffect)(function () {\n setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');\n }, [searchKeyword, setSearchKeyword]);\n (0, _react.useEffect)(function () {\n unSerializeList({\n nodes: flattenNodes,\n key: 'check',\n value: value,\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n forceUpdate();\n }, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);\n var toggleUpChecked = (0, _react.useCallback)(function (nodes, node, checked) {\n var currentNode = node.refKey ? nodes[node.refKey] : null;\n\n if (cascade && currentNode) {\n if (!checked) {\n currentNode.check = checked;\n currentNode.checkAll = checked;\n } else {\n if ((0, _utils2.isEveryChildChecked)(nodes, currentNode)) {\n currentNode.check = true;\n currentNode.checkAll = true;\n } else {\n currentNode.check = false;\n currentNode.checkAll = false;\n }\n }\n\n if (currentNode.parent) {\n toggleUpChecked(nodes, currentNode.parent, checked);\n }\n }\n }, [cascade]);\n var toggleDownChecked = (0, _react.useCallback)(function (nodes, node, isChecked) {\n var currentNode = node.refKey ? nodes[node.refKey] : null;\n\n if (!currentNode) {\n return;\n }\n\n currentNode.check = isChecked;\n\n if (!currentNode[childrenKey] || !currentNode[childrenKey].length || !cascade) {\n currentNode.checkAll = false;\n } else {\n currentNode.checkAll = isChecked;\n currentNode[childrenKey].forEach(function (child) {\n toggleDownChecked(nodes, child, isChecked);\n });\n }\n }, [cascade, childrenKey]);\n var toggleChecked = (0, _react.useCallback)(function (node, isChecked) {\n var nodes = (0, _cloneDeep2.default)(flattenNodes);\n toggleDownChecked(nodes, node, isChecked);\n node.parent && toggleUpChecked(nodes, node.parent, isChecked);\n var values = serializeListOnlyParent(nodes, 'check'); // filter uncheckableItemValues\n\n return values.filter(function (v) {\n return !uncheckableItemValues.includes(v);\n });\n }, [flattenNodes, uncheckableItemValues, serializeListOnlyParent, toggleDownChecked, toggleUpChecked]);\n var handleSelect = (0, _react.useCallback)(function (node, event) {\n var currentNode = node.refKey ? flattenNodes[node.refKey] : null;\n\n if (!node || !currentNode) {\n return;\n }\n\n var selectedValues = toggleChecked(node, !currentNode.check);\n\n if (!isControlled) {\n unSerializeList({\n nodes: flattenNodes,\n key: 'check',\n value: selectedValues,\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n setValue(selectedValues);\n }\n\n setActiveNode(node);\n setFocusItemValue(node[valueKey]);\n onChange === null || onChange === void 0 ? void 0 : onChange(selectedValues, event);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, selectedValues, event);\n }, [cascade, valueKey, flattenNodes, isControlled, uncheckableItemValues, setValue, onChange, onSelect, toggleChecked, unSerializeList]);\n\n var hasValue = function hasValue() {\n var selectedValues = Object.keys(flattenNodes).map(function (refKey) {\n return flattenNodes[refKey][valueKey];\n }).filter(function (item) {\n return value.some(function (v) {\n return (0, _utils.shallowEqual)(v, item);\n });\n });\n return !!selectedValues.length;\n };\n\n var handleOpen = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$o;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$o = _triggerRef$current.open) === null || _triggerRef$current$o === void 0 ? void 0 : _triggerRef$current$o.call(_triggerRef$current);\n setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);\n focusActiveNode();\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [activeNode, focusActiveNode, onOpen, valueKey]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current2, _triggerRef$current2$, _targetRef$current;\n\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.close) === null || _triggerRef$current2$ === void 0 ? void 0 : _triggerRef$current2$.call(_triggerRef$current2);\n setSearchKeyword('');\n onClose === null || onClose === void 0 ? void 0 : onClose();\n setFocusItemValue(null);\n setActive(false);\n /**\n * when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu\n */\n\n (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();\n }, [onClose, setSearchKeyword]);\n var handleExpand = (0, _react.useCallback)(function (node) {\n var nextExpandItemValues = (0, _treeUtils.toggleExpand)({\n node: node,\n isExpand: !node.expand,\n expandItemValues: expandItemValues,\n valueKey: valueKey\n });\n setExpandItemValues(nextExpandItemValues);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(nextExpandItemValues, node, (0, _Picker.createConcatChildrenFunction)(node, node[valueKey], {\n valueKey: valueKey,\n childrenKey: childrenKey\n }));\n\n if ((0, _isFunction2.default)(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {\n loadChildren(node, getChildren);\n }\n }, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);\n (0, _Picker.usePublicMethods)(ref, {\n rootRef: inline ? treeViewRef : undefined,\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef,\n listRef: listRef,\n inline: inline\n });\n var handleClean = (0, _react.useCallback)(function (event) {\n var target = event.target; // exclude searchBar\n\n if (target.matches('div[role=\"searchbox\"] > input')) {\n return;\n }\n\n setActiveNode(null);\n setValue([]);\n setFocusItemValue(null);\n unSerializeList({\n nodes: flattenNodes,\n key: 'check',\n value: [],\n cascade: cascade,\n uncheckableItemValues: uncheckableItemValues\n });\n onChange === null || onChange === void 0 ? void 0 : onChange([], event);\n }, [cascade, flattenNodes, onChange, setValue, unSerializeList, uncheckableItemValues]);\n var handleFocusItem = (0, _react.useCallback)(function (key) {\n var focusableItems = (0, _treeUtils.getFocusableItems)(filteredData, {\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n childrenKey: childrenKey,\n expandItemValues: expandItemValues\n }, (0, _treeUtils.isSearching)(searchKeywordState));\n var selector = \".\" + checkTreePrefix('node-label');\n var focusProps = {\n focusItemValue: focusItemValue,\n focusableItems: focusableItems,\n treeNodesRefs: treeNodesRefs,\n selector: selector,\n valueKey: valueKey,\n callback: function callback(nextFocusItemValue) {\n setFocusItemValue(nextFocusItemValue);\n }\n };\n\n if (key === _utils.KEY_VALUES.DOWN) {\n (0, _treeUtils.focusNextItem)(focusProps);\n return;\n }\n\n if (key === _utils.KEY_VALUES.UP) {\n (0, _treeUtils.focusPreviousItem)(focusProps);\n }\n }, [searchKeywordState, checkTreePrefix, expandItemValues, filteredData, focusItemValue, treeNodesRefs, childrenKey, valueKey, disabledItemValues]);\n var handleLeftArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.leftArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n onExpand: handleExpand,\n childrenKey: childrenKey,\n onFocusItem: function onFocusItem() {\n var _focusItem$parent, _focusItem$parent2;\n\n setFocusItemValue(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent = focusItem.parent) === null || _focusItem$parent === void 0 ? void 0 : _focusItem$parent[valueKey]);\n (0, _treeUtils.focusTreeNode)(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, \".\" + checkTreePrefix('node-label'));\n }\n });\n }, [checkTreePrefix, expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, valueKey, childrenKey]);\n var handleRightArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.rightArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n childrenKey: childrenKey,\n onExpand: handleExpand,\n onFocusItem: function onFocusItem() {\n handleFocusItem(_utils.KEY_VALUES.DOWN);\n }\n });\n }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);\n var selectActiveItem = (0, _react.useCallback)(function (event) {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var activeItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n\n if (!(0, _utils2.isNodeUncheckable)(activeItem, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n }) && activeItem !== null) {\n handleSelect(activeItem, event);\n }\n }, [flattenNodes, focusItemValue, handleSelect, uncheckableItemValues, valueKey]);\n var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)({\n toggle: !focusItemValue || !active,\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef,\n searchInputRef: searchInputRef,\n active: active,\n onExit: handleClean,\n onClose: handleClose,\n onMenuKeyDown: function onMenuKeyDown(event) {\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem,\n del: handleClean\n });\n }\n });\n var handleTreeKeydown = (0, _react.useCallback)(function (event) {\n if (!treeViewRef.current) {\n return;\n }\n\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem\n });\n }, [handleFocusItem, handleLeftArrow, handleRightArrow, rtl, selectActiveItem]);\n\n var renderNode = function renderNode(node, layer) {\n var visible = node.visible,\n refKey = node.refKey; // when searching, all nodes should be expand\n\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n\n if (!visible) {\n return null;\n }\n\n var children = node[childrenKey];\n var visibleChildren = (0, _isUndefined2.default)(searchKeywordState) || searchKeywordState.length === 0 ? !!children : (0, _treeUtils.hasVisibleChildren)(node, childrenKey);\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n /**\n * spread operator dont copy unenumerable properties\n * so we need to copy them manually\n */\n parent: node.parent,\n expand: expand\n }), layer), {\n hasChildren: visibleChildren\n });\n\n if (nodeProps.hasChildren) {\n var _merge;\n\n layer += 1;\n var openClass = checkTreePrefix('open');\n var childrenClass = merge(checkTreePrefix('node-children'), (_merge = {}, _merge[openClass] = expand && visibleChildren, _merge));\n var nodes = children || [];\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: childrenClass,\n key: node[valueKey],\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 730,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({}, nodeProps, {\n ref: function ref(_ref) {\n return saveTreeNodeRef(_ref, refKey);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: checkTreePrefix('children'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 11\n }\n }, nodes.map(function (child) {\n return renderNode(child, layer);\n }), showIndentLine && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: checkTreePrefix('indent-line'),\n style: (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1, true),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 735,\n columnNumber: 15\n }\n })));\n }\n\n return /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({\n key: node[valueKey],\n ref: function ref(_ref2) {\n return saveTreeNodeRef(_ref2, refKey);\n }\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 746,\n columnNumber: 7\n }\n }));\n };\n\n var renderVirtualListNode = function renderVirtualListNode(nodes) {\n return function (_ref3) {\n var key = _ref3.key,\n index = _ref3.index,\n style = _ref3.style;\n var node = nodes[index];\n var layer = node.layer,\n refKey = node.refKey,\n visible = node.visible;\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n expand: expand\n }), layer), {\n hasChildren: node.hasChildren\n });\n return visible && /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({\n style: style,\n key: key,\n ref: function ref(_ref4) {\n return saveTreeNodeRef(_ref4, refKey);\n }\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 770,\n columnNumber: 11\n }\n }));\n };\n };\n\n var renderCheckTree = function renderCheckTree() {\n var _withCheckTreeClassPr, _merge2;\n\n var classes = withCheckTreeClassPrefix((_withCheckTreeClassPr = {}, _withCheckTreeClassPr[className !== null && className !== void 0 ? className : ''] = inline, _withCheckTreeClassPr['without-children'] = !(0, _utils2.isSomeNodeHasChildren)(data, childrenKey), _withCheckTreeClassPr.virtualized = virtualized, _withCheckTreeClassPr));\n var formattedNodes = getFormattedNodes(renderNode);\n\n if (!formattedNodes.some(function (v) {\n return v !== null;\n })) {\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('none'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 790,\n columnNumber: 14\n }\n }, locale.noResultsText);\n }\n\n var treeNodesClass = merge(checkTreePrefix('nodes'), (_merge2 = {}, _merge2[checkTreePrefix('all-uncheckable')] = (0, _utils2.isEveryFirstLevelNodeUncheckable)(flattenNodes, uncheckableItemValues, valueKey), _merge2));\n var styles = inline ? (0, _extends2.default)({\n height: height\n }, style) : {};\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n id: id ? id + \"-listbox\" : undefined,\n ref: treeViewRef,\n role: \"tree\",\n \"aria-multiselectable\": true,\n className: classes,\n style: styles,\n onScroll: onScroll,\n onKeyDown: inline ? handleTreeKeydown : undefined,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 803,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treeNodesClass,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 813,\n columnNumber: 9\n }\n }, virtualized ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.AutoSizer, {\n defaultHeight: inline ? height : _TreePicker.maxTreeHeight,\n style: {\n width: 'auto',\n height: 'auto'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 815,\n columnNumber: 13\n }\n }, function (_ref5) {\n var height = _ref5.height,\n width = _ref5.width;\n return /*#__PURE__*/_react.default.createElement(_VirtualizedList.List, (0, _extends2.default)({\n ref: listRef,\n width: width,\n height: height,\n rowHeight: 36,\n rowCount: formattedNodes.length,\n rowRenderer: renderVirtualListNode(formattedNodes),\n scrollToAlignment: \"center\"\n }, listProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 820,\n columnNumber: 17\n }\n }));\n }) : formattedNodes));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = (0, _classnames.default)(className, menuClassName, prefix('check-tree-menu'));\n var mergedMenuStyle = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var styles = virtualized ? (0, _extends2.default)({\n height: height\n }, mergedMenuStyle) : (0, _extends2.default)({}, mergedMenuStyle);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n onKeyDown: onPickerKeydown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 847,\n columnNumber: 7\n }\n }, searchable ? /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {\n placeholder: locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeywordState,\n inputRef: searchInputRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 856,\n columnNumber: 11\n }\n }) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\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\n\n var hasValidValue = hasValue() || value.length > 0 && (0, _isFunction2.default)(renderValue);\n var selectedElement = placeholder;\n var selectedItems = (0, _utils2.getSelectedItems)(flattenNodes, value, valueKey);\n\n if (hasValidValue) {\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 __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 879,\n columnNumber: 7\n }\n });\n\n if ((0, _isFunction2.default)(renderValue)) {\n selectedElement = renderValue(value, selectedItems, selectedElement);\n\n if ((0, _isNil2.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n countable: countable,\n cleanable: cleanable,\n disabled: disabled,\n hasValue: hasValidValue,\n name: 'check-tree'\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n if (inline) {\n return renderCheckTree();\n }\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick2.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEnter: handleOpen,\n onEntered: onEntered,\n onExited: (0, _utils.createChainedFunction)(handleClose, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 914,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 923,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit2.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n ref: targetRef,\n appearance: appearance,\n onKeyDown: onPickerKeydown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n disabled: disabled,\n as: toggleAs,\n hasValue: hasValidValue,\n active: active,\n placement: placement,\n inputValue: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 924,\n columnNumber: 9\n }\n }), selectedElement || locale.placeholder)));\n});\n\nCheckTreePicker.displayName = 'CheckTreePicker';\nCheckTreePicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n height: _propTypes.default.number,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n locale: _propTypes.default.any,\n cascade: _propTypes.default.bool,\n countable: _propTypes.default.bool,\n searchable: _propTypes.default.bool,\n virtualized: _propTypes.default.bool,\n searchKeyword: _propTypes.default.string,\n menuAutoWidth: _propTypes.default.bool,\n defaultExpandAll: _propTypes.default.bool,\n containerPadding: _propTypes.default.number,\n disabledItemValues: _propTypes.default.array,\n expandItemValues: _propTypes.default.array,\n defaultExpandItemValues: _propTypes.default.array,\n uncheckableItemValues: _propTypes.default.array,\n onSearch: _propTypes.default.func,\n onExpand: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n renderTreeNode: _propTypes.default.func,\n renderTreeIcon: _propTypes.default.func,\n searchBy: _propTypes.default.func,\n onScroll: _propTypes.default.func\n});\nvar _default = CheckTreePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/CheckTreePicker/CheckTreePicker.tsx?");
2203
2203
 
2204
2204
  /***/ }),
2205
2205
 
@@ -2221,7 +2221,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2221
2221
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2222
2222
 
2223
2223
  "use strict";
2224
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.isEveryChildChecked = isEveryChildChecked;\nexports.isSomeChildChecked = isSomeChildChecked;\nexports.isSomeNodeHasChildren = isSomeNodeHasChildren;\nexports.isAllSiblingNodeUncheckable = isAllSiblingNodeUncheckable;\nexports.isEveryFirstLevelNodeUncheckable = isEveryFirstLevelNodeUncheckable;\nexports.isNodeUncheckable = isNodeUncheckable;\nexports.getFormattedTree = getFormattedTree;\nexports.getDisabledState = getDisabledState;\nexports.getCheckTreePickerDefaultValue = getCheckTreePickerDefaultValue;\nexports.getSelectedItems = getSelectedItems;\nexports.getNodeCheckState = getNodeCheckState;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nfunction isEveryChildChecked(nodes, parent) {\n if ((0, _isNil2.default)(parent.refKey) || (0, _isNil2.default)(nodes[parent.refKey])) {\n return false;\n }\n\n var children = (0, _treeUtils.getChildrenByFlattenNodes)(nodes, parent);\n\n if (!children.length) {\n var _nodes$parent$refKey$;\n\n return (_nodes$parent$refKey$ = nodes[parent.refKey].check) !== null && _nodes$parent$refKey$ !== void 0 ? _nodes$parent$refKey$ : false;\n }\n\n return children.every(function (child) {\n return !(0, _isNil2.default)(child.refKey) && nodes[child.refKey].check;\n });\n}\n\nfunction isSomeChildChecked(nodes, parent, childrenKey) {\n if (!(0, _isNil2.default)(parent.refKey) && (0, _isNil2.default)(nodes[parent.refKey])) {\n return false;\n }\n\n var children = (0, _treeUtils.getChildrenByFlattenNodes)(nodes, parent);\n return children.some(function (child) {\n var _child$childrenKey;\n\n if ((child === null || child === void 0 ? void 0 : (_child$childrenKey = child[childrenKey]) === null || _child$childrenKey === void 0 ? void 0 : _child$childrenKey.length) > 0) {\n return isSomeChildChecked(nodes, child, childrenKey);\n }\n\n return !(0, _isNil2.default)(child.refKey) && nodes[child.refKey].check;\n });\n}\n\nfunction isSomeNodeHasChildren(data, childrenKey) {\n return data.some(function (node) {\n return Array.isArray(node[childrenKey]);\n });\n}\n/**\n * is all siblings nodes is uncheckable\n * @param {*} node\n */\n\n\nfunction isAllSiblingNodeUncheckable(node, nodes, uncheckableItemValues, valueKey) {\n var list = [];\n var parentNodeRefKey = node.parent ? node.parent.refKey : '';\n Object.keys(nodes).forEach(function (refKey) {\n var _curNode$parent;\n\n var curNode = nodes[refKey];\n\n if ((0, _isNil2.default)(node.parent) && (0, _isNil2.default)(curNode.parent)) {\n list.push(curNode);\n } else if (((_curNode$parent = curNode.parent) === null || _curNode$parent === void 0 ? void 0 : _curNode$parent.refKey) === parentNodeRefKey) {\n list.push(curNode);\n }\n });\n return list.every(function (node) {\n return isNodeUncheckable(node, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n });\n });\n}\n/**\n * get each first level node uncheckable state\n */\n\n\nfunction isEveryFirstLevelNodeUncheckable(nodes, uncheckableItemValues, valueKey) {\n var list = [];\n Object.keys(nodes).forEach(function (refKey) {\n var curNode = nodes[refKey];\n\n if (!curNode.parent) {\n list.push(curNode);\n }\n });\n return list.every(function (node) {\n return isNodeUncheckable(node, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n });\n });\n}\n/**\n * get node uncheckable state\n * @param {*} node\n */\n\n\nfunction isNodeUncheckable(node, props) {\n var _props$uncheckableIte = props.uncheckableItemValues,\n uncheckableItemValues = _props$uncheckableIte === void 0 ? [] : _props$uncheckableIte,\n valueKey = props.valueKey;\n return uncheckableItemValues.some(function (value) {\n return (0, _utils.shallowEqual)(node[valueKey], value);\n });\n}\n\nfunction getFormattedTree(data, nodes, props) {\n var childrenKey = props.childrenKey,\n cascade = props.cascade;\n return data.map(function (node) {\n var formatted = (0, _extends2.default)({}, node);\n var curNode = nodes[node.refKey];\n\n if (curNode) {\n var _node$childrenKey;\n\n var checkState = !(0, _isUndefined2.default)(cascade) ? getNodeCheckState({\n node: curNode,\n cascade: cascade,\n nodes: nodes,\n childrenKey: childrenKey\n }) : undefined;\n formatted.check = curNode.check;\n formatted.expand = curNode.expand;\n formatted.uncheckable = curNode.uncheckable;\n formatted.parent = curNode.parent;\n formatted.checkState = checkState;\n\n if (((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) > 0) {\n formatted[childrenKey] = getFormattedTree(formatted[childrenKey], nodes, props);\n }\n }\n\n return formatted;\n });\n}\n\nfunction getDisabledState(nodes, node, props) {\n var _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,\n valueKey = props.valueKey;\n\n if (!(0, _isNil2.default)(node.refKey) && (0, _isNil2.default)(nodes[node.refKey])) {\n return false;\n }\n\n return disabledItemValues.some(function (value) {\n return node.refKey && (0, _utils.shallowEqual)(nodes[node.refKey][valueKey], value);\n });\n}\n\nfunction getCheckTreePickerDefaultValue(value, uncheckableItemValues) {\n if (Array.isArray(value)) {\n return value.filter(function (v) {\n return !uncheckableItemValues.includes(v);\n });\n }\n\n return [];\n}\n\nfunction getSelectedItems(nodes, value, valueKey) {\n var checkItems = [];\n Object.keys(nodes).map(function (refKey) {\n var node = nodes[refKey];\n\n if (value.some(function (value) {\n return (0, _utils.shallowEqual)(node[valueKey], value);\n })) {\n checkItems.push(node);\n }\n });\n return checkItems;\n}\n\nfunction getNodeCheckState(_ref) {\n var nodes = _ref.nodes,\n node = _ref.node,\n cascade = _ref.cascade,\n childrenKey = _ref.childrenKey;\n\n if ((0, _isNil2.default)(nodes[node.refKey])) {\n return _utils.CHECK_STATE.UNCHECK;\n }\n\n if (!node[childrenKey] || !node[childrenKey].length || !cascade) {\n nodes[node.refKey].checkAll = false;\n return node.check ? _utils.CHECK_STATE.CHECK : _utils.CHECK_STATE.UNCHECK;\n }\n\n if (isEveryChildChecked(nodes, node)) {\n nodes[node.refKey].checkAll = true;\n nodes[node.refKey].check = true;\n return _utils.CHECK_STATE.CHECK;\n }\n\n if (isSomeChildChecked(nodes, node, childrenKey)) {\n nodes[node.refKey].checkAll = false;\n return _utils.CHECK_STATE.INDETERMINATE;\n }\n\n return _utils.CHECK_STATE.UNCHECK;\n}\n\n//# sourceURL=webpack://rsuite/./src/CheckTreePicker/utils.ts?");
2224
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.isEveryChildChecked = isEveryChildChecked;\nexports.isSomeChildChecked = isSomeChildChecked;\nexports.isSomeNodeHasChildren = isSomeNodeHasChildren;\nexports.isAllSiblingNodeUncheckable = isAllSiblingNodeUncheckable;\nexports.isEveryFirstLevelNodeUncheckable = isEveryFirstLevelNodeUncheckable;\nexports.isNodeUncheckable = isNodeUncheckable;\nexports.getFormattedTree = getFormattedTree;\nexports.getDisabledState = getDisabledState;\nexports.getCheckTreePickerDefaultValue = getCheckTreePickerDefaultValue;\nexports.getSelectedItems = getSelectedItems;\nexports.getNodeCheckState = getNodeCheckState;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _attachParent = __webpack_require__(/*! ../utils/attachParent */ \"./src/utils/attachParent.ts\");\n\nfunction isEveryChildChecked(nodes, parent) {\n if ((0, _isNil2.default)(parent.refKey) || (0, _isNil2.default)(nodes[parent.refKey])) {\n return false;\n }\n\n var children = (0, _treeUtils.getChildrenByFlattenNodes)(nodes, parent);\n\n if (!children.length) {\n var _nodes$parent$refKey$;\n\n return (_nodes$parent$refKey$ = nodes[parent.refKey].check) !== null && _nodes$parent$refKey$ !== void 0 ? _nodes$parent$refKey$ : false;\n }\n\n return children.every(function (child) {\n return !(0, _isNil2.default)(child.refKey) && nodes[child.refKey].check;\n });\n}\n\nfunction isSomeChildChecked(nodes, parent, childrenKey) {\n if (!(0, _isNil2.default)(parent.refKey) && (0, _isNil2.default)(nodes[parent.refKey])) {\n return false;\n }\n\n var children = (0, _treeUtils.getChildrenByFlattenNodes)(nodes, parent);\n return children.some(function (child) {\n var _child$childrenKey;\n\n if ((child === null || child === void 0 ? void 0 : (_child$childrenKey = child[childrenKey]) === null || _child$childrenKey === void 0 ? void 0 : _child$childrenKey.length) > 0) {\n return isSomeChildChecked(nodes, child, childrenKey);\n }\n\n return !(0, _isNil2.default)(child.refKey) && nodes[child.refKey].check;\n });\n}\n\nfunction isSomeNodeHasChildren(data, childrenKey) {\n return data.some(function (node) {\n return Array.isArray(node[childrenKey]);\n });\n}\n/**\n * is all siblings nodes is uncheckable\n * @param {*} node\n */\n\n\nfunction isAllSiblingNodeUncheckable(node, nodes, uncheckableItemValues, valueKey) {\n var list = [];\n var parentNodeRefKey = node.parent ? node.parent.refKey : '';\n Object.keys(nodes).forEach(function (refKey) {\n var _curNode$parent;\n\n var curNode = nodes[refKey];\n\n if ((0, _isNil2.default)(node.parent) && (0, _isNil2.default)(curNode.parent)) {\n list.push(curNode);\n } else if (((_curNode$parent = curNode.parent) === null || _curNode$parent === void 0 ? void 0 : _curNode$parent.refKey) === parentNodeRefKey) {\n list.push(curNode);\n }\n });\n return list.every(function (node) {\n return isNodeUncheckable(node, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n });\n });\n}\n/**\n * get each first level node uncheckable state\n */\n\n\nfunction isEveryFirstLevelNodeUncheckable(nodes, uncheckableItemValues, valueKey) {\n var list = [];\n Object.keys(nodes).forEach(function (refKey) {\n var curNode = nodes[refKey];\n\n if (!curNode.parent) {\n list.push(curNode);\n }\n });\n return list.every(function (node) {\n return isNodeUncheckable(node, {\n uncheckableItemValues: uncheckableItemValues,\n valueKey: valueKey\n });\n });\n}\n/**\n * get node uncheckable state\n * @param {*} node\n */\n\n\nfunction isNodeUncheckable(node, props) {\n var _props$uncheckableIte = props.uncheckableItemValues,\n uncheckableItemValues = _props$uncheckableIte === void 0 ? [] : _props$uncheckableIte,\n valueKey = props.valueKey;\n return uncheckableItemValues.some(function (value) {\n return (0, _utils.shallowEqual)(node[valueKey], value);\n });\n}\n\nfunction getFormattedTree(data, nodes, props) {\n var childrenKey = props.childrenKey,\n cascade = props.cascade;\n return data.map(function (node) {\n var formatted = (0, _extends2.default)({}, node);\n var curNode = nodes[node.refKey];\n\n if (curNode) {\n var _node$childrenKey;\n\n var checkState = !(0, _isUndefined2.default)(cascade) ? getNodeCheckState({\n node: curNode,\n cascade: cascade,\n nodes: nodes,\n childrenKey: childrenKey\n }) : undefined;\n formatted.check = curNode.check;\n formatted.expand = curNode.expand;\n formatted.uncheckable = curNode.uncheckable;\n (0, _attachParent.attachParent)(formatted, curNode.parent);\n formatted.checkState = checkState;\n\n if (((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) > 0) {\n formatted[childrenKey] = getFormattedTree(formatted[childrenKey], nodes, props);\n }\n }\n\n return formatted;\n });\n}\n\nfunction getDisabledState(nodes, node, props) {\n var _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,\n valueKey = props.valueKey;\n\n if (!(0, _isNil2.default)(node.refKey) && (0, _isNil2.default)(nodes[node.refKey])) {\n return false;\n }\n\n return disabledItemValues.some(function (value) {\n return node.refKey && (0, _utils.shallowEqual)(nodes[node.refKey][valueKey], value);\n });\n}\n\nfunction getCheckTreePickerDefaultValue(value, uncheckableItemValues) {\n if (Array.isArray(value)) {\n return value.filter(function (v) {\n return !uncheckableItemValues.includes(v);\n });\n }\n\n return [];\n}\n\nfunction getSelectedItems(nodes, value, valueKey) {\n var checkItems = [];\n Object.keys(nodes).map(function (refKey) {\n var node = nodes[refKey];\n\n if (value.some(function (value) {\n return (0, _utils.shallowEqual)(node[valueKey], value);\n })) {\n checkItems.push(node);\n }\n });\n return checkItems;\n}\n\nfunction getNodeCheckState(_ref) {\n var nodes = _ref.nodes,\n node = _ref.node,\n cascade = _ref.cascade,\n childrenKey = _ref.childrenKey;\n\n if ((0, _isNil2.default)(nodes[node.refKey])) {\n return _utils.CHECK_STATE.UNCHECK;\n }\n\n if (!node[childrenKey] || !node[childrenKey].length || !cascade) {\n nodes[node.refKey].checkAll = false;\n return node.check ? _utils.CHECK_STATE.CHECK : _utils.CHECK_STATE.UNCHECK;\n }\n\n if (isEveryChildChecked(nodes, node)) {\n nodes[node.refKey].checkAll = true;\n nodes[node.refKey].check = true;\n return _utils.CHECK_STATE.CHECK;\n }\n\n if (isSomeChildChecked(nodes, node, childrenKey)) {\n nodes[node.refKey].checkAll = false;\n return _utils.CHECK_STATE.INDETERMINATE;\n }\n\n return _utils.CHECK_STATE.UNCHECK;\n}\n\n//# sourceURL=webpack://rsuite/./src/CheckTreePicker/utils.ts?");
2225
2225
 
2226
2226
  /***/ }),
2227
2227
 
@@ -2375,7 +2375,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2375
2375
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2376
2376
 
2377
2377
  "use strict";
2378
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = exports.CustomConsumer = exports.CustomContext = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _prefix = __webpack_require__(/*! ../utils/prefix */ \"./src/utils/prefix.ts\");\n\nvar _DOMHelper = __webpack_require__(/*! ../DOMHelper */ \"./src/DOMHelper/index.ts\");\n\nvar _ToastContainer = _interopRequireWildcard(__webpack_require__(/*! ../toaster/ToastContainer */ \"./src/toaster/ToastContainer.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CustomProvider/CustomProvider.tsx\",\n _this = void 0;\n\nvar CustomContext = /*#__PURE__*/_react.default.createContext({});\n\nexports.CustomContext = CustomContext;\nvar Consumer = CustomContext.Consumer,\n Provider = CustomContext.Provider;\nexports.CustomConsumer = Consumer;\nvar themes = ['light', 'dark', 'high-contrast'];\n\nvar CustomProvider = function CustomProvider(props) {\n var children = props.children,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? (0, _prefix.getClassNamePrefix)() : _props$classPrefix,\n theme = props.theme,\n container = props.toastContainer,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"children\", \"classPrefix\", \"theme\", \"toastContainer\"]);\n\n var toasters = _react.default.useRef(new Map());\n\n var _usePortal = (0, _utils.usePortal)({\n container: container\n }),\n Portal = _usePortal.Portal;\n\n var value = _react.default.useMemo(function () {\n return (0, _extends2.default)({\n classPrefix: classPrefix,\n theme: theme,\n toasters: toasters\n }, rest);\n }, [classPrefix, theme, rest]);\n\n (0, _react.useEffect)(function () {\n if (_DOMHelper.canUseDOM && theme) {\n (0, _DOMHelper.addClass)(document.body, (0, _prefix.prefix)(classPrefix, \"theme-\" + theme)); // Remove the className that will cause style conflicts\n\n themes.forEach(function (t) {\n if (t !== theme) {\n (0, _DOMHelper.removeClass)(document.body, (0, _prefix.prefix)(classPrefix, \"theme-\" + t));\n }\n });\n }\n }, [classPrefix, theme]);\n return /*#__PURE__*/_react.default.createElement(Provider, {\n value: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 5\n }\n }, children, /*#__PURE__*/_react.default.createElement(Portal, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 7\n }\n }, _ToastContainer.toastPlacements.map(function (placement) {\n return /*#__PURE__*/_react.default.createElement(_ToastContainer.default, {\n key: placement,\n placement: placement,\n ref: function ref(_ref) {\n toasters.current.set(placement, _ref);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 11\n }\n });\n })));\n};\n\nvar _default = CustomProvider;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/CustomProvider/CustomProvider.tsx?");
2378
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = exports.CustomConsumer = exports.CustomContext = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _prefix = __webpack_require__(/*! ../utils/prefix */ \"./src/utils/prefix.ts\");\n\nvar _DOMHelper = __webpack_require__(/*! ../DOMHelper */ \"./src/DOMHelper/index.ts\");\n\nvar _ToastContainer = _interopRequireWildcard(__webpack_require__(/*! ../toaster/ToastContainer */ \"./src/toaster/ToastContainer.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/CustomProvider/CustomProvider.tsx\",\n _this = void 0;\n\nvar CustomContext = /*#__PURE__*/_react.default.createContext({});\n\nexports.CustomContext = CustomContext;\nvar Consumer = CustomContext.Consumer,\n Provider = CustomContext.Provider;\nexports.CustomConsumer = Consumer;\nvar themes = ['light', 'dark', 'high-contrast'];\n\nvar CustomProvider = function CustomProvider(props) {\n var children = props.children,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? (0, _prefix.getClassNamePrefix)() : _props$classPrefix,\n theme = props.theme,\n container = props.toastContainer,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"children\", \"classPrefix\", \"theme\", \"toastContainer\"]);\n\n var toasters = _react.default.useRef(new Map());\n\n var _usePortal = (0, _utils.usePortal)({\n container: container,\n waitMount: true\n }),\n Portal = _usePortal.Portal;\n\n var value = _react.default.useMemo(function () {\n return (0, _extends2.default)({\n classPrefix: classPrefix,\n theme: theme,\n toasters: toasters\n }, rest);\n }, [classPrefix, theme, rest]);\n\n (0, _react.useEffect)(function () {\n if (_DOMHelper.canUseDOM && theme) {\n (0, _DOMHelper.addClass)(document.body, (0, _prefix.prefix)(classPrefix, \"theme-\" + theme)); // Remove the className that will cause style conflicts\n\n themes.forEach(function (t) {\n if (t !== theme) {\n (0, _DOMHelper.removeClass)(document.body, (0, _prefix.prefix)(classPrefix, \"theme-\" + t));\n }\n });\n }\n }, [classPrefix, theme]);\n return /*#__PURE__*/_react.default.createElement(Provider, {\n value: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 5\n }\n }, children, /*#__PURE__*/_react.default.createElement(Portal, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"rs-toast-provider\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 9\n }\n }, _ToastContainer.toastPlacements.map(function (placement) {\n return /*#__PURE__*/_react.default.createElement(_ToastContainer.default, {\n key: placement,\n placement: placement,\n ref: function ref(_ref) {\n toasters.current.set(placement, _ref);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 13\n }\n });\n }))));\n};\n\nvar _default = CustomProvider;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/CustomProvider/CustomProvider.tsx?");
2379
2379
 
2380
2380
  /***/ }),
2381
2381
 
@@ -2430,7 +2430,7 @@ eval("\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar isElement
2430
2430
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2431
2431
 
2432
2432
  "use strict";
2433
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _mapValues = _interopRequireDefault(__webpack_require__(/*! lodash/mapValues */ \"./node_modules/lodash/mapValues.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _Calendar = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/Calendar */ \"./node_modules/@rsuite/icons/legacy/Calendar.js\"));\n\nvar _ClockO = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/ClockO */ \"./node_modules/@rsuite/icons/legacy/ClockO.js\"));\n\nvar _Calendar2 = __webpack_require__(/*! ../Calendar */ \"./src/Calendar/index.tsx\");\n\nvar _useCalendarDate2 = _interopRequireDefault(__webpack_require__(/*! ../Calendar/useCalendarDate */ \"./src/Calendar/useCalendarDate.ts\"));\n\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ./Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DatePicker/utils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DatePicker/DatePicker.tsx\",\n _this = void 0;\n\nvar DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n calendarDefaultDate = props.calendarDefaultDate,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n _props$format = props.format,\n formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,\n isoWeek = props.isoWeek,\n _props$limitEndYear = props.limitEndYear,\n limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,\n overrideLocale = props.locale,\n menuClassName = props.menuClassName,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n oneTap = props.oneTap,\n _props$placeholder = props.placeholder,\n placeholder = _props$placeholder === void 0 ? '' : _props$placeholder,\n ranges = props.ranges,\n valueProp = props.value,\n showMeridian = props.showMeridian,\n showWeekNumbers = props.showWeekNumbers,\n style = props.style,\n toggleAs = props.toggleAs,\n caretAsProp = props.caretAs,\n disabledDateProp = props.disabledDate,\n renderValue = props.renderValue,\n onChange = props.onChange,\n onChangeCalendarDate = props.onChangeCalendarDate,\n onClean = props.onClean,\n onClose = props.onClose,\n onEntered = props.onEntered,\n onExited = props.onExited,\n onNextMonth = props.onNextMonth,\n onOk = props.onOk,\n onOpen = props.onOpen,\n onPrevMonth = props.onPrevMonth,\n onSelect = props.onSelect,\n onToggleMonthDropdown = props.onToggleMonthDropdown,\n onToggleTimeDropdown = props.onToggleTimeDropdown,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\", \"calendarDefaultDate\", \"cleanable\", \"defaultValue\", \"disabled\", \"format\", \"isoWeek\", \"limitEndYear\", \"locale\", \"menuClassName\", \"appearance\", \"placement\", \"oneTap\", \"placeholder\", \"ranges\", \"value\", \"showMeridian\", \"showWeekNumbers\", \"style\", \"toggleAs\", \"caretAs\", \"disabledDate\", \"renderValue\", \"onChange\", \"onChangeCalendarDate\", \"onClean\", \"onClose\", \"onEntered\", \"onExited\", \"onNextMonth\", \"onOk\", \"onOpen\", \"onPrevMonth\", \"onSelect\", \"onToggleMonthDropdown\", \"onToggleTimeDropdown\"]);\n\n var _useCustom = (0, _utils.useCustom)('DatePicker', overrideLocale),\n locale = _useCustom.locale,\n formatDate = _useCustom.formatDate,\n parseDate = _useCustom.parseDate;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1];\n\n var _useCalendarDate = (0, _useCalendarDate2.default)(valueProp, calendarDefaultDate),\n calendarDate = _useCalendarDate.calendarDate,\n setCalendarDate = _useCalendarDate.setCalendarDate;\n\n var _useState = (0, _react.useState)(),\n inputState = _useState[0],\n setInputState = _useState[1];\n\n var _useCalendarState = (0, _utils2.useCalendarState)(),\n calendarState = _useCalendarState.calendarState,\n reset = _useCalendarState.reset,\n openMonth = _useCalendarState.openMonth,\n openTime = _useCalendarState.openTime;\n\n var _useState2 = (0, _react.useState)(false),\n active = _useState2[0],\n setActive = _useState2[1];\n\n var triggerRef = (0, _react.useRef)(null);\n var rootRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n (0, _Picker.usePublicMethods)(ref, {\n rootRef: rootRef,\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n /**\n * Switch to the callback triggered after the next month.\n */\n\n var handleMoveForward = (0, _react.useCallback)(function (nextPageDate) {\n setCalendarDate(nextPageDate);\n onNextMonth === null || onNextMonth === void 0 ? void 0 : onNextMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextPageDate);\n }, [onChangeCalendarDate, onNextMonth, setCalendarDate]);\n /**\n * Switch to the callback triggered after the previous month.\n */\n\n var handleMoveBackward = (0, _react.useCallback)(function (nextPageDate) {\n setCalendarDate(nextPageDate);\n onPrevMonth === null || onPrevMonth === void 0 ? void 0 : onPrevMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextPageDate);\n }, [onChangeCalendarDate, onPrevMonth, setCalendarDate]);\n /**\n * The callback triggered when the date changes.\n */\n\n var handleDateChange = (0, _react.useCallback)(function (nextValue, event) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextValue, event);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextValue, event);\n }, [onChangeCalendarDate, onSelect]);\n /**\n * A callback triggered when the time on the calendar changes.\n */\n\n var handleChangePageTime = (0, _react.useCallback)(function (nextPageTime) {\n setCalendarDate(nextPageTime);\n handleDateChange(nextPageTime);\n }, [handleDateChange, setCalendarDate]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$c;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, []);\n /**\n * The callback triggered when PM/AM is switched.\n */\n\n var handleToggleMeridian = (0, _react.useCallback)(function () {\n var hours = _utils.DateUtils.getHours(calendarDate);\n\n var nextHours = hours >= 12 ? hours - 12 : hours + 12;\n\n var nextDate = _utils.DateUtils.setHours(calendarDate, nextHours);\n\n setCalendarDate(nextDate);\n }, [calendarDate, setCalendarDate]);\n var updateValue = (0, _react.useCallback)(function (event, nextPageDate, closeOverlay) {\n if (closeOverlay === void 0) {\n closeOverlay = true;\n }\n\n var nextValue = typeof nextPageDate !== 'undefined' ? nextPageDate : calendarDate;\n setCalendarDate(nextValue || new Date());\n setValue(nextValue);\n\n if (nextValue !== value) {\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n } // `closeOverlay` default value is `true`\n\n\n if (closeOverlay !== false) {\n handleClose();\n }\n }, [handleClose, onChange, calendarDate, setCalendarDate, setValue, value]);\n /**\n * The callback triggered after the date in the shortcut area is clicked.\n */\n\n var handleShortcutPageDate = (0, _react.useCallback)(function (value, closeOverlay, event) {\n updateValue(event, value, closeOverlay);\n handleDateChange(value, event);\n }, [handleDateChange, updateValue]);\n /**\n * The callback triggered after clicking the OK button.\n */\n\n var handleOK = (0, _react.useCallback)(function (event) {\n updateValue(event);\n onOk === null || onOk === void 0 ? void 0 : onOk(calendarDate, event);\n }, [updateValue, onOk, calendarDate]);\n /**\n * Toggle month selection panel\n */\n\n var handleMonthDropdown = (0, _react.useCallback)(function () {\n if (calendarState === _Calendar2.CalendarState.DROP_MONTH) {\n reset();\n } else {\n openMonth();\n }\n\n onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(calendarState !== _Calendar2.CalendarState.DROP_MONTH);\n }, [calendarState, onToggleMonthDropdown, openMonth, reset]);\n /**\n * Switch time selection panel\n */\n\n var handleTimeDropdown = (0, _react.useCallback)(function () {\n if (calendarState === _Calendar2.CalendarState.DROP_TIME) {\n reset();\n } else {\n openTime();\n }\n\n onToggleTimeDropdown === null || onToggleTimeDropdown === void 0 ? void 0 : onToggleTimeDropdown(calendarState !== _Calendar2.CalendarState.DROP_TIME);\n }, [calendarState, onToggleTimeDropdown, openTime, reset]);\n /**\n * Callback after clicking the clear button.\n */\n\n var handleClean = (0, _react.useCallback)(function (event) {\n setCalendarDate(new Date());\n updateValue(event, null);\n }, [setCalendarDate, updateValue]);\n /**\n * Handle keyboard events.\n */\n\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n triggerRef: triggerRef,\n targetRef: targetRef,\n active: active,\n onExit: handleClean\n }, rest));\n /**\n * Callback after the date is selected.\n */\n\n var handleSelect = (0, _react.useCallback)(function (nextValue, event, updatableValue) {\n if (updatableValue === void 0) {\n updatableValue = true;\n }\n\n setCalendarDate( // Determine whether the current value contains time, if not, use calendarDate.\n _utils.DateUtils.shouldTime(formatStr) ? nextValue : (0, _utils.composeFunctions)(function (d) {\n return _utils.DateUtils.setHours(d, _utils.DateUtils.getHours(calendarDate));\n }, function (d) {\n return _utils.DateUtils.setMinutes(d, _utils.DateUtils.getMinutes(calendarDate));\n }, function (d) {\n return _utils.DateUtils.setSeconds(d, _utils.DateUtils.getSeconds(calendarDate));\n })(nextValue));\n handleDateChange(nextValue);\n\n if (oneTap && updatableValue) {\n updateValue(event, nextValue);\n }\n }, [formatStr, handleDateChange, oneTap, calendarDate, setCalendarDate, updateValue]);\n /**\n * A callback triggered when the date on the calendar changes.\n */\n\n var handleChangePageDate = (0, _react.useCallback)(function (nextPageDate, event) {\n setCalendarDate(nextPageDate);\n reset();\n handleDateChange(nextPageDate); // Show only the calendar month panel. formatStr = 'yyyy-MM'\n\n var onlyShowMonth = _utils.DateUtils.shouldMonth(formatStr) && !_utils.DateUtils.shouldDate(formatStr);\n\n if (oneTap && onlyShowMonth) {\n updateValue(event, nextPageDate);\n }\n }, [formatStr, handleDateChange, oneTap, reset, setCalendarDate, updateValue]);\n var disabledDate = (0, _react.useCallback)(function (date) {\n var _disabledDateProp;\n\n return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;\n }, [disabledDateProp]);\n /**\n * Callback after the input box value is changed.\n */\n\n var handleInputChange = (0, _react.useCallback)(function (value, event) {\n setInputState('Typing'); // isMatch('01/11/2020', 'MM/dd/yyyy') ==> true\n // isMatch('2020-11-01', 'MM/dd/yyyy') ==> false\n\n if (!_utils.DateUtils.isMatch(value, formatStr, {\n locale: locale.dateLocale\n })) {\n setInputState('Error');\n return;\n }\n\n var date = parseDate(value, formatStr); // If only the time is included in the characters, it will default to today.\n\n if (_utils.DateUtils.shouldOnlyTime(formatStr)) {\n date = new Date(_utils.DateUtils.format(new Date(), 'yyyy-MM-dd') + \" \" + value);\n }\n\n if (!_utils.DateUtils.isValid(date)) {\n setInputState('Error');\n return;\n }\n\n if (disabledDate(date)) {\n setInputState('Error');\n return;\n }\n\n handleSelect(date, event, false);\n }, [formatStr, locale, parseDate, disabledDate, handleSelect]);\n /**\n * The callback after the enter key is triggered on the input\n */\n\n var handleInputPressEnd = (0, _react.useCallback)(function (event) {\n if (inputState === 'Typing') {\n updateValue(event, calendarDate);\n }\n\n setInputState('Initial');\n }, [inputState, calendarDate, updateValue]);\n var handleEntered = (0, _react.useCallback)(function () {\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [onOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n reset();\n setActive(false);\n }, [onClose, reset]); // Check whether the time is within the time range of the shortcut option in the toolbar.\n\n var disabledToolbarHandle = (0, _react.useCallback)(function (date) {\n var _disabledDateProp2;\n\n var allowDate = (_disabledDateProp2 = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date)) !== null && _disabledDateProp2 !== void 0 ? _disabledDateProp2 : false;\n\n var allowTime = _utils.DateUtils.disabledTime(props, date);\n\n return allowDate || allowTime;\n }, [disabledDateProp, props]);\n var calendarProps = (0, _react.useMemo)(function () {\n return (0, _mapValues.default)((0, _pick.default)(props, _utils.DateUtils.calendarOnlyProps), function (disabledOrHiddenTimeFunc) {\n return function (next, date) {\n var _disabledOrHiddenTime;\n\n return (_disabledOrHiddenTime = disabledOrHiddenTimeFunc === null || disabledOrHiddenTimeFunc === void 0 ? void 0 : disabledOrHiddenTimeFunc(next, date)) !== null && _disabledOrHiddenTime !== void 0 ? _disabledOrHiddenTime : false;\n };\n });\n }, [props]);\n var inSameMonth = (0, _react.useCallback)(function (date) {\n return _utils.DateUtils.isSameMonth(date, calendarDate);\n }, [calendarDate]);\n\n var calendar = /*#__PURE__*/_react.default.createElement(_Calendar2.Calendar, (0, _extends2.default)({}, calendarProps, {\n locale: locale,\n showWeekNumbers: showWeekNumbers,\n showMeridian: showMeridian,\n disabledDate: disabledDate,\n limitEndYear: limitEndYear,\n format: formatStr,\n isoWeek: isoWeek,\n inSameMonth: inSameMonth,\n calendarState: calendarState,\n calendarDate: calendarDate,\n onMoveForward: handleMoveForward,\n onMoveBackward: handleMoveBackward,\n onSelect: handleSelect,\n onToggleMonthDropdown: handleMonthDropdown,\n onToggleTimeDropdown: handleTimeDropdown,\n onChangePageDate: handleChangePageDate,\n onChangePageTime: handleChangePageTime,\n onToggleMeridian: handleToggleMeridian,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 7\n }\n }));\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(menuClassName, className, prefix('date-menu'));\n var styles = {\n left: left,\n top: top\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n role: \"dialog\",\n className: classes,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n style: styles,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 9\n }\n }, calendar, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n ranges: ranges,\n calendarDate: calendarDate,\n disabledOkBtn: disabledToolbarHandle,\n disabledShortcut: disabledToolbarHandle,\n onClickShortcut: handleShortcutPageDate,\n onOk: handleOK,\n hideOkBtn: oneTap,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 11\n }\n }));\n };\n\n var hasValue = !!value;\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n name: 'date',\n appearance: appearance,\n hasValue: hasValue,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n var renderDate = (0, _react.useCallback)(function () {\n var _renderValue;\n\n if (!value) {\n return placeholder || formatStr;\n }\n\n return (_renderValue = renderValue === null || renderValue === void 0 ? void 0 : renderValue(value, formatStr)) !== null && _renderValue !== void 0 ? _renderValue : formatDate(value, formatStr);\n }, [formatStr, formatDate, placeholder, renderValue, value]);\n var caretAs = (0, _react.useMemo)(function () {\n return caretAsProp || (_utils.DateUtils.shouldOnlyTime(formatStr) ? _ClockO.default : _Calendar.default);\n }, [caretAsProp, formatStr]);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n trigger: \"active\",\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 559,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: merge(className, classes),\n style: style,\n ref: rootRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 568,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _utils.DateUtils.calendarOnlyProps)), {\n className: prefix({\n error: inputState === 'Error'\n }),\n as: toggleAs,\n ref: targetRef,\n appearance: appearance,\n input: true,\n inputValue: value ? formatDate(value, formatStr) : '',\n inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : formatStr,\n inputMask: _utils.DateUtils.getDateMask(formatStr),\n onInputChange: handleInputChange,\n onInputBlur: handleInputPressEnd,\n onInputPressEnter: handleInputPressEnd,\n onKeyDown: onPickerKeyDown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n disabled: disabled,\n caretAs: caretAs,\n \"aria-haspopup\": \"dialog\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 569,\n columnNumber: 11\n }\n }), renderDate())));\n});\n\nDatePicker.displayName = 'DatePicker';\nDatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {\n calendarDefaultDate: _propTypes.default.instanceOf(Date),\n defaultValue: _propTypes.default.instanceOf(Date),\n disabledDate: _propTypes.default.func,\n disabledHours: _propTypes.default.func,\n disabledMinutes: _propTypes.default.func,\n disabledSeconds: _propTypes.default.func,\n format: _propTypes.default.string,\n hideHours: _propTypes.default.func,\n hideMinutes: _propTypes.default.func,\n hideSeconds: _propTypes.default.func,\n isoWeek: _propTypes.default.bool,\n limitEndYear: _propTypes.default.number,\n onChange: _propTypes.default.func,\n onChangeCalendarDate: _propTypes.default.func,\n onNextMonth: _propTypes.default.func,\n onOk: _propTypes.default.func,\n onPrevMonth: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onToggleMonthDropdown: _propTypes.default.func,\n onToggleTimeDropdown: _propTypes.default.func,\n oneTap: _propTypes.default.bool,\n panelContainerRef: _propTypes.default.any,\n ranges: _propTypes.default.array,\n showMeridian: _propTypes.default.bool,\n showWeekNumbers: _propTypes.default.bool,\n value: _propTypes.default.instanceOf(Date)\n});\nvar _default = DatePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DatePicker/DatePicker.tsx?");
2433
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _mapValues = _interopRequireDefault(__webpack_require__(/*! lodash/mapValues */ \"./node_modules/lodash/mapValues.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _Calendar = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/Calendar */ \"./node_modules/@rsuite/icons/legacy/Calendar.js\"));\n\nvar _ClockO = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/ClockO */ \"./node_modules/@rsuite/icons/legacy/ClockO.js\"));\n\nvar _Calendar2 = __webpack_require__(/*! ../Calendar */ \"./src/Calendar/index.tsx\");\n\nvar _useCalendarDate2 = _interopRequireDefault(__webpack_require__(/*! ../Calendar/useCalendarDate */ \"./src/Calendar/useCalendarDate.ts\"));\n\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ./Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DatePicker/utils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DatePicker/DatePicker.tsx\",\n _this = void 0;\n\nvar DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n calendarDefaultDate = props.calendarDefaultDate,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n _props$format = props.format,\n formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,\n isoWeek = props.isoWeek,\n _props$limitEndYear = props.limitEndYear,\n limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,\n overrideLocale = props.locale,\n menuClassName = props.menuClassName,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n oneTap = props.oneTap,\n _props$placeholder = props.placeholder,\n placeholder = _props$placeholder === void 0 ? '' : _props$placeholder,\n ranges = props.ranges,\n valueProp = props.value,\n showMeridian = props.showMeridian,\n showWeekNumbers = props.showWeekNumbers,\n style = props.style,\n toggleAs = props.toggleAs,\n caretAsProp = props.caretAs,\n disabledDateProp = props.disabledDate,\n renderValue = props.renderValue,\n onChange = props.onChange,\n onChangeCalendarDate = props.onChangeCalendarDate,\n onClean = props.onClean,\n onClose = props.onClose,\n onEntered = props.onEntered,\n onExited = props.onExited,\n onNextMonth = props.onNextMonth,\n onOk = props.onOk,\n onOpen = props.onOpen,\n onPrevMonth = props.onPrevMonth,\n onSelect = props.onSelect,\n onToggleMonthDropdown = props.onToggleMonthDropdown,\n onToggleTimeDropdown = props.onToggleTimeDropdown,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\", \"calendarDefaultDate\", \"cleanable\", \"defaultValue\", \"disabled\", \"format\", \"isoWeek\", \"limitEndYear\", \"locale\", \"menuClassName\", \"appearance\", \"placement\", \"oneTap\", \"placeholder\", \"ranges\", \"value\", \"showMeridian\", \"showWeekNumbers\", \"style\", \"toggleAs\", \"caretAs\", \"disabledDate\", \"renderValue\", \"onChange\", \"onChangeCalendarDate\", \"onClean\", \"onClose\", \"onEntered\", \"onExited\", \"onNextMonth\", \"onOk\", \"onOpen\", \"onPrevMonth\", \"onSelect\", \"onToggleMonthDropdown\", \"onToggleTimeDropdown\"]);\n\n var _useCustom = (0, _utils.useCustom)('DatePicker', overrideLocale),\n locale = _useCustom.locale,\n formatDate = _useCustom.formatDate,\n parseDate = _useCustom.parseDate;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1];\n\n var _useCalendarDate = (0, _useCalendarDate2.default)(valueProp, calendarDefaultDate),\n calendarDate = _useCalendarDate.calendarDate,\n setCalendarDate = _useCalendarDate.setCalendarDate;\n\n var _useState = (0, _react.useState)(),\n inputState = _useState[0],\n setInputState = _useState[1];\n\n var _useCalendarState = (0, _utils2.useCalendarState)(),\n calendarState = _useCalendarState.calendarState,\n reset = _useCalendarState.reset,\n openMonth = _useCalendarState.openMonth,\n openTime = _useCalendarState.openTime;\n\n var _useState2 = (0, _react.useState)(false),\n active = _useState2[0],\n setActive = _useState2[1];\n\n var triggerRef = (0, _react.useRef)(null);\n var rootRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n (0, _Picker.usePublicMethods)(ref, {\n rootRef: rootRef,\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n /**\n * Switch to the callback triggered after the next month.\n */\n\n var handleMoveForward = (0, _react.useCallback)(function (nextPageDate) {\n setCalendarDate(nextPageDate);\n onNextMonth === null || onNextMonth === void 0 ? void 0 : onNextMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextPageDate);\n }, [onChangeCalendarDate, onNextMonth, setCalendarDate]);\n /**\n * Switch to the callback triggered after the previous month.\n */\n\n var handleMoveBackward = (0, _react.useCallback)(function (nextPageDate) {\n setCalendarDate(nextPageDate);\n onPrevMonth === null || onPrevMonth === void 0 ? void 0 : onPrevMonth(nextPageDate);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextPageDate);\n }, [onChangeCalendarDate, onPrevMonth, setCalendarDate]);\n /**\n * The callback triggered when the date changes.\n */\n\n var handleDateChange = (0, _react.useCallback)(function (nextValue, event) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextValue, event);\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(nextValue, event);\n }, [onChangeCalendarDate, onSelect]);\n /**\n * A callback triggered when the time on the calendar changes.\n */\n\n var handleChangePageTime = (0, _react.useCallback)(function (nextPageTime) {\n setCalendarDate(nextPageTime);\n handleDateChange(nextPageTime);\n }, [handleDateChange, setCalendarDate]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$c;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, []);\n /**\n * The callback triggered when PM/AM is switched.\n */\n\n var handleToggleMeridian = (0, _react.useCallback)(function () {\n var hours = _utils.DateUtils.getHours(calendarDate);\n\n var nextHours = hours >= 12 ? hours - 12 : hours + 12;\n\n var nextDate = _utils.DateUtils.setHours(calendarDate, nextHours);\n\n setCalendarDate(nextDate);\n }, [calendarDate, setCalendarDate]);\n var updateValue = (0, _react.useCallback)(function (event, nextPageDate, closeOverlay) {\n if (closeOverlay === void 0) {\n closeOverlay = true;\n }\n\n var nextValue = typeof nextPageDate !== 'undefined' ? nextPageDate : calendarDate;\n setCalendarDate(nextValue || new Date());\n setValue(nextValue);\n\n if (nextValue !== value) {\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n } // `closeOverlay` default value is `true`\n\n\n if (closeOverlay !== false) {\n handleClose();\n }\n }, [handleClose, onChange, calendarDate, setCalendarDate, setValue, value]);\n /**\n * The callback triggered after the date in the shortcut area is clicked.\n */\n\n var handleShortcutPageDate = (0, _react.useCallback)(function (value, closeOverlay, event) {\n updateValue(event, value, closeOverlay);\n handleDateChange(value, event);\n }, [handleDateChange, updateValue]);\n /**\n * The callback triggered after clicking the OK button.\n */\n\n var handleOK = (0, _react.useCallback)(function (event) {\n updateValue(event);\n onOk === null || onOk === void 0 ? void 0 : onOk(calendarDate, event);\n }, [updateValue, onOk, calendarDate]);\n /**\n * Toggle month selection panel\n */\n\n var handleMonthDropdown = (0, _react.useCallback)(function () {\n if (calendarState === _Calendar2.CalendarState.DROP_MONTH) {\n reset();\n } else {\n openMonth();\n }\n\n onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(calendarState !== _Calendar2.CalendarState.DROP_MONTH);\n }, [calendarState, onToggleMonthDropdown, openMonth, reset]);\n /**\n * Switch time selection panel\n */\n\n var handleTimeDropdown = (0, _react.useCallback)(function () {\n if (calendarState === _Calendar2.CalendarState.DROP_TIME) {\n reset();\n } else {\n openTime();\n }\n\n onToggleTimeDropdown === null || onToggleTimeDropdown === void 0 ? void 0 : onToggleTimeDropdown(calendarState !== _Calendar2.CalendarState.DROP_TIME);\n }, [calendarState, onToggleTimeDropdown, openTime, reset]);\n /**\n * Callback after clicking the clear button.\n */\n\n var handleClean = (0, _react.useCallback)(function (event) {\n setCalendarDate(new Date());\n updateValue(event, null);\n }, [setCalendarDate, updateValue]);\n /**\n * Handle keyboard events.\n */\n\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n triggerRef: triggerRef,\n targetRef: targetRef,\n active: active,\n onExit: handleClean\n }, rest));\n /**\n * Callback after the date is selected.\n */\n\n var handleSelect = (0, _react.useCallback)(function (nextValue, event, updatableValue) {\n if (updatableValue === void 0) {\n updatableValue = true;\n }\n\n setCalendarDate( // Determine whether the current value contains time, if not, use calendarDate.\n _utils.DateUtils.shouldTime(formatStr) ? nextValue : (0, _utils.composeFunctions)(function (d) {\n return _utils.DateUtils.setHours(d, _utils.DateUtils.getHours(calendarDate));\n }, function (d) {\n return _utils.DateUtils.setMinutes(d, _utils.DateUtils.getMinutes(calendarDate));\n }, function (d) {\n return _utils.DateUtils.setSeconds(d, _utils.DateUtils.getSeconds(calendarDate));\n })(nextValue));\n handleDateChange(nextValue);\n\n if (oneTap && updatableValue) {\n updateValue(event, nextValue);\n }\n }, [formatStr, handleDateChange, oneTap, calendarDate, setCalendarDate, updateValue]);\n /**\n * A callback triggered when the date on the calendar changes.\n */\n\n var handleChangePageDate = (0, _react.useCallback)(function (nextPageDate, event) {\n setCalendarDate(nextPageDate);\n reset();\n handleDateChange(nextPageDate); // Show only the calendar month panel. formatStr = 'yyyy-MM'\n\n var onlyShowMonth = _utils.DateUtils.shouldMonth(formatStr) && !_utils.DateUtils.shouldDate(formatStr);\n\n if (oneTap && onlyShowMonth) {\n updateValue(event, nextPageDate);\n }\n }, [formatStr, handleDateChange, oneTap, reset, setCalendarDate, updateValue]);\n var disabledDate = (0, _react.useCallback)(function (date) {\n var _disabledDateProp;\n\n return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;\n }, [disabledDateProp]);\n /**\n * Callback after the input box value is changed.\n */\n\n var handleInputChange = (0, _react.useCallback)(function (value, event) {\n setInputState('Typing'); // isMatch('01/11/2020', 'MM/dd/yyyy') ==> true\n // isMatch('2020-11-01', 'MM/dd/yyyy') ==> false\n\n if (!_utils.DateUtils.isMatch(value, formatStr, {\n locale: locale.dateLocale\n })) {\n setInputState('Error');\n return;\n }\n\n var date = parseDate(value, formatStr); // If only the time is included in the characters, it will default to today.\n\n if (_utils.DateUtils.shouldOnlyTime(formatStr)) {\n date = new Date(_utils.DateUtils.format(new Date(), 'yyyy-MM-dd') + \" \" + value);\n }\n\n if (!_utils.DateUtils.isValid(date)) {\n setInputState('Error');\n return;\n }\n\n if (disabledDate(date)) {\n setInputState('Error');\n return;\n }\n\n handleSelect(date, event, false);\n }, [formatStr, locale, parseDate, disabledDate, handleSelect]);\n /**\n * The callback after the enter key is triggered on the input\n */\n\n var handleInputPressEnd = (0, _react.useCallback)(function (event) {\n if (inputState === 'Typing') {\n updateValue(event, calendarDate);\n }\n\n setInputState('Initial');\n }, [inputState, calendarDate, updateValue]);\n var handleEntered = (0, _react.useCallback)(function () {\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [onOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n reset();\n setActive(false);\n }, [onClose, reset]); // Check whether the time is within the time range of the shortcut option in the toolbar.\n\n var disabledToolbarHandle = (0, _react.useCallback)(function (date) {\n var _disabledDateProp2;\n\n var allowDate = (_disabledDateProp2 = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date)) !== null && _disabledDateProp2 !== void 0 ? _disabledDateProp2 : false;\n\n var allowTime = _utils.DateUtils.disabledTime(props, date);\n\n return allowDate || allowTime;\n }, [disabledDateProp, props]);\n var calendarProps = (0, _react.useMemo)(function () {\n return (0, _mapValues.default)((0, _pick.default)(props, _utils.DateUtils.calendarOnlyProps), function (disabledOrHiddenTimeFunc) {\n return function (next, date) {\n var _disabledOrHiddenTime;\n\n return (_disabledOrHiddenTime = disabledOrHiddenTimeFunc === null || disabledOrHiddenTimeFunc === void 0 ? void 0 : disabledOrHiddenTimeFunc(next, date)) !== null && _disabledOrHiddenTime !== void 0 ? _disabledOrHiddenTime : false;\n };\n });\n }, [props]);\n var inSameMonth = (0, _react.useCallback)(function (date) {\n return _utils.DateUtils.isSameMonth(date, calendarDate);\n }, [calendarDate]);\n\n var calendar = /*#__PURE__*/_react.default.createElement(_Calendar2.Calendar, (0, _extends2.default)({}, calendarProps, {\n locale: locale,\n showWeekNumbers: showWeekNumbers,\n showMeridian: showMeridian,\n disabledDate: disabledDate,\n limitEndYear: limitEndYear,\n format: formatStr,\n isoWeek: isoWeek,\n inSameMonth: inSameMonth,\n calendarState: calendarState,\n calendarDate: calendarDate,\n onMoveForward: handleMoveForward,\n onMoveBackward: handleMoveBackward,\n onSelect: handleSelect,\n onToggleMonthDropdown: handleMonthDropdown,\n onToggleTimeDropdown: handleTimeDropdown,\n onChangePageDate: handleChangePageDate,\n onChangePageTime: handleChangePageTime,\n onToggleMeridian: handleToggleMeridian,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 7\n }\n }));\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(menuClassName, className, prefix('date-menu'));\n var styles = {\n left: left,\n top: top\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n role: \"dialog\",\n className: classes,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n style: styles,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 9\n }\n }, calendar, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n ranges: ranges,\n calendarDate: calendarDate,\n disabledOkBtn: disabledToolbarHandle,\n disabledShortcut: disabledToolbarHandle,\n onClickShortcut: handleShortcutPageDate,\n onOk: handleOK,\n hideOkBtn: oneTap,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 11\n }\n }));\n };\n\n var hasValue = !!value;\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n name: 'date',\n appearance: appearance,\n hasValue: hasValue,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n var renderDate = (0, _react.useCallback)(function () {\n var _renderValue;\n\n if (!value) {\n return placeholder || formatStr;\n }\n\n return (_renderValue = renderValue === null || renderValue === void 0 ? void 0 : renderValue(value, formatStr)) !== null && _renderValue !== void 0 ? _renderValue : formatDate(value, formatStr);\n }, [formatStr, formatDate, placeholder, renderValue, value]);\n var caretAs = (0, _react.useMemo)(function () {\n return caretAsProp || (_utils.DateUtils.shouldOnlyTime(formatStr) ? _ClockO.default : _Calendar.default);\n }, [caretAsProp, formatStr]);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n trigger: \"active\",\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 559,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: merge(className, classes),\n style: style,\n ref: rootRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 568,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _utils.DateUtils.calendarOnlyProps)), {\n className: prefix({\n error: inputState === 'Error'\n }),\n as: toggleAs,\n ref: targetRef,\n appearance: appearance,\n editable: true,\n inputValue: value ? formatDate(value, formatStr) : '',\n inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : formatStr,\n inputMask: _utils.DateUtils.getDateMask(formatStr),\n onInputChange: handleInputChange,\n onInputBlur: handleInputPressEnd,\n onInputPressEnter: handleInputPressEnd,\n onKeyDown: onPickerKeyDown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n disabled: disabled,\n caretAs: caretAs,\n \"aria-haspopup\": \"dialog\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 569,\n columnNumber: 11\n }\n }), renderDate())));\n});\n\nDatePicker.displayName = 'DatePicker';\nDatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {\n calendarDefaultDate: _propTypes.default.instanceOf(Date),\n defaultValue: _propTypes.default.instanceOf(Date),\n disabledDate: _propTypes.default.func,\n disabledHours: _propTypes.default.func,\n disabledMinutes: _propTypes.default.func,\n disabledSeconds: _propTypes.default.func,\n format: _propTypes.default.string,\n hideHours: _propTypes.default.func,\n hideMinutes: _propTypes.default.func,\n hideSeconds: _propTypes.default.func,\n isoWeek: _propTypes.default.bool,\n limitEndYear: _propTypes.default.number,\n onChange: _propTypes.default.func,\n onChangeCalendarDate: _propTypes.default.func,\n onNextMonth: _propTypes.default.func,\n onOk: _propTypes.default.func,\n onPrevMonth: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onToggleMonthDropdown: _propTypes.default.func,\n onToggleTimeDropdown: _propTypes.default.func,\n oneTap: _propTypes.default.bool,\n panelContainerRef: _propTypes.default.any,\n ranges: _propTypes.default.array,\n showMeridian: _propTypes.default.bool,\n showWeekNumbers: _propTypes.default.bool,\n value: _propTypes.default.instanceOf(Date)\n});\nvar _default = DatePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DatePicker/DatePicker.tsx?");
2434
2434
 
2435
2435
  /***/ }),
2436
2436
 
@@ -2441,7 +2441,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2441
2441
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2442
2442
 
2443
2443
  "use strict";
2444
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _Button = _interopRequireDefault(__webpack_require__(/*! ../Button */ \"./src/Button/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DatePicker/utils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DatePicker/Toolbar.tsx\",\n _this = void 0;\n\n/**\n * Toolbar for DatePicker and DateRangePicker\n */\nvar Toolbar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker-toolbar' : _props$classPrefix,\n disabledOkBtn = props.disabledOkBtn,\n disabledShortcut = props.disabledShortcut,\n hideOkBtn = props.hideOkBtn,\n onOk = props.onOk,\n onClickShortcut = props.onClickShortcut,\n calendarDate = props.calendarDate,\n rangesProp = props.ranges,\n locale = props.locale,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"className\", \"classPrefix\", \"disabledOkBtn\", \"disabledShortcut\", \"hideOkBtn\", \"onOk\", \"onClickShortcut\", \"calendarDate\", \"ranges\", \"locale\"]);\n\n var _useState = (0, _react.useState)((0, _utils2.getRanges)(props)),\n ranges = _useState[0],\n setRanges = _useState[1];\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n (0, _utils.useUpdateEffect)(function () {\n setRanges((0, _utils2.getRanges)({\n ranges: rangesProp,\n calendarDate: calendarDate\n }));\n }, [calendarDate, rangesProp]);\n var hasLocaleKey = (0, _react.useCallback)(function (key) {\n return (0, _utils2.getDefaultRanges)(calendarDate).some(function (item) {\n return item.label === key;\n });\n }, [calendarDate]);\n var renderOkButton = (0, _react.useCallback)(function () {\n if (hideOkBtn) {\n return null;\n }\n\n var disabled = disabledOkBtn === null || disabledOkBtn === void 0 ? void 0 : disabledOkBtn(calendarDate);\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('right'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Button.default, {\n appearance: \"primary\",\n size: \"sm\",\n disabled: disabled,\n onClick: disabled ? undefined : onOk,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.ok));\n }, [disabledOkBtn, hideOkBtn, locale, onOk, calendarDate, prefix]);\n\n if (hideOkBtn && ranges.length === 0) {\n return null;\n }\n\n var classes = merge(className, withClassPrefix());\n return /*#__PURE__*/_react.default.createElement(\"div\", (0, _extends2.default)({}, rest, {\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('ranges'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }\n }, ranges.map(function (_ref, index) {\n var value = _ref.value,\n closeOverlay = _ref.closeOverlay,\n label = _ref.label;\n var disabled = disabledShortcut === null || disabledShortcut === void 0 ? void 0 : disabledShortcut(value);\n\n var handleClickShortcut = function handleClickShortcut(event) {\n if (disabled) {\n return;\n }\n\n onClickShortcut === null || onClickShortcut === void 0 ? void 0 : onClickShortcut(value, closeOverlay !== null && closeOverlay !== void 0 ? closeOverlay : false, event);\n };\n\n return /*#__PURE__*/_react.default.createElement(_Button.default, {\n appearance: \"link\",\n size: \"sm\",\n key: index,\n disabled: disabled,\n onClick: handleClickShortcut,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }\n }, hasLocaleKey(label) && typeof label === 'string' ? locale === null || locale === void 0 ? void 0 : locale[label] : label);\n })), renderOkButton());\n});\n\nToolbar.displayName = 'Toolbar';\nToolbar.propTypes = {\n ranges: _propTypes.default.array,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n calendarDate: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date))]).isRequired,\n onClickShortcut: _propTypes.default.func,\n onOk: _propTypes.default.func,\n disabledShortcut: _propTypes.default.func,\n disabledOkBtn: _propTypes.default.func,\n hideOkBtn: _propTypes.default.bool\n};\nvar _default = Toolbar;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DatePicker/Toolbar.tsx?");
2444
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _Button = _interopRequireDefault(__webpack_require__(/*! ../Button */ \"./src/Button/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DatePicker/utils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DatePicker/Toolbar.tsx\",\n _this = void 0;\n\n/**\n * Toolbar for DatePicker and DateRangePicker\n */\nvar Toolbar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker-toolbar' : _props$classPrefix,\n disabledOkBtn = props.disabledOkBtn,\n disabledShortcut = props.disabledShortcut,\n hideOkBtn = props.hideOkBtn,\n onOk = props.onOk,\n onClickShortcut = props.onClickShortcut,\n calendarDate = props.calendarDate,\n rangesProp = props.ranges,\n locale = props.locale,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"className\", \"classPrefix\", \"disabledOkBtn\", \"disabledShortcut\", \"hideOkBtn\", \"onOk\", \"onClickShortcut\", \"calendarDate\", \"ranges\", \"locale\"]);\n\n var _useState = (0, _react.useState)((0, _utils2.getRanges)(props)),\n ranges = _useState[0],\n setRanges = _useState[1];\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n (0, _utils.useUpdateEffect)(function () {\n setRanges((0, _utils2.getRanges)({\n ranges: rangesProp,\n calendarDate: calendarDate\n }));\n }, [calendarDate, rangesProp]);\n var hasLocaleKey = (0, _react.useCallback)(function (key) {\n return (0, _utils2.getDefaultRanges)(calendarDate).some(function (item) {\n return item.label === key;\n });\n }, [calendarDate]);\n var renderOkButton = (0, _react.useCallback)(function () {\n if (hideOkBtn) {\n return null;\n }\n\n var disabled = disabledOkBtn === null || disabledOkBtn === void 0 ? void 0 : disabledOkBtn(calendarDate);\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('right'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Button.default, {\n appearance: \"primary\",\n size: \"sm\",\n disabled: disabled,\n onClick: disabled ? undefined : onOk,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.ok));\n }, [disabledOkBtn, hideOkBtn, locale, onOk, calendarDate, prefix]);\n\n if (hideOkBtn && ranges.length === 0) {\n return null;\n }\n\n var classes = merge(className, withClassPrefix());\n return /*#__PURE__*/_react.default.createElement(\"div\", (0, _extends2.default)({}, rest, {\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('ranges'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }\n }, ranges.map(function (_ref, index) {\n var value = _ref.value,\n closeOverlay = _ref.closeOverlay,\n label = _ref.label;\n var disabled = disabledShortcut === null || disabledShortcut === void 0 ? void 0 : disabledShortcut(value);\n\n var handleClickShortcut = function handleClickShortcut(event) {\n if (disabled) {\n return;\n }\n\n onClickShortcut === null || onClickShortcut === void 0 ? void 0 : onClickShortcut(value, closeOverlay !== false ? true : false, event);\n };\n\n return /*#__PURE__*/_react.default.createElement(_Button.default, {\n appearance: \"link\",\n size: \"sm\",\n key: index,\n disabled: disabled,\n onClick: handleClickShortcut,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }\n }, hasLocaleKey(label) && typeof label === 'string' ? locale === null || locale === void 0 ? void 0 : locale[label] : label);\n })), renderOkButton());\n});\n\nToolbar.displayName = 'Toolbar';\nToolbar.propTypes = {\n ranges: _propTypes.default.array,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n calendarDate: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date))]).isRequired,\n onClickShortcut: _propTypes.default.func,\n onOk: _propTypes.default.func,\n disabledShortcut: _propTypes.default.func,\n disabledOkBtn: _propTypes.default.func,\n hideOkBtn: _propTypes.default.bool\n};\nvar _default = Toolbar;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DatePicker/Toolbar.tsx?");
2445
2445
 
2446
2446
  /***/ }),
2447
2447
 
@@ -2474,7 +2474,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2474
2474
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2475
2475
 
2476
2476
  "use strict";
2477
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _dateUtils = __webpack_require__(/*! ../utils/dateUtils */ \"./src/utils/dateUtils.ts\");\n\nvar _Calendar = _interopRequireWildcard(__webpack_require__(/*! ../Calendar/Calendar */ \"./src/Calendar/Calendar.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangePicker/Calendar.tsx\",\n _this = void 0;\n\n/**\n * Omit the time in the date, which is used to compare and judge the date.\n * eg: isAfter/isBefore\n */\nfunction omitTime(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n\nvar Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? _Calendar.default : _props$as,\n _props$calendarDate = props.calendarDate,\n calendarDate = _props$calendarDate === void 0 ? [new Date(), (0, _dateUtils.addMonths)(new Date(), 1)] : _props$calendarDate,\n _props$format = props.format,\n format = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,\n disabledDate = props.disabledDate,\n _props$index = props.index,\n index = _props$index === void 0 ? 0 : _props$index,\n limitEndYear = props.limitEndYear,\n onChangeCalendarDate = props.onChangeCalendarDate,\n onChangeCalendarTime = props.onChangeCalendarTime,\n onToggleMeridian = props.onToggleMeridian,\n showOneCalendar = props.showOneCalendar,\n _props$value = props.value,\n value = _props$value === void 0 ? [] : _props$value,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"calendarDate\", \"format\", \"disabledDate\", \"index\", \"limitEndYear\", \"onChangeCalendarDate\", \"onChangeCalendarTime\", \"onToggleMeridian\", \"showOneCalendar\", \"value\"]);\n\n var _useState = (0, _react.useState)(),\n calendarState = _useState[0],\n setCalendarState = _useState[1];\n\n var onMoveForward = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);\n }, [index, onChangeCalendarDate]);\n var onMoveBackward = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);\n }, [index, onChangeCalendarDate]);\n var handleChangePageDate = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);\n setCalendarState(undefined);\n }, [index, onChangeCalendarDate]);\n var handleChangePageTime = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);\n }, [index, onChangeCalendarTime]);\n var handleToggleMeridian = (0, _react.useCallback)(function (event) {\n onToggleMeridian(index, event);\n }, [index, onToggleMeridian]);\n var toggleMonthDropdown = (0, _react.useCallback)(function () {\n setCalendarState(calendarState === _Calendar.CalendarState.DROP_MONTH ? undefined : _Calendar.CalendarState.DROP_MONTH);\n }, [calendarState]);\n var toggleTimeDropdown = (0, _react.useCallback)(function () {\n setCalendarState(calendarState === _Calendar.CalendarState.DROP_TIME ? undefined : _Calendar.CalendarState.DROP_TIME);\n }, [calendarState]);\n var inSameMonth = (0, _react.useCallback)(function (date) {\n return (0, _dateUtils.isSameMonth)(date, calendarDate[index]);\n }, [calendarDate, index]);\n var getCalendarDate = (0, _react.useCallback)(function () {\n return calendarDate[index];\n }, [calendarDate, index]);\n var handleMoveForward = (0, _react.useCallback)(function () {\n onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward((0, _dateUtils.addMonths)(getCalendarDate(), 1));\n }, [getCalendarDate, onMoveForward]);\n var handleMoveBackward = (0, _react.useCallback)(function () {\n onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward((0, _dateUtils.addMonths)(getCalendarDate(), -1));\n }, [getCalendarDate, onMoveBackward]);\n var disabledBackward = (0, _react.useCallback)(function () {\n // Do not disable the Backward button on the first calendar.\n if (index === 0) {\n return false;\n }\n\n var startDate = (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(calendarDate[0], 1), 1);\n var endDate = (0, _dateUtils.setDate)(omitTime(calendarDate[1]), 1);\n var after = (0, _dateUtils.isAfter)(endDate, startDate);\n return !after;\n }, [calendarDate, index]);\n var disabledForward = (0, _react.useCallback)(function () {\n // If only one calendar is displayed, do not disable\n if (showOneCalendar) {\n return false;\n } // Do not disable the Forward button on the second calendar.\n\n\n if (index === 1) {\n return false;\n }\n\n var startDate = (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(omitTime(calendarDate[0]), 1), 1);\n var endDate = (0, _dateUtils.setDate)(omitTime(calendarDate[1]), 1);\n var after = (0, _dateUtils.isAfter)(endDate, startDate);\n return !after;\n }, [calendarDate, index, showOneCalendar]);\n var disabledMonth = (0, _react.useCallback)(function (date) {\n return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, value, _utils.DATERANGE_DISABLED_TARGET.CALENDAR);\n }, [disabledDate, value]);\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n format: format,\n calendarState: calendarState,\n dateRange: value,\n disabledBackward: disabledBackward(),\n disabledDate: disabledMonth,\n disabledForward: disabledForward(),\n inSameMonth: inSameMonth,\n index: index,\n limitEndYear: limitEndYear,\n onChangePageDate: handleChangePageDate,\n onChangePageTime: handleChangePageTime,\n onMoveBackward: handleMoveBackward,\n onMoveForward: handleMoveForward,\n onToggleMonthDropdown: toggleMonthDropdown,\n onToggleTimeDropdown: toggleTimeDropdown,\n onToggleMeridian: handleToggleMeridian,\n calendarDate: getCalendarDate(),\n ref: ref,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 7\n }\n }));\n});\n\nCalendar.displayName = 'DateRangePicker.Calendar';\nCalendar.propTypes = {\n value: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n hoverValue: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n calendarDate: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n index: _propTypes.default.number,\n format: _propTypes.default.string,\n isoWeek: _propTypes.default.bool,\n limitEndYear: _propTypes.default.number,\n classPrefix: _propTypes.default.string,\n disabledDate: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onMouseMove: _propTypes.default.func,\n onChangeCalendarDate: _propTypes.default.func\n};\nvar _default = Calendar;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/Calendar.tsx?");
2477
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _dateUtils = __webpack_require__(/*! ../utils/dateUtils */ \"./src/utils/dateUtils.ts\");\n\nvar _Calendar = _interopRequireWildcard(__webpack_require__(/*! ../Calendar/Calendar */ \"./src/Calendar/Calendar.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangePicker/Calendar.tsx\",\n _this = void 0;\n\nvar Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? _Calendar.default : _props$as,\n _props$calendarDate = props.calendarDate,\n calendarDate = _props$calendarDate === void 0 ? [new Date(), (0, _dateUtils.addMonths)(new Date(), 1)] : _props$calendarDate,\n _props$format = props.format,\n format = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,\n disabledDate = props.disabledDate,\n _props$index = props.index,\n index = _props$index === void 0 ? 0 : _props$index,\n limitEndYear = props.limitEndYear,\n onChangeCalendarDate = props.onChangeCalendarDate,\n onChangeCalendarTime = props.onChangeCalendarTime,\n onToggleMeridian = props.onToggleMeridian,\n _props$value = props.value,\n value = _props$value === void 0 ? [] : _props$value,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"calendarDate\", \"format\", \"disabledDate\", \"index\", \"limitEndYear\", \"onChangeCalendarDate\", \"onChangeCalendarTime\", \"onToggleMeridian\", \"value\"]);\n\n var _useState = (0, _react.useState)(),\n calendarState = _useState[0],\n setCalendarState = _useState[1];\n\n var onMoveForward = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);\n }, [index, onChangeCalendarDate]);\n var onMoveBackward = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);\n }, [index, onChangeCalendarDate]);\n var handleChangePageDate = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);\n setCalendarState(undefined);\n }, [index, onChangeCalendarDate]);\n var handleChangePageTime = (0, _react.useCallback)(function (nextPageDate) {\n onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);\n }, [index, onChangeCalendarTime]);\n var handleToggleMeridian = (0, _react.useCallback)(function (event) {\n onToggleMeridian(index, event);\n }, [index, onToggleMeridian]);\n var toggleMonthDropdown = (0, _react.useCallback)(function () {\n setCalendarState(calendarState === _Calendar.CalendarState.DROP_MONTH ? undefined : _Calendar.CalendarState.DROP_MONTH);\n }, [calendarState]);\n var toggleTimeDropdown = (0, _react.useCallback)(function () {\n setCalendarState(calendarState === _Calendar.CalendarState.DROP_TIME ? undefined : _Calendar.CalendarState.DROP_TIME);\n }, [calendarState]);\n var inSameMonth = (0, _react.useCallback)(function (date) {\n return (0, _dateUtils.isSameMonth)(date, calendarDate[index]);\n }, [calendarDate, index]);\n var getCalendarDate = (0, _react.useCallback)(function () {\n return calendarDate[index];\n }, [calendarDate, index]);\n var handleMoveForward = (0, _react.useCallback)(function () {\n onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward((0, _dateUtils.addMonths)(getCalendarDate(), 1));\n }, [getCalendarDate, onMoveForward]);\n var handleMoveBackward = (0, _react.useCallback)(function () {\n onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward((0, _dateUtils.addMonths)(getCalendarDate(), -1));\n }, [getCalendarDate, onMoveBackward]);\n var disabledMonth = (0, _react.useCallback)(function (date) {\n return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, value, _utils.DATERANGE_DISABLED_TARGET.CALENDAR);\n }, [disabledDate, value]);\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n format: format,\n calendarState: calendarState,\n dateRange: value,\n disabledDate: disabledMonth,\n inSameMonth: inSameMonth,\n index: index,\n limitEndYear: limitEndYear,\n onChangePageDate: handleChangePageDate,\n onChangePageTime: handleChangePageTime,\n onMoveBackward: handleMoveBackward,\n onMoveForward: handleMoveForward,\n onToggleMonthDropdown: toggleMonthDropdown,\n onToggleTimeDropdown: toggleTimeDropdown,\n onToggleMeridian: handleToggleMeridian,\n calendarDate: getCalendarDate(),\n ref: ref,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 7\n }\n }));\n});\n\nCalendar.displayName = 'DateRangePicker.Calendar';\nCalendar.propTypes = {\n value: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n hoverValue: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n calendarDate: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n index: _propTypes.default.number,\n format: _propTypes.default.string,\n isoWeek: _propTypes.default.bool,\n limitEndYear: _propTypes.default.number,\n classPrefix: _propTypes.default.string,\n disabledDate: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onMouseMove: _propTypes.default.func,\n onChangeCalendarDate: _propTypes.default.func\n};\nvar _default = Calendar;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/Calendar.tsx?");
2478
2478
 
2479
2479
  /***/ }),
2480
2480
 
@@ -2485,7 +2485,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2485
2485
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2486
2486
 
2487
2487
  "use strict";
2488
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _Calendar = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/Calendar */ \"./node_modules/@rsuite/icons/legacy/Calendar.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _partial = _interopRequireDefault(__webpack_require__(/*! lodash/partial */ \"./node_modules/lodash/partial.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider */ \"./src/CustomProvider/index.tsx\");\n\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _dateUtils = __webpack_require__(/*! ../utils/dateUtils */ \"./src/utils/dateUtils.ts\");\n\nvar _Calendar2 = _interopRequireDefault(__webpack_require__(/*! ./Calendar */ \"./src/DateRangePicker/Calendar.tsx\"));\n\nvar disabledDateUtils = _interopRequireWildcard(__webpack_require__(/*! ./disabledDateUtils */ \"./src/DateRangePicker/disabledDateUtils.ts\"));\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DateRangePicker/utils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangePicker/DateRangePicker.tsx\",\n _this = void 0;\n\nvar DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _ref, _ref2, _merge;\n\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n className = props.className,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$character = props.character,\n character = _props$character === void 0 ? ' ~ ' : _props$character,\n defaultCalendarValue = props.defaultCalendarValue,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n disabledDateProp = props.disabledDate,\n _props$format = props.format,\n formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,\n hoverRange = props.hoverRange,\n _props$isoWeek = props.isoWeek,\n isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,\n _props$limitEndYear = props.limitEndYear,\n limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,\n overrideLocale = props.locale,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n oneTap = props.oneTap,\n _props$placeholder = props.placeholder,\n placeholder = _props$placeholder === void 0 ? '' : _props$placeholder,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n ranges = props.ranges,\n renderValue = props.renderValue,\n _props$showOneCalenda = props.showOneCalendar,\n showOneCalendar = _props$showOneCalenda === void 0 ? false : _props$showOneCalenda,\n showWeekNumbers = props.showWeekNumbers,\n showMeridian = props.showMeridian,\n style = props.style,\n toggleAs = props.toggleAs,\n caretAs = props.caretAs,\n valueProp = props.value,\n onChange = props.onChange,\n onClean = props.onClean,\n onClose = props.onClose,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onExited = props.onExited,\n onOk = props.onOk,\n onOpen = props.onOpen,\n onSelect = props.onSelect,\n renderTitle = props.renderTitle,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"classPrefix\", \"className\", \"appearance\", \"cleanable\", \"character\", \"defaultCalendarValue\", \"defaultValue\", \"disabled\", \"disabledDate\", \"format\", \"hoverRange\", \"isoWeek\", \"limitEndYear\", \"locale\", \"menuClassName\", \"menuStyle\", \"oneTap\", \"placeholder\", \"placement\", \"ranges\", \"renderValue\", \"showOneCalendar\", \"showWeekNumbers\", \"showMeridian\", \"style\", \"toggleAs\", \"caretAs\", \"value\", \"onChange\", \"onClean\", \"onClose\", \"onEnter\", \"onEntered\", \"onExited\", \"onOk\", \"onOpen\", \"onSelect\", \"renderTitle\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var _useCustom = (0, _utils.useCustom)('DateRangePicker', overrideLocale),\n locale = _useCustom.locale,\n formatDate = _useCustom.formatDate,\n parseDate = _useCustom.parseDate;\n\n var rangeFormatStr = \"\" + formatStr + character + formatStr;\n\n var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),\n value = _useControlled[0],\n setValue = _useControlled[1];\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\n\n var hasDoneSelect = (0, _react.useRef)(true);\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\n var _useState = (0, _react.useState)((_ref = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue) !== null && _ref !== void 0 ? _ref : []),\n selectedDates = _useState[0],\n setSelectedDates = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`\n\n\n var _useState2 = (0, _react.useState)(null),\n hoverDateRange = _useState2[0],\n setHoverDateRange = _useState2[1]; // The displayed calendar panel is rendered based on this value.\n\n\n var _useState3 = (0, _react.useState)((0, _utils2.getCalendarDate)({\n value: (_ref2 = valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null\n })),\n calendarDate = _useState3[0],\n setCalendarDate = _useState3[1];\n\n var _useState4 = (0, _react.useState)(),\n inputState = _useState4[0],\n setInputState = _useState4[1];\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\n\n var selectRangeValueRef = (0, _react.useRef)(null);\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\n var updateCalendarDate = (0, _react.useCallback)(function (value) {\n setCalendarDate((0, _utils2.getCalendarDate)({\n value: value\n }));\n }, []); // if valueProp changed then update selectValue/hoverValue\n\n (0, _react.useEffect)(function () {\n setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);\n setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);\n }, [valueProp]);\n\n var _useState5 = (0, _react.useState)(false),\n isPickerToggleActive = _useState5[0],\n setPickerToggleActive = _useState5[1];\n\n var rootRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var triggerRef = (0, _react.useRef)(null);\n var handleCloseDropdown = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$c;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, []);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef,\n rootRef: rootRef\n });\n var getDisplayString = (0, _react.useCallback)(function (nextValue, isPlaintext) {\n var _nextValue$, _nextValue$2;\n\n var startDate = (_nextValue$ = nextValue === null || nextValue === void 0 ? void 0 : nextValue[0]) !== null && _nextValue$ !== void 0 ? _nextValue$ : null;\n var endDate = (_nextValue$2 = nextValue === null || nextValue === void 0 ? void 0 : nextValue[1]) !== null && _nextValue$2 !== void 0 ? _nextValue$2 : null;\n\n if (startDate && endDate) {\n var displayValue = [startDate, endDate].sort(_dateUtils.compareAsc);\n\n if (isPlaintext) {\n return formatDate(displayValue[0], formatStr) + character + formatDate(displayValue[1], formatStr);\n }\n\n return renderValue ? renderValue(displayValue, formatStr) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {\n date: displayValue[0],\n formatStr: formatStr,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 13\n }\n }), character, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {\n date: displayValue[1],\n formatStr: formatStr,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 13\n }\n }));\n }\n\n return isPlaintext ? '' : placeholder || rangeFormatStr;\n }, [character, formatDate, formatStr, placeholder, rangeFormatStr, renderValue]);\n /**\n * preset hover range\n */\n\n var getHoverRangeValue = (0, _react.useCallback)(function (date) {\n function getHoverRangeFunc() {\n if (hoverRange === 'week') {\n return (0, _partial.default)(_utils2.getWeekHoverRange, isoWeek);\n } else if (hoverRange === 'month') {\n return _utils2.getMonthHoverRange;\n }\n\n return hoverRange;\n }\n\n var hoverRangeFunc = getHoverRangeFunc();\n\n if ((0, _isNil.default)(hoverRangeFunc)) {\n return null;\n }\n\n var hoverValues = hoverRangeFunc(date);\n var isHoverRangeValid = hoverValues instanceof Array && hoverValues.length === 2;\n\n if (!isHoverRangeValid) {\n return null;\n }\n\n if (_utils.DateUtils.isAfter(hoverValues[0], hoverValues[1])) {\n hoverValues.reverse();\n }\n\n return hoverValues;\n }, [hoverRange, isoWeek]);\n var handleValueUpdate = (0, _react.useCallback)(function (event, nextValue, closeOverlay) {\n if (closeOverlay === void 0) {\n closeOverlay = true;\n }\n\n // If nextValue is null, it means that the user is erasing the selected dates.\n setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);\n\n if (!(0, _utils2.isSameRange)(nextValue, value, formatStr)) {\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n } // `closeOverlay` default value is `true`\n\n\n if (closeOverlay !== false) {\n handleCloseDropdown();\n }\n }, [formatStr, handleCloseDropdown, onChange, setValue, value]);\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\n var handleMouseMove = (0, _react.useCallback)(function (date) {\n var nextHoverDateRange = getHoverRangeValue(date); // 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\n if (!hasDoneSelect.current) {\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 var nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];\n\n if (_utils.DateUtils.isBefore(nextHoverDateRange[0], selectRangeValueRef.current[0])) {\n nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];\n }\n\n setSelectedDates(nextSelectedDates);\n } else {\n setHoverDateRange(function (prevHoverValue) {\n return (0, _isNil.default)(prevHoverValue) ? null : [prevHoverValue[0], date];\n });\n } // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated\n\n } else if (!(0, _isNil.default)(nextHoverDateRange)) {\n setHoverDateRange(nextHoverDateRange);\n }\n }, [getHoverRangeValue]);\n /**\n * Callback for selecting a date cell in the calendar grid\n */\n\n var handleSelectDate = (0, _react.useCallback)(function (date, event) {\n var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];\n var hoverRangeValue = getHoverRangeValue(date);\n var noHoverRangeValid = (0, _isNil.default)(hoverRangeValue); // in `oneTap` mode\n\n if (hasDoneSelect.current && oneTap) {\n handleValueUpdate(event, noHoverRangeValid ? [(0, _utils2.setTimingMargin)(date), (0, _utils2.setTimingMargin)(date, 'right')] : hoverRangeValue);\n hasDoneSelect.current = false;\n return;\n } // no preset hover range can use\n\n\n if (noHoverRangeValid) {\n // start select\n if (hasDoneSelect.current) {\n nextSelectDates = [date];\n } else {\n // finish select\n nextSelectDates[1] = date;\n }\n } else {\n if (!hasDoneSelect.current) {\n nextSelectDates = selectedDates;\n selectRangeValueRef.current = null;\n } else {\n nextSelectDates = hoverRangeValue;\n selectRangeValueRef.current = hoverRangeValue;\n }\n } // If user have completed the selection, then sort\n\n\n if (nextSelectDates.length === 2 && _utils.DateUtils.isAfter(nextSelectDates[0], nextSelectDates[1])) {\n nextSelectDates.reverse();\n }\n\n setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);\n setSelectedDates(nextSelectDates);\n updateCalendarDate(nextSelectDates);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);\n hasDoneSelect.current = !hasDoneSelect.current;\n }, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDate]);\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\n (0, _react.useEffect)(function () {\n var selectValueLength = selectedDates.length;\n var doneSelected = selectValueLength === 0 || selectValueLength === 2;\n doneSelected && setHoverDateRange(null);\n }, [selectedDates]);\n var handleChangeCalendarDate = (0, _react.useCallback)(function (index, date) {\n var nextCalendarDate = Array.from(calendarDate);\n nextCalendarDate[index] = date;\n updateCalendarDate(nextCalendarDate);\n }, [calendarDate, updateCalendarDate]);\n var handleChangeCalendarTime = (0, _react.useCallback)(function (index, date) {\n setSelectedDates(function (prev) {\n var next = [].concat(prev);\n var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day\n\n if (next[index]) {\n clonedDate.setFullYear(next[index].getFullYear(), next[index].getMonth(), next[index].getDate());\n }\n\n next[index] = clonedDate;\n return next;\n });\n handleChangeCalendarDate(index, date);\n }, [handleChangeCalendarDate]);\n /**\n * The callback triggered when PM/AM is switched.\n */\n\n var handleToggleMeridian = (0, _react.useCallback)(function (index) {\n var next = Array.from(calendarDate);\n var clonedDate = new Date(next[index].valueOf());\n\n var hours = _utils.DateUtils.getHours(clonedDate);\n\n var nextHours = hours >= 12 ? hours - 12 : hours + 12;\n next[index] = _utils.DateUtils.setHours(clonedDate, nextHours);\n setCalendarDate(next); // If the value already exists, update the value again.\n\n if (selectedDates.length === 2) {\n setSelectedDates(next);\n }\n }, [calendarDate, selectedDates]);\n /**\n * Toolbar operation callback function\n */\n\n var handleShortcutPageDate = (0, _react.useCallback)(function (value, closeOverlay, event) {\n if (closeOverlay === void 0) {\n closeOverlay = false;\n }\n\n handleValueUpdate(event, value, closeOverlay); // End unfinished selections.\n\n hasDoneSelect.current = true;\n }, [handleValueUpdate]);\n var handleOK = (0, _react.useCallback)(function (event) {\n handleValueUpdate(event, selectedDates);\n onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);\n }, [handleValueUpdate, onOk, selectedDates]);\n var handleClean = (0, _react.useCallback)(function (event) {\n updateCalendarDate(null);\n handleValueUpdate(event, null);\n }, [handleValueUpdate, updateCalendarDate]);\n /**\n * Callback after the input box value is changed.\n */\n\n var handleInputChange = (0, _react.useCallback)(function (value) {\n setInputState('Typing');\n var rangeValue = value.split(character); // isMatch('01/11/2020', 'MM/dd/yyyy') ==> true\n // isMatch('2020-11-01', 'MM/dd/yyyy') ==> false\n\n if (!_utils.DateUtils.isMatch(rangeValue[0], formatStr, {\n locale: locale.dateLocale\n }) || !_utils.DateUtils.isMatch(rangeValue[1], formatStr, {\n locale: locale.dateLocale\n })) {\n setInputState('Error');\n return;\n }\n\n var startDate = parseDate(rangeValue[0], formatStr);\n var endDate = parseDate(rangeValue[1], formatStr);\n var selectValue = [startDate, endDate];\n\n if (!_utils.DateUtils.isValid(startDate) || !_utils.DateUtils.isValid(endDate)) {\n setInputState('Error');\n return;\n }\n\n if (isDateDisabled(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {\n setInputState('Error');\n return;\n }\n\n setHoverDateRange(selectValue);\n setSelectedDates(selectValue);\n updateCalendarDate(selectValue);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [character, rangeFormatStr, updateCalendarDate]);\n /**\n * The callback after the enter key is triggered on the input\n */\n\n var handleInputPressEnd = (0, _react.useCallback)(function (event) {\n if (inputState === 'Typing') {\n handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);\n }\n\n setInputState('Initial');\n }, [handleValueUpdate, selectedDates, inputState]);\n var handleEnter = (0, _react.useCallback)(function () {\n var nextCalendarDate;\n\n if (value && value.length) {\n var _startDate = value[0],\n endData = value[1];\n nextCalendarDate = [_startDate, (0, _dateUtils.isSameMonth)(_startDate, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];\n } else {\n nextCalendarDate = (0, _utils2.getCalendarDate)({\n value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null\n });\n }\n\n setSelectedDates(value !== null && value !== void 0 ? value : []);\n updateCalendarDate(nextCalendarDate);\n }, [defaultCalendarValue, updateCalendarDate, setSelectedDates, value]);\n var handleEntered = (0, _react.useCallback)(function () {\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setPickerToggleActive(true);\n }, [onOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n setPickerToggleActive(false);\n hasDoneSelect.current = true;\n onClose === null || onClose === void 0 ? void 0 : onClose();\n }, [onClose]);\n var isDateDisabled = (0, _react.useCallback)(function (date, selectDate, selectedDone, target) {\n var _disabledDateProp;\n\n return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;\n }, [disabledDateProp]);\n var disabledByBetween = (0, _react.useCallback)(function (start, end, type) {\n // If the date is between the start and the end\n // the button is disabled\n while (_utils.DateUtils.isBefore(start, end) || _utils.DateUtils.isSameDay(start, end)) {\n if (isDateDisabled(start, selectedDates, hasDoneSelect.current, type)) {\n return true;\n }\n\n start = _utils.DateUtils.addDays(start, 1);\n }\n\n return false;\n }, [isDateDisabled, selectedDates]);\n var disabledOkButton = (0, _react.useCallback)(function () {\n var start = selectedDates[0],\n end = selectedDates[1];\n\n if (!start || !end || !hasDoneSelect.current) {\n return true;\n }\n\n return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);\n }, [disabledByBetween, selectedDates]);\n var disabledShortcutButton = (0, _react.useCallback)(function (value) {\n if (value === void 0) {\n value = [];\n }\n\n var _value = value,\n start = _value[0],\n end = _value[1];\n\n if (!start || !end) {\n return true;\n }\n\n return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);\n }, [disabledByBetween]);\n var handleDisabledDate = (0, _react.useCallback)(function (date, values, type) {\n return isDateDisabled(date, values, hasDoneSelect.current, type);\n }, [isDateDisabled]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n triggerRef: triggerRef,\n targetRef: targetRef,\n active: isPickerToggleActive,\n onExit: handleClean\n }, rest));\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(className, menuClassName, prefix('daterange-menu'));\n var panelClasses = prefix('daterange-panel', {\n 'daterange-panel-show-one-calendar': showOneCalendar\n });\n var styles = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var panelProps = {\n calendarDate: calendarDate,\n disabledDate: handleDisabledDate,\n format: formatStr,\n hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,\n isoWeek: isoWeek,\n limitEndYear: limitEndYear,\n locale: locale,\n showOneCalendar: showOneCalendar,\n showWeekNumbers: showWeekNumbers,\n value: selectedDates,\n showMeridian: showMeridian,\n onChangeCalendarDate: handleChangeCalendarDate,\n onChangeCalendarTime: handleChangeCalendarTime,\n onMouseMove: handleMouseMove,\n onSelect: handleSelectDate,\n onToggleMeridian: handleToggleMeridian,\n renderTitle: renderTitle\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n className: classes,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n target: triggerRef,\n style: styles,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 720,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: panelClasses,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 726,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('daterange-content'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('daterange-header'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 728,\n columnNumber: 13\n }\n }, getDisplayString(selectedDates)), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(\"daterange-calendar-\" + (showOneCalendar ? 'single' : 'group')),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 729,\n columnNumber: 13\n }\n }, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 0\n }, panelProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 730,\n columnNumber: 15\n }\n })), !showOneCalendar && /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 1\n }, panelProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 36\n }\n })))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n calendarDate: selectedDates,\n disabledOkBtn: disabledOkButton,\n disabledShortcut: disabledShortcutButton,\n hideOkBtn: oneTap,\n onOk: handleOK,\n onClickShortcut: handleShortcutPageDate,\n ranges: ranges,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 734,\n columnNumber: 11\n }\n })));\n };\n\n var hasValue = !(0, _isNil.default)(value) && value.length > 1;\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n name: 'daterange',\n appearance: appearance,\n hasValue: hasValue,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),\n onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 760,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n ref: rootRef,\n className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = inputState === 'Error', _merge)),\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 769,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _utils.DateUtils.calendarOnlyProps)), {\n as: toggleAs,\n ref: targetRef,\n appearance: appearance,\n input: true,\n inputMask: _utils.DateUtils.getDateMask(rangeFormatStr),\n inputValue: value ? getDisplayString(value, true) : '',\n inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : rangeFormatStr,\n onInputChange: handleInputChange,\n onInputBlur: handleInputPressEnd,\n onInputPressEnter: handleInputPressEnd,\n onKeyDown: onPickerKeyDown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: isPickerToggleActive,\n placement: placement,\n disabled: disabled,\n caretAs: caretAs || _Calendar.default,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 776,\n columnNumber: 9\n }\n }), getDisplayString(value))));\n});\n\nDateRangePicker.after = disabledDateUtils.after;\nDateRangePicker.afterToday = disabledDateUtils.afterToday;\nDateRangePicker.allowedDays = disabledDateUtils.allowedDays;\nDateRangePicker.allowedMaxDays = disabledDateUtils.allowedMaxDays;\nDateRangePicker.allowedRange = disabledDateUtils.allowedRange;\nDateRangePicker.before = disabledDateUtils.before;\nDateRangePicker.beforeToday = disabledDateUtils.beforeToday;\nDateRangePicker.combine = disabledDateUtils.combine;\nDateRangePicker.displayName = 'DateRangePicker';\nDateRangePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {\n ranges: _propTypes.default.array,\n value: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n defaultValue: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n defaultCalendarValue: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n hoverRange: _propTypes.default.oneOfType([_propTypes.default.oneOf(['week', 'month']), _propTypes.default.func]),\n format: _propTypes.default.string,\n isoWeek: _propTypes.default.bool,\n oneTap: _propTypes.default.bool,\n limitEndYear: _propTypes.default.number,\n onChange: _propTypes.default.func,\n onOk: _propTypes.default.func,\n disabledDate: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n showWeekNumbers: _propTypes.default.bool,\n showMeridian: _propTypes.default.bool,\n showOneCalendar: _propTypes.default.bool\n});\nvar _default = DateRangePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/DateRangePicker.tsx?");
2488
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _Calendar = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/Calendar */ \"./node_modules/@rsuite/icons/legacy/Calendar.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _partial = _interopRequireDefault(__webpack_require__(/*! lodash/partial */ \"./node_modules/lodash/partial.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider */ \"./src/CustomProvider/index.tsx\");\n\nvar _Toolbar = _interopRequireDefault(__webpack_require__(/*! ../DatePicker/Toolbar */ \"./src/DatePicker/Toolbar.tsx\"));\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _dateUtils = __webpack_require__(/*! ../utils/dateUtils */ \"./src/utils/dateUtils.ts\");\n\nvar _Calendar2 = _interopRequireDefault(__webpack_require__(/*! ./Calendar */ \"./src/DateRangePicker/Calendar.tsx\"));\n\nvar disabledDateUtils = _interopRequireWildcard(__webpack_require__(/*! ./disabledDateUtils */ \"./src/DateRangePicker/disabledDateUtils.ts\"));\n\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DateRangePicker/utils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangePicker/DateRangePicker.tsx\",\n _this = void 0;\n\nvar DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _ref, _ref2, _merge;\n\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n className = props.className,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$character = props.character,\n character = _props$character === void 0 ? ' ~ ' : _props$character,\n defaultCalendarValue = props.defaultCalendarValue,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n disabledDateProp = props.disabledDate,\n _props$format = props.format,\n formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,\n hoverRange = props.hoverRange,\n _props$isoWeek = props.isoWeek,\n isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,\n _props$limitEndYear = props.limitEndYear,\n limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,\n overrideLocale = props.locale,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n oneTap = props.oneTap,\n _props$placeholder = props.placeholder,\n placeholder = _props$placeholder === void 0 ? '' : _props$placeholder,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n ranges = props.ranges,\n renderValue = props.renderValue,\n _props$showOneCalenda = props.showOneCalendar,\n showOneCalendar = _props$showOneCalenda === void 0 ? false : _props$showOneCalenda,\n showWeekNumbers = props.showWeekNumbers,\n showMeridian = props.showMeridian,\n style = props.style,\n toggleAs = props.toggleAs,\n caretAs = props.caretAs,\n valueProp = props.value,\n onChange = props.onChange,\n onClean = props.onClean,\n onClose = props.onClose,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onExited = props.onExited,\n onOk = props.onOk,\n onOpen = props.onOpen,\n onSelect = props.onSelect,\n renderTitle = props.renderTitle,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"classPrefix\", \"className\", \"appearance\", \"cleanable\", \"character\", \"defaultCalendarValue\", \"defaultValue\", \"disabled\", \"disabledDate\", \"format\", \"hoverRange\", \"isoWeek\", \"limitEndYear\", \"locale\", \"menuClassName\", \"menuStyle\", \"oneTap\", \"placeholder\", \"placement\", \"ranges\", \"renderValue\", \"showOneCalendar\", \"showWeekNumbers\", \"showMeridian\", \"style\", \"toggleAs\", \"caretAs\", \"value\", \"onChange\", \"onClean\", \"onClose\", \"onEnter\", \"onEntered\", \"onExited\", \"onOk\", \"onOpen\", \"onSelect\", \"renderTitle\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var _useCustom = (0, _utils.useCustom)('DateRangePicker', overrideLocale),\n locale = _useCustom.locale,\n formatDate = _useCustom.formatDate,\n parseDate = _useCustom.parseDate;\n\n var rangeFormatStr = \"\" + formatStr + character + formatStr;\n\n var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),\n value = _useControlled[0],\n setValue = _useControlled[1];\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\n\n var hasDoneSelect = (0, _react.useRef)(true);\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\n var _useState = (0, _react.useState)((_ref = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue) !== null && _ref !== void 0 ? _ref : []),\n selectedDates = _useState[0],\n setSelectedDates = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`\n\n\n var _useState2 = (0, _react.useState)(null),\n hoverDateRange = _useState2[0],\n setHoverDateRange = _useState2[1]; // The displayed calendar panel is rendered based on this value.\n\n\n var _useState3 = (0, _react.useState)((0, _utils2.getCalendarDate)({\n value: (_ref2 = valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null\n })),\n calendarDate = _useState3[0],\n setCalendarDate = _useState3[1];\n\n var _useState4 = (0, _react.useState)(),\n inputState = _useState4[0],\n setInputState = _useState4[1];\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\n\n var selectRangeValueRef = (0, _react.useRef)(null);\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\n var updateCalendarDateRange = (0, _react.useCallback)(function (value, calendarKey) {\n setCalendarDate((0, _utils2.getCalendarDate)({\n value: value,\n calendarKey: calendarKey\n }));\n }, []); // if valueProp changed then update selectValue/hoverValue\n\n (0, _react.useEffect)(function () {\n setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);\n setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);\n }, [valueProp]);\n\n var _useState5 = (0, _react.useState)(false),\n isPickerToggleActive = _useState5[0],\n setPickerToggleActive = _useState5[1];\n\n var rootRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var triggerRef = (0, _react.useRef)(null);\n var handleCloseDropdown = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$c;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, []);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef,\n rootRef: rootRef\n });\n var getDisplayString = (0, _react.useCallback)(function (nextValue, isPlaintext) {\n var _nextValue$, _nextValue$2;\n\n var startDate = (_nextValue$ = nextValue === null || nextValue === void 0 ? void 0 : nextValue[0]) !== null && _nextValue$ !== void 0 ? _nextValue$ : null;\n var endDate = (_nextValue$2 = nextValue === null || nextValue === void 0 ? void 0 : nextValue[1]) !== null && _nextValue$2 !== void 0 ? _nextValue$2 : null;\n\n if (startDate && endDate) {\n var displayValue = [startDate, endDate].sort(_dateUtils.compareAsc);\n\n if (isPlaintext) {\n return formatDate(displayValue[0], formatStr) + character + formatDate(displayValue[1], formatStr);\n }\n\n return renderValue ? renderValue(displayValue, formatStr) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {\n date: displayValue[0],\n formatStr: formatStr,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 13\n }\n }), character, /*#__PURE__*/_react.default.createElement(_CustomProvider.FormattedDate, {\n date: displayValue[1],\n formatStr: formatStr,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 13\n }\n }));\n }\n\n return isPlaintext ? '' : placeholder || rangeFormatStr;\n }, [character, formatDate, formatStr, placeholder, rangeFormatStr, renderValue]);\n /**\n * preset hover range\n */\n\n var getHoverRangeValue = (0, _react.useCallback)(function (date) {\n function getHoverRangeFunc() {\n if (hoverRange === 'week') {\n return (0, _partial.default)(_utils2.getWeekHoverRange, isoWeek);\n } else if (hoverRange === 'month') {\n return _utils2.getMonthHoverRange;\n }\n\n return hoverRange;\n }\n\n var hoverRangeFunc = getHoverRangeFunc();\n\n if ((0, _isNil.default)(hoverRangeFunc)) {\n return null;\n }\n\n var hoverValues = hoverRangeFunc(date);\n var isHoverRangeValid = hoverValues instanceof Array && hoverValues.length === 2;\n\n if (!isHoverRangeValid) {\n return null;\n }\n\n if (_utils.DateUtils.isAfter(hoverValues[0], hoverValues[1])) {\n hoverValues.reverse();\n }\n\n return hoverValues;\n }, [hoverRange, isoWeek]);\n var handleValueUpdate = (0, _react.useCallback)(function (event, nextValue, closeOverlay) {\n if (closeOverlay === void 0) {\n closeOverlay = true;\n }\n\n // If nextValue is null, it means that the user is erasing the selected dates.\n setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);\n\n if (!(0, _utils2.isSameRange)(nextValue, value, formatStr)) {\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n } // `closeOverlay` default value is `true`\n\n\n if (closeOverlay !== false) {\n handleCloseDropdown();\n }\n }, [formatStr, handleCloseDropdown, onChange, setValue, value]);\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\n var handleMouseMove = (0, _react.useCallback)(function (date) {\n var nextHoverDateRange = getHoverRangeValue(date); // 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\n if (!hasDoneSelect.current) {\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 var nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];\n\n if (_utils.DateUtils.isBefore(nextHoverDateRange[0], selectRangeValueRef.current[0])) {\n nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];\n }\n\n setSelectedDates(nextSelectedDates);\n } else {\n setHoverDateRange(function (prevHoverValue) {\n return (0, _isNil.default)(prevHoverValue) ? null : [prevHoverValue[0], date];\n });\n } // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated\n\n } else if (!(0, _isNil.default)(nextHoverDateRange)) {\n setHoverDateRange(nextHoverDateRange);\n }\n }, [getHoverRangeValue]);\n /**\n * Callback for selecting a date cell in the calendar grid\n */\n\n var handleSelectDate = (0, _react.useCallback)(function (date, event) {\n var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];\n var hoverRangeValue = getHoverRangeValue(date);\n var noHoverRangeValid = (0, _isNil.default)(hoverRangeValue); // in `oneTap` mode\n\n if (hasDoneSelect.current && oneTap) {\n handleValueUpdate(event, noHoverRangeValid ? [(0, _utils2.setTimingMargin)(date), (0, _utils2.setTimingMargin)(date, 'right')] : hoverRangeValue);\n hasDoneSelect.current = false;\n return;\n } // no preset hover range can use\n\n\n if (noHoverRangeValid) {\n // start select\n if (hasDoneSelect.current) {\n nextSelectDates = [date];\n } else {\n // finish select\n nextSelectDates[1] = date;\n }\n } else {\n if (!hasDoneSelect.current) {\n nextSelectDates = selectedDates;\n selectRangeValueRef.current = null;\n } else {\n nextSelectDates = hoverRangeValue;\n selectRangeValueRef.current = hoverRangeValue;\n }\n } // If user have completed the selection, then sort\n\n\n if (nextSelectDates.length === 2 && _utils.DateUtils.isAfter(nextSelectDates[0], nextSelectDates[1])) {\n nextSelectDates.reverse();\n }\n\n setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);\n setSelectedDates(nextSelectDates);\n updateCalendarDateRange(nextSelectDates);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);\n hasDoneSelect.current = !hasDoneSelect.current;\n }, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);\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\n (0, _react.useEffect)(function () {\n var selectValueLength = selectedDates.length;\n var doneSelected = selectValueLength === 0 || selectValueLength === 2;\n doneSelected && setHoverDateRange(null);\n }, [selectedDates]);\n var updateSingleCalendarDate = (0, _react.useCallback)(function (index, date) {\n var nextCalendarDate = Array.from(calendarDate);\n nextCalendarDate[index] = date;\n updateCalendarDateRange(nextCalendarDate, index === 0 ? 'start' : 'end');\n }, [calendarDate, updateCalendarDateRange]);\n var updateSingleCalendarTime = (0, _react.useCallback)(function (index, date) {\n setSelectedDates(function (prev) {\n var next = [].concat(prev);\n var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day\n\n if (next[index]) {\n clonedDate.setFullYear(next[index].getFullYear(), next[index].getMonth(), next[index].getDate());\n }\n\n next[index] = clonedDate;\n return next;\n });\n updateSingleCalendarDate(index, date);\n }, [updateSingleCalendarDate]);\n /**\n * The callback triggered when PM/AM is switched.\n */\n\n var handleToggleMeridian = (0, _react.useCallback)(function (index) {\n var next = Array.from(calendarDate);\n var clonedDate = new Date(next[index].valueOf());\n\n var hours = _utils.DateUtils.getHours(clonedDate);\n\n var nextHours = hours >= 12 ? hours - 12 : hours + 12;\n next[index] = _utils.DateUtils.setHours(clonedDate, nextHours);\n setCalendarDate(next); // If the value already exists, update the value again.\n\n if (selectedDates.length === 2) {\n setSelectedDates(next);\n }\n }, [calendarDate, selectedDates]);\n /**\n * Toolbar operation callback function\n */\n\n var handleShortcutPageDate = (0, _react.useCallback)(function (value, closeOverlay, event) {\n if (closeOverlay === void 0) {\n closeOverlay = false;\n }\n\n handleValueUpdate(event, value, closeOverlay); // End unfinished selections.\n\n hasDoneSelect.current = true;\n }, [handleValueUpdate]);\n var handleOK = (0, _react.useCallback)(function (event) {\n handleValueUpdate(event, selectedDates);\n onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);\n }, [handleValueUpdate, onOk, selectedDates]);\n var handleClean = (0, _react.useCallback)(function (event) {\n updateCalendarDateRange(null);\n handleValueUpdate(event, null);\n }, [handleValueUpdate, updateCalendarDateRange]);\n /**\n * Callback after the input box value is changed.\n */\n\n var handleInputChange = (0, _react.useCallback)(function (value) {\n setInputState('Typing');\n var rangeValue = value.split(character); // isMatch('01/11/2020', 'MM/dd/yyyy') ==> true\n // isMatch('2020-11-01', 'MM/dd/yyyy') ==> false\n\n if (!_utils.DateUtils.isMatch(rangeValue[0], formatStr, {\n locale: locale.dateLocale\n }) || !_utils.DateUtils.isMatch(rangeValue[1], formatStr, {\n locale: locale.dateLocale\n })) {\n setInputState('Error');\n return;\n }\n\n var startDate = parseDate(rangeValue[0], formatStr);\n var endDate = parseDate(rangeValue[1], formatStr);\n var selectValue = [startDate, endDate];\n\n if (!_utils.DateUtils.isValid(startDate) || !_utils.DateUtils.isValid(endDate)) {\n setInputState('Error');\n return;\n }\n\n if (isDateDisabled(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {\n setInputState('Error');\n return;\n }\n\n setHoverDateRange(selectValue);\n setSelectedDates(selectValue);\n updateCalendarDateRange(selectValue);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [character, rangeFormatStr, updateCalendarDateRange]);\n /**\n * The callback after the enter key is triggered on the input\n */\n\n var handleInputPressEnd = (0, _react.useCallback)(function (event) {\n if (inputState === 'Typing') {\n handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);\n }\n\n setInputState('Initial');\n }, [handleValueUpdate, selectedDates, inputState]);\n var handleEnter = (0, _react.useCallback)(function () {\n var nextCalendarDate;\n\n if (value && value.length) {\n var _startDate = value[0],\n endData = value[1];\n nextCalendarDate = [_startDate, (0, _dateUtils.isSameMonth)(_startDate, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];\n } else {\n nextCalendarDate = (0, _utils2.getCalendarDate)({\n value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null\n });\n }\n\n setSelectedDates(value !== null && value !== void 0 ? value : []);\n updateCalendarDateRange(nextCalendarDate);\n }, [defaultCalendarValue, updateCalendarDateRange, setSelectedDates, value]);\n var handleEntered = (0, _react.useCallback)(function () {\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setPickerToggleActive(true);\n }, [onOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n setPickerToggleActive(false);\n hasDoneSelect.current = true;\n onClose === null || onClose === void 0 ? void 0 : onClose();\n }, [onClose]);\n var isDateDisabled = (0, _react.useCallback)(function (date, selectDate, selectedDone, target) {\n var _disabledDateProp;\n\n return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;\n }, [disabledDateProp]);\n var disabledByBetween = (0, _react.useCallback)(function (start, end, type) {\n // If the date is between the start and the end\n // the button is disabled\n while (_utils.DateUtils.isBefore(start, end) || _utils.DateUtils.isSameDay(start, end)) {\n if (isDateDisabled(start, selectedDates, hasDoneSelect.current, type)) {\n return true;\n }\n\n start = _utils.DateUtils.addDays(start, 1);\n }\n\n return false;\n }, [isDateDisabled, selectedDates]);\n var disabledOkButton = (0, _react.useCallback)(function () {\n var start = selectedDates[0],\n end = selectedDates[1];\n\n if (!start || !end || !hasDoneSelect.current) {\n return true;\n }\n\n return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);\n }, [disabledByBetween, selectedDates]);\n var disabledShortcutButton = (0, _react.useCallback)(function (value) {\n if (value === void 0) {\n value = [];\n }\n\n var _value = value,\n start = _value[0],\n end = _value[1];\n\n if (!start || !end) {\n return true;\n }\n\n return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);\n }, [disabledByBetween]);\n var handleDisabledDate = (0, _react.useCallback)(function (date, values, type) {\n return isDateDisabled(date, values, hasDoneSelect.current, type);\n }, [isDateDisabled]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n triggerRef: triggerRef,\n targetRef: targetRef,\n active: isPickerToggleActive,\n onExit: handleClean\n }, rest));\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(className, menuClassName, prefix('daterange-menu'));\n var panelClasses = prefix('daterange-panel', {\n 'daterange-panel-show-one-calendar': showOneCalendar\n });\n var styles = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var calendarProps = {\n calendarDate: calendarDate,\n disabledDate: handleDisabledDate,\n format: formatStr,\n hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,\n isoWeek: isoWeek,\n limitEndYear: limitEndYear,\n locale: locale,\n showWeekNumbers: showWeekNumbers,\n value: selectedDates,\n showMeridian: showMeridian,\n onChangeCalendarDate: updateSingleCalendarDate,\n onChangeCalendarTime: updateSingleCalendarTime,\n onMouseMove: handleMouseMove,\n onSelect: handleSelectDate,\n onToggleMeridian: handleToggleMeridian,\n renderTitle: renderTitle\n };\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n className: classes,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n target: triggerRef,\n style: styles,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 723,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: panelClasses,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 729,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('daterange-content'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 730,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('daterange-header'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 13\n }\n }, getDisplayString(selectedDates)), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(\"daterange-calendar-\" + (showOneCalendar ? 'single' : 'group')),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 13\n }\n }, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 0\n }, calendarProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 733,\n columnNumber: 15\n }\n })), !showOneCalendar && /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({\n index: 1\n }, calendarProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 734,\n columnNumber: 36\n }\n })))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {\n locale: locale,\n calendarDate: selectedDates,\n disabledOkBtn: disabledOkButton,\n disabledShortcut: disabledShortcutButton,\n hideOkBtn: oneTap,\n onOk: handleOK,\n onClickShortcut: handleShortcutPageDate,\n ranges: ranges,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 737,\n columnNumber: 11\n }\n })));\n };\n\n var hasValue = !(0, _isNil.default)(value) && value.length > 1;\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n name: 'daterange',\n appearance: appearance,\n hasValue: hasValue,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),\n onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 763,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n ref: rootRef,\n className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = inputState === 'Error', _merge)),\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 772,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _utils.DateUtils.calendarOnlyProps)), {\n as: toggleAs,\n ref: targetRef,\n appearance: appearance,\n editable: true,\n inputMask: _utils.DateUtils.getDateMask(rangeFormatStr),\n inputValue: value ? getDisplayString(value, true) : '',\n inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : rangeFormatStr,\n onInputChange: handleInputChange,\n onInputBlur: handleInputPressEnd,\n onInputPressEnter: handleInputPressEnd,\n onKeyDown: onPickerKeyDown,\n onClean: (0, _utils.createChainedFunction)(handleClean, onClean),\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: isPickerToggleActive,\n placement: placement,\n disabled: disabled,\n caretAs: caretAs || _Calendar.default,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 779,\n columnNumber: 9\n }\n }), getDisplayString(value))));\n});\n\nDateRangePicker.after = disabledDateUtils.after;\nDateRangePicker.afterToday = disabledDateUtils.afterToday;\nDateRangePicker.allowedDays = disabledDateUtils.allowedDays;\nDateRangePicker.allowedMaxDays = disabledDateUtils.allowedMaxDays;\nDateRangePicker.allowedRange = disabledDateUtils.allowedRange;\nDateRangePicker.before = disabledDateUtils.before;\nDateRangePicker.beforeToday = disabledDateUtils.beforeToday;\nDateRangePicker.combine = disabledDateUtils.combine;\nDateRangePicker.displayName = 'DateRangePicker';\nDateRangePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {\n ranges: _propTypes.default.array,\n value: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n defaultValue: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n defaultCalendarValue: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n hoverRange: _propTypes.default.oneOfType([_propTypes.default.oneOf(['week', 'month']), _propTypes.default.func]),\n format: _propTypes.default.string,\n isoWeek: _propTypes.default.bool,\n oneTap: _propTypes.default.bool,\n limitEndYear: _propTypes.default.number,\n onChange: _propTypes.default.func,\n onOk: _propTypes.default.func,\n disabledDate: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n showWeekNumbers: _propTypes.default.bool,\n showMeridian: _propTypes.default.bool,\n showOneCalendar: _propTypes.default.bool\n});\nvar _default = DateRangePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/DateRangePicker.tsx?");
2489
2489
 
2490
2490
  /***/ }),
2491
2491
 
@@ -2518,7 +2518,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2518
2518
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2519
2519
 
2520
2520
  "use strict";
2521
- eval("\n\nexports.__esModule = true;\nexports.getCalendarDate = getCalendarDate;\nexports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = exports.getDefaultRanges = exports.setTimingMargin = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar setTimingMargin = function setTimingMargin(date, way) {\n if (way === void 0) {\n way = 'left';\n }\n\n return way === 'right' ? _utils.DateUtils.endOfDay(date) : _utils.DateUtils.startOfDay(date);\n};\n\nexports.setTimingMargin = setTimingMargin;\n\nfunction getCalendarDate(_ref) {\n var _value;\n\n var value = _ref.value;\n // Update calendarDate if the value is not null\n value = (_value = value) !== null && _value !== void 0 ? _value : [];\n\n if (value[0] && value[1]) {\n var sameMonth = _utils.DateUtils.isSameMonth(value[0], value[1]);\n\n return [value[0], sameMonth ? _utils.DateUtils.addMonths(value[1], 1) : value[1]]; // If only the start date\n } else if (value[0]) {\n return [value[0], _utils.DateUtils.addMonths(value[0], 1)];\n }\n\n var todayDate = new Date();\n return [todayDate, _utils.DateUtils.addMonths(todayDate, 1)];\n}\n\nvar getDefaultRanges = function getDefaultRanges() {\n var todayDate = new Date();\n return [{\n label: 'today',\n value: [setTimingMargin(todayDate), setTimingMargin(todayDate, 'right')]\n }, {\n label: 'yesterday',\n value: [setTimingMargin(_utils.DateUtils.addDays(todayDate, -1)), setTimingMargin(_utils.DateUtils.addDays(todayDate, -1), 'right')]\n }, {\n label: 'last7Days',\n value: [setTimingMargin(_utils.DateUtils.subDays(todayDate, 6)), setTimingMargin(todayDate, 'right')]\n }];\n};\n\nexports.getDefaultRanges = getDefaultRanges;\n\nvar isSameRange = function isSameRange(source, dest, format) {\n // If both are null, reguard as same\n if (null === source && null === dest) return true; // If only one is null, regard as different\n\n if (null === source || null === dest) return false;\n\n var result = _utils.DateUtils.isSameDay(source[0], dest[0]) && _utils.DateUtils.isSameDay(source[1], dest[1]);\n\n if (_utils.DateUtils.shouldTime(format)) {\n result && (result = _utils.DateUtils.isSameSecond(source[0], dest[0]) && _utils.DateUtils.isSameSecond(source[1], dest[1]));\n }\n\n return result;\n};\n\nexports.isSameRange = isSameRange;\n\nvar getMonthHoverRange = function getMonthHoverRange(date) {\n return [_utils.DateUtils.startOfMonth(date), _utils.DateUtils.endOfMonth(date)];\n};\n\nexports.getMonthHoverRange = getMonthHoverRange;\n\nvar getWeekHoverRange = function getWeekHoverRange(isoWeek, date) {\n if (isoWeek) {\n // set to the first day of this week according to ISO 8601, 12:00 am\n return [_utils.DateUtils.startOfISOWeek(date), _utils.DateUtils.endOfISOWeek(date)];\n }\n\n return [_utils.DateUtils.startOfWeek(date), _utils.DateUtils.endOfWeek(date)];\n};\n\nexports.getWeekHoverRange = getWeekHoverRange;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/utils.ts?");
2521
+ eval("\n\nexports.__esModule = true;\nexports.getCalendarDate = getCalendarDate;\nexports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = exports.getDefaultRanges = exports.setTimingMargin = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar setTimingMargin = function setTimingMargin(date, way) {\n if (way === void 0) {\n way = 'left';\n }\n\n return way === 'right' ? _utils.DateUtils.endOfDay(date) : _utils.DateUtils.startOfDay(date);\n};\n\nexports.setTimingMargin = setTimingMargin;\n\nfunction getCalendarDate(_ref) {\n var _value;\n\n var value = _ref.value,\n _ref$calendarKey = _ref.calendarKey,\n calendarKey = _ref$calendarKey === void 0 ? 'start' : _ref$calendarKey;\n // Update calendarDate if the value is not null\n value = (_value = value) !== null && _value !== void 0 ? _value : [];\n\n if (value[0] && value[1]) {\n var startMonth = _utils.DateUtils.getMonth(value[0]);\n\n var endMonth = _utils.DateUtils.getMonth(value[1]);\n\n if (calendarKey === 'start') {\n return [value[0], startMonth >= endMonth ? _utils.DateUtils.addMonths(value[0], 1) : value[1]];\n } else if (calendarKey === 'end') {\n return [startMonth >= endMonth ? _utils.DateUtils.addMonths(value[1], -1) : value[0], value[1]];\n } // If only the start date\n\n } else if (value[0]) {\n return [value[0], _utils.DateUtils.addMonths(value[0], 1)];\n }\n\n var todayDate = new Date();\n return [todayDate, _utils.DateUtils.addMonths(todayDate, 1)];\n}\n\nvar getDefaultRanges = function getDefaultRanges() {\n var todayDate = new Date();\n return [{\n label: 'today',\n value: [setTimingMargin(todayDate), setTimingMargin(todayDate, 'right')]\n }, {\n label: 'yesterday',\n value: [setTimingMargin(_utils.DateUtils.addDays(todayDate, -1)), setTimingMargin(_utils.DateUtils.addDays(todayDate, -1), 'right')]\n }, {\n label: 'last7Days',\n value: [setTimingMargin(_utils.DateUtils.subDays(todayDate, 6)), setTimingMargin(todayDate, 'right')]\n }];\n};\n\nexports.getDefaultRanges = getDefaultRanges;\n\nvar isSameRange = function isSameRange(source, dest, format) {\n // If both are null, reguard as same\n if (null === source && null === dest) return true; // If only one is null, regard as different\n\n if (null === source || null === dest) return false;\n\n var result = _utils.DateUtils.isSameDay(source[0], dest[0]) && _utils.DateUtils.isSameDay(source[1], dest[1]);\n\n if (_utils.DateUtils.shouldTime(format)) {\n result && (result = _utils.DateUtils.isSameSecond(source[0], dest[0]) && _utils.DateUtils.isSameSecond(source[1], dest[1]));\n }\n\n return result;\n};\n\nexports.isSameRange = isSameRange;\n\nvar getMonthHoverRange = function getMonthHoverRange(date) {\n return [_utils.DateUtils.startOfMonth(date), _utils.DateUtils.endOfMonth(date)];\n};\n\nexports.getMonthHoverRange = getMonthHoverRange;\n\nvar getWeekHoverRange = function getWeekHoverRange(isoWeek, date) {\n if (isoWeek) {\n // set to the first day of this week according to ISO 8601, 12:00 am\n return [_utils.DateUtils.startOfISOWeek(date), _utils.DateUtils.endOfISOWeek(date)];\n }\n\n return [_utils.DateUtils.startOfWeek(date), _utils.DateUtils.endOfWeek(date)];\n};\n\nexports.getWeekHoverRange = getWeekHoverRange;\n\n//# sourceURL=webpack://rsuite/./src/DateRangePicker/utils.ts?");
2522
2522
 
2523
2523
  /***/ }),
2524
2524
 
@@ -3123,7 +3123,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3123
3123
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3124
3124
 
3125
3125
  "use strict";
3126
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = exports.InputPickerContext = void 0;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteralLoose */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js\"));\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _isUndefined = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _remove = _interopRequireDefault(__webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\"));\n\nvar _clone = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\"));\n\nvar _isArray = _interopRequireDefault(__webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _getWidth = _interopRequireDefault(__webpack_require__(/*! dom-lib/getWidth */ \"./node_modules/dom-lib/esm/getWidth.js\"));\n\nvar _shallowEqual = _interopRequireDefault(__webpack_require__(/*! ../utils/shallowEqual */ \"./src/utils/shallowEqual.ts\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _Plaintext = _interopRequireDefault(__webpack_require__(/*! ../Plaintext */ \"./src/Plaintext/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _Tag = _interopRequireDefault(__webpack_require__(/*! ../Tag */ \"./src/Tag/index.tsx\"));\n\nvar _InputAutosize = _interopRequireDefault(__webpack_require__(/*! ./InputAutosize */ \"./src/InputPicker/InputAutosize.tsx\"));\n\nvar _InputSearch = _interopRequireDefault(__webpack_require__(/*! ./InputSearch */ \"./src/InputPicker/InputSearch.tsx\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/InputPicker/InputPicker.tsx\",\n _this = void 0,\n _templateObject,\n _templateObject2,\n _templateObject3,\n _templateObject4,\n _templateObject5;\n\nvar InputPickerContext = /*#__PURE__*/_react.default.createContext({\n tagProps: {},\n trigger: 'Enter'\n});\n\nexports.InputPickerContext = InputPickerContext;\n\nvar InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _merge;\n\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$cacheData = props.cacheData,\n cacheData = _props$cacheData === void 0 ? [] : _props$cacheData,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n _props$data = props.data,\n controlledData = _props$data === void 0 ? [] : _props$data,\n disabled = props.disabled,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n defaultValue = props.defaultValue,\n _props$defaultOpen = props.defaultOpen,\n defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,\n overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n controlledOpen = props.open,\n placeholder = props.placeholder,\n groupBy = props.groupBy,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n _props$menuMaxHeight = props.menuMaxHeight,\n menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,\n creatable = props.creatable,\n valueProp = props.value,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n virtualized = props.virtualized,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n listProps = props.listProps,\n id = props.id,\n tabIndex = props.tabIndex,\n sort = props.sort,\n renderMenu = props.renderMenu,\n renderExtraFooter = props.renderExtraFooter,\n renderValue = props.renderValue,\n renderMenuItem = props.renderMenuItem,\n renderMenuGroup = props.renderMenuGroup,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onExit = props.onExit,\n onExited = props.onExited,\n onChange = props.onChange,\n onClean = props.onClean,\n onCreate = props.onCreate,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onOpen = props.onOpen,\n onClose = props.onClose,\n onBlur = props.onBlur,\n onFocus = props.onFocus,\n searchBy = props.searchBy,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"appearance\", \"cleanable\", \"cacheData\", \"classPrefix\", \"data\", \"disabled\", \"readOnly\", \"plaintext\", \"defaultValue\", \"defaultOpen\", \"disabledItemValues\", \"locale\", \"toggleAs\", \"style\", \"searchable\", \"open\", \"placeholder\", \"groupBy\", \"menuClassName\", \"menuStyle\", \"menuAutoWidth\", \"menuMaxHeight\", \"creatable\", \"value\", \"valueKey\", \"virtualized\", \"labelKey\", \"listProps\", \"id\", \"tabIndex\", \"sort\", \"renderMenu\", \"renderExtraFooter\", \"renderValue\", \"renderMenuItem\", \"renderMenuGroup\", \"onEnter\", \"onEntered\", \"onExit\", \"onExited\", \"onChange\", \"onClean\", \"onCreate\", \"onSearch\", \"onSelect\", \"onOpen\", \"onClose\", \"onBlur\", \"onFocus\", \"searchBy\", \"placement\"]);\n\n var _useContext = (0, _react.useContext)(InputPickerContext),\n multi = _useContext.multi,\n tagProps = _useContext.tagProps,\n trigger = _useContext.trigger,\n disabledOptions = _useContext.disabledOptions;\n\n if (groupBy === valueKey || groupBy === labelKey) {\n throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');\n }\n\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var triggerRef = (0, _react.useRef)(null);\n var inputRef = (0, _react.useRef)();\n\n var _useCustom = (0, _utils.useCustom)(['Picker', 'InputPicker'], overrideLocale),\n locale = _useCustom.locale;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useState = (0, _react.useState)(controlledData),\n uncontrolledData = _useState[0],\n setData = _useState[1];\n\n var _useState2 = (0, _react.useState)(100),\n maxWidth = _useState2[0],\n setMaxWidth = _useState2[1];\n\n var _useState3 = (0, _react.useState)([]),\n newData = _useState3[0],\n setNewData = _useState3[1];\n\n var _useState4 = (0, _react.useState)(defaultOpen),\n uncontrolledOpen = _useState4[0],\n setOpen = _useState4[1];\n\n var open = (0, _isUndefined.default)(controlledOpen) ? uncontrolledOpen : controlledOpen;\n var getAllData = (0, _react.useCallback)(function () {\n return [].concat(uncontrolledData, newData);\n }, [uncontrolledData, newData]);\n var getAllDataAndCache = (0, _react.useCallback)(function () {\n return [].concat(getAllData(), cacheData);\n }, [getAllData, cacheData]);\n\n var _useControlled = (0, _utils.useControlled)(valueProp, multi ? defaultValue || [] : defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n\n var cloneValue = (0, _react.useCallback)(function () {\n return multi ? (0, _clone.default)(value) || [] : value;\n }, [multi, value]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current;\n\n triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();\n }, [triggerRef]); // Used to hover the focuse item when trigger `onKeydown`\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(multi ? value === null || value === void 0 ? void 0 : value[0] : value, {\n data: getAllDataAndCache(),\n valueKey: valueKey,\n target: function target() {\n return overlayRef.current;\n }\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setFocusItemValue = _useFocusItemValue.setFocusItemValue,\n onKeyDown = _useFocusItemValue.onKeyDown;\n\n var handleSearchCallback = (0, _react.useCallback)(function (searchKeyword, filteredData, event) {\n var _filteredData$;\n\n // The first option after filtering is the focus.\n setFocusItemValue(disabledOptions ? searchKeyword : (filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]) || searchKeyword);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }, [disabledOptions, setFocusItemValue, valueKey, onSearch]); // Use search keywords to filter options.\n\n var _useSearch = (0, _Picker.useSearch)({\n labelKey: labelKey,\n data: getAllData(),\n searchBy: searchBy,\n callback: handleSearchCallback\n }),\n searchKeyword = _useSearch.searchKeyword,\n setSearchKeyword = _useSearch.setSearchKeyword,\n checkShouldDisplay = _useSearch.checkShouldDisplay,\n handleSearch = _useSearch.handleSearch; // Update the state when the data in props changes\n\n\n (0, _react.useEffect)(function () {\n if (controlledData && !(0, _shallowEqual.default)(controlledData, uncontrolledData)) {\n var _controlledData$;\n\n setData(controlledData);\n setNewData([]);\n setFocusItemValue(controlledData === null || controlledData === void 0 ? void 0 : (_controlledData$ = controlledData[0]) === null || _controlledData$ === void 0 ? void 0 : _controlledData$[valueKey]);\n }\n }, [setFocusItemValue, controlledData, uncontrolledData, valueKey]);\n (0, _react.useEffect)(function () {\n var _triggerRef$current2;\n\n // In multiple selection, you need to set a maximum width for the input.\n if ((_triggerRef$current2 = triggerRef.current) !== null && _triggerRef$current2 !== void 0 && _triggerRef$current2.root) {\n setMaxWidth((0, _getWidth.default)(triggerRef.current.root));\n }\n }, []); // Update the position of the menu when the search keyword and value change\n\n (0, _react.useEffect)(function () {\n var _triggerRef$current3, _triggerRef$current3$;\n\n (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.updatePosition) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);\n }, [searchKeyword, value]);\n\n var getDateItem = function getDateItem(value) {\n // Find active `MenuItem` by `value`\n var allData = getAllDataAndCache();\n var activeItem = allData.find(function (item) {\n return (0, _shallowEqual.default)(item[valueKey], value);\n });\n var itemNode = placeholder;\n\n if (activeItem !== null && activeItem !== void 0 && activeItem[labelKey]) {\n itemNode = activeItem === null || activeItem === void 0 ? void 0 : activeItem[labelKey];\n }\n\n return {\n isValid: !!activeItem,\n activeItem: activeItem,\n itemNode: itemNode\n };\n };\n\n var getInput = (0, _react.useCallback)(function () {\n var _inputRef$current;\n\n return multi ? (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.input : inputRef.current;\n }, [inputRef, multi]);\n var focusInput = (0, _react.useCallback)(function () {\n var _getInput;\n\n return (_getInput = getInput()) === null || _getInput === void 0 ? void 0 : _getInput.focus();\n }, [getInput]);\n var blurInput = (0, _react.useCallback)(function () {\n var _getInput2;\n\n return (_getInput2 = getInput()) === null || _getInput2 === void 0 ? void 0 : _getInput2.blur();\n }, [getInput]);\n /**\n * Convert the string of the newly created option into an object.\n */\n\n var createOption = (0, _react.useCallback)(function (value) {\n var _ref2;\n\n if (groupBy) {\n var _ref;\n\n return _ref = {\n create: true\n }, _ref[groupBy] = locale === null || locale === void 0 ? void 0 : locale.newItem, _ref[valueKey] = value, _ref[labelKey] = value, _ref;\n }\n\n return _ref2 = {\n create: true\n }, _ref2[valueKey] = value, _ref2[labelKey] = value, _ref2;\n }, [groupBy, valueKey, labelKey, locale]);\n var handleChange = (0, _react.useCallback)(function (value, event) {\n onChange === null || onChange === void 0 ? void 0 : onChange(value, event);\n }, [onChange]);\n var handleRemoveItemByTag = (0, _react.useCallback)(function (tag, event) {\n event.stopPropagation();\n var val = cloneValue();\n (0, _remove.default)(val, function (itemVal) {\n return (0, _shallowEqual.default)(itemVal, tag);\n });\n setValue(val);\n handleChange(val, event);\n }, [setValue, cloneValue, handleChange]);\n var handleSelect = (0, _react.useCallback)(function (value, item, event) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);\n\n if (creatable && item.create) {\n delete item.create;\n onCreate === null || onCreate === void 0 ? void 0 : onCreate(value, item, event);\n setNewData(newData.concat(item));\n }\n }, [creatable, newData, onSelect, onCreate]);\n /**\n * Callback triggered by single selection\n * @param value\n * @param item\n * @param event\n */\n\n var handleSelectItem = function handleSelectItem(value, item, event) {\n setValue(value);\n setFocusItemValue(value);\n setSearchKeyword('');\n handleSelect(value, item, event);\n handleChange(value, event);\n handleClose();\n };\n /**\n * Callback triggered by multiple selection\n * @param nextItemValue\n * @param item\n * @param event\n * @param checked\n */\n\n\n var handleCheckTag = function handleCheckTag(nextItemValue, item, event, checked) {\n var val = cloneValue();\n\n if (checked) {\n val.push(nextItemValue);\n } else {\n (0, _remove.default)(val, function (itemVal) {\n return (0, _shallowEqual.default)(itemVal, nextItemValue);\n });\n }\n\n setValue(val);\n setSearchKeyword('');\n setFocusItemValue(nextItemValue);\n handleSelect(val, item, event);\n handleChange(val, event);\n focusInput();\n };\n\n var handleTagKeyPress = (0, _react.useCallback)(function (event) {\n var val = cloneValue();\n var data = getAllData();\n\n if (!focusItemValue || !data) {\n return;\n } // If the value is disabled in this option, it is returned.\n\n\n if (disabledItemValues !== null && disabledItemValues !== void 0 && disabledItemValues.some(function (item) {\n return item === focusItemValue;\n })) {\n return;\n }\n\n if (!val.some(function (v) {\n return (0, _shallowEqual.default)(v, focusItemValue);\n })) {\n val.push(focusItemValue);\n } else if (!disabledOptions) {\n (0, _remove.default)(val, function (itemVal) {\n return (0, _shallowEqual.default)(itemVal, focusItemValue);\n });\n }\n\n var focusItem = data.find(function (item) {\n return (0, _shallowEqual.default)(item === null || item === void 0 ? void 0 : item[valueKey], focusItemValue);\n });\n\n if (!focusItem) {\n focusItem = createOption(focusItemValue);\n }\n\n setValue(val);\n setSearchKeyword('');\n handleSelect(val, focusItem, event);\n handleChange(val, event);\n }, [cloneValue, getAllData, focusItemValue, disabledItemValues, disabledOptions, setValue, setSearchKeyword, handleSelect, handleChange, valueKey, createOption]);\n var handleMenuItemKeyPress = (0, _react.useCallback)(function (event) {\n if (!focusItemValue || !controlledData) {\n return;\n } // If the value is disabled in this option, it is returned.\n\n\n if (disabledItemValues !== null && disabledItemValues !== void 0 && disabledItemValues.some(function (item) {\n return item === focusItemValue;\n })) {\n return;\n } // Find active `MenuItem` by `value`\n\n\n var allData = getAllData();\n var focusItem = allData.find(function (item) {\n return (0, _shallowEqual.default)(item[valueKey], focusItemValue);\n }); // FIXME Bad state flow\n\n if (!focusItem && focusItemValue === searchKeyword) {\n focusItem = createOption(searchKeyword);\n }\n\n setValue(focusItemValue);\n setSearchKeyword('');\n\n if (focusItem) {\n handleSelect(focusItemValue, focusItem, event);\n }\n\n handleChange(focusItemValue, event);\n handleClose();\n }, [setValue, disabledItemValues, controlledData, focusItemValue, valueKey, searchKeyword, handleClose, setSearchKeyword, createOption, getAllData, handleChange, handleSelect]);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n /**\n * Remove the last item, after pressing the back key on the keyboard.\n * @param event\n */\n\n var removeLastItem = (0, _react.useCallback)(function (event) {\n var target = event === null || event === void 0 ? void 0 : event.target;\n\n if ((target === null || target === void 0 ? void 0 : target.tagName) !== 'INPUT') {\n focusInput();\n return;\n }\n\n if ((target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT' && target !== null && target !== void 0 && target.value) {\n return;\n }\n\n var val = cloneValue();\n val.pop();\n setValue(val);\n handleChange(val, event);\n }, [setValue, focusInput, handleChange, cloneValue]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || searchKeyword !== '') {\n return;\n }\n\n setValue(null);\n setFocusItemValue(null);\n setSearchKeyword('');\n handleChange(null, event);\n onClean === null || onClean === void 0 ? void 0 : onClean(event);\n }, [disabled, searchKeyword, onClean, handleChange, setValue, setFocusItemValue, setSearchKeyword]);\n var events = {\n onMenuPressBackspace: multi ? removeLastItem : handleClean,\n onMenuKeyDown: onKeyDown,\n onMenuPressEnter: undefined,\n onKeyDown: undefined\n };\n var handleKeyPress = (0, _react.useCallback)(function (event) {\n // When typing a space, create a tag.\n if ((0, _utils.isOneOf)('Space', trigger) && event.key === _utils.KEY_VALUES.SPACE) {\n handleTagKeyPress(event);\n event.preventDefault();\n } // When typing a comma, create a tag.\n\n\n if ((0, _utils.isOneOf)('Comma', trigger) && event.key === _utils.KEY_VALUES.COMMA) {\n handleTagKeyPress(event);\n event.preventDefault();\n }\n }, [handleTagKeyPress, trigger]);\n\n if (multi) {\n if ((0, _utils.isOneOf)('Enter', trigger)) {\n events.onMenuPressEnter = handleTagKeyPress;\n }\n\n if (creatable) {\n events.onKeyDown = handleKeyPress;\n }\n } else {\n events.onMenuPressEnter = handleMenuItemKeyPress;\n }\n\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef\n }, events, rest));\n var handleExited = (0, _react.useCallback)(function () {\n setFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value);\n setSearchKeyword('');\n onClose === null || onClose === void 0 ? void 0 : onClose();\n }, [setFocusItemValue, setSearchKeyword, onClose, value, multi]);\n var handleFocus = (0, _react.useCallback)(function () {\n if (!readOnly) {\n var _triggerRef$current4;\n\n setOpen(true);\n (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.open();\n }\n }, [readOnly]);\n var handleBlur = (0, _react.useCallback)(function () {\n setOpen(false);\n }, []);\n var handleEnter = (0, _react.useCallback)(function () {\n focusInput();\n setOpen(true);\n }, [focusInput]);\n var handleExit = (0, _react.useCallback)(function () {\n blurInput();\n setOpen(false);\n }, [blurInput]);\n\n var renderDropdownMenuItem = function renderDropdownMenuItem(label, item) {\n // 'Create option \"{0}\"' => Create option \"xxxxx\"\n var newLabel = item.create ? /*#__PURE__*/_react.default.createElement(\"span\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 584,\n columnNumber: 9\n }\n }, (0, _utils.tplTransform)(locale.createOption, label)) : label;\n return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;\n };\n\n var checkValue = function checkValue() {\n if (multi) {\n return {\n isValid: false,\n itemNode: null\n };\n }\n\n var dataItem = getDateItem(value);\n var itemNode = dataItem.itemNode;\n\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n itemNode = renderValue(value, dataItem.activeItem, itemNode);\n }\n\n return {\n isValid: dataItem.isValid,\n itemNode: itemNode\n };\n };\n\n var renderMultiValue = function renderMultiValue() {\n if (!multi) {\n return null;\n }\n\n var _tagProps$closable = tagProps.closable,\n closable = _tagProps$closable === void 0 ? true : _tagProps$closable,\n onClose = tagProps.onClose,\n tagRest = (0, _objectWithoutPropertiesLoose2.default)(tagProps, [\"closable\", \"onClose\"]);\n var tags = value || [];\n var items = [];\n var tagElements = tags.map(function (tag) {\n var _getDateItem = getDateItem(tag),\n isValid = _getDateItem.isValid,\n itemNode = _getDateItem.itemNode,\n activeItem = _getDateItem.activeItem;\n\n items.push(activeItem);\n\n if (!isValid) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Tag.default, (0, _extends2.default)({}, tagRest, {\n key: tag,\n size: rest.size === 'lg' ? 'lg' : rest.size === 'xs' ? 'sm' : 'md',\n closable: !disabled && closable && !readOnly && !plaintext,\n title: typeof itemNode === 'string' ? itemNode : undefined,\n onClose: (0, _utils.createChainedFunction)(handleRemoveItemByTag.bind(null, tag), onClose),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 629,\n columnNumber: 13\n }\n }), itemNode);\n }).filter(function (item) {\n return item !== null;\n });\n\n if ((tags.length > 0 || isControlled) && (0, _isFunction.default)(renderValue)) {\n return renderValue(value, items, tagElements);\n }\n\n return tagElements;\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var menuClassPrefix = multi ? 'picker-check-menu' : 'picker-select-menu';\n var classes = merge(className, menuClassName, prefix(menuClassPrefix));\n var styles = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var items = (0, _treeUtils.filterNodesOfTree)(getAllData(), checkShouldDisplay);\n\n if (creatable && searchKeyword && !items.find(function (item) {\n return item[valueKey] === searchKeyword;\n })) {\n items = [].concat(items, [createOption(searchKeyword)]);\n } // Create a tree structure data when set `groupBy`\n\n\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\n if (disabledOptions) {\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 670,\n columnNumber: 16\n }\n });\n }\n\n var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {\n id: id ? id + \"-listbox\" : undefined,\n listProps: listProps,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n classPrefix: menuClassPrefix,\n dropdownMenuItemClassPrefix: multi ? undefined : menuClassPrefix + \"-item\",\n dropdownMenuItemAs: multi ? _Picker.DropdownMenuCheckItem : _Picker.DropdownMenuItem,\n activeItemValues: multi ? value : [value],\n focusItemValue: focusItemValue,\n maxHeight: menuMaxHeight,\n data: items,\n group: !(0, _isUndefined.default)(groupBy),\n onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any\n ,\n renderMenuGroup: renderMenuGroup,\n renderMenuItem: renderDropdownMenuItem,\n virtualized: virtualized,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 674,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"none\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 694,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 698,\n columnNumber: 9\n }\n }, renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var _checkValue = checkValue(),\n isValid = _checkValue.isValid,\n itemNode = _checkValue.itemNode;\n\n var tagElements = renderMultiValue();\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\n var hasSingleValue = !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(itemNode);\n var hasMultiValue = (0, _isArray.default)(value) && value.length > 0 && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(tagElements);\n var hasValue = multi ? !!(tagElements !== null && tagElements !== void 0 && tagElements.length) || hasMultiValue : isValid || hasSingleValue;\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n hasValue: hasValue,\n name: 'input',\n cleanable: cleanable\n })),\n pickerClasses = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)([\"tag\"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)([\"focused\"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)([\"disabled-options\"])))] = disabledOptions, _merge));\n var searching = !!searchKeyword && open;\n var displaySearchInput = searchable && !disabled;\n var inputProps = multi ? {\n inputStyle: {\n maxWidth: maxWidth - 63\n },\n as: _InputAutosize.default\n } : {\n as: 'input'\n };\n\n if (plaintext) {\n var plaintextProps = {}; // TagPicker has -6px margin-left on the plaintext wrapper\n // for fixing margin-left on tags from 2nd line on\n\n if (multi && hasValue) {\n plaintextProps.style = {\n marginLeft: -6\n };\n }\n\n return /*#__PURE__*/_react.default.createElement(_Plaintext.default, (0, _extends2.default)({\n localeKey: \"notSelected\",\n ref: targetRef\n }, plaintextProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 758,\n columnNumber: 9\n }\n }), itemNode || (tagElements !== null && tagElements !== void 0 && tagElements.length ? tagElements : null) || placeholder);\n }\n\n var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n trigger: \"active\",\n onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),\n onEntered: (0, _utils.createChainedFunction)(onEntered, onOpen),\n onExit: (0, _utils.createChainedFunction)(handleExit, onExit),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n placement: placement,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 767,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n onClick: focusInput,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 778,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n appearance: appearance,\n readOnly: readOnly,\n plaintext: plaintext,\n ref: targetRef,\n as: toggleAs,\n tabIndex: undefined,\n onClean: handleClean,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: open,\n disabled: disabled,\n placement: placement,\n inputValue: value,\n caret: !disabledOptions,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 784,\n columnNumber: 11\n }\n }), searching || multi && hasValue ? null : itemNode || placeholderNode), !(!multi && disabled) && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)([\"tag-wrapper\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 806,\n columnNumber: 13\n }\n }, tagElements, displaySearchInput && /*#__PURE__*/_react.default.createElement(_InputSearch.default, (0, _extends2.default)({}, inputProps, {\n tabIndex: tabIndex,\n readOnly: readOnly,\n onBlur: (0, _utils.createChainedFunction)(handleBlur, onBlur),\n onFocus: (0, _utils.createChainedFunction)(handleFocus, onFocus),\n inputRef: inputRef,\n onChange: handleSearch,\n value: open ? searchKeyword : '',\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 809,\n columnNumber: 17\n }\n })))));\n});\n\nInputPicker.displayName = 'InputPicker';\nInputPicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n cacheData: _propTypes.default.array,\n menuAutoWidth: _propTypes.default.bool,\n menuMaxHeight: _propTypes.default.number,\n searchable: _propTypes.default.bool,\n creatable: _propTypes.default.bool,\n groupBy: _propTypes.default.any,\n sort: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n renderMenuItem: _propTypes.default.func,\n renderMenuGroup: _propTypes.default.func,\n onCreate: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onGroupTitleClick: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n virtualized: _propTypes.default.bool,\n searchBy: _propTypes.default.func\n});\nvar _default = InputPicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/InputPicker/InputPicker.tsx?");
3126
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = exports.InputPickerContext = void 0;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteralLoose */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js\"));\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _isUndefined = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _remove = _interopRequireDefault(__webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\"));\n\nvar _clone = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\"));\n\nvar _isArray = _interopRequireDefault(__webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _getWidth = _interopRequireDefault(__webpack_require__(/*! dom-lib/getWidth */ \"./node_modules/dom-lib/esm/getWidth.js\"));\n\nvar _shallowEqual = _interopRequireDefault(__webpack_require__(/*! ../utils/shallowEqual */ \"./src/utils/shallowEqual.ts\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _Plaintext = _interopRequireDefault(__webpack_require__(/*! ../Plaintext */ \"./src/Plaintext/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _Tag = _interopRequireDefault(__webpack_require__(/*! ../Tag */ \"./src/Tag/index.tsx\"));\n\nvar _InputAutosize = _interopRequireDefault(__webpack_require__(/*! ./InputAutosize */ \"./src/InputPicker/InputAutosize.tsx\"));\n\nvar _InputSearch = _interopRequireDefault(__webpack_require__(/*! ./InputSearch */ \"./src/InputPicker/InputSearch.tsx\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/InputPicker/InputPicker.tsx\",\n _this = void 0,\n _templateObject,\n _templateObject2,\n _templateObject3,\n _templateObject4,\n _templateObject5;\n\nvar InputPickerContext = /*#__PURE__*/_react.default.createContext({\n tagProps: {},\n trigger: 'Enter'\n});\n\nexports.InputPickerContext = InputPickerContext;\n\nvar InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _merge;\n\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$cacheData = props.cacheData,\n cacheData = _props$cacheData === void 0 ? [] : _props$cacheData,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n _props$data = props.data,\n controlledData = _props$data === void 0 ? [] : _props$data,\n disabled = props.disabled,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n defaultValue = props.defaultValue,\n _props$defaultOpen = props.defaultOpen,\n defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,\n overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n controlledOpen = props.open,\n placeholder = props.placeholder,\n groupBy = props.groupBy,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n _props$menuMaxHeight = props.menuMaxHeight,\n menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,\n creatable = props.creatable,\n valueProp = props.value,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n virtualized = props.virtualized,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n listProps = props.listProps,\n id = props.id,\n tabIndex = props.tabIndex,\n sort = props.sort,\n renderMenu = props.renderMenu,\n renderExtraFooter = props.renderExtraFooter,\n renderValue = props.renderValue,\n renderMenuItem = props.renderMenuItem,\n renderMenuGroup = props.renderMenuGroup,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onExit = props.onExit,\n onExited = props.onExited,\n onChange = props.onChange,\n onClean = props.onClean,\n onCreate = props.onCreate,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onOpen = props.onOpen,\n onClose = props.onClose,\n onBlur = props.onBlur,\n onFocus = props.onFocus,\n searchBy = props.searchBy,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"appearance\", \"cleanable\", \"cacheData\", \"classPrefix\", \"data\", \"disabled\", \"readOnly\", \"plaintext\", \"defaultValue\", \"defaultOpen\", \"disabledItemValues\", \"locale\", \"toggleAs\", \"style\", \"searchable\", \"open\", \"placeholder\", \"groupBy\", \"menuClassName\", \"menuStyle\", \"menuAutoWidth\", \"menuMaxHeight\", \"creatable\", \"value\", \"valueKey\", \"virtualized\", \"labelKey\", \"listProps\", \"id\", \"tabIndex\", \"sort\", \"renderMenu\", \"renderExtraFooter\", \"renderValue\", \"renderMenuItem\", \"renderMenuGroup\", \"onEnter\", \"onEntered\", \"onExit\", \"onExited\", \"onChange\", \"onClean\", \"onCreate\", \"onSearch\", \"onSelect\", \"onOpen\", \"onClose\", \"onBlur\", \"onFocus\", \"searchBy\", \"placement\"]);\n\n var _useContext = (0, _react.useContext)(InputPickerContext),\n multi = _useContext.multi,\n tagProps = _useContext.tagProps,\n trigger = _useContext.trigger,\n disabledOptions = _useContext.disabledOptions;\n\n if (groupBy === valueKey || groupBy === labelKey) {\n throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');\n }\n\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var triggerRef = (0, _react.useRef)(null);\n var inputRef = (0, _react.useRef)();\n\n var _useCustom = (0, _utils.useCustom)(['Picker', 'InputPicker'], overrideLocale),\n locale = _useCustom.locale;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useState = (0, _react.useState)(controlledData),\n uncontrolledData = _useState[0],\n setData = _useState[1];\n\n var _useState2 = (0, _react.useState)(100),\n maxWidth = _useState2[0],\n setMaxWidth = _useState2[1];\n\n var _useState3 = (0, _react.useState)([]),\n newData = _useState3[0],\n setNewData = _useState3[1];\n\n var _useState4 = (0, _react.useState)(defaultOpen),\n uncontrolledOpen = _useState4[0],\n setOpen = _useState4[1];\n\n var open = (0, _isUndefined.default)(controlledOpen) ? uncontrolledOpen : controlledOpen;\n var getAllData = (0, _react.useCallback)(function () {\n return [].concat(uncontrolledData, newData);\n }, [uncontrolledData, newData]);\n var getAllDataAndCache = (0, _react.useCallback)(function () {\n return [].concat(getAllData(), cacheData);\n }, [getAllData, cacheData]);\n\n var _useControlled = (0, _utils.useControlled)(valueProp, multi ? defaultValue || [] : defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n\n var cloneValue = (0, _react.useCallback)(function () {\n return multi ? (0, _clone.default)(value) || [] : value;\n }, [multi, value]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current;\n\n triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();\n }, [triggerRef]); // Used to hover the focuse item when trigger `onKeydown`\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(multi ? value === null || value === void 0 ? void 0 : value[0] : value, {\n data: getAllDataAndCache(),\n valueKey: valueKey,\n target: function target() {\n return overlayRef.current;\n }\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setFocusItemValue = _useFocusItemValue.setFocusItemValue,\n onKeyDown = _useFocusItemValue.onKeyDown;\n\n var handleSearchCallback = (0, _react.useCallback)(function (searchKeyword, filteredData, event) {\n var _filteredData$;\n\n // The first option after filtering is the focus.\n setFocusItemValue(disabledOptions ? searchKeyword : (filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]) || searchKeyword);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }, [disabledOptions, setFocusItemValue, valueKey, onSearch]); // Use search keywords to filter options.\n\n var _useSearch = (0, _Picker.useSearch)({\n labelKey: labelKey,\n data: getAllData(),\n searchBy: searchBy,\n callback: handleSearchCallback\n }),\n searchKeyword = _useSearch.searchKeyword,\n setSearchKeyword = _useSearch.setSearchKeyword,\n checkShouldDisplay = _useSearch.checkShouldDisplay,\n handleSearch = _useSearch.handleSearch; // Update the state when the data in props changes\n\n\n (0, _react.useEffect)(function () {\n if (controlledData && !(0, _shallowEqual.default)(controlledData, uncontrolledData)) {\n var _controlledData$;\n\n setData(controlledData);\n setNewData([]);\n setFocusItemValue(controlledData === null || controlledData === void 0 ? void 0 : (_controlledData$ = controlledData[0]) === null || _controlledData$ === void 0 ? void 0 : _controlledData$[valueKey]);\n }\n }, [setFocusItemValue, controlledData, uncontrolledData, valueKey]);\n (0, _react.useEffect)(function () {\n var _triggerRef$current2;\n\n // In multiple selection, you need to set a maximum width for the input.\n if ((_triggerRef$current2 = triggerRef.current) !== null && _triggerRef$current2 !== void 0 && _triggerRef$current2.root) {\n setMaxWidth((0, _getWidth.default)(triggerRef.current.root));\n }\n }, []); // Update the position of the menu when the search keyword and value change\n\n (0, _react.useEffect)(function () {\n var _triggerRef$current3, _triggerRef$current3$;\n\n (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.updatePosition) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);\n }, [searchKeyword, value]);\n\n var getDateItem = function getDateItem(value) {\n // Find active `MenuItem` by `value`\n var allData = getAllDataAndCache();\n var activeItem = allData.find(function (item) {\n return (0, _shallowEqual.default)(item[valueKey], value);\n });\n var itemNode = placeholder;\n\n if (activeItem !== null && activeItem !== void 0 && activeItem[labelKey]) {\n itemNode = activeItem === null || activeItem === void 0 ? void 0 : activeItem[labelKey];\n }\n\n return {\n isValid: !!activeItem,\n activeItem: activeItem,\n itemNode: itemNode\n };\n };\n\n var getInput = (0, _react.useCallback)(function () {\n var _inputRef$current;\n\n return multi ? (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.input : inputRef.current;\n }, [inputRef, multi]);\n var focusInput = (0, _react.useCallback)(function () {\n var _getInput;\n\n return (_getInput = getInput()) === null || _getInput === void 0 ? void 0 : _getInput.focus();\n }, [getInput]);\n var blurInput = (0, _react.useCallback)(function () {\n var _getInput2;\n\n return (_getInput2 = getInput()) === null || _getInput2 === void 0 ? void 0 : _getInput2.blur();\n }, [getInput]);\n /**\n * Convert the string of the newly created option into an object.\n */\n\n var createOption = (0, _react.useCallback)(function (value) {\n var _ref2;\n\n if (groupBy) {\n var _ref;\n\n return _ref = {\n create: true\n }, _ref[groupBy] = locale === null || locale === void 0 ? void 0 : locale.newItem, _ref[valueKey] = value, _ref[labelKey] = value, _ref;\n }\n\n return _ref2 = {\n create: true\n }, _ref2[valueKey] = value, _ref2[labelKey] = value, _ref2;\n }, [groupBy, valueKey, labelKey, locale]);\n var handleChange = (0, _react.useCallback)(function (value, event) {\n onChange === null || onChange === void 0 ? void 0 : onChange(value, event);\n }, [onChange]);\n var handleRemoveItemByTag = (0, _react.useCallback)(function (tag, event) {\n event.stopPropagation();\n var val = cloneValue();\n (0, _remove.default)(val, function (itemVal) {\n return (0, _shallowEqual.default)(itemVal, tag);\n });\n setValue(val);\n handleChange(val, event);\n }, [setValue, cloneValue, handleChange]);\n var handleSelect = (0, _react.useCallback)(function (value, item, event) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);\n\n if (creatable && item.create) {\n delete item.create;\n onCreate === null || onCreate === void 0 ? void 0 : onCreate(value, item, event);\n setNewData(newData.concat(item));\n }\n }, [creatable, newData, onSelect, onCreate]);\n /**\n * Callback triggered by single selection\n * @param value\n * @param item\n * @param event\n */\n\n var handleSelectItem = function handleSelectItem(value, item, event) {\n setValue(value);\n setFocusItemValue(value);\n setSearchKeyword('');\n handleSelect(value, item, event);\n handleChange(value, event);\n handleClose();\n };\n /**\n * Callback triggered by multiple selection\n * @param nextItemValue\n * @param item\n * @param event\n * @param checked\n */\n\n\n var handleCheckTag = function handleCheckTag(nextItemValue, item, event, checked) {\n var val = cloneValue();\n\n if (checked) {\n val.push(nextItemValue);\n } else {\n (0, _remove.default)(val, function (itemVal) {\n return (0, _shallowEqual.default)(itemVal, nextItemValue);\n });\n }\n\n setValue(val);\n setSearchKeyword('');\n setFocusItemValue(nextItemValue);\n handleSelect(val, item, event);\n handleChange(val, event);\n focusInput();\n };\n\n var handleTagKeyPress = (0, _react.useCallback)(function (event) {\n var val = cloneValue();\n var data = getAllData();\n\n if (!focusItemValue || !data) {\n return;\n } // If the value is disabled in this option, it is returned.\n\n\n if (disabledItemValues !== null && disabledItemValues !== void 0 && disabledItemValues.some(function (item) {\n return item === focusItemValue;\n })) {\n return;\n }\n\n if (!val.some(function (v) {\n return (0, _shallowEqual.default)(v, focusItemValue);\n })) {\n val.push(focusItemValue);\n } else if (!disabledOptions) {\n (0, _remove.default)(val, function (itemVal) {\n return (0, _shallowEqual.default)(itemVal, focusItemValue);\n });\n }\n\n var focusItem = data.find(function (item) {\n return (0, _shallowEqual.default)(item === null || item === void 0 ? void 0 : item[valueKey], focusItemValue);\n });\n\n if (!focusItem) {\n focusItem = createOption(focusItemValue);\n }\n\n setValue(val);\n setSearchKeyword('');\n handleSelect(val, focusItem, event);\n handleChange(val, event);\n }, [cloneValue, getAllData, focusItemValue, disabledItemValues, disabledOptions, setValue, setSearchKeyword, handleSelect, handleChange, valueKey, createOption]);\n var handleMenuItemKeyPress = (0, _react.useCallback)(function (event) {\n if (!focusItemValue || !controlledData) {\n return;\n } // If the value is disabled in this option, it is returned.\n\n\n if (disabledItemValues !== null && disabledItemValues !== void 0 && disabledItemValues.some(function (item) {\n return item === focusItemValue;\n })) {\n return;\n } // Find active `MenuItem` by `value`\n\n\n var allData = getAllData();\n var focusItem = allData.find(function (item) {\n return (0, _shallowEqual.default)(item[valueKey], focusItemValue);\n }); // FIXME Bad state flow\n\n if (!focusItem && focusItemValue === searchKeyword) {\n focusItem = createOption(searchKeyword);\n }\n\n setValue(focusItemValue);\n setSearchKeyword('');\n\n if (focusItem) {\n handleSelect(focusItemValue, focusItem, event);\n }\n\n handleChange(focusItemValue, event);\n handleClose();\n }, [setValue, disabledItemValues, controlledData, focusItemValue, valueKey, searchKeyword, handleClose, setSearchKeyword, createOption, getAllData, handleChange, handleSelect]);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n /**\n * Remove the last item, after pressing the back key on the keyboard.\n * @param event\n */\n\n var removeLastItem = (0, _react.useCallback)(function (event) {\n var target = event === null || event === void 0 ? void 0 : event.target;\n\n if ((target === null || target === void 0 ? void 0 : target.tagName) !== 'INPUT') {\n focusInput();\n return;\n }\n\n if ((target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT' && target !== null && target !== void 0 && target.value) {\n return;\n }\n\n var val = cloneValue();\n val.pop();\n setValue(val);\n handleChange(val, event);\n }, [setValue, focusInput, handleChange, cloneValue]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || searchKeyword !== '') {\n return;\n }\n\n setValue(null);\n setFocusItemValue(null);\n setSearchKeyword('');\n handleChange(null, event);\n onClean === null || onClean === void 0 ? void 0 : onClean(event);\n }, [disabled, searchKeyword, onClean, handleChange, setValue, setFocusItemValue, setSearchKeyword]);\n var events = {\n onMenuPressBackspace: multi ? removeLastItem : handleClean,\n onMenuKeyDown: onKeyDown,\n onMenuPressEnter: undefined,\n onKeyDown: undefined\n };\n var handleKeyPress = (0, _react.useCallback)(function (event) {\n // When typing a space, create a tag.\n if ((0, _utils.isOneOf)('Space', trigger) && event.key === _utils.KEY_VALUES.SPACE) {\n handleTagKeyPress(event);\n event.preventDefault();\n } // When typing a comma, create a tag.\n\n\n if ((0, _utils.isOneOf)('Comma', trigger) && event.key === _utils.KEY_VALUES.COMMA) {\n handleTagKeyPress(event);\n event.preventDefault();\n }\n }, [handleTagKeyPress, trigger]);\n\n if (multi) {\n if ((0, _utils.isOneOf)('Enter', trigger)) {\n events.onMenuPressEnter = handleTagKeyPress;\n }\n\n if (creatable) {\n events.onKeyDown = handleKeyPress;\n }\n } else {\n events.onMenuPressEnter = handleMenuItemKeyPress;\n }\n\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef\n }, events, rest));\n var handleExited = (0, _react.useCallback)(function () {\n setFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value);\n setSearchKeyword('');\n onClose === null || onClose === void 0 ? void 0 : onClose();\n }, [setFocusItemValue, setSearchKeyword, onClose, value, multi]);\n var handleFocus = (0, _react.useCallback)(function () {\n if (!readOnly) {\n var _triggerRef$current4;\n\n setOpen(true);\n (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.open();\n }\n }, [readOnly]);\n var handleBlur = (0, _react.useCallback)(function () {\n setOpen(false);\n }, []);\n var handleEnter = (0, _react.useCallback)(function () {\n focusInput();\n setOpen(true);\n }, [focusInput]);\n var handleExit = (0, _react.useCallback)(function () {\n blurInput();\n setOpen(false);\n }, [blurInput]);\n\n var renderDropdownMenuItem = function renderDropdownMenuItem(label, item) {\n // 'Create option \"{0}\"' => Create option \"xxxxx\"\n var newLabel = item.create ? /*#__PURE__*/_react.default.createElement(\"span\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 586,\n columnNumber: 9\n }\n }, (0, _utils.tplTransform)(locale.createOption, label)) : label;\n return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;\n };\n\n var checkValue = function checkValue() {\n if (multi) {\n return {\n isValid: false,\n itemNode: null\n };\n }\n\n var dataItem = getDateItem(value);\n var itemNode = dataItem.itemNode;\n\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n itemNode = renderValue(value, dataItem.activeItem, itemNode);\n }\n\n return {\n isValid: dataItem.isValid,\n itemNode: itemNode\n };\n };\n\n var renderMultiValue = function renderMultiValue() {\n if (!multi) {\n return null;\n }\n\n var _tagProps$closable = tagProps.closable,\n closable = _tagProps$closable === void 0 ? true : _tagProps$closable,\n onClose = tagProps.onClose,\n tagRest = (0, _objectWithoutPropertiesLoose2.default)(tagProps, [\"closable\", \"onClose\"]);\n var tags = value || [];\n var items = [];\n var tagElements = tags.map(function (tag) {\n var _getDateItem = getDateItem(tag),\n isValid = _getDateItem.isValid,\n itemNode = _getDateItem.itemNode,\n activeItem = _getDateItem.activeItem;\n\n items.push(activeItem);\n\n if (!isValid) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Tag.default, (0, _extends2.default)({}, tagRest, {\n key: tag,\n size: rest.size === 'lg' ? 'lg' : rest.size === 'xs' ? 'sm' : 'md',\n closable: !disabled && closable && !readOnly && !plaintext,\n title: typeof itemNode === 'string' ? itemNode : undefined,\n onClose: (0, _utils.createChainedFunction)(handleRemoveItemByTag.bind(null, tag), onClose),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 631,\n columnNumber: 13\n }\n }), itemNode);\n }).filter(function (item) {\n return item !== null;\n });\n\n if ((tags.length > 0 || isControlled) && (0, _isFunction.default)(renderValue)) {\n return renderValue(value, items, tagElements);\n }\n\n return tagElements;\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var menuClassPrefix = multi ? 'picker-check-menu' : 'picker-select-menu';\n var classes = merge(className, menuClassName, prefix(menuClassPrefix));\n var styles = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var items = (0, _treeUtils.filterNodesOfTree)(getAllData(), checkShouldDisplay);\n\n if (creatable && searchKeyword && !items.find(function (item) {\n return item[valueKey] === searchKeyword;\n })) {\n items = [].concat(items, [createOption(searchKeyword)]);\n } // Create a tree structure data when set `groupBy`\n\n\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\n if (disabledOptions) {\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 672,\n columnNumber: 16\n }\n });\n }\n\n var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {\n id: id ? id + \"-listbox\" : undefined,\n listProps: listProps,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n classPrefix: menuClassPrefix,\n dropdownMenuItemClassPrefix: multi ? undefined : menuClassPrefix + \"-item\",\n dropdownMenuItemAs: multi ? _Picker.DropdownMenuCheckItem : _Picker.DropdownMenuItem,\n activeItemValues: multi ? value : [value],\n focusItemValue: focusItemValue,\n maxHeight: menuMaxHeight,\n data: items,\n group: !(0, _isUndefined.default)(groupBy),\n onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any\n ,\n renderMenuGroup: renderMenuGroup,\n renderMenuItem: renderDropdownMenuItem,\n virtualized: virtualized,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 676,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"none\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 696,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 700,\n columnNumber: 9\n }\n }, renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var _checkValue = checkValue(),\n isValid = _checkValue.isValid,\n itemNode = _checkValue.itemNode;\n\n var tagElements = renderMultiValue();\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\n var hasSingleValue = !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(itemNode);\n var hasMultiValue = (0, _isArray.default)(value) && value.length > 0 && (0, _isFunction.default)(renderValue) && !(0, _isNil.default)(tagElements);\n var hasValue = multi ? !!(tagElements !== null && tagElements !== void 0 && tagElements.length) || hasMultiValue : isValid || hasSingleValue;\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n hasValue: hasValue,\n name: 'input',\n cleanable: cleanable\n })),\n pickerClasses = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)([\"tag\"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)([\"focused\"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)([\"disabled-options\"])))] = disabledOptions, _merge));\n var searching = !!searchKeyword && open;\n var displaySearchInput = searchable && !disabled;\n var inputProps = multi ? {\n inputStyle: {\n maxWidth: maxWidth - 63\n },\n as: _InputAutosize.default\n } : {\n as: 'input'\n };\n\n if (plaintext) {\n var plaintextProps = {}; // TagPicker has -6px margin-left on the plaintext wrapper\n // for fixing margin-left on tags from 2nd line on\n\n if (multi && hasValue) {\n plaintextProps.style = {\n marginLeft: -6\n };\n }\n\n return /*#__PURE__*/_react.default.createElement(_Plaintext.default, (0, _extends2.default)({\n localeKey: \"notSelected\",\n ref: targetRef\n }, plaintextProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 760,\n columnNumber: 9\n }\n }), itemNode || (tagElements !== null && tagElements !== void 0 && tagElements.length ? tagElements : null) || placeholder);\n }\n\n var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n trigger: \"active\",\n onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),\n onEntered: (0, _utils.createChainedFunction)(onEntered, onOpen),\n onExit: (0, _utils.createChainedFunction)(handleExit, onExit),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n placement: placement,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 769,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n onClick: focusInput,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 780,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n appearance: appearance,\n readOnly: readOnly,\n plaintext: plaintext,\n ref: targetRef,\n as: toggleAs,\n tabIndex: undefined,\n onClean: handleClean,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: open,\n disabled: disabled,\n placement: placement,\n inputValue: value,\n caret: !disabledOptions,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 786,\n columnNumber: 11\n }\n }), searching || multi && hasValue ? null : itemNode || placeholderNode), !(!multi && disabled) && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)([\"tag-wrapper\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 808,\n columnNumber: 13\n }\n }, tagElements, displaySearchInput && /*#__PURE__*/_react.default.createElement(_InputSearch.default, (0, _extends2.default)({}, inputProps, {\n tabIndex: tabIndex,\n readOnly: readOnly,\n onBlur: (0, _utils.createChainedFunction)(handleBlur, onBlur),\n onFocus: (0, _utils.createChainedFunction)(handleFocus, onFocus),\n inputRef: inputRef,\n onChange: handleSearch,\n value: open ? searchKeyword : '',\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 811,\n columnNumber: 17\n }\n })))));\n});\n\nInputPicker.displayName = 'InputPicker';\nInputPicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n cacheData: _propTypes.default.array,\n menuAutoWidth: _propTypes.default.bool,\n menuMaxHeight: _propTypes.default.number,\n searchable: _propTypes.default.bool,\n creatable: _propTypes.default.bool,\n groupBy: _propTypes.default.any,\n sort: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n renderMenuItem: _propTypes.default.func,\n renderMenuGroup: _propTypes.default.func,\n onCreate: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onGroupTitleClick: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n virtualized: _propTypes.default.bool,\n searchBy: _propTypes.default.func\n});\nvar _default = InputPicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/InputPicker/InputPicker.tsx?");
3127
3127
 
3128
3128
  /***/ }),
3129
3129
 
@@ -3552,7 +3552,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3552
3552
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3553
3553
 
3554
3554
  "use strict";
3555
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.useFlattenData = useFlattenData;\nexports.useColumnData = useColumnData;\nexports.useCascadeValue = useCascadeValue;\nexports.removeAllChildrenValue = exports.getOtherItemValuesByUnselectChild = exports.isSomeParentChecked = exports.isSomeChildChecked = exports.getParents = void 0;\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _uniq = _interopRequireDefault(__webpack_require__(/*! lodash/uniq */ \"./node_modules/lodash/uniq.js\"));\n\nvar _remove = _interopRequireDefault(__webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\"));\n\nvar _slice = _interopRequireDefault(__webpack_require__(/*! lodash/slice */ \"./node_modules/lodash/slice.js\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\n/**\n * Get all parents of a node\n * @param node\n */\nvar getParents = function getParents(node) {\n var parents = [];\n\n if (!node.parent) {\n return parents;\n }\n\n parents.push(node.parent);\n parents = parents.concat(getParents(node.parent));\n return parents;\n};\n/**\n * Check if any child nodes are selected.\n * @param node\n * @param value\n * @param itemKeys\n */\n\n\nexports.getParents = getParents;\n\nvar isSomeChildChecked = function isSomeChildChecked(node, value, itemKeys) {\n var childrenKey = itemKeys.childrenKey,\n valueKey = itemKeys.valueKey;\n\n if (!node[childrenKey] || !value) {\n return false;\n }\n\n return node[childrenKey].some(function (child) {\n var _child$childrenKey;\n\n if (value.some(function (n) {\n return n === child[valueKey];\n })) {\n return true;\n }\n\n if ((_child$childrenKey = child[childrenKey]) !== null && _child$childrenKey !== void 0 && _child$childrenKey.length) {\n return isSomeChildChecked(child, value, itemKeys);\n }\n\n return false;\n });\n};\n/**\n * Check if the parent is selected.\n * @param node\n * @param value\n * @param itemKeys\n */\n\n\nexports.isSomeChildChecked = isSomeChildChecked;\n\nvar isSomeParentChecked = function isSomeParentChecked(node, value, itemKeys) {\n var valueKey = itemKeys.valueKey;\n\n if (!value) {\n return false;\n }\n\n if (value.some(function (n) {\n return n === node[valueKey];\n })) {\n return true;\n }\n\n if (node.parent) {\n return isSomeParentChecked(node.parent, value, itemKeys);\n }\n\n return false;\n};\n\nexports.isSomeParentChecked = isSomeParentChecked;\n\nvar getOtherItemValuesByUnselectChild = function getOtherItemValuesByUnselectChild(itemNode, value, itemKeys) {\n var valueKey = itemKeys.valueKey,\n childrenKey = itemKeys.childrenKey;\n var parentValues = [];\n var itemValues = []; // Find the parent node of the current node by value\n\n function findParent(item) {\n parentValues.push(item[valueKey]);\n\n if (value.some(function (v) {\n return v === item[valueKey];\n })) {\n return item;\n }\n\n if (item.parent) {\n var p = findParent(item.parent);\n\n if (p) {\n return p;\n }\n }\n\n return null;\n } // Get child nodes through parent node\n\n\n function pushChildValue(item) {\n if (!item[childrenKey]) {\n return;\n }\n\n item[childrenKey].forEach(function (n) {\n // Determine whether it is a direct parent\n if (parentValues.some(function (v) {\n return v === n[valueKey];\n }) && n[childrenKey]) {\n pushChildValue(n);\n } else if (n[valueKey] !== itemNode[valueKey]) {\n itemValues.push(n[valueKey]);\n }\n });\n }\n\n var parent = findParent(itemNode);\n\n if (!parent) {\n return [];\n }\n\n pushChildValue(parent);\n return itemValues;\n};\n/**\n * Remove the values of all children.\n */\n\n\nexports.getOtherItemValuesByUnselectChild = getOtherItemValuesByUnselectChild;\n\nvar removeAllChildrenValue = function removeAllChildrenValue(value, item, itemKeys) {\n var valueKey = itemKeys.valueKey,\n childrenKey = itemKeys.childrenKey;\n var removedValue = [];\n\n if (!item[childrenKey]) {\n return;\n }\n\n item[childrenKey].forEach(function (n) {\n removedValue = removedValue.concat((0, _remove.default)(value, function (v) {\n return v === n[valueKey];\n }));\n\n if (n[childrenKey]) {\n removeAllChildrenValue(value, n, itemKeys);\n }\n });\n return removedValue;\n};\n/**\n * A hook to flatten tree structure data\n * @param data\n */\n\n\nexports.removeAllChildrenValue = removeAllChildrenValue;\n\nfunction useFlattenData(data, itemKeys) {\n var childrenKey = itemKeys.childrenKey;\n\n var _useState = (0, _react.useState)((0, _treeUtils.flattenTree)(data)),\n flattenData = _useState[0],\n setFlattenData = _useState[1];\n\n var addFlattenData = (0, _react.useCallback)(function (children, parent) {\n var nodes = children.map(function (child) {\n child.parent = parent;\n return child;\n });\n parent[childrenKey] = nodes;\n setFlattenData([].concat(flattenData, nodes));\n }, [childrenKey, flattenData]);\n (0, _react.useEffect)(function () {\n setFlattenData((0, _treeUtils.flattenTree)(data));\n }, [data]);\n return {\n addFlattenData: addFlattenData,\n flattenData: flattenData\n };\n}\n/**\n * A hook for column data\n * @param flattenData\n */\n\n\nfunction useColumnData(flattenData) {\n // The columns displayed in the cascading panel.\n var _useState2 = (0, _react.useState)([flattenData.filter(function (item) {\n return !item.parent;\n })]),\n columnData = _useState2[0],\n setColumnData = _useState2[1];\n /**\n * Add a list of options to the cascading panel. Used for lazy loading options.\n * @param column\n * @param index The index of the current column.\n */\n\n\n function addColumn(column, index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index), [column]));\n }\n\n function enforceUpdateColumnData(nextData) {\n var nextFlattenData = (0, _treeUtils.flattenTree)(nextData);\n setColumnData([nextFlattenData.filter(function (item) {\n return !item.parent;\n })]);\n }\n\n return {\n columnData: columnData,\n addColumn: addColumn,\n setColumnData: setColumnData,\n enforceUpdateColumnData: enforceUpdateColumnData\n };\n}\n/**\n * A hook that converts the value into a cascading value\n * @param props\n * @param flattenData\n */\n\n\nfunction useCascadeValue(props, flattenData) {\n var valueKey = props.valueKey,\n childrenKey = props.childrenKey,\n uncheckableItemValues = props.uncheckableItemValues,\n cascade = props.cascade,\n valueProp = props.value;\n /**\n * Get the values of all children\n */\n\n var getChildrenValue = (0, _react.useCallback)(function (item) {\n var values = [];\n\n if (!item[childrenKey]) {\n return values;\n }\n\n item[childrenKey].forEach(function (n) {\n if (uncheckableItemValues && !uncheckableItemValues.some(function (v) {\n return v === n[valueKey];\n })) {\n values.push(n[valueKey]);\n }\n\n values = values.concat(getChildrenValue(n));\n });\n return values;\n }, [childrenKey, uncheckableItemValues, valueKey]);\n var splitValue = (0, _react.useCallback)(function (item, checked, value) {\n var itemValue = item[valueKey];\n var childrenValue = getChildrenValue(item);\n var parents = getParents(item);\n var nextValue = [].concat(value);\n var removedValue = [];\n\n if (checked) {\n nextValue.push(itemValue); // Delete all values under the current node\n\n removedValue = removedValue.concat(removeAllChildrenValue(nextValue, item, {\n valueKey: valueKey,\n childrenKey: childrenKey\n }) || []); // Traverse all ancestor nodes of the current node\n // Then determine whether all the child nodes of these nodes are selected, and then they themselves must be selected\n\n var _loop = function _loop(i) {\n // Whether the parent node can be selected\n var isCheckableParent = !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {\n return v === parents[i][valueKey];\n }));\n\n if (isCheckableParent) {\n var isCheckAll = parents[i][childrenKey] // Filter out options that are marked as not selectable\n .filter(function (n) {\n return !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {\n return v === n[valueKey];\n }));\n }) // Check if all nodes are selected\n .every(function (n) {\n return nextValue.some(function (v) {\n return v === n[valueKey];\n });\n });\n\n if (isCheckAll) {\n // Add parent node value\n nextValue.push(parents[i][valueKey]); // Delete all values under the parent node\n\n removedValue = removedValue.concat(removeAllChildrenValue(nextValue, parents[i], {\n valueKey: valueKey,\n childrenKey: childrenKey\n }) || []);\n }\n }\n };\n\n for (var i = 0; i < parents.length; i++) {\n _loop(i);\n }\n } else {\n var tempValue = childrenValue.concat(parents.map(function (item) {\n return item[valueKey];\n }));\n nextValue = nextValue.concat(getOtherItemValuesByUnselectChild(item, nextValue, {\n valueKey: valueKey,\n childrenKey: childrenKey\n })); // Delete related child and parent nodes\n\n removedValue = (0, _remove.default)(nextValue, function (v) {\n // Delete yourself\n if (v === itemValue) {\n return true;\n }\n\n return tempValue.some(function (n) {\n return n === v;\n });\n });\n }\n\n var uniqValue = (0, _uniq.default)(nextValue);\n var uniqRemovedValue = (0, _uniq.default)(removedValue);\n return {\n value: uniqValue,\n removedValue: uniqRemovedValue\n };\n }, [valueKey, childrenKey, uncheckableItemValues, getChildrenValue]);\n var transformValue = (0, _react.useCallback)(function (value) {\n if (value === void 0) {\n value = [];\n }\n\n if (!cascade) {\n return value;\n }\n\n var tempRemovedValue = [];\n var nextValue = [];\n\n var _loop2 = function _loop2(i) {\n // If the value in the current value is already in the deleted list, it will not be processed\n if (tempRemovedValue.some(function (v) {\n return v === value[i];\n })) {\n return \"continue\";\n }\n\n var item = flattenData.find(function (v) {\n return v[valueKey] === value[i];\n });\n\n if (!item) {\n return \"continue\";\n }\n\n var sv = splitValue(item, true, value);\n tempRemovedValue = (0, _uniq.default)(tempRemovedValue.concat(sv.removedValue)); // Get all relevant values\n\n nextValue = (0, _uniq.default)(nextValue.concat(sv.value));\n };\n\n for (var i = 0; i < value.length; i++) {\n var _ret = _loop2(i);\n\n if (_ret === \"continue\") continue;\n } // Finally traverse all nextValue, and delete if its parent node is also nextValue\n\n\n return nextValue.filter(function (v) {\n var item = flattenData.find(function (n) {\n return n[valueKey] === v;\n });\n\n if (item !== null && item !== void 0 && item.parent && nextValue.some(function (v) {\n return v === item.parent && item.parent[valueKey];\n })) {\n return false;\n }\n\n return true;\n });\n }, [cascade, flattenData, splitValue, valueKey]);\n\n var _useState3 = (0, _react.useState)(transformValue(valueProp) || []),\n value = _useState3[0],\n setValue = _useState3[1];\n\n (0, _react.useEffect)(function () {\n // Update value when valueProp is updated.\n setValue(transformValue(valueProp) || []);\n }, [transformValue, valueProp]);\n return {\n value: value,\n setValue: setValue,\n splitValue: splitValue\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/MultiCascader/utils.ts?");
3555
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.useFlattenData = useFlattenData;\nexports.useColumnData = useColumnData;\nexports.useCascadeValue = useCascadeValue;\nexports.removeAllChildrenValue = exports.getOtherItemValuesByUnselectChild = exports.isSomeParentChecked = exports.isSomeChildChecked = exports.getParents = void 0;\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _uniq = _interopRequireDefault(__webpack_require__(/*! lodash/uniq */ \"./node_modules/lodash/uniq.js\"));\n\nvar _remove = _interopRequireDefault(__webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\"));\n\nvar _slice = _interopRequireDefault(__webpack_require__(/*! lodash/slice */ \"./node_modules/lodash/slice.js\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _attachParent = __webpack_require__(/*! ../utils/attachParent */ \"./src/utils/attachParent.ts\");\n\n/**\n * Get all parents of a node\n * @param node\n */\nvar getParents = function getParents(node) {\n var parents = [];\n\n if (!node.parent) {\n return parents;\n }\n\n parents.push(node.parent);\n parents = parents.concat(getParents(node.parent));\n return parents;\n};\n/**\n * Check if any child nodes are selected.\n * @param node\n * @param value\n * @param itemKeys\n */\n\n\nexports.getParents = getParents;\n\nvar isSomeChildChecked = function isSomeChildChecked(node, value, itemKeys) {\n var childrenKey = itemKeys.childrenKey,\n valueKey = itemKeys.valueKey;\n\n if (!node[childrenKey] || !value) {\n return false;\n }\n\n return node[childrenKey].some(function (child) {\n var _child$childrenKey;\n\n if (value.some(function (n) {\n return n === child[valueKey];\n })) {\n return true;\n }\n\n if ((_child$childrenKey = child[childrenKey]) !== null && _child$childrenKey !== void 0 && _child$childrenKey.length) {\n return isSomeChildChecked(child, value, itemKeys);\n }\n\n return false;\n });\n};\n/**\n * Check if the parent is selected.\n * @param node\n * @param value\n * @param itemKeys\n */\n\n\nexports.isSomeChildChecked = isSomeChildChecked;\n\nvar isSomeParentChecked = function isSomeParentChecked(node, value, itemKeys) {\n var valueKey = itemKeys.valueKey;\n\n if (!value) {\n return false;\n }\n\n if (value.some(function (n) {\n return n === node[valueKey];\n })) {\n return true;\n }\n\n if (node.parent) {\n return isSomeParentChecked(node.parent, value, itemKeys);\n }\n\n return false;\n};\n\nexports.isSomeParentChecked = isSomeParentChecked;\n\nvar getOtherItemValuesByUnselectChild = function getOtherItemValuesByUnselectChild(itemNode, value, itemKeys) {\n var valueKey = itemKeys.valueKey,\n childrenKey = itemKeys.childrenKey;\n var parentValues = [];\n var itemValues = []; // Find the parent node of the current node by value\n\n function findParent(item) {\n parentValues.push(item[valueKey]);\n\n if (value.some(function (v) {\n return v === item[valueKey];\n })) {\n return item;\n }\n\n if (item.parent) {\n var p = findParent(item.parent);\n\n if (p) {\n return p;\n }\n }\n\n return null;\n } // Get child nodes through parent node\n\n\n function pushChildValue(item) {\n if (!item[childrenKey]) {\n return;\n }\n\n item[childrenKey].forEach(function (n) {\n // Determine whether it is a direct parent\n if (parentValues.some(function (v) {\n return v === n[valueKey];\n }) && n[childrenKey]) {\n pushChildValue(n);\n } else if (n[valueKey] !== itemNode[valueKey]) {\n itemValues.push(n[valueKey]);\n }\n });\n }\n\n var parent = findParent(itemNode);\n\n if (!parent) {\n return [];\n }\n\n pushChildValue(parent);\n return itemValues;\n};\n/**\n * Remove the values of all children.\n */\n\n\nexports.getOtherItemValuesByUnselectChild = getOtherItemValuesByUnselectChild;\n\nvar removeAllChildrenValue = function removeAllChildrenValue(value, item, itemKeys) {\n var valueKey = itemKeys.valueKey,\n childrenKey = itemKeys.childrenKey;\n var removedValue = [];\n\n if (!item[childrenKey]) {\n return;\n }\n\n item[childrenKey].forEach(function (n) {\n removedValue = removedValue.concat((0, _remove.default)(value, function (v) {\n return v === n[valueKey];\n }));\n\n if (n[childrenKey]) {\n removeAllChildrenValue(value, n, itemKeys);\n }\n });\n return removedValue;\n};\n/**\n * A hook to flatten tree structure data\n * @param data\n */\n\n\nexports.removeAllChildrenValue = removeAllChildrenValue;\n\nfunction useFlattenData(data, itemKeys) {\n var childrenKey = itemKeys.childrenKey;\n\n var _useState = (0, _react.useState)((0, _treeUtils.flattenTree)(data)),\n flattenData = _useState[0],\n setFlattenData = _useState[1];\n\n var addFlattenData = (0, _react.useCallback)(function (children, parent) {\n var nodes = children.map(function (child) {\n return (0, _attachParent.attachParent)(child, parent);\n });\n parent[childrenKey] = nodes;\n setFlattenData([].concat(flattenData, nodes));\n }, [childrenKey, flattenData]);\n (0, _react.useEffect)(function () {\n setFlattenData((0, _treeUtils.flattenTree)(data));\n }, [data]);\n return {\n addFlattenData: addFlattenData,\n flattenData: flattenData\n };\n}\n/**\n * A hook for column data\n * @param flattenData\n */\n\n\nfunction useColumnData(flattenData) {\n // The columns displayed in the cascading panel.\n var _useState2 = (0, _react.useState)([flattenData.filter(function (item) {\n return !item.parent;\n })]),\n columnData = _useState2[0],\n setColumnData = _useState2[1];\n /**\n * Add a list of options to the cascading panel. Used for lazy loading options.\n * @param column\n * @param index The index of the current column.\n */\n\n\n function addColumn(column, index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index), [column]));\n }\n\n function enforceUpdateColumnData(nextData) {\n var nextFlattenData = (0, _treeUtils.flattenTree)(nextData);\n setColumnData([nextFlattenData.filter(function (item) {\n return !item.parent;\n })]);\n }\n\n return {\n columnData: columnData,\n addColumn: addColumn,\n setColumnData: setColumnData,\n enforceUpdateColumnData: enforceUpdateColumnData\n };\n}\n/**\n * A hook that converts the value into a cascading value\n * @param props\n * @param flattenData\n */\n\n\nfunction useCascadeValue(props, flattenData) {\n var valueKey = props.valueKey,\n childrenKey = props.childrenKey,\n uncheckableItemValues = props.uncheckableItemValues,\n cascade = props.cascade,\n valueProp = props.value;\n /**\n * Get the values of all children\n */\n\n var getChildrenValue = (0, _react.useCallback)(function (item) {\n var values = [];\n\n if (!item[childrenKey]) {\n return values;\n }\n\n item[childrenKey].forEach(function (n) {\n if (uncheckableItemValues && !uncheckableItemValues.some(function (v) {\n return v === n[valueKey];\n })) {\n values.push(n[valueKey]);\n }\n\n values = values.concat(getChildrenValue(n));\n });\n return values;\n }, [childrenKey, uncheckableItemValues, valueKey]);\n var splitValue = (0, _react.useCallback)(function (item, checked, value) {\n var itemValue = item[valueKey];\n var childrenValue = getChildrenValue(item);\n var parents = getParents(item);\n var nextValue = [].concat(value);\n var removedValue = [];\n\n if (checked) {\n nextValue.push(itemValue); // Delete all values under the current node\n\n removedValue = removedValue.concat(removeAllChildrenValue(nextValue, item, {\n valueKey: valueKey,\n childrenKey: childrenKey\n }) || []); // Traverse all ancestor nodes of the current node\n // Then determine whether all the child nodes of these nodes are selected, and then they themselves must be selected\n\n var _loop = function _loop(i) {\n // Whether the parent node can be selected\n var isCheckableParent = !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {\n return v === parents[i][valueKey];\n }));\n\n if (isCheckableParent) {\n var isCheckAll = parents[i][childrenKey] // Filter out options that are marked as not selectable\n .filter(function (n) {\n return !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {\n return v === n[valueKey];\n }));\n }) // Check if all nodes are selected\n .every(function (n) {\n return nextValue.some(function (v) {\n return v === n[valueKey];\n });\n });\n\n if (isCheckAll) {\n // Add parent node value\n nextValue.push(parents[i][valueKey]); // Delete all values under the parent node\n\n removedValue = removedValue.concat(removeAllChildrenValue(nextValue, parents[i], {\n valueKey: valueKey,\n childrenKey: childrenKey\n }) || []);\n }\n }\n };\n\n for (var i = 0; i < parents.length; i++) {\n _loop(i);\n }\n } else {\n var tempValue = childrenValue.concat(parents.map(function (item) {\n return item[valueKey];\n }));\n nextValue = nextValue.concat(getOtherItemValuesByUnselectChild(item, nextValue, {\n valueKey: valueKey,\n childrenKey: childrenKey\n })); // Delete related child and parent nodes\n\n removedValue = (0, _remove.default)(nextValue, function (v) {\n // Delete yourself\n if (v === itemValue) {\n return true;\n }\n\n return tempValue.some(function (n) {\n return n === v;\n });\n });\n }\n\n var uniqValue = (0, _uniq.default)(nextValue);\n var uniqRemovedValue = (0, _uniq.default)(removedValue);\n return {\n value: uniqValue,\n removedValue: uniqRemovedValue\n };\n }, [valueKey, childrenKey, uncheckableItemValues, getChildrenValue]);\n var transformValue = (0, _react.useCallback)(function (value) {\n if (value === void 0) {\n value = [];\n }\n\n if (!cascade) {\n return value;\n }\n\n var tempRemovedValue = [];\n var nextValue = [];\n\n var _loop2 = function _loop2(i) {\n // If the value in the current value is already in the deleted list, it will not be processed\n if (tempRemovedValue.some(function (v) {\n return v === value[i];\n })) {\n return \"continue\";\n }\n\n var item = flattenData.find(function (v) {\n return v[valueKey] === value[i];\n });\n\n if (!item) {\n return \"continue\";\n }\n\n var sv = splitValue(item, true, value);\n tempRemovedValue = (0, _uniq.default)(tempRemovedValue.concat(sv.removedValue)); // Get all relevant values\n\n nextValue = (0, _uniq.default)(nextValue.concat(sv.value));\n };\n\n for (var i = 0; i < value.length; i++) {\n var _ret = _loop2(i);\n\n if (_ret === \"continue\") continue;\n } // Finally traverse all nextValue, and delete if its parent node is also nextValue\n\n\n return nextValue.filter(function (v) {\n var item = flattenData.find(function (n) {\n return n[valueKey] === v;\n });\n\n if (item !== null && item !== void 0 && item.parent && nextValue.some(function (v) {\n return v === item.parent && item.parent[valueKey];\n })) {\n return false;\n }\n\n return true;\n });\n }, [cascade, flattenData, splitValue, valueKey]);\n\n var _useState3 = (0, _react.useState)(transformValue(valueProp) || []),\n value = _useState3[0],\n setValue = _useState3[1];\n\n (0, _react.useEffect)(function () {\n // Update value when valueProp is updated.\n setValue(transformValue(valueProp) || []);\n }, [transformValue, valueProp]);\n return {\n value: value,\n setValue: setValue,\n splitValue: splitValue\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/MultiCascader/utils.ts?");
3556
3556
 
3557
3557
  /***/ }),
3558
3558
 
@@ -3838,7 +3838,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3838
3838
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3839
3839
 
3840
3840
  "use strict";
3841
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _contains = _interopRequireDefault(__webpack_require__(/*! dom-lib/contains */ \"./node_modules/dom-lib/esm/contains.js\"));\n\nvar _Overlay = _interopRequireDefault(__webpack_require__(/*! ./Overlay */ \"./src/Overlay/Overlay.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _isOneOf = _interopRequireDefault(__webpack_require__(/*! ../utils/isOneOf */ \"./src/utils/isOneOf.ts\"));\n\nvar _OverlayContext = _interopRequireDefault(__webpack_require__(/*! ./OverlayContext */ \"./src/Overlay/OverlayContext.ts\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Overlay/OverlayTrigger.tsx\",\n _this = void 0;\n\nfunction mergeEvents(events, props) {\n if (events === void 0) {\n events = {};\n }\n\n if (props === void 0) {\n props = {};\n }\n\n var nextEvents = {};\n Object.keys(events).forEach(function (eventName) {\n if (events[eventName]) {\n var _props;\n\n nextEvents[eventName] = (0, _utils.createChainedFunction)(events[eventName], (_props = props) === null || _props === void 0 ? void 0 : _props[eventName]);\n }\n });\n return nextEvents;\n}\n\n/**\n * Useful for mouseover and mouseout.\n * In order to resolve the node entering the mouseover element, a mouseout event and a mouseover event will be triggered.\n * https://javascript.info/mousemove-mouseover-mouseout-mouseenter-mouseleave\n * @param handler\n * @param event\n */\nfunction onMouseEventHandler(handler, event, delay) {\n var target = event.currentTarget;\n var related = event.relatedTarget || (0, _get.default)(event, ['nativeEvent', 'toElement']);\n\n if ((!related || related !== target) && !(0, _contains.default)(target, related)) {\n handler(event, delay);\n }\n}\n\nvar defaultTrigger = ['hover', 'focus'];\n\nvar OverlayTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _useContext = (0, _react.useContext)(_OverlayContext.default),\n overlayContainer = _useContext.overlayContainer;\n\n var children = props.children,\n _props$container = props.container,\n container = _props$container === void 0 ? overlayContainer : _props$container,\n controlId = props.controlId,\n defaultOpen = props.defaultOpen,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? defaultTrigger : _props$trigger,\n disabled = props.disabled,\n followCursor = props.followCursor,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n openProp = props.open,\n delay = props.delay,\n delayOpenProp = props.delayOpen,\n delayCloseProp = props.delayClose,\n enterable = props.enterable,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n speaker = props.speaker,\n _props$rootClose = props.rootClose,\n rootClose = _props$rootClose === void 0 ? true : _props$rootClose,\n onClick = props.onClick,\n onMouseOver = props.onMouseOver,\n onMouseMove = props.onMouseMove,\n onMouseOut = props.onMouseOut,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onClose = props.onClose,\n onExited = props.onExited,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"children\", \"container\", \"controlId\", \"defaultOpen\", \"trigger\", \"disabled\", \"followCursor\", \"readOnly\", \"plaintext\", \"open\", \"delay\", \"delayOpen\", \"delayClose\", \"enterable\", \"placement\", \"speaker\", \"rootClose\", \"onClick\", \"onMouseOver\", \"onMouseMove\", \"onMouseOut\", \"onContextMenu\", \"onFocus\", \"onBlur\", \"onClose\", \"onExited\"]);\n\n var _usePortal = (0, _utils.usePortal)({\n container: container\n }),\n Portal = _usePortal.Portal;\n\n var triggerRef = (0, _react.useRef)();\n var overlayRef = (0, _react.useRef)();\n\n var _useControlled = (0, _utils.useControlled)(openProp, defaultOpen),\n open = _useControlled[0],\n setOpen = _useControlled[1];\n\n var _useState = (0, _react.useState)(null),\n cursorPosition = _useState[0],\n setCursorPosition = _useState[1]; // Delay the timer to close/open the overlay\n // When the cursor moves from the trigger to the overlay, the overlay will be closed.\n // In order to keep the overlay open, a timer is used to delay the closing.\n\n\n var delayOpenTimer = (0, _react.useRef)(null);\n var delayCloseTimer = (0, _react.useRef)(null);\n var delayOpen = (0, _isNil.default)(delayOpenProp) ? delay : delayOpenProp;\n var delayClose = (0, _isNil.default)(delayCloseProp) ? delay : delayCloseProp; // Whether the cursor is on the overlay\n\n var isOnOverlay = (0, _react.useRef)(false); // Whether the cursor is on the trigger\n\n var isOnTrigger = (0, _react.useRef)(false);\n (0, _react.useEffect)(function () {\n return function () {\n if (!(0, _isNil.default)(delayOpenTimer.current)) {\n clearTimeout(delayOpenTimer.current);\n }\n\n if (!(0, _isNil.default)(delayCloseTimer.current)) {\n clearTimeout(delayCloseTimer.current);\n }\n };\n }, []);\n var handleOpen = (0, _react.useCallback)(function (delay) {\n var ms = (0, _isUndefined2.default)(delay) ? delayOpen : delay;\n\n if (ms && typeof ms === 'number') {\n return delayOpenTimer.current = setTimeout(function () {\n delayOpenTimer.current = null;\n setOpen(true);\n }, ms);\n }\n\n setOpen(true);\n }, [delayOpen, setOpen]);\n var handleClose = (0, _react.useCallback)(function (delay) {\n var ms = (0, _isUndefined2.default)(delay) ? delayClose : delay;\n\n if (ms && typeof ms === 'number') {\n return delayCloseTimer.current = setTimeout(function () {\n delayCloseTimer.current = null;\n setOpen(false);\n }, ms);\n }\n\n setOpen(false);\n }, [delayClose, setOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n setCursorPosition(null);\n }, []);\n (0, _react.useImperativeHandle)(ref, function () {\n return {\n get root() {\n return triggerRef.current;\n },\n\n get overlay() {\n var _overlayRef$current;\n\n return (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.child;\n },\n\n open: handleOpen,\n close: handleClose,\n updatePosition: function updatePosition() {\n var _overlayRef$current2, _overlayRef$current2$;\n\n (_overlayRef$current2 = overlayRef.current) === null || _overlayRef$current2 === void 0 ? void 0 : (_overlayRef$current2$ = _overlayRef$current2.updatePosition) === null || _overlayRef$current2$ === void 0 ? void 0 : _overlayRef$current2$.call(_overlayRef$current2);\n }\n };\n });\n /**\n * Close after the cursor leaves.\n */\n\n var handleCloseWhenLeave = (0, _react.useCallback)(function () {\n // When the cursor is not on the overlay and not on the trigger, it is closed.\n if (!isOnOverlay.current && !isOnTrigger.current) {\n handleClose();\n }\n }, [handleClose]);\n /**\n * Toggle open and closed state.\n */\n\n var handleOpenState = (0, _react.useCallback)(function () {\n if (open) {\n handleCloseWhenLeave();\n } else {\n handleOpen();\n }\n }, [open, handleCloseWhenLeave, handleOpen]);\n var handleDelayedOpen = (0, _react.useCallback)(function () {\n if (!enterable) {\n return handleOpen();\n }\n\n isOnTrigger.current = true;\n\n if (!(0, _isNil.default)(delayCloseTimer.current)) {\n clearTimeout(delayCloseTimer.current);\n delayCloseTimer.current = null;\n return handleOpen();\n }\n\n if (open) {\n return;\n }\n\n handleOpen();\n }, [enterable, open, handleOpen]);\n var handleDelayedClose = (0, _react.useCallback)(function () {\n if (!enterable) {\n handleClose();\n }\n\n isOnTrigger.current = false;\n\n if (!(0, _isNil.default)(delayOpenTimer.current)) {\n clearTimeout(delayOpenTimer.current);\n delayOpenTimer.current = null;\n return;\n }\n\n if (!open || !(0, _isNil.default)(delayCloseTimer.current)) {\n return;\n }\n\n delayCloseTimer.current = setTimeout(function () {\n if (!(0, _isNil.default)(delayCloseTimer.current)) {\n clearTimeout(delayCloseTimer.current);\n delayCloseTimer.current = null;\n }\n\n handleCloseWhenLeave();\n }, 200);\n }, [enterable, open, handleClose, handleCloseWhenLeave]);\n var handleSpeakerMouseEnter = (0, _react.useCallback)(function () {\n isOnOverlay.current = true;\n }, []);\n var handleSpeakerMouseLeave = (0, _react.useCallback)(function () {\n isOnOverlay.current = false;\n\n if (!(0, _isOneOf.default)('click', trigger) && !(0, _isOneOf.default)('contextMenu', trigger) && !(0, _isOneOf.default)('active', trigger)) {\n handleCloseWhenLeave();\n }\n }, [handleCloseWhenLeave, trigger]);\n var handledMoveOverlay = (0, _react.useCallback)(function (event) {\n setCursorPosition(function () {\n return {\n top: event.pageY,\n left: event.pageX,\n clientTop: event.clientX,\n clientLeft: event.clientY\n };\n });\n }, []);\n var preventDefault = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n }, []);\n var triggerEvents = {\n onClick: onClick,\n onContextMenu: onContextMenu,\n onMouseOver: onMouseOver,\n onMouseOut: onMouseOut,\n onFocus: onFocus,\n onBlur: onBlur,\n onMouseMove: onMouseMove\n };\n\n if (!disabled && !readOnly && !plaintext) {\n if ((0, _isOneOf.default)('click', trigger)) {\n triggerEvents.onClick = (0, _utils.createChainedFunction)(handleOpenState, triggerEvents.onClick);\n }\n\n if ((0, _isOneOf.default)('contextMenu', trigger)) {\n triggerEvents.onContextMenu = (0, _utils.createChainedFunction)(preventDefault, handleOpenState, triggerEvents.onContextMenu);\n }\n\n if ((0, _isOneOf.default)('active', trigger)) {\n triggerEvents.onClick = (0, _utils.createChainedFunction)(handleDelayedOpen, triggerEvents.onClick);\n }\n\n if ((0, _isOneOf.default)('hover', trigger)) {\n var onMouseOverListener = null;\n var onMouseOutListener = null;\n\n if (trigger !== 'none') {\n onMouseOverListener = function onMouseOverListener(e) {\n return onMouseEventHandler(handleDelayedOpen, e);\n };\n\n onMouseOutListener = function onMouseOutListener(e) {\n return onMouseEventHandler(handleDelayedClose, e);\n };\n }\n\n triggerEvents.onMouseOver = (0, _utils.createChainedFunction)(onMouseOverListener, onMouseOver);\n triggerEvents.onMouseOut = (0, _utils.createChainedFunction)(onMouseOutListener, onMouseOut);\n }\n\n if ((0, _isOneOf.default)('focus', trigger)) {\n triggerEvents.onFocus = (0, _utils.createChainedFunction)(handleDelayedOpen, onFocus);\n triggerEvents.onBlur = (0, _utils.createChainedFunction)(handleDelayedClose, onBlur);\n }\n\n if (trigger !== 'none') {\n triggerEvents.onMouseMove = (0, _utils.createChainedFunction)(handledMoveOverlay, onMouseMove);\n }\n }\n\n var renderOverlay = function renderOverlay() {\n var overlayProps = (0, _extends2.default)({}, rest, {\n rootClose: rootClose,\n triggerTarget: triggerRef,\n onClose: trigger !== 'none' ? (0, _utils.createChainedFunction)(handleClose, onClose) : undefined,\n onExited: (0, _utils.createChainedFunction)(followCursor ? handleExited : undefined, onExited),\n placement: placement,\n container: container,\n open: open\n });\n var speakerProps = {\n id: controlId\n }; // The purpose of adding mouse entry and exit events to the Overlay is to record whether the current cursor is on the Overlay.\n // When `trigger` is equal to `hover`, if the cursor leaves the `triggerTarget` and stays on the Overlay,\n // the Overlay will continue to remain open.\n\n if (trigger !== 'none' && enterable) {\n speakerProps.onMouseEnter = handleSpeakerMouseEnter;\n speakerProps.onMouseLeave = handleSpeakerMouseLeave;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Overlay.default, (0, _extends2.default)({}, overlayProps, {\n ref: overlayRef,\n childrenProps: speakerProps,\n followCursor: followCursor,\n cursorPosition: cursorPosition,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 444,\n columnNumber: 9\n }\n }), typeof speaker === 'function' ? function (props, ref) {\n return speaker((0, _extends2.default)({}, props, {\n onClose: handleClose\n }), ref);\n } : speaker);\n };\n\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, typeof children === 'function' ? children(triggerEvents, triggerRef) : /*#__PURE__*/_react.default.cloneElement(children, (0, _extends2.default)({\n ref: triggerRef,\n 'aria-describedby': controlId\n }, mergeEvents(triggerEvents, children.props))), /*#__PURE__*/_react.default.createElement(Portal, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 468,\n columnNumber: 9\n }\n }, renderOverlay()));\n});\n\nOverlayTrigger.displayName = 'OverlayTrigger';\nvar _default = OverlayTrigger;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Overlay/OverlayTrigger.tsx?");
3841
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _contains = _interopRequireDefault(__webpack_require__(/*! dom-lib/contains */ \"./node_modules/dom-lib/esm/contains.js\"));\n\nvar _Overlay = _interopRequireDefault(__webpack_require__(/*! ./Overlay */ \"./src/Overlay/Overlay.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _isOneOf = _interopRequireDefault(__webpack_require__(/*! ../utils/isOneOf */ \"./src/utils/isOneOf.ts\"));\n\nvar _OverlayContext = _interopRequireDefault(__webpack_require__(/*! ./OverlayContext */ \"./src/Overlay/OverlayContext.ts\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Overlay/OverlayTrigger.tsx\",\n _this = void 0;\n\nfunction mergeEvents(events, props) {\n if (events === void 0) {\n events = {};\n }\n\n if (props === void 0) {\n props = {};\n }\n\n var nextEvents = {};\n Object.keys(events).forEach(function (eventName) {\n if (events[eventName]) {\n var _props;\n\n nextEvents[eventName] = (0, _utils.createChainedFunction)(events[eventName], (_props = props) === null || _props === void 0 ? void 0 : _props[eventName]);\n }\n });\n return nextEvents;\n}\n\n/**\n * Useful for mouseover and mouseout.\n * In order to resolve the node entering the mouseover element, a mouseout event and a mouseover event will be triggered.\n * https://javascript.info/mousemove-mouseover-mouseout-mouseenter-mouseleave\n * @param handler\n * @param event\n */\nfunction onMouseEventHandler(handler, event, delay) {\n var target = event.currentTarget;\n var related = event.relatedTarget || (0, _get.default)(event, ['nativeEvent', 'toElement']);\n\n if ((!related || related !== target) && !(0, _contains.default)(target, related)) {\n handler(event, delay);\n }\n}\n\nvar defaultTrigger = ['hover', 'focus'];\n\nvar OverlayTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _useContext = (0, _react.useContext)(_OverlayContext.default),\n overlayContainer = _useContext.overlayContainer;\n\n var children = props.children,\n _props$container = props.container,\n container = _props$container === void 0 ? overlayContainer : _props$container,\n controlId = props.controlId,\n defaultOpen = props.defaultOpen,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? defaultTrigger : _props$trigger,\n disabled = props.disabled,\n followCursor = props.followCursor,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n openProp = props.open,\n delay = props.delay,\n delayOpenProp = props.delayOpen,\n delayCloseProp = props.delayClose,\n enterable = props.enterable,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n speaker = props.speaker,\n _props$rootClose = props.rootClose,\n rootClose = _props$rootClose === void 0 ? true : _props$rootClose,\n onClick = props.onClick,\n onMouseOver = props.onMouseOver,\n onMouseMove = props.onMouseMove,\n onMouseOut = props.onMouseOut,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onClose = props.onClose,\n onExited = props.onExited,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"children\", \"container\", \"controlId\", \"defaultOpen\", \"trigger\", \"disabled\", \"followCursor\", \"readOnly\", \"plaintext\", \"open\", \"delay\", \"delayOpen\", \"delayClose\", \"enterable\", \"placement\", \"speaker\", \"rootClose\", \"onClick\", \"onMouseOver\", \"onMouseMove\", \"onMouseOut\", \"onContextMenu\", \"onFocus\", \"onBlur\", \"onClose\", \"onExited\"]);\n\n var _usePortal = (0, _utils.usePortal)({\n container: container\n }),\n Portal = _usePortal.Portal;\n\n var triggerRef = (0, _react.useRef)();\n var overlayRef = (0, _react.useRef)();\n\n var _useControlled = (0, _utils.useControlled)(openProp, defaultOpen),\n open = _useControlled[0],\n setOpen = _useControlled[1];\n\n var _useState = (0, _react.useState)(null),\n cursorPosition = _useState[0],\n setCursorPosition = _useState[1]; // Delay the timer to close/open the overlay\n // When the cursor moves from the trigger to the overlay, the overlay will be closed.\n // In order to keep the overlay open, a timer is used to delay the closing.\n\n\n var delayOpenTimer = (0, _react.useRef)(null);\n var delayCloseTimer = (0, _react.useRef)(null);\n var delayOpen = (0, _isNil.default)(delayOpenProp) ? delay : delayOpenProp;\n var delayClose = (0, _isNil.default)(delayCloseProp) ? delay : delayCloseProp; // Whether the cursor is on the overlay\n\n var isOnOverlay = (0, _react.useRef)(false); // Whether the cursor is on the trigger\n\n var isOnTrigger = (0, _react.useRef)(false);\n (0, _react.useEffect)(function () {\n return function () {\n if (!(0, _isNil.default)(delayOpenTimer.current)) {\n clearTimeout(delayOpenTimer.current);\n }\n\n if (!(0, _isNil.default)(delayCloseTimer.current)) {\n clearTimeout(delayCloseTimer.current);\n }\n };\n }, []);\n var handleOpen = (0, _react.useCallback)(function (delay) {\n var ms = (0, _isUndefined2.default)(delay) ? delayOpen : delay;\n\n if (ms && typeof ms === 'number') {\n return delayOpenTimer.current = setTimeout(function () {\n delayOpenTimer.current = null;\n setOpen(true);\n }, ms);\n }\n\n setOpen(true);\n }, [delayOpen, setOpen]);\n var handleClose = (0, _react.useCallback)(function (delay) {\n var ms = (0, _isUndefined2.default)(delay) ? delayClose : delay;\n\n if (ms && typeof ms === 'number') {\n return delayCloseTimer.current = setTimeout(function () {\n delayCloseTimer.current = null;\n setOpen(false);\n }, ms);\n }\n\n setOpen(false);\n }, [delayClose, setOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n setCursorPosition(null);\n }, []);\n (0, _react.useImperativeHandle)(ref, function () {\n return {\n get root() {\n return triggerRef.current;\n },\n\n get overlay() {\n var _overlayRef$current;\n\n return (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.child;\n },\n\n open: handleOpen,\n close: handleClose,\n updatePosition: function updatePosition() {\n var _overlayRef$current2, _overlayRef$current2$;\n\n (_overlayRef$current2 = overlayRef.current) === null || _overlayRef$current2 === void 0 ? void 0 : (_overlayRef$current2$ = _overlayRef$current2.updatePosition) === null || _overlayRef$current2$ === void 0 ? void 0 : _overlayRef$current2$.call(_overlayRef$current2);\n }\n };\n });\n /**\n * Close after the cursor leaves.\n */\n\n var handleCloseWhenLeave = (0, _react.useCallback)(function () {\n // When the cursor is not on the overlay and not on the trigger, it is closed.\n if (!isOnOverlay.current && !isOnTrigger.current) {\n handleClose();\n }\n }, [handleClose]);\n /**\n * Toggle open and closed state.\n */\n\n var handleOpenState = (0, _react.useCallback)(function () {\n if (open) {\n handleCloseWhenLeave();\n } else {\n handleOpen();\n }\n }, [open, handleCloseWhenLeave, handleOpen]);\n var handleDelayedOpen = (0, _react.useCallback)(function () {\n if (!enterable) {\n return handleOpen();\n }\n\n isOnTrigger.current = true;\n\n if (!(0, _isNil.default)(delayCloseTimer.current)) {\n clearTimeout(delayCloseTimer.current);\n delayCloseTimer.current = null;\n return handleOpen();\n }\n\n if (open) {\n return;\n }\n\n handleOpen();\n }, [enterable, open, handleOpen]);\n var handleDelayedClose = (0, _react.useCallback)(function () {\n if (!enterable) {\n handleClose();\n }\n\n isOnTrigger.current = false;\n\n if (!(0, _isNil.default)(delayOpenTimer.current)) {\n clearTimeout(delayOpenTimer.current);\n delayOpenTimer.current = null;\n return;\n }\n\n if (!open || !(0, _isNil.default)(delayCloseTimer.current)) {\n return;\n }\n\n delayCloseTimer.current = setTimeout(function () {\n if (!(0, _isNil.default)(delayCloseTimer.current)) {\n clearTimeout(delayCloseTimer.current);\n delayCloseTimer.current = null;\n }\n\n handleCloseWhenLeave();\n }, 200);\n }, [enterable, open, handleClose, handleCloseWhenLeave]);\n var handleSpeakerMouseEnter = (0, _react.useCallback)(function () {\n isOnOverlay.current = true;\n }, []);\n var handleSpeakerMouseLeave = (0, _react.useCallback)(function () {\n isOnOverlay.current = false;\n\n if (!(0, _isOneOf.default)('click', trigger) && !(0, _isOneOf.default)('contextMenu', trigger) && !(0, _isOneOf.default)('active', trigger)) {\n handleCloseWhenLeave();\n }\n }, [handleCloseWhenLeave, trigger]);\n var handledMoveOverlay = (0, _react.useCallback)(function (event) {\n setCursorPosition(function () {\n return {\n top: event.pageY,\n left: event.pageX,\n clientTop: event.clientX,\n clientLeft: event.clientY\n };\n });\n }, []);\n var preventDefault = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n }, []);\n var triggerEvents = (0, _react.useMemo)(function () {\n // Pass events by props\n var events = {\n onClick: onClick,\n onContextMenu: onContextMenu,\n onMouseOver: onMouseOver,\n onMouseOut: onMouseOut,\n onFocus: onFocus,\n onBlur: onBlur,\n onMouseMove: onMouseMove\n }; // When trigger is disabled, no predefined event listeners are added.\n\n if (disabled || readOnly || plaintext || trigger === 'none') {\n return events;\n } // Get the cursor position through onMouseMove.\n // https://rsuitejs.com/components/tooltip/#follow-cursor\n\n\n if (followCursor) {\n events.onMouseMove = (0, _utils.createChainedFunction)(handledMoveOverlay, onMouseMove);\n } // The `click` event is usually used in `toggle` scenarios.\n // The first click will open and the second click will close.\n\n\n if ((0, _isOneOf.default)('click', trigger)) {\n events.onClick = (0, _utils.createChainedFunction)(handleOpenState, events.onClick);\n return events;\n } // The difference between it and the click event is that it does not trigger the close.\n\n\n if ((0, _isOneOf.default)('active', trigger)) {\n events.onClick = (0, _utils.createChainedFunction)(handleDelayedOpen, events.onClick);\n return events;\n }\n\n if ((0, _isOneOf.default)('hover', trigger)) {\n var onMouseOverListener = function onMouseOverListener(e) {\n return onMouseEventHandler(handleDelayedOpen, e);\n };\n\n var onMouseOutListener = function onMouseOutListener(e) {\n return onMouseEventHandler(handleDelayedClose, e);\n };\n\n events.onMouseOver = (0, _utils.createChainedFunction)(onMouseOverListener, events.onMouseOver);\n events.onMouseOut = (0, _utils.createChainedFunction)(onMouseOutListener, events.onMouseOut);\n }\n\n if ((0, _isOneOf.default)('focus', trigger)) {\n events.onFocus = (0, _utils.createChainedFunction)(handleDelayedOpen, events.onFocus);\n events.onBlur = (0, _utils.createChainedFunction)(handleDelayedClose, events.onBlur);\n }\n\n if ((0, _isOneOf.default)('contextMenu', trigger)) {\n events.onContextMenu = (0, _utils.createChainedFunction)(preventDefault, handleOpenState, events.onContextMenu);\n }\n\n return events;\n }, [disabled, followCursor, handleDelayedClose, handleDelayedOpen, handleOpenState, handledMoveOverlay, onBlur, onClick, onContextMenu, onFocus, onMouseMove, onMouseOut, onMouseOver, plaintext, preventDefault, readOnly, trigger]);\n\n var renderOverlay = function renderOverlay() {\n var overlayProps = (0, _extends2.default)({}, rest, {\n rootClose: rootClose,\n triggerTarget: triggerRef,\n onClose: trigger !== 'none' ? (0, _utils.createChainedFunction)(handleClose, onClose) : undefined,\n onExited: (0, _utils.createChainedFunction)(followCursor ? handleExited : undefined, onExited),\n placement: placement,\n container: container,\n open: open\n });\n var speakerProps = {\n id: controlId\n }; // The purpose of adding mouse entry and exit events to the Overlay is to record whether the current cursor is on the Overlay.\n // When `trigger` is equal to `hover`, if the cursor leaves the `triggerTarget` and stays on the Overlay,\n // the Overlay will continue to remain open.\n\n if (trigger !== 'none' && enterable) {\n speakerProps.onMouseEnter = handleSpeakerMouseEnter;\n speakerProps.onMouseLeave = handleSpeakerMouseLeave;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Overlay.default, (0, _extends2.default)({}, overlayProps, {\n ref: overlayRef,\n childrenProps: speakerProps,\n followCursor: followCursor,\n cursorPosition: cursorPosition,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 474,\n columnNumber: 9\n }\n }), typeof speaker === 'function' ? function (props, ref) {\n return speaker((0, _extends2.default)({}, props, {\n onClose: handleClose\n }), ref);\n } : speaker);\n };\n\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, typeof children === 'function' ? children(triggerEvents, triggerRef) : /*#__PURE__*/_react.default.cloneElement(children, (0, _extends2.default)({\n ref: triggerRef,\n 'aria-describedby': controlId\n }, mergeEvents(triggerEvents, children.props))), /*#__PURE__*/_react.default.createElement(Portal, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 498,\n columnNumber: 9\n }\n }, renderOverlay()));\n});\n\nOverlayTrigger.displayName = 'OverlayTrigger';\nvar _default = OverlayTrigger;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Overlay/OverlayTrigger.tsx?");
3842
3842
 
3843
3843
  /***/ }),
3844
3844
 
@@ -3915,7 +3915,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3915
3915
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3916
3916
 
3917
3917
  "use strict";
3918
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\n\nvar _AngleDown = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/AngleDown */ \"./node_modules/@rsuite/icons/legacy/AngleDown.js\"));\n\nvar _Collapse = _interopRequireDefault(__webpack_require__(/*! ../Animation/Collapse */ \"./src/Animation/Collapse.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _PanelGroup = __webpack_require__(/*! ../PanelGroup */ \"./src/PanelGroup/index.tsx\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Panel/Panel.tsx\",\n _this = void 0;\n\nvar Panel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n children = props.children,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'panel' : _props$classPrefix,\n bodyFill = props.bodyFill,\n bordered = props.bordered,\n collapsibleProp = props.collapsible,\n defaultExpanded = props.defaultExpanded,\n eventKey = props.eventKey,\n expandedProp = props.expanded,\n header = props.header,\n headerRoleProp = props.headerRole,\n _props$panelRole = props.panelRole,\n panelRole = _props$panelRole === void 0 ? 'region' : _props$panelRole,\n shaded = props.shaded,\n id = props.id,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n onSelect = props.onSelect,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"children\", \"className\", \"classPrefix\", \"bodyFill\", \"bordered\", \"collapsible\", \"defaultExpanded\", \"eventKey\", \"expanded\", \"header\", \"headerRole\", \"panelRole\", \"shaded\", \"id\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"onSelect\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var _ref = (0, _react.useContext)(_PanelGroup.PanelGroupContext) || {},\n accordion = _ref.accordion,\n activeKey = _ref.activeKey,\n onGroupSelect = _ref.onGroupSelect;\n\n var _useControlled = (0, _utils.useControlled)(expandedProp, defaultExpanded || typeof activeKey !== 'undefined' && activeKey === eventKey),\n expandedState = _useControlled[0],\n setExpanded = _useControlled[1];\n\n var collapsible = collapsibleProp;\n var headerRole = headerRoleProp;\n var expanded = expandedState;\n\n if (accordion) {\n collapsible = true;\n headerRole = 'button'; // Collapses all inactive panels.\n\n if (typeof activeKey !== 'undefined' && activeKey !== eventKey) {\n expanded = false;\n }\n }\n\n var handleSelect = (0, _react.useCallback)(function (event) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);\n onGroupSelect === null || onGroupSelect === void 0 ? void 0 : onGroupSelect(eventKey, event);\n setExpanded(!expanded);\n }, [eventKey, expanded, onGroupSelect, onSelect, setExpanded]);\n var renderBody = (0, _react.useCallback)(function () {\n var classes = prefix('body', {\n 'body-fill': bodyFill\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n role: panelRole,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 9\n }\n }, children);\n }, [bodyFill, children, panelRole, prefix]);\n\n var renderCollapsibleBody = function renderCollapsibleBody() {\n return /*#__PURE__*/_react.default.createElement(_Collapse.default, {\n in: expanded,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }\n }, function (transitionProps, ref) {\n var className = transitionProps.className,\n rest = (0, _objectWithoutPropertiesLoose2.default)(transitionProps, [\"className\"]);\n return /*#__PURE__*/_react.default.createElement(\"div\", (0, _extends2.default)({}, rest, {\n id: id ? \"\" + id : null,\n \"aria-expanded\": expanded,\n className: merge(className, prefix('collapse')),\n ref: ref,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }\n }), renderBody());\n });\n };\n\n var renderHeading = function renderHeading() {\n if (!header) {\n return null;\n }\n\n var content;\n\n if (! /*#__PURE__*/_react.default.isValidElement(header) || Array.isArray(header)) {\n content = collapsible ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AngleDown.default, {\n rotate: expanded ? 180 : 0,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }\n }), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('title'),\n role: \"presentation\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 13\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: expanded ? undefined : 'collapsed',\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 15\n }\n }, header))) : header;\n } else {\n var _className = merge(prefix('title'), (0, _get.default)(header, 'props.className'));\n\n content = /*#__PURE__*/_react.default.cloneElement(header, {\n className: _className\n });\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n role: headerRole,\n \"aria-controls\": collapsible && id ? \"\" + id : undefined,\n \"aria-expanded\": expanded,\n className: prefix('header'),\n onClick: collapsible ? handleSelect : undefined,\n tabIndex: -1,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }\n }, content);\n };\n\n var classes = merge(className, withClassPrefix({\n in: expanded,\n collapsible: collapsible,\n bordered: bordered,\n shaded: shaded\n }));\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n ref: ref,\n className: classes,\n id: collapsible ? null : id,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 7\n }\n }), renderHeading(), collapsible ? renderCollapsibleBody() : renderBody());\n});\n\nPanel.displayName = 'Panel';\nPanel.propTypes = {\n collapsible: _propTypes.default.bool,\n bordered: _propTypes.default.bool,\n shaded: _propTypes.default.bool,\n bodyFill: _propTypes.default.bool,\n header: _propTypes.default.any,\n defaultExpanded: _propTypes.default.bool,\n expanded: _propTypes.default.bool,\n eventKey: _propTypes.default.any,\n headerRole: _propTypes.default.string,\n panelRole: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n children: _propTypes.default.node,\n onSelect: _propTypes.default.func,\n onEnter: _propTypes.default.func,\n onEntering: _propTypes.default.func,\n onEntered: _propTypes.default.func,\n onExit: _propTypes.default.func,\n onExiting: _propTypes.default.func,\n onExited: _propTypes.default.func,\n className: _propTypes.default.string\n};\nvar _default = Panel;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Panel/Panel.tsx?");
3918
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\n\nvar _AngleDown = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/AngleDown */ \"./node_modules/@rsuite/icons/legacy/AngleDown.js\"));\n\nvar _Collapse = _interopRequireDefault(__webpack_require__(/*! ../Animation/Collapse */ \"./src/Animation/Collapse.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _PanelGroup = __webpack_require__(/*! ../PanelGroup */ \"./src/PanelGroup/index.tsx\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Panel/Panel.tsx\",\n _this = void 0;\n\nvar Panel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n children = props.children,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'panel' : _props$classPrefix,\n bodyFill = props.bodyFill,\n bordered = props.bordered,\n collapsibleProp = props.collapsible,\n defaultExpanded = props.defaultExpanded,\n eventKey = props.eventKey,\n expandedProp = props.expanded,\n header = props.header,\n headerRoleProp = props.headerRole,\n _props$panelRole = props.panelRole,\n panelRole = _props$panelRole === void 0 ? 'region' : _props$panelRole,\n shaded = props.shaded,\n id = props.id,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n onSelect = props.onSelect,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"children\", \"className\", \"classPrefix\", \"bodyFill\", \"bordered\", \"collapsible\", \"defaultExpanded\", \"eventKey\", \"expanded\", \"header\", \"headerRole\", \"panelRole\", \"shaded\", \"id\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"onSelect\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var _ref = (0, _react.useContext)(_PanelGroup.PanelGroupContext) || {},\n accordion = _ref.accordion,\n activeKey = _ref.activeKey,\n onGroupSelect = _ref.onGroupSelect;\n\n var _useControlled = (0, _utils.useControlled)(expandedProp, defaultExpanded || typeof activeKey !== 'undefined' && activeKey === eventKey),\n expandedState = _useControlled[0],\n setExpanded = _useControlled[1];\n\n var collapsible = collapsibleProp;\n var headerRole = headerRoleProp;\n var expanded = expandedState;\n\n if (accordion) {\n collapsible = true;\n headerRole = 'button'; // Collapses all inactive panels.\n\n if (typeof activeKey !== 'undefined' && activeKey !== eventKey) {\n expanded = false;\n }\n }\n\n var handleSelect = (0, _react.useCallback)(function (event) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);\n onGroupSelect === null || onGroupSelect === void 0 ? void 0 : onGroupSelect(eventKey, event);\n setExpanded(!expanded);\n }, [eventKey, expanded, onGroupSelect, onSelect, setExpanded]);\n var renderBody = (0, _react.useCallback)(function () {\n var classes = prefix('body', {\n 'body-fill': bodyFill\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n role: panelRole,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 9\n }\n }, children);\n }, [bodyFill, children, panelRole, prefix]);\n\n var renderCollapsibleBody = function renderCollapsibleBody() {\n return /*#__PURE__*/_react.default.createElement(_Collapse.default, {\n in: expanded,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }\n }, function (transitionProps, ref) {\n var className = transitionProps.className,\n rest = (0, _objectWithoutPropertiesLoose2.default)(transitionProps, [\"className\"]);\n return /*#__PURE__*/_react.default.createElement(\"div\", (0, _extends2.default)({}, rest, {\n id: id ? \"\" + id : null,\n \"aria-expanded\": expanded,\n className: merge(className, prefix('collapse')),\n ref: ref,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }\n }), renderBody());\n });\n };\n\n var renderHeading = function renderHeading() {\n if (!header) {\n return null;\n }\n\n var panelTitleElement;\n\n if (! /*#__PURE__*/_react.default.isValidElement(header) || Array.isArray(header)) {\n panelTitleElement = /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('title'),\n role: \"presentation\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: expanded ? undefined : 'collapsed',\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 13\n }\n }, header));\n } else {\n var _className = merge(prefix('title'), (0, _get.default)(header, 'props.className'));\n\n panelTitleElement = /*#__PURE__*/_react.default.cloneElement(header, {\n className: _className\n });\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n role: headerRole,\n \"aria-controls\": collapsible && id ? \"\" + id : undefined,\n \"aria-expanded\": expanded,\n className: prefix('header'),\n onClick: collapsible ? handleSelect : undefined,\n tabIndex: -1,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 9\n }\n }, panelTitleElement, collapsible && /*#__PURE__*/_react.default.createElement(_AngleDown.default, {\n rotate: expanded ? 180 : 0,\n \"data-testid\": \"caret icon\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 27\n }\n }));\n };\n\n var classes = merge(className, withClassPrefix({\n in: expanded,\n collapsible: collapsible,\n bordered: bordered,\n shaded: shaded\n }));\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n ref: ref,\n className: classes,\n id: collapsible ? null : id,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 7\n }\n }), renderHeading(), collapsible ? renderCollapsibleBody() : renderBody());\n});\n\nPanel.displayName = 'Panel';\nPanel.propTypes = {\n collapsible: _propTypes.default.bool,\n bordered: _propTypes.default.bool,\n shaded: _propTypes.default.bool,\n bodyFill: _propTypes.default.bool,\n header: _propTypes.default.any,\n defaultExpanded: _propTypes.default.bool,\n expanded: _propTypes.default.bool,\n eventKey: _propTypes.default.any,\n headerRole: _propTypes.default.string,\n panelRole: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n children: _propTypes.default.node,\n onSelect: _propTypes.default.func,\n onEnter: _propTypes.default.func,\n onEntering: _propTypes.default.func,\n onEntered: _propTypes.default.func,\n onExit: _propTypes.default.func,\n onExiting: _propTypes.default.func,\n onExited: _propTypes.default.func,\n className: _propTypes.default.string\n};\nvar _default = Panel;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Panel/Panel.tsx?");
3919
3919
 
3920
3920
  /***/ }),
3921
3921
 
@@ -4014,7 +4014,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
4014
4014
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4015
4015
 
4016
4016
  "use strict";
4017
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteralLoose */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js\"));\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _debounce = _interopRequireDefault(__webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\"));\n\nvar _ToggleButton = _interopRequireDefault(__webpack_require__(/*! ./ToggleButton */ \"./src/Picker/ToggleButton.tsx\"));\n\nvar _CloseButton = _interopRequireDefault(__webpack_require__(/*! ../CloseButton */ \"./src/CloseButton/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Plaintext = _interopRequireDefault(__webpack_require__(/*! ../Plaintext */ \"./src/Plaintext/index.tsx\"));\n\nvar _useToggleCaret = _interopRequireDefault(__webpack_require__(/*! ../utils/useToggleCaret */ \"./src/utils/useToggleCaret.tsx\"));\n\nvar _TextMask = _interopRequireDefault(__webpack_require__(/*! ../MaskedInput/TextMask */ \"./src/MaskedInput/TextMask.tsx\"));\n\nvar _deprecatePropType = _interopRequireDefault(__webpack_require__(/*! ../utils/deprecatePropType */ \"./src/utils/deprecatePropType.ts\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Picker/PickerToggle.tsx\",\n _this = void 0,\n _templateObject,\n _templateObject2;\n\nvar defaultInputMask = [];\n\nvar PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var activeProp = props.active,\n _props$as = props.as,\n Component = _props$as === void 0 ? _ToggleButton.default : _props$as,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker-toggle' : _props$classPrefix,\n children = props.children,\n _props$caret = props.caret,\n caret = _props$caret === void 0 ? true : _props$caret,\n className = props.className,\n disabled = props.disabled,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n hasValue = props.hasValue,\n cleanableProp = props.cleanable,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n id = props.id,\n value = props.value,\n input = props.input,\n inputPlaceholder = props.inputPlaceholder,\n inputValueProp = props.inputValue,\n _props$inputMask = props.inputMask,\n inputMask = _props$inputMask === void 0 ? defaultInputMask : _props$inputMask,\n onInputChange = props.onInputChange,\n onInputPressEnter = props.onInputPressEnter,\n onInputBlur = props.onInputBlur,\n onInputFocus = props.onInputFocus,\n onClean = props.onClean,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n caretComponent = props.caretComponent,\n _props$caretAs = props.caretAs,\n caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,\n label = props.label,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"active\", \"as\", \"classPrefix\", \"children\", \"caret\", \"className\", \"disabled\", \"readOnly\", \"plaintext\", \"hasValue\", \"cleanable\", \"tabIndex\", \"id\", \"value\", \"input\", \"inputPlaceholder\", \"inputValue\", \"inputMask\", \"onInputChange\", \"onInputPressEnter\", \"onInputBlur\", \"onInputFocus\", \"onClean\", \"onFocus\", \"onBlur\", \"placement\", \"caretComponent\", \"caretAs\", \"label\"]);\n var inputRef = (0, _react.useRef)(null);\n\n var _useState = (0, _react.useState)(false),\n activeState = _useState[0],\n setActive = _useState[1];\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var getInputValue = (0, _react.useCallback)(function () {\n return typeof inputValueProp === 'undefined' ? Array.isArray(value) ? value.join(',') : value : inputValueProp;\n }, [inputValueProp, value]);\n\n var _useState2 = (0, _react.useState)(getInputValue),\n inputValue = _useState2[0],\n setInputValue = _useState2[1];\n\n (0, _react.useEffect)(function () {\n var value = getInputValue();\n setInputValue(value);\n }, [getInputValue]);\n var classes = merge(className, withClassPrefix({\n active: activeProp || activeState\n }));\n var handleFocus = (0, _react.useCallback)(function (event) {\n setActive(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);\n\n if (input) {\n var _inputRef$current;\n\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n }\n }, [input, onFocus]);\n var handleBlur = (0, _react.useCallback)(function (event) {\n if (inputRef.current && document.activeElement !== inputRef.current) {\n setActive(false);\n inputRef.current.blur();\n }\n\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);\n }, [onBlur]);\n\n var handleInputBlur = function handleInputBlur(event) {\n setInputValue(getInputValue());\n onInputBlur === null || onInputBlur === void 0 ? void 0 : onInputBlur(event);\n };\n\n var handleClean = (0, _react.useCallback)(function (event) {\n event.stopPropagation();\n onClean === null || onClean === void 0 ? void 0 : onClean(event);\n setActive(false);\n }, [onClean]);\n var handleInputChange = (0, _react.useCallback)(function (event) {\n var _event$target;\n\n var value = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;\n setInputValue(value);\n onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(value, event);\n }, [onInputChange]);\n var handleInputKeyDown = (0, _react.useCallback)(function (event) {\n if (input && event.key === _utils.KEY_VALUES.ENTER) {\n onInputPressEnter === null || onInputPressEnter === void 0 ? void 0 : onInputPressEnter(event);\n }\n }, [onInputPressEnter, input]);\n var ToggleCaret = (0, _useToggleCaret.default)(placement);\n var Caret = caretAs !== null && caretAs !== void 0 ? caretAs : ToggleCaret;\n\n if (plaintext) {\n return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {\n ref: ref,\n localeKey: \"notSelected\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 9\n }\n }, hasValue ? children : null);\n }\n\n var showCleanButton = cleanableProp && hasValue && !readOnly; // When the component is read-only or disabled, the input is not interactive.\n\n var inputFocused = readOnly || disabled ? false : input && activeState;\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": activeProp,\n \"aria-disabled\": disabled,\n \"aria-owns\": id ? id + \"-listbox\" : undefined\n }, rest, {\n ref: ref,\n disabled: disabled,\n tabIndex: disabled ? undefined : tabIndex,\n className: classes,\n onFocus: !disabled ? handleFocus : null // The debounce is set to 200 to solve the flicker caused by the switch between input and div.\n ,\n onBlur: !disabled ? (0, _debounce.default)(handleBlur, 200) : null,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }\n }), /*#__PURE__*/_react.default.createElement(_TextMask.default, {\n mask: inputMask,\n value: Array.isArray(inputValue) ? inputValue.toString() : inputValue,\n onBlur: handleInputBlur,\n onFocus: onInputFocus,\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n id: id,\n \"aria-hidden\": !inputFocused,\n readOnly: !inputFocused,\n disabled: disabled,\n \"aria-controls\": id ? id + \"-listbox\" : undefined,\n tabIndex: -1,\n className: prefix('textbox', {\n 'read-only': !inputFocused\n }),\n placeholder: inputPlaceholder,\n render: function render(ref, props) {\n return /*#__PURE__*/_react.default.createElement(\"input\", (0, _extends2.default)({\n ref: (0, _utils.mergeRefs)(inputRef, ref)\n }, props, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 35\n }\n }));\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 9\n }\n }), children ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix(hasValue ? 'value' : 'placeholder'),\n \"aria-placeholder\": typeof children === 'string' ? children : undefined,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }\n }, label && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('label'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 23\n }\n }, label, \": \"), children) : null, showCleanButton && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {\n className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"clean\"]))),\n tabIndex: -1,\n locale: {\n closeLabel: 'Clear'\n },\n onClick: handleClean,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }\n }), caret && /*#__PURE__*/_react.default.createElement(Caret, {\n className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)([\"caret\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 19\n }\n }));\n});\n\nPickerToggle.displayName = 'PickerToggle';\nPickerToggle.propTypes = {\n classPrefix: _propTypes.default.string,\n hasValue: _propTypes.default.bool,\n cleanable: _propTypes.default.bool,\n className: _propTypes.default.string,\n children: _propTypes.default.node,\n caret: _propTypes.default.bool,\n as: _propTypes.default.elementType,\n onClean: _propTypes.default.func,\n active: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n plaintext: _propTypes.default.bool,\n caretComponent: (0, _deprecatePropType.default)(_propTypes.default.elementType, 'Use `caretAs` instead.'),\n caretAs: _propTypes.default.elementType\n};\nvar _default = PickerToggle;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Picker/PickerToggle.tsx?");
4017
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteralLoose */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js\"));\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _debounce = _interopRequireDefault(__webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\"));\n\nvar _ToggleButton = _interopRequireDefault(__webpack_require__(/*! ./ToggleButton */ \"./src/Picker/ToggleButton.tsx\"));\n\nvar _CloseButton = _interopRequireDefault(__webpack_require__(/*! ../CloseButton */ \"./src/CloseButton/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Plaintext = _interopRequireDefault(__webpack_require__(/*! ../Plaintext */ \"./src/Plaintext/index.tsx\"));\n\nvar _useToggleCaret = _interopRequireDefault(__webpack_require__(/*! ../utils/useToggleCaret */ \"./src/utils/useToggleCaret.tsx\"));\n\nvar _TextMask = _interopRequireDefault(__webpack_require__(/*! ../MaskedInput/TextMask */ \"./src/MaskedInput/TextMask.tsx\"));\n\nvar _deprecatePropType = _interopRequireDefault(__webpack_require__(/*! ../utils/deprecatePropType */ \"./src/utils/deprecatePropType.ts\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Picker/PickerToggle.tsx\",\n _this = void 0,\n _templateObject,\n _templateObject2;\n\nvar defaultInputMask = [];\n\nvar PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var activeProp = props.active,\n _props$as = props.as,\n Component = _props$as === void 0 ? _ToggleButton.default : _props$as,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker-toggle' : _props$classPrefix,\n children = props.children,\n _props$caret = props.caret,\n caret = _props$caret === void 0 ? true : _props$caret,\n className = props.className,\n disabled = props.disabled,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n hasValue = props.hasValue,\n editable = props.editable,\n cleanableProp = props.cleanable,\n _props$tabIndex = props.tabIndex,\n tabIndexProp = _props$tabIndex === void 0 ? editable ? -1 : 0 : _props$tabIndex,\n id = props.id,\n value = props.value,\n inputPlaceholder = props.inputPlaceholder,\n inputValueProp = props.inputValue,\n _props$inputMask = props.inputMask,\n inputMask = _props$inputMask === void 0 ? defaultInputMask : _props$inputMask,\n onInputChange = props.onInputChange,\n onInputPressEnter = props.onInputPressEnter,\n onInputBlur = props.onInputBlur,\n onInputFocus = props.onInputFocus,\n onClean = props.onClean,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n caretComponent = props.caretComponent,\n _props$caretAs = props.caretAs,\n caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,\n label = props.label,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"active\", \"as\", \"classPrefix\", \"children\", \"caret\", \"className\", \"disabled\", \"readOnly\", \"plaintext\", \"hasValue\", \"editable\", \"cleanable\", \"tabIndex\", \"id\", \"value\", \"inputPlaceholder\", \"inputValue\", \"inputMask\", \"onInputChange\", \"onInputPressEnter\", \"onInputBlur\", \"onInputFocus\", \"onClean\", \"onFocus\", \"onBlur\", \"placement\", \"caretComponent\", \"caretAs\", \"label\"]);\n var inputRef = (0, _react.useRef)(null);\n var comboboxRef = (0, _react.useRef)(null);\n\n var _useState = (0, _react.useState)(false),\n activeState = _useState[0],\n setActive = _useState[1];\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var getInputValue = (0, _react.useCallback)(function () {\n return typeof inputValueProp === 'undefined' ? Array.isArray(value) ? value.join(',') : value : inputValueProp;\n }, [inputValueProp, value]);\n\n var _useState2 = (0, _react.useState)(getInputValue),\n inputValue = _useState2[0],\n setInputValue = _useState2[1];\n\n (0, _react.useEffect)(function () {\n if (comboboxRef.current) {\n var _value = getInputValue();\n\n setInputValue(_value);\n }\n }, [getInputValue]);\n var classes = merge(className, withClassPrefix({\n active: activeProp || activeState\n }));\n var handleFocus = (0, _react.useCallback)(function (event) {\n setActive(true);\n\n if (editable) {\n // Avoid firing the onFocus event twice when DatePicker and DateRangePicker allow keyboard input.\n if (event.target === inputRef.current) {\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);\n } // Force the input to be focused and editable.\n\n\n if (document.activeElement === comboboxRef.current) {\n var _inputRef$current;\n\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n }\n } else {\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);\n }\n }, [editable, onFocus]);\n var handleBlur = (0, _react.useCallback)(function (event) {\n if (inputRef.current && !editable) {\n setActive(false);\n } // When activeElement is an input, it remains active.\n\n\n if (editable && inputRef.current && document.activeElement !== inputRef.current) {\n setActive(false);\n }\n\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);\n }, [editable, onBlur]);\n\n var handleInputBlur = function handleInputBlur(event) {\n setInputValue(getInputValue());\n onInputBlur === null || onInputBlur === void 0 ? void 0 : onInputBlur(event);\n };\n\n var handleClean = (0, _react.useCallback)(function (event) {\n var _inputRef$current2, _comboboxRef$current;\n\n event.stopPropagation();\n onClean === null || onClean === void 0 ? void 0 : onClean(event); // When the value is cleared, the current component is still in focus.\n\n editable ? (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus() : (_comboboxRef$current = comboboxRef.current) === null || _comboboxRef$current === void 0 ? void 0 : _comboboxRef$current.focus();\n }, [editable, onClean]);\n var handleInputChange = (0, _react.useCallback)(function (event) {\n var _event$target;\n\n var value = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;\n setInputValue(value);\n onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(value, event);\n }, [onInputChange]);\n var handleInputKeyDown = (0, _react.useCallback)(function (event) {\n if (editable && event.key === _utils.KEY_VALUES.ENTER) {\n onInputPressEnter === null || onInputPressEnter === void 0 ? void 0 : onInputPressEnter(event);\n }\n }, [onInputPressEnter, editable]);\n var renderInput = (0, _react.useCallback)(function (ref, props) {\n return /*#__PURE__*/_react.default.createElement(\"input\", (0, _extends2.default)({\n ref: (0, _utils.mergeRefs)(inputRef, ref),\n style: {\n pointerEvents: editable ? undefined : 'none'\n }\n }, props, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 9\n }\n }));\n }, [editable]);\n var ToggleCaret = (0, _useToggleCaret.default)(placement);\n var Caret = caretAs !== null && caretAs !== void 0 ? caretAs : ToggleCaret;\n\n if (plaintext) {\n return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {\n ref: ref,\n localeKey: \"notSelected\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 9\n }\n }, hasValue ? children : null);\n }\n\n var showCleanButton = cleanableProp && hasValue && !readOnly; // When the component is read-only or disabled, the input is not interactive.\n\n var inputFocused = readOnly || disabled ? false : editable && activeState;\n var tabIndex = disabled ? undefined : tabIndexProp;\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": activeProp,\n \"aria-disabled\": disabled,\n \"aria-owns\": id ? id + \"-listbox\" : undefined\n }, rest, {\n ref: (0, _utils.mergeRefs)(comboboxRef, ref),\n disabled: disabled,\n tabIndex: tabIndex,\n className: classes,\n onFocus: !disabled ? handleFocus : null // The debounce is set to 200 to solve the flicker caused by the switch between input and div.\n ,\n onBlur: !disabled ? (0, _debounce.default)(handleBlur, 200) : null,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 7\n }\n }), /*#__PURE__*/_react.default.createElement(_TextMask.default, {\n mask: inputMask,\n value: Array.isArray(inputValue) ? inputValue.toString() : inputValue,\n onBlur: handleInputBlur,\n onFocus: onInputFocus,\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n id: id,\n \"aria-hidden\": !inputFocused,\n readOnly: !inputFocused,\n disabled: disabled,\n \"aria-controls\": id ? id + \"-listbox\" : undefined,\n tabIndex: editable ? 0 : -1,\n className: prefix('textbox', {\n 'read-only': !inputFocused\n }),\n placeholder: inputPlaceholder,\n render: renderInput,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 9\n }\n }), children ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix(hasValue ? 'value' : 'placeholder'),\n \"aria-placeholder\": typeof children === 'string' ? children : undefined,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }\n }, label && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('label'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 23\n }\n }, label, \": \"), children) : null, showCleanButton && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {\n className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"clean\"]))),\n tabIndex: -1,\n locale: {\n closeLabel: 'Clear'\n },\n onClick: handleClean,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 11\n }\n }), caret && /*#__PURE__*/_react.default.createElement(Caret, {\n className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)([\"caret\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 19\n }\n }));\n});\n\nPickerToggle.displayName = 'PickerToggle';\nPickerToggle.propTypes = {\n classPrefix: _propTypes.default.string,\n hasValue: _propTypes.default.bool,\n cleanable: _propTypes.default.bool,\n className: _propTypes.default.string,\n children: _propTypes.default.node,\n caret: _propTypes.default.bool,\n as: _propTypes.default.elementType,\n onClean: _propTypes.default.func,\n active: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n plaintext: _propTypes.default.bool,\n caretComponent: (0, _deprecatePropType.default)(_propTypes.default.elementType, 'Use `caretAs` instead.'),\n caretAs: _propTypes.default.elementType\n};\nvar _default = PickerToggle;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Picker/PickerToggle.tsx?");
4018
4018
 
4019
4019
  /***/ }),
4020
4020
 
@@ -4454,7 +4454,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
4454
4454
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4455
4455
 
4456
4456
  "use strict";
4457
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteralLoose */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js\"));\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _isUndefined = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/SelectPicker/SelectPicker.tsx\",\n _this = void 0,\n _templateObject;\n\nvar emptyArray = [];\n\nvar SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$data = props.data,\n data = _props$data === void 0 ? emptyArray : _props$data,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n valueProp = props.value,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n placeholder = props.placeholder,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n menuClassName = props.menuClassName,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n _props$menuMaxHeight = props.menuMaxHeight,\n menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,\n menuStyle = props.menuStyle,\n groupBy = props.groupBy,\n overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n virtualized = props.virtualized,\n listProps = props.listProps,\n id = props.id,\n onGroupTitleClick = props.onGroupTitleClick,\n searchBy = props.searchBy,\n onEntered = props.onEntered,\n onExited = props.onExited,\n onClean = props.onClean,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onSearch = props.onSearch,\n onClose = props.onClose,\n onOpen = props.onOpen,\n sort = props.sort,\n renderValue = props.renderValue,\n renderMenu = props.renderMenu,\n renderMenuGroup = props.renderMenuGroup,\n renderMenuItem = props.renderMenuItem,\n renderExtraFooter = props.renderExtraFooter,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"appearance\", \"data\", \"valueKey\", \"labelKey\", \"value\", \"classPrefix\", \"placeholder\", \"defaultValue\", \"disabled\", \"cleanable\", \"placement\", \"menuClassName\", \"menuAutoWidth\", \"menuMaxHeight\", \"menuStyle\", \"groupBy\", \"locale\", \"toggleAs\", \"style\", \"searchable\", \"disabledItemValues\", \"virtualized\", \"listProps\", \"id\", \"onGroupTitleClick\", \"searchBy\", \"onEntered\", \"onExited\", \"onClean\", \"onChange\", \"onSelect\", \"onSearch\", \"onClose\", \"onOpen\", \"sort\", \"renderValue\", \"renderMenu\", \"renderMenuGroup\", \"renderMenuItem\", \"renderExtraFooter\"]);\n var triggerRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n\n var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),\n locale = _useCustom.locale;\n\n var _ref = (0, _utils.useControlled)(valueProp, defaultValue),\n value = _ref[0],\n setValue = _ref[1]; // Used to hover the focus item when trigger `onKeydown`\n\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {\n data: data,\n valueKey: valueKey,\n target: function target() {\n return overlayRef.current;\n }\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setFocusItemValue = _useFocusItemValue.setFocusItemValue,\n onFocusItem = _useFocusItemValue.onKeyDown; // Use search keywords to filter options.\n\n\n var _useSearch = (0, _Picker.useSearch)({\n labelKey: labelKey,\n data: data,\n searchBy: searchBy,\n callback: function callback(searchKeyword, filteredData, event) {\n var _filteredData$;\n\n // The first option after filtering is the focus.\n setFocusItemValue(filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }\n }),\n searchKeyword = _useSearch.searchKeyword,\n filteredData = _useSearch.filteredData,\n updateFilteredData = _useSearch.updateFilteredData,\n setSearchKeyword = _useSearch.setSearchKeyword,\n handleSearch = _useSearch.handleSearch;\n\n (0, _react.useEffect)(function () {\n updateFilteredData(data);\n }, [data, updateFilteredData]); // Use component active state to support keyboard events.\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$c;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, []);\n var handleSelect = (0, _react.useCallback)(function (value, item, event) {\n var _targetRef$current;\n\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);\n (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();\n }, [onSelect]);\n var handleChangeValue = (0, _react.useCallback)(function (value, event) {\n onChange === null || onChange === void 0 ? void 0 : onChange(value, event);\n }, [onChange]);\n var handleMenuPressEnter = (0, _react.useCallback)(function (event) {\n if (!focusItemValue) {\n return;\n } // Find active `MenuItem` by `value`\n\n\n var focusItem = data.find(function (item) {\n return (0, _utils.shallowEqual)(item[valueKey], focusItemValue);\n });\n setValue(focusItemValue);\n handleSelect(focusItemValue, focusItem, event);\n handleChangeValue(focusItemValue, event);\n handleClose();\n }, [data, focusItemValue, handleChangeValue, handleClose, handleSelect, setValue, valueKey]);\n var handleItemSelect = (0, _react.useCallback)(function (value, item, event) {\n setValue(value);\n setFocusItemValue(value);\n handleSelect(value, item, event);\n handleChangeValue(value, event);\n handleClose();\n }, [setValue, setFocusItemValue, handleSelect, handleChangeValue, handleClose]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || !cleanable) {\n return;\n }\n\n setValue(null);\n setFocusItemValue(value);\n handleChangeValue(null, event);\n }, [value, disabled, cleanable, setValue, handleChangeValue, setFocusItemValue]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n toggle: !focusItemValue || !active,\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef,\n searchInputRef: searchInputRef,\n active: active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n onClose: function onClose() {\n setFocusItemValue(null);\n }\n }, rest));\n var handleExited = (0, _react.useCallback)(function () {\n setSearchKeyword('');\n setActive(false);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch('');\n onClose === null || onClose === void 0 ? void 0 : onClose();\n }, [onClose, setSearchKeyword, onSearch]);\n var handleEntered = (0, _react.useCallback)(function () {\n setActive(true);\n setFocusItemValue(value);\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n }, [onOpen, setFocusItemValue, value]);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n }); // Find active `MenuItem` by `value`\n\n var activeItem = data.find(function (item) {\n return (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\n var hasValue = !!activeItem || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var selectedElement = placeholder;\n\n if (activeItem !== null && activeItem !== void 0 && activeItem[labelKey]) {\n selectedElement = activeItem[labelKey];\n }\n\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, activeItem, selectedElement); // If renderValue returns null or undefined, hasValue is false.\n\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(className, menuClassName, prefix('select-menu'));\n var styles = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var items = filteredData; // Create a tree structure data when set `groupBy`\n\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\n var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {\n id: id ? id + \"-listbox\" : undefined,\n listProps: listProps,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n renderMenuGroup: renderMenuGroup,\n renderMenuItem: renderMenuItem,\n maxHeight: menuMaxHeight,\n classPrefix: 'picker-select-menu',\n dropdownMenuItemClassPrefix: 'picker-select-menu-item',\n dropdownMenuItemAs: _Picker.DropdownMenuItem,\n activeItemValues: [value],\n focusItemValue: focusItemValue,\n data: items,\n group: !(0, _isUndefined.default)(groupBy),\n onSelect: handleItemSelect,\n onGroupTitleClick: onGroupTitleClick,\n virtualized: virtualized,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 344,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"none\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 365,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n onKeyDown: onPickerKeyDown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 369,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {\n placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeyword,\n inputRef: searchInputRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 378,\n columnNumber: 13\n }\n }), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n hasValue: hasValue,\n name: 'select',\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 410,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n ref: targetRef,\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 active: active,\n placement: placement,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 411,\n columnNumber: 11\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));\n});\n\nSelectPicker.displayName = 'SelectPicker';\nSelectPicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n menuAutoWidth: _propTypes.default.bool,\n menuMaxHeight: _propTypes.default.number,\n renderMenu: _propTypes.default.func,\n renderMenuItem: _propTypes.default.func,\n renderMenuGroup: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onGroupTitleClick: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n\n /**\n * group by key in `data`\n */\n groupBy: _propTypes.default.any,\n sort: _propTypes.default.func,\n searchable: _propTypes.default.bool,\n virtualized: _propTypes.default.bool,\n searchBy: _propTypes.default.func\n});\nvar _default = SelectPicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/SelectPicker/SelectPicker.tsx?");
4457
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteralLoose */ \"./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js\"));\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _isUndefined = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/SelectPicker/SelectPicker.tsx\",\n _this = void 0,\n _templateObject;\n\nvar emptyArray = [];\n\nvar SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n _props$data = props.data,\n data = _props$data === void 0 ? emptyArray : _props$data,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n valueProp = props.value,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n placeholder = props.placeholder,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n menuClassName = props.menuClassName,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n _props$menuMaxHeight = props.menuMaxHeight,\n menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,\n menuStyle = props.menuStyle,\n groupBy = props.groupBy,\n overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n virtualized = props.virtualized,\n listProps = props.listProps,\n id = props.id,\n onGroupTitleClick = props.onGroupTitleClick,\n searchBy = props.searchBy,\n onEntered = props.onEntered,\n onExited = props.onExited,\n onClean = props.onClean,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onSearch = props.onSearch,\n onClose = props.onClose,\n onOpen = props.onOpen,\n sort = props.sort,\n renderValue = props.renderValue,\n renderMenu = props.renderMenu,\n renderMenuGroup = props.renderMenuGroup,\n renderMenuItem = props.renderMenuItem,\n renderExtraFooter = props.renderExtraFooter,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"appearance\", \"data\", \"valueKey\", \"labelKey\", \"value\", \"classPrefix\", \"placeholder\", \"defaultValue\", \"disabled\", \"cleanable\", \"placement\", \"menuClassName\", \"menuAutoWidth\", \"menuMaxHeight\", \"menuStyle\", \"groupBy\", \"locale\", \"toggleAs\", \"style\", \"searchable\", \"disabledItemValues\", \"virtualized\", \"listProps\", \"id\", \"onGroupTitleClick\", \"searchBy\", \"onEntered\", \"onExited\", \"onClean\", \"onChange\", \"onSelect\", \"onSearch\", \"onClose\", \"onOpen\", \"sort\", \"renderValue\", \"renderMenu\", \"renderMenuGroup\", \"renderMenuItem\", \"renderExtraFooter\"]);\n var triggerRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n\n var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),\n locale = _useCustom.locale;\n\n var _ref = (0, _utils.useControlled)(valueProp, defaultValue),\n value = _ref[0],\n setValue = _ref[1]; // Used to hover the focus item when trigger `onKeydown`\n\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {\n data: data,\n valueKey: valueKey,\n target: function target() {\n return overlayRef.current;\n }\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setFocusItemValue = _useFocusItemValue.setFocusItemValue,\n onFocusItem = _useFocusItemValue.onKeyDown; // Use search keywords to filter options.\n\n\n var _useSearch = (0, _Picker.useSearch)({\n labelKey: labelKey,\n data: data,\n searchBy: searchBy,\n callback: function callback(searchKeyword, filteredData, event) {\n var _filteredData$;\n\n // The first option after filtering is the focus.\n setFocusItemValue(filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }\n }),\n searchKeyword = _useSearch.searchKeyword,\n filteredData = _useSearch.filteredData,\n updateFilteredData = _useSearch.updateFilteredData,\n setSearchKeyword = _useSearch.setSearchKeyword,\n handleSearch = _useSearch.handleSearch;\n\n (0, _react.useEffect)(function () {\n updateFilteredData(data);\n }, [data, updateFilteredData]); // Use component active state to support keyboard events.\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current, _triggerRef$current$c;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, []);\n var handleSelect = (0, _react.useCallback)(function (value, item, event) {\n var _targetRef$current;\n\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);\n (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();\n }, [onSelect]);\n var handleChangeValue = (0, _react.useCallback)(function (value, event) {\n onChange === null || onChange === void 0 ? void 0 : onChange(value, event);\n }, [onChange]);\n var handleMenuPressEnter = (0, _react.useCallback)(function (event) {\n if (!focusItemValue) {\n return;\n } // Find active `MenuItem` by `value`\n\n\n var focusItem = data.find(function (item) {\n return (0, _utils.shallowEqual)(item[valueKey], focusItemValue);\n });\n setValue(focusItemValue);\n handleSelect(focusItemValue, focusItem, event);\n handleChangeValue(focusItemValue, event);\n handleClose();\n }, [data, focusItemValue, handleChangeValue, handleClose, handleSelect, setValue, valueKey]);\n var handleItemSelect = (0, _react.useCallback)(function (value, item, event) {\n setValue(value);\n setFocusItemValue(value);\n handleSelect(value, item, event);\n handleChangeValue(value, event);\n handleClose();\n }, [setValue, setFocusItemValue, handleSelect, handleChangeValue, handleClose]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || !cleanable) {\n return;\n }\n\n setValue(null);\n setFocusItemValue(value);\n handleChangeValue(null, event);\n }, [value, disabled, cleanable, setValue, handleChangeValue, setFocusItemValue]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n toggle: !focusItemValue || !active,\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef,\n searchInputRef: searchInputRef,\n active: active,\n onExit: handleClean,\n onMenuKeyDown: onFocusItem,\n onMenuPressEnter: handleMenuPressEnter,\n onClose: function onClose() {\n setFocusItemValue(null);\n }\n }, rest));\n var handleExited = (0, _react.useCallback)(function () {\n setSearchKeyword('');\n setActive(false);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch('');\n onClose === null || onClose === void 0 ? void 0 : onClose();\n }, [onClose, setSearchKeyword, onSearch]);\n var handleEntered = (0, _react.useCallback)(function () {\n setActive(true);\n setFocusItemValue(value);\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n }, [onOpen, setFocusItemValue, value]);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n }); // Find active `MenuItem` by `value`\n\n var activeItem = data.find(function (item) {\n return (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\n var hasValue = !!activeItem || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var selectedElement = placeholder;\n\n if (activeItem !== null && activeItem !== void 0 && activeItem[labelKey]) {\n selectedElement = activeItem[labelKey];\n }\n\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, activeItem, selectedElement); // If renderValue returns null or undefined, hasValue is false.\n\n if ((0, _isNil.default)(selectedElement)) {\n hasValue = false;\n }\n }\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(className, menuClassName, prefix('select-menu'));\n var styles = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var items = filteredData; // Create a tree structure data when set `groupBy`\n\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\n var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {\n id: id ? id + \"-listbox\" : undefined,\n listProps: listProps,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n renderMenuGroup: renderMenuGroup,\n renderMenuItem: renderMenuItem,\n maxHeight: menuMaxHeight,\n classPrefix: 'picker-select-menu',\n dropdownMenuItemClassPrefix: 'picker-select-menu-item',\n dropdownMenuItemAs: _Picker.DropdownMenuItem,\n activeItemValues: [value],\n focusItemValue: focusItemValue,\n data: items,\n group: !(0, _isUndefined.default)(groupBy),\n onSelect: handleItemSelect,\n onGroupTitleClick: onGroupTitleClick,\n virtualized: virtualized,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 9\n }\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"none\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 377,\n columnNumber: 9\n }\n }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n onKeyDown: onPickerKeyDown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 9\n }\n }, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {\n placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeyword,\n inputRef: searchInputRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 390,\n columnNumber: 13\n }\n }), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n hasValue: hasValue,\n name: 'select',\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),\n onExited: (0, _utils.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n ref: targetRef,\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 active: active,\n placement: placement,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 423,\n columnNumber: 11\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));\n});\n\nSelectPicker.displayName = 'SelectPicker';\nSelectPicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n menuAutoWidth: _propTypes.default.bool,\n menuMaxHeight: _propTypes.default.number,\n renderMenu: _propTypes.default.func,\n renderMenuItem: _propTypes.default.func,\n renderMenuGroup: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onGroupTitleClick: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n\n /**\n * group by key in `data`\n */\n groupBy: _propTypes.default.any,\n sort: _propTypes.default.func,\n searchable: _propTypes.default.bool,\n virtualized: _propTypes.default.bool,\n searchBy: _propTypes.default.func\n});\nvar _default = SelectPicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/SelectPicker/SelectPicker.tsx?");
4458
4458
 
4459
4459
  /***/ }),
4460
4460
 
@@ -5004,7 +5004,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
5004
5004
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5005
5005
 
5006
5006
  "use strict";
5007
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = exports.maxTreeHeight = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _isFunction2 = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _omit2 = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _pick2 = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _VirtualizedList = __webpack_require__(/*! ../Picker/VirtualizedList */ \"./src/Picker/VirtualizedList.tsx\");\n\nvar _TreeNode = _interopRequireDefault(__webpack_require__(/*! ./TreeNode */ \"./src/TreePicker/TreeNode.tsx\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _TreeContext = _interopRequireDefault(__webpack_require__(/*! ../Tree/TreeContext */ \"./src/Tree/TreeContext.ts\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/TreePicker/TreePicker.tsx\",\n _this = void 0;\n\n// default value for virtualized\nvar maxTreeHeight = 320;\nexports.maxTreeHeight = maxTreeHeight;\nvar emptyArray = [];\n\nvar TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$data = props.data,\n data = _props$data === void 0 ? emptyArray : _props$data,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n style = props.style,\n showIndentLine = props.showIndentLine,\n controlledValue = props.value,\n overrideLocale = props.locale,\n _props$height = props.height,\n height = _props$height === void 0 ? 360 : _props$height,\n className = props.className,\n disabled = props.disabled,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n menuStyle = props.menuStyle,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$virtualized = props.virtualized,\n virtualized = _props$virtualized === void 0 ? false : _props$virtualized,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n defaultValue = props.defaultValue,\n placeholder = props.placeholder,\n searchKeyword = props.searchKeyword,\n menuClassName = props.menuClassName,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n searchBy = props.searchBy,\n toggleAs = props.toggleAs,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n _props$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\n draggable = props.draggable,\n _props$defaultExpandA = props.defaultExpandAll,\n defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n controlledExpandItemValues = props.expandItemValues,\n _props$defaultExpandI = props.defaultExpandItemValues,\n defaultExpandItemValues = _props$defaultExpandI === void 0 ? emptyArray : _props$defaultExpandI,\n id = props.id,\n listProps = props.listProps,\n getChildren = props.getChildren,\n renderTreeIcon = props.renderTreeIcon,\n renderTreeNode = props.renderTreeNode,\n onExit = props.onExit,\n onExited = props.onExited,\n onClean = props.onClean,\n onOpen = props.onOpen,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onChange = props.onChange,\n onEntered = props.onEntered,\n onClose = props.onClose,\n onDragEnd = props.onDragEnd,\n onDragStart = props.onDragStart,\n onDragEnter = props.onDragEnter,\n onDragLeave = props.onDragLeave,\n onDragOver = props.onDragOver,\n onDrop = props.onDrop,\n onExpand = props.onExpand,\n renderExtraFooter = props.renderExtraFooter,\n renderMenu = props.renderMenu,\n renderValue = props.renderValue,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"appearance\", \"style\", \"showIndentLine\", \"value\", \"locale\", \"height\", \"className\", \"disabled\", \"placement\", \"cleanable\", \"menuStyle\", \"searchable\", \"virtualized\", \"classPrefix\", \"defaultValue\", \"placeholder\", \"searchKeyword\", \"menuClassName\", \"menuAutoWidth\", \"searchBy\", \"toggleAs\", \"labelKey\", \"valueKey\", \"childrenKey\", \"draggable\", \"defaultExpandAll\", \"disabledItemValues\", \"expandItemValues\", \"defaultExpandItemValues\", \"id\", \"listProps\", \"getChildren\", \"renderTreeIcon\", \"renderTreeNode\", \"onExit\", \"onExited\", \"onClean\", \"onOpen\", \"onSearch\", \"onSelect\", \"onChange\", \"onEntered\", \"onClose\", \"onDragEnd\", \"onDragStart\", \"onDragEnter\", \"onDragLeave\", \"onDragOver\", \"onDrop\", \"onExpand\", \"renderExtraFooter\", \"renderMenu\", \"renderValue\"]);\n var triggerRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var listRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n var treeViewRef = (0, _react.useRef)(null);\n\n var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),\n rtl = _useCustom.rtl,\n locale = _useCustom.locale;\n\n var _useContext = (0, _react.useContext)(_TreeContext.default),\n inline = _useContext.inline;\n\n var _useControlled = (0, _utils.useControlled)(controlledValue, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n\n var _useGetTreeNodeChildr = (0, _treeUtils.useGetTreeNodeChildren)(data, valueKey, childrenKey),\n treeData = _useGetTreeNodeChildr.data,\n setTreeData = _useGetTreeNodeChildr.setData,\n loadingNodeValues = _useGetTreeNodeChildr.loadingNodeValues,\n loadChildren = _useGetTreeNodeChildr.loadChildren;\n\n var _useControlled2 = (0, _utils.useControlled)(controlledExpandItemValues, (0, _treeUtils.getDefaultExpandItemValues)(treeData, {\n defaultExpandAll: defaultExpandAll,\n valueKey: valueKey,\n childrenKey: childrenKey,\n defaultExpandItemValues: defaultExpandItemValues\n })),\n expandItemValues = _useControlled2[0],\n setExpandItemValues = _useControlled2[1];\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var _useState2 = (0, _react.useState)(null),\n focusItemValue = _useState2[0],\n setFocusItemValue = _useState2[1];\n\n var _useFlattenTreeData = (0, _treeUtils.useFlattenTreeData)({\n data: treeData,\n labelKey: labelKey,\n valueKey: valueKey,\n childrenKey: childrenKey,\n callback: function callback() {\n // after flattenData, always trigger re-render\n forceUpdate();\n }\n }),\n flattenNodes = _useFlattenTreeData.flattenNodes,\n forceUpdate = _useFlattenTreeData.forceUpdate,\n formatVirtualizedTreeData = _useFlattenTreeData.formatVirtualizedTreeData;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useClassNames2 = (0, _utils.useClassNames)('tree'),\n treePrefix = _useClassNames2.prefix,\n withTreeClassPrefix = _useClassNames2.withClassPrefix;\n\n var _useTreeSearch = (0, _treeUtils.useTreeSearch)({\n labelKey: labelKey,\n childrenKey: childrenKey,\n searchKeyword: searchKeyword,\n data: treeData,\n searchBy: searchBy,\n callback: function callback(searchKeyword, _filterData, event) {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }\n }),\n filteredData = _useTreeSearch.filteredData,\n searchKeywordState = _useTreeSearch.searchKeywordState,\n setSearchKeyword = _useTreeSearch.setSearchKeyword,\n handleSearch = _useTreeSearch.handleSearch,\n setFilteredData = _useTreeSearch.setFilteredData;\n\n var _useTreeDrag = (0, _treeUtils.useTreeDrag)(),\n dragNodeKeys = _useTreeDrag.dragNodeKeys,\n dragOverNodeKey = _useTreeDrag.dragOverNodeKey,\n dragNode = _useTreeDrag.dragNode,\n dropNodePosition = _useTreeDrag.dropNodePosition,\n setDragNodeKeys = _useTreeDrag.setDragNodeKeys,\n setDragOverNodeKey = _useTreeDrag.setDragOverNodeKey,\n setDragNode = _useTreeDrag.setDragNode,\n setDropNodePosition = _useTreeDrag.setDropNodePosition;\n\n var _useTreeNodeRefs = (0, _treeUtils.useTreeNodeRefs)(),\n treeNodesRefs = _useTreeNodeRefs.treeNodesRefs,\n saveTreeNodeRef = _useTreeNodeRefs.saveTreeNodeRef;\n\n var activeNode = (0, _treeUtils.getTreeActiveNode)(flattenNodes, value, valueKey);\n var getFormattedNodes = (0, _react.useCallback)(function (render) {\n if (virtualized) {\n return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {\n searchKeyword: searchKeywordState\n }).filter(function (n) {\n return n.visible;\n });\n }\n\n return filteredData.map(function (dataItem, index) {\n return render === null || render === void 0 ? void 0 : render(dataItem, index, 1);\n });\n }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized]);\n var focusActiveNode = (0, _react.useCallback)(function () {\n if (listRef.current) {\n (0, _treeUtils.focusToActiveTreeNode)({\n list: listRef.current,\n valueKey: valueKey,\n selector: \".\" + treePrefix('node-active'),\n activeNode: activeNode,\n virtualized: virtualized,\n container: treeViewRef.current,\n formattedNodes: getFormattedNodes()\n });\n }\n }, [treePrefix, activeNode, getFormattedNodes, valueKey, virtualized]);\n (0, _react.useEffect)(function () {\n setFilteredData(data, searchKeywordState);\n setTreeData(data);\n }, [data, searchKeywordState, setFilteredData, setTreeData]);\n (0, _react.useEffect)(function () {\n setFilteredData(treeData, searchKeywordState);\n }, [treeData, searchKeywordState, setFilteredData]);\n (0, _react.useEffect)(function () {\n if (Array.isArray(controlledExpandItemValues)) {\n setExpandItemValues(controlledExpandItemValues);\n }\n }, [controlledExpandItemValues, setExpandItemValues]);\n (0, _react.useEffect)(function () {\n setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');\n }, [searchKeyword, setSearchKeyword]);\n var getDropData = (0, _react.useCallback)(function (nodeData) {\n var options = {\n valueKey: valueKey,\n childrenKey: childrenKey\n };\n return {\n /** draggingNode */\n dragNode: dragNode,\n\n /** dropNode */\n dropNode: nodeData,\n\n /** dragAndDrop Position type */\n dropNodePosition: dropNodePosition,\n createUpdateDataFunction: (0, _treeUtils.createUpdateTreeDataFunction)({\n dragNode: dragNode,\n dropNode: nodeData,\n dropNodePosition: dropNodePosition\n }, options)\n };\n }, [dragNode, valueKey, childrenKey, dropNodePosition]);\n\n var getTreeNodeProps = function getTreeNodeProps(node, layer, index) {\n var draggingNode = dragNode !== null && dragNode !== void 0 ? dragNode : {};\n return {\n as: Component,\n rtl: rtl,\n value: node[valueKey],\n label: node[labelKey],\n index: index,\n layer: layer,\n loading: loadingNodeValues.some(function (item) {\n return (0, _utils.shallowEqual)(item, node[valueKey]);\n }),\n expand: node.expand,\n active: (0, _utils.shallowEqual)(node[valueKey], value),\n focus: (0, _utils.shallowEqual)(node[valueKey], focusItemValue),\n visible: node.visible,\n draggable: draggable,\n dragging: (0, _utils.shallowEqual)(node[valueKey], draggingNode[valueKey]),\n children: node[childrenKey],\n nodeData: node,\n disabled: disabledItemValues.some(function (disabledItem) {\n return (0, _utils.shallowEqual)(disabledItem, node[valueKey]);\n }),\n dragOver: (0, _utils.shallowEqual)(node[valueKey], dragOverNodeKey) && dropNodePosition === _utils.TREE_NODE_DROP_POSITION.DRAG_OVER,\n dragOverTop: (0, _utils.shallowEqual)(node[valueKey], dragOverNodeKey) && dropNodePosition === _utils.TREE_NODE_DROP_POSITION.DRAG_OVER_TOP,\n dragOverBottom: (0, _utils.shallowEqual)(node[valueKey], dragOverNodeKey) && dropNodePosition === _utils.TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM,\n onSelect: handleSelect,\n onDragStart: handleDragStart,\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDragEnd: handleDragEnd,\n onDrop: handleDrop,\n onExpand: handleExpand,\n onRenderTreeNode: renderTreeNode,\n onRenderTreeIcon: renderTreeIcon\n };\n };\n\n var handleSelect = (0, _react.useCallback)(function (nodeData, event) {\n var _targetRef$current, _triggerRef$current, _triggerRef$current$c;\n\n if (!nodeData) {\n return;\n }\n\n var nodeValue = nodeData[valueKey];\n\n if (!isControlled) {\n setValue(nodeValue);\n }\n\n setFocusItemValue(nodeData[valueKey]);\n onChange === null || onChange === void 0 ? void 0 : onChange(nodeValue, event);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, nodeValue, event);\n (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, [valueKey, isControlled, onChange, onSelect, setValue]);\n var handleExpand = (0, _react.useCallback)(function (node) {\n var nextExpandItemValues = (0, _treeUtils.toggleExpand)({\n node: node,\n isExpand: !node.expand,\n expandItemValues: expandItemValues,\n valueKey: valueKey\n });\n setExpandItemValues(nextExpandItemValues);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(nextExpandItemValues, node, (0, _Picker.createConcatChildrenFunction)(node, node[valueKey], {\n valueKey: valueKey,\n childrenKey: childrenKey\n }));\n\n if ((0, _isFunction2.default)(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {\n loadChildren(node, getChildren);\n }\n }, [valueKey, childrenKey, expandItemValues, getChildren, onExpand, setExpandItemValues, loadChildren]);\n var handleDragStart = (0, _react.useCallback)(function (nodeData, event) {\n if (draggable) {\n setDragNodeKeys((0, _treeUtils.getDragNodeKeys)(nodeData, childrenKey, valueKey));\n setDragNode(flattenNodes[nodeData.refKey]);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);\n }\n }, [draggable, childrenKey, flattenNodes, onDragStart, setDragNodeKeys, setDragNode, valueKey]);\n var handleDragEnter = (0, _react.useCallback)(function (nodeData, event) {\n if (dragNodeKeys.some(function (d) {\n return (0, _utils.shallowEqual)(d, nodeData[valueKey]);\n })) {\n return;\n }\n\n if (dragNode) {\n setDragOverNodeKey(nodeData[valueKey]);\n setDropNodePosition((0, _treeUtils.calDropNodePosition)(event, treeNodesRefs[nodeData.refKey]));\n }\n\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);\n }, [dragNode, treeNodesRefs, dragNodeKeys, onDragEnter, setDragOverNodeKey, setDropNodePosition, valueKey]);\n var handleDragOver = (0, _react.useCallback)(function (nodeData, event) {\n if (dragNodeKeys.some(function (d) {\n return (0, _utils.shallowEqual)(d, nodeData[valueKey]);\n })) {\n return;\n }\n\n if (dragNode && (0, _utils.shallowEqual)(nodeData[valueKey], dragOverNodeKey)) {\n var lastDropNodePosition = (0, _treeUtils.calDropNodePosition)(event, treeNodesRefs[nodeData.refKey]);\n if (lastDropNodePosition === dropNodePosition) return;\n setDropNodePosition(lastDropNodePosition);\n }\n\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);\n }, [dragNode, dragNodeKeys, dragOverNodeKey, dropNodePosition, onDragOver, setDropNodePosition, treeNodesRefs, valueKey]);\n var handleDragLeave = (0, _react.useCallback)(function (nodeData, event) {\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);\n }, [onDragLeave]);\n var handleDragEnd = (0, _react.useCallback)(function (nodeData, event) {\n setDragNode(null);\n setDragNodeKeys([]);\n setDragOverNodeKey(null);\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);\n }, [setDragNode, setDragNodeKeys, setDragOverNodeKey, onDragEnd]);\n var handleDrop = (0, _react.useCallback)(function (nodeData, event) {\n if (dragNodeKeys.some(function (d) {\n return (0, _utils.shallowEqual)(d, nodeData[valueKey]);\n })) {\n console.error('Cannot drag a node to itself and its children');\n } else {\n var dropData = getDropData(nodeData);\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropData, event);\n }\n\n setDragNode(null);\n setDragNodeKeys([]);\n setDragOverNodeKey(null);\n }, [dragNodeKeys, setDragNode, setDragOverNodeKey, setDragNodeKeys, onDrop, getDropData, valueKey]);\n var handleOpen = (0, _react.useCallback)(function () {\n var _triggerRef$current2, _triggerRef$current2$;\n\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.open) === null || _triggerRef$current2$ === void 0 ? void 0 : _triggerRef$current2$.call(_triggerRef$current2);\n focusActiveNode();\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [focusActiveNode, onOpen]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current3, _triggerRef$current3$, _targetRef$current2;\n\n (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.close) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);\n setSearchKeyword('');\n setActive(false);\n setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);\n /**\n * when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu\n */\n\n (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.focus();\n }, [activeNode, setSearchKeyword, valueKey]);\n (0, _Picker.usePublicMethods)(ref, {\n rootRef: inline ? treeViewRef : undefined,\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef,\n listRef: listRef,\n inline: inline\n });\n var handleFocusItem = (0, _react.useCallback)(function (key) {\n var focusableItems = (0, _treeUtils.getFocusableItems)(filteredData, {\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n childrenKey: childrenKey,\n expandItemValues: expandItemValues\n }, (0, _treeUtils.isSearching)(searchKeywordState));\n var selector = \".\" + treePrefix('node-label');\n var focusProps = {\n focusItemValue: focusItemValue,\n focusableItems: focusableItems,\n treeNodesRefs: treeNodesRefs,\n selector: selector,\n valueKey: valueKey,\n callback: function callback(nextFocusItemValue) {\n setFocusItemValue(nextFocusItemValue);\n }\n };\n\n if (key === _utils.KEY_VALUES.DOWN) {\n (0, _treeUtils.focusNextItem)(focusProps);\n return;\n }\n\n if (key === _utils.KEY_VALUES.UP) {\n (0, _treeUtils.focusPreviousItem)(focusProps);\n }\n }, [searchKeywordState, expandItemValues, filteredData, focusItemValue, treeNodesRefs, treePrefix, valueKey, childrenKey, disabledItemValues]);\n var handleLeftArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.leftArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n onExpand: handleExpand,\n childrenKey: childrenKey,\n onFocusItem: function onFocusItem() {\n var _focusItem$parent, _focusItem$parent2;\n\n setFocusItemValue(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent = focusItem.parent) === null || _focusItem$parent === void 0 ? void 0 : _focusItem$parent[valueKey]);\n (0, _treeUtils.focusTreeNode)(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, \".\" + treePrefix('node-label'));\n }\n });\n }, [expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, treePrefix, valueKey, childrenKey]);\n var handleRightArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.rightArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n childrenKey: childrenKey,\n onExpand: handleExpand,\n onFocusItem: function onFocusItem() {\n handleFocusItem(_utils.KEY_VALUES.DOWN);\n }\n });\n }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);\n var selectActiveItem = (0, _react.useCallback)(function (event) {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var activeItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n handleSelect(activeItem, event);\n }, [flattenNodes, valueKey, focusItemValue, handleSelect]);\n var handleClean = (0, _react.useCallback)(function (event) {\n var nullValue = null;\n var target = event.target; // exclude searchBar\n\n if (target.matches('div[role=\"searchbox\"] > input')) {\n return;\n }\n\n setValue(null);\n onChange === null || onChange === void 0 ? void 0 : onChange(nullValue, event);\n }, [onChange, setValue]);\n var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n toggle: !activeNode || !active,\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef,\n searchInputRef: searchInputRef,\n active: active,\n onExit: handleClean,\n onClose: handleClose,\n onMenuKeyDown: function onMenuKeyDown(event) {\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem,\n del: handleClean\n });\n }\n }, rest));\n var handleTreeKeyDown = (0, _react.useCallback)(function (event) {\n if (!treeViewRef.current) {\n return;\n }\n\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem\n });\n }, [handleFocusItem, handleLeftArrow, handleRightArrow, rtl, selectActiveItem]);\n\n var renderNode = function renderNode(node, index, layer) {\n if (!node.visible) {\n return null;\n }\n\n var children = node[childrenKey];\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n var visibleChildren = (0, _isUndefined2.default)(searchKeywordState) || searchKeywordState.length === 0 ? !!children : (0, _treeUtils.hasVisibleChildren)(node, childrenKey);\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n expand: expand\n }), layer, index), {\n hasChildren: visibleChildren\n });\n\n if (nodeProps.hasChildren) {\n var _merge;\n\n layer += 1;\n var openClass = treePrefix('open');\n var childrenClass = merge(treePrefix('node-children'), (_merge = {}, _merge[openClass] = expand && visibleChildren, _merge));\n var nodes = children || [];\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: childrenClass,\n key: node[valueKey],\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 712,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_TreeNode.default, (0, _extends2.default)({}, nodeProps, {\n ref: function ref(_ref) {\n return saveTreeNodeRef(_ref, node.refKey);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 713,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('children'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 714,\n columnNumber: 11\n }\n }, nodes.map(function (child, i) {\n return renderNode(child, i, layer);\n }), showIndentLine && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: treePrefix('indent-line'),\n style: (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1, true),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 717,\n columnNumber: 15\n }\n })));\n }\n\n return /*#__PURE__*/_react.default.createElement(_TreeNode.default, (0, _extends2.default)({\n ref: function ref(_ref2) {\n return saveTreeNodeRef(_ref2, node.refKey);\n },\n key: node[valueKey]\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 7\n }\n }));\n };\n\n var renderVirtualListNode = function renderVirtualListNode(nodes) {\n return function (_ref3) {\n var key = _ref3.key,\n index = _ref3.index,\n style = _ref3.style;\n var node = nodes[index];\n var layer = node.layer,\n visible = node.visible;\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n\n if (!node.visible) {\n return null;\n }\n\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n expand: expand\n }), layer), {\n style: style,\n hasChildren: node.hasChildren\n });\n return visible && /*#__PURE__*/_react.default.createElement(_TreeNode.default, (0, _extends2.default)({\n ref: function ref(_ref4) {\n return saveTreeNodeRef(_ref4, node.refKey);\n },\n key: key\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 757,\n columnNumber: 11\n }\n }));\n };\n };\n\n var renderTree = function renderTree() {\n var _withTreeClassPrefix;\n\n var classes = withTreeClassPrefix((_withTreeClassPrefix = {}, _withTreeClassPrefix[className !== null && className !== void 0 ? className : ''] = inline, _withTreeClassPrefix.virtualized = virtualized, _withTreeClassPrefix));\n var formattedNodes = getFormattedNodes(renderNode);\n var styles = inline ? (0, _extends2.default)({\n height: height\n }, style) : {};\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n role: \"tree\",\n id: id ? id + \"-listbox\" : undefined,\n ref: treeViewRef,\n className: classes,\n style: styles,\n onKeyDown: inline ? handleTreeKeyDown : undefined,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 771,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('nodes'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 779,\n columnNumber: 9\n }\n }, virtualized ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.AutoSizer, {\n defaultHeight: inline ? height : maxTreeHeight,\n style: {\n width: 'auto',\n height: 'auto'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 781,\n columnNumber: 13\n }\n }, function (_ref5) {\n var height = _ref5.height,\n width = _ref5.width;\n return /*#__PURE__*/_react.default.createElement(_VirtualizedList.List, (0, _extends2.default)({\n ref: listRef,\n width: width,\n height: height,\n rowHeight: 36,\n rowCount: formattedNodes.length,\n rowRenderer: renderVirtualListNode(formattedNodes),\n scrollToAlignment: \"center\"\n }, listProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 786,\n columnNumber: 17\n }\n }));\n }) : formattedNodes));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(className, menuClassName, prefix('tree-menu'));\n var mergedMenuStyle = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var styles = virtualized ? (0, _extends2.default)({\n height: height\n }, mergedMenuStyle) : (0, _extends2.default)({}, mergedMenuStyle);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n onKeyDown: onPickerKeydown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 813,\n columnNumber: 7\n }\n }, searchable ? /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {\n placeholder: locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeywordState,\n inputRef: searchInputRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 822,\n columnNumber: 11\n }\n }) : null, renderMenu ? renderMenu(renderTree()) : renderTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\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\n\n var hasValidValue = !(0, _isNil2.default)(activeNode) || !(0, _isNil2.default)(value) && (0, _isFunction2.default)(renderValue);\n var selectedElement = placeholder;\n\n if (hasValidValue) {\n var node = activeNode !== null && activeNode !== void 0 ? activeNode : {};\n selectedElement = node[labelKey];\n\n if ((0, _isFunction2.default)(renderValue) && value) {\n selectedElement = renderValue(value, node, selectedElement);\n\n if ((0, _isNil2.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n hasValue: hasValidValue,\n name: 'tree',\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n if (inline) {\n return renderTree();\n }\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick2.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEnter: handleOpen,\n onEntered: onEntered,\n onExit: (0, _utils.createChainedFunction)(onClose, onExit),\n onExited: (0, _utils.createChainedFunction)(handleClose, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 867,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 877,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit2.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, ['cascade'])), {\n id: id,\n ref: targetRef,\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 __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 878,\n columnNumber: 9\n }\n }), selectedElement || locale.placeholder)));\n});\n\nTreePicker.displayName = 'TreePicker';\nTreePicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n height: _propTypes.default.number,\n draggable: _propTypes.default.bool,\n virtualized: _propTypes.default.bool,\n searchable: _propTypes.default.bool,\n menuAutoWidth: _propTypes.default.bool,\n searchKeyword: _propTypes.default.string,\n defaultExpandAll: _propTypes.default.bool,\n expandItemValues: _propTypes.default.array,\n defaultExpandItemValues: _propTypes.default.array,\n onSearch: _propTypes.default.func,\n onExpand: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n renderTreeNode: _propTypes.default.func,\n renderTreeIcon: _propTypes.default.func,\n renderExtraFooter: _propTypes.default.func,\n renderDragNode: _propTypes.default.func,\n searchBy: _propTypes.default.func\n});\nvar _default = TreePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/TreePicker/TreePicker.tsx?");
5007
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = exports.maxTreeHeight = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\n\nvar _isFunction2 = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _omit2 = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _pick2 = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _VirtualizedList = __webpack_require__(/*! ../Picker/VirtualizedList */ \"./src/Picker/VirtualizedList.tsx\");\n\nvar _TreeNode = _interopRequireDefault(__webpack_require__(/*! ./TreeNode */ \"./src/TreePicker/TreeNode.tsx\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _TreeContext = _interopRequireDefault(__webpack_require__(/*! ../Tree/TreeContext */ \"./src/Tree/TreeContext.ts\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/TreePicker/TreePicker.tsx\",\n _this = void 0;\n\n// default value for virtualized\nvar maxTreeHeight = 320;\nexports.maxTreeHeight = maxTreeHeight;\nvar emptyArray = [];\n\nvar TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'div' : _props$as,\n _props$data = props.data,\n data = _props$data === void 0 ? emptyArray : _props$data,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n style = props.style,\n showIndentLine = props.showIndentLine,\n controlledValue = props.value,\n overrideLocale = props.locale,\n _props$height = props.height,\n height = _props$height === void 0 ? 360 : _props$height,\n className = props.className,\n disabled = props.disabled,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n menuStyle = props.menuStyle,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$virtualized = props.virtualized,\n virtualized = _props$virtualized === void 0 ? false : _props$virtualized,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n defaultValue = props.defaultValue,\n placeholder = props.placeholder,\n searchKeyword = props.searchKeyword,\n menuClassName = props.menuClassName,\n _props$menuAutoWidth = props.menuAutoWidth,\n menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,\n searchBy = props.searchBy,\n toggleAs = props.toggleAs,\n _props$labelKey = props.labelKey,\n labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,\n _props$valueKey = props.valueKey,\n valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,\n _props$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\n draggable = props.draggable,\n _props$defaultExpandA = props.defaultExpandAll,\n defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n controlledExpandItemValues = props.expandItemValues,\n _props$defaultExpandI = props.defaultExpandItemValues,\n defaultExpandItemValues = _props$defaultExpandI === void 0 ? emptyArray : _props$defaultExpandI,\n id = props.id,\n listProps = props.listProps,\n getChildren = props.getChildren,\n renderTreeIcon = props.renderTreeIcon,\n renderTreeNode = props.renderTreeNode,\n onExit = props.onExit,\n onExited = props.onExited,\n onClean = props.onClean,\n onOpen = props.onOpen,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onChange = props.onChange,\n onEntered = props.onEntered,\n onClose = props.onClose,\n onDragEnd = props.onDragEnd,\n onDragStart = props.onDragStart,\n onDragEnter = props.onDragEnter,\n onDragLeave = props.onDragLeave,\n onDragOver = props.onDragOver,\n onDrop = props.onDrop,\n onExpand = props.onExpand,\n renderExtraFooter = props.renderExtraFooter,\n renderMenu = props.renderMenu,\n renderValue = props.renderValue,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"appearance\", \"style\", \"showIndentLine\", \"value\", \"locale\", \"height\", \"className\", \"disabled\", \"placement\", \"cleanable\", \"menuStyle\", \"searchable\", \"virtualized\", \"classPrefix\", \"defaultValue\", \"placeholder\", \"searchKeyword\", \"menuClassName\", \"menuAutoWidth\", \"searchBy\", \"toggleAs\", \"labelKey\", \"valueKey\", \"childrenKey\", \"draggable\", \"defaultExpandAll\", \"disabledItemValues\", \"expandItemValues\", \"defaultExpandItemValues\", \"id\", \"listProps\", \"getChildren\", \"renderTreeIcon\", \"renderTreeNode\", \"onExit\", \"onExited\", \"onClean\", \"onOpen\", \"onSearch\", \"onSelect\", \"onChange\", \"onEntered\", \"onClose\", \"onDragEnd\", \"onDragStart\", \"onDragEnter\", \"onDragLeave\", \"onDragOver\", \"onDrop\", \"onExpand\", \"renderExtraFooter\", \"renderMenu\", \"renderValue\"]);\n var triggerRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var listRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n var treeViewRef = (0, _react.useRef)(null);\n\n var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),\n rtl = _useCustom.rtl,\n locale = _useCustom.locale;\n\n var _useContext = (0, _react.useContext)(_TreeContext.default),\n inline = _useContext.inline;\n\n var _useControlled = (0, _utils.useControlled)(controlledValue, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n\n var _useGetTreeNodeChildr = (0, _treeUtils.useGetTreeNodeChildren)(data, valueKey, childrenKey),\n treeData = _useGetTreeNodeChildr.data,\n setTreeData = _useGetTreeNodeChildr.setData,\n loadingNodeValues = _useGetTreeNodeChildr.loadingNodeValues,\n loadChildren = _useGetTreeNodeChildr.loadChildren;\n\n var _useControlled2 = (0, _utils.useControlled)(controlledExpandItemValues, (0, _treeUtils.getDefaultExpandItemValues)(treeData, {\n defaultExpandAll: defaultExpandAll,\n valueKey: valueKey,\n childrenKey: childrenKey,\n defaultExpandItemValues: defaultExpandItemValues\n })),\n expandItemValues = _useControlled2[0],\n setExpandItemValues = _useControlled2[1];\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var _useState2 = (0, _react.useState)(null),\n focusItemValue = _useState2[0],\n setFocusItemValue = _useState2[1];\n\n var _useFlattenTreeData = (0, _treeUtils.useFlattenTreeData)({\n data: treeData,\n labelKey: labelKey,\n valueKey: valueKey,\n childrenKey: childrenKey,\n callback: function callback() {\n // after flattenData, always trigger re-render\n forceUpdate();\n }\n }),\n flattenNodes = _useFlattenTreeData.flattenNodes,\n forceUpdate = _useFlattenTreeData.forceUpdate,\n formatVirtualizedTreeData = _useFlattenTreeData.formatVirtualizedTreeData;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useClassNames2 = (0, _utils.useClassNames)('tree'),\n treePrefix = _useClassNames2.prefix,\n withTreeClassPrefix = _useClassNames2.withClassPrefix;\n\n var _useTreeSearch = (0, _treeUtils.useTreeSearch)({\n labelKey: labelKey,\n childrenKey: childrenKey,\n searchKeyword: searchKeyword,\n data: treeData,\n searchBy: searchBy,\n callback: function callback(searchKeyword, _filterData, event) {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);\n }\n }),\n filteredData = _useTreeSearch.filteredData,\n searchKeywordState = _useTreeSearch.searchKeywordState,\n setSearchKeyword = _useTreeSearch.setSearchKeyword,\n handleSearch = _useTreeSearch.handleSearch,\n setFilteredData = _useTreeSearch.setFilteredData;\n\n var _useTreeDrag = (0, _treeUtils.useTreeDrag)(),\n dragNodeKeys = _useTreeDrag.dragNodeKeys,\n dragOverNodeKey = _useTreeDrag.dragOverNodeKey,\n dragNode = _useTreeDrag.dragNode,\n dropNodePosition = _useTreeDrag.dropNodePosition,\n setDragNodeKeys = _useTreeDrag.setDragNodeKeys,\n setDragOverNodeKey = _useTreeDrag.setDragOverNodeKey,\n setDragNode = _useTreeDrag.setDragNode,\n setDropNodePosition = _useTreeDrag.setDropNodePosition;\n\n var _useTreeNodeRefs = (0, _treeUtils.useTreeNodeRefs)(),\n treeNodesRefs = _useTreeNodeRefs.treeNodesRefs,\n saveTreeNodeRef = _useTreeNodeRefs.saveTreeNodeRef;\n\n var activeNode = (0, _treeUtils.getTreeActiveNode)(flattenNodes, value, valueKey);\n var getFormattedNodes = (0, _react.useCallback)(function (render) {\n if (virtualized) {\n return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {\n searchKeyword: searchKeywordState\n }).filter(function (n) {\n return n.visible;\n });\n }\n\n return filteredData.map(function (dataItem, index) {\n return render === null || render === void 0 ? void 0 : render(dataItem, index, 1);\n });\n }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized]);\n var focusActiveNode = (0, _react.useCallback)(function () {\n if (listRef.current) {\n (0, _treeUtils.focusToActiveTreeNode)({\n list: listRef.current,\n valueKey: valueKey,\n selector: \".\" + treePrefix('node-active'),\n activeNode: activeNode,\n virtualized: virtualized,\n container: treeViewRef.current,\n formattedNodes: getFormattedNodes()\n });\n }\n }, [treePrefix, activeNode, getFormattedNodes, valueKey, virtualized]);\n (0, _react.useEffect)(function () {\n setFilteredData(data, searchKeywordState);\n setTreeData(data);\n }, [data, searchKeywordState, setFilteredData, setTreeData]);\n (0, _react.useEffect)(function () {\n setFilteredData(treeData, searchKeywordState);\n }, [treeData, searchKeywordState, setFilteredData]);\n (0, _react.useEffect)(function () {\n if (Array.isArray(controlledExpandItemValues)) {\n setExpandItemValues(controlledExpandItemValues);\n }\n }, [controlledExpandItemValues, setExpandItemValues]);\n (0, _react.useEffect)(function () {\n setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');\n }, [searchKeyword, setSearchKeyword]);\n var getDropData = (0, _react.useCallback)(function (nodeData) {\n var options = {\n valueKey: valueKey,\n childrenKey: childrenKey\n };\n return {\n /** draggingNode */\n dragNode: dragNode,\n\n /** dropNode */\n dropNode: nodeData,\n\n /** dragAndDrop Position type */\n dropNodePosition: dropNodePosition,\n createUpdateDataFunction: (0, _treeUtils.createUpdateTreeDataFunction)({\n dragNode: dragNode,\n dropNode: nodeData,\n dropNodePosition: dropNodePosition\n }, options)\n };\n }, [dragNode, valueKey, childrenKey, dropNodePosition]);\n\n var getTreeNodeProps = function getTreeNodeProps(node, layer, index) {\n var draggingNode = dragNode !== null && dragNode !== void 0 ? dragNode : {};\n return {\n as: Component,\n rtl: rtl,\n value: node[valueKey],\n label: node[labelKey],\n index: index,\n layer: layer,\n loading: loadingNodeValues.some(function (item) {\n return (0, _utils.shallowEqual)(item, node[valueKey]);\n }),\n expand: node.expand,\n active: (0, _utils.shallowEqual)(node[valueKey], value),\n focus: (0, _utils.shallowEqual)(node[valueKey], focusItemValue),\n visible: node.visible,\n draggable: draggable,\n dragging: (0, _utils.shallowEqual)(node[valueKey], draggingNode[valueKey]),\n children: node[childrenKey],\n nodeData: node,\n disabled: disabledItemValues.some(function (disabledItem) {\n return (0, _utils.shallowEqual)(disabledItem, node[valueKey]);\n }),\n dragOver: (0, _utils.shallowEqual)(node[valueKey], dragOverNodeKey) && dropNodePosition === _utils.TREE_NODE_DROP_POSITION.DRAG_OVER,\n dragOverTop: (0, _utils.shallowEqual)(node[valueKey], dragOverNodeKey) && dropNodePosition === _utils.TREE_NODE_DROP_POSITION.DRAG_OVER_TOP,\n dragOverBottom: (0, _utils.shallowEqual)(node[valueKey], dragOverNodeKey) && dropNodePosition === _utils.TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM,\n onSelect: handleSelect,\n onDragStart: handleDragStart,\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDragEnd: handleDragEnd,\n onDrop: handleDrop,\n onExpand: handleExpand,\n onRenderTreeNode: renderTreeNode,\n onRenderTreeIcon: renderTreeIcon\n };\n };\n\n var handleSelect = (0, _react.useCallback)(function (nodeData, event) {\n var _targetRef$current, _triggerRef$current, _triggerRef$current$c;\n\n if (!nodeData) {\n return;\n }\n\n var nodeValue = nodeData[valueKey];\n\n if (!isControlled) {\n setValue(nodeValue);\n }\n\n setFocusItemValue(nodeData[valueKey]);\n onChange === null || onChange === void 0 ? void 0 : onChange(nodeValue, event);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, nodeValue, event);\n (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);\n }, [valueKey, isControlled, onChange, onSelect, setValue]);\n var handleExpand = (0, _react.useCallback)(function (node) {\n var nextExpandItemValues = (0, _treeUtils.toggleExpand)({\n node: node,\n isExpand: !node.expand,\n expandItemValues: expandItemValues,\n valueKey: valueKey\n });\n setExpandItemValues(nextExpandItemValues);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(nextExpandItemValues, node, (0, _Picker.createConcatChildrenFunction)(node, node[valueKey], {\n valueKey: valueKey,\n childrenKey: childrenKey\n }));\n\n if ((0, _isFunction2.default)(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {\n loadChildren(node, getChildren);\n }\n }, [valueKey, childrenKey, expandItemValues, getChildren, onExpand, setExpandItemValues, loadChildren]);\n var handleDragStart = (0, _react.useCallback)(function (nodeData, event) {\n if (draggable) {\n setDragNodeKeys((0, _treeUtils.getDragNodeKeys)(nodeData, childrenKey, valueKey));\n setDragNode(flattenNodes[nodeData.refKey]);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);\n }\n }, [draggable, childrenKey, flattenNodes, onDragStart, setDragNodeKeys, setDragNode, valueKey]);\n var handleDragEnter = (0, _react.useCallback)(function (nodeData, event) {\n if (dragNodeKeys.some(function (d) {\n return (0, _utils.shallowEqual)(d, nodeData[valueKey]);\n })) {\n return;\n }\n\n if (dragNode) {\n setDragOverNodeKey(nodeData[valueKey]);\n setDropNodePosition((0, _treeUtils.calDropNodePosition)(event, treeNodesRefs[nodeData.refKey]));\n }\n\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);\n }, [dragNode, treeNodesRefs, dragNodeKeys, onDragEnter, setDragOverNodeKey, setDropNodePosition, valueKey]);\n var handleDragOver = (0, _react.useCallback)(function (nodeData, event) {\n if (dragNodeKeys.some(function (d) {\n return (0, _utils.shallowEqual)(d, nodeData[valueKey]);\n })) {\n return;\n }\n\n if (dragNode && (0, _utils.shallowEqual)(nodeData[valueKey], dragOverNodeKey)) {\n var lastDropNodePosition = (0, _treeUtils.calDropNodePosition)(event, treeNodesRefs[nodeData.refKey]);\n if (lastDropNodePosition === dropNodePosition) return;\n setDropNodePosition(lastDropNodePosition);\n }\n\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);\n }, [dragNode, dragNodeKeys, dragOverNodeKey, dropNodePosition, onDragOver, setDropNodePosition, treeNodesRefs, valueKey]);\n var handleDragLeave = (0, _react.useCallback)(function (nodeData, event) {\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);\n }, [onDragLeave]);\n var handleDragEnd = (0, _react.useCallback)(function (nodeData, event) {\n setDragNode(null);\n setDragNodeKeys([]);\n setDragOverNodeKey(null);\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);\n }, [setDragNode, setDragNodeKeys, setDragOverNodeKey, onDragEnd]);\n var handleDrop = (0, _react.useCallback)(function (nodeData, event) {\n if (dragNodeKeys.some(function (d) {\n return (0, _utils.shallowEqual)(d, nodeData[valueKey]);\n })) {\n console.error('Cannot drag a node to itself and its children');\n } else {\n var dropData = getDropData(nodeData);\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropData, event);\n }\n\n setDragNode(null);\n setDragNodeKeys([]);\n setDragOverNodeKey(null);\n }, [dragNodeKeys, setDragNode, setDragOverNodeKey, setDragNodeKeys, onDrop, getDropData, valueKey]);\n var handleOpen = (0, _react.useCallback)(function () {\n var _triggerRef$current2, _triggerRef$current2$;\n\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.open) === null || _triggerRef$current2$ === void 0 ? void 0 : _triggerRef$current2$.call(_triggerRef$current2);\n focusActiveNode();\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [focusActiveNode, onOpen]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current3, _triggerRef$current3$, _targetRef$current2;\n\n (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.close) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);\n setSearchKeyword('');\n setActive(false);\n setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);\n /**\n * when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu\n */\n\n (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.focus();\n }, [activeNode, setSearchKeyword, valueKey]);\n (0, _Picker.usePublicMethods)(ref, {\n rootRef: inline ? treeViewRef : undefined,\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef,\n listRef: listRef,\n inline: inline\n });\n var handleFocusItem = (0, _react.useCallback)(function (key) {\n var focusableItems = (0, _treeUtils.getFocusableItems)(filteredData, {\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n childrenKey: childrenKey,\n expandItemValues: expandItemValues\n }, (0, _treeUtils.isSearching)(searchKeywordState));\n var selector = \".\" + treePrefix('node-label');\n var focusProps = {\n focusItemValue: focusItemValue,\n focusableItems: focusableItems,\n treeNodesRefs: treeNodesRefs,\n selector: selector,\n valueKey: valueKey,\n callback: function callback(nextFocusItemValue) {\n setFocusItemValue(nextFocusItemValue);\n }\n };\n\n if (key === _utils.KEY_VALUES.DOWN) {\n (0, _treeUtils.focusNextItem)(focusProps);\n return;\n }\n\n if (key === _utils.KEY_VALUES.UP) {\n (0, _treeUtils.focusPreviousItem)(focusProps);\n }\n }, [searchKeywordState, expandItemValues, filteredData, focusItemValue, treeNodesRefs, treePrefix, valueKey, childrenKey, disabledItemValues]);\n var handleLeftArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.leftArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n onExpand: handleExpand,\n childrenKey: childrenKey,\n onFocusItem: function onFocusItem() {\n var _focusItem$parent, _focusItem$parent2;\n\n setFocusItemValue(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent = focusItem.parent) === null || _focusItem$parent === void 0 ? void 0 : _focusItem$parent[valueKey]);\n (0, _treeUtils.focusTreeNode)(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, \".\" + treePrefix('node-label'));\n }\n });\n }, [expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, treePrefix, valueKey, childrenKey]);\n var handleRightArrow = (0, _react.useCallback)(function () {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n (0, _treeUtils.rightArrowHandler)({\n focusItem: focusItem,\n expand: expandItemValues.includes(focusItem === null || focusItem === void 0 ? void 0 : focusItem[valueKey]),\n childrenKey: childrenKey,\n onExpand: handleExpand,\n onFocusItem: function onFocusItem() {\n handleFocusItem(_utils.KEY_VALUES.DOWN);\n }\n });\n }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);\n var selectActiveItem = (0, _react.useCallback)(function (event) {\n if ((0, _isNil2.default)(focusItemValue)) return;\n var activeItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);\n handleSelect(activeItem, event);\n }, [flattenNodes, valueKey, focusItemValue, handleSelect]);\n var handleClean = (0, _react.useCallback)(function (event) {\n var nullValue = null;\n var target = event.target; // exclude searchBar\n\n if (target.matches('div[role=\"searchbox\"] > input')) {\n return;\n }\n\n setValue(null);\n onChange === null || onChange === void 0 ? void 0 : onChange(nullValue, event);\n }, [onChange, setValue]);\n var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({\n toggle: !activeNode || !active,\n triggerRef: triggerRef,\n targetRef: targetRef,\n overlayRef: overlayRef,\n searchInputRef: searchInputRef,\n active: active,\n onExit: handleClean,\n onClose: handleClose,\n onMenuKeyDown: function onMenuKeyDown(event) {\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem,\n del: handleClean\n });\n }\n }, rest));\n var handleTreeKeyDown = (0, _react.useCallback)(function (event) {\n if (!treeViewRef.current) {\n return;\n }\n\n (0, _Picker.onMenuKeyDown)(event, {\n down: function down() {\n return handleFocusItem(_utils.KEY_VALUES.DOWN);\n },\n up: function up() {\n return handleFocusItem(_utils.KEY_VALUES.UP);\n },\n left: rtl ? handleRightArrow : handleLeftArrow,\n right: rtl ? handleLeftArrow : handleRightArrow,\n enter: selectActiveItem\n });\n }, [handleFocusItem, handleLeftArrow, handleRightArrow, rtl, selectActiveItem]);\n\n var renderNode = function renderNode(node, index, layer) {\n if (!node.visible) {\n return null;\n }\n\n var children = node[childrenKey];\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n var visibleChildren = (0, _isUndefined2.default)(searchKeywordState) || searchKeywordState.length === 0 ? !!children : (0, _treeUtils.hasVisibleChildren)(node, childrenKey);\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n expand: expand\n }), layer, index), {\n hasChildren: visibleChildren\n });\n\n if (nodeProps.hasChildren) {\n var _merge;\n\n layer += 1;\n var openClass = treePrefix('open');\n var childrenClass = merge(treePrefix('node-children'), (_merge = {}, _merge[openClass] = expand && visibleChildren, _merge));\n var nodes = children || [];\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: childrenClass,\n key: node[valueKey],\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 714,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_TreeNode.default, (0, _extends2.default)({}, nodeProps, {\n ref: function ref(_ref) {\n return saveTreeNodeRef(_ref, node.refKey);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 715,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('children'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 716,\n columnNumber: 11\n }\n }, nodes.map(function (child, i) {\n return renderNode(child, i, layer);\n }), showIndentLine && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: treePrefix('indent-line'),\n style: (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1, true),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 719,\n columnNumber: 15\n }\n })));\n }\n\n return /*#__PURE__*/_react.default.createElement(_TreeNode.default, (0, _extends2.default)({\n ref: function ref(_ref2) {\n return saveTreeNodeRef(_ref2, node.refKey);\n },\n key: node[valueKey]\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 729,\n columnNumber: 7\n }\n }));\n };\n\n var renderVirtualListNode = function renderVirtualListNode(nodes) {\n return function (_ref3) {\n var key = _ref3.key,\n index = _ref3.index,\n style = _ref3.style;\n var node = nodes[index];\n var layer = node.layer,\n visible = node.visible;\n var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));\n\n if (!node.visible) {\n return null;\n }\n\n var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {\n expand: expand\n }), layer), {\n style: style,\n hasChildren: node.hasChildren\n });\n return visible && /*#__PURE__*/_react.default.createElement(_TreeNode.default, (0, _extends2.default)({\n ref: function ref(_ref4) {\n return saveTreeNodeRef(_ref4, node.refKey);\n },\n key: key\n }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 759,\n columnNumber: 11\n }\n }));\n };\n };\n\n var renderTree = function renderTree() {\n var _withTreeClassPrefix;\n\n var classes = withTreeClassPrefix((_withTreeClassPrefix = {}, _withTreeClassPrefix[className !== null && className !== void 0 ? className : ''] = inline, _withTreeClassPrefix.virtualized = virtualized, _withTreeClassPrefix));\n var formattedNodes = getFormattedNodes(renderNode);\n var styles = inline ? (0, _extends2.default)({\n height: height\n }, style) : {};\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n role: \"tree\",\n id: id ? id + \"-listbox\" : undefined,\n ref: treeViewRef,\n className: classes,\n style: styles,\n onKeyDown: inline ? handleTreeKeyDown : undefined,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 773,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('nodes'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 781,\n columnNumber: 9\n }\n }, virtualized ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.AutoSizer, {\n defaultHeight: inline ? height : maxTreeHeight,\n style: {\n width: 'auto',\n height: 'auto'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 783,\n columnNumber: 13\n }\n }, function (_ref5) {\n var height = _ref5.height,\n width = _ref5.width;\n return /*#__PURE__*/_react.default.createElement(_VirtualizedList.List, (0, _extends2.default)({\n ref: listRef,\n width: width,\n height: height,\n rowHeight: 36,\n rowCount: formattedNodes.length,\n rowRenderer: renderVirtualListNode(formattedNodes),\n scrollToAlignment: \"center\"\n }, listProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 788,\n columnNumber: 17\n }\n }));\n }) : formattedNodes));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var left = positionProps.left,\n top = positionProps.top,\n className = positionProps.className;\n var classes = merge(className, menuClassName, prefix('tree-menu'));\n var mergedMenuStyle = (0, _extends2.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var styles = virtualized ? (0, _extends2.default)({\n height: height\n }, mergedMenuStyle) : (0, _extends2.default)({}, mergedMenuStyle);\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n autoWidth: menuAutoWidth,\n className: classes,\n style: styles,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n onKeyDown: onPickerKeydown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 815,\n columnNumber: 7\n }\n }, searchable ? /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {\n placeholder: locale.searchPlaceholder,\n onChange: handleSearch,\n value: searchKeywordState,\n inputRef: searchInputRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 824,\n columnNumber: 11\n }\n }) : null, renderMenu ? renderMenu(renderTree()) : renderTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\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\n\n var hasValidValue = !(0, _isNil2.default)(activeNode) || !(0, _isNil2.default)(value) && (0, _isFunction2.default)(renderValue);\n var selectedElement = placeholder;\n\n if (hasValidValue) {\n var node = activeNode !== null && activeNode !== void 0 ? activeNode : {};\n selectedElement = node[labelKey];\n\n if ((0, _isFunction2.default)(renderValue) && value) {\n selectedElement = renderValue(value, node, selectedElement);\n\n if ((0, _isNil2.default)(selectedElement)) {\n hasValidValue = false;\n }\n }\n }\n\n var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {\n classPrefix: classPrefix,\n appearance: appearance,\n hasValue: hasValidValue,\n name: 'tree',\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n if (inline) {\n return renderTree();\n }\n\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {\n pickerProps: (0, _pick2.default)(props, _Picker.pickTriggerPropKeys),\n ref: triggerRef,\n placement: placement,\n onEnter: handleOpen,\n onEntered: onEntered,\n onExit: (0, _utils.createChainedFunction)(onClose, onExit),\n onExited: (0, _utils.createChainedFunction)(handleClose, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 869,\n columnNumber: 5\n }\n }, /*#__PURE__*/_react.default.createElement(Component, {\n className: classes,\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 879,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit2.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, ['cascade'])), {\n id: id,\n ref: targetRef,\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 __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 880,\n columnNumber: 9\n }\n }), selectedElement || locale.placeholder)));\n});\n\nTreePicker.displayName = 'TreePicker';\nTreePicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n height: _propTypes.default.number,\n draggable: _propTypes.default.bool,\n virtualized: _propTypes.default.bool,\n searchable: _propTypes.default.bool,\n menuAutoWidth: _propTypes.default.bool,\n searchKeyword: _propTypes.default.string,\n defaultExpandAll: _propTypes.default.bool,\n expandItemValues: _propTypes.default.array,\n defaultExpandItemValues: _propTypes.default.array,\n onSearch: _propTypes.default.func,\n onExpand: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n renderTreeNode: _propTypes.default.func,\n renderTreeIcon: _propTypes.default.func,\n renderExtraFooter: _propTypes.default.func,\n renderDragNode: _propTypes.default.func,\n searchBy: _propTypes.default.func\n});\nvar _default = TreePicker;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/TreePicker/TreePicker.tsx?");
5008
5008
 
5009
5009
  /***/ }),
5010
5010
 
@@ -5195,6 +5195,17 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
5195
5195
 
5196
5196
  /***/ }),
5197
5197
 
5198
+ /***/ "./src/utils/attachParent.ts":
5199
+ /*!***********************************!*\
5200
+ !*** ./src/utils/attachParent.ts ***!
5201
+ \***********************************/
5202
+ /***/ (function(__unused_webpack_module, exports) {
5203
+
5204
+ "use strict";
5205
+ eval("\n\nexports.__esModule = true;\nexports.attachParent = attachParent;\n\nfunction attachParent(data, parent) {\n // mark \"parent\" unenumable\n Object.defineProperty(data, 'parent', {\n value: parent,\n writable: false,\n enumerable: false,\n configurable: true\n });\n return data;\n}\n\n//# sourceURL=webpack://rsuite/./src/utils/attachParent.ts?");
5206
+
5207
+ /***/ }),
5208
+
5198
5209
  /***/ "./src/utils/clone.ts":
5199
5210
  /*!****************************!*\
5200
5211
  !*** ./src/utils/clone.ts ***!
@@ -5521,7 +5532,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
5521
5532
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5522
5533
 
5523
5534
  "use strict";
5524
- eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.shouldShowNodeByParentExpanded = shouldShowNodeByParentExpanded;\nexports.flattenTree = flattenTree;\nexports.getNodeParents = getNodeParents;\nexports.getNodeParentKeys = getNodeParentKeys;\nexports.hasVisibleChildren = hasVisibleChildren;\nexports.compareArray = compareArray;\nexports.getDefaultExpandItemValues = getDefaultExpandItemValues;\nexports.getExpandItemValues = getExpandItemValues;\nexports.getDragNodeKeys = getDragNodeKeys;\nexports.calDropNodePosition = calDropNodePosition;\nexports.removeDragNode = removeDragNode;\nexports.createUpdateTreeDataFunction = createUpdateTreeDataFunction;\nexports.findNodeOfTree = findNodeOfTree;\nexports.filterNodesOfTree = filterNodesOfTree;\nexports.leftArrowHandler = leftArrowHandler;\nexports.rightArrowHandler = rightArrowHandler;\nexports.getExpandWhenSearching = getExpandWhenSearching;\nexports.getTreeActiveNode = getTreeActiveNode;\nexports.toggleExpand = toggleExpand;\nexports.getTreeNodeTitle = getTreeNodeTitle;\nexports.getChildrenByFlattenNodes = getChildrenByFlattenNodes;\nexports.useTreeDrag = useTreeDrag;\nexports.useFlattenTreeData = useFlattenTreeData;\nexports.useTreeNodeRefs = useTreeNodeRefs;\nexports.useTreeSearch = useTreeSearch;\nexports.useGetTreeNodeChildren = useGetTreeNodeChildren;\nexports.focusToActiveTreeNode = focusToActiveTreeNode;\nexports.isSearching = isSearching;\nexports.getTreeNodeIndent = getTreeNodeIndent;\nexports.getScrollToIndex = exports.focusPreviousItem = exports.focusNextItem = exports.focusTreeNode = exports.getElementByDataKey = exports.getActiveItem = exports.getActiveIndex = exports.getFocusableItems = void 0;\n\nvar _extends3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _isEmpty2 = _interopRequireDefault(__webpack_require__(/*! lodash/isEmpty */ \"./node_modules/lodash/isEmpty.js\"));\n\nvar _clone2 = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isArray2 = _interopRequireDefault(__webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"));\n\nvar _omit2 = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _intersection2 = _interopRequireDefault(__webpack_require__(/*! lodash/intersection */ \"./node_modules/lodash/intersection.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _shallowEqualArray = _interopRequireDefault(__webpack_require__(/*! ../utils/shallowEqualArray */ \"./src/utils/shallowEqualArray.ts\"));\n\nvar _utils = __webpack_require__(/*! ../CheckTreePicker/utils */ \"./src/CheckTreePicker/utils.ts\");\n\nvar _utils2 = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _reactToString = _interopRequireDefault(__webpack_require__(/*! ./reactToString */ \"./src/utils/reactToString.ts\"));\n\nvar _constants = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\n\n// gap of tree node\nvar TREE_NODE_GAP = 4;\n/**\n * according node parentNode expand state decide node whether to show\n * @param {*} expandItemValues\n * @param {*} parentKeys\n */\n\nfunction shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {\n if (expandItemValues === void 0) {\n expandItemValues = [];\n }\n\n if (parentKeys === void 0) {\n parentKeys = [];\n }\n\n var intersectionKeys = (0, _intersection2.default)(expandItemValues, parentKeys);\n\n if (intersectionKeys.length === parentKeys.length) {\n return true;\n }\n\n return false;\n}\n/**\n * flatten tree structure to array\n * @param {*} tree\n * @param {*} childrenKey\n * @param {*} executor\n */\n\n\nfunction flattenTree(tree, childrenKey, executor) {\n if (childrenKey === void 0) {\n childrenKey = 'children';\n }\n\n var flattenData = [];\n\n var traverse = function traverse(data, parent) {\n if (!(0, _isArray2.default)(data)) {\n return;\n }\n\n data.forEach(function (item, index) {\n var node = typeof executor === 'function' ? executor(item, index) : item;\n node.parent = parent;\n flattenData.push((0, _extends3.default)({}, node));\n\n if (item[childrenKey]) {\n traverse(item[childrenKey], item);\n }\n });\n };\n\n traverse(tree, null);\n return flattenData;\n}\n/**\n * get all ancestor nodes of given node\n * @param {*} node\n */\n\n\nfunction getNodeParents(node, parentKey, valueKey) {\n if (parentKey === void 0) {\n parentKey = 'parent';\n }\n\n var parents = [];\n\n var traverse = function traverse(node) {\n if (node !== null && node !== void 0 && node[parentKey]) {\n traverse(node[parentKey]);\n\n if (valueKey) {\n parents.push(node[parentKey][valueKey]);\n } else {\n parents.push(node[parentKey]);\n }\n }\n };\n\n traverse(node);\n return parents;\n}\n/**\n * get all parentKeys of given node\n * @param nodes\n * @param node\n * @param valueKey\n */\n\n\nfunction getNodeParentKeys(nodes, node, valueKey) {\n var parentKeys = [];\n\n var traverse = function traverse(node) {\n var _node$parent;\n\n if (node !== null && node !== void 0 && (_node$parent = node.parent) !== null && _node$parent !== void 0 && _node$parent.refKey) {\n var _node$parent2;\n\n traverse(nodes[node.parent.refKey]);\n parentKeys.push(node === null || node === void 0 ? void 0 : (_node$parent2 = node.parent) === null || _node$parent2 === void 0 ? void 0 : _node$parent2[valueKey]);\n }\n };\n\n traverse(node);\n return parentKeys;\n}\n\nfunction hasVisibleChildren(node, childrenKey) {\n if (!Array.isArray(node[childrenKey])) {\n return false;\n }\n\n return node[childrenKey].some(function (child) {\n return child.visible;\n });\n}\n/**\n * shallow equal array\n * @param a\n * @param b\n */\n\n\nfunction compareArray(a, b) {\n return (0, _isArray2.default)(a) && (0, _isArray2.default)(b) && !(0, _shallowEqualArray.default)(a, b);\n}\n\nfunction getDefaultExpandItemValues(data, props) {\n var valueKey = props.valueKey,\n defaultExpandAll = props.defaultExpandAll,\n childrenKey = props.childrenKey,\n _props$defaultExpandI = props.defaultExpandItemValues,\n defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI;\n\n if (defaultExpandAll) {\n return flattenTree(data, childrenKey).filter(function (item) {\n return Array.isArray(item[childrenKey]) && item[childrenKey].length > 0;\n }).map(function (item) {\n return item[valueKey];\n });\n }\n\n return defaultExpandItemValues;\n}\n/**\n * 获取 expandItemValues 的 value\n * @param props\n */\n\n\nfunction getExpandItemValues(props) {\n var expandItemValues = props.expandItemValues,\n defaultExpandItemValues = props.defaultExpandItemValues;\n\n if (!(0, _isUndefined2.default)(expandItemValues) && Array.isArray(expandItemValues)) {\n return expandItemValues;\n }\n\n if (!(0, _isUndefined2.default)(defaultExpandItemValues) && Array.isArray(defaultExpandItemValues)) {\n return defaultExpandItemValues;\n }\n\n return [];\n}\n/**\n * get dragNode and it's children node keys\n * @param node\n * @param childrenKey\n * @param valueKey\n */\n\n\nfunction getDragNodeKeys(dragNode, childrenKey, valueKey) {\n var dragNodeKeys = [dragNode[valueKey]];\n\n var traverse = function traverse(data) {\n if ((data === null || data === void 0 ? void 0 : data.length) > 0) {\n data.forEach(function (node) {\n dragNodeKeys = dragNodeKeys.concat([node[valueKey]]);\n\n if (node[childrenKey]) {\n traverse(node[childrenKey]);\n }\n });\n }\n };\n\n traverse(dragNode[childrenKey]);\n return dragNodeKeys;\n}\n\nfunction calDropNodePosition(event, treeNodeElement) {\n var clientY = event.clientY;\n\n var _treeNodeElement$getB = treeNodeElement.getBoundingClientRect(),\n top = _treeNodeElement$getB.top,\n bottom = _treeNodeElement$getB.bottom;\n\n var gap = TREE_NODE_GAP; // bottom of node\n\n if (clientY >= bottom - gap && clientY <= bottom) {\n return _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM;\n } // top of node\n\n\n if (clientY <= top + gap && clientY >= top) {\n return _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_TOP;\n }\n\n if (clientY >= top + gap && clientY <= bottom - gap) {\n return _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER;\n }\n\n return -1;\n}\n\nfunction removeDragNode(data, params, _ref) {\n var valueKey = _ref.valueKey,\n childrenKey = _ref.childrenKey;\n var dragNode = params.dragNode;\n\n var traverse = function traverse(items, parent) {\n for (var _index = 0; _index < items.length; _index += 1) {\n var _item = items[_index];\n\n if ((0, _utils2.shallowEqual)(_item[valueKey], dragNode[valueKey])) {\n items.splice(_index, 1); // when children is empty, delete children prop for hidden anchor\n\n if (items.length === 0 && parent) {\n delete parent.children;\n }\n\n break;\n }\n\n if (Array.isArray(_item[childrenKey])) {\n traverse(_item[childrenKey], _item);\n }\n }\n };\n\n traverse(data);\n}\n\nfunction createUpdateTreeDataFunction(params, _ref2) {\n var valueKey = _ref2.valueKey,\n childrenKey = _ref2.childrenKey;\n return function (tree) {\n var data = [].concat(tree);\n var dragNode = params.dragNode,\n dropNode = params.dropNode,\n dropNodePosition = params.dropNodePosition;\n var cloneDragNode = (0, _extends3.default)({}, dragNode);\n removeDragNode(data, params, {\n valueKey: valueKey,\n childrenKey: childrenKey\n });\n\n var updateTree = function updateTree(items) {\n for (var _index2 = 0; _index2 < items.length; _index2 += 1) {\n var _item2 = items[_index2];\n\n if ((0, _utils2.shallowEqual)(_item2[valueKey], dropNode[valueKey])) {\n // drag to node inside\n if (dropNodePosition === _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER) {\n _item2[childrenKey] = (0, _isNil2.default)(_item2[childrenKey]) ? [] : _item2[childrenKey];\n\n _item2[childrenKey].push(cloneDragNode);\n\n break;\n } else if (dropNodePosition === _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_TOP) {\n // drag to top of node\n items.splice(_index2, 0, cloneDragNode);\n break;\n } else if (dropNodePosition === _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM) {\n // drag to bottom of node\n items.splice(_index2 + 1, 0, cloneDragNode);\n break;\n }\n }\n\n if (Array.isArray(_item2[childrenKey]) && _item2[childrenKey].length > 0) {\n updateTree(_item2[childrenKey]);\n }\n }\n };\n\n updateTree(data);\n return [].concat(data);\n };\n}\n\nfunction findNodeOfTree(data, check) {\n var findNode = function findNode(nodes) {\n if (nodes === void 0) {\n nodes = [];\n }\n\n for (var i = 0; i < nodes.length; i += 1) {\n var _item3 = nodes[i];\n\n if ((0, _isArray2.default)(_item3.children)) {\n var _node = findNode(_item3.children);\n\n if (_node) {\n return _node;\n }\n }\n\n if (check(_item3)) {\n return _item3;\n }\n }\n\n return undefined;\n };\n\n return findNode(data);\n}\n\nfunction filterNodesOfTree(data, check) {\n var findNodes = function findNodes(nodes) {\n if (nodes === void 0) {\n nodes = [];\n }\n\n var nextNodes = [];\n\n for (var i = 0; i < nodes.length; i += 1) {\n if ((0, _isArray2.default)(nodes[i].children)) {\n var nextChildren = findNodes(nodes[i].children);\n\n if (nextChildren.length) {\n var _item4 = (0, _clone2.default)(nodes[i]);\n\n _item4.children = nextChildren;\n nextNodes.push(_item4);\n continue;\n }\n }\n\n if (check(nodes[i])) {\n nextNodes.push(nodes[i]);\n }\n }\n\n return nextNodes;\n };\n\n return findNodes(data);\n}\n/**\n * get all focusable items\n * exclude not visible and disabled node\n * @param filteredData - filtered tree data\n * @param props - TreeProps\n * @param isSearching - component is in Searching\n * @returns\n */\n\n\nvar getFocusableItems = function getFocusableItems(filteredData, props, isSearching) {\n var disabledItemValues = props.disabledItemValues,\n valueKey = props.valueKey,\n childrenKey = props.childrenKey,\n expandItemValues = props.expandItemValues;\n var items = [];\n\n var loop = function loop(nodes) {\n nodes.forEach(function (node) {\n var disabled = disabledItemValues.some(function (disabledItem) {\n return (0, _utils2.shallowEqual)(disabledItem, node[valueKey]);\n });\n\n if (!disabled && node.visible) {\n items.push(node);\n } // always expand when searching\n\n\n var expand = isSearching ? true : expandItemValues.includes(node[valueKey]);\n\n if (node[childrenKey] && expand) {\n loop(node[childrenKey]);\n }\n });\n };\n\n loop(filteredData);\n return items;\n};\n/**\n * return all focusable Item and active Element index\n * @param focusItemValue\n * @param focusableItems items\n */\n\n\nexports.getFocusableItems = getFocusableItems;\n\nvar getActiveIndex = function getActiveIndex(focusItemValue, focusItems, valueKey) {\n var activeIndex = -1;\n focusItems.forEach(function (item, index) {\n if ((0, _utils2.shallowEqual)(item[valueKey], focusItemValue)) {\n activeIndex = index;\n }\n });\n return activeIndex;\n};\n/**\n * get current active element and node data\n * @param flattenNodes - flattenData\n */\n\n\nexports.getActiveIndex = getActiveIndex;\n\nvar getActiveItem = function getActiveItem(focusItemValue, flattenNodes, valueKey) {\n var nodeData = null;\n var activeNode = Object.values(flattenNodes).find(function (node) {\n return (0, _utils2.shallowEqual)(node[valueKey], focusItemValue);\n });\n\n if (activeNode) {\n nodeData = activeNode;\n }\n\n return nodeData;\n};\n\nexports.getActiveItem = getActiveItem;\n\nvar getElementByDataKey = function getElementByDataKey(dataKey, treeNodesRefs, selector) {\n var ele = treeNodesRefs[dataKey];\n\n if (ele instanceof Element) {\n return ele.querySelector(selector);\n }\n\n return null;\n};\n/**\n * focus to specify tree node\n * @param refKey - target node refKey\n * @param treeNodeRefs - all tree node refs object\n * @param selector - node css selector\n */\n\n\nexports.getElementByDataKey = getElementByDataKey;\n\nvar focusTreeNode = function focusTreeNode(refKey, treeNodeRefs, selector) {\n var _node$focus;\n\n var node = getElementByDataKey(refKey, treeNodeRefs, selector);\n node === null || node === void 0 ? void 0 : (_node$focus = node.focus) === null || _node$focus === void 0 ? void 0 : _node$focus.call(node);\n};\n\nexports.focusTreeNode = focusTreeNode;\n\n/**\n * focus next item with keyboard\n * @param param\n */\nvar focusNextItem = function focusNextItem(_ref3) {\n var focusItemValue = _ref3.focusItemValue,\n focusableItems = _ref3.focusableItems,\n treeNodesRefs = _ref3.treeNodesRefs,\n selector = _ref3.selector,\n valueKey = _ref3.valueKey,\n callback = _ref3.callback;\n var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);\n\n if (focusableItems.length === 0) {\n return;\n }\n\n var nextIndex = activeIndex === focusableItems.length - 1 ? 0 : activeIndex + 1;\n var nextFocusItemValue = focusableItems[nextIndex][valueKey];\n callback === null || callback === void 0 ? void 0 : callback(nextFocusItemValue);\n focusTreeNode(focusableItems[nextIndex].refKey, treeNodesRefs, selector);\n};\n/**\n * focus prev item with keyboard\n * @param param\n */\n\n\nexports.focusNextItem = focusNextItem;\n\nvar focusPreviousItem = function focusPreviousItem(_ref4) {\n var focusItemValue = _ref4.focusItemValue,\n focusableItems = _ref4.focusableItems,\n treeNodesRefs = _ref4.treeNodesRefs,\n selector = _ref4.selector,\n valueKey = _ref4.valueKey,\n callback = _ref4.callback;\n var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);\n\n if (focusableItems.length === 0) {\n return;\n }\n\n var prevIndex = activeIndex === 0 ? focusableItems.length - 1 : activeIndex - 1;\n prevIndex = prevIndex >= 0 ? prevIndex : 0;\n var prevFocusItemValue = focusableItems[prevIndex][valueKey];\n callback === null || callback === void 0 ? void 0 : callback(prevFocusItemValue);\n focusTreeNode(focusableItems[prevIndex].refKey, treeNodesRefs, selector);\n};\n\nexports.focusPreviousItem = focusPreviousItem;\n\n/**\n * Left arrow keyboard event handler\n * When focus is on an open node, closes the node.\n * When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n * When focus is on a root node that is also either an end node or a closed node, does nothing.\n * @see https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\nfunction leftArrowHandler(_ref5) {\n var focusItem = _ref5.focusItem,\n expand = _ref5.expand,\n onExpand = _ref5.onExpand,\n onFocusItem = _ref5.onFocusItem;\n\n if ((0, _isEmpty2.default)(focusItem)) {\n return;\n }\n\n if (expand) {\n onExpand((0, _extends3.default)({}, focusItem, {\n expand: expand\n }));\n } else if (focusItem !== null && focusItem !== void 0 && focusItem.parent) {\n onFocusItem();\n }\n}\n/**\n * Right arrow keyboard event handler\n * When focus is on a closed node, opens the node; focus does not move.\n * When focus is on a open node, moves focus to the first child node.\n * When focus is on an end node, does nothing.\n * @see https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n\n\nfunction rightArrowHandler(_ref6) {\n var focusItem = _ref6.focusItem,\n expand = _ref6.expand,\n childrenKey = _ref6.childrenKey,\n onExpand = _ref6.onExpand,\n onFocusItem = _ref6.onFocusItem;\n\n if ((0, _isEmpty2.default)(focusItem) || !Array.isArray(focusItem[childrenKey])) {\n return;\n }\n\n if (!expand) {\n onExpand((0, _extends3.default)({}, focusItem, {\n expand: expand\n }));\n } else {\n onFocusItem();\n }\n}\n/**\n * get scrollIndex in virtualized list\n * @param nodes - data\n * @param value - activeItem value\n * @param valueKey\n */\n\n\nvar getScrollToIndex = function getScrollToIndex(nodes, value, valueKey) {\n return nodes.filter(function (n) {\n return n.visible;\n }).findIndex(function (item) {\n return item[valueKey] === value;\n });\n};\n/**\n * when searching, expand state always return true\n * @param searchKeyword\n * @param expand\n */\n\n\nexports.getScrollToIndex = getScrollToIndex;\n\nfunction getExpandWhenSearching(searchKeyword, expand) {\n return isSearching(searchKeyword) ? true : expand;\n}\n\nfunction getTreeActiveNode(nodes, value, valueKey) {\n if ((0, _isUndefined2.default)(value)) {\n return undefined;\n }\n\n for (var refKey in nodes) {\n if ((0, _utils2.shallowEqual)(nodes[refKey][valueKey], value)) {\n return nodes[refKey];\n }\n }\n}\n\n/**\n * toggle tree node\n * @param param0\n */\nfunction toggleExpand(_ref7) {\n var node = _ref7.node,\n isExpand = _ref7.isExpand,\n expandItemValues = _ref7.expandItemValues,\n valueKey = _ref7.valueKey;\n var newExpandItemValues = new Set(expandItemValues);\n\n if (isExpand) {\n newExpandItemValues.add(node[valueKey]);\n } else {\n newExpandItemValues.delete(node[valueKey]);\n }\n\n return Array.from(newExpandItemValues);\n}\n\nfunction getTreeNodeTitle(label) {\n if (typeof label === 'string') {\n return label;\n } else if ( /*#__PURE__*/_react.default.isValidElement(label)) {\n var _nodes = (0, _reactToString.default)(label);\n\n return _nodes.join('');\n }\n}\n/**\n * get all children from flattenNodes object by given parent node\n * @param nodes\n * @param parent\n */\n\n\nfunction getChildrenByFlattenNodes(nodes, parent) {\n if (!(0, _isNil2.default)(parent.refKey) && (0, _isNil2.default)(nodes[parent.refKey])) {\n return [];\n }\n\n return Object.values(nodes).filter(function (item) {\n var _item$parent;\n\n return (item === null || item === void 0 ? void 0 : (_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent.refKey) === parent.refKey && item.refKey && !nodes[item.refKey].uncheckable;\n });\n}\n\nfunction useTreeDrag() {\n // current dragging node\n var dragNode = (0, _react.useRef)(null);\n\n var _useState = (0, _react.useState)(null),\n dragOverNodeKey = _useState[0],\n setDragOverNodeKey = _useState[1]; // drag node and it's children nodes key\n\n\n var _useState2 = (0, _react.useState)([]),\n dragNodeKeys = _useState2[0],\n setDragNodeKeys = _useState2[1];\n\n var _useState3 = (0, _react.useState)(null),\n dropNodePosition = _useState3[0],\n setDropNodePosition = _useState3[1];\n\n var setDragNode = function setDragNode(node) {\n dragNode.current = node;\n };\n\n return {\n dragNode: dragNode === null || dragNode === void 0 ? void 0 : dragNode.current,\n dragOverNodeKey: dragOverNodeKey,\n dragNodeKeys: dragNodeKeys,\n dropNodePosition: dropNodePosition,\n setDragNode: setDragNode,\n setDragOverNodeKey: setDragOverNodeKey,\n setDragNodeKeys: setDragNodeKeys,\n setDropNodePosition: setDropNodePosition\n };\n}\n\n/**\n * hooks for flatten tree structure\n * @param param0\n */\nfunction useFlattenTreeData(_ref8) {\n var data = _ref8.data,\n labelKey = _ref8.labelKey,\n valueKey = _ref8.valueKey,\n childrenKey = _ref8.childrenKey,\n _ref8$uncheckableItem = _ref8.uncheckableItemValues,\n uncheckableItemValues = _ref8$uncheckableItem === void 0 ? [] : _ref8$uncheckableItem,\n callback = _ref8.callback;\n\n var _useState4 = (0, _react.useState)(Object.create(null)),\n dispatch = _useState4[1];\n\n var forceUpdate = (0, _react.useCallback)(function () {\n dispatch(Object.create(null));\n }, [dispatch]);\n var flattenNodes = (0, _react.useRef)({});\n var flattenTreeData = (0, _react.useCallback)(function (treeData, ref, parent, layer) {\n if (layer === void 0) {\n layer = 1;\n }\n\n if (!Array.isArray(treeData) || treeData.length === 0) {\n return [];\n }\n\n treeData.map(function (node, index) {\n var _extends2;\n\n var refKey = ref + \"-\" + index;\n node.refKey = refKey;\n flattenNodes.current[refKey] = (0, _extends3.default)((_extends2 = {\n layer: layer\n }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {\n return (0, _utils2.shallowEqual)(node[valueKey], value);\n }), _extends2), node);\n\n if (parent) {\n flattenNodes.current[refKey].parent = (0, _omit2.default)(parent, 'parent', 'children');\n }\n\n flattenTreeData(node[childrenKey], refKey, node, layer + 1);\n });\n callback === null || callback === void 0 ? void 0 : callback(flattenNodes.current);\n }, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues]);\n var serializeListOnlyParent = (0, _react.useCallback)(function (nodes, key) {\n var list = [];\n Object.keys(nodes).forEach(function (refKey) {\n var currentNode = nodes[refKey];\n\n if (!(0, _isNil2.default)(currentNode.parent) && !(0, _isNil2.default)(currentNode.parent.refKey)) {\n var parentNode = nodes[currentNode.parent.refKey];\n\n if (currentNode[key]) {\n if (!(parentNode !== null && parentNode !== void 0 && parentNode.checkAll)) {\n list.push(nodes[refKey][valueKey]);\n } else if (parentNode !== null && parentNode !== void 0 && parentNode.uncheckable) {\n list.push(nodes[refKey][valueKey]);\n }\n }\n } else {\n if (currentNode[key]) {\n list.push(nodes[refKey][valueKey]);\n }\n }\n });\n return list;\n }, [valueKey]);\n /**\n * using in CheckTreePicker, to unSerializeList check property\n */\n\n var unSerializeList = (0, _react.useCallback)(function (_ref9) {\n var nodes = _ref9.nodes,\n key = _ref9.key,\n _ref9$value = _ref9.value,\n value = _ref9$value === void 0 ? [] : _ref9$value,\n cascade = _ref9.cascade,\n uncheckableItemValues = _ref9.uncheckableItemValues;\n // Reset values to false\n Object.keys(nodes).forEach(function (refKey) {\n var node = nodes[refKey];\n\n if (cascade && !(0, _isNil2.default)(node.parent) && !(0, _isNil2.default)(node.parent.refKey)) {\n node[key] = nodes[node.parent.refKey][key];\n } else {\n node[key] = false;\n }\n\n value.forEach(function (value) {\n if ((0, _utils2.shallowEqual)(nodes[refKey][valueKey], value) && !uncheckableItemValues.some(function (uncheckableValue) {\n return (0, _utils2.shallowEqual)(value, uncheckableValue);\n })) {\n nodes[refKey][key] = true;\n }\n });\n });\n }, [valueKey]);\n\n var formatVirtualizedTreeData = function formatVirtualizedTreeData(nodes, data, expandItemValues, options) {\n var cascade = options.cascade,\n searchKeyword = options.searchKeyword;\n return flattenTree(data, childrenKey, function (node) {\n var formatted = {};\n var curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];\n var parentKeys = getNodeParentKeys(nodes, curNode, valueKey);\n /**\n * When using virtualized,\n * if the parent node is collapsed, the child nodes should be hidden\n * avoid component height calculation errors\n */\n\n var visible = curNode !== null && curNode !== void 0 && curNode.parent ? shouldShowNodeByParentExpanded(expandItemValues, parentKeys) : true;\n /**\n * when searching, every node default expand\n * the node's visible should follow the original state\n */\n\n if (isSearching(searchKeyword)) {\n visible = node.visible;\n }\n\n if (curNode) {\n var checkState = !(0, _isUndefined2.default)(cascade) ? (0, _utils.getNodeCheckState)({\n node: curNode,\n cascade: cascade,\n nodes: nodes,\n childrenKey: childrenKey\n }) : undefined;\n formatted = (0, _extends3.default)({}, node, {\n check: curNode.check,\n uncheckable: curNode.uncheckable,\n hasChildren: !!node[childrenKey],\n layer: curNode.layer,\n parent: curNode.parent,\n checkState: checkState,\n visible: visible\n });\n }\n\n return formatted;\n });\n };\n\n (0, _react.useEffect)(function () {\n // when data is changed, should clear the flattenNodes, avoid duplicate keys\n flattenNodes.current = {};\n flattenTreeData(data, '0');\n }, [data]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n forceUpdate: forceUpdate,\n flattenNodes: flattenNodes.current,\n flattenTreeData: flattenTreeData,\n serializeListOnlyParent: serializeListOnlyParent,\n unSerializeList: unSerializeList,\n formatVirtualizedTreeData: formatVirtualizedTreeData\n };\n}\n/**\n * A hook that saving every tree node ref\n */\n\n\nfunction useTreeNodeRefs() {\n var treeNodeRefs = (0, _react.useRef)({});\n\n var saveTreeNodeRef = function saveTreeNodeRef(ref, refKey) {\n if (!(0, _isNil2.default)(refKey)) {\n treeNodeRefs.current[refKey] = ref;\n }\n };\n\n return {\n treeNodesRefs: treeNodeRefs.current,\n saveTreeNodeRef: saveTreeNodeRef\n };\n}\n\n/**\n * A hook that handles tree search filter options\n * @param props\n */\nfunction useTreeSearch(props) {\n var labelKey = props.labelKey,\n childrenKey = props.childrenKey,\n searchKeyword = props.searchKeyword,\n data = props.data,\n searchBy = props.searchBy,\n callback = props.callback;\n var filterVisibleData = (0, _react.useCallback)(function (data, searchKeyword) {\n var setVisible = function setVisible(nodes) {\n return nodes.forEach(function (item) {\n item.visible = searchBy ? searchBy(searchKeyword, item[labelKey], item) : (0, _Picker.shouldDisplay)(item[labelKey], searchKeyword);\n\n if ((0, _isArray2.default)(item[childrenKey])) {\n filterVisibleData(item[childrenKey], searchKeyword);\n item[childrenKey].forEach(function (child) {\n if (child.visible) {\n item.visible = child.visible;\n }\n });\n }\n });\n };\n\n setVisible(data);\n return data;\n }, [childrenKey, labelKey, searchBy]); // Use search keywords to filter options.\n\n var _useState5 = (0, _react.useState)(function () {\n return searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '';\n }),\n searchKeywordState = _useState5[0],\n setSearchKeyword = _useState5[1];\n\n var _useState6 = (0, _react.useState)(function () {\n return filterVisibleData(data, searchKeywordState);\n }),\n filteredData = _useState6[0],\n setFilteredData = _useState6[1];\n\n var handleSetFilteredData = (0, _react.useCallback)(function (data, searchKeyword) {\n setFilteredData(filterVisibleData(data, searchKeyword));\n }, [filterVisibleData]);\n\n var handleSearch = function handleSearch(searchKeyword, event) {\n var filteredData = filterVisibleData(data, searchKeyword);\n setFilteredData(filteredData);\n setSearchKeyword(searchKeyword);\n callback === null || callback === void 0 ? void 0 : callback(searchKeyword, filteredData, event);\n };\n\n return {\n searchKeywordState: searchKeywordState,\n filteredData: filteredData,\n setFilteredData: handleSetFilteredData,\n setSearchKeyword: setSearchKeyword,\n handleSearch: handleSearch\n };\n}\n\nfunction useGetTreeNodeChildren(treeData, valueKey, childrenKey) {\n var _useState7 = (0, _react.useState)([]),\n loadingNodeValues = _useState7[0],\n setLoadingNodeValues = _useState7[1];\n\n var _useState8 = (0, _react.useState)(treeData),\n data = _useState8[0],\n setData = _useState8[1];\n\n var concatChildren = (0, _react.useCallback)(function (treeNode, children) {\n var value = treeNode[valueKey];\n treeNode = findNodeOfTree(data, function (item) {\n return value === item[valueKey];\n });\n treeNode[childrenKey] = children;\n var newData = data.concat([]);\n setData(newData);\n return newData;\n }, [data, valueKey, childrenKey]);\n var loadChildren = (0, _react.useCallback)(function (node, getChildren) {\n setLoadingNodeValues(function (prev) {\n return prev.concat(node[valueKey]);\n });\n var children = getChildren(node);\n\n if (children instanceof Promise) {\n children.then(function (res) {\n var newData = concatChildren(node, res);\n setData(newData);\n setLoadingNodeValues(function (prev) {\n return prev.filter(function (item) {\n return !(0, _utils2.shallowEqual)(item, node[valueKey]);\n });\n });\n });\n } else {\n setData(concatChildren(node, children));\n setLoadingNodeValues(function (prev) {\n return prev.filter(function (item) {\n return !(0, _utils2.shallowEqual)(item, node[valueKey]);\n });\n });\n }\n }, [concatChildren, valueKey]);\n return {\n data: data,\n setData: setData,\n loadingNodeValues: loadingNodeValues,\n loadChildren: loadChildren\n };\n}\n\n/**\n * Focus to active tree node.\n * @param param0\n */\nfunction focusToActiveTreeNode(_ref10) {\n var _activeItem$focus;\n\n var list = _ref10.list,\n valueKey = _ref10.valueKey,\n activeNode = _ref10.activeNode,\n virtualized = _ref10.virtualized,\n container = _ref10.container,\n selector = _ref10.selector,\n formattedNodes = _ref10.formattedNodes;\n if (!container) return;\n\n if (virtualized && activeNode) {\n var _list$scrollToRow;\n\n var scrollIndex = getScrollToIndex(formattedNodes, activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey], valueKey);\n (_list$scrollToRow = list.scrollToRow) === null || _list$scrollToRow === void 0 ? void 0 : _list$scrollToRow.call(list, scrollIndex);\n return;\n }\n\n var activeItem = container.querySelector(selector);\n\n if (!activeItem) {\n return;\n }\n\n activeItem === null || activeItem === void 0 ? void 0 : (_activeItem$focus = activeItem.focus) === null || _activeItem$focus === void 0 ? void 0 : _activeItem$focus.call(activeItem);\n}\n\nfunction isSearching(searchKeyword) {\n return !(0, _isEmpty2.default)(searchKeyword);\n}\n\nfunction getTreeNodeIndent(rtl, layer, absolute) {\n var _ref12;\n\n if (absolute === void 0) {\n absolute = false;\n }\n\n // layer start from 1\n var offset = layer * _constants.TREE_NODE_PADDING + _constants.TREE_NODE_ROOT_PADDING;\n\n if (absolute) {\n var _ref11;\n\n return _ref11 = {}, _ref11[rtl ? 'right' : 'left'] = offset, _ref11;\n }\n\n return _ref12 = {}, _ref12[rtl ? 'paddingRight' : 'paddingLeft'] = offset, _ref12;\n}\n\n//# sourceURL=webpack://rsuite/./src/utils/treeUtils.ts?");
5535
+ eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.shouldShowNodeByParentExpanded = shouldShowNodeByParentExpanded;\nexports.flattenTree = flattenTree;\nexports.getNodeParents = getNodeParents;\nexports.getNodeParentKeys = getNodeParentKeys;\nexports.hasVisibleChildren = hasVisibleChildren;\nexports.compareArray = compareArray;\nexports.getDefaultExpandItemValues = getDefaultExpandItemValues;\nexports.getExpandItemValues = getExpandItemValues;\nexports.getDragNodeKeys = getDragNodeKeys;\nexports.calDropNodePosition = calDropNodePosition;\nexports.removeDragNode = removeDragNode;\nexports.createUpdateTreeDataFunction = createUpdateTreeDataFunction;\nexports.findNodeOfTree = findNodeOfTree;\nexports.filterNodesOfTree = filterNodesOfTree;\nexports.leftArrowHandler = leftArrowHandler;\nexports.rightArrowHandler = rightArrowHandler;\nexports.getExpandWhenSearching = getExpandWhenSearching;\nexports.getTreeActiveNode = getTreeActiveNode;\nexports.toggleExpand = toggleExpand;\nexports.getTreeNodeTitle = getTreeNodeTitle;\nexports.getChildrenByFlattenNodes = getChildrenByFlattenNodes;\nexports.useTreeDrag = useTreeDrag;\nexports.useFlattenTreeData = useFlattenTreeData;\nexports.useTreeNodeRefs = useTreeNodeRefs;\nexports.useTreeSearch = useTreeSearch;\nexports.useGetTreeNodeChildren = useGetTreeNodeChildren;\nexports.focusToActiveTreeNode = focusToActiveTreeNode;\nexports.isSearching = isSearching;\nexports.getTreeNodeIndent = getTreeNodeIndent;\nexports.getScrollToIndex = exports.focusPreviousItem = exports.focusNextItem = exports.focusTreeNode = exports.getElementByDataKey = exports.getActiveItem = exports.getActiveIndex = exports.getFocusableItems = void 0;\n\nvar _extends3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _isEmpty2 = _interopRequireDefault(__webpack_require__(/*! lodash/isEmpty */ \"./node_modules/lodash/isEmpty.js\"));\n\nvar _clone2 = _interopRequireDefault(__webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\"));\n\nvar _isNil2 = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _isArray2 = _interopRequireDefault(__webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"));\n\nvar _omit2 = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _isUndefined2 = _interopRequireDefault(__webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"));\n\nvar _intersection2 = _interopRequireDefault(__webpack_require__(/*! lodash/intersection */ \"./node_modules/lodash/intersection.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _shallowEqualArray = _interopRequireDefault(__webpack_require__(/*! ../utils/shallowEqualArray */ \"./src/utils/shallowEqualArray.ts\"));\n\nvar _utils = __webpack_require__(/*! ../CheckTreePicker/utils */ \"./src/CheckTreePicker/utils.ts\");\n\nvar _utils2 = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _Picker = __webpack_require__(/*! ../Picker */ \"./src/Picker/index.ts\");\n\nvar _reactToString = _interopRequireDefault(__webpack_require__(/*! ./reactToString */ \"./src/utils/reactToString.ts\"));\n\nvar _constants = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\n\nvar _attachParent = __webpack_require__(/*! ./attachParent */ \"./src/utils/attachParent.ts\");\n\n// gap of tree node\nvar TREE_NODE_GAP = 4;\n/**\n * according node parentNode expand state decide node whether to show\n * @param {*} expandItemValues\n * @param {*} parentKeys\n */\n\nfunction shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {\n if (expandItemValues === void 0) {\n expandItemValues = [];\n }\n\n if (parentKeys === void 0) {\n parentKeys = [];\n }\n\n var intersectionKeys = (0, _intersection2.default)(expandItemValues, parentKeys);\n\n if (intersectionKeys.length === parentKeys.length) {\n return true;\n }\n\n return false;\n}\n/**\n * flatten tree structure to array\n * @param {*} tree\n * @param {*} childrenKey\n * @param {*} executor\n */\n\n\nfunction flattenTree(tree, childrenKey, executor) {\n if (childrenKey === void 0) {\n childrenKey = 'children';\n }\n\n var flattenData = [];\n\n var traverse = function traverse(data, parent) {\n if (!(0, _isArray2.default)(data)) {\n return;\n }\n\n data.forEach(function (item, index) {\n var node = typeof executor === 'function' ? executor(item, index) : item;\n flattenData.push((0, _attachParent.attachParent)(node, parent));\n\n if (item[childrenKey]) {\n traverse(item[childrenKey], item);\n }\n });\n };\n\n traverse(tree, null);\n return flattenData;\n}\n/**\n * get all ancestor nodes of given node\n * @param {*} node\n */\n\n\nfunction getNodeParents(node, parentKey, valueKey) {\n if (parentKey === void 0) {\n parentKey = 'parent';\n }\n\n var parents = [];\n\n var traverse = function traverse(node) {\n if (node !== null && node !== void 0 && node[parentKey]) {\n traverse(node[parentKey]);\n\n if (valueKey) {\n parents.push(node[parentKey][valueKey]);\n } else {\n parents.push(node[parentKey]);\n }\n }\n };\n\n traverse(node);\n return parents;\n}\n/**\n * get all parentKeys of given node\n * @param nodes\n * @param node\n * @param valueKey\n */\n\n\nfunction getNodeParentKeys(nodes, node, valueKey) {\n var parentKeys = [];\n\n var traverse = function traverse(node) {\n var _node$parent;\n\n if (node !== null && node !== void 0 && (_node$parent = node.parent) !== null && _node$parent !== void 0 && _node$parent.refKey) {\n var _node$parent2;\n\n traverse(nodes[node.parent.refKey]);\n parentKeys.push(node === null || node === void 0 ? void 0 : (_node$parent2 = node.parent) === null || _node$parent2 === void 0 ? void 0 : _node$parent2[valueKey]);\n }\n };\n\n traverse(node);\n return parentKeys;\n}\n\nfunction hasVisibleChildren(node, childrenKey) {\n if (!Array.isArray(node[childrenKey])) {\n return false;\n }\n\n return node[childrenKey].some(function (child) {\n return child.visible;\n });\n}\n/**\n * shallow equal array\n * @param a\n * @param b\n */\n\n\nfunction compareArray(a, b) {\n return (0, _isArray2.default)(a) && (0, _isArray2.default)(b) && !(0, _shallowEqualArray.default)(a, b);\n}\n\nfunction getDefaultExpandItemValues(data, props) {\n var valueKey = props.valueKey,\n defaultExpandAll = props.defaultExpandAll,\n childrenKey = props.childrenKey,\n _props$defaultExpandI = props.defaultExpandItemValues,\n defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI;\n\n if (defaultExpandAll) {\n return flattenTree(data, childrenKey).filter(function (item) {\n return Array.isArray(item[childrenKey]) && item[childrenKey].length > 0;\n }).map(function (item) {\n return item[valueKey];\n });\n }\n\n return defaultExpandItemValues;\n}\n/**\n * 获取 expandItemValues 的 value\n * @param props\n */\n\n\nfunction getExpandItemValues(props) {\n var expandItemValues = props.expandItemValues,\n defaultExpandItemValues = props.defaultExpandItemValues;\n\n if (!(0, _isUndefined2.default)(expandItemValues) && Array.isArray(expandItemValues)) {\n return expandItemValues;\n }\n\n if (!(0, _isUndefined2.default)(defaultExpandItemValues) && Array.isArray(defaultExpandItemValues)) {\n return defaultExpandItemValues;\n }\n\n return [];\n}\n/**\n * get dragNode and it's children node keys\n * @param node\n * @param childrenKey\n * @param valueKey\n */\n\n\nfunction getDragNodeKeys(dragNode, childrenKey, valueKey) {\n var dragNodeKeys = [dragNode[valueKey]];\n\n var traverse = function traverse(data) {\n if ((data === null || data === void 0 ? void 0 : data.length) > 0) {\n data.forEach(function (node) {\n dragNodeKeys = dragNodeKeys.concat([node[valueKey]]);\n\n if (node[childrenKey]) {\n traverse(node[childrenKey]);\n }\n });\n }\n };\n\n traverse(dragNode[childrenKey]);\n return dragNodeKeys;\n}\n\nfunction calDropNodePosition(event, treeNodeElement) {\n var clientY = event.clientY;\n\n var _treeNodeElement$getB = treeNodeElement.getBoundingClientRect(),\n top = _treeNodeElement$getB.top,\n bottom = _treeNodeElement$getB.bottom;\n\n var gap = TREE_NODE_GAP; // bottom of node\n\n if (clientY >= bottom - gap && clientY <= bottom) {\n return _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM;\n } // top of node\n\n\n if (clientY <= top + gap && clientY >= top) {\n return _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_TOP;\n }\n\n if (clientY >= top + gap && clientY <= bottom - gap) {\n return _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER;\n }\n\n return -1;\n}\n\nfunction removeDragNode(data, params, _ref) {\n var valueKey = _ref.valueKey,\n childrenKey = _ref.childrenKey;\n var dragNode = params.dragNode;\n\n var traverse = function traverse(items, parent) {\n for (var _index = 0; _index < items.length; _index += 1) {\n var _item = items[_index];\n\n if ((0, _utils2.shallowEqual)(_item[valueKey], dragNode[valueKey])) {\n items.splice(_index, 1); // when children is empty, delete children prop for hidden anchor\n\n if (items.length === 0 && parent) {\n delete parent.children;\n }\n\n break;\n }\n\n if (Array.isArray(_item[childrenKey])) {\n traverse(_item[childrenKey], _item);\n }\n }\n };\n\n traverse(data);\n}\n\nfunction createUpdateTreeDataFunction(params, _ref2) {\n var valueKey = _ref2.valueKey,\n childrenKey = _ref2.childrenKey;\n return function (tree) {\n var data = [].concat(tree);\n var dragNode = params.dragNode,\n dropNode = params.dropNode,\n dropNodePosition = params.dropNodePosition;\n var cloneDragNode = (0, _extends3.default)({}, dragNode);\n removeDragNode(data, params, {\n valueKey: valueKey,\n childrenKey: childrenKey\n });\n\n var updateTree = function updateTree(items) {\n for (var _index2 = 0; _index2 < items.length; _index2 += 1) {\n var _item2 = items[_index2];\n\n if ((0, _utils2.shallowEqual)(_item2[valueKey], dropNode[valueKey])) {\n // drag to node inside\n if (dropNodePosition === _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER) {\n _item2[childrenKey] = (0, _isNil2.default)(_item2[childrenKey]) ? [] : _item2[childrenKey];\n\n _item2[childrenKey].push(cloneDragNode);\n\n break;\n } else if (dropNodePosition === _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_TOP) {\n // drag to top of node\n items.splice(_index2, 0, cloneDragNode);\n break;\n } else if (dropNodePosition === _utils2.TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM) {\n // drag to bottom of node\n items.splice(_index2 + 1, 0, cloneDragNode);\n break;\n }\n }\n\n if (Array.isArray(_item2[childrenKey]) && _item2[childrenKey].length > 0) {\n updateTree(_item2[childrenKey]);\n }\n }\n };\n\n updateTree(data);\n return [].concat(data);\n };\n}\n\nfunction findNodeOfTree(data, check) {\n var findNode = function findNode(nodes) {\n if (nodes === void 0) {\n nodes = [];\n }\n\n for (var i = 0; i < nodes.length; i += 1) {\n var _item3 = nodes[i];\n\n if ((0, _isArray2.default)(_item3.children)) {\n var _node = findNode(_item3.children);\n\n if (_node) {\n return _node;\n }\n }\n\n if (check(_item3)) {\n return _item3;\n }\n }\n\n return undefined;\n };\n\n return findNode(data);\n}\n\nfunction filterNodesOfTree(data, check) {\n var findNodes = function findNodes(nodes) {\n if (nodes === void 0) {\n nodes = [];\n }\n\n var nextNodes = [];\n\n for (var i = 0; i < nodes.length; i += 1) {\n if ((0, _isArray2.default)(nodes[i].children)) {\n var nextChildren = findNodes(nodes[i].children);\n\n if (nextChildren.length) {\n var _item4 = (0, _clone2.default)(nodes[i]);\n\n _item4.children = nextChildren;\n nextNodes.push(_item4);\n continue;\n }\n }\n\n if (check(nodes[i])) {\n nextNodes.push(nodes[i]);\n }\n }\n\n return nextNodes;\n };\n\n return findNodes(data);\n}\n/**\n * get all focusable items\n * exclude not visible and disabled node\n * @param filteredData - filtered tree data\n * @param props - TreeProps\n * @param isSearching - component is in Searching\n * @returns\n */\n\n\nvar getFocusableItems = function getFocusableItems(filteredData, props, isSearching) {\n var disabledItemValues = props.disabledItemValues,\n valueKey = props.valueKey,\n childrenKey = props.childrenKey,\n expandItemValues = props.expandItemValues;\n var items = [];\n\n var loop = function loop(nodes) {\n nodes.forEach(function (node) {\n var disabled = disabledItemValues.some(function (disabledItem) {\n return (0, _utils2.shallowEqual)(disabledItem, node[valueKey]);\n });\n\n if (!disabled && node.visible) {\n items.push(node);\n } // always expand when searching\n\n\n var expand = isSearching ? true : expandItemValues.includes(node[valueKey]);\n\n if (node[childrenKey] && expand) {\n loop(node[childrenKey]);\n }\n });\n };\n\n loop(filteredData);\n return items;\n};\n/**\n * return all focusable Item and active Element index\n * @param focusItemValue\n * @param focusableItems items\n */\n\n\nexports.getFocusableItems = getFocusableItems;\n\nvar getActiveIndex = function getActiveIndex(focusItemValue, focusItems, valueKey) {\n var activeIndex = -1;\n focusItems.forEach(function (item, index) {\n if ((0, _utils2.shallowEqual)(item[valueKey], focusItemValue)) {\n activeIndex = index;\n }\n });\n return activeIndex;\n};\n/**\n * get current active element and node data\n * @param flattenNodes - flattenData\n */\n\n\nexports.getActiveIndex = getActiveIndex;\n\nvar getActiveItem = function getActiveItem(focusItemValue, flattenNodes, valueKey) {\n var nodeData = null;\n var activeNode = Object.values(flattenNodes).find(function (node) {\n return (0, _utils2.shallowEqual)(node[valueKey], focusItemValue);\n });\n\n if (activeNode) {\n nodeData = activeNode;\n }\n\n return nodeData;\n};\n\nexports.getActiveItem = getActiveItem;\n\nvar getElementByDataKey = function getElementByDataKey(dataKey, treeNodesRefs, selector) {\n var ele = treeNodesRefs[dataKey];\n\n if (ele instanceof Element) {\n return ele.querySelector(selector);\n }\n\n return null;\n};\n/**\n * focus to specify tree node\n * @param refKey - target node refKey\n * @param treeNodeRefs - all tree node refs object\n * @param selector - node css selector\n */\n\n\nexports.getElementByDataKey = getElementByDataKey;\n\nvar focusTreeNode = function focusTreeNode(refKey, treeNodeRefs, selector) {\n var _node$focus;\n\n var node = getElementByDataKey(refKey, treeNodeRefs, selector);\n node === null || node === void 0 ? void 0 : (_node$focus = node.focus) === null || _node$focus === void 0 ? void 0 : _node$focus.call(node);\n};\n\nexports.focusTreeNode = focusTreeNode;\n\n/**\n * focus next item with keyboard\n * @param param\n */\nvar focusNextItem = function focusNextItem(_ref3) {\n var focusItemValue = _ref3.focusItemValue,\n focusableItems = _ref3.focusableItems,\n treeNodesRefs = _ref3.treeNodesRefs,\n selector = _ref3.selector,\n valueKey = _ref3.valueKey,\n callback = _ref3.callback;\n var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);\n\n if (focusableItems.length === 0) {\n return;\n }\n\n var nextIndex = activeIndex === focusableItems.length - 1 ? 0 : activeIndex + 1;\n var nextFocusItemValue = focusableItems[nextIndex][valueKey];\n callback === null || callback === void 0 ? void 0 : callback(nextFocusItemValue);\n focusTreeNode(focusableItems[nextIndex].refKey, treeNodesRefs, selector);\n};\n/**\n * focus prev item with keyboard\n * @param param\n */\n\n\nexports.focusNextItem = focusNextItem;\n\nvar focusPreviousItem = function focusPreviousItem(_ref4) {\n var focusItemValue = _ref4.focusItemValue,\n focusableItems = _ref4.focusableItems,\n treeNodesRefs = _ref4.treeNodesRefs,\n selector = _ref4.selector,\n valueKey = _ref4.valueKey,\n callback = _ref4.callback;\n var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);\n\n if (focusableItems.length === 0) {\n return;\n }\n\n var prevIndex = activeIndex === 0 ? focusableItems.length - 1 : activeIndex - 1;\n prevIndex = prevIndex >= 0 ? prevIndex : 0;\n var prevFocusItemValue = focusableItems[prevIndex][valueKey];\n callback === null || callback === void 0 ? void 0 : callback(prevFocusItemValue);\n focusTreeNode(focusableItems[prevIndex].refKey, treeNodesRefs, selector);\n};\n\nexports.focusPreviousItem = focusPreviousItem;\n\n/**\n * Left arrow keyboard event handler\n * When focus is on an open node, closes the node.\n * When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n * When focus is on a root node that is also either an end node or a closed node, does nothing.\n * @see https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\nfunction leftArrowHandler(_ref5) {\n var focusItem = _ref5.focusItem,\n expand = _ref5.expand,\n onExpand = _ref5.onExpand,\n onFocusItem = _ref5.onFocusItem;\n\n if ((0, _isEmpty2.default)(focusItem)) {\n return;\n }\n\n if (expand) {\n onExpand((0, _extends3.default)({}, focusItem, {\n expand: expand\n }));\n } else if (focusItem !== null && focusItem !== void 0 && focusItem.parent) {\n onFocusItem();\n }\n}\n/**\n * Right arrow keyboard event handler\n * When focus is on a closed node, opens the node; focus does not move.\n * When focus is on a open node, moves focus to the first child node.\n * When focus is on an end node, does nothing.\n * @see https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n\n\nfunction rightArrowHandler(_ref6) {\n var focusItem = _ref6.focusItem,\n expand = _ref6.expand,\n childrenKey = _ref6.childrenKey,\n onExpand = _ref6.onExpand,\n onFocusItem = _ref6.onFocusItem;\n\n if ((0, _isEmpty2.default)(focusItem) || !Array.isArray(focusItem[childrenKey])) {\n return;\n }\n\n if (!expand) {\n onExpand((0, _extends3.default)({}, focusItem, {\n expand: expand\n }));\n } else {\n onFocusItem();\n }\n}\n/**\n * get scrollIndex in virtualized list\n * @param nodes - data\n * @param value - activeItem value\n * @param valueKey\n */\n\n\nvar getScrollToIndex = function getScrollToIndex(nodes, value, valueKey) {\n return nodes.filter(function (n) {\n return n.visible;\n }).findIndex(function (item) {\n return item[valueKey] === value;\n });\n};\n/**\n * when searching, expand state always return true\n * @param searchKeyword\n * @param expand\n */\n\n\nexports.getScrollToIndex = getScrollToIndex;\n\nfunction getExpandWhenSearching(searchKeyword, expand) {\n return isSearching(searchKeyword) ? true : expand;\n}\n\nfunction getTreeActiveNode(nodes, value, valueKey) {\n if ((0, _isUndefined2.default)(value)) {\n return undefined;\n }\n\n for (var refKey in nodes) {\n if ((0, _utils2.shallowEqual)(nodes[refKey][valueKey], value)) {\n return nodes[refKey];\n }\n }\n}\n\n/**\n * toggle tree node\n * @param param0\n */\nfunction toggleExpand(_ref7) {\n var node = _ref7.node,\n isExpand = _ref7.isExpand,\n expandItemValues = _ref7.expandItemValues,\n valueKey = _ref7.valueKey;\n var newExpandItemValues = new Set(expandItemValues);\n\n if (isExpand) {\n newExpandItemValues.add(node[valueKey]);\n } else {\n newExpandItemValues.delete(node[valueKey]);\n }\n\n return Array.from(newExpandItemValues);\n}\n\nfunction getTreeNodeTitle(label) {\n if (typeof label === 'string') {\n return label;\n } else if ( /*#__PURE__*/_react.default.isValidElement(label)) {\n var _nodes = (0, _reactToString.default)(label);\n\n return _nodes.join('');\n }\n}\n/**\n * get all children from flattenNodes object by given parent node\n * @param nodes\n * @param parent\n */\n\n\nfunction getChildrenByFlattenNodes(nodes, parent) {\n if (!(0, _isNil2.default)(parent.refKey) && (0, _isNil2.default)(nodes[parent.refKey])) {\n return [];\n }\n\n return Object.values(nodes).filter(function (item) {\n var _item$parent;\n\n return (item === null || item === void 0 ? void 0 : (_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent.refKey) === parent.refKey && item.refKey && !nodes[item.refKey].uncheckable;\n });\n}\n\nfunction useTreeDrag() {\n // current dragging node\n var dragNode = (0, _react.useRef)(null);\n\n var _useState = (0, _react.useState)(null),\n dragOverNodeKey = _useState[0],\n setDragOverNodeKey = _useState[1]; // drag node and it's children nodes key\n\n\n var _useState2 = (0, _react.useState)([]),\n dragNodeKeys = _useState2[0],\n setDragNodeKeys = _useState2[1];\n\n var _useState3 = (0, _react.useState)(null),\n dropNodePosition = _useState3[0],\n setDropNodePosition = _useState3[1];\n\n var setDragNode = function setDragNode(node) {\n dragNode.current = node;\n };\n\n return {\n dragNode: dragNode === null || dragNode === void 0 ? void 0 : dragNode.current,\n dragOverNodeKey: dragOverNodeKey,\n dragNodeKeys: dragNodeKeys,\n dropNodePosition: dropNodePosition,\n setDragNode: setDragNode,\n setDragOverNodeKey: setDragOverNodeKey,\n setDragNodeKeys: setDragNodeKeys,\n setDropNodePosition: setDropNodePosition\n };\n}\n\n/**\n * hooks for flatten tree structure\n * @param param0\n */\nfunction useFlattenTreeData(_ref8) {\n var data = _ref8.data,\n labelKey = _ref8.labelKey,\n valueKey = _ref8.valueKey,\n childrenKey = _ref8.childrenKey,\n _ref8$uncheckableItem = _ref8.uncheckableItemValues,\n uncheckableItemValues = _ref8$uncheckableItem === void 0 ? [] : _ref8$uncheckableItem,\n callback = _ref8.callback;\n\n var _useState4 = (0, _react.useState)(Object.create(null)),\n dispatch = _useState4[1];\n\n var forceUpdate = (0, _react.useCallback)(function () {\n dispatch(Object.create(null));\n }, [dispatch]);\n var flattenNodes = (0, _react.useRef)({});\n var flattenTreeData = (0, _react.useCallback)(function (treeData, ref, parent, layer) {\n if (layer === void 0) {\n layer = 1;\n }\n\n if (!Array.isArray(treeData) || treeData.length === 0) {\n return [];\n }\n\n treeData.map(function (node, index) {\n var _extends2;\n\n var refKey = ref + \"-\" + index;\n node.refKey = refKey;\n flattenNodes.current[refKey] = (0, _extends3.default)((_extends2 = {\n layer: layer\n }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {\n return (0, _utils2.shallowEqual)(node[valueKey], value);\n }), _extends2), node);\n\n if (parent) {\n flattenNodes.current[refKey].parent = (0, _omit2.default)(parent, 'parent', 'children');\n }\n\n flattenTreeData(node[childrenKey], refKey, node, layer + 1);\n });\n callback === null || callback === void 0 ? void 0 : callback(flattenNodes.current);\n }, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues]);\n var serializeListOnlyParent = (0, _react.useCallback)(function (nodes, key) {\n var list = [];\n Object.keys(nodes).forEach(function (refKey) {\n var currentNode = nodes[refKey];\n\n if (!(0, _isNil2.default)(currentNode.parent) && !(0, _isNil2.default)(currentNode.parent.refKey)) {\n var parentNode = nodes[currentNode.parent.refKey];\n\n if (currentNode[key]) {\n if (!(parentNode !== null && parentNode !== void 0 && parentNode.checkAll)) {\n list.push(nodes[refKey][valueKey]);\n } else if (parentNode !== null && parentNode !== void 0 && parentNode.uncheckable) {\n list.push(nodes[refKey][valueKey]);\n }\n }\n } else {\n if (currentNode[key]) {\n list.push(nodes[refKey][valueKey]);\n }\n }\n });\n return list;\n }, [valueKey]);\n /**\n * using in CheckTreePicker, to unSerializeList check property\n */\n\n var unSerializeList = (0, _react.useCallback)(function (_ref9) {\n var nodes = _ref9.nodes,\n key = _ref9.key,\n _ref9$value = _ref9.value,\n value = _ref9$value === void 0 ? [] : _ref9$value,\n cascade = _ref9.cascade,\n uncheckableItemValues = _ref9.uncheckableItemValues;\n // Reset values to false\n Object.keys(nodes).forEach(function (refKey) {\n var node = nodes[refKey];\n\n if (cascade && !(0, _isNil2.default)(node.parent) && !(0, _isNil2.default)(node.parent.refKey)) {\n node[key] = nodes[node.parent.refKey][key];\n } else {\n node[key] = false;\n }\n\n value.forEach(function (value) {\n if ((0, _utils2.shallowEqual)(nodes[refKey][valueKey], value) && !uncheckableItemValues.some(function (uncheckableValue) {\n return (0, _utils2.shallowEqual)(value, uncheckableValue);\n })) {\n nodes[refKey][key] = true;\n }\n });\n });\n }, [valueKey]);\n\n var formatVirtualizedTreeData = function formatVirtualizedTreeData(nodes, data, expandItemValues, options) {\n var cascade = options.cascade,\n searchKeyword = options.searchKeyword;\n return flattenTree(data, childrenKey, function (node) {\n var formatted = {};\n var curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];\n var parentKeys = getNodeParentKeys(nodes, curNode, valueKey);\n /**\n * When using virtualized,\n * if the parent node is collapsed, the child nodes should be hidden\n * avoid component height calculation errors\n */\n\n var visible = curNode !== null && curNode !== void 0 && curNode.parent ? shouldShowNodeByParentExpanded(expandItemValues, parentKeys) : true;\n /**\n * when searching, every node default expand\n * the node's visible should follow the original state\n */\n\n if (isSearching(searchKeyword)) {\n visible = node.visible;\n }\n\n if (curNode) {\n var checkState = !(0, _isUndefined2.default)(cascade) ? (0, _utils.getNodeCheckState)({\n node: curNode,\n cascade: cascade,\n nodes: nodes,\n childrenKey: childrenKey\n }) : undefined;\n formatted = (0, _extends3.default)({}, node, {\n check: curNode.check,\n uncheckable: curNode.uncheckable,\n hasChildren: !!node[childrenKey],\n layer: curNode.layer,\n parent: curNode.parent,\n checkState: checkState,\n visible: visible\n });\n }\n\n return formatted;\n });\n };\n\n (0, _react.useEffect)(function () {\n // when data is changed, should clear the flattenNodes, avoid duplicate keys\n flattenNodes.current = {};\n flattenTreeData(data, '0');\n }, [data]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n forceUpdate: forceUpdate,\n flattenNodes: flattenNodes.current,\n flattenTreeData: flattenTreeData,\n serializeListOnlyParent: serializeListOnlyParent,\n unSerializeList: unSerializeList,\n formatVirtualizedTreeData: formatVirtualizedTreeData\n };\n}\n/**\n * A hook that saving every tree node ref\n */\n\n\nfunction useTreeNodeRefs() {\n var treeNodeRefs = (0, _react.useRef)({});\n\n var saveTreeNodeRef = function saveTreeNodeRef(ref, refKey) {\n if (!(0, _isNil2.default)(refKey)) {\n treeNodeRefs.current[refKey] = ref;\n }\n };\n\n return {\n treeNodesRefs: treeNodeRefs.current,\n saveTreeNodeRef: saveTreeNodeRef\n };\n}\n\n/**\n * A hook that handles tree search filter options\n * @param props\n */\nfunction useTreeSearch(props) {\n var labelKey = props.labelKey,\n childrenKey = props.childrenKey,\n searchKeyword = props.searchKeyword,\n data = props.data,\n searchBy = props.searchBy,\n callback = props.callback;\n var filterVisibleData = (0, _react.useCallback)(function (data, searchKeyword) {\n var setVisible = function setVisible(nodes) {\n return nodes.forEach(function (item) {\n item.visible = searchBy ? searchBy(searchKeyword, item[labelKey], item) : (0, _Picker.shouldDisplay)(item[labelKey], searchKeyword);\n\n if ((0, _isArray2.default)(item[childrenKey])) {\n filterVisibleData(item[childrenKey], searchKeyword);\n item[childrenKey].forEach(function (child) {\n if (child.visible) {\n item.visible = child.visible;\n }\n });\n }\n });\n };\n\n setVisible(data);\n return data;\n }, [childrenKey, labelKey, searchBy]); // Use search keywords to filter options.\n\n var _useState5 = (0, _react.useState)(function () {\n return searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '';\n }),\n searchKeywordState = _useState5[0],\n setSearchKeyword = _useState5[1];\n\n var _useState6 = (0, _react.useState)(function () {\n return filterVisibleData(data, searchKeywordState);\n }),\n filteredData = _useState6[0],\n setFilteredData = _useState6[1];\n\n var handleSetFilteredData = (0, _react.useCallback)(function (data, searchKeyword) {\n setFilteredData(filterVisibleData(data, searchKeyword));\n }, [filterVisibleData]);\n\n var handleSearch = function handleSearch(searchKeyword, event) {\n var filteredData = filterVisibleData(data, searchKeyword);\n setFilteredData(filteredData);\n setSearchKeyword(searchKeyword);\n callback === null || callback === void 0 ? void 0 : callback(searchKeyword, filteredData, event);\n };\n\n return {\n searchKeywordState: searchKeywordState,\n filteredData: filteredData,\n setFilteredData: handleSetFilteredData,\n setSearchKeyword: setSearchKeyword,\n handleSearch: handleSearch\n };\n}\n\nfunction useGetTreeNodeChildren(treeData, valueKey, childrenKey) {\n var _useState7 = (0, _react.useState)([]),\n loadingNodeValues = _useState7[0],\n setLoadingNodeValues = _useState7[1];\n\n var _useState8 = (0, _react.useState)(treeData),\n data = _useState8[0],\n setData = _useState8[1];\n\n var concatChildren = (0, _react.useCallback)(function (treeNode, children) {\n var value = treeNode[valueKey];\n treeNode = findNodeOfTree(data, function (item) {\n return value === item[valueKey];\n });\n treeNode[childrenKey] = children;\n var newData = data.concat([]);\n setData(newData);\n return newData;\n }, [data, valueKey, childrenKey]);\n var loadChildren = (0, _react.useCallback)(function (node, getChildren) {\n setLoadingNodeValues(function (prev) {\n return prev.concat(node[valueKey]);\n });\n var children = getChildren(node);\n\n if (children instanceof Promise) {\n children.then(function (res) {\n var newData = concatChildren(node, res);\n setData(newData);\n setLoadingNodeValues(function (prev) {\n return prev.filter(function (item) {\n return !(0, _utils2.shallowEqual)(item, node[valueKey]);\n });\n });\n });\n } else {\n setData(concatChildren(node, children));\n setLoadingNodeValues(function (prev) {\n return prev.filter(function (item) {\n return !(0, _utils2.shallowEqual)(item, node[valueKey]);\n });\n });\n }\n }, [concatChildren, valueKey]);\n return {\n data: data,\n setData: setData,\n loadingNodeValues: loadingNodeValues,\n loadChildren: loadChildren\n };\n}\n\n/**\n * Focus to active tree node.\n * @param param0\n */\nfunction focusToActiveTreeNode(_ref10) {\n var _activeItem$focus;\n\n var list = _ref10.list,\n valueKey = _ref10.valueKey,\n activeNode = _ref10.activeNode,\n virtualized = _ref10.virtualized,\n container = _ref10.container,\n selector = _ref10.selector,\n formattedNodes = _ref10.formattedNodes;\n if (!container) return;\n\n if (virtualized && activeNode) {\n var _list$scrollToRow;\n\n var scrollIndex = getScrollToIndex(formattedNodes, activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey], valueKey);\n (_list$scrollToRow = list.scrollToRow) === null || _list$scrollToRow === void 0 ? void 0 : _list$scrollToRow.call(list, scrollIndex);\n return;\n }\n\n var activeItem = container.querySelector(selector);\n\n if (!activeItem) {\n return;\n }\n\n activeItem === null || activeItem === void 0 ? void 0 : (_activeItem$focus = activeItem.focus) === null || _activeItem$focus === void 0 ? void 0 : _activeItem$focus.call(activeItem);\n}\n\nfunction isSearching(searchKeyword) {\n return !(0, _isEmpty2.default)(searchKeyword);\n}\n\nfunction getTreeNodeIndent(rtl, layer, absolute) {\n var _ref12;\n\n if (absolute === void 0) {\n absolute = false;\n }\n\n // layer start from 1\n var offset = layer * _constants.TREE_NODE_PADDING + _constants.TREE_NODE_ROOT_PADDING;\n\n if (absolute) {\n var _ref11;\n\n return _ref11 = {}, _ref11[rtl ? 'right' : 'left'] = offset, _ref11;\n }\n\n return _ref12 = {}, _ref12[rtl ? 'paddingRight' : 'paddingLeft'] = offset, _ref12;\n}\n\n//# sourceURL=webpack://rsuite/./src/utils/treeUtils.ts?");
5525
5536
 
5526
5537
  /***/ }),
5527
5538
 
@@ -5664,7 +5675,7 @@ eval("\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react =
5664
5675
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5665
5676
 
5666
5677
  "use strict";
5667
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"react-dom\");\n\nvar _canUseDOM = _interopRequireDefault(__webpack_require__(/*! dom-lib/canUseDOM */ \"./node_modules/dom-lib/esm/canUseDOM.js\"));\n\nfunction usePortal(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n id = _props.id,\n container = _props.container;\n var rootElemRef = (0, _react.useRef)(_canUseDOM.default ? document.body : null);\n (0, _react.useEffect)(function () {\n var containerElement = typeof container === 'function' ? container() : container; // Look for existing target dom element to append to\n\n var existingParent = id && document.querySelector(\"#\" + id); // Parent is either a new root or the existing dom element\n\n var parentElement = containerElement || existingParent || document.body;\n rootElemRef.current = parentElement;\n }, [rootElemRef, container, id]);\n var Portal = (0, _react.useCallback)(function (_ref) {\n var children = _ref.children;\n if (rootElemRef.current != null) return /*#__PURE__*/(0, _reactDom.createPortal)(children, rootElemRef.current);\n return null;\n }, [rootElemRef]);\n return {\n target: rootElemRef.current,\n Portal: Portal\n };\n}\n\nvar _default = usePortal;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/utils/usePortal.tsx?");
5678
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"react-dom\");\n\nvar _canUseDOM = _interopRequireDefault(__webpack_require__(/*! dom-lib/canUseDOM */ \"./node_modules/dom-lib/esm/canUseDOM.js\"));\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/utils/usePortal.tsx\";\n\nvar MountedPortal = /*#__PURE__*/_react.default.memo(function (_ref) {\n var children = _ref.children,\n container = _ref.container;\n\n var _useState = (0, _react.useState)(false),\n mounted = _useState[0],\n setMounted = _useState[1];\n\n (0, _react.useEffect)(function () {\n return setMounted(true);\n }, []);\n\n if (container && mounted) {\n return /*#__PURE__*/(0, _reactDom.createPortal)(children, container);\n }\n\n return null;\n});\n\nfunction usePortal(props) {\n var _this = this;\n\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n container = _props.container,\n _props$waitMount = _props.waitMount,\n waitMount = _props$waitMount === void 0 ? false : _props$waitMount;\n var rootElemRef = (0, _react.useRef)(_canUseDOM.default ? document.body : null);\n (0, _react.useEffect)(function () {\n var containerElement = typeof container === 'function' ? container() : container; // Parent is either a new root or the existing dom element\n\n var parentElement = containerElement || document.body;\n rootElemRef.current = parentElement;\n }, [rootElemRef, container]);\n var Portal = (0, _react.useCallback)(function (_ref2) {\n var children = _ref2.children;\n return rootElemRef.current != null ? /*#__PURE__*/(0, _reactDom.createPortal)(children, rootElemRef.current) : null;\n }, []);\n var WaitMountPortal = (0, _react.useCallback)(function (props) {\n return /*#__PURE__*/_react.default.createElement(MountedPortal, (0, _extends2.default)({\n container: rootElemRef.current\n }, props, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 14\n }\n }));\n }, []);\n return {\n target: rootElemRef.current,\n Portal: waitMount ? WaitMountPortal : Portal\n };\n}\n\nvar _default = usePortal;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/utils/usePortal.tsx?");
5668
5679
 
5669
5680
  /***/ }),
5670
5681