rsuite 5.24.0 → 5.25.0

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 (77) hide show
  1. package/Breadcrumb/styles/index.less +4 -0
  2. package/Button/styles/index.less +14 -10
  3. package/CHANGELOG.md +31 -0
  4. package/Calendar/styles/index.less +15 -16
  5. package/DatePicker/styles/index.less +9 -0
  6. package/DatePicker/styles/mixin.less +8 -0
  7. package/Picker/styles/index.less +5 -9
  8. package/Picker/styles/mixin.less +4 -40
  9. package/TreePicker/styles/index.less +13 -0
  10. package/cjs/@types/global.d.ts +6 -0
  11. package/cjs/Breadcrumb/BreadcrumbItem.js +1 -1
  12. package/cjs/Calendar/MonthDropdown.js +2 -4
  13. package/cjs/Calendar/TableHeaderRow.js +3 -3
  14. package/cjs/Cascader/Cascader.js +2 -2
  15. package/cjs/Cascader/utils.d.ts +1 -1
  16. package/cjs/Cascader/utils.js +2 -2
  17. package/cjs/Content/Content.d.ts +1 -1
  18. package/cjs/CustomProvider/CustomProvider.d.ts +2 -0
  19. package/cjs/CustomProvider/CustomProvider.js +5 -3
  20. package/cjs/Footer/Footer.d.ts +1 -1
  21. package/cjs/Header/Header.d.ts +1 -1
  22. package/cjs/MultiCascader/MultiCascader.js +4 -4
  23. package/cjs/MultiCascader/utils.d.ts +1 -1
  24. package/cjs/MultiCascader/utils.js +2 -2
  25. package/cjs/Navbar/NavbarBrand.d.ts +1 -1
  26. package/cjs/Overlay/OverlayTrigger.js +4 -0
  27. package/cjs/Picker/PickerToggle.js +1 -1
  28. package/cjs/Picker/PickerToggleTrigger.js +6 -7
  29. package/cjs/Ripple/Ripple.js +8 -0
  30. package/cjs/TreePicker/TreeNode.d.ts +3 -3
  31. package/cjs/TreePicker/TreeNode.js +1 -11
  32. package/cjs/TreePicker/TreePicker.js +8 -1
  33. package/cjs/utils/createComponent.d.ts +3 -3
  34. package/cjs/utils/treeUtils.d.ts +12 -0
  35. package/cjs/utils/treeUtils.js +42 -0
  36. package/cjs/utils/useCustom.js +3 -1
  37. package/dist/rsuite-rtl.css +299 -263
  38. package/dist/rsuite-rtl.min.css +1 -1
  39. package/dist/rsuite-rtl.min.css.map +1 -1
  40. package/dist/rsuite.css +299 -263
  41. package/dist/rsuite.js +19 -19
  42. package/dist/rsuite.min.css +1 -1
  43. package/dist/rsuite.min.css.map +1 -1
  44. package/dist/rsuite.min.js +1 -1
  45. package/dist/rsuite.min.js.map +1 -1
  46. package/esm/@types/global.d.ts +6 -0
  47. package/esm/Breadcrumb/BreadcrumbItem.js +1 -1
  48. package/esm/Calendar/MonthDropdown.js +2 -4
  49. package/esm/Calendar/TableHeaderRow.js +3 -3
  50. package/esm/Cascader/Cascader.js +2 -2
  51. package/esm/Cascader/utils.d.ts +1 -1
  52. package/esm/Cascader/utils.js +2 -2
  53. package/esm/Content/Content.d.ts +1 -1
  54. package/esm/CustomProvider/CustomProvider.d.ts +2 -0
  55. package/esm/CustomProvider/CustomProvider.js +5 -3
  56. package/esm/Footer/Footer.d.ts +1 -1
  57. package/esm/Header/Header.d.ts +1 -1
  58. package/esm/MultiCascader/MultiCascader.js +4 -4
  59. package/esm/MultiCascader/utils.d.ts +1 -1
  60. package/esm/MultiCascader/utils.js +2 -2
  61. package/esm/Navbar/NavbarBrand.d.ts +1 -1
  62. package/esm/Overlay/OverlayTrigger.js +4 -0
  63. package/esm/Picker/PickerToggle.js +1 -1
  64. package/esm/Picker/PickerToggleTrigger.js +7 -5
  65. package/esm/Ripple/Ripple.js +9 -1
  66. package/esm/TreePicker/TreeNode.d.ts +3 -3
  67. package/esm/TreePicker/TreeNode.js +2 -11
  68. package/esm/TreePicker/TreePicker.js +9 -2
  69. package/esm/utils/createComponent.d.ts +3 -3
  70. package/esm/utils/treeUtils.d.ts +12 -0
  71. package/esm/utils/treeUtils.js +36 -0
  72. package/esm/utils/useCustom.js +3 -1
  73. package/package.json +2 -2
  74. package/styles/color-modes/dark.less +6 -2
  75. package/styles/color-modes/high-contrast.less +4 -0
  76. package/styles/color-modes/light.less +5 -1
  77. package/styles/variables.less +7 -8
package/dist/rsuite.js CHANGED
@@ -1797,7 +1797,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
1797
1797
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1798
1798
 
1799
1799
  "use strict";
1800
- 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 _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 = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _SafeAnchor = _interopRequireDefault(__webpack_require__(/*! ../SafeAnchor */ \"./src/SafeAnchor/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Breadcrumb/BreadcrumbItem.tsx\",\n _this = void 0;\n\nvar BreadcrumbItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? _SafeAnchor.default : _props$as,\n href = props.href,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'breadcrumb-item' : _props$classPrefix,\n title = props.title,\n target = props.target,\n className = props.className,\n style = props.style,\n active = props.active,\n children = props.children,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"href\", \"classPrefix\", \"title\", \"target\", \"className\", \"style\", \"active\", \"children\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var classes = merge(className, withClassPrefix({\n active: active\n }));\n\n if (active) {\n return /*#__PURE__*/_react.default.createElement(\"span\", (0, _extends2.default)({\n ref: ref\n }, rest, {\n style: style,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }\n }), children);\n }\n\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n href: href,\n title: title,\n target: target,\n ref: ref,\n style: style,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 7\n }\n }), children);\n});\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbItem.propTypes = {\n active: _propTypes.default.bool,\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n href: _propTypes.default.string,\n title: _propTypes.default.string,\n target: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n as: _propTypes.default.elementType\n};\nvar _default = BreadcrumbItem;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Breadcrumb/BreadcrumbItem.tsx?");
1800
+ 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 _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 = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _SafeAnchor = _interopRequireDefault(__webpack_require__(/*! ../SafeAnchor */ \"./src/SafeAnchor/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Breadcrumb/BreadcrumbItem.tsx\",\n _this = void 0;\n\nvar BreadcrumbItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? props.href ? _SafeAnchor.default : 'span' : _props$as,\n href = props.href,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'breadcrumb-item' : _props$classPrefix,\n title = props.title,\n target = props.target,\n className = props.className,\n style = props.style,\n active = props.active,\n children = props.children,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"href\", \"classPrefix\", \"title\", \"target\", \"className\", \"style\", \"active\", \"children\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var classes = merge(className, withClassPrefix({\n active: active\n }));\n\n if (active) {\n return /*#__PURE__*/_react.default.createElement(\"span\", (0, _extends2.default)({\n ref: ref\n }, rest, {\n style: style,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }\n }), children);\n }\n\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n href: href,\n title: title,\n target: target,\n ref: ref,\n style: style,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 7\n }\n }), children);\n});\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbItem.propTypes = {\n active: _propTypes.default.bool,\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n href: _propTypes.default.string,\n title: _propTypes.default.string,\n target: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n as: _propTypes.default.elementType\n};\nvar _default = BreadcrumbItem;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Breadcrumb/BreadcrumbItem.tsx?");
1801
1801
 
1802
1802
  /***/ }),
1803
1803
 
@@ -1951,7 +1951,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
1951
1951
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1952
1952
 
1953
1953
  "use strict";
1954
- 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.isEveryDateInMonth = isEveryDateInMonth;\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 _Windowing = __webpack_require__(/*! ../Windowing */ \"./src/Windowing/index.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _MonthDropdownItem = _interopRequireDefault(__webpack_require__(/*! ./MonthDropdownItem */ \"./src/Calendar/MonthDropdownItem.tsx\"));\n\nvar _CalendarContext = __webpack_require__(/*! ./CalendarContext */ \"./src/Calendar/CalendarContext.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Calendar/MonthDropdown.tsx\",\n _this = void 0;\n\nvar monthMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\nfunction isEveryDateInMonth(year, month, predicate) {\n var days = _utils.DateUtils.getDaysInMonth(new Date(year, month));\n\n for (var i = 1; i <= days; i++) {\n if (!predicate(new Date(year, month, i))) {\n return false;\n }\n }\n\n return true;\n}\n\nvar MonthDropdown = /*#__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 ? 'calendar-month-dropdown' : _props$classPrefix,\n limitStartYear = props.limitStartYear,\n _props$limitEndYear = props.limitEndYear,\n limitEndYear = _props$limitEndYear === void 0 ? 5 : _props$limitEndYear,\n show = props.show,\n _props$height = props.height,\n defaultHeight = _props$height === void 0 ? 221 : _props$height,\n _props$width = props.width,\n defaultWidth = _props$width === void 0 ? 256 : _props$width,\n disabledMonth = props.disabledMonth,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\", \"limitStartYear\", \"limitEndYear\", \"show\", \"height\", \"width\", \"disabledMonth\"]);\n\n var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),\n _useCalendarContext$d = _useCalendarContext.date,\n date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var thisYear = _utils.DateUtils.getYear(new Date());\n\n var startYear = limitStartYear ? thisYear - limitStartYear : 1900;\n var rowCount = (0, _react.useMemo)(function () {\n var endYear = thisYear + limitEndYear;\n return endYear - startYear;\n }, [limitEndYear, startYear, thisYear]);\n var isMonthDisabled = (0, _react.useCallback)(function (year, month) {\n if (disabledMonth) {\n return isEveryDateInMonth(year, month, disabledMonth);\n }\n\n return false;\n }, [disabledMonth]);\n\n var rowRenderer = function rowRenderer(_ref) {\n var index = _ref.index,\n style = _ref.style;\n\n var selectedMonth = _utils.DateUtils.getMonth(date);\n\n var selectedYear = _utils.DateUtils.getYear(date);\n\n var year = startYear + index;\n var isSelectedYear = year === selectedYear;\n var titleClassName = prefix('year', {\n 'year-active': isSelectedYear\n });\n var rowClassName = merge(prefix('row'), {\n 'first-row': index === 0,\n 'last-row': index === rowCount - 1\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: rowClassName,\n role: \"row\",\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: titleClassName,\n role: \"rowheader\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 11\n }\n }, year), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('list'),\n role: \"gridcell\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }\n }, monthMap.map(function (item, month) {\n return /*#__PURE__*/_react.default.createElement(_MonthDropdownItem.default, {\n disabled: isMonthDisabled(year, month),\n active: isSelectedYear && month === selectedMonth,\n key: month + \"_\" + item,\n month: month + 1,\n year: year,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 17\n }\n });\n })));\n };\n\n var classes = merge(className, withClassPrefix(), {\n show: show\n });\n var itemSize = 75;\n var initialItemIndex = _utils.DateUtils.getYear(date) - startYear;\n var initialScrollOffset = itemSize * initialItemIndex;\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"menu\"\n }, rest, {\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('content'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('scroll'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 11\n }\n }, show && /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {\n defaultHeight: defaultHeight,\n defaultWidth: defaultWidth,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\n }\n }, function (_ref2) {\n var height = _ref2.height,\n width = _ref2.width;\n return /*#__PURE__*/_react.default.createElement(_Windowing.FixedSizeList, {\n className: prefix('row-wrapper'),\n width: width || defaultWidth,\n height: height || defaultHeight,\n itemSize: itemSize,\n itemCount: rowCount,\n initialScrollOffset: initialScrollOffset,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 19\n }\n }, rowRenderer);\n }))));\n});\n\nMonthDropdown.displayName = 'MonthDropdown';\nMonthDropdown.propTypes = {\n limitEndYear: _propTypes.default.number,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n show: _propTypes.default.bool,\n disabledMonth: _propTypes.default.func\n};\nvar _default = MonthDropdown;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Calendar/MonthDropdown.tsx?");
1954
+ 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.isEveryDateInMonth = isEveryDateInMonth;\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 _Windowing = __webpack_require__(/*! ../Windowing */ \"./src/Windowing/index.ts\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _MonthDropdownItem = _interopRequireDefault(__webpack_require__(/*! ./MonthDropdownItem */ \"./src/Calendar/MonthDropdownItem.tsx\"));\n\nvar _CalendarContext = __webpack_require__(/*! ./CalendarContext */ \"./src/Calendar/CalendarContext.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Calendar/MonthDropdown.tsx\",\n _this = void 0;\n\nvar monthMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\nfunction isEveryDateInMonth(year, month, predicate) {\n var days = _utils.DateUtils.getDaysInMonth(new Date(year, month));\n\n for (var i = 1; i <= days; i++) {\n if (!predicate(new Date(year, month, i))) {\n return false;\n }\n }\n\n return true;\n}\n\nvar MonthDropdown = /*#__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 ? 'calendar-month-dropdown' : _props$classPrefix,\n limitStartYear = props.limitStartYear,\n _props$limitEndYear = props.limitEndYear,\n limitEndYear = _props$limitEndYear === void 0 ? 5 : _props$limitEndYear,\n show = props.show,\n _props$height = props.height,\n defaultHeight = _props$height === void 0 ? 221 : _props$height,\n _props$width = props.width,\n defaultWidth = _props$width === void 0 ? 256 : _props$width,\n disabledMonth = props.disabledMonth,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\", \"limitStartYear\", \"limitEndYear\", \"show\", \"height\", \"width\", \"disabledMonth\"]);\n\n var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),\n _useCalendarContext$d = _useCalendarContext.date,\n date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var thisYear = _utils.DateUtils.getYear(new Date());\n\n var startYear = limitStartYear ? thisYear - limitStartYear : 1900;\n var rowCount = (0, _react.useMemo)(function () {\n var endYear = thisYear + limitEndYear;\n return endYear - startYear;\n }, [limitEndYear, startYear, thisYear]);\n var isMonthDisabled = (0, _react.useCallback)(function (year, month) {\n if (disabledMonth) {\n return isEveryDateInMonth(year, month, disabledMonth);\n }\n\n return false;\n }, [disabledMonth]);\n var rowRenderer = (0, _react.useCallback)(function (_ref) {\n var index = _ref.index,\n style = _ref.style;\n\n var selectedMonth = _utils.DateUtils.getMonth(date);\n\n var selectedYear = _utils.DateUtils.getYear(date);\n\n var year = startYear + index;\n var isSelectedYear = year === selectedYear;\n var titleClassName = prefix('year', {\n 'year-active': isSelectedYear\n });\n var rowClassName = merge(prefix('row'), {\n 'first-row': index === 0,\n 'last-row': index === rowCount - 1\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: rowClassName,\n role: \"row\",\n style: style,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: titleClassName,\n role: \"rowheader\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 13\n }\n }, year), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('list'),\n role: \"gridcell\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }\n }, monthMap.map(function (item, month) {\n return /*#__PURE__*/_react.default.createElement(_MonthDropdownItem.default, {\n disabled: isMonthDisabled(year, month),\n active: isSelectedYear && month === selectedMonth,\n key: month + \"_\" + item,\n month: month + 1,\n year: year,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 19\n }\n });\n })));\n }, [date, isMonthDisabled, merge, prefix, rowCount, startYear]);\n var classes = merge(className, withClassPrefix(), {\n show: show\n });\n var itemSize = 75;\n var initialItemIndex = _utils.DateUtils.getYear(date) - startYear;\n var initialScrollOffset = itemSize * initialItemIndex;\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"menu\"\n }, rest, {\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 7\n }\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('content'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('scroll'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 11\n }\n }, show && /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {\n defaultHeight: defaultHeight,\n defaultWidth: defaultWidth,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 15\n }\n }, function (_ref2) {\n var height = _ref2.height,\n width = _ref2.width;\n return /*#__PURE__*/_react.default.createElement(_Windowing.FixedSizeList, {\n className: prefix('row-wrapper'),\n width: width || defaultWidth,\n height: height || defaultHeight,\n itemSize: itemSize,\n itemCount: rowCount,\n initialScrollOffset: initialScrollOffset,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 19\n }\n }, rowRenderer);\n }))));\n});\n\nMonthDropdown.displayName = 'MonthDropdown';\nMonthDropdown.propTypes = {\n limitEndYear: _propTypes.default.number,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n show: _propTypes.default.bool,\n disabledMonth: _propTypes.default.func\n};\nvar _default = MonthDropdown;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Calendar/MonthDropdown.tsx?");
1955
1955
 
1956
1956
  /***/ }),
1957
1957
 
@@ -1984,7 +1984,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
1984
1984
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1985
1985
 
1986
1986
  "use strict";
1987
- 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 _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 = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _CalendarContext = __webpack_require__(/*! ./CalendarContext */ \"./src/Calendar/CalendarContext.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Calendar/TableHeaderRow.tsx\",\n _this = void 0;\n\nvar weekKeys = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n\nvar TableHeaderRow = /*#__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 ? 'calendar-table' : _props$classPrefix,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\"]);\n\n var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),\n locale = _useCalendarContext.locale,\n showWeekNumbers = _useCalendarContext.showWeekNumbers,\n isoWeek = _useCalendarContext.isoWeek;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var classes = merge(className, prefix('row', 'header-row'));\n var items = weekKeys;\n\n if (isoWeek) {\n items = weekKeys.filter(function (v) {\n return v !== 'sunday';\n });\n items.push('sunday');\n }\n\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"row\"\n }, rest, {\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }\n }), showWeekNumbers && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('cell'),\n role: \"columnheader\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 29\n }\n }), items.map(function (key) {\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: key,\n className: prefix('cell'),\n role: \"columnheader\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('cell-content'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 13\n }\n }, locale === null || locale === void 0 ? void 0 : locale[key]));\n }));\n});\n\nTableHeaderRow.displayName = 'CalendarTableHeaderRow';\nTableHeaderRow.propTypes = {\n as: _propTypes.default.elementType,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string\n};\nvar _default = TableHeaderRow;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Calendar/TableHeaderRow.tsx?");
1987
+ 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 _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 = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _CalendarContext = __webpack_require__(/*! ./CalendarContext */ \"./src/Calendar/CalendarContext.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Calendar/TableHeaderRow.tsx\",\n _this = void 0;\n\nvar weekKeys = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n\nvar TableHeaderRow = /*#__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 ? 'calendar-table' : _props$classPrefix,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\"]);\n\n var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),\n locale = _useCalendarContext.locale,\n showWeekNumbers = _useCalendarContext.showWeekNumbers,\n isoWeek = _useCalendarContext.isoWeek;\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var classes = merge(className, prefix('row', 'header-row'));\n var items = weekKeys;\n\n if (isoWeek) {\n items = weekKeys.filter(function (v) {\n return v !== 'sunday';\n });\n items.push('sunday');\n }\n\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"row\"\n }, rest, {\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }\n }), showWeekNumbers && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('header-cell'),\n role: \"columnheader\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 29\n }\n }), items.map(function (key) {\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: key,\n className: prefix('header-cell'),\n role: \"columnheader\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('header-cell-content'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 13\n }\n }, locale === null || locale === void 0 ? void 0 : locale[key]));\n }));\n});\n\nTableHeaderRow.displayName = 'CalendarTableHeaderRow';\nTableHeaderRow.propTypes = {\n as: _propTypes.default.elementType,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string\n};\nvar _default = TableHeaderRow;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Calendar/TableHeaderRow.tsx?");
1988
1988
 
1989
1989
  /***/ }),
1990
1990
 
@@ -2072,7 +2072,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2072
2072
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2073
2073
 
2074
2074
  "use strict";
2075
- 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 _extends3 = _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 _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 _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 _shallowEqual = _interopRequireDefault(__webpack_require__(/*! ../utils/shallowEqual */ \"./src/utils/shallowEqual.ts\"));\n\nvar _DropdownMenu = _interopRequireDefault(__webpack_require__(/*! ./DropdownMenu */ \"./src/Cascader/DropdownMenu.tsx\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./src/Cascader/utils.ts\");\n\nvar _utils2 = __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/Cascader/Cascader.tsx\",\n _this = void 0;\n\nvar emptyArray = [];\n\nvar Cascader = /*#__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$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n _props$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\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 defaultValue = props.defaultValue,\n placeholder = props.placeholder,\n disabled = props.disabled,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\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 overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n valueProp = props.value,\n inline = props.inline,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n menuWidth = props.menuWidth,\n menuHeight = props.menuHeight,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n parentSelectable = props.parentSelectable,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n id = props.id,\n renderMenuItem = props.renderMenuItem,\n renderSearchItem = props.renderSearchItem,\n renderValue = props.renderValue,\n renderMenu = props.renderMenu,\n renderExtraFooter = props.renderExtraFooter,\n onEnter = props.onEnter,\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 getChildren = props.getChildren,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"classPrefix\", \"childrenKey\", \"valueKey\", \"labelKey\", \"defaultValue\", \"placeholder\", \"disabled\", \"disabledItemValues\", \"appearance\", \"cleanable\", \"locale\", \"toggleAs\", \"style\", \"value\", \"inline\", \"menuClassName\", \"menuStyle\", \"menuWidth\", \"menuHeight\", \"searchable\", \"parentSelectable\", \"placement\", \"id\", \"renderMenuItem\", \"renderSearchItem\", \"renderValue\", \"renderMenu\", \"renderExtraFooter\", \"onEnter\", \"onExited\", \"onClean\", \"onChange\", \"onSelect\", \"onSearch\", \"onClose\", \"onOpen\", \"getChildren\"]); // 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 _useState2 = (0, _react.useState)((0, _treeUtils.flattenTree)(data, childrenKey)),\n flattenData = _useState2[0],\n setFlattenData = _useState2[1];\n\n var triggerRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n\n var _ref = (0, _utils2.useControlled)(valueProp, defaultValue),\n value = _ref[0],\n setValue = _ref[1];\n\n var _usePaths = (0, _utils.usePaths)({\n data: data,\n valueKey: valueKey,\n childrenKey: childrenKey,\n value: value\n }),\n selectedPaths = _usePaths.selectedPaths,\n valueToPaths = _usePaths.valueToPaths,\n columnData = _usePaths.columnData,\n addColumn = _usePaths.addColumn,\n romoveColumnByIndex = _usePaths.romoveColumnByIndex,\n setValueToPaths = _usePaths.setValueToPaths,\n setColumnData = _usePaths.setColumnData,\n setSelectedPaths = _usePaths.setSelectedPaths,\n enforceUpdate = _usePaths.enforceUpdate;\n\n (0, _react.useEffect)(function () {\n setFlattenData((0, _treeUtils.flattenTree)(data, childrenKey));\n }, [data, childrenKey]);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n\n var _useCustom = (0, _utils2.useCustom)('Picker', overrideLocale),\n locale = _useCustom.locale,\n rtl = _useCustom.rtl;\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 hasValue = valueToPaths.length > 0 || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n\n var _useClassNames = (0, _utils2.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useState3 = (0, _react.useState)(''),\n searchKeyword = _useState3[0],\n setSearchKeyword = _useState3[1];\n\n var someKeyword = (0, _react.useCallback)(function (item, keyword) {\n if (item[labelKey].match(new RegExp((0, _utils2.getSafeRegExpString)(keyword || searchKeyword), 'i'))) {\n return true;\n }\n\n if (item.parent && someKeyword(item.parent)) {\n return true;\n }\n\n return false;\n }, [labelKey, searchKeyword]);\n var getSearchResult = (0, _react.useCallback)(function (keyword) {\n var items = [];\n var result = flattenData.filter(function (item) {\n if (!parentSelectable && item[childrenKey]) {\n return false;\n }\n\n return someKeyword(item, keyword);\n });\n\n for (var i = 0; i < result.length; i++) {\n items.push(result[i]); // A maximum of 100 search results are returned.\n\n if (i === 99) {\n return items;\n }\n }\n\n return items;\n }, [childrenKey, flattenData, someKeyword, parentSelectable]); // Used to hover the focuse item when trigger `onKeydown`\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {\n rtl: rtl,\n data: flattenData,\n valueKey: valueKey,\n defaultLayer: valueToPaths !== null && valueToPaths !== void 0 && valueToPaths.length ? valueToPaths.length - 1 : 0,\n target: function target() {\n return overlayRef.current;\n },\n callback: (0, _react.useCallback)(function (value) {\n enforceUpdate(value, true);\n }, [enforceUpdate])\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setFocusItemValue = _useFocusItemValue.setFocusItemValue,\n setLayer = _useFocusItemValue.setLayer,\n setKeys = _useFocusItemValue.setKeys,\n onFocusItem = _useFocusItemValue.onKeyDown;\n\n var handleSearch = (0, _react.useCallback)(function (value, event) {\n var items = getSearchResult(value);\n setSearchKeyword(value);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);\n\n if (items.length > 0) {\n setFocusItemValue(items[0][valueKey]);\n setLayer(0);\n setKeys([]);\n }\n }, [getSearchResult, onSearch, setFocusItemValue, setKeys, setLayer, valueKey]);\n var handleEntered = (0, _react.useCallback)(function () {\n if (!targetRef.current) {\n return;\n }\n\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [onOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n if (!targetRef.current) {\n return;\n }\n\n onClose === null || onClose === void 0 ? void 0 : onClose();\n setActive(false);\n setSearchKeyword('');\n }, [onClose]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();\n }, [triggerRef]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || !targetRef.current) {\n return;\n }\n\n setColumnData([data]);\n setValue(null);\n setSelectedPaths([]);\n setValueToPaths([]);\n onChange === null || onChange === void 0 ? void 0 : onChange(null, event);\n }, [data, disabled, onChange, setSelectedPaths, setColumnData, setValueToPaths, setValue]);\n var handleMenuPressEnter = (0, _react.useCallback)(function (event) {\n var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {\n return item[valueKey] === focusItemValue;\n });\n var isLeafNode = focusItem && !focusItem[childrenKey];\n\n if (isLeafNode) {\n setValue(focusItemValue);\n setValueToPaths(selectedPaths);\n\n if (selectedPaths.length) {\n setLayer(selectedPaths.length - 1);\n }\n\n if (!(0, _shallowEqual.default)(value, focusItemValue)) {\n onChange === null || onChange === void 0 ? void 0 : onChange(focusItemValue !== null && focusItemValue !== void 0 ? focusItemValue : null, event);\n }\n\n handleClose();\n }\n }, [childrenKey, data, focusItemValue, handleClose, onChange, selectedPaths, setLayer, setValue, setValueToPaths, value, valueKey]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.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 }, rest));\n\n var handleSelect = function handleSelect(node, cascadePaths, isLeafNode, event) {\n var _node$childrenKey, _node$childrenKey2, _triggerRef$current2;\n\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);\n setSelectedPaths(cascadePaths);\n var nextValue = node[valueKey];\n var columnIndex = cascadePaths.length; // Lazy load node's children\n\n if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0) {\n node.loading = true;\n var children = getChildren(node);\n\n if (children instanceof Promise) {\n children.then(function (data) {\n node.loading = false;\n node[childrenKey] = data;\n\n if (targetRef.current) {\n addColumn(data, columnIndex);\n }\n });\n } else {\n node.loading = false;\n node[childrenKey] = children;\n addColumn(children, columnIndex);\n }\n } else if ((_node$childrenKey2 = node[childrenKey]) !== null && _node$childrenKey2 !== void 0 && _node$childrenKey2.length) {\n addColumn(node[childrenKey], columnIndex);\n } else {\n // Removes subsequent columns of the current column when the clicked node is a leaf node.\n romoveColumnByIndex(columnIndex);\n }\n\n if (isLeafNode) {\n // Determines whether the option is a leaf node, and if so, closes the picker.\n handleClose(); // Update the selected path to the value path.\n // That is, the selected path will be displayed on the button after clicking the child node.\n\n setValueToPaths(cascadePaths);\n setValue(nextValue);\n\n if (!(0, _shallowEqual.default)(value, nextValue)) {\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n }\n\n return;\n }\n /** When the parent is optional, the value and the displayed path are updated. */\n\n\n if (parentSelectable && !(0, _shallowEqual.default)(value, nextValue)) {\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n setValueToPaths(cascadePaths);\n } // Update menu position\n\n\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.updatePosition();\n };\n /**\n * The search structure option is processed after being selected.\n */\n\n\n var handleSearchRowSelect = function handleSearchRowSelect(node, nodes, event) {\n var nextValue = node[valueKey];\n handleClose();\n setSearchKeyword('');\n setValue(nextValue);\n setValueToPaths(nodes);\n enforceUpdate(nextValue);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n };\n\n var renderSearchRow = function renderSearchRow(item, key) {\n var regx = new RegExp((0, _utils2.getSafeRegExpString)(searchKeyword), 'ig');\n var nodes = (0, _treeUtils.getNodeParents)(item);\n nodes.push(item);\n var formattedNodes = nodes.map(function (node) {\n var _extends2;\n\n var labelElements = [];\n var a = node[labelKey].split(regx);\n var b = node[labelKey].match(regx);\n\n for (var i = 0; i < a.length; i++) {\n labelElements.push(a[i]);\n\n if (b && b[i]) {\n labelElements.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n key: i,\n className: prefix('cascader-search-match'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 456,\n columnNumber: 13\n }\n }, b[i]));\n }\n }\n\n return (0, _extends3.default)({}, node, (_extends2 = {}, _extends2[labelKey] = labelElements, _extends2));\n });\n var disabled = disabledItemValues.some(function (value) {\n return formattedNodes.some(function (node) {\n return node[valueKey] === value;\n });\n });\n var itemClasses = prefix('cascader-row', {\n 'cascader-row-disabled': disabled,\n 'cascader-row-focus': item[valueKey] === focusItemValue\n });\n var label = formattedNodes.map(function (node, index) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n key: \"col-\" + index,\n className: prefix('cascader-col'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 477,\n columnNumber: 7\n }\n }, node[labelKey]);\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: key,\n \"aria-disabled\": disabled,\n \"data-key\": item[valueKey],\n className: itemClasses,\n onClick: function onClick(event) {\n if (!disabled) {\n handleSearchRowSelect(item, nodes, event);\n }\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 7\n }\n }, renderSearchItem ? renderSearchItem(label, nodes) : label);\n };\n\n var renderSearchResultPanel = function renderSearchResultPanel() {\n if (searchKeyword === '') {\n return null;\n }\n\n var items = getSearchResult();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('cascader-search-panel'),\n \"data-layer\": 0,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 506,\n columnNumber: 7\n }\n }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('none'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 11\n }\n }, locale.noResultsText));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var _ref2 = positionProps || {},\n left = _ref2.left,\n top = _ref2.top,\n className = _ref2.className;\n\n var styles = (0, _extends3.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var classes = merge(className, menuClassName, prefix('cascader-menu', {\n inline: inline\n }));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils2.mergeRefs)(overlayRef, speakerRef),\n className: classes,\n style: styles,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 522,\n columnNumber: 7\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: 530,\n columnNumber: 11\n }\n }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {\n id: id ? id + \"-listbox\" : undefined,\n menuWidth: menuWidth,\n menuHeight: menuHeight,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n classPrefix: 'picker-cascader-menu',\n cascadeData: columnData,\n cascadePaths: selectedPaths,\n activeItemValue: value // FIXME make onSelect generic\n ,\n onSelect: handleSelect,\n renderMenu: renderMenu,\n renderMenuItem: renderMenuItem,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 540,\n columnNumber: 11\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var selectedElement = placeholder;\n\n if (valueToPaths.length > 0) {\n selectedElement = [];\n valueToPaths.forEach(function (item, index) {\n var key = item[valueKey] || item[labelKey];\n selectedElement.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n key: key,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 570,\n columnNumber: 28\n }\n }, item[labelKey]));\n\n if (index < valueToPaths.length - 1) {\n selectedElement.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"separator\",\n key: key + \"-separator\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 573,\n columnNumber: 11\n }\n }, ' / '));\n }\n });\n }\n\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, valueToPaths, 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 _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends3.default)({}, props, {\n classPrefix: classPrefix,\n hasValue: hasValue,\n name: 'cascader',\n appearance: appearance,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1]; // TODO: bad api design\n // consider an isolated Menu component\n\n\n if (inline) {\n return renderDropdownMenu();\n }\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, _utils2.createChainedFunction)(handleEntered, onEnter),\n onExited: (0, _utils2.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 605,\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: 613,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n ref: targetRef,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n onClean: (0, _utils2.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value !== null && value !== void 0 ? value : '',\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 614,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));\n});\n\nCascader.displayName = 'Cascader';\nCascader.propTypes = (0, _extends3.default)({}, _Picker.listPickerPropTypes, {\n disabledItemValues: _propTypes.default.array,\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n renderMenu: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n cleanable: _propTypes.default.bool,\n renderMenuItem: _propTypes.default.func,\n renderSearchItem: _propTypes.default.func,\n menuWidth: _propTypes.default.number,\n menuHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n searchable: _propTypes.default.bool,\n inline: _propTypes.default.bool,\n parentSelectable: _propTypes.default.bool\n});\nvar _default = Cascader;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Cascader/Cascader.tsx?");
2075
+ 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 _extends3 = _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 _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 _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 _shallowEqual = _interopRequireDefault(__webpack_require__(/*! ../utils/shallowEqual */ \"./src/utils/shallowEqual.ts\"));\n\nvar _DropdownMenu = _interopRequireDefault(__webpack_require__(/*! ./DropdownMenu */ \"./src/Cascader/DropdownMenu.tsx\"));\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./src/Cascader/utils.ts\");\n\nvar _utils2 = __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/Cascader/Cascader.tsx\",\n _this = void 0;\n\nvar emptyArray = [];\n\nvar Cascader = /*#__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$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n _props$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\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 defaultValue = props.defaultValue,\n placeholder = props.placeholder,\n disabled = props.disabled,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\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 overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n valueProp = props.value,\n inline = props.inline,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n menuWidth = props.menuWidth,\n menuHeight = props.menuHeight,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n parentSelectable = props.parentSelectable,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n id = props.id,\n renderMenuItem = props.renderMenuItem,\n renderSearchItem = props.renderSearchItem,\n renderValue = props.renderValue,\n renderMenu = props.renderMenu,\n renderExtraFooter = props.renderExtraFooter,\n onEnter = props.onEnter,\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 getChildren = props.getChildren,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"classPrefix\", \"childrenKey\", \"valueKey\", \"labelKey\", \"defaultValue\", \"placeholder\", \"disabled\", \"disabledItemValues\", \"appearance\", \"cleanable\", \"locale\", \"toggleAs\", \"style\", \"value\", \"inline\", \"menuClassName\", \"menuStyle\", \"menuWidth\", \"menuHeight\", \"searchable\", \"parentSelectable\", \"placement\", \"id\", \"renderMenuItem\", \"renderSearchItem\", \"renderValue\", \"renderMenu\", \"renderExtraFooter\", \"onEnter\", \"onExited\", \"onClean\", \"onChange\", \"onSelect\", \"onSearch\", \"onClose\", \"onOpen\", \"getChildren\"]); // 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 _useState2 = (0, _react.useState)((0, _treeUtils.flattenTree)(data, childrenKey)),\n flattenData = _useState2[0],\n setFlattenData = _useState2[1];\n\n var triggerRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n\n var _ref = (0, _utils2.useControlled)(valueProp, defaultValue),\n value = _ref[0],\n setValue = _ref[1];\n\n var _usePaths = (0, _utils.usePaths)({\n data: data,\n valueKey: valueKey,\n childrenKey: childrenKey,\n value: value\n }),\n selectedPaths = _usePaths.selectedPaths,\n valueToPaths = _usePaths.valueToPaths,\n columnData = _usePaths.columnData,\n addColumn = _usePaths.addColumn,\n removeColumnByIndex = _usePaths.removeColumnByIndex,\n setValueToPaths = _usePaths.setValueToPaths,\n setColumnData = _usePaths.setColumnData,\n setSelectedPaths = _usePaths.setSelectedPaths,\n enforceUpdate = _usePaths.enforceUpdate;\n\n (0, _react.useEffect)(function () {\n setFlattenData((0, _treeUtils.flattenTree)(data, childrenKey));\n }, [data, childrenKey]);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n\n var _useCustom = (0, _utils2.useCustom)('Picker', overrideLocale),\n locale = _useCustom.locale,\n rtl = _useCustom.rtl;\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 hasValue = valueToPaths.length > 0 || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);\n\n var _useClassNames = (0, _utils2.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useState3 = (0, _react.useState)(''),\n searchKeyword = _useState3[0],\n setSearchKeyword = _useState3[1];\n\n var someKeyword = (0, _react.useCallback)(function (item, keyword) {\n if (item[labelKey].match(new RegExp((0, _utils2.getSafeRegExpString)(keyword || searchKeyword), 'i'))) {\n return true;\n }\n\n if (item.parent && someKeyword(item.parent)) {\n return true;\n }\n\n return false;\n }, [labelKey, searchKeyword]);\n var getSearchResult = (0, _react.useCallback)(function (keyword) {\n var items = [];\n var result = flattenData.filter(function (item) {\n if (!parentSelectable && item[childrenKey]) {\n return false;\n }\n\n return someKeyword(item, keyword);\n });\n\n for (var i = 0; i < result.length; i++) {\n items.push(result[i]); // A maximum of 100 search results are returned.\n\n if (i === 99) {\n return items;\n }\n }\n\n return items;\n }, [childrenKey, flattenData, someKeyword, parentSelectable]); // Used to hover the focuse item when trigger `onKeydown`\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {\n rtl: rtl,\n data: flattenData,\n valueKey: valueKey,\n defaultLayer: valueToPaths !== null && valueToPaths !== void 0 && valueToPaths.length ? valueToPaths.length - 1 : 0,\n target: function target() {\n return overlayRef.current;\n },\n callback: (0, _react.useCallback)(function (value) {\n enforceUpdate(value, true);\n }, [enforceUpdate])\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setFocusItemValue = _useFocusItemValue.setFocusItemValue,\n setLayer = _useFocusItemValue.setLayer,\n setKeys = _useFocusItemValue.setKeys,\n onFocusItem = _useFocusItemValue.onKeyDown;\n\n var handleSearch = (0, _react.useCallback)(function (value, event) {\n var items = getSearchResult(value);\n setSearchKeyword(value);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);\n\n if (items.length > 0) {\n setFocusItemValue(items[0][valueKey]);\n setLayer(0);\n setKeys([]);\n }\n }, [getSearchResult, onSearch, setFocusItemValue, setKeys, setLayer, valueKey]);\n var handleEntered = (0, _react.useCallback)(function () {\n if (!targetRef.current) {\n return;\n }\n\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n setActive(true);\n }, [onOpen]);\n var handleExited = (0, _react.useCallback)(function () {\n if (!targetRef.current) {\n return;\n }\n\n onClose === null || onClose === void 0 ? void 0 : onClose();\n setActive(false);\n setSearchKeyword('');\n }, [onClose]);\n var handleClose = (0, _react.useCallback)(function () {\n var _triggerRef$current;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();\n }, [triggerRef]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || !targetRef.current) {\n return;\n }\n\n setColumnData([data]);\n setValue(null);\n setSelectedPaths([]);\n setValueToPaths([]);\n onChange === null || onChange === void 0 ? void 0 : onChange(null, event);\n }, [data, disabled, onChange, setSelectedPaths, setColumnData, setValueToPaths, setValue]);\n var handleMenuPressEnter = (0, _react.useCallback)(function (event) {\n var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {\n return item[valueKey] === focusItemValue;\n });\n var isLeafNode = focusItem && !focusItem[childrenKey];\n\n if (isLeafNode) {\n setValue(focusItemValue);\n setValueToPaths(selectedPaths);\n\n if (selectedPaths.length) {\n setLayer(selectedPaths.length - 1);\n }\n\n if (!(0, _shallowEqual.default)(value, focusItemValue)) {\n onChange === null || onChange === void 0 ? void 0 : onChange(focusItemValue !== null && focusItemValue !== void 0 ? focusItemValue : null, event);\n }\n\n handleClose();\n }\n }, [childrenKey, data, focusItemValue, handleClose, onChange, selectedPaths, setLayer, setValue, setValueToPaths, value, valueKey]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.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 }, rest));\n\n var handleSelect = function handleSelect(node, cascadePaths, isLeafNode, event) {\n var _node$childrenKey, _node$childrenKey2, _triggerRef$current2;\n\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);\n setSelectedPaths(cascadePaths);\n var nextValue = node[valueKey];\n var columnIndex = cascadePaths.length; // Lazy load node's children\n\n if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0) {\n node.loading = true;\n var children = getChildren(node);\n\n if (children instanceof Promise) {\n children.then(function (data) {\n node.loading = false;\n node[childrenKey] = data;\n\n if (targetRef.current) {\n addColumn(data, columnIndex);\n }\n });\n } else {\n node.loading = false;\n node[childrenKey] = children;\n addColumn(children, columnIndex);\n }\n } else if ((_node$childrenKey2 = node[childrenKey]) !== null && _node$childrenKey2 !== void 0 && _node$childrenKey2.length) {\n addColumn(node[childrenKey], columnIndex);\n } else {\n // Removes subsequent columns of the current column when the clicked node is a leaf node.\n removeColumnByIndex(columnIndex);\n }\n\n if (isLeafNode) {\n // Determines whether the option is a leaf node, and if so, closes the picker.\n handleClose(); // Update the selected path to the value path.\n // That is, the selected path will be displayed on the button after clicking the child node.\n\n setValueToPaths(cascadePaths);\n setValue(nextValue);\n\n if (!(0, _shallowEqual.default)(value, nextValue)) {\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n }\n\n return;\n }\n /** When the parent is optional, the value and the displayed path are updated. */\n\n\n if (parentSelectable && !(0, _shallowEqual.default)(value, nextValue)) {\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n setValueToPaths(cascadePaths);\n } // Update menu position\n\n\n (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.updatePosition();\n };\n /**\n * The search structure option is processed after being selected.\n */\n\n\n var handleSearchRowSelect = function handleSearchRowSelect(node, nodes, event) {\n var nextValue = node[valueKey];\n handleClose();\n setSearchKeyword('');\n setValue(nextValue);\n setValueToPaths(nodes);\n enforceUpdate(nextValue);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n };\n\n var renderSearchRow = function renderSearchRow(item, key) {\n var regx = new RegExp((0, _utils2.getSafeRegExpString)(searchKeyword), 'ig');\n var nodes = (0, _treeUtils.getNodeParents)(item);\n nodes.push(item);\n var formattedNodes = nodes.map(function (node) {\n var _extends2;\n\n var labelElements = [];\n var a = node[labelKey].split(regx);\n var b = node[labelKey].match(regx);\n\n for (var i = 0; i < a.length; i++) {\n labelElements.push(a[i]);\n\n if (b && b[i]) {\n labelElements.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n key: i,\n className: prefix('cascader-search-match'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 456,\n columnNumber: 13\n }\n }, b[i]));\n }\n }\n\n return (0, _extends3.default)({}, node, (_extends2 = {}, _extends2[labelKey] = labelElements, _extends2));\n });\n var disabled = disabledItemValues.some(function (value) {\n return formattedNodes.some(function (node) {\n return node[valueKey] === value;\n });\n });\n var itemClasses = prefix('cascader-row', {\n 'cascader-row-disabled': disabled,\n 'cascader-row-focus': item[valueKey] === focusItemValue\n });\n var label = formattedNodes.map(function (node, index) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n key: \"col-\" + index,\n className: prefix('cascader-col'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 477,\n columnNumber: 7\n }\n }, node[labelKey]);\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: key,\n \"aria-disabled\": disabled,\n \"data-key\": item[valueKey],\n className: itemClasses,\n onClick: function onClick(event) {\n if (!disabled) {\n handleSearchRowSelect(item, nodes, event);\n }\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 7\n }\n }, renderSearchItem ? renderSearchItem(label, nodes) : label);\n };\n\n var renderSearchResultPanel = function renderSearchResultPanel() {\n if (searchKeyword === '') {\n return null;\n }\n\n var items = getSearchResult();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('cascader-search-panel'),\n \"data-layer\": 0,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 506,\n columnNumber: 7\n }\n }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('none'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 11\n }\n }, locale.noResultsText));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var _ref2 = positionProps || {},\n left = _ref2.left,\n top = _ref2.top,\n className = _ref2.className;\n\n var styles = (0, _extends3.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var classes = merge(className, menuClassName, prefix('cascader-menu', {\n inline: inline\n }));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils2.mergeRefs)(overlayRef, speakerRef),\n className: classes,\n style: styles,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 522,\n columnNumber: 7\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: 530,\n columnNumber: 11\n }\n }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {\n id: id ? id + \"-listbox\" : undefined,\n menuWidth: menuWidth,\n menuHeight: menuHeight,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n classPrefix: 'picker-cascader-menu',\n cascadeData: columnData,\n cascadePaths: selectedPaths,\n activeItemValue: value // FIXME make onSelect generic\n ,\n onSelect: handleSelect,\n renderMenu: renderMenu,\n renderMenuItem: renderMenuItem,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 540,\n columnNumber: 11\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var selectedElement = placeholder;\n\n if (valueToPaths.length > 0) {\n selectedElement = [];\n valueToPaths.forEach(function (item, index) {\n var key = item[valueKey] || item[labelKey];\n selectedElement.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n key: key,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 570,\n columnNumber: 28\n }\n }, item[labelKey]));\n\n if (index < valueToPaths.length - 1) {\n selectedElement.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"separator\",\n key: key + \"-separator\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 573,\n columnNumber: 11\n }\n }, ' / '));\n }\n });\n }\n\n if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value, valueToPaths, 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 _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends3.default)({}, props, {\n classPrefix: classPrefix,\n hasValue: hasValue,\n name: 'cascader',\n appearance: appearance,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1]; // TODO: bad api design\n // consider an isolated Menu component\n\n\n if (inline) {\n return renderDropdownMenu();\n }\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, _utils2.createChainedFunction)(handleEntered, onEnter),\n onExited: (0, _utils2.createChainedFunction)(handleExited, onExited),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 605,\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: 613,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n ref: targetRef,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n onClean: (0, _utils2.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value !== null && value !== void 0 ? value : '',\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 614,\n columnNumber: 9\n }\n }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));\n});\n\nCascader.displayName = 'Cascader';\nCascader.propTypes = (0, _extends3.default)({}, _Picker.listPickerPropTypes, {\n disabledItemValues: _propTypes.default.array,\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n renderMenu: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n cleanable: _propTypes.default.bool,\n renderMenuItem: _propTypes.default.func,\n renderSearchItem: _propTypes.default.func,\n menuWidth: _propTypes.default.number,\n menuHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n searchable: _propTypes.default.bool,\n inline: _propTypes.default.bool,\n parentSelectable: _propTypes.default.bool\n});\nvar _default = Cascader;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Cascader/Cascader.tsx?");
2076
2076
 
2077
2077
  /***/ }),
2078
2078
 
@@ -2105,7 +2105,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2105
2105
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2106
2106
 
2107
2107
  "use strict";
2108
- 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(params) {\n var data = params.data,\n valueKey = params.valueKey,\n childrenKey = params.childrenKey,\n value = params.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 * Remove subsequent columns of the specified column\n * @param index\n */\n\n\n function romoveColumnByIndex(index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index)));\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 romoveColumnByIndex: romoveColumnByIndex\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/Cascader/utils.ts?");
2108
+ 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(params) {\n var data = params.data,\n valueKey = params.valueKey,\n childrenKey = params.childrenKey,\n value = params.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 * Remove subsequent columns of the specified column\n * @param index\n */\n\n\n function removeColumnByIndex(index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index)));\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 removeColumnByIndex: removeColumnByIndex\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/Cascader/utils.ts?");
2109
2109
 
2110
2110
  /***/ }),
2111
2111
 
@@ -2336,7 +2336,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2336
2336
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2337
2337
 
2338
2338
  "use strict";
2339
- 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.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 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(CustomContext.Provider, {\n value: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 5\n }\n }, children, /*#__PURE__*/_react.default.createElement(Portal, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 100,\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: 101,\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: 103,\n columnNumber: 13\n }\n });\n }))));\n};\n\nvar _default = CustomProvider;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/CustomProvider/CustomProvider.tsx?");
2339
+ 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.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 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 disableRipple = props.disableRipple,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"children\", \"classPrefix\", \"theme\", \"toastContainer\", \"disableRipple\"]);\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 disableRipple: disableRipple\n }, rest);\n }, [classPrefix, theme, disableRipple, 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(CustomContext.Provider, {\n value: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 5\n }\n }, children, /*#__PURE__*/_react.default.createElement(Portal, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 104,\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: 105,\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: 107,\n columnNumber: 13\n }\n });\n }))));\n};\n\nvar _default = CustomProvider;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/CustomProvider/CustomProvider.tsx?");
2340
2340
 
2341
2341
  /***/ }),
2342
2342
 
@@ -3513,7 +3513,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3513
3513
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3514
3514
 
3515
3515
  "use strict";
3516
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\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 _extends3 = _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 _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _DropdownMenu = _interopRequireDefault(__webpack_require__(/*! ./DropdownMenu */ \"./src/MultiCascader/DropdownMenu.tsx\"));\n\nvar _Checkbox = _interopRequireDefault(__webpack_require__(/*! ../Checkbox */ \"./src/Checkbox/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./src/MultiCascader/utils.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils2 = __webpack_require__(/*! ../Cascader/utils */ \"./src/Cascader/utils.ts\");\n\nvar _utils3 = __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/MultiCascader/MultiCascader.tsx\",\n _this = void 0;\n\nvar emptyArray = [];\n\nvar MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _selectedPaths;\n\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$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n defaultValue = props.defaultValue,\n valueProp = props.value,\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$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\n disabled = props.disabled,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n _props$countable = props.countable,\n countable = _props$countable === void 0 ? true : _props$countable,\n _props$cascade = props.cascade,\n cascade = _props$cascade === void 0 ? true : _props$cascade,\n inline = props.inline,\n placeholder = props.placeholder,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n menuWidth = props.menuWidth,\n menuHeight = props.menuHeight,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$uncheckableIte = props.uncheckableItemValues,\n uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,\n id = props.id,\n getChildren = props.getChildren,\n renderValue = props.renderValue,\n renderMenu = props.renderMenu,\n renderMenuItem = props.renderMenuItem,\n renderExtraFooter = props.renderExtraFooter,\n onEnter = props.onEnter,\n onExit = props.onExit,\n onExited = props.onExited,\n onClean = props.onClean,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onChange = props.onChange,\n onOpen = props.onOpen,\n onClose = props.onClose,\n onCheck = props.onCheck,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"classPrefix\", \"defaultValue\", \"value\", \"valueKey\", \"labelKey\", \"childrenKey\", \"disabled\", \"disabledItemValues\", \"cleanable\", \"locale\", \"toggleAs\", \"style\", \"countable\", \"cascade\", \"inline\", \"placeholder\", \"placement\", \"appearance\", \"menuWidth\", \"menuHeight\", \"menuClassName\", \"menuStyle\", \"searchable\", \"uncheckableItemValues\", \"id\", \"getChildren\", \"renderValue\", \"renderMenu\", \"renderMenuItem\", \"renderExtraFooter\", \"onEnter\", \"onExit\", \"onExited\", \"onClean\", \"onSearch\", \"onSelect\", \"onChange\", \"onOpen\", \"onClose\", \"onCheck\"]);\n var itemKeys = {\n childrenKey: childrenKey,\n labelKey: labelKey,\n valueKey: valueKey\n };\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var _useFlattenData = (0, _utils.useFlattenData)(data, itemKeys),\n flattenData = _useFlattenData.flattenData,\n addFlattenData = _useFlattenData.addFlattenData;\n\n var _useCascadeValue = (0, _utils.useCascadeValue)((0, _extends3.default)({}, itemKeys, {\n uncheckableItemValues: uncheckableItemValues,\n cascade: cascade,\n value: valueProp || defaultValue\n }), flattenData),\n value = _useCascadeValue.value,\n setValue = _useCascadeValue.setValue,\n splitValue = _useCascadeValue.splitValue; // The columns displayed in the cascading panel.\n\n\n var _useColumnData = (0, _utils.useColumnData)(flattenData),\n columnData = _useColumnData.columnData,\n setColumnData = _useColumnData.setColumnData,\n addColumn = _useColumnData.addColumn,\n romoveColumnByIndex = _useColumnData.romoveColumnByIndex,\n enforceUpdateColumnData = _useColumnData.enforceUpdateColumnData;\n\n (0, _utils3.useUpdateEffect)(function () {\n enforceUpdateColumnData(data);\n }, [data]); // The path after cascading data selection.\n\n var _useState2 = (0, _react.useState)(),\n selectedPaths = _useState2[0],\n setSelectedPaths = _useState2[1];\n\n var triggerRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n\n var _useCustom = (0, _utils3.useCustom)('Picker', overrideLocale),\n locale = _useCustom.locale,\n rtl = _useCustom.rtl;\n\n var selectedItems = flattenData.filter(function (item) {\n return value.some(function (v) {\n return v === item[valueKey];\n });\n }) || []; // Used to hover the focuse item when trigger `onKeydown`\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(selectedPaths === null || selectedPaths === void 0 ? void 0 : (_selectedPaths = selectedPaths[selectedPaths.length - 1]) === null || _selectedPaths === void 0 ? void 0 : _selectedPaths[valueKey], {\n rtl: rtl,\n data: flattenData,\n valueKey: valueKey,\n defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,\n target: function target() {\n return overlayRef.current;\n },\n callback: (0, _react.useCallback)(function (value) {\n var _getColumnsAndPaths = (0, _utils2.getColumnsAndPaths)(data, value, {\n valueKey: valueKey,\n childrenKey: childrenKey,\n isAttachChildren: true\n }),\n columns = _getColumnsAndPaths.columns,\n paths = _getColumnsAndPaths.paths;\n\n setColumnData(columns);\n setSelectedPaths(paths);\n }, [childrenKey, data, setColumnData, valueKey])\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setLayer = _useFocusItemValue.setLayer,\n setKeys = _useFocusItemValue.setKeys,\n onFocusItem = _useFocusItemValue.onKeyDown;\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 hasValue = selectedItems.length > 0 || Number(valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && (0, _isFunction.default)(renderValue);\n\n var _useClassNames = (0, _utils3.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useState3 = (0, _react.useState)(''),\n searchKeyword = _useState3[0],\n setSearchKeyword = _useState3[1];\n\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 setActive(false);\n setSearchKeyword('');\n }, []);\n var handleSelect = (0, _react.useCallback)(function (node, cascadePaths, event) {\n var _node$childrenKey, _node$childrenKey2, _triggerRef$current, _triggerRef$current$u;\n\n setSelectedPaths(cascadePaths);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);\n var columnIndex = cascadePaths.length; // Lazy load node's children\n\n if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0) {\n node.loading = true;\n var children = getChildren(node);\n\n if (children instanceof Promise) {\n children.then(function (data) {\n node.loading = false;\n node[childrenKey] = data;\n\n if (targetRef.current) {\n addFlattenData(data, node);\n addColumn(data, columnIndex);\n }\n });\n } else {\n node.loading = false;\n node[childrenKey] = children;\n addFlattenData(children, node);\n addColumn(children, columnIndex);\n }\n } else if ((_node$childrenKey2 = node[childrenKey]) !== null && _node$childrenKey2 !== void 0 && _node$childrenKey2.length) {\n addColumn(node[childrenKey], columnIndex);\n } else {\n // Removes subsequent columns of the current column when the clicked node is a leaf node.\n romoveColumnByIndex(columnIndex);\n }\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$u = _triggerRef$current.updatePosition) === null || _triggerRef$current$u === void 0 ? void 0 : _triggerRef$current$u.call(_triggerRef$current);\n }, [onSelect, getChildren, childrenKey, addFlattenData, addColumn, romoveColumnByIndex]);\n var handleCheck = (0, _react.useCallback)(function (node, event, checked) {\n var nodeValue = node[valueKey];\n var nextValue = [];\n\n if (cascade) {\n nextValue = splitValue(node, checked, value).value;\n } else {\n nextValue = [].concat(value);\n\n if (checked) {\n nextValue.push(nodeValue);\n } else {\n nextValue = nextValue.filter(function (n) {\n return n !== nodeValue;\n });\n }\n }\n\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);\n }, [cascade, onChange, onCheck, setValue, splitValue, value, valueKey]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || !targetRef.current) {\n return;\n }\n\n setSelectedPaths([]);\n setValue([]);\n setColumnData([data]);\n onChange === null || onChange === void 0 ? void 0 : onChange([], event);\n }, [data, disabled, onChange, setColumnData, setValue]);\n var handleMenuPressEnter = (0, _react.useCallback)(function (event) {\n var _overlayRef$current;\n\n var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {\n return item[valueKey] === focusItemValue;\n });\n var checkbox = (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.querySelector(\"[data-key=\\\"\" + focusItemValue + \"\\\"] [type=\\\"checkbox\\\"]\");\n\n if (checkbox) {\n handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');\n }\n }, [data, focusItemValue, handleCheck, valueKey]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.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 }, rest));\n var handleSearch = (0, _react.useCallback)(function (value, event) {\n setSearchKeyword(value);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);\n\n if (value) {\n setLayer(0);\n } else if (selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length) {\n setLayer(selectedPaths.length - 1);\n }\n\n setKeys([]);\n }, [onSearch, selectedPaths, setKeys, setLayer]);\n var getSearchResult = (0, _react.useCallback)(function () {\n var items = [];\n var result = flattenData.filter(function (item) {\n if (uncheckableItemValues.some(function (value) {\n return item[valueKey] === value;\n })) {\n return false;\n }\n\n if (item[labelKey].match(new RegExp((0, _utils3.getSafeRegExpString)(searchKeyword), 'i'))) {\n return true;\n }\n\n return false;\n });\n\n for (var i = 0; i < result.length; i++) {\n items.push(result[i]); // A maximum of 100 search results are returned.\n\n if (i === 99) {\n return items;\n }\n }\n\n return items;\n }, [flattenData, labelKey, searchKeyword, uncheckableItemValues, valueKey]);\n\n var renderSearchRow = function renderSearchRow(item, key) {\n var _extends2;\n\n var nodes = (0, _treeUtils.getNodeParents)(item);\n var regx = new RegExp((0, _utils3.getSafeRegExpString)(searchKeyword), 'ig');\n var labelElements = [];\n var a = item[labelKey].split(regx);\n var b = item[labelKey].match(regx);\n\n for (var i = 0; i < a.length; i++) {\n labelElements.push(a[i]);\n\n if (b[i]) {\n labelElements.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n key: i,\n className: prefix('cascader-search-match'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 394,\n columnNumber: 13\n }\n }, b[i]));\n }\n }\n\n nodes.push((0, _extends3.default)({}, item, (_extends2 = {}, _extends2[labelKey] = labelElements, _extends2)));\n var active = value.some(function (value) {\n if (cascade) {\n return nodes.some(function (node) {\n return node[valueKey] === value;\n });\n }\n\n return item[valueKey] === value;\n });\n var disabled = disabledItemValues.some(function (value) {\n return nodes.some(function (node) {\n return node[valueKey] === value;\n });\n });\n var itemClasses = prefix('cascader-row', {\n 'cascader-row-disabled': disabled,\n 'cascader-row-focus': item[valueKey] === focusItemValue\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: key,\n className: itemClasses,\n \"aria-disabled\": disabled,\n \"data-key\": item[valueKey],\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 419,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {\n disabled: disabled,\n checked: active,\n value: item[valueKey],\n indeterminate: cascade && !active && (0, _utils.isSomeChildChecked)(item, value, {\n valueKey: valueKey,\n childrenKey: childrenKey\n }),\n onChange: function onChange(_value, checked, event) {\n handleCheck(item, event, checked);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('cascader-cols'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 431,\n columnNumber: 13\n }\n }, nodes.map(function (node, index) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n key: \"col-\" + index,\n className: prefix('cascader-col'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 433,\n columnNumber: 17\n }\n }, node[labelKey]);\n }))));\n };\n\n var renderSearchResultPanel = function renderSearchResultPanel() {\n if (searchKeyword === '') {\n return null;\n }\n\n var items = getSearchResult();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('cascader-search-panel'),\n \"data-layer\": 0,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 450,\n columnNumber: 9\n }\n }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('none'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 13\n }\n }, locale.noResultsText));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var _ref = positionProps || {},\n left = _ref.left,\n top = _ref.top,\n className = _ref.className;\n\n var styles = (0, _extends3.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var classes = merge(className, menuClassName, prefix('cascader-menu', 'multi-cascader-menu', {\n inline: inline\n }));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils3.mergeRefs)(overlayRef, speakerRef),\n className: classes,\n style: styles,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 471,\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: 479,\n columnNumber: 13\n }\n }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {\n id: id ? id + \"-listbox\" : undefined,\n cascade: cascade,\n menuWidth: menuWidth,\n menuHeight: menuHeight,\n uncheckableItemValues: uncheckableItemValues,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n classPrefix: 'picker-cascader-menu',\n cascadeData: columnData,\n cascadePaths: selectedPaths,\n value: value,\n onSelect: handleSelect,\n onCheck: handleCheck,\n renderMenu: renderMenu,\n renderMenuItem: renderMenuItem,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 490,\n columnNumber: 13\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var selectedElement = placeholder;\n\n if (selectedItems.length > 0) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedItems,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n prefix: prefix,\n cascade: cascade,\n locale: locale,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 9\n }\n });\n }\n\n if (hasValue && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value.length ? value : valueProp !== null && valueProp !== void 0 ? valueProp : [], selectedItems, 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 _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends3.default)({}, props, {\n classPrefix: classPrefix,\n hasValue: hasValue,\n countable: countable,\n name: 'cascader',\n appearance: appearance,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n if (inline) {\n return renderDropdownMenu();\n }\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, _utils3.createChainedFunction)(handleEntered, onEnter),\n onExited: (0, _utils3.createChainedFunction)(handleExited, onExited),\n onExit: (0, _utils3.createChainedFunction)(onClose, onExit),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 560,\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: 569,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n ref: targetRef,\n onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 570,\n columnNumber: 11\n }\n }), selectedElement || locale.placeholder)));\n});\n\nMultiCascader.displayName = 'MultiCascader';\nMultiCascader.propTypes = (0, _extends3.default)({}, _Picker.listPickerPropTypes, {\n value: _propTypes.default.array,\n disabledItemValues: _propTypes.default.array,\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n cascade: _propTypes.default.bool,\n inline: _propTypes.default.bool,\n countable: _propTypes.default.bool,\n menuWidth: _propTypes.default.number,\n menuHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n uncheckableItemValues: _propTypes.default.array,\n searchable: _propTypes.default.bool,\n renderMenuItem: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onCheck: _propTypes.default.func\n});\nvar _default = MultiCascader;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/MultiCascader/MultiCascader.tsx?");
3516
+ 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 _extends3 = _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 _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\n\nvar _isFunction = _interopRequireDefault(__webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"));\n\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\n\nvar _DropdownMenu = _interopRequireDefault(__webpack_require__(/*! ./DropdownMenu */ \"./src/MultiCascader/DropdownMenu.tsx\"));\n\nvar _Checkbox = _interopRequireDefault(__webpack_require__(/*! ../Checkbox */ \"./src/Checkbox/index.tsx\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./src/MultiCascader/utils.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _utils2 = __webpack_require__(/*! ../Cascader/utils */ \"./src/Cascader/utils.ts\");\n\nvar _utils3 = __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/MultiCascader/MultiCascader.tsx\",\n _this = void 0;\n\nvar emptyArray = [];\n\nvar MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _selectedPaths;\n\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$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,\n defaultValue = props.defaultValue,\n valueProp = props.value,\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$childrenKey = props.childrenKey,\n childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,\n disabled = props.disabled,\n _props$disabledItemVa = props.disabledItemValues,\n disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,\n _props$cleanable = props.cleanable,\n cleanable = _props$cleanable === void 0 ? true : _props$cleanable,\n overrideLocale = props.locale,\n toggleAs = props.toggleAs,\n style = props.style,\n _props$countable = props.countable,\n countable = _props$countable === void 0 ? true : _props$countable,\n _props$cascade = props.cascade,\n cascade = _props$cascade === void 0 ? true : _props$cascade,\n inline = props.inline,\n placeholder = props.placeholder,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,\n _props$appearance = props.appearance,\n appearance = _props$appearance === void 0 ? 'default' : _props$appearance,\n menuWidth = props.menuWidth,\n menuHeight = props.menuHeight,\n menuClassName = props.menuClassName,\n menuStyle = props.menuStyle,\n _props$searchable = props.searchable,\n searchable = _props$searchable === void 0 ? true : _props$searchable,\n _props$uncheckableIte = props.uncheckableItemValues,\n uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,\n id = props.id,\n getChildren = props.getChildren,\n renderValue = props.renderValue,\n renderMenu = props.renderMenu,\n renderMenuItem = props.renderMenuItem,\n renderExtraFooter = props.renderExtraFooter,\n onEnter = props.onEnter,\n onExit = props.onExit,\n onExited = props.onExited,\n onClean = props.onClean,\n onSearch = props.onSearch,\n onSelect = props.onSelect,\n onChange = props.onChange,\n onOpen = props.onOpen,\n onClose = props.onClose,\n onCheck = props.onCheck,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"data\", \"classPrefix\", \"defaultValue\", \"value\", \"valueKey\", \"labelKey\", \"childrenKey\", \"disabled\", \"disabledItemValues\", \"cleanable\", \"locale\", \"toggleAs\", \"style\", \"countable\", \"cascade\", \"inline\", \"placeholder\", \"placement\", \"appearance\", \"menuWidth\", \"menuHeight\", \"menuClassName\", \"menuStyle\", \"searchable\", \"uncheckableItemValues\", \"id\", \"getChildren\", \"renderValue\", \"renderMenu\", \"renderMenuItem\", \"renderExtraFooter\", \"onEnter\", \"onExit\", \"onExited\", \"onClean\", \"onSearch\", \"onSelect\", \"onChange\", \"onOpen\", \"onClose\", \"onCheck\"]);\n var itemKeys = {\n childrenKey: childrenKey,\n labelKey: labelKey,\n valueKey: valueKey\n };\n\n var _useState = (0, _react.useState)(false),\n active = _useState[0],\n setActive = _useState[1];\n\n var _useFlattenData = (0, _utils.useFlattenData)(data, itemKeys),\n flattenData = _useFlattenData.flattenData,\n addFlattenData = _useFlattenData.addFlattenData;\n\n var _useCascadeValue = (0, _utils.useCascadeValue)((0, _extends3.default)({}, itemKeys, {\n uncheckableItemValues: uncheckableItemValues,\n cascade: cascade,\n value: valueProp || defaultValue\n }), flattenData),\n value = _useCascadeValue.value,\n setValue = _useCascadeValue.setValue,\n splitValue = _useCascadeValue.splitValue; // The columns displayed in the cascading panel.\n\n\n var _useColumnData = (0, _utils.useColumnData)(flattenData),\n columnData = _useColumnData.columnData,\n setColumnData = _useColumnData.setColumnData,\n addColumn = _useColumnData.addColumn,\n removeColumnByIndex = _useColumnData.removeColumnByIndex,\n enforceUpdateColumnData = _useColumnData.enforceUpdateColumnData;\n\n (0, _utils3.useUpdateEffect)(function () {\n enforceUpdateColumnData(data);\n }, [data]); // The path after cascading data selection.\n\n var _useState2 = (0, _react.useState)(),\n selectedPaths = _useState2[0],\n setSelectedPaths = _useState2[1];\n\n var triggerRef = (0, _react.useRef)(null);\n var overlayRef = (0, _react.useRef)(null);\n var targetRef = (0, _react.useRef)(null);\n var searchInputRef = (0, _react.useRef)(null);\n (0, _Picker.usePublicMethods)(ref, {\n triggerRef: triggerRef,\n overlayRef: overlayRef,\n targetRef: targetRef\n });\n\n var _useCustom = (0, _utils3.useCustom)('Picker', overrideLocale),\n locale = _useCustom.locale,\n rtl = _useCustom.rtl;\n\n var selectedItems = flattenData.filter(function (item) {\n return value.some(function (v) {\n return v === item[valueKey];\n });\n }) || []; // Used to hover the focuse item when trigger `onKeydown`\n\n var _useFocusItemValue = (0, _Picker.useFocusItemValue)(selectedPaths === null || selectedPaths === void 0 ? void 0 : (_selectedPaths = selectedPaths[selectedPaths.length - 1]) === null || _selectedPaths === void 0 ? void 0 : _selectedPaths[valueKey], {\n rtl: rtl,\n data: flattenData,\n valueKey: valueKey,\n defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,\n target: function target() {\n return overlayRef.current;\n },\n callback: (0, _react.useCallback)(function (value) {\n var _getColumnsAndPaths = (0, _utils2.getColumnsAndPaths)(data, value, {\n valueKey: valueKey,\n childrenKey: childrenKey,\n isAttachChildren: true\n }),\n columns = _getColumnsAndPaths.columns,\n paths = _getColumnsAndPaths.paths;\n\n setColumnData(columns);\n setSelectedPaths(paths);\n }, [childrenKey, data, setColumnData, valueKey])\n }),\n focusItemValue = _useFocusItemValue.focusItemValue,\n setLayer = _useFocusItemValue.setLayer,\n setKeys = _useFocusItemValue.setKeys,\n onFocusItem = _useFocusItemValue.onKeyDown;\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 hasValue = selectedItems.length > 0 || Number(valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && (0, _isFunction.default)(renderValue);\n\n var _useClassNames = (0, _utils3.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge;\n\n var _useState3 = (0, _react.useState)(''),\n searchKeyword = _useState3[0],\n setSearchKeyword = _useState3[1];\n\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 setActive(false);\n setSearchKeyword('');\n }, []);\n var handleSelect = (0, _react.useCallback)(function (node, cascadePaths, event) {\n var _node$childrenKey, _node$childrenKey2, _triggerRef$current, _triggerRef$current$u;\n\n setSelectedPaths(cascadePaths);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);\n var columnIndex = cascadePaths.length; // Lazy load node's children\n\n if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0) {\n node.loading = true;\n var children = getChildren(node);\n\n if (children instanceof Promise) {\n children.then(function (data) {\n node.loading = false;\n node[childrenKey] = data;\n\n if (targetRef.current || inline) {\n addFlattenData(data, node);\n addColumn(data, columnIndex);\n }\n });\n } else {\n node.loading = false;\n node[childrenKey] = children;\n addFlattenData(children, node);\n addColumn(children, columnIndex);\n }\n } else if ((_node$childrenKey2 = node[childrenKey]) !== null && _node$childrenKey2 !== void 0 && _node$childrenKey2.length) {\n addColumn(node[childrenKey], columnIndex);\n } else {\n // Removes subsequent columns of the current column when the clicked node is a leaf node.\n removeColumnByIndex(columnIndex);\n }\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$u = _triggerRef$current.updatePosition) === null || _triggerRef$current$u === void 0 ? void 0 : _triggerRef$current$u.call(_triggerRef$current);\n }, [onSelect, getChildren, childrenKey, inline, addFlattenData, addColumn, removeColumnByIndex]);\n var handleCheck = (0, _react.useCallback)(function (node, event, checked) {\n var nodeValue = node[valueKey];\n var nextValue = [];\n\n if (cascade) {\n nextValue = splitValue(node, checked, value).value;\n } else {\n nextValue = [].concat(value);\n\n if (checked) {\n nextValue.push(nodeValue);\n } else {\n nextValue = nextValue.filter(function (n) {\n return n !== nodeValue;\n });\n }\n }\n\n setValue(nextValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);\n }, [cascade, onChange, onCheck, setValue, splitValue, value, valueKey]);\n var handleClean = (0, _react.useCallback)(function (event) {\n if (disabled || !targetRef.current) {\n return;\n }\n\n setSelectedPaths([]);\n setValue([]);\n setColumnData([data]);\n onChange === null || onChange === void 0 ? void 0 : onChange([], event);\n }, [data, disabled, onChange, setColumnData, setValue]);\n var handleMenuPressEnter = (0, _react.useCallback)(function (event) {\n var _overlayRef$current;\n\n var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {\n return item[valueKey] === focusItemValue;\n });\n var checkbox = (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.querySelector(\"[data-key=\\\"\" + focusItemValue + \"\\\"] [type=\\\"checkbox\\\"]\");\n\n if (checkbox) {\n handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');\n }\n }, [data, focusItemValue, handleCheck, valueKey]);\n var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.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 }, rest));\n var handleSearch = (0, _react.useCallback)(function (value, event) {\n setSearchKeyword(value);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);\n\n if (value) {\n setLayer(0);\n } else if (selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length) {\n setLayer(selectedPaths.length - 1);\n }\n\n setKeys([]);\n }, [onSearch, selectedPaths, setKeys, setLayer]);\n var getSearchResult = (0, _react.useCallback)(function () {\n var items = [];\n var result = flattenData.filter(function (item) {\n if (uncheckableItemValues.some(function (value) {\n return item[valueKey] === value;\n })) {\n return false;\n }\n\n if (item[labelKey].match(new RegExp((0, _utils3.getSafeRegExpString)(searchKeyword), 'i'))) {\n return true;\n }\n\n return false;\n });\n\n for (var i = 0; i < result.length; i++) {\n items.push(result[i]); // A maximum of 100 search results are returned.\n\n if (i === 99) {\n return items;\n }\n }\n\n return items;\n }, [flattenData, labelKey, searchKeyword, uncheckableItemValues, valueKey]);\n\n var renderSearchRow = function renderSearchRow(item, key) {\n var _extends2;\n\n var nodes = (0, _treeUtils.getNodeParents)(item);\n var regx = new RegExp((0, _utils3.getSafeRegExpString)(searchKeyword), 'ig');\n var labelElements = [];\n var a = item[labelKey].split(regx);\n var b = item[labelKey].match(regx);\n\n for (var i = 0; i < a.length; i++) {\n labelElements.push(a[i]);\n\n if (b[i]) {\n labelElements.push( /*#__PURE__*/_react.default.createElement(\"span\", {\n key: i,\n className: prefix('cascader-search-match'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 394,\n columnNumber: 13\n }\n }, b[i]));\n }\n }\n\n nodes.push((0, _extends3.default)({}, item, (_extends2 = {}, _extends2[labelKey] = labelElements, _extends2)));\n var active = value.some(function (value) {\n if (cascade) {\n return nodes.some(function (node) {\n return node[valueKey] === value;\n });\n }\n\n return item[valueKey] === value;\n });\n var disabled = disabledItemValues.some(function (value) {\n return nodes.some(function (node) {\n return node[valueKey] === value;\n });\n });\n var itemClasses = prefix('cascader-row', {\n 'cascader-row-disabled': disabled,\n 'cascader-row-focus': item[valueKey] === focusItemValue\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: key,\n className: itemClasses,\n \"aria-disabled\": disabled,\n \"data-key\": item[valueKey],\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 419,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {\n disabled: disabled,\n checked: active,\n value: item[valueKey],\n indeterminate: cascade && !active && (0, _utils.isSomeChildChecked)(item, value, {\n valueKey: valueKey,\n childrenKey: childrenKey\n }),\n onChange: function onChange(_value, checked, event) {\n handleCheck(item, event, checked);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('cascader-cols'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 431,\n columnNumber: 13\n }\n }, nodes.map(function (node, index) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n key: \"col-\" + index,\n className: prefix('cascader-col'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 433,\n columnNumber: 17\n }\n }, node[labelKey]);\n }))));\n };\n\n var renderSearchResultPanel = function renderSearchResultPanel() {\n if (searchKeyword === '') {\n return null;\n }\n\n var items = getSearchResult();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('cascader-search-panel'),\n \"data-layer\": 0,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 450,\n columnNumber: 9\n }\n }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('none'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 13\n }\n }, locale.noResultsText));\n };\n\n var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {\n var _ref = positionProps || {},\n left = _ref.left,\n top = _ref.top,\n className = _ref.className;\n\n var styles = (0, _extends3.default)({}, menuStyle, {\n left: left,\n top: top\n });\n var classes = merge(className, menuClassName, prefix('cascader-menu', 'multi-cascader-menu', {\n inline: inline\n }));\n return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n ref: (0, _utils3.mergeRefs)(overlayRef, speakerRef),\n className: classes,\n style: styles,\n target: triggerRef,\n onKeyDown: onPickerKeyDown,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 471,\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: 479,\n columnNumber: 13\n }\n }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {\n id: id ? id + \"-listbox\" : undefined,\n cascade: cascade,\n menuWidth: menuWidth,\n menuHeight: menuHeight,\n uncheckableItemValues: uncheckableItemValues,\n disabledItemValues: disabledItemValues,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n classPrefix: 'picker-cascader-menu',\n cascadeData: columnData,\n cascadePaths: selectedPaths,\n value: value,\n onSelect: handleSelect,\n onCheck: handleCheck,\n renderMenu: renderMenu,\n renderMenuItem: renderMenuItem,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 490,\n columnNumber: 13\n }\n }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());\n };\n\n var selectedElement = placeholder;\n\n if (selectedItems.length > 0) {\n selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {\n selectedItems: selectedItems,\n countable: countable,\n valueKey: valueKey,\n labelKey: labelKey,\n childrenKey: childrenKey,\n prefix: prefix,\n cascade: cascade,\n locale: locale,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 9\n }\n });\n }\n\n if (hasValue && (0, _isFunction.default)(renderValue)) {\n selectedElement = renderValue(value.length ? value : valueProp !== null && valueProp !== void 0 ? valueProp : [], selectedItems, 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 _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends3.default)({}, props, {\n classPrefix: classPrefix,\n hasValue: hasValue,\n countable: countable,\n name: 'cascader',\n appearance: appearance,\n cleanable: cleanable\n })),\n classes = _usePickerClassName[0],\n usedClassNamePropKeys = _usePickerClassName[1];\n\n if (inline) {\n return renderDropdownMenu();\n }\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, _utils3.createChainedFunction)(handleEntered, onEnter),\n onExited: (0, _utils3.createChainedFunction)(handleExited, onExited),\n onExit: (0, _utils3.createChainedFunction)(onClose, onExit),\n speaker: renderDropdownMenu,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 560,\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: 569,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {\n id: id,\n as: toggleAs,\n appearance: appearance,\n disabled: disabled,\n ref: targetRef,\n onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),\n onKeyDown: onPickerKeyDown,\n cleanable: cleanable && !disabled,\n hasValue: hasValue,\n active: active,\n placement: placement,\n inputValue: value,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 570,\n columnNumber: 11\n }\n }), selectedElement || locale.placeholder)));\n});\n\nMultiCascader.displayName = 'MultiCascader';\nMultiCascader.propTypes = (0, _extends3.default)({}, _Picker.listPickerPropTypes, {\n value: _propTypes.default.array,\n disabledItemValues: _propTypes.default.array,\n locale: _propTypes.default.any,\n appearance: _propTypes.default.oneOf(['default', 'subtle']),\n cascade: _propTypes.default.bool,\n inline: _propTypes.default.bool,\n countable: _propTypes.default.bool,\n menuWidth: _propTypes.default.number,\n menuHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n uncheckableItemValues: _propTypes.default.array,\n searchable: _propTypes.default.bool,\n renderMenuItem: _propTypes.default.func,\n renderMenu: _propTypes.default.func,\n onSearch: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onCheck: _propTypes.default.func\n});\nvar _default = MultiCascader;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/MultiCascader/MultiCascader.tsx?");
3517
3517
 
3518
3518
  /***/ }),
3519
3519
 
@@ -3535,7 +3535,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3535
3535
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3536
3536
 
3537
3537
  "use strict";
3538
- 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, itemKeys.childrenKey)),\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, itemKeys.childrenKey));\n }, [data, itemKeys.childrenKey]);\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 * Remove subsequent columns of the specified column\n * @param index\n */\n\n\n function romoveColumnByIndex(index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index)));\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 romoveColumnByIndex: romoveColumnByIndex,\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?");
3538
+ 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, itemKeys.childrenKey)),\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, itemKeys.childrenKey));\n }, [data, itemKeys.childrenKey]);\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 * Remove subsequent columns of the specified column\n * @param index\n */\n\n\n function removeColumnByIndex(index) {\n setColumnData([].concat((0, _slice.default)(columnData, 0, index)));\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 removeColumnByIndex: removeColumnByIndex,\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?");
3539
3539
 
3540
3540
  /***/ }),
3541
3541
 
@@ -3821,7 +3821,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3821
3821
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3822
3822
 
3823
3823
  "use strict";
3824
- 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.OverlayCloseCause = 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 * The reason that triggers closing of an overlay\n * - Clicking outside of the overlay\n * - Direct invocation of triggerRef.current.close()\n */\nvar OverlayCloseCause;\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 */\n\nexports.OverlayCloseCause = OverlayCloseCause;\n\n(function (OverlayCloseCause) {\n OverlayCloseCause[OverlayCloseCause[\"ClickOutside\"] = 0] = \"ClickOutside\";\n OverlayCloseCause[OverlayCloseCause[\"ImperativeHandle\"] = 1] = \"ImperativeHandle\";\n})(OverlayCloseCause || (exports.OverlayCloseCause = OverlayCloseCause = {}));\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, callback) {\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 callback === null || callback === void 0 ? void 0 : callback();\n }, ms);\n }\n\n setOpen(false);\n callback === null || callback === void 0 ? void 0 : callback();\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: function close(delay) {\n return handleClose(delay, function () {\n return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ImperativeHandle);\n });\n },\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, function () {\n return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ClickOutside);\n }) : 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: 493,\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: 517,\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?");
3824
+ 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.OverlayCloseCause = 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 * The reason that triggers closing of an overlay\n * - Clicking outside of the overlay\n * - Direct invocation of triggerRef.current.close()\n */\nvar OverlayCloseCause;\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 */\n\nexports.OverlayCloseCause = OverlayCloseCause;\n\n(function (OverlayCloseCause) {\n OverlayCloseCause[OverlayCloseCause[\"ClickOutside\"] = 0] = \"ClickOutside\";\n OverlayCloseCause[OverlayCloseCause[\"ImperativeHandle\"] = 1] = \"ImperativeHandle\";\n})(OverlayCloseCause || (exports.OverlayCloseCause = OverlayCloseCause = {}));\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, callback) {\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 callback === null || callback === void 0 ? void 0 : callback();\n }, ms);\n }\n\n setOpen(false);\n callback === null || callback === void 0 ? void 0 : callback();\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: function close(delay) {\n return handleClose(delay, function () {\n return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ImperativeHandle);\n });\n },\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, function () {\n return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ClickOutside);\n }) : 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: 493,\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 if (typeof children === 'object' && children.type === _react.default.Fragment || typeof children === 'string') {\n console.error('[rsuite] The OverlayTrigger component does not accept strings or Fragments as child.');\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: 526,\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?");
3825
3825
 
3826
3826
  /***/ }),
3827
3827
 
@@ -3997,7 +3997,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
3997
3997
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3998
3998
 
3999
3999
  "use strict";
4000
- 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 _Loader = _interopRequireDefault(__webpack_require__(/*! ../Loader */ \"./src/Loader/index.tsx\"));\n\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\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 _props$loading = props.loading,\n loading = _props$loading === void 0 ? false : _props$loading,\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\", \"loading\", \"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 if (!loading) {\n setActive(true);\n }\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, loading, 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: 190,\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: 204,\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: 218,\n columnNumber: 7\n }\n }), /*#__PURE__*/_react.default.createElement(_Stack.default, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }\n }, label && /*#__PURE__*/_react.default.createElement(_Stack.default.Item, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('label'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }\n }, label)), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, {\n grow: 1,\n style: {\n overflow: 'hidden'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }\n }, loading ? /*#__PURE__*/_react.default.createElement(_Loader.default, {\n style: {\n display: 'block',\n padding: '1px 0'\n },\n \"data-testid\": \"spinner\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 15\n }\n }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__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: 244,\n columnNumber: 17\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: 262,\n columnNumber: 19\n }\n }, 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: 273,\n columnNumber: 13\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: 280,\n columnNumber: 21\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?");
4000
+ 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 _Loader = _interopRequireDefault(__webpack_require__(/*! ../Loader */ \"./src/Loader/index.tsx\"));\n\nvar _Stack = _interopRequireDefault(__webpack_require__(/*! ../Stack */ \"./src/Stack/index.tsx\"));\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 _props$loading = props.loading,\n loading = _props$loading === void 0 ? false : _props$loading,\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\", \"loading\", \"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 if (!loading) {\n setActive(true);\n }\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, loading, 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: 190,\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: 204,\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: 218,\n columnNumber: 7\n }\n }), /*#__PURE__*/_react.default.createElement(_Stack.default, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }\n }, label && /*#__PURE__*/_react.default.createElement(_Stack.default.Item, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('label'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }\n }, label)), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, {\n grow: 1,\n style: {\n overflow: 'hidden'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }\n }, loading ? /*#__PURE__*/_react.default.createElement(_Loader.default, {\n style: {\n display: 'block',\n padding: '1px 0'\n },\n \"data-testid\": \"spinner\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 15\n }\n }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__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: 244,\n columnNumber: 17\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: 262,\n columnNumber: 19\n }\n }, 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: 273,\n columnNumber: 13\n }\n }), caret && !showCleanButton && /*#__PURE__*/_react.default.createElement(Caret, {\n className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)([\"caret\"]))),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 41\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?");
4001
4001
 
4002
4002
  /***/ }),
4003
4003
 
@@ -4008,7 +4008,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
4008
4008
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4009
4009
 
4010
4010
  "use strict";
4011
- 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.pickTriggerPropKeys = exports.omitTriggerPropKeys = 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 _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _OverlayTrigger = _interopRequireDefault(__webpack_require__(/*! ../Overlay/OverlayTrigger */ \"./src/Overlay/OverlayTrigger.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider */ \"./src/CustomProvider/index.tsx\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Picker/PickerToggleTrigger.tsx\",\n _this = void 0;\n\nvar omitTriggerPropKeys = ['onEntered', 'onExited', 'onEnter', 'onEntering', 'onExit', 'onExiting', 'open', 'defaultOpen', 'onHide', 'container', 'containerPadding', 'preventOverflow'];\nexports.omitTriggerPropKeys = omitTriggerPropKeys;\nvar pickTriggerPropKeys = [].concat(omitTriggerPropKeys, ['disabled', 'plaintext', 'readOnly', 'loading']);\nexports.pickTriggerPropKeys = pickTriggerPropKeys;\n\nvar PickerToggleTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var pickerProps = props.pickerProps,\n speaker = props.speaker,\n placement = props.placement,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'click' : _props$trigger,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"pickerProps\", \"speaker\", \"placement\", \"trigger\"]);\n var pickerTriggerProps = (0, _pick.default)(pickerProps, pickTriggerPropKeys);\n var context = (0, _react.useContext)(_CustomProvider.CustomContext);\n return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, (0, _extends2.default)({}, rest, pickerTriggerProps, {\n disabled: pickerTriggerProps.disabled || pickerTriggerProps.loading,\n ref: ref,\n trigger: trigger,\n placement: (0, _utils.placementPolyfill)(placement, context === null || context === void 0 ? void 0 : context.rtl),\n speaker: speaker,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 7\n }\n }));\n});\n\nPickerToggleTrigger.displayName = 'PickerToggleTrigger';\nvar _default = PickerToggleTrigger;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Picker/PickerToggleTrigger.tsx?");
4011
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.default = exports.pickTriggerPropKeys = exports.omitTriggerPropKeys = 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 = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _pick = _interopRequireDefault(__webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\"));\n\nvar _OverlayTrigger = _interopRequireDefault(__webpack_require__(/*! ../Overlay/OverlayTrigger */ \"./src/Overlay/OverlayTrigger.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Picker/PickerToggleTrigger.tsx\",\n _this = void 0;\n\nvar omitTriggerPropKeys = ['onEntered', 'onExited', 'onEnter', 'onEntering', 'onExit', 'onExiting', 'open', 'defaultOpen', 'onHide', 'container', 'containerPadding', 'preventOverflow'];\nexports.omitTriggerPropKeys = omitTriggerPropKeys;\nvar pickTriggerPropKeys = [].concat(omitTriggerPropKeys, ['disabled', 'plaintext', 'readOnly', 'loading']);\nexports.pickTriggerPropKeys = pickTriggerPropKeys;\n\nvar PickerToggleTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var pickerProps = props.pickerProps,\n speaker = props.speaker,\n placement = props.placement,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'click' : _props$trigger,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"pickerProps\", \"speaker\", \"placement\", \"trigger\"]);\n var pickerTriggerProps = (0, _pick.default)(pickerProps, pickTriggerPropKeys);\n\n var _useCustom = (0, _utils.useCustom)(),\n rtl = _useCustom.rtl;\n\n return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, (0, _extends2.default)({}, rest, pickerTriggerProps, {\n disabled: pickerTriggerProps.disabled || pickerTriggerProps.loading,\n ref: ref,\n trigger: trigger,\n placement: (0, _utils.placementPolyfill)(placement, rtl),\n speaker: speaker,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }\n }));\n});\n\nPickerToggleTrigger.displayName = 'PickerToggleTrigger';\nvar _default = PickerToggleTrigger;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Picker/PickerToggleTrigger.tsx?");
4012
4012
 
4013
4013
  /***/ }),
4014
4014
 
@@ -4338,7 +4338,7 @@ eval("\n\nexports.__esModule = true;\nexports.transformCharacterMapToValue = exp
4338
4338
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4339
4339
 
4340
4340
  "use strict";
4341
- 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 _getOffset = _interopRequireDefault(__webpack_require__(/*! dom-lib/getOffset */ \"./node_modules/dom-lib/esm/getOffset.js\"));\n\nvar _on = _interopRequireDefault(__webpack_require__(/*! dom-lib/on */ \"./node_modules/dom-lib/esm/on.js\"));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(/*! ../Animation/Transition */ \"./src/Animation/Transition.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Ripple/Ripple.tsx\",\n _this = void 0;\n\nvar getPosition = function getPosition(target, event) {\n var offset = (0, _getOffset.default)(target);\n var offsetX = (event.pageX || 0) - offset.left;\n var offsetY = (event.pageY || 0) - offset.top;\n var radiusX = Math.max(offset.width - offsetX, offsetX);\n var radiusY = Math.max(offset.height - offsetY, offsetY);\n var radius = Math.sqrt(Math.pow(radiusX, 2) + Math.pow(radiusY, 2));\n return {\n width: radius * 2,\n height: radius * 2,\n left: offsetX - radius,\n top: offsetY - radius\n };\n};\n\nvar Ripple = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'span' : _props$as,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'ripple' : _props$classPrefix,\n onMouseDown = props.onMouseDown,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\", \"onMouseDown\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var classes = merge(className, prefix('pond'));\n var triggerRef = (0, _react.useRef)(null);\n\n var _useState = (0, _react.useState)(false),\n rippling = _useState[0],\n setRippling = _useState[1];\n\n var _useState2 = (0, _react.useState)(),\n position = _useState2[0],\n setPosition = _useState2[1];\n\n var handleRippled = function handleRippled() {\n setRippling(false);\n };\n\n var handleMouseDown = (0, _react.useCallback)(function (event) {\n if (triggerRef.current) {\n var _position = getPosition(triggerRef.current, event);\n\n setRippling(true);\n setPosition(_position);\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(_position, event);\n }\n }, [onMouseDown]);\n (0, _react.useEffect)(function () {\n var _triggerRef$current;\n\n var parentNode = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.parentNode;\n\n if (parentNode) {\n var mousedownListener = (0, _on.default)(parentNode, 'mousedown', handleMouseDown);\n return function () {\n mousedownListener === null || mousedownListener === void 0 ? void 0 : mousedownListener.off();\n };\n }\n }, [handleMouseDown]);\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n className: classes,\n ref: (0, _utils.mergeRefs)(triggerRef, ref),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(_Transition.default, {\n in: rippling,\n enteringClassName: prefix('rippling'),\n onEntered: handleRippled,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }\n }, function (props, ref) {\n var className = props.className,\n transitionRest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"className\"]);\n return /*#__PURE__*/_react.default.createElement(\"span\", (0, _extends2.default)({}, transitionRest, {\n ref: ref,\n className: merge(withClassPrefix(), className),\n style: position,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 13\n }\n }));\n }));\n});\n\nRipple.displayName = 'Ripple';\nRipple.propTypes = {\n classPrefix: _propTypes.default.string,\n className: _propTypes.default.string,\n onMouseDown: _propTypes.default.func\n};\nvar _default = Ripple;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Ripple/Ripple.tsx?");
4341
+ 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 _getOffset = _interopRequireDefault(__webpack_require__(/*! dom-lib/getOffset */ \"./node_modules/dom-lib/esm/getOffset.js\"));\n\nvar _on = _interopRequireDefault(__webpack_require__(/*! dom-lib/on */ \"./node_modules/dom-lib/esm/on.js\"));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(/*! ../Animation/Transition */ \"./src/Animation/Transition.tsx\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Ripple/Ripple.tsx\",\n _this = void 0;\n\nvar getPosition = function getPosition(target, event) {\n var offset = (0, _getOffset.default)(target);\n var offsetX = (event.pageX || 0) - offset.left;\n var offsetY = (event.pageY || 0) - offset.top;\n var radiusX = Math.max(offset.width - offsetX, offsetX);\n var radiusY = Math.max(offset.height - offsetY, offsetY);\n var radius = Math.sqrt(Math.pow(radiusX, 2) + Math.pow(radiusY, 2));\n return {\n width: radius * 2,\n height: radius * 2,\n left: offsetX - radius,\n top: offsetY - radius\n };\n};\n\nvar Ripple = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _useCustom = (0, _utils.useCustom)(),\n disableRipple = _useCustom.disableRipple;\n\n var _props$as = props.as,\n Component = _props$as === void 0 ? 'span' : _props$as,\n className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'ripple' : _props$classPrefix,\n onMouseDown = props.onMouseDown,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"className\", \"classPrefix\", \"onMouseDown\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var classes = merge(className, prefix('pond'));\n var triggerRef = (0, _react.useRef)(null);\n\n var _useState = (0, _react.useState)(false),\n rippling = _useState[0],\n setRippling = _useState[1];\n\n var _useState2 = (0, _react.useState)(),\n position = _useState2[0],\n setPosition = _useState2[1];\n\n var handleRippled = function handleRippled() {\n setRippling(false);\n };\n\n var handleMouseDown = (0, _react.useCallback)(function (event) {\n if (triggerRef.current) {\n var _position = getPosition(triggerRef.current, event);\n\n setRippling(true);\n setPosition(_position);\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(_position, event);\n }\n }, [onMouseDown]);\n (0, _react.useEffect)(function () {\n var _triggerRef$current;\n\n var parentNode = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.parentNode;\n\n if (parentNode) {\n var mousedownListener = (0, _on.default)(parentNode, 'mousedown', handleMouseDown);\n return function () {\n mousedownListener === null || mousedownListener === void 0 ? void 0 : mousedownListener.off();\n };\n }\n }, [handleMouseDown]);\n\n if (disableRipple) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {\n className: classes,\n ref: (0, _utils.mergeRefs)(triggerRef, ref),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(_Transition.default, {\n in: rippling,\n enteringClassName: prefix('rippling'),\n onEntered: handleRippled,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 7\n }\n }, function (props, ref) {\n var className = props.className,\n transitionRest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"className\"]);\n return /*#__PURE__*/_react.default.createElement(\"span\", (0, _extends2.default)({}, transitionRest, {\n ref: ref,\n className: merge(withClassPrefix(), className),\n style: position,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 13\n }\n }));\n }));\n});\n\nRipple.displayName = 'Ripple';\nRipple.propTypes = {\n classPrefix: _propTypes.default.string,\n className: _propTypes.default.string,\n onMouseDown: _propTypes.default.func\n};\nvar _default = Ripple;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/Ripple/Ripple.tsx?");
4342
4342
 
4343
4343
  /***/ }),
4344
4344
 
@@ -4976,7 +4976,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
4976
4976
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4977
4977
 
4978
4978
  "use strict";
4979
- 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 _hasClass = _interopRequireDefault(__webpack_require__(/*! dom-lib/hasClass */ \"./node_modules/dom-lib/esm/hasClass.js\"));\n\nvar _ArrowDown = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/ArrowDown */ \"./node_modules/@rsuite/icons/legacy/ArrowDown.js\"));\n\nvar _Spinner = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/Spinner */ \"./node_modules/@rsuite/icons/legacy/Spinner.js\"));\n\nvar _reactToString = _interopRequireDefault(__webpack_require__(/*! ../utils/reactToString */ \"./src/utils/reactToString.ts\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/TreePicker/TreeNode.tsx\",\n _this = void 0;\n\nvar TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n rtl = _ref.rtl,\n label = _ref.label,\n layer = _ref.layer,\n style = _ref.style,\n active = _ref.active,\n loading = _ref.loading,\n nodeData = _ref.nodeData,\n className = _ref.className,\n _ref$classPrefix = _ref.classPrefix,\n classPrefix = _ref$classPrefix === void 0 ? 'tree-node' : _ref$classPrefix,\n disabled = _ref.disabled,\n _ref$visible = _ref.visible,\n visible = _ref$visible === void 0 ? true : _ref$visible,\n draggable = _ref.draggable,\n expand = _ref.expand,\n focus = _ref.focus,\n hasChildren = _ref.hasChildren,\n dragging = _ref.dragging,\n dragOver = _ref.dragOver,\n dragOverTop = _ref.dragOverTop,\n dragOverBottom = _ref.dragOverBottom,\n onSelect = _ref.onSelect,\n onDragStart = _ref.onDragStart,\n onDragOver = _ref.onDragOver,\n onDragEnter = _ref.onDragEnter,\n onDragLeave = _ref.onDragLeave,\n onDragEnd = _ref.onDragEnd,\n onDrop = _ref.onDrop,\n onExpand = _ref.onExpand,\n onRenderTreeIcon = _ref.onRenderTreeIcon,\n onRenderTreeNode = _ref.onRenderTreeNode,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, [\"as\", \"rtl\", \"label\", \"layer\", \"style\", \"active\", \"loading\", \"nodeData\", \"className\", \"classPrefix\", \"disabled\", \"visible\", \"draggable\", \"expand\", \"focus\", \"hasChildren\", \"dragging\", \"dragOver\", \"dragOverTop\", \"dragOverBottom\", \"onSelect\", \"onDragStart\", \"onDragOver\", \"onDragEnter\", \"onDragLeave\", \"onDragEnd\", \"onDrop\", \"onExpand\", \"onRenderTreeIcon\", \"onRenderTreeNode\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var getTitle = (0, _react.useCallback)(function () {\n if (typeof label === 'string') {\n return label;\n } else if ( /*#__PURE__*/_react.default.isValidElement(label)) {\n var nodes = (0, _reactToString.default)(label);\n return nodes.join('');\n }\n }, [label]);\n var handleExpand = (0, _react.useCallback)(function (event) {\n var _event$nativeEvent, _event$nativeEvent$st;\n\n // stop propagation when using custom loading icon\n event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData);\n }, [nodeData, onExpand]);\n var handleSelect = (0, _react.useCallback)(function (event) {\n if (disabled) {\n return;\n }\n\n if (event.target instanceof HTMLElement) {\n if ((0, _hasClass.default)(event.target.parentNode, prefix('expand-icon-wrapper'))) {\n return;\n }\n }\n\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);\n }, [nodeData, disabled, prefix, onSelect]);\n var handleDragStart = (0, _react.useCallback)(function (event) {\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);\n }, [nodeData, onDragStart]);\n var handleDragEnter = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n event.stopPropagation();\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);\n }, [nodeData, onDragEnter]);\n var handleDragOver = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n event.stopPropagation();\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);\n }, [nodeData, onDragOver]);\n var handleDragLeave = (0, _react.useCallback)(function (event) {\n event.stopPropagation();\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);\n }, [nodeData, onDragLeave]);\n var handleDragEnd = (0, _react.useCallback)(function (event) {\n event.stopPropagation();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);\n }, [nodeData, onDragEnd]);\n var handleDrop = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n event.stopPropagation();\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(nodeData, event);\n }, [nodeData, onDrop]);\n\n var renderIcon = function renderIcon() {\n var classes = prefix('expand-icon', 'icon', {\n expanded: expand\n });\n\n var expandIcon = /*#__PURE__*/_react.default.createElement(_ArrowDown.default, {\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 24\n }\n });\n\n if (loading) {\n expandIcon = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('loading-icon'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(_Spinner.default, {\n spin: true,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 13\n }\n }));\n }\n\n if (nodeData !== undefined && typeof onRenderTreeIcon === 'function') {\n var customIcon = onRenderTreeIcon(nodeData);\n expandIcon = customIcon !== null ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('custom-icon'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 13\n }\n }, customIcon) : expandIcon;\n }\n\n return hasChildren ? /*#__PURE__*/_react.default.createElement(\"div\", {\n role: \"button\",\n tabIndex: -1,\n \"data-ref\": nodeData.refKey,\n className: prefix('expand-icon-wrapper'),\n onClick: handleExpand,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 9\n }\n }, expandIcon) : null;\n };\n\n var renderLabel = function renderLabel() {\n var contentClasses = prefix('label-content', {\n dragging: dragging,\n 'drag-over': dragOver,\n 'drag-over-top': dragOverTop,\n 'drag-over-bottom': dragOverBottom\n });\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('label'),\n title: getTitle(),\n \"data-layer\": layer,\n \"data-key\": (nodeData === null || nodeData === void 0 ? void 0 : nodeData.refKey) || '',\n role: \"button\",\n tabIndex: -1,\n onClick: handleSelect,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: contentClasses,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }\n }, onRenderTreeNode ? onRenderTreeNode(nodeData) : label));\n };\n\n var classes = merge(className, withClassPrefix({\n disabled: disabled,\n active: active,\n 'text-muted': disabled,\n focus: focus\n }));\n var styles = (0, _extends2.default)({}, style, (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1));\n return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"treeitem\"\n }, rest, {\n \"aria-expanded\": expand,\n \"aria-label\": label,\n \"aria-level\": layer,\n \"aria-disabled\": disabled,\n \"aria-selected\": active,\n style: styles,\n className: classes,\n ref: ref,\n draggable: draggable,\n onDragStart: handleDragStart,\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDragEnd: handleDragEnd,\n onDrop: handleDrop,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 7\n }\n }), renderIcon(), renderLabel()) : null;\n});\nTreeNode.displayName = 'TreePickerNode';\nTreeNode.propTypes = {\n as: _propTypes.default.elementType,\n rtl: _propTypes.default.bool,\n focus: _propTypes.default.bool,\n layer: _propTypes.default.number,\n value: _propTypes.default.any,\n label: _propTypes.default.any,\n expand: _propTypes.default.bool,\n active: _propTypes.default.bool,\n loading: _propTypes.default.bool,\n visible: _propTypes.default.bool,\n nodeData: _propTypes.default.any,\n disabled: _propTypes.default.bool,\n draggable: _propTypes.default.bool,\n dragging: _propTypes.default.bool,\n dragOver: _propTypes.default.bool,\n dragOverTop: _propTypes.default.bool,\n dragOverBottom: _propTypes.default.bool,\n hasChildren: _propTypes.default.bool,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n style: _propTypes.default.object,\n onExpand: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onRenderTreeIcon: _propTypes.default.func,\n onRenderTreeNode: _propTypes.default.func,\n onDragStart: _propTypes.default.func,\n onDragEnter: _propTypes.default.func,\n onDragOver: _propTypes.default.func,\n onDragLeave: _propTypes.default.func,\n onDragEnd: _propTypes.default.func,\n onDrop: _propTypes.default.func\n};\nvar _default = TreeNode;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/TreePicker/TreeNode.tsx?");
4979
+ 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 _hasClass = _interopRequireDefault(__webpack_require__(/*! dom-lib/hasClass */ \"./node_modules/dom-lib/esm/hasClass.js\"));\n\nvar _ArrowDown = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/ArrowDown */ \"./node_modules/@rsuite/icons/legacy/ArrowDown.js\"));\n\nvar _Spinner = _interopRequireDefault(__webpack_require__(/*! @rsuite/icons/legacy/Spinner */ \"./node_modules/@rsuite/icons/legacy/Spinner.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _treeUtils = __webpack_require__(/*! ../utils/treeUtils */ \"./src/utils/treeUtils.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/TreePicker/TreeNode.tsx\",\n _this = void 0;\n\nvar TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n rtl = _ref.rtl,\n label = _ref.label,\n layer = _ref.layer,\n style = _ref.style,\n active = _ref.active,\n loading = _ref.loading,\n nodeData = _ref.nodeData,\n className = _ref.className,\n _ref$classPrefix = _ref.classPrefix,\n classPrefix = _ref$classPrefix === void 0 ? 'tree-node' : _ref$classPrefix,\n disabled = _ref.disabled,\n _ref$visible = _ref.visible,\n visible = _ref$visible === void 0 ? true : _ref$visible,\n draggable = _ref.draggable,\n expand = _ref.expand,\n focus = _ref.focus,\n hasChildren = _ref.hasChildren,\n dragging = _ref.dragging,\n dragOver = _ref.dragOver,\n dragOverTop = _ref.dragOverTop,\n dragOverBottom = _ref.dragOverBottom,\n onSelect = _ref.onSelect,\n onDragStart = _ref.onDragStart,\n onDragOver = _ref.onDragOver,\n onDragEnter = _ref.onDragEnter,\n onDragLeave = _ref.onDragLeave,\n onDragEnd = _ref.onDragEnd,\n onDrop = _ref.onDrop,\n onExpand = _ref.onExpand,\n onRenderTreeIcon = _ref.onRenderTreeIcon,\n onRenderTreeNode = _ref.onRenderTreeNode,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, [\"as\", \"rtl\", \"label\", \"layer\", \"style\", \"active\", \"loading\", \"nodeData\", \"className\", \"classPrefix\", \"disabled\", \"visible\", \"draggable\", \"expand\", \"focus\", \"hasChildren\", \"dragging\", \"dragOver\", \"dragOverTop\", \"dragOverBottom\", \"onSelect\", \"onDragStart\", \"onDragOver\", \"onDragEnter\", \"onDragLeave\", \"onDragEnd\", \"onDrop\", \"onExpand\", \"onRenderTreeIcon\", \"onRenderTreeNode\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n prefix = _useClassNames.prefix,\n merge = _useClassNames.merge,\n withClassPrefix = _useClassNames.withClassPrefix;\n\n var handleExpand = (0, _react.useCallback)(function (event) {\n var _event$nativeEvent, _event$nativeEvent$st;\n\n // stop propagation when using custom loading icon\n event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData);\n }, [nodeData, onExpand]);\n var handleSelect = (0, _react.useCallback)(function (event) {\n if (disabled) {\n return;\n }\n\n if (event.target instanceof HTMLElement) {\n if ((0, _hasClass.default)(event.target.parentNode, prefix('expand-icon-wrapper'))) {\n return;\n }\n }\n\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);\n }, [nodeData, disabled, prefix, onSelect]);\n var handleDragStart = (0, _react.useCallback)(function (event) {\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);\n }, [nodeData, onDragStart]);\n var handleDragEnter = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n event.stopPropagation();\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);\n }, [nodeData, onDragEnter]);\n var handleDragOver = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n event.stopPropagation();\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);\n }, [nodeData, onDragOver]);\n var handleDragLeave = (0, _react.useCallback)(function (event) {\n event.stopPropagation();\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);\n }, [nodeData, onDragLeave]);\n var handleDragEnd = (0, _react.useCallback)(function (event) {\n event.stopPropagation();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);\n }, [nodeData, onDragEnd]);\n var handleDrop = (0, _react.useCallback)(function (event) {\n event.preventDefault();\n event.stopPropagation();\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(nodeData, event);\n }, [nodeData, onDrop]);\n\n var renderIcon = function renderIcon() {\n var classes = prefix('expand-icon', 'icon', {\n expanded: expand\n });\n\n var expandIcon = /*#__PURE__*/_react.default.createElement(_ArrowDown.default, {\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 24\n }\n });\n\n if (loading) {\n expandIcon = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('loading-icon'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }\n }, /*#__PURE__*/_react.default.createElement(_Spinner.default, {\n spin: true,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }\n }));\n }\n\n if (nodeData !== undefined && typeof onRenderTreeIcon === 'function') {\n var customIcon = onRenderTreeIcon(nodeData);\n expandIcon = customIcon !== null ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: prefix('custom-icon'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 13\n }\n }, customIcon) : expandIcon;\n }\n\n return hasChildren ? /*#__PURE__*/_react.default.createElement(\"div\", {\n role: \"button\",\n tabIndex: -1,\n \"data-ref\": nodeData.refKey,\n className: prefix('expand-icon-wrapper'),\n onClick: handleExpand,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 9\n }\n }, expandIcon) : null;\n };\n\n var renderLabel = function renderLabel() {\n var contentClasses = prefix('label-content', {\n dragging: dragging,\n 'drag-over': dragOver,\n 'drag-over-top': dragOverTop,\n 'drag-over-bottom': dragOverBottom\n });\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: prefix('label'),\n title: (0, _treeUtils.stringifyTreeNodeLabel)(label),\n \"data-layer\": layer,\n \"data-key\": (nodeData === null || nodeData === void 0 ? void 0 : nodeData.refKey) || '',\n role: \"button\",\n tabIndex: -1,\n onClick: handleSelect,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 9\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: contentClasses,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }\n }, onRenderTreeNode ? onRenderTreeNode(nodeData) : label));\n };\n\n var classes = merge(className, withClassPrefix({\n disabled: disabled,\n active: active,\n 'text-muted': disabled,\n focus: focus\n }));\n var styles = (0, _extends2.default)({}, style, (0, _treeUtils.getTreeNodeIndent)(rtl, layer - 1));\n return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n role: \"treeitem\"\n }, rest, {\n \"aria-expanded\": expand,\n \"aria-label\": label,\n \"aria-level\": layer,\n \"aria-disabled\": disabled,\n \"aria-selected\": active,\n style: styles,\n className: classes,\n ref: ref,\n draggable: draggable,\n onDragStart: handleDragStart,\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDragEnd: handleDragEnd,\n onDrop: handleDrop,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 7\n }\n }), renderIcon(), renderLabel()) : null;\n});\nTreeNode.displayName = 'TreePickerNode';\nTreeNode.propTypes = {\n as: _propTypes.default.elementType,\n rtl: _propTypes.default.bool,\n focus: _propTypes.default.bool,\n layer: _propTypes.default.number,\n value: _propTypes.default.any,\n label: _propTypes.default.any,\n expand: _propTypes.default.bool,\n active: _propTypes.default.bool,\n loading: _propTypes.default.bool,\n visible: _propTypes.default.bool,\n nodeData: _propTypes.default.any,\n disabled: _propTypes.default.bool,\n draggable: _propTypes.default.bool,\n dragging: _propTypes.default.bool,\n dragOver: _propTypes.default.bool,\n dragOverTop: _propTypes.default.bool,\n dragOverBottom: _propTypes.default.bool,\n hasChildren: _propTypes.default.bool,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n style: _propTypes.default.object,\n onExpand: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onRenderTreeIcon: _propTypes.default.func,\n onRenderTreeNode: _propTypes.default.func,\n onDragStart: _propTypes.default.func,\n onDragEnter: _propTypes.default.func,\n onDragOver: _propTypes.default.func,\n onDragLeave: _propTypes.default.func,\n onDragEnd: _propTypes.default.func,\n onDrop: _propTypes.default.func\n};\nvar _default = TreeNode;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/TreePicker/TreeNode.tsx?");
4980
4980
 
4981
4981
  /***/ }),
4982
4982
 
@@ -4987,7 +4987,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
4987
4987
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4988
4988
 
4989
4989
  "use strict";
4990
- 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 _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 _Windowing = __webpack_require__(/*! ../Windowing */ \"./src/Windowing/index.ts\");\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\nvar emptyArray = [];\n\nvar itemSize = function itemSize() {\n return 36;\n};\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 _props$menuMaxHeight = props.menuMaxHeight,\n menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,\n menuStyle = props.menuStyle,\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 _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\", \"menuMaxHeight\", \"menuStyle\", \"className\", \"disabled\", \"placement\", \"cleanable\", \"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') || disabled || !cleanable) {\n return;\n }\n\n if (!isControlled) {\n setValue(null);\n }\n\n onChange === null || onChange === void 0 ? void 0 : onChange(nullValue, event);\n }, [cleanable, disabled, onChange, setValue, isControlled]);\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: 715,\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: 716,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('children'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 717,\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: 720,\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: 730,\n columnNumber: 7\n }\n }));\n };\n\n var renderVirtualListNode = function renderVirtualListNode(_ref3) {\n var index = _ref3.index,\n style = _ref3.style,\n data = _ref3.data;\n var node = data[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 }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 756,\n columnNumber: 23\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: 768,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('nodes'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 776,\n columnNumber: 9\n }\n }, virtualized ? /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {\n defaultHeight: inline ? height : menuMaxHeight,\n style: {\n width: 'auto',\n height: 'auto'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 778,\n columnNumber: 13\n }\n }, function (_ref5) {\n var height = _ref5.height;\n return /*#__PURE__*/_react.default.createElement(_Windowing.List, (0, _extends2.default)({\n ref: listRef,\n height: height,\n itemSize: itemSize,\n itemCount: formattedNodes.length,\n itemData: formattedNodes\n }, listProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 783,\n columnNumber: 17\n }\n }), renderVirtualListNode);\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 return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n autoWidth: menuAutoWidth,\n className: classes,\n style: mergedMenuStyle,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n onKeyDown: onPickerKeydown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 809,\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: 818,\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: 863,\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: 873,\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: 874,\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?");
4990
+ 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 _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 _Windowing = __webpack_require__(/*! ../Windowing */ \"./src/Windowing/index.ts\");\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\nvar emptyArray = [];\n\nvar itemSize = function itemSize() {\n return 36;\n};\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 _props$menuMaxHeight = props.menuMaxHeight,\n menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,\n menuStyle = props.menuStyle,\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 _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\", \"menuMaxHeight\", \"menuStyle\", \"className\", \"disabled\", \"placement\", \"cleanable\", \"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 var _event$dataTransfer;\n\n var dragMoverNode = (0, _treeUtils.createDragPreview)((0, _treeUtils.stringifyTreeNodeLabel)(nodeData[labelKey]), treePrefix('drag-preview'));\n (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.setDragImage(dragMoverNode, 0, 0);\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, labelKey, treePrefix, setDragNodeKeys, childrenKey, valueKey, setDragNode, flattenNodes, onDragStart]);\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 event.dataTransfer.dropEffect = 'none';\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 (0, _treeUtils.removeDragPreview)();\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 (0, _treeUtils.removeDragPreview)();\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') || disabled || !cleanable) {\n return;\n }\n\n if (!isControlled) {\n setValue(null);\n }\n\n onChange === null || onChange === void 0 ? void 0 : onChange(nullValue, event);\n }, [cleanable, disabled, onChange, setValue, isControlled]);\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: 738,\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: 739,\n columnNumber: 11\n }\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('children'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 740,\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: 743,\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: 753,\n columnNumber: 7\n }\n }));\n };\n\n var renderVirtualListNode = function renderVirtualListNode(_ref3) {\n var index = _ref3.index,\n style = _ref3.style,\n data = _ref3.data;\n var node = data[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 }, nodeProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 779,\n columnNumber: 23\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: 791,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: treePrefix('nodes'),\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 799,\n columnNumber: 9\n }\n }, virtualized ? /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {\n defaultHeight: inline ? height : menuMaxHeight,\n style: {\n width: 'auto',\n height: 'auto'\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 801,\n columnNumber: 13\n }\n }, function (_ref5) {\n var height = _ref5.height;\n return /*#__PURE__*/_react.default.createElement(_Windowing.List, (0, _extends2.default)({\n ref: listRef,\n height: height,\n itemSize: itemSize,\n itemCount: formattedNodes.length,\n itemData: formattedNodes\n }, listProps, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 806,\n columnNumber: 17\n }\n }), renderVirtualListNode);\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 return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {\n autoWidth: menuAutoWidth,\n className: classes,\n style: mergedMenuStyle,\n ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),\n onKeyDown: onPickerKeydown,\n target: triggerRef,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 832,\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: 841,\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: 886,\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: 896,\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: 897,\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?");
4991
4991
 
4992
4992
  /***/ }),
4993
4993
 
@@ -5273,7 +5273,7 @@ eval("\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n *\n * S
5273
5273
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5274
5274
 
5275
5275
  "use strict";
5276
- 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 _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 = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _kebabCase = _interopRequireDefault(__webpack_require__(/*! lodash/kebabCase */ \"./node_modules/lodash/kebabCase.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/utils/createComponent.tsx\";\n\n/**\n * Create a component with `classPrefix` and `as` attributes.\n */\nfunction createComponent(_ref) {\n var _this = this;\n\n var name = _ref.name,\n componentAs = _ref.componentAs,\n componentClassPrefix = _ref.componentClassPrefix,\n defaultProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, [\"name\", \"componentAs\", \"componentClassPrefix\"]);\n\n var Component = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? componentAs || 'div' : _props$as,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? componentClassPrefix || (0, _kebabCase.default)(name) : _props$classPrefix,\n className = props.className,\n role = props.role,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"classPrefix\", \"className\", \"role\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n\n var classes = merge(className, withClassPrefix());\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, defaultProps, rest, {\n role: role,\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 14\n }\n }));\n });\n\n Component.displayName = name;\n Component.propTypes = {\n as: _propTypes.default.elementType,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n children: _propTypes.default.node\n };\n return Component;\n}\n\nvar _default = createComponent;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/utils/createComponent.tsx?");
5276
+ 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 _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 = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _kebabCase = _interopRequireDefault(__webpack_require__(/*! lodash/kebabCase */ \"./node_modules/lodash/kebabCase.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/utils/createComponent.tsx\";\n\n/**\n * Create a component with `classPrefix` and `as` attributes.\n */\nfunction createComponent(_ref) {\n var _this = this;\n\n var name = _ref.name,\n componentAs = _ref.componentAs,\n componentClassPrefix = _ref.componentClassPrefix,\n defaultProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, [\"name\", \"componentAs\", \"componentClassPrefix\"]);\n\n var Component = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$as = props.as,\n Component = _props$as === void 0 ? componentAs || 'div' : _props$as,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? componentClassPrefix || (0, _kebabCase.default)(name) : _props$classPrefix,\n className = props.className,\n role = props.role,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"as\", \"classPrefix\", \"className\", \"role\"]);\n\n var _useClassNames = (0, _utils.useClassNames)(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n\n var classes = merge(className, withClassPrefix());\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, defaultProps, rest, {\n role: role,\n ref: ref,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 14\n }\n }));\n });\n\n Component.displayName = name;\n Component.propTypes = {\n as: _propTypes.default.elementType,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n children: _propTypes.default.node\n };\n return Component;\n}\n\nvar _default = createComponent;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/utils/createComponent.tsx?");
5277
5277
 
5278
5278
  /***/ }),
5279
5279
 
@@ -5559,7 +5559,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
5559
5559
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5560
5560
 
5561
5561
  "use strict";
5562
- 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.getNodeFormattedRefKey = getNodeFormattedRefKey;\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, 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) {\n var _extends2;\n\n var value = node[valueKey];\n /**\n * because the value of the node's type is string or number,\n * so it can used as the key of the object directly\n * to avoid number value is converted to string. 1 and '1' will be convert to '1'\n * we used `String_` or `Number_` prefix\n */\n\n var refKey = getNodeFormattedRefKey(value);\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], 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);\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 * according to the value type to get the formatted valueKey of the node\n * @param value\n * @returns\n */\n\n\nfunction getNodeFormattedRefKey(value) {\n return \"\" + (typeof value === 'number' ? 'Number_' : 'String_') + value;\n}\n\n//# sourceURL=webpack://rsuite/./src/utils/treeUtils.ts?");
5562
+ 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.getNodeFormattedRefKey = getNodeFormattedRefKey;\nexports.createDragPreview = createDragPreview;\nexports.removeDragPreview = removeDragPreview;\nexports.stringifyTreeNodeLabel = stringifyTreeNodeLabel;\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, 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) {\n var _extends2;\n\n var value = node[valueKey];\n /**\n * because the value of the node's type is string or number,\n * so it can used as the key of the object directly\n * to avoid number value is converted to string. 1 and '1' will be convert to '1'\n * we used `String_` or `Number_` prefix\n */\n\n var refKey = getNodeFormattedRefKey(value);\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], 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);\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 * according to the value type to get the formatted valueKey of the node\n * @param value\n * @returns\n */\n\n\nfunction getNodeFormattedRefKey(value) {\n return \"\" + (typeof value === 'number' ? 'Number_' : 'String_') + value;\n}\n/**\n * create drag preview when tree node start drag\n * @param name\n * @param className\n * @returns\n */\n\n\nfunction createDragPreview(name, className) {\n var dragPreview = document.createElement('div');\n dragPreview.id = 'rs-tree-drag-preview';\n dragPreview.innerHTML = name;\n dragPreview.classList.add(className);\n document.body.appendChild(dragPreview);\n return dragPreview;\n}\n/**\n * remove drag preview when tree node drop\n */\n\n\nfunction removeDragPreview() {\n var _dragPreview$parentNo, _dragPreview$parentNo2;\n\n var dragPreview = document.getElementById('rs-tree-drag-preview');\n dragPreview === null || dragPreview === void 0 ? void 0 : (_dragPreview$parentNo = dragPreview.parentNode) === null || _dragPreview$parentNo === void 0 ? void 0 : (_dragPreview$parentNo2 = _dragPreview$parentNo.removeChild) === null || _dragPreview$parentNo2 === void 0 ? void 0 : _dragPreview$parentNo2.call(_dragPreview$parentNo, dragPreview);\n}\n\nfunction stringifyTreeNodeLabel(label) {\n if (typeof label === 'string') {\n return label;\n } else if ( /*#__PURE__*/_react.default.isValidElement(label)) {\n var _nodes2 = (0, _reactToString.default)(label);\n\n return _nodes2.join('');\n }\n\n return '';\n}\n\n//# sourceURL=webpack://rsuite/./src/utils/treeUtils.ts?");
5563
5563
 
5564
5564
  /***/ }),
5565
5565
 
@@ -5603,7 +5603,7 @@ eval("\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react =
5603
5603
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5604
5604
 
5605
5605
  "use strict";
5606
- 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 _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _default2 = _interopRequireDefault(__webpack_require__(/*! ../locales/default */ \"./src/locales/default.ts\"));\n\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider/CustomProvider */ \"./src/CustomProvider/CustomProvider.tsx\");\n\nvar _dateUtils = __webpack_require__(/*! ../utils/dateUtils */ \"./src/utils/dateUtils.ts\");\n\nvar mergeObject = function mergeObject(list) {\n return list.reduce(function (a, b) {\n a = (0, _extends2.default)({}, a, b);\n return a;\n }, {});\n};\n\nvar getDefaultRTL = function getDefaultRTL() {\n return typeof window !== 'undefined' && (document.body.getAttribute('dir') || document.dir) === 'rtl';\n};\n/**\n * A hook to get custom configuration of `<CustomProvider>`\n * @param keys\n */\n\n\nfunction useCustom(keys, overrideLocale) {\n var _locale$Calendar2, _locale$Calendar4;\n\n var _useContext = (0, _react.useContext)(_CustomProvider.CustomContext),\n _useContext$locale = _useContext.locale,\n locale = _useContext$locale === void 0 ? _default2.default : _useContext$locale,\n _useContext$rtl = _useContext.rtl,\n rtl = _useContext$rtl === void 0 ? getDefaultRTL() : _useContext$rtl,\n formatDate = _useContext.formatDate,\n parseDate = _useContext.parseDate,\n toasters = _useContext.toasters;\n\n var componentLocale = (0, _extends2.default)({}, locale === null || locale === void 0 ? void 0 : locale.common, typeof keys === 'string' ? locale === null || locale === void 0 ? void 0 : locale[keys] : typeof keys === 'object' ? mergeObject(keys.map(function (key) {\n return locale === null || locale === void 0 ? void 0 : locale[key];\n })) : {}); // Component custom locale\n\n if (overrideLocale) {\n componentLocale = mergeObject([componentLocale, overrideLocale]);\n }\n\n var defaultFormatDate = (0, _react.useCallback)(function (date, formatStr) {\n var _locale$Calendar;\n\n return (0, _dateUtils.format)(date, formatStr, {\n locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar = locale.Calendar) === null || _locale$Calendar === void 0 ? void 0 : _locale$Calendar.dateLocale\n });\n }, [(_locale$Calendar2 = locale.Calendar) === null || _locale$Calendar2 === void 0 ? void 0 : _locale$Calendar2.dateLocale]);\n var defaultParseDate = (0, _react.useCallback)(function (dateString, formatString) {\n var _locale$Calendar3;\n\n return (0, _dateUtils.parse)(dateString, formatString, new Date(), {\n locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar3 = locale.Calendar) === null || _locale$Calendar3 === void 0 ? void 0 : _locale$Calendar3.dateLocale\n });\n }, [(_locale$Calendar4 = locale.Calendar) === null || _locale$Calendar4 === void 0 ? void 0 : _locale$Calendar4.dateLocale]);\n return {\n locale: componentLocale,\n rtl: rtl,\n toasters: toasters,\n formatDate: formatDate || defaultFormatDate,\n parseDate: parseDate || defaultParseDate\n };\n}\n\nvar _default = useCustom;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/utils/useCustom.ts?");
5606
+ 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 _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _default2 = _interopRequireDefault(__webpack_require__(/*! ../locales/default */ \"./src/locales/default.ts\"));\n\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider/CustomProvider */ \"./src/CustomProvider/CustomProvider.tsx\");\n\nvar _dateUtils = __webpack_require__(/*! ../utils/dateUtils */ \"./src/utils/dateUtils.ts\");\n\nvar mergeObject = function mergeObject(list) {\n return list.reduce(function (a, b) {\n a = (0, _extends2.default)({}, a, b);\n return a;\n }, {});\n};\n\nvar getDefaultRTL = function getDefaultRTL() {\n return typeof window !== 'undefined' && (document.body.getAttribute('dir') || document.dir) === 'rtl';\n};\n/**\n * A hook to get custom configuration of `<CustomProvider>`\n * @param keys\n */\n\n\nfunction useCustom(keys, overrideLocale) {\n var _locale$Calendar2, _locale$Calendar4;\n\n var _useContext = (0, _react.useContext)(_CustomProvider.CustomContext),\n _useContext$locale = _useContext.locale,\n locale = _useContext$locale === void 0 ? _default2.default : _useContext$locale,\n _useContext$rtl = _useContext.rtl,\n rtl = _useContext$rtl === void 0 ? getDefaultRTL() : _useContext$rtl,\n formatDate = _useContext.formatDate,\n parseDate = _useContext.parseDate,\n toasters = _useContext.toasters,\n disableRipple = _useContext.disableRipple;\n\n var componentLocale = (0, _extends2.default)({}, locale === null || locale === void 0 ? void 0 : locale.common, typeof keys === 'string' ? locale === null || locale === void 0 ? void 0 : locale[keys] : typeof keys === 'object' ? mergeObject(keys.map(function (key) {\n return locale === null || locale === void 0 ? void 0 : locale[key];\n })) : {}); // Component custom locale\n\n if (overrideLocale) {\n componentLocale = mergeObject([componentLocale, overrideLocale]);\n }\n\n var defaultFormatDate = (0, _react.useCallback)(function (date, formatStr) {\n var _locale$Calendar;\n\n return (0, _dateUtils.format)(date, formatStr, {\n locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar = locale.Calendar) === null || _locale$Calendar === void 0 ? void 0 : _locale$Calendar.dateLocale\n });\n }, [(_locale$Calendar2 = locale.Calendar) === null || _locale$Calendar2 === void 0 ? void 0 : _locale$Calendar2.dateLocale]);\n var defaultParseDate = (0, _react.useCallback)(function (dateString, formatString) {\n var _locale$Calendar3;\n\n return (0, _dateUtils.parse)(dateString, formatString, new Date(), {\n locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar3 = locale.Calendar) === null || _locale$Calendar3 === void 0 ? void 0 : _locale$Calendar3.dateLocale\n });\n }, [(_locale$Calendar4 = locale.Calendar) === null || _locale$Calendar4 === void 0 ? void 0 : _locale$Calendar4.dateLocale]);\n return {\n locale: componentLocale,\n rtl: rtl,\n toasters: toasters,\n disableRipple: disableRipple,\n formatDate: formatDate || defaultFormatDate,\n parseDate: parseDate || defaultParseDate\n };\n}\n\nvar _default = useCustom;\nexports.default = _default;\n\n//# sourceURL=webpack://rsuite/./src/utils/useCustom.ts?");
5607
5607
 
5608
5608
  /***/ }),
5609
5609
 
@@ -9633,7 +9633,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bab
9633
9633
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9634
9634
 
9635
9635
  "use strict";
9636
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dom_lib_translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dom-lib/translateDOMPositionXY */ \"./node_modules/dom-lib/esm/translateDOMPositionXY.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/flatten */ \"./node_modules/lodash/flatten.js\");\n/* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_flatten__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _Row__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Row */ \"./node_modules/rsuite-table/es/Row.js\");\n/* harmony import */ var _CellGroup__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CellGroup */ \"./node_modules/rsuite-table/es/CellGroup.js\");\n/* harmony import */ var _Scrollbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Scrollbar */ \"./node_modules/rsuite-table/es/Scrollbar.js\");\n/* harmony import */ var _MouseArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./MouseArea */ \"./node_modules/rsuite-table/es/MouseArea.js\");\n/* harmony import */ var _Loader__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Loader */ \"./node_modules/rsuite-table/es/Loader.js\");\n/* harmony import */ var _EmptyMessage__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./EmptyMessage */ \"./node_modules/rsuite-table/es/EmptyMessage.js\");\n/* harmony import */ var _TableContext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./TableContext */ \"./node_modules/rsuite-table/es/TableContext.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./constants */ \"./node_modules/rsuite-table/es/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./utils */ \"./node_modules/rsuite-table/es/utils/index.js\");\n\n\nvar _excluded = [\"affixHeader\", \"children\", \"classPrefix\", \"className\", \"data\", \"defaultSortType\", \"width\", \"expandedRowKeys\", \"defaultExpandAllRows\", \"defaultExpandedRowKeys\", \"style\", \"id\", \"isTree\", \"hover\", \"bordered\", \"cellBordered\", \"wordWrap\", \"loading\", \"locale\", \"showHeader\", \"sortColumn\", \"rowHeight\", \"sortType\", \"headerHeight\", \"minHeight\", \"height\", \"autoHeight\", \"fillHeight\", \"rtl\", \"translate3d\", \"rowKey\", \"virtualized\", \"rowClassName\", \"rowExpandedHeight\", \"disabledScroll\", \"affixHorizontalScrollbar\", \"loadAnimation\", \"shouldUpdateScroll\", \"renderRow\", \"renderRowExpanded\", \"renderLoading\", \"renderEmpty\", \"onSortColumn\", \"onScroll\", \"renderTreeToggle\", \"onRowClick\", \"onRowContextMenu\", \"onExpandChange\", \"onTouchStart\", \"onTouchMove\", \"onTouchEnd\"],\n _excluded2 = [\"depth\"];\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Filter those expanded nodes.\n * @param data\n * @param expandedRowKeys\n * @param rowKey\n * @returns\n */\nvar filterTreeData = function filterTreeData(data, expandedRowKeys, rowKey) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_15__.flattenData)(data).filter(function (rowData) {\n if (rowKey) {\n var parents = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.findAllParents)(rowData, rowKey);\n\n var _expanded = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.shouldShowRowByExpanded)(expandedRowKeys, parents);\n\n rowData[_constants__WEBPACK_IMPORTED_MODULE_14__.EXPANDED_KEY] = _expanded;\n rowData[_constants__WEBPACK_IMPORTED_MODULE_14__.TREE_DEPTH] = parents.length;\n return _expanded;\n }\n });\n};\n\nvar DATA_PLACEHOLDER = [];\nvar Table = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef(function (props, ref) {\n var affixHeader = props.affixHeader,\n children = props.children,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'rs-table' : _props$classPrefix,\n className = props.className,\n _props$data = props.data,\n dataProp = _props$data === void 0 ? DATA_PLACEHOLDER : _props$data,\n _props$defaultSortTyp = props.defaultSortType,\n defaultSortType = _props$defaultSortTyp === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_14__.SORT_TYPE.DESC : _props$defaultSortTyp,\n widthProp = props.width,\n expandedRowKeysProp = props.expandedRowKeys,\n defaultExpandAllRows = props.defaultExpandAllRows,\n defaultExpandedRowKeys = props.defaultExpandedRowKeys,\n style = props.style,\n id = props.id,\n isTree = props.isTree,\n _props$hover = props.hover,\n hover = _props$hover === void 0 ? true : _props$hover,\n bordered = props.bordered,\n cellBordered = props.cellBordered,\n wordWrap = props.wordWrap,\n loading = props.loading,\n _props$locale = props.locale,\n locale = _props$locale === void 0 ? {\n emptyMessage: 'No data found',\n loading: 'Loading...'\n } : _props$locale,\n _props$showHeader = props.showHeader,\n showHeader = _props$showHeader === void 0 ? true : _props$showHeader,\n sortColumn = props.sortColumn,\n _props$rowHeight = props.rowHeight,\n rowHeight = _props$rowHeight === void 0 ? 46 : _props$rowHeight,\n sortTypeProp = props.sortType,\n _props$headerHeight = props.headerHeight,\n headerHeightProp = _props$headerHeight === void 0 ? 40 : _props$headerHeight,\n _props$minHeight = props.minHeight,\n minHeight = _props$minHeight === void 0 ? 0 : _props$minHeight,\n _props$height = props.height,\n height = _props$height === void 0 ? 200 : _props$height,\n autoHeight = props.autoHeight,\n fillHeight = props.fillHeight,\n rtlProp = props.rtl,\n _props$translate3d = props.translate3d,\n translate3d = _props$translate3d === void 0 ? true : _props$translate3d,\n rowKey = props.rowKey,\n virtualized = props.virtualized,\n rowClassName = props.rowClassName,\n _props$rowExpandedHei = props.rowExpandedHeight,\n rowExpandedHeight = _props$rowExpandedHei === void 0 ? 100 : _props$rowExpandedHei,\n disabledScroll = props.disabledScroll,\n affixHorizontalScrollbar = props.affixHorizontalScrollbar,\n loadAnimation = props.loadAnimation,\n _props$shouldUpdateSc = props.shouldUpdateScroll,\n shouldUpdateScroll = _props$shouldUpdateSc === void 0 ? true : _props$shouldUpdateSc,\n renderRowProp = props.renderRow,\n renderRowExpandedProp = props.renderRowExpanded,\n renderLoading = props.renderLoading,\n renderEmpty = props.renderEmpty,\n onSortColumn = props.onSortColumn,\n onScroll = props.onScroll,\n renderTreeToggle = props.renderTreeToggle,\n onRowClick = props.onRowClick,\n onRowContextMenu = props.onRowContextMenu,\n onExpandChange = props.onExpandChange,\n onTouchStart = props.onTouchStart,\n onTouchMove = props.onTouchMove,\n onTouchEnd = props.onTouchEnd,\n rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__.default)(props, _excluded);\n\n if (isTree && !rowKey) {\n throw new Error('The `rowKey` is required when set isTree');\n }\n\n var _useClassNames = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useClassNames)(classPrefix, typeof classPrefix !== 'undefined'),\n withClassPrefix = _useClassNames.withClassPrefix,\n mergeCls = _useClassNames.merge,\n prefix = _useClassNames.prefix; // Use `forceUpdate` to force the component to re-render after manipulating the DOM.\n\n\n var _useReducer = (0,react__WEBPACK_IMPORTED_MODULE_2__.useReducer)(function (x) {\n return x + 1;\n }, 0),\n forceUpdate = _useReducer[1];\n\n var _useControlled = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useControlled)(expandedRowKeysProp, defaultExpandAllRows ? (0,_utils__WEBPACK_IMPORTED_MODULE_15__.findRowKeys)(dataProp, rowKey, lodash_isFunction__WEBPACK_IMPORTED_MODULE_4___default()(renderRowExpandedProp)) : defaultExpandedRowKeys || []),\n expandedRowKeys = _useControlled[0],\n setExpandedRowKeys = _useControlled[1];\n\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(function () {\n return isTree ? filterTreeData(dataProp, expandedRowKeys, rowKey) : dataProp;\n }),\n data = _useState[0],\n setData = _useState[1];\n\n var _useTableRows = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useTableRows)({\n data: dataProp,\n expandedRowKeys: expandedRowKeys,\n wordWrap: wordWrap,\n prefix: prefix\n }),\n tableRowsMaxHeight = _useTableRows.tableRowsMaxHeight,\n bindTableRowsRef = _useTableRows.bindTableRowsRef;\n\n var headerHeight = showHeader ? headerHeightProp : 0;\n var rtl = rtlProp || (0,_utils__WEBPACK_IMPORTED_MODULE_15__.isRTL)();\n\n var getRowHeight = function getRowHeight(rowData) {\n if (rowData === void 0) {\n rowData = {};\n }\n\n return typeof rowHeight === 'function' ? rowHeight(rowData) : rowHeight;\n };\n\n var translateDOMPositionXY = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)((0,dom_lib_translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_3__.getTranslateDOMPositionXY)({\n forceUseTransform: true,\n enable3DTransform: translate3d\n })); // Check for the existence of fixed columns in all column properties.\n\n var shouldFixedColumn = Array.from(lodash_flatten__WEBPACK_IMPORTED_MODULE_5___default()(children)).some(function (child) {\n var _child$props;\n\n return child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.fixed;\n }); // Check all column properties for the existence of rowSpan.\n\n var shouldRowSpanColumn = Array.from(lodash_flatten__WEBPACK_IMPORTED_MODULE_5___default()(children)).some(function (child) {\n var _child$props2;\n\n return child === null || child === void 0 ? void 0 : (_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.rowSpan;\n });\n var visibleRows = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)([]);\n var mouseAreaRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var tableRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var tableHeaderRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var affixHeaderWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var headerWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var tableBodyRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var wheelWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var scrollbarXRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var scrollbarYRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n\n var handleTableResizeChange = function handleTableResizeChange(_prevSize, event) {\n forceUpdate();\n /**\n * Reset the position of the scroll bar after the table size changes.\n */\n\n if (typeof shouldUpdateScroll === 'function') {\n onScrollTo(shouldUpdateScroll(event));\n } else if (shouldUpdateScroll) {\n var vertical = event === 'bodyHeightChanged';\n vertical ? onScrollTop(0) : onScrollLeft(0);\n }\n };\n\n var _useTableDimension = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useTableDimension)({\n data: dataProp,\n width: widthProp,\n rowHeight: rowHeight,\n tableRef: tableRef,\n headerWrapperRef: headerWrapperRef,\n prefix: prefix,\n affixHeader: affixHeader,\n affixHorizontalScrollbar: affixHorizontalScrollbar,\n headerHeight: headerHeight,\n height: height,\n minHeight: minHeight,\n autoHeight: autoHeight,\n fillHeight: fillHeight,\n children: children,\n expandedRowKeys: expandedRowKeys,\n showHeader: showHeader,\n onTableScroll: lodash_debounce__WEBPACK_IMPORTED_MODULE_6___default()(function (coords) {\n return onScrollTo(coords);\n }, 100),\n onTableResizeChange: handleTableResizeChange\n }),\n contentHeight = _useTableDimension.contentHeight,\n contentWidth = _useTableDimension.contentWidth,\n minScrollY = _useTableDimension.minScrollY,\n minScrollX = _useTableDimension.minScrollX,\n scrollY = _useTableDimension.scrollY,\n scrollX = _useTableDimension.scrollX,\n tableWidth = _useTableDimension.tableWidth,\n tableOffset = _useTableDimension.tableOffset,\n headerOffset = _useTableDimension.headerOffset,\n setScrollY = _useTableDimension.setScrollY,\n setScrollX = _useTableDimension.setScrollX,\n getTableHeight = _useTableDimension.getTableHeight;\n\n (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useAffix)({\n getTableHeight: getTableHeight,\n contentHeight: contentHeight,\n affixHorizontalScrollbar: affixHorizontalScrollbar,\n affixHeader: affixHeader,\n tableOffset: tableOffset,\n headerOffset: headerOffset,\n headerHeight: headerHeight,\n scrollbarXRef: scrollbarXRef,\n affixHeaderWrapperRef: affixHeaderWrapperRef\n });\n\n var _usePosition = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.usePosition)({\n data: dataProp,\n height: height,\n tableWidth: tableWidth,\n tableRef: tableRef,\n prefix: prefix,\n translateDOMPositionXY: translateDOMPositionXY,\n wheelWrapperRef: wheelWrapperRef,\n headerWrapperRef: headerWrapperRef,\n affixHeaderWrapperRef: affixHeaderWrapperRef,\n tableHeaderRef: tableHeaderRef,\n scrollX: scrollX,\n scrollY: scrollY,\n contentWidth: contentWidth,\n shouldFixedColumn: shouldFixedColumn\n }),\n forceUpdatePosition = _usePosition.forceUpdatePosition;\n\n var _useScrollListener = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useScrollListener)({\n rtl: rtl,\n data: dataProp,\n height: height,\n virtualized: virtualized,\n getTableHeight: getTableHeight,\n contentHeight: contentHeight,\n headerHeight: headerHeight,\n autoHeight: autoHeight,\n tableBodyRef: tableBodyRef,\n scrollbarXRef: scrollbarXRef,\n scrollbarYRef: scrollbarYRef,\n disabledScroll: disabledScroll,\n loading: loading,\n tableRef: tableRef,\n contentWidth: contentWidth,\n tableWidth: tableWidth,\n scrollY: scrollY,\n minScrollY: minScrollY,\n minScrollX: minScrollX,\n scrollX: scrollX,\n setScrollX: setScrollX,\n setScrollY: setScrollY,\n forceUpdatePosition: forceUpdatePosition,\n onScroll: onScroll,\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd\n }),\n isScrolling = _useScrollListener.isScrolling,\n onScrollHorizontal = _useScrollListener.onScrollHorizontal,\n onScrollVertical = _useScrollListener.onScrollVertical,\n onScrollBody = _useScrollListener.onScrollBody,\n onScrollTop = _useScrollListener.onScrollTop,\n onScrollLeft = _useScrollListener.onScrollLeft,\n onScrollTo = _useScrollListener.onScrollTo;\n\n var _useCellDescriptor = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useCellDescriptor)({\n children: children,\n rtl: rtl,\n mouseAreaRef: mouseAreaRef,\n tableRef: tableRef,\n minScrollX: minScrollX,\n scrollX: scrollX,\n tableWidth: tableWidth,\n headerHeight: headerHeight,\n showHeader: showHeader,\n sortType: sortTypeProp,\n defaultSortType: defaultSortType,\n sortColumn: sortColumn,\n prefix: prefix,\n onSortColumn: onSortColumn,\n // Force table update after column width change, so scrollbar re-renders.\n onHeaderCellResize: forceUpdate,\n rowHeight: rowHeight\n }),\n headerCells = _useCellDescriptor.headerCells,\n bodyCells = _useCellDescriptor.bodyCells,\n allColumnsWidth = _useCellDescriptor.allColumnsWidth,\n hasCustomTreeCol = _useCellDescriptor.hasCustomTreeCol;\n\n var colCounts = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)((headerCells === null || headerCells === void 0 ? void 0 : headerCells.length) || 0);\n (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useUpdateEffect)(function () {\n setData(isTree ? filterTreeData(dataProp, expandedRowKeys, rowKey) : dataProp);\n }, [dataProp, expandedRowKeys, rowKey, isTree]);\n (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useUpdateEffect)(function () {\n if ((headerCells === null || headerCells === void 0 ? void 0 : headerCells.length) !== colCounts.current) {\n onScrollLeft(0);\n colCounts.current = (headerCells === null || headerCells === void 0 ? void 0 : headerCells.length) || 0;\n }\n }, [children]);\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useImperativeHandle)(ref, function () {\n return {\n get root() {\n return tableRef.current;\n },\n\n get body() {\n return wheelWrapperRef.current;\n },\n\n scrollTop: onScrollTop,\n scrollLeft: onScrollLeft\n };\n });\n var rowWidth = allColumnsWidth > tableWidth.current ? allColumnsWidth : tableWidth.current; // Whether to show vertical scroll bar\n\n var hasVerticalScrollbar = !autoHeight && contentHeight.current > getTableHeight() - headerHeight; // Whether to show the horizontal scroll bar\n\n var hasHorizontalScrollbar = contentWidth.current > tableWidth.current;\n var classes = mergeCls(className, withClassPrefix({\n bordered: bordered,\n hover: hover && !shouldRowSpanColumn,\n loading: loading,\n treetable: isTree,\n 'word-wrap': wordWrap,\n 'cell-bordered': cellBordered\n }));\n\n var styles = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({\n width: widthProp || 'auto',\n height: getTableHeight()\n }, style);\n\n var renderRowExpanded = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n var styles = {\n height: rowExpandedHeight\n };\n\n if (typeof renderRowExpandedProp === 'function') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: prefix('row-expanded'),\n style: styles\n }, renderRowExpandedProp(rowData));\n }\n\n return null;\n }, [prefix, renderRowExpandedProp, rowExpandedHeight]);\n\n var renderRow = function renderRow(props, cells, shouldRenderExpandedRow, rowData) {\n var depth = props.depth,\n restRowProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__.default)(props, _excluded2);\n\n if (typeof rowClassName === 'function') {\n restRowProps.className = rowClassName(rowData);\n } else {\n restRowProps.className = rowClassName;\n }\n\n var rowStyles = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({}, props === null || props === void 0 ? void 0 : props.style);\n\n var rowRight = 0;\n\n if (rtl && contentWidth.current > tableWidth.current) {\n rowRight = tableWidth.current - contentWidth.current;\n rowStyles.right = rowRight;\n }\n\n var rowNode = null; // IF there are fixed columns, add a fixed group\n\n if (shouldFixedColumn && contentWidth.current > tableWidth.current) {\n var fixedLeftCells = [];\n var fixedRightCells = [];\n var scrollCells = [];\n var fixedLeftCellGroupWidth = 0;\n var fixedRightCellGroupWidth = 0;\n\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var _cell$props = cell.props,\n fixed = _cell$props.fixed,\n width = _cell$props.width;\n var isFixedStart = fixed === 'left' || fixed === true;\n var isFixedEnd = fixed === 'right';\n\n if (rtl) {\n isFixedStart = fixed === 'right';\n isFixedEnd = fixed === 'left' || fixed === true;\n }\n\n if (isFixedStart) {\n fixedLeftCells.push(cell);\n fixedLeftCellGroupWidth += width;\n } else if (isFixedEnd) {\n fixedRightCells.push(cell);\n fixedRightCellGroupWidth += width;\n } else {\n scrollCells.push(cell);\n }\n }\n\n if (hasVerticalScrollbar && fixedRightCellGroupWidth) {\n fixedRightCellGroupWidth += _constants__WEBPACK_IMPORTED_MODULE_14__.SCROLLBAR_WIDTH;\n }\n\n rowNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, fixedLeftCellGroupWidth ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, {\n fixed: \"left\",\n height: props.isHeaderRow ? props.headerHeight : props.height,\n width: fixedLeftCellGroupWidth,\n style: rtl ? {\n right: tableWidth.current - fixedLeftCellGroupWidth - rowRight\n } : undefined\n }, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)((0,_utils__WEBPACK_IMPORTED_MODULE_15__.resetLeftForCells)(fixedLeftCells))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, null, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)(scrollCells)), fixedRightCellGroupWidth ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, {\n fixed: \"right\",\n style: rtl ? {\n right: 0 - rowRight\n } : {\n left: tableWidth.current - fixedRightCellGroupWidth\n },\n height: props.isHeaderRow ? props.headerHeight : props.height,\n width: fixedRightCellGroupWidth\n }, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)((0,_utils__WEBPACK_IMPORTED_MODULE_15__.resetLeftForCells)(fixedRightCells, hasVerticalScrollbar ? _constants__WEBPACK_IMPORTED_MODULE_14__.SCROLLBAR_WIDTH : 0))) : null, shouldRenderExpandedRow && renderRowExpanded(rowData));\n } else {\n rowNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, null, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)(cells)), shouldRenderExpandedRow && renderRowExpanded(rowData));\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Row__WEBPACK_IMPORTED_MODULE_7__.default, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({}, restRowProps, {\n \"data-depth\": depth,\n style: rowStyles\n }), renderRowProp ? renderRowProp(rowNode, rowData) : rowNode);\n };\n\n var renderTableHeader = function renderTableHeader(headerCells, rowWidth) {\n var top = typeof affixHeader === 'number' ? affixHeader : 0;\n var rowProps = {\n 'aria-rowindex': 1,\n rowRef: tableHeaderRef,\n width: rowWidth,\n height: getRowHeight(),\n headerHeight: headerHeight,\n isHeaderRow: true,\n top: 0\n };\n var fixedStyle = {\n position: 'fixed',\n overflow: 'hidden',\n height: headerHeight,\n width: tableWidth.current,\n top: top\n }; // Affix header\n\n var header = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: prefix('affix-header'),\n style: fixedStyle,\n ref: affixHeaderWrapperRef\n }, renderRow(rowProps, headerCells));\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, (affixHeader === 0 || affixHeader) && header, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n role: \"rowgroup\",\n className: prefix('header-row-wrapper'),\n ref: headerWrapperRef\n }, renderRow(rowProps, headerCells)));\n };\n\n var shouldRenderExpandedRow = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_4___default()(renderRowExpandedProp) && !isTree && rowKey && expandedRowKeys.some(function (key) {\n return key === rowData[rowKey];\n })) {\n return true;\n }\n\n return false;\n }, [expandedRowKeys, isTree, renderRowExpandedProp, rowKey]);\n var bindRowClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n return function (event) {\n onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(rowData, event);\n };\n }, [onRowClick]);\n var bindRowContextMenu = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n return function (event) {\n onRowContextMenu === null || onRowContextMenu === void 0 ? void 0 : onRowContextMenu(rowData, event);\n };\n }, [onRowContextMenu]);\n var handleTreeToggle = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (treeRowKey, _rowIndex, rowData) {\n var open = false;\n var nextExpandedRowKeys = [];\n\n for (var i = 0; i < expandedRowKeys.length; i++) {\n var key = expandedRowKeys[i];\n\n if (key === treeRowKey) {\n open = true;\n } else {\n nextExpandedRowKeys.push(key);\n }\n }\n\n if (!open) {\n nextExpandedRowKeys.push(treeRowKey);\n }\n\n setExpandedRowKeys(nextExpandedRowKeys);\n onExpandChange === null || onExpandChange === void 0 ? void 0 : onExpandChange(!open, rowData);\n }, [expandedRowKeys, onExpandChange, setExpandedRowKeys]);\n /**\n * Records the status of merged rows.\n * { cellKey: [count,index]}\n */\n\n var rowSpanState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)({});\n\n var renderRowData = function renderRowData(bodyCells, rowData, props, shouldRenderExpandedRow) {\n var hasChildren = isTree && rowData.children && Array.isArray(rowData.children);\n var nextRowKey = rowKey && typeof rowData[rowKey] !== 'undefined' ? rowData[rowKey] : props.key;\n\n var rowProps = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({}, props, {\n key: nextRowKey,\n 'aria-rowindex': props.key + 2,\n rowRef: bindTableRowsRef(props.key, rowData),\n onClick: bindRowClick(rowData),\n onContextMenu: bindRowContextMenu(rowData)\n });\n\n var expanded = expandedRowKeys.some(function (key) {\n return rowKey && key === rowData[rowKey];\n });\n var cells = [];\n\n for (var i = 0; i < bodyCells.length; i++) {\n var _cell$props2, _cell$props2$rowSpan, _rowSpanState$current, _cell$props3, _rowSpanState$current2;\n\n var cell = bodyCells[i];\n var rowSpan = (_cell$props2 = cell.props) === null || _cell$props2 === void 0 ? void 0 : (_cell$props2$rowSpan = _cell$props2.rowSpan) === null || _cell$props2$rowSpan === void 0 ? void 0 : _cell$props2$rowSpan.call(_cell$props2, rowData);\n\n var _rowHeight = rowSpan ? rowSpan * (props.height || 46) : props.height;\n\n var _cellKey = cell.props.dataKey || i; // Record the cell state of the merged row\n\n\n if (((_rowSpanState$current = rowSpanState.current[_cellKey]) === null || _rowSpanState$current === void 0 ? void 0 : _rowSpanState$current[1]) > 0) {\n rowSpanState.current[_cellKey][1] -= 1; // Restart counting when merged to the last cell.\n\n if (rowSpanState.current[_cellKey][1] === 0) {\n rowSpanState.current[_cellKey][0] = 0;\n }\n }\n\n if (rowSpan) {\n // The state of the initial merged cell\n rowSpanState.current[_cellKey] = [rowSpan, rowSpan];\n rowProps.rowSpan = rowSpan;\n rowProps.style = {\n overflow: 'inherit'\n };\n } // Cells marked as deleted when checking for merged cell.\n\n\n var removedCell = (_cell$props3 = cell.props) !== null && _cell$props3 !== void 0 && _cell$props3.rowSpan && !rowSpan && ((_rowSpanState$current2 = rowSpanState.current[_cellKey]) === null || _rowSpanState$current2 === void 0 ? void 0 : _rowSpanState$current2[0]) !== 0 ? true : false;\n cells.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().cloneElement(cell, {\n hasChildren: hasChildren,\n rowData: rowData,\n wordWrap: wordWrap,\n height: _rowHeight,\n rowIndex: props.key,\n depth: props.depth,\n renderTreeToggle: renderTreeToggle,\n onTreeToggle: handleTreeToggle,\n rowKey: nextRowKey,\n expanded: expanded,\n rowSpan: rowSpan,\n removed: removedCell\n }));\n }\n\n return renderRow(rowProps, cells, shouldRenderExpandedRow, rowData);\n };\n\n var renderScrollbar = function renderScrollbar() {\n var height = getTableHeight();\n\n if (disabledScroll) {\n return null;\n }\n\n var scrollbars = [];\n\n if (hasHorizontalScrollbar) {\n scrollbars.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_9__.default, {\n key: \"scrollbar\",\n tableId: id,\n style: {\n width: tableWidth.current\n },\n length: tableWidth.current,\n onScroll: onScrollHorizontal,\n scrollLength: contentWidth.current,\n ref: scrollbarXRef\n }));\n }\n\n if (hasVerticalScrollbar) {\n scrollbars.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_9__.default, {\n vertical: true,\n key: \"vertical-scrollbar\",\n tableId: id,\n length: height - headerHeight,\n onScroll: onScrollVertical,\n scrollLength: contentHeight.current,\n ref: scrollbarYRef\n }));\n }\n\n return scrollbars;\n };\n\n var renderTableBody = function renderTableBody(bodyCells, rowWidth) {\n var _visibleRows$current;\n\n var height = getTableHeight();\n var bodyHeight = height - headerHeight;\n var bodyStyles = {\n top: headerHeight,\n height: bodyHeight\n };\n var contentHeight = 0;\n var topHideHeight = 0;\n var bottomHideHeight = 0;\n visibleRows.current = [];\n\n if (data) {\n var top = 0; // Row position\n\n var minTop = Math.abs(scrollY.current);\n var maxTop = minTop + height + rowExpandedHeight;\n var isCustomRowHeight = typeof rowHeight === 'function';\n var isUncertainHeight = !!renderRowExpandedProp || isCustomRowHeight || wordWrap; // If virtualized is enabled and the row height in the Table is variable,\n // you need to loop through the data to get the height of each row.\n\n if (isUncertainHeight && virtualized || !virtualized) {\n // Avoid white screens on the top and bottom of the table when touching and scrolling on the mobile terminal.\n // So supplement the display data row.\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_15__.isSupportTouchEvent)()) {\n var coveredHeight = height * 3;\n minTop = Math.max(minTop - coveredHeight, 0);\n maxTop = maxTop + coveredHeight;\n }\n\n for (var index = 0; index < data.length; index++) {\n var _rowData = data[index];\n var maxHeight = tableRowsMaxHeight[index];\n var shouldRender = shouldRenderExpandedRow(_rowData);\n var nextRowHeight = 0;\n\n if (typeof rowHeight === 'function') {\n nextRowHeight = rowHeight(_rowData);\n } else {\n nextRowHeight = maxHeight ? Math.max(maxHeight + _constants__WEBPACK_IMPORTED_MODULE_14__.CELL_PADDING_HEIGHT, rowHeight) : rowHeight;\n\n if (shouldRender) {\n nextRowHeight += rowExpandedHeight;\n }\n }\n\n contentHeight += nextRowHeight;\n var rowProps = {\n key: index,\n top: top,\n width: rowWidth,\n depth: _rowData[_constants__WEBPACK_IMPORTED_MODULE_14__.TREE_DEPTH],\n height: nextRowHeight\n };\n top += nextRowHeight;\n\n if (virtualized && !wordWrap) {\n if (top + nextRowHeight < minTop) {\n topHideHeight += nextRowHeight;\n continue;\n } else if (top > maxTop) {\n bottomHideHeight += nextRowHeight;\n continue;\n }\n }\n\n visibleRows.current.push(renderRowData(bodyCells, _rowData, rowProps, shouldRender));\n }\n } else {\n /** virtualized */\n // If the row height of the Table is fixed, it is directly calculated by the row height and the number of rows,\n // thereby reducing the performance cost of traversing all data.\n var _nextRowHeight = getRowHeight();\n\n var startIndex = Math.max(Math.floor(minTop / _nextRowHeight), 0);\n var endIndex = Math.min(startIndex + Math.ceil(bodyHeight / _nextRowHeight) + 5, data.length); // Avoid white screens on the top and bottom of the table when touching and scrolling on the mobile terminal.\n // So supplement the display data row.\n\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_15__.isSupportTouchEvent)()) {\n var coveredCount = Math.floor(height / _nextRowHeight * 3);\n startIndex = Math.max(startIndex - coveredCount, 0);\n endIndex = Math.min(endIndex + coveredCount, data.length);\n }\n\n contentHeight = data.length * _nextRowHeight;\n topHideHeight = startIndex * _nextRowHeight;\n bottomHideHeight = (data.length - endIndex) * _nextRowHeight;\n\n for (var _index = startIndex; _index < endIndex; _index++) {\n var _rowData2 = data[_index];\n var _rowProps = {\n key: _index,\n depth: _rowData2[_constants__WEBPACK_IMPORTED_MODULE_14__.TREE_DEPTH],\n top: _index * _nextRowHeight,\n width: rowWidth,\n height: _nextRowHeight\n };\n visibleRows.current.push(renderRowData(bodyCells, _rowData2, _rowProps, false));\n }\n }\n }\n\n var wheelStyles = {\n position: 'absolute',\n height: contentHeight,\n minHeight: height,\n pointerEvents: isScrolling ? 'none' : undefined\n };\n var topRowStyles = {\n height: topHideHeight\n };\n var bottomRowStyles = {\n height: bottomHideHeight\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n ref: tableBodyRef,\n role: \"rowgroup\",\n className: prefix('body-row-wrapper'),\n style: bodyStyles,\n onScroll: onScrollBody\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n style: wheelStyles,\n className: prefix('body-wheel-area'),\n ref: wheelWrapperRef\n }, topHideHeight ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Row__WEBPACK_IMPORTED_MODULE_7__.default, {\n style: topRowStyles,\n className: \"virtualized\"\n }) : null, visibleRows.current, bottomHideHeight ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Row__WEBPACK_IMPORTED_MODULE_7__.default, {\n style: bottomRowStyles,\n className: \"virtualized\"\n }) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_EmptyMessage__WEBPACK_IMPORTED_MODULE_12__.default, {\n locale: locale,\n renderEmpty: renderEmpty,\n addPrefix: prefix,\n loading: !!((_visibleRows$current = visibleRows.current) !== null && _visibleRows$current !== void 0 && _visibleRows$current.length) || loading\n }), renderScrollbar(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Loader__WEBPACK_IMPORTED_MODULE_11__.default, {\n locale: locale,\n loadAnimation: loadAnimation,\n loading: loading,\n addPrefix: prefix,\n renderLoading: renderLoading\n }));\n };\n\n var contextValue = react__WEBPACK_IMPORTED_MODULE_2___default().useMemo(function () {\n return {\n classPrefix: classPrefix,\n translateDOMPositionXY: translateDOMPositionXY.current,\n rtl: rtl,\n isTree: isTree,\n hasCustomTreeCol: hasCustomTreeCol\n };\n }, [classPrefix, hasCustomTreeCol, isTree, rtl]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_TableContext__WEBPACK_IMPORTED_MODULE_13__.default.Provider, {\n value: contextValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({\n role: isTree ? 'treegrid' : 'grid' // The aria-rowcount is specified on the element with the table.\n // Its value is an integer equal to the total number of rows available, including header rows.\n ,\n \"aria-rowcount\": data.length + 1,\n \"aria-colcount\": colCounts.current,\n \"aria-busy\": loading\n }, rest, {\n className: classes,\n style: styles,\n ref: tableRef\n }), showHeader && renderTableHeader(headerCells, rowWidth), children && renderTableBody(bodyCells, rowWidth), showHeader && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_MouseArea__WEBPACK_IMPORTED_MODULE_10__.default, {\n ref: mouseAreaRef,\n addPrefix: prefix,\n headerHeight: headerHeight,\n height: getTableHeight()\n })));\n});\nTable.displayName = 'Table';\nTable.propTypes = {\n autoHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n fillHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n affixHeader: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number)]),\n affixHorizontalScrollbar: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number)]),\n bordered: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n className: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string),\n classPrefix: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n cellBordered: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n data: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n defaultExpandAllRows: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n defaultExpandedRowKeys: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n defaultSortType: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n disabledScroll: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n expandedRowKeys: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n hover: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n height: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n headerHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n locale: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n loading: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n loadAnimation: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n minHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n rowKey: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number)]),\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().number), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func)]),\n renderTreeToggle: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n renderRowExpanded: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n renderRow: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n rowExpandedHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n renderEmpty: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n renderLoading: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n rowClassName: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string)]),\n rtl: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n style: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n sortColumn: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string),\n sortType: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n showHeader: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n shouldUpdateScroll: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool)]),\n translate3d: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n wordWrap: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n width: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n virtualized: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n isTree: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n onRowClick: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onRowContextMenu: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onScroll: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onSortColumn: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onExpandChange: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onTouchStart: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onTouchMove: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onTouchEnd: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func)\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Table);\n\n//# sourceURL=webpack://rsuite/./node_modules/rsuite-table/es/Table.js?");
9636
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dom_lib_translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dom-lib/translateDOMPositionXY */ \"./node_modules/dom-lib/esm/translateDOMPositionXY.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/flatten */ \"./node_modules/lodash/flatten.js\");\n/* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_flatten__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _Row__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Row */ \"./node_modules/rsuite-table/es/Row.js\");\n/* harmony import */ var _CellGroup__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CellGroup */ \"./node_modules/rsuite-table/es/CellGroup.js\");\n/* harmony import */ var _Scrollbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Scrollbar */ \"./node_modules/rsuite-table/es/Scrollbar.js\");\n/* harmony import */ var _MouseArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./MouseArea */ \"./node_modules/rsuite-table/es/MouseArea.js\");\n/* harmony import */ var _Loader__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Loader */ \"./node_modules/rsuite-table/es/Loader.js\");\n/* harmony import */ var _EmptyMessage__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./EmptyMessage */ \"./node_modules/rsuite-table/es/EmptyMessage.js\");\n/* harmony import */ var _TableContext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./TableContext */ \"./node_modules/rsuite-table/es/TableContext.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./constants */ \"./node_modules/rsuite-table/es/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./utils */ \"./node_modules/rsuite-table/es/utils/index.js\");\n\n\nvar _excluded = [\"affixHeader\", \"children\", \"classPrefix\", \"className\", \"data\", \"defaultSortType\", \"width\", \"expandedRowKeys\", \"defaultExpandAllRows\", \"defaultExpandedRowKeys\", \"style\", \"id\", \"isTree\", \"hover\", \"bordered\", \"cellBordered\", \"wordWrap\", \"loading\", \"locale\", \"showHeader\", \"sortColumn\", \"rowHeight\", \"sortType\", \"headerHeight\", \"minHeight\", \"height\", \"autoHeight\", \"fillHeight\", \"rtl\", \"translate3d\", \"rowKey\", \"virtualized\", \"rowClassName\", \"rowExpandedHeight\", \"disabledScroll\", \"affixHorizontalScrollbar\", \"loadAnimation\", \"shouldUpdateScroll\", \"renderRow\", \"renderRowExpanded\", \"renderLoading\", \"renderEmpty\", \"onSortColumn\", \"onScroll\", \"renderTreeToggle\", \"onRowClick\", \"onRowContextMenu\", \"onExpandChange\", \"onTouchStart\", \"onTouchMove\", \"onTouchEnd\"],\n _excluded2 = [\"depth\"];\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Filter those expanded nodes.\n * @param data\n * @param expandedRowKeys\n * @param rowKey\n * @returns\n */\nvar filterTreeData = function filterTreeData(data, expandedRowKeys, rowKey) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_15__.flattenData)(data).filter(function (rowData) {\n if (rowKey) {\n var parents = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.findAllParents)(rowData, rowKey);\n\n var _expanded = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.shouldShowRowByExpanded)(expandedRowKeys, parents);\n\n rowData[_constants__WEBPACK_IMPORTED_MODULE_14__.EXPANDED_KEY] = _expanded;\n rowData[_constants__WEBPACK_IMPORTED_MODULE_14__.TREE_DEPTH] = parents.length;\n return _expanded;\n }\n });\n};\n\nvar DATA_PLACEHOLDER = [];\nvar Table = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef(function (props, ref) {\n var affixHeader = props.affixHeader,\n children = props.children,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'rs-table' : _props$classPrefix,\n className = props.className,\n _props$data = props.data,\n dataProp = _props$data === void 0 ? DATA_PLACEHOLDER : _props$data,\n _props$defaultSortTyp = props.defaultSortType,\n defaultSortType = _props$defaultSortTyp === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_14__.SORT_TYPE.DESC : _props$defaultSortTyp,\n widthProp = props.width,\n expandedRowKeysProp = props.expandedRowKeys,\n defaultExpandAllRows = props.defaultExpandAllRows,\n defaultExpandedRowKeys = props.defaultExpandedRowKeys,\n style = props.style,\n id = props.id,\n isTree = props.isTree,\n _props$hover = props.hover,\n hover = _props$hover === void 0 ? true : _props$hover,\n bordered = props.bordered,\n cellBordered = props.cellBordered,\n wordWrap = props.wordWrap,\n loading = props.loading,\n _props$locale = props.locale,\n locale = _props$locale === void 0 ? {\n emptyMessage: 'No data found',\n loading: 'Loading...'\n } : _props$locale,\n _props$showHeader = props.showHeader,\n showHeader = _props$showHeader === void 0 ? true : _props$showHeader,\n sortColumn = props.sortColumn,\n _props$rowHeight = props.rowHeight,\n rowHeight = _props$rowHeight === void 0 ? 46 : _props$rowHeight,\n sortTypeProp = props.sortType,\n _props$headerHeight = props.headerHeight,\n headerHeightProp = _props$headerHeight === void 0 ? 40 : _props$headerHeight,\n _props$minHeight = props.minHeight,\n minHeight = _props$minHeight === void 0 ? 0 : _props$minHeight,\n _props$height = props.height,\n height = _props$height === void 0 ? 200 : _props$height,\n autoHeight = props.autoHeight,\n fillHeight = props.fillHeight,\n rtlProp = props.rtl,\n _props$translate3d = props.translate3d,\n translate3d = _props$translate3d === void 0 ? true : _props$translate3d,\n rowKey = props.rowKey,\n virtualized = props.virtualized,\n rowClassName = props.rowClassName,\n _props$rowExpandedHei = props.rowExpandedHeight,\n rowExpandedHeight = _props$rowExpandedHei === void 0 ? 100 : _props$rowExpandedHei,\n disabledScroll = props.disabledScroll,\n affixHorizontalScrollbar = props.affixHorizontalScrollbar,\n loadAnimation = props.loadAnimation,\n _props$shouldUpdateSc = props.shouldUpdateScroll,\n shouldUpdateScroll = _props$shouldUpdateSc === void 0 ? true : _props$shouldUpdateSc,\n renderRowProp = props.renderRow,\n renderRowExpandedProp = props.renderRowExpanded,\n renderLoading = props.renderLoading,\n renderEmpty = props.renderEmpty,\n onSortColumn = props.onSortColumn,\n onScroll = props.onScroll,\n renderTreeToggle = props.renderTreeToggle,\n onRowClick = props.onRowClick,\n onRowContextMenu = props.onRowContextMenu,\n onExpandChange = props.onExpandChange,\n onTouchStart = props.onTouchStart,\n onTouchMove = props.onTouchMove,\n onTouchEnd = props.onTouchEnd,\n rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__.default)(props, _excluded);\n\n var _useClassNames = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useClassNames)(classPrefix, typeof classPrefix !== 'undefined'),\n withClassPrefix = _useClassNames.withClassPrefix,\n mergeCls = _useClassNames.merge,\n prefix = _useClassNames.prefix; // Use `forceUpdate` to force the component to re-render after manipulating the DOM.\n\n\n var _useReducer = (0,react__WEBPACK_IMPORTED_MODULE_2__.useReducer)(function (x) {\n return x + 1;\n }, 0),\n forceUpdate = _useReducer[1];\n\n var _useControlled = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useControlled)(expandedRowKeysProp, defaultExpandAllRows ? (0,_utils__WEBPACK_IMPORTED_MODULE_15__.findRowKeys)(dataProp, rowKey, lodash_isFunction__WEBPACK_IMPORTED_MODULE_4___default()(renderRowExpandedProp)) : defaultExpandedRowKeys || []),\n expandedRowKeys = _useControlled[0],\n setExpandedRowKeys = _useControlled[1];\n\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(function () {\n return isTree ? filterTreeData(dataProp, expandedRowKeys, rowKey) : dataProp;\n }),\n data = _useState[0],\n setData = _useState[1];\n\n if (isTree) {\n if (!rowKey) {\n throw new Error('The `rowKey` is required when set isTree');\n } else if (data.length > 0) {\n if (!data[0].hasOwnProperty(rowKey)) {\n throw new Error('The `rowKey` is not found in data');\n }\n }\n }\n\n var _useTableRows = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useTableRows)({\n data: dataProp,\n expandedRowKeys: expandedRowKeys,\n wordWrap: wordWrap,\n prefix: prefix\n }),\n tableRowsMaxHeight = _useTableRows.tableRowsMaxHeight,\n bindTableRowsRef = _useTableRows.bindTableRowsRef;\n\n var headerHeight = showHeader ? headerHeightProp : 0;\n var rtl = rtlProp || (0,_utils__WEBPACK_IMPORTED_MODULE_15__.isRTL)();\n\n var getRowHeight = function getRowHeight(rowData) {\n if (rowData === void 0) {\n rowData = {};\n }\n\n return typeof rowHeight === 'function' ? rowHeight(rowData) : rowHeight;\n };\n\n var translateDOMPositionXY = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)((0,dom_lib_translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_3__.getTranslateDOMPositionXY)({\n forceUseTransform: true,\n enable3DTransform: translate3d\n })); // Check for the existence of fixed columns in all column properties.\n\n var shouldFixedColumn = Array.from(lodash_flatten__WEBPACK_IMPORTED_MODULE_5___default()(children)).some(function (child) {\n var _child$props;\n\n return child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.fixed;\n }); // Check all column properties for the existence of rowSpan.\n\n var shouldRowSpanColumn = Array.from(lodash_flatten__WEBPACK_IMPORTED_MODULE_5___default()(children)).some(function (child) {\n var _child$props2;\n\n return child === null || child === void 0 ? void 0 : (_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.rowSpan;\n });\n var visibleRows = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)([]);\n var mouseAreaRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var tableRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var tableHeaderRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var affixHeaderWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var headerWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var tableBodyRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var wheelWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var scrollbarXRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n var scrollbarYRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n\n var handleTableResizeChange = function handleTableResizeChange(_prevSize, event) {\n forceUpdate();\n /**\n * Reset the position of the scroll bar after the table size changes.\n */\n\n if (typeof shouldUpdateScroll === 'function') {\n onScrollTo(shouldUpdateScroll(event));\n } else if (shouldUpdateScroll) {\n var vertical = event === 'bodyHeightChanged';\n vertical ? onScrollTop(0) : onScrollLeft(0);\n }\n };\n\n var _useTableDimension = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useTableDimension)({\n data: dataProp,\n width: widthProp,\n rowHeight: rowHeight,\n tableRef: tableRef,\n headerWrapperRef: headerWrapperRef,\n prefix: prefix,\n affixHeader: affixHeader,\n affixHorizontalScrollbar: affixHorizontalScrollbar,\n headerHeight: headerHeight,\n height: height,\n minHeight: minHeight,\n autoHeight: autoHeight,\n fillHeight: fillHeight,\n children: children,\n expandedRowKeys: expandedRowKeys,\n showHeader: showHeader,\n onTableScroll: lodash_debounce__WEBPACK_IMPORTED_MODULE_6___default()(function (coords) {\n return onScrollTo(coords);\n }, 100),\n onTableResizeChange: handleTableResizeChange\n }),\n contentHeight = _useTableDimension.contentHeight,\n contentWidth = _useTableDimension.contentWidth,\n minScrollY = _useTableDimension.minScrollY,\n minScrollX = _useTableDimension.minScrollX,\n scrollY = _useTableDimension.scrollY,\n scrollX = _useTableDimension.scrollX,\n tableWidth = _useTableDimension.tableWidth,\n tableOffset = _useTableDimension.tableOffset,\n headerOffset = _useTableDimension.headerOffset,\n setScrollY = _useTableDimension.setScrollY,\n setScrollX = _useTableDimension.setScrollX,\n getTableHeight = _useTableDimension.getTableHeight;\n\n (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useAffix)({\n getTableHeight: getTableHeight,\n contentHeight: contentHeight,\n affixHorizontalScrollbar: affixHorizontalScrollbar,\n affixHeader: affixHeader,\n tableOffset: tableOffset,\n headerOffset: headerOffset,\n headerHeight: headerHeight,\n scrollbarXRef: scrollbarXRef,\n affixHeaderWrapperRef: affixHeaderWrapperRef\n });\n\n var _usePosition = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.usePosition)({\n data: dataProp,\n height: height,\n tableWidth: tableWidth,\n tableRef: tableRef,\n prefix: prefix,\n translateDOMPositionXY: translateDOMPositionXY,\n wheelWrapperRef: wheelWrapperRef,\n headerWrapperRef: headerWrapperRef,\n affixHeaderWrapperRef: affixHeaderWrapperRef,\n tableHeaderRef: tableHeaderRef,\n scrollX: scrollX,\n scrollY: scrollY,\n contentWidth: contentWidth,\n shouldFixedColumn: shouldFixedColumn\n }),\n forceUpdatePosition = _usePosition.forceUpdatePosition;\n\n var _useScrollListener = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useScrollListener)({\n rtl: rtl,\n data: dataProp,\n height: height,\n virtualized: virtualized,\n getTableHeight: getTableHeight,\n contentHeight: contentHeight,\n headerHeight: headerHeight,\n autoHeight: autoHeight,\n tableBodyRef: tableBodyRef,\n scrollbarXRef: scrollbarXRef,\n scrollbarYRef: scrollbarYRef,\n disabledScroll: disabledScroll,\n loading: loading,\n tableRef: tableRef,\n contentWidth: contentWidth,\n tableWidth: tableWidth,\n scrollY: scrollY,\n minScrollY: minScrollY,\n minScrollX: minScrollX,\n scrollX: scrollX,\n setScrollX: setScrollX,\n setScrollY: setScrollY,\n forceUpdatePosition: forceUpdatePosition,\n onScroll: onScroll,\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd\n }),\n isScrolling = _useScrollListener.isScrolling,\n onScrollHorizontal = _useScrollListener.onScrollHorizontal,\n onScrollVertical = _useScrollListener.onScrollVertical,\n onScrollBody = _useScrollListener.onScrollBody,\n onScrollTop = _useScrollListener.onScrollTop,\n onScrollLeft = _useScrollListener.onScrollLeft,\n onScrollTo = _useScrollListener.onScrollTo;\n\n var _useCellDescriptor = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useCellDescriptor)({\n children: children,\n rtl: rtl,\n mouseAreaRef: mouseAreaRef,\n tableRef: tableRef,\n minScrollX: minScrollX,\n scrollX: scrollX,\n tableWidth: tableWidth,\n headerHeight: headerHeight,\n showHeader: showHeader,\n sortType: sortTypeProp,\n defaultSortType: defaultSortType,\n sortColumn: sortColumn,\n prefix: prefix,\n onSortColumn: onSortColumn,\n // Force table update after column width change, so scrollbar re-renders.\n onHeaderCellResize: forceUpdate,\n rowHeight: rowHeight\n }),\n headerCells = _useCellDescriptor.headerCells,\n bodyCells = _useCellDescriptor.bodyCells,\n allColumnsWidth = _useCellDescriptor.allColumnsWidth,\n hasCustomTreeCol = _useCellDescriptor.hasCustomTreeCol;\n\n var colCounts = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)((headerCells === null || headerCells === void 0 ? void 0 : headerCells.length) || 0);\n (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useUpdateEffect)(function () {\n setData(isTree ? filterTreeData(dataProp, expandedRowKeys, rowKey) : dataProp);\n }, [dataProp, expandedRowKeys, rowKey, isTree]);\n (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useUpdateEffect)(function () {\n if ((headerCells === null || headerCells === void 0 ? void 0 : headerCells.length) !== colCounts.current) {\n onScrollLeft(0);\n colCounts.current = (headerCells === null || headerCells === void 0 ? void 0 : headerCells.length) || 0;\n }\n }, [children]);\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useImperativeHandle)(ref, function () {\n return {\n get root() {\n return tableRef.current;\n },\n\n get body() {\n return wheelWrapperRef.current;\n },\n\n scrollTop: onScrollTop,\n scrollLeft: onScrollLeft\n };\n });\n var rowWidth = allColumnsWidth > tableWidth.current ? allColumnsWidth : tableWidth.current; // Whether to show vertical scroll bar\n\n var hasVerticalScrollbar = !autoHeight && contentHeight.current > getTableHeight() - headerHeight; // Whether to show the horizontal scroll bar\n\n var hasHorizontalScrollbar = contentWidth.current > tableWidth.current;\n var classes = mergeCls(className, withClassPrefix({\n bordered: bordered,\n hover: hover && !shouldRowSpanColumn,\n loading: loading,\n treetable: isTree,\n 'word-wrap': wordWrap,\n 'cell-bordered': cellBordered\n }));\n\n var styles = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({\n width: widthProp || 'auto',\n height: getTableHeight()\n }, style);\n\n var renderRowExpanded = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n var styles = {\n height: rowExpandedHeight\n };\n\n if (typeof renderRowExpandedProp === 'function') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: prefix('row-expanded'),\n style: styles\n }, renderRowExpandedProp(rowData));\n }\n\n return null;\n }, [prefix, renderRowExpandedProp, rowExpandedHeight]);\n\n var renderRow = function renderRow(props, cells, shouldRenderExpandedRow, rowData) {\n var depth = props.depth,\n restRowProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__.default)(props, _excluded2);\n\n if (typeof rowClassName === 'function') {\n restRowProps.className = rowClassName(rowData);\n } else {\n restRowProps.className = rowClassName;\n }\n\n var rowStyles = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({}, props === null || props === void 0 ? void 0 : props.style);\n\n var rowRight = 0;\n\n if (rtl && contentWidth.current > tableWidth.current) {\n rowRight = tableWidth.current - contentWidth.current;\n rowStyles.right = rowRight;\n }\n\n var rowNode = null; // IF there are fixed columns, add a fixed group\n\n if (shouldFixedColumn && contentWidth.current > tableWidth.current) {\n var fixedLeftCells = [];\n var fixedRightCells = [];\n var scrollCells = [];\n var fixedLeftCellGroupWidth = 0;\n var fixedRightCellGroupWidth = 0;\n\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var _cell$props = cell.props,\n fixed = _cell$props.fixed,\n width = _cell$props.width;\n var isFixedStart = fixed === 'left' || fixed === true;\n var isFixedEnd = fixed === 'right';\n\n if (rtl) {\n isFixedStart = fixed === 'right';\n isFixedEnd = fixed === 'left' || fixed === true;\n }\n\n if (isFixedStart) {\n fixedLeftCells.push(cell);\n fixedLeftCellGroupWidth += width;\n } else if (isFixedEnd) {\n fixedRightCells.push(cell);\n fixedRightCellGroupWidth += width;\n } else {\n scrollCells.push(cell);\n }\n }\n\n if (hasVerticalScrollbar && fixedRightCellGroupWidth) {\n fixedRightCellGroupWidth += _constants__WEBPACK_IMPORTED_MODULE_14__.SCROLLBAR_WIDTH;\n }\n\n rowNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, fixedLeftCellGroupWidth ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, {\n fixed: \"left\",\n height: props.isHeaderRow ? props.headerHeight : props.height,\n width: fixedLeftCellGroupWidth,\n style: rtl ? {\n right: tableWidth.current - fixedLeftCellGroupWidth - rowRight\n } : undefined\n }, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)((0,_utils__WEBPACK_IMPORTED_MODULE_15__.resetLeftForCells)(fixedLeftCells))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, null, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)(scrollCells)), fixedRightCellGroupWidth ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, {\n fixed: \"right\",\n style: rtl ? {\n right: 0 - rowRight\n } : {\n left: tableWidth.current - fixedRightCellGroupWidth\n },\n height: props.isHeaderRow ? props.headerHeight : props.height,\n width: fixedRightCellGroupWidth\n }, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)((0,_utils__WEBPACK_IMPORTED_MODULE_15__.resetLeftForCells)(fixedRightCells, hasVerticalScrollbar ? _constants__WEBPACK_IMPORTED_MODULE_14__.SCROLLBAR_WIDTH : 0))) : null, shouldRenderExpandedRow && renderRowExpanded(rowData));\n } else {\n rowNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CellGroup__WEBPACK_IMPORTED_MODULE_8__.default, null, (0,_utils__WEBPACK_IMPORTED_MODULE_15__.mergeCells)(cells)), shouldRenderExpandedRow && renderRowExpanded(rowData));\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Row__WEBPACK_IMPORTED_MODULE_7__.default, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({}, restRowProps, {\n \"data-depth\": depth,\n style: rowStyles\n }), renderRowProp ? renderRowProp(rowNode, rowData) : rowNode);\n };\n\n var renderTableHeader = function renderTableHeader(headerCells, rowWidth) {\n var top = typeof affixHeader === 'number' ? affixHeader : 0;\n var rowProps = {\n 'aria-rowindex': 1,\n rowRef: tableHeaderRef,\n width: rowWidth,\n height: getRowHeight(),\n headerHeight: headerHeight,\n isHeaderRow: true,\n top: 0\n };\n var fixedStyle = {\n position: 'fixed',\n overflow: 'hidden',\n height: headerHeight,\n width: tableWidth.current,\n top: top\n }; // Affix header\n\n var header = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: prefix('affix-header'),\n style: fixedStyle,\n ref: affixHeaderWrapperRef\n }, renderRow(rowProps, headerCells));\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, (affixHeader === 0 || affixHeader) && header, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n role: \"rowgroup\",\n className: prefix('header-row-wrapper'),\n ref: headerWrapperRef\n }, renderRow(rowProps, headerCells)));\n };\n\n var shouldRenderExpandedRow = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_4___default()(renderRowExpandedProp) && !isTree && rowKey && expandedRowKeys.some(function (key) {\n return key === rowData[rowKey];\n })) {\n return true;\n }\n\n return false;\n }, [expandedRowKeys, isTree, renderRowExpandedProp, rowKey]);\n var bindRowClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n return function (event) {\n onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(rowData, event);\n };\n }, [onRowClick]);\n var bindRowContextMenu = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (rowData) {\n return function (event) {\n onRowContextMenu === null || onRowContextMenu === void 0 ? void 0 : onRowContextMenu(rowData, event);\n };\n }, [onRowContextMenu]);\n var handleTreeToggle = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function (treeRowKey, _rowIndex, rowData) {\n var open = false;\n var nextExpandedRowKeys = [];\n\n for (var i = 0; i < expandedRowKeys.length; i++) {\n var key = expandedRowKeys[i];\n\n if (key === treeRowKey) {\n open = true;\n } else {\n nextExpandedRowKeys.push(key);\n }\n }\n\n if (!open) {\n nextExpandedRowKeys.push(treeRowKey);\n }\n\n setExpandedRowKeys(nextExpandedRowKeys);\n onExpandChange === null || onExpandChange === void 0 ? void 0 : onExpandChange(!open, rowData);\n }, [expandedRowKeys, onExpandChange, setExpandedRowKeys]);\n /**\n * Records the status of merged rows.\n * { cellKey: [count,index]}\n */\n\n var rowSpanState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)({});\n\n var renderRowData = function renderRowData(bodyCells, rowData, props, shouldRenderExpandedRow) {\n var hasChildren = isTree && rowData.children && Array.isArray(rowData.children);\n var nextRowKey = rowKey && typeof rowData[rowKey] !== 'undefined' ? rowData[rowKey] : props.key;\n\n var rowProps = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({}, props, {\n key: nextRowKey,\n 'aria-rowindex': props.key + 2,\n rowRef: bindTableRowsRef(props.key, rowData),\n onClick: bindRowClick(rowData),\n onContextMenu: bindRowContextMenu(rowData)\n });\n\n var expanded = expandedRowKeys.some(function (key) {\n return rowKey && key === rowData[rowKey];\n });\n var cells = [];\n\n for (var i = 0; i < bodyCells.length; i++) {\n var _cell$props2, _cell$props2$rowSpan, _rowSpanState$current, _cell$props3, _rowSpanState$current2;\n\n var cell = bodyCells[i];\n var rowSpan = (_cell$props2 = cell.props) === null || _cell$props2 === void 0 ? void 0 : (_cell$props2$rowSpan = _cell$props2.rowSpan) === null || _cell$props2$rowSpan === void 0 ? void 0 : _cell$props2$rowSpan.call(_cell$props2, rowData);\n\n var _rowHeight = rowSpan ? rowSpan * (props.height || 46) : props.height;\n\n var _cellKey = cell.props.dataKey || i; // Record the cell state of the merged row\n\n\n if (((_rowSpanState$current = rowSpanState.current[_cellKey]) === null || _rowSpanState$current === void 0 ? void 0 : _rowSpanState$current[1]) > 0) {\n rowSpanState.current[_cellKey][1] -= 1; // Restart counting when merged to the last cell.\n\n if (rowSpanState.current[_cellKey][1] === 0) {\n rowSpanState.current[_cellKey][0] = 0;\n }\n }\n\n if (rowSpan) {\n // The state of the initial merged cell\n rowSpanState.current[_cellKey] = [rowSpan, rowSpan];\n rowProps.rowSpan = rowSpan;\n rowProps.style = {\n overflow: 'inherit'\n };\n } // Cells marked as deleted when checking for merged cell.\n\n\n var removedCell = (_cell$props3 = cell.props) !== null && _cell$props3 !== void 0 && _cell$props3.rowSpan && !rowSpan && ((_rowSpanState$current2 = rowSpanState.current[_cellKey]) === null || _rowSpanState$current2 === void 0 ? void 0 : _rowSpanState$current2[0]) !== 0 ? true : false;\n cells.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().cloneElement(cell, {\n hasChildren: hasChildren,\n rowData: rowData,\n wordWrap: wordWrap,\n height: _rowHeight,\n rowIndex: props.key,\n depth: props.depth,\n renderTreeToggle: renderTreeToggle,\n onTreeToggle: handleTreeToggle,\n rowKey: nextRowKey,\n expanded: expanded,\n rowSpan: rowSpan,\n removed: removedCell\n }));\n }\n\n return renderRow(rowProps, cells, shouldRenderExpandedRow, rowData);\n };\n\n var renderScrollbar = function renderScrollbar() {\n var height = getTableHeight();\n\n if (disabledScroll) {\n return null;\n }\n\n var scrollbars = [];\n\n if (hasHorizontalScrollbar) {\n scrollbars.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_9__.default, {\n key: \"scrollbar\",\n tableId: id,\n style: {\n width: tableWidth.current\n },\n length: tableWidth.current,\n onScroll: onScrollHorizontal,\n scrollLength: contentWidth.current,\n ref: scrollbarXRef\n }));\n }\n\n if (hasVerticalScrollbar) {\n scrollbars.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_9__.default, {\n vertical: true,\n key: \"vertical-scrollbar\",\n tableId: id,\n length: height - headerHeight,\n onScroll: onScrollVertical,\n scrollLength: contentHeight.current,\n ref: scrollbarYRef\n }));\n }\n\n return scrollbars;\n };\n\n var renderTableBody = function renderTableBody(bodyCells, rowWidth) {\n var _visibleRows$current;\n\n var height = getTableHeight();\n var bodyHeight = height - headerHeight;\n var bodyStyles = {\n top: headerHeight,\n height: bodyHeight\n };\n var contentHeight = 0;\n var topHideHeight = 0;\n var bottomHideHeight = 0;\n visibleRows.current = [];\n\n if (data) {\n var top = 0; // Row position\n\n var minTop = Math.abs(scrollY.current);\n var maxTop = minTop + height + rowExpandedHeight;\n var isCustomRowHeight = typeof rowHeight === 'function';\n var isUncertainHeight = !!renderRowExpandedProp || isCustomRowHeight || wordWrap; // If virtualized is enabled and the row height in the Table is variable,\n // you need to loop through the data to get the height of each row.\n\n if (isUncertainHeight && virtualized || !virtualized) {\n // Avoid white screens on the top and bottom of the table when touching and scrolling on the mobile terminal.\n // So supplement the display data row.\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_15__.isSupportTouchEvent)()) {\n var coveredHeight = height * 3;\n minTop = Math.max(minTop - coveredHeight, 0);\n maxTop = maxTop + coveredHeight;\n }\n\n for (var index = 0; index < data.length; index++) {\n var _rowData = data[index];\n var maxHeight = tableRowsMaxHeight[index];\n var shouldRender = shouldRenderExpandedRow(_rowData);\n var nextRowHeight = 0;\n\n if (typeof rowHeight === 'function') {\n nextRowHeight = rowHeight(_rowData);\n } else {\n nextRowHeight = maxHeight ? Math.max(maxHeight + _constants__WEBPACK_IMPORTED_MODULE_14__.CELL_PADDING_HEIGHT, rowHeight) : rowHeight;\n\n if (shouldRender) {\n nextRowHeight += rowExpandedHeight;\n }\n }\n\n contentHeight += nextRowHeight;\n var rowProps = {\n key: index,\n top: top,\n width: rowWidth,\n depth: _rowData[_constants__WEBPACK_IMPORTED_MODULE_14__.TREE_DEPTH],\n height: nextRowHeight\n };\n top += nextRowHeight;\n\n if (virtualized && !wordWrap) {\n if (top + nextRowHeight < minTop) {\n topHideHeight += nextRowHeight;\n continue;\n } else if (top > maxTop) {\n bottomHideHeight += nextRowHeight;\n continue;\n }\n }\n\n visibleRows.current.push(renderRowData(bodyCells, _rowData, rowProps, shouldRender));\n }\n } else {\n /** virtualized */\n // If the row height of the Table is fixed, it is directly calculated by the row height and the number of rows,\n // thereby reducing the performance cost of traversing all data.\n var _nextRowHeight = getRowHeight();\n\n var startIndex = Math.max(Math.floor(minTop / _nextRowHeight), 0);\n var endIndex = Math.min(startIndex + Math.ceil(bodyHeight / _nextRowHeight) + 5, data.length); // Avoid white screens on the top and bottom of the table when touching and scrolling on the mobile terminal.\n // So supplement the display data row.\n\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_15__.isSupportTouchEvent)()) {\n var coveredCount = Math.floor(height / _nextRowHeight * 3);\n startIndex = Math.max(startIndex - coveredCount, 0);\n endIndex = Math.min(endIndex + coveredCount, data.length);\n }\n\n contentHeight = data.length * _nextRowHeight;\n topHideHeight = startIndex * _nextRowHeight;\n bottomHideHeight = (data.length - endIndex) * _nextRowHeight;\n\n for (var _index = startIndex; _index < endIndex; _index++) {\n var _rowData2 = data[_index];\n var _rowProps = {\n key: _index,\n depth: _rowData2[_constants__WEBPACK_IMPORTED_MODULE_14__.TREE_DEPTH],\n top: _index * _nextRowHeight,\n width: rowWidth,\n height: _nextRowHeight\n };\n visibleRows.current.push(renderRowData(bodyCells, _rowData2, _rowProps, false));\n }\n }\n }\n\n var wheelStyles = {\n position: 'absolute',\n height: contentHeight,\n minHeight: height,\n pointerEvents: isScrolling ? 'none' : undefined\n };\n var topRowStyles = {\n height: topHideHeight\n };\n var bottomRowStyles = {\n height: bottomHideHeight\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n ref: tableBodyRef,\n role: \"rowgroup\",\n className: prefix('body-row-wrapper'),\n style: bodyStyles,\n onScroll: onScrollBody\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n style: wheelStyles,\n className: prefix('body-wheel-area'),\n ref: wheelWrapperRef\n }, topHideHeight ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Row__WEBPACK_IMPORTED_MODULE_7__.default, {\n style: topRowStyles,\n className: \"virtualized\"\n }) : null, visibleRows.current, bottomHideHeight ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Row__WEBPACK_IMPORTED_MODULE_7__.default, {\n style: bottomRowStyles,\n className: \"virtualized\"\n }) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_EmptyMessage__WEBPACK_IMPORTED_MODULE_12__.default, {\n locale: locale,\n renderEmpty: renderEmpty,\n addPrefix: prefix,\n loading: !!((_visibleRows$current = visibleRows.current) !== null && _visibleRows$current !== void 0 && _visibleRows$current.length) || loading\n }), renderScrollbar(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Loader__WEBPACK_IMPORTED_MODULE_11__.default, {\n locale: locale,\n loadAnimation: loadAnimation,\n loading: loading,\n addPrefix: prefix,\n renderLoading: renderLoading\n }));\n };\n\n var contextValue = react__WEBPACK_IMPORTED_MODULE_2___default().useMemo(function () {\n return {\n classPrefix: classPrefix,\n translateDOMPositionXY: translateDOMPositionXY.current,\n rtl: rtl,\n isTree: isTree,\n hasCustomTreeCol: hasCustomTreeCol\n };\n }, [classPrefix, hasCustomTreeCol, isTree, rtl]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_TableContext__WEBPACK_IMPORTED_MODULE_13__.default.Provider, {\n value: contextValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__.default)({\n role: isTree ? 'treegrid' : 'grid' // The aria-rowcount is specified on the element with the table.\n // Its value is an integer equal to the total number of rows available, including header rows.\n ,\n \"aria-rowcount\": data.length + 1,\n \"aria-colcount\": colCounts.current,\n \"aria-busy\": loading\n }, rest, {\n className: classes,\n style: styles,\n ref: tableRef\n }), showHeader && renderTableHeader(headerCells, rowWidth), children && renderTableBody(bodyCells, rowWidth), showHeader && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_MouseArea__WEBPACK_IMPORTED_MODULE_10__.default, {\n ref: mouseAreaRef,\n addPrefix: prefix,\n headerHeight: headerHeight,\n height: getTableHeight()\n })));\n});\nTable.displayName = 'Table';\nTable.propTypes = {\n autoHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n fillHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n affixHeader: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number)]),\n affixHorizontalScrollbar: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number)]),\n bordered: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n className: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string),\n classPrefix: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n cellBordered: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n data: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n defaultExpandAllRows: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n defaultExpandedRowKeys: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n defaultSortType: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n disabledScroll: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n expandedRowKeys: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n hover: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n height: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n headerHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n locale: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n loading: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n loadAnimation: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n minHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n rowKey: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number)]),\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().number), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func)]),\n renderTreeToggle: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n renderRowExpanded: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n renderRow: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n rowExpandedHeight: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n renderEmpty: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n renderLoading: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n rowClassName: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string)]),\n rtl: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n style: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n sortColumn: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().string),\n sortType: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n showHeader: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n shouldUpdateScroll: prop_types__WEBPACK_IMPORTED_MODULE_16___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_16___default().func), (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool)]),\n translate3d: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n wordWrap: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().any),\n width: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number),\n virtualized: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n isTree: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool),\n onRowClick: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onRowContextMenu: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onScroll: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onSortColumn: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onExpandChange: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onTouchStart: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onTouchMove: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n onTouchEnd: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func)\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Table);\n\n//# sourceURL=webpack://rsuite/./node_modules/rsuite-table/es/Table.js?");
9637
9637
 
9638
9638
  /***/ }),
9639
9639
 
@@ -9985,7 +9985,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
9985
9985
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9986
9986
 
9987
9987
  "use strict";
9988
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var dom_lib_getWidth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dom-lib/getWidth */ \"./node_modules/dom-lib/esm/getWidth.js\");\n/* harmony import */ var dom_lib_getHeight__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! dom-lib/getHeight */ \"./node_modules/dom-lib/esm/getHeight.js\");\n/* harmony import */ var dom_lib_getOffset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dom-lib/getOffset */ \"./node_modules/dom-lib/esm/getOffset.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"./node_modules/rsuite-table/es/constants.js\");\n/* harmony import */ var _juggle_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @juggle/resize-observer */ \"./node_modules/@juggle/resize-observer/lib/exports/resize-observer.js\");\n/* harmony import */ var _useMount__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./useMount */ \"./node_modules/rsuite-table/es/utils/useMount.js\");\n/* harmony import */ var _useUpdateLayoutEffect__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./useUpdateLayoutEffect */ \"./node_modules/rsuite-table/es/utils/useUpdateLayoutEffect.js\");\n/* harmony import */ var _isNumberOrTrue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./isNumberOrTrue */ \"./node_modules/rsuite-table/es/utils/isNumberOrTrue.js\");\n\n\n\n\n\n\n\n\n\n\n/**\n * The dimension information of the table,\n * including the height, width, scrollable distance and the coordinates of the scroll handle, etc.\n * @param props\n * @returns\n */\nvar useTableDimension = function useTableDimension(props) {\n var data = props.data,\n rowHeight = props.rowHeight,\n tableRef = props.tableRef,\n headerWrapperRef = props.headerWrapperRef,\n prefix = props.prefix,\n widthProp = props.width,\n affixHeader = props.affixHeader,\n affixHorizontalScrollbar = props.affixHorizontalScrollbar,\n headerHeight = props.headerHeight,\n heightProp = props.height,\n autoHeight = props.autoHeight,\n minHeight = props.minHeight,\n fillHeight = props.fillHeight,\n children = props.children,\n expandedRowKeys = props.expandedRowKeys,\n showHeader = props.showHeader,\n onTableResizeChange = props.onTableResizeChange,\n onTableScroll = props.onTableScroll;\n var contentHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var contentWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var minScrollY = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var scrollY = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var scrollX = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var minScrollX = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var tableWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(widthProp || 0);\n var tableHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(heightProp || 0);\n var columnCount = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var resizeObserver = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n var containerResizeObserver = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n var headerOffset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var tableOffset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var getRowHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (rowData) {\n if (rowData === void 0) {\n rowData = {};\n }\n\n return typeof rowHeight === 'function' ? rowHeight(rowData) : rowHeight;\n }, [rowHeight]);\n var calculateTableContextHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var _table$querySelectorA;\n\n var prevContentHeight = contentHeight.current;\n var table = tableRef === null || tableRef === void 0 ? void 0 : tableRef.current;\n var rows = (table === null || table === void 0 ? void 0 : table.querySelectorAll(\".\" + (prefix === null || prefix === void 0 ? void 0 : prefix('row')))) || [];\n var virtualized = (table === null || table === void 0 ? void 0 : (_table$querySelectorA = table.querySelectorAll('.virtualized')) === null || _table$querySelectorA === void 0 ? void 0 : _table$querySelectorA.length) > 0;\n var nextContentHeight = rows.length ? Array.from(rows).map(function (row, index) {\n return (0,dom_lib_getHeight__WEBPACK_IMPORTED_MODULE_2__.default)(row) || getRowHeight(data === null || data === void 0 ? void 0 : data[index]);\n }).reduce(function (x, y) {\n return x + y;\n }) : 0; // After setting the affixHeader property, the height of the two headers should be subtracted.\n\n contentHeight.current = Math.round(nextContentHeight - (affixHeader ? headerHeight * 2 : headerHeight)); // Whether to show the horizontal scroll bar\n\n var hasHorizontalScrollbar = contentWidth.current > tableWidth.current; // The height of the table content area should be added to the height occupied by the horizontal scroll bar when autoHeight is set.\n\n if (autoHeight && hasHorizontalScrollbar) {\n contentHeight.current += _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH;\n }\n\n var height = fillHeight ? tableHeight.current : heightProp;\n var tableBodyHeight = showHeader ? height - headerHeight : height;\n\n if (!autoHeight) {\n /**\n * The purpose of subtracting SCROLLBAR_WIDTH is to keep the scroll bar from blocking the content part.\n * But it will only be calculated when there is a horizontal scroll bar (contentWidth > tableWidth).\n */\n minScrollY.current = -(nextContentHeight - height) - (hasHorizontalScrollbar ? _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH : 0);\n } // If the height of the content area is less than the height of the table, the vertical scroll bar is reset.\n\n\n if (nextContentHeight < height) {\n onTableScroll === null || onTableScroll === void 0 ? void 0 : onTableScroll({\n y: 0\n });\n }\n\n var currentScrollTop = Math.abs(scrollY.current); // When Table is set to virtualized, the logic will be entered every time the wheel event is\n // triggered to avoid resetting the scroll bar after scrolling to the bottom, so add the SCROLLBAR_WIDTH value.\n\n var maxScrollTop = nextContentHeight + _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH - tableBodyHeight; // If the top value of the current scroll is greater than the scrollable range,\n // keep the vertical scroll bar at the bottom.\n\n if (maxScrollTop > 0 && currentScrollTop > maxScrollTop) {\n if (virtualized) {\n onTableScroll === null || onTableScroll === void 0 ? void 0 : onTableScroll({\n y: ((data === null || data === void 0 ? void 0 : data.length) || 0) * getRowHeight() - tableBodyHeight\n });\n } else {\n onTableScroll === null || onTableScroll === void 0 ? void 0 : onTableScroll({\n y: maxScrollTop\n });\n }\n }\n\n if (prevContentHeight !== contentHeight.current) {\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevContentHeight, 'bodyHeightChanged');\n }\n }, [tableRef, prefix, affixHeader, headerHeight, autoHeight, fillHeight, heightProp, showHeader, getRowHeight, data, onTableScroll, onTableResizeChange]);\n var setOffsetByAffix = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var headerNode = headerWrapperRef === null || headerWrapperRef === void 0 ? void 0 : headerWrapperRef.current;\n\n if ((0,_isNumberOrTrue__WEBPACK_IMPORTED_MODULE_8__.default)(affixHeader) && headerNode) {\n headerOffset.current = (0,dom_lib_getOffset__WEBPACK_IMPORTED_MODULE_3__.default)(headerNode);\n }\n\n if ((0,_isNumberOrTrue__WEBPACK_IMPORTED_MODULE_8__.default)(affixHorizontalScrollbar) && tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableOffset.current = (0,dom_lib_getOffset__WEBPACK_IMPORTED_MODULE_3__.default)(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n }\n }, [affixHeader, affixHorizontalScrollbar, headerWrapperRef, tableRef]);\n var calculateTableContentWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var prevWidth = contentWidth.current;\n var prevColumnCount = columnCount.current;\n var table = tableRef === null || tableRef === void 0 ? void 0 : tableRef.current;\n var row = table === null || table === void 0 ? void 0 : table.querySelector(\".\" + prefix('row') + \":not(.virtualized)\");\n var nextContentWidth = row ? (0,dom_lib_getWidth__WEBPACK_IMPORTED_MODULE_1__.default)(row) : 0;\n contentWidth.current = nextContentWidth - (autoHeight ? _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH : 0);\n columnCount.current = (row === null || row === void 0 ? void 0 : row.querySelectorAll(\".\" + prefix('cell')).length) || 0; // The value of SCROLLBAR_WIDTH is subtracted so that the scroll bar does not block the content part.\n // There is no vertical scroll bar after autoHeight.\n\n minScrollX.current = -(nextContentWidth - tableWidth.current) - (autoHeight ? 0 : _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH);\n /**\n * If the width of the content area and the number of columns change,\n * the horizontal scroll bar is reset.\n * fix: https://github.com/rsuite/rsuite/issues/2039\n */\n\n if (prevWidth > 0 && prevWidth !== contentWidth.current && prevColumnCount > 0 && prevColumnCount !== columnCount.current) {\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevWidth, 'bodyWidthChanged');\n }\n }, [autoHeight, onTableResizeChange, prefix, tableRef]);\n var calculateTableWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nextWidth) {\n var prevWidth = tableWidth.current;\n\n if (tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableWidth.current = nextWidth || (0,dom_lib_getWidth__WEBPACK_IMPORTED_MODULE_1__.default)(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n }\n\n if (prevWidth && prevWidth !== tableWidth.current) {\n scrollX.current = 0;\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevWidth, 'widthChanged');\n }\n\n setOffsetByAffix();\n }, [onTableResizeChange, setOffsetByAffix, tableRef]);\n var calculateTableHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nextHeight) {\n var prevHeight = tableHeight.current;\n\n if (nextHeight) {\n tableHeight.current = nextHeight;\n } else if (tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableHeight.current = (0,dom_lib_getHeight__WEBPACK_IMPORTED_MODULE_2__.default)(tableRef.current.parentNode);\n }\n\n if (prevHeight && prevHeight !== tableHeight.current) {\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevHeight, 'heightChanged');\n }\n }, [onTableResizeChange, tableRef]);\n (0,_useMount__WEBPACK_IMPORTED_MODULE_6__.default)(function () {\n var _tableRef$current;\n\n calculateTableContextHeight();\n calculateTableContentWidth();\n calculateTableWidth();\n calculateTableHeight();\n setOffsetByAffix();\n containerResizeObserver.current = new _juggle_resize_observer__WEBPACK_IMPORTED_MODULE_5__.ResizeObserver(function (entries) {\n calculateTableHeight(entries[0].contentRect.height);\n });\n containerResizeObserver.current.observe(tableRef === null || tableRef === void 0 ? void 0 : (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.parentNode);\n resizeObserver.current = new _juggle_resize_observer__WEBPACK_IMPORTED_MODULE_5__.ResizeObserver(function (entries) {\n calculateTableWidth(entries[0].contentRect.width);\n });\n resizeObserver.current.observe(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n return function () {\n var _resizeObserver$curre, _containerResizeObser;\n\n (_resizeObserver$curre = resizeObserver.current) === null || _resizeObserver$curre === void 0 ? void 0 : _resizeObserver$curre.disconnect();\n (_containerResizeObser = containerResizeObserver.current) === null || _containerResizeObser === void 0 ? void 0 : _containerResizeObser.disconnect();\n };\n });\n (0,_useUpdateLayoutEffect__WEBPACK_IMPORTED_MODULE_7__.default)(function () {\n calculateTableHeight();\n calculateTableContextHeight();\n }, [fillHeight]);\n (0,_useUpdateLayoutEffect__WEBPACK_IMPORTED_MODULE_7__.default)(function () {\n calculateTableWidth();\n calculateTableContentWidth();\n calculateTableContextHeight();\n }, [data, heightProp, contentHeight.current, expandedRowKeys, children, calculateTableContextHeight, calculateTableContentWidth]);\n var setScrollY = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (value) {\n scrollY.current = value;\n }, []);\n var setScrollX = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (value) {\n scrollX.current = value;\n }, []);\n\n var getTableHeight = function getTableHeight() {\n if (fillHeight) {\n return tableHeight.current;\n }\n\n if ((data === null || data === void 0 ? void 0 : data.length) === 0 && autoHeight) {\n return heightProp;\n }\n\n return autoHeight ? Math.max(headerHeight + contentHeight.current, minHeight) : heightProp;\n };\n\n return {\n contentHeight: contentHeight,\n contentWidth: contentWidth,\n minScrollY: minScrollY,\n minScrollX: minScrollX,\n scrollY: scrollY,\n scrollX: scrollX,\n tableWidth: tableWidth,\n headerOffset: headerOffset,\n tableOffset: tableOffset,\n getTableHeight: getTableHeight,\n setScrollY: setScrollY,\n setScrollX: setScrollX\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (useTableDimension);\n\n//# sourceURL=webpack://rsuite/./node_modules/rsuite-table/es/utils/useTableDimension.js?");
9988
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var dom_lib_getWidth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dom-lib/getWidth */ \"./node_modules/dom-lib/esm/getWidth.js\");\n/* harmony import */ var dom_lib_getHeight__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! dom-lib/getHeight */ \"./node_modules/dom-lib/esm/getHeight.js\");\n/* harmony import */ var dom_lib_getOffset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dom-lib/getOffset */ \"./node_modules/dom-lib/esm/getOffset.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"./node_modules/rsuite-table/es/constants.js\");\n/* harmony import */ var _juggle_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @juggle/resize-observer */ \"./node_modules/@juggle/resize-observer/lib/exports/resize-observer.js\");\n/* harmony import */ var _useMount__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./useMount */ \"./node_modules/rsuite-table/es/utils/useMount.js\");\n/* harmony import */ var _useUpdateLayoutEffect__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./useUpdateLayoutEffect */ \"./node_modules/rsuite-table/es/utils/useUpdateLayoutEffect.js\");\n/* harmony import */ var _isNumberOrTrue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./isNumberOrTrue */ \"./node_modules/rsuite-table/es/utils/isNumberOrTrue.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The dimension information of the table,\n * including the height, width, scrollable distance and the coordinates of the scroll handle, etc.\n * @param props\n * @returns\n */\nvar useTableDimension = function useTableDimension(props) {\n var data = props.data,\n rowHeight = props.rowHeight,\n tableRef = props.tableRef,\n headerWrapperRef = props.headerWrapperRef,\n prefix = props.prefix,\n widthProp = props.width,\n affixHeader = props.affixHeader,\n affixHorizontalScrollbar = props.affixHorizontalScrollbar,\n headerHeight = props.headerHeight,\n heightProp = props.height,\n autoHeight = props.autoHeight,\n minHeight = props.minHeight,\n fillHeight = props.fillHeight,\n children = props.children,\n expandedRowKeys = props.expandedRowKeys,\n showHeader = props.showHeader,\n onTableResizeChange = props.onTableResizeChange,\n onTableScroll = props.onTableScroll;\n var contentHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var contentWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var minScrollY = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var scrollY = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var scrollX = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var minScrollX = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var tableWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(widthProp || 0);\n var tableHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(heightProp || 0);\n var columnCount = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n var resizeObserver = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n var containerResizeObserver = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n var headerOffset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var tableOffset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var getRowHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (rowData) {\n if (rowData === void 0) {\n rowData = {};\n }\n\n return typeof rowHeight === 'function' ? rowHeight(rowData) : rowHeight;\n }, [rowHeight]);\n var calculateTableContextHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var _table$querySelectorA;\n\n var prevContentHeight = contentHeight.current;\n var table = tableRef === null || tableRef === void 0 ? void 0 : tableRef.current;\n var rows = (table === null || table === void 0 ? void 0 : table.querySelectorAll(\".\" + (prefix === null || prefix === void 0 ? void 0 : prefix('row')))) || [];\n var virtualized = (table === null || table === void 0 ? void 0 : (_table$querySelectorA = table.querySelectorAll('.virtualized')) === null || _table$querySelectorA === void 0 ? void 0 : _table$querySelectorA.length) > 0;\n var nextContentHeight = rows.length ? Array.from(rows).map(function (row, index) {\n return (0,dom_lib_getHeight__WEBPACK_IMPORTED_MODULE_2__.default)(row) || getRowHeight(data === null || data === void 0 ? void 0 : data[index]);\n }).reduce(function (x, y) {\n return x + y;\n }) : 0; // After setting the affixHeader property, the height of the two headers should be subtracted.\n\n contentHeight.current = Math.round(nextContentHeight - (affixHeader ? headerHeight * 2 : headerHeight)); // Whether to show the horizontal scroll bar\n\n var hasHorizontalScrollbar = contentWidth.current > tableWidth.current; // The height of the table content area should be added to the height occupied by the horizontal scroll bar when autoHeight is set.\n\n if (autoHeight && hasHorizontalScrollbar) {\n contentHeight.current += _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH;\n }\n\n var height = fillHeight ? tableHeight.current : heightProp;\n var tableBodyHeight = showHeader ? height - headerHeight : height;\n\n if (!autoHeight) {\n /**\n * The purpose of subtracting SCROLLBAR_WIDTH is to keep the scroll bar from blocking the content part.\n * But it will only be calculated when there is a horizontal scroll bar (contentWidth > tableWidth).\n */\n minScrollY.current = -(nextContentHeight - height) - (hasHorizontalScrollbar ? _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH : 0);\n } // If the height of the content area is less than the height of the table, the vertical scroll bar is reset.\n\n\n if (nextContentHeight < height) {\n onTableScroll === null || onTableScroll === void 0 ? void 0 : onTableScroll({\n y: 0\n });\n }\n\n var currentScrollTop = Math.abs(scrollY.current); // When Table is set to virtualized, the logic will be entered every time the wheel event is\n // triggered to avoid resetting the scroll bar after scrolling to the bottom, so add the SCROLLBAR_WIDTH value.\n\n var maxScrollTop = nextContentHeight + _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH - tableBodyHeight; // If the top value of the current scroll is greater than the scrollable range,\n // keep the vertical scroll bar at the bottom.\n\n if (maxScrollTop > 0 && currentScrollTop > maxScrollTop) {\n if (virtualized) {\n onTableScroll === null || onTableScroll === void 0 ? void 0 : onTableScroll({\n y: ((data === null || data === void 0 ? void 0 : data.length) || 0) * getRowHeight() - tableBodyHeight\n });\n } else {\n onTableScroll === null || onTableScroll === void 0 ? void 0 : onTableScroll({\n y: maxScrollTop\n });\n }\n }\n\n if (prevContentHeight !== contentHeight.current) {\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevContentHeight, 'bodyHeightChanged');\n }\n }, [tableRef, prefix, affixHeader, headerHeight, autoHeight, fillHeight, heightProp, showHeader, getRowHeight, data, onTableScroll, onTableResizeChange]);\n var setOffsetByAffix = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var headerNode = headerWrapperRef === null || headerWrapperRef === void 0 ? void 0 : headerWrapperRef.current;\n\n if ((0,_isNumberOrTrue__WEBPACK_IMPORTED_MODULE_8__.default)(affixHeader) && headerNode) {\n headerOffset.current = (0,dom_lib_getOffset__WEBPACK_IMPORTED_MODULE_3__.default)(headerNode);\n }\n\n if ((0,_isNumberOrTrue__WEBPACK_IMPORTED_MODULE_8__.default)(affixHorizontalScrollbar) && tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableOffset.current = (0,dom_lib_getOffset__WEBPACK_IMPORTED_MODULE_3__.default)(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n }\n }, [affixHeader, affixHorizontalScrollbar, headerWrapperRef, tableRef]);\n var calculateTableContentWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var prevWidth = contentWidth.current;\n var prevColumnCount = columnCount.current;\n var table = tableRef === null || tableRef === void 0 ? void 0 : tableRef.current;\n var row = table === null || table === void 0 ? void 0 : table.querySelector(\".\" + prefix('row') + \":not(.virtualized)\");\n var nextContentWidth = row ? (0,dom_lib_getWidth__WEBPACK_IMPORTED_MODULE_1__.default)(row) : 0;\n contentWidth.current = nextContentWidth - (autoHeight ? _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH : 0);\n columnCount.current = (row === null || row === void 0 ? void 0 : row.querySelectorAll(\".\" + prefix('cell')).length) || 0; // The value of SCROLLBAR_WIDTH is subtracted so that the scroll bar does not block the content part.\n // There is no vertical scroll bar after autoHeight.\n\n minScrollX.current = -(nextContentWidth - tableWidth.current) - (autoHeight ? 0 : _constants__WEBPACK_IMPORTED_MODULE_4__.SCROLLBAR_WIDTH);\n /**\n * If the width of the content area and the number of columns change,\n * the horizontal scroll bar is reset.\n * fix: https://github.com/rsuite/rsuite/issues/2039\n */\n\n if (prevWidth > 0 && prevWidth !== contentWidth.current && prevColumnCount > 0 && prevColumnCount !== columnCount.current) {\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevWidth, 'bodyWidthChanged');\n }\n }, [autoHeight, onTableResizeChange, prefix, tableRef]);\n var calculateTableWidth = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nextWidth) {\n var prevWidth = tableWidth.current;\n\n if (tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableWidth.current = nextWidth || (0,dom_lib_getWidth__WEBPACK_IMPORTED_MODULE_1__.default)(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n }\n\n if (prevWidth && prevWidth !== tableWidth.current) {\n scrollX.current = 0;\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevWidth, 'widthChanged');\n }\n\n setOffsetByAffix();\n }, [onTableResizeChange, setOffsetByAffix, tableRef]);\n var calculateTableHeight = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nextHeight) {\n var prevHeight = tableHeight.current;\n\n if (nextHeight) {\n tableHeight.current = nextHeight;\n } else if (tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableHeight.current = (0,dom_lib_getHeight__WEBPACK_IMPORTED_MODULE_2__.default)(tableRef.current.parentNode);\n }\n\n if (prevHeight && prevHeight !== tableHeight.current) {\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevHeight, 'heightChanged');\n }\n }, [onTableResizeChange, tableRef]);\n (0,_useMount__WEBPACK_IMPORTED_MODULE_6__.default)(function () {\n var _tableRef$current;\n\n calculateTableContextHeight();\n calculateTableContentWidth();\n calculateTableWidth();\n calculateTableHeight();\n setOffsetByAffix();\n containerResizeObserver.current = new _juggle_resize_observer__WEBPACK_IMPORTED_MODULE_5__.ResizeObserver(function (entries) {\n calculateTableHeight(entries[0].contentRect.height);\n });\n containerResizeObserver.current.observe(tableRef === null || tableRef === void 0 ? void 0 : (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.parentNode);\n var changeTableWidthWhenResize = lodash_debounce__WEBPACK_IMPORTED_MODULE_9___default()(function (entries) {\n calculateTableWidth(entries[0].contentRect.width);\n }, 20);\n resizeObserver.current = new _juggle_resize_observer__WEBPACK_IMPORTED_MODULE_5__.ResizeObserver(changeTableWidthWhenResize);\n resizeObserver.current.observe(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n return function () {\n var _resizeObserver$curre, _containerResizeObser;\n\n (_resizeObserver$curre = resizeObserver.current) === null || _resizeObserver$curre === void 0 ? void 0 : _resizeObserver$curre.disconnect();\n (_containerResizeObser = containerResizeObserver.current) === null || _containerResizeObser === void 0 ? void 0 : _containerResizeObser.disconnect();\n };\n });\n (0,_useUpdateLayoutEffect__WEBPACK_IMPORTED_MODULE_7__.default)(function () {\n calculateTableHeight();\n calculateTableContextHeight();\n }, [fillHeight]);\n (0,_useUpdateLayoutEffect__WEBPACK_IMPORTED_MODULE_7__.default)(function () {\n calculateTableWidth();\n calculateTableContentWidth();\n calculateTableContextHeight();\n }, [data, heightProp, contentHeight.current, expandedRowKeys, children, calculateTableContextHeight, calculateTableContentWidth]);\n var setScrollY = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (value) {\n scrollY.current = value;\n }, []);\n var setScrollX = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (value) {\n scrollX.current = value;\n }, []);\n\n var getTableHeight = function getTableHeight() {\n if (fillHeight) {\n return tableHeight.current;\n }\n\n if ((data === null || data === void 0 ? void 0 : data.length) === 0 && autoHeight) {\n return heightProp;\n }\n\n return autoHeight ? Math.max(headerHeight + contentHeight.current, minHeight) : heightProp;\n };\n\n return {\n contentHeight: contentHeight,\n contentWidth: contentWidth,\n minScrollY: minScrollY,\n minScrollX: minScrollX,\n scrollY: scrollY,\n scrollX: scrollX,\n tableWidth: tableWidth,\n headerOffset: headerOffset,\n tableOffset: tableOffset,\n getTableHeight: getTableHeight,\n setScrollY: setScrollY,\n setScrollX: setScrollX\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (useTableDimension);\n\n//# sourceURL=webpack://rsuite/./node_modules/rsuite-table/es/utils/useTableDimension.js?");
9989
9989
 
9990
9990
  /***/ }),
9991
9991