{"version":3,"file":"rsuite-table-6b00275b.js","sources":["../../node_modules/rsuite-table/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/rsuite-table/node_modules/react-is/index.js","../../node_modules/rsuite-table/es/utils/prefix.js","../../node_modules/rsuite-table/es/utils/getColumnProps.js","../../node_modules/rsuite-table/es/utils/getTotalByColumns.js","../../node_modules/rsuite-table/es/ColumnGroup.js","../../node_modules/rsuite-table/es/utils/translateDOMPositionXY.js","../../node_modules/rsuite-table/es/utils/isRTL.js","../../node_modules/rsuite-table/es/TableContext.js","../../node_modules/rsuite-table/es/constants.js","../../node_modules/rsuite-table/es/ColumnResizeHandler.js","../../node_modules/rsuite-table/es/Column.js","../../node_modules/rsuite-table/es/Cell.js","../../node_modules/rsuite-table/es/HeaderCell.js","../../node_modules/rsuite-table/es/utils/mergeCells.js","../../node_modules/rsuite-table/es/utils/toggleClass.js","../../node_modules/rsuite-table/es/utils/flattenData.js","../../node_modules/rsuite-table/es/utils/findRowKeys.js","../../node_modules/rsuite-table/es/utils/findAllParents.js","../../node_modules/rsuite-table/es/utils/shouldShowRowByExpanded.js","../../node_modules/rsuite-table/es/utils/resetLeftForCells.js","../../node_modules/rsuite-table/es/utils/isNumberOrTrue.js","../../node_modules/rsuite-table/es/utils/mergeRefs.js","../../node_modules/rsuite-table/es/utils/requestAnimationTimeout.js","../../node_modules/rsuite-table/es/utils/useUpdateEffect.js","../../node_modules/rsuite-table/es/utils/useIsomorphicLayoutEffect.js","../../node_modules/rsuite-table/es/utils/useUpdateLayoutEffect.js","../../node_modules/rsuite-table/es/utils/useMount.js","../../node_modules/rsuite-table/es/utils/useClassNames.js","../../node_modules/rsuite-table/es/utils/useControlled.js","../../node_modules/rsuite-table/es/utils/getTableColumns.js","../../node_modules/rsuite-table/es/utils/flushSync.js","../../node_modules/rsuite-table/es/utils/useCellDescriptor.js","../../node_modules/rsuite-table/es/utils/useIntersectionObserver.js","../../node_modules/rsuite-table/es/utils/useTableDimension.js","../../node_modules/rsuite-table/es/utils/defer.js","../../node_modules/rsuite-table/es/utils/useTableRows.js","../../node_modules/rsuite-table/es/utils/useAffix.js","../../node_modules/rsuite-table/es/utils/isSupportTouchEvent.js","../../node_modules/rsuite-table/es/utils/useScrollListener.js","../../node_modules/rsuite-table/es/utils/usePosition.js","../../node_modules/rsuite-table/es/utils/convertToFlex.js","../../node_modules/rsuite-table/es/Row.js","../../node_modules/rsuite-table/es/CellGroup.js","../../node_modules/rsuite-table/es/Scrollbar.js","../../node_modules/rsuite-table/es/MouseArea.js","../../node_modules/rsuite-table/es/Loader.js","../../node_modules/rsuite-table/es/EmptyMessage.js","../../node_modules/rsuite-table/es/utils/children.js","../../node_modules/rsuite-table/es/Table.js"],"sourcesContent":["/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use client';\nimport classNames from 'classnames';\nimport curry from 'lodash/curry';\nexport function prefix(pre, className) {\n if (!pre || !className) {\n return '';\n }\n\n if (Array.isArray(className)) {\n return classNames(className.filter(function (name) {\n return !!name;\n }).map(function (name) {\n return pre + \"-\" + name;\n }));\n } // TODO Compatible with V4\n\n\n if (pre[pre.length - 1] === '-') {\n return \"\" + pre + className;\n }\n\n return pre + \"-\" + className;\n}\nexport default curry(prefix);","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/**\n * Get the union of the props of the column itself and the props of the custom column\n *\n * e.g.\n * const CustomColumn = React.forwardRef((props, ref) => {\n * return ;\n * });\n *\n * \n * Header\n * Cell | \n * \n *\n */\nexport default function getColumnProps(column) {\n var _column$type, _column$type$render, _column$type$render$c;\n\n var columnDefaultProps = ((_column$type = column['type']) === null || _column$type === void 0 ? void 0 : (_column$type$render = _column$type['render']) === null || _column$type$render === void 0 ? void 0 : (_column$type$render$c = _column$type$render.call(_column$type)) === null || _column$type$render$c === void 0 ? void 0 : _column$type$render$c.props) || {};\n return _extends({}, columnDefaultProps, column === null || column === void 0 ? void 0 : column.props);\n}","'use client';\nimport React from 'react';\nimport isPlainObject from 'lodash/isPlainObject';\nimport getColumnProps from './getColumnProps';\n\nfunction getTotalByColumns(columns) {\n var totalFlexGrow = 0;\n var totalWidth = 0;\n\n var count = function count(items) {\n Array.from(items).forEach(function (column) {\n if ( /*#__PURE__*/React.isValidElement(column)) {\n var _getColumnProps = getColumnProps(column),\n flexGrow = _getColumnProps.flexGrow,\n _getColumnProps$width = _getColumnProps.width,\n width = _getColumnProps$width === void 0 ? 0 : _getColumnProps$width;\n\n totalFlexGrow += flexGrow || 0;\n totalWidth += flexGrow ? 0 : width;\n } else if (Array.isArray(column)) {\n count(column);\n }\n });\n };\n\n if (Array.isArray(columns)) {\n count(columns);\n } else if (isPlainObject(columns)) {\n var _columns$props = columns === null || columns === void 0 ? void 0 : columns.props,\n flexGrow = _columns$props.flexGrow,\n _columns$props$width = _columns$props.width,\n width = _columns$props$width === void 0 ? 0 : _columns$props$width;\n\n totalFlexGrow = flexGrow || 0;\n totalWidth = flexGrow ? 0 : width;\n }\n\n return {\n totalFlexGrow: totalFlexGrow,\n totalWidth: totalWidth\n };\n}\n\nexport default getTotalByColumns;","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"header\", \"className\", \"children\", \"classPrefix\", \"headerHeight\", \"verticalAlign\", \"align\", \"width\", \"groupHeaderHeight\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useClassNames, convertToFlex } from './utils';\nvar ColumnGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var header = props.header,\n className = props.className,\n children = props.children,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'column-group' : _props$classPrefix,\n _props$headerHeight = props.headerHeight,\n headerHeight = _props$headerHeight === void 0 ? 80 : _props$headerHeight,\n verticalAlign = props.verticalAlign,\n align = props.align,\n width = props.width,\n groupHeightProp = props.groupHeaderHeight,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var groupHeight = typeof groupHeightProp !== 'undefined' ? groupHeightProp : headerHeight / 2;\n var restHeight = typeof groupHeightProp !== 'undefined' ? headerHeight - groupHeightProp : headerHeight / 2;\n var styles = {\n height: groupHeight,\n width: width\n };\n\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var classes = merge(className, withClassPrefix());\n\n var contentStyles = _extends({}, convertToFlex({\n verticalAlign: verticalAlign,\n align: align\n }), styles);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: classes\n }, rest), /*#__PURE__*/React.createElement(\"div\", {\n className: prefix('header'),\n style: styles\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: prefix('header-content'),\n style: contentStyles\n }, header)), children ? React.Children.map(children, function (node) {\n return /*#__PURE__*/React.cloneElement(node, {\n className: prefix('cell'),\n predefinedStyle: {\n height: restHeight,\n top: styles.height\n },\n headerHeight: restHeight,\n verticalAlign: node.props.verticalAlign || verticalAlign,\n children: /*#__PURE__*/React.createElement(\"span\", {\n className: prefix('cell-content')\n }, node.props.children)\n });\n }) : null);\n});\nColumnGroup.displayName = 'Table.ColumnGroup';\nColumnGroup.propTypes = {\n header: PropTypes.node,\n classPrefix: PropTypes.string,\n groupHeaderHeight: PropTypes.number,\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom'])\n};\nexport default ColumnGroup;","'use client';\nimport { getTranslateDOMPositionXY } from 'dom-lib/translateDOMPositionXY';\nvar translateDOMPositionXY = getTranslateDOMPositionXY({\n enable3DTransform: true\n});\nexport default translateDOMPositionXY;","'use client';\nexport default function isRTL() {\n return typeof window !== 'undefined' && (document.body.getAttribute('dir') || document.dir) === 'rtl';\n}","'use client';\nimport React from 'react';\nimport translateDOMPositionXY from './utils/translateDOMPositionXY';\nimport isRTL from './utils/isRTL';\nvar TableContext = /*#__PURE__*/React.createContext({\n rtl: isRTL(),\n isTree: false,\n hasCustomTreeCol: false,\n translateDOMPositionXY: translateDOMPositionXY\n});\nexport default TableContext;","'use client';\nexport var LAYER_WIDTH = 30;\nexport var SCROLLBAR_MIN_WIDTH = 14;\nexport var SCROLLBAR_WIDTH = 10;\nexport var CELL_PADDING_HEIGHT = 26;\nexport var RESIZE_MIN_WIDTH = 20;\nexport var SORT_TYPE = {\n DESC: 'desc',\n ASC: 'asc'\n};\nexport var ROW_HEIGHT = 46;\nexport var ROW_HEADER_HEIGHT = 40; // transition-duration (ms)\n\nexport var TRANSITION_DURATION = 1000; // transition-timing-function (ease-out)\n\nexport var BEZIER = 'cubic-bezier(0, 0, .58, 1)'; // An attribute value added to the data row to identify whether it is expanded, used in Tree.\n\nexport var EXPANDED_KEY = Symbol('expanded'); // An attribute value added for the data row, identifying the key of the parent node, used in Tree.\n\nexport var PARENT_KEY = Symbol('parent'); // The attribute value added for the data row, which identifies the depth of the node (the number of parent nodes),\n// and is used in the Tree.\n\nexport var TREE_DEPTH = Symbol('treeDepth');","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"columnLeft\", \"classPrefix\", \"height\", \"className\", \"style\", \"columnFixed\", \"defaultColumnWidth\", \"minWidth\", \"onColumnResizeStart\", \"onColumnResizeMove\", \"onColumnResizeEnd\"];\nimport React, { useCallback, useContext, useEffect, useRef } from 'react';\nimport clamp from 'lodash/clamp';\nimport DOMMouseMoveTracker from 'dom-lib/DOMMouseMoveTracker';\nimport { useClassNames } from './utils';\nimport TableContext from './TableContext';\nimport { RESIZE_MIN_WIDTH } from './constants';\nvar ColumnResizeHandler = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _extends2;\n\n var _props$columnLeft = props.columnLeft,\n columnLeft = _props$columnLeft === void 0 ? 0 : _props$columnLeft,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'column-resize-spanner' : _props$classPrefix,\n height = props.height,\n className = props.className,\n style = props.style,\n columnFixed = props.columnFixed,\n defaultColumnWidth = props.defaultColumnWidth,\n minWidth = props.minWidth,\n onColumnResizeStart = props.onColumnResizeStart,\n onColumnResizeMove = props.onColumnResizeMove,\n onColumnResizeEnd = props.onColumnResizeEnd,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _useContext = useContext(TableContext),\n rtl = _useContext.rtl;\n\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n\n var classes = merge(className, withClassPrefix());\n var columnWidth = useRef(defaultColumnWidth || 0);\n var mouseMoveTracker = useRef();\n var isKeyDown = useRef();\n var cursorDelta = useRef(0);\n var handleMove = useCallback(function (deltaX) {\n if (!isKeyDown.current) {\n return;\n }\n\n cursorDelta.current += deltaX;\n columnWidth.current = clamp((defaultColumnWidth || 0) + (rtl ? -cursorDelta.current : cursorDelta.current), minWidth ? Math.max(minWidth, RESIZE_MIN_WIDTH) : RESIZE_MIN_WIDTH, 20000);\n onColumnResizeMove === null || onColumnResizeMove === void 0 ? void 0 : onColumnResizeMove(columnWidth.current, columnLeft, columnFixed);\n }, [columnFixed, columnLeft, defaultColumnWidth, minWidth, onColumnResizeMove, rtl]);\n var handleColumnResizeEnd = useCallback(function () {\n var _mouseMoveTracker$cur, _mouseMoveTracker$cur2;\n\n isKeyDown.current = false;\n onColumnResizeEnd === null || onColumnResizeEnd === void 0 ? void 0 : onColumnResizeEnd(columnWidth.current, cursorDelta.current);\n (_mouseMoveTracker$cur = mouseMoveTracker.current) === null || _mouseMoveTracker$cur === void 0 ? void 0 : (_mouseMoveTracker$cur2 = _mouseMoveTracker$cur.releaseMouseMoves) === null || _mouseMoveTracker$cur2 === void 0 ? void 0 : _mouseMoveTracker$cur2.call(_mouseMoveTracker$cur);\n mouseMoveTracker.current = null;\n }, [onColumnResizeEnd]);\n var getMouseMoveTracker = useCallback(function () {\n return mouseMoveTracker.current || new DOMMouseMoveTracker(handleMove, handleColumnResizeEnd, document.body);\n }, [handleColumnResizeEnd, handleMove]);\n var handleColumnResizeMouseDown = useCallback(function (event) {\n mouseMoveTracker.current = getMouseMoveTracker();\n mouseMoveTracker.current.captureMouseMoves(event);\n isKeyDown.current = true;\n cursorDelta.current = 0;\n var client = {\n clientX: event.clientX,\n clientY: event.clientY,\n preventDefault: Function()\n };\n onColumnResizeStart === null || onColumnResizeStart === void 0 ? void 0 : onColumnResizeStart(client);\n }, [getMouseMoveTracker, onColumnResizeStart]);\n useEffect(function () {\n return function () {\n var _mouseMoveTracker$cur3;\n\n (_mouseMoveTracker$cur3 = mouseMoveTracker.current) === null || _mouseMoveTracker$cur3 === void 0 ? void 0 : _mouseMoveTracker$cur3.releaseMouseMoves();\n mouseMoveTracker.current = null;\n };\n }, []);\n\n if (columnFixed === 'right') {\n return null;\n }\n\n var styles = _extends((_extends2 = {}, _extends2[rtl ? 'right' : 'left'] = columnWidth.current + columnLeft - 2, _extends2.height = height, _extends2), style);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n tabIndex: -1,\n role: \"button\",\n ref: ref\n }, rest, {\n className: classes,\n style: styles,\n onMouseDown: handleColumnResizeMouseDown\n }));\n});\nColumnResizeHandler.displayName = 'Table.ColumnResizeHandler';\nexport default ColumnResizeHandler;","'use client';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_props) {\n return /*#__PURE__*/React.createElement(React.Fragment, null);\n}\n\nvar propTypes = {\n align: PropTypes.string,\n verticalAlign: PropTypes.string,\n width: PropTypes.number,\n fixed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),\n resizable: PropTypes.bool,\n sortable: PropTypes.bool,\n flexGrow: PropTypes.number,\n minWidth: PropTypes.number,\n colSpan: PropTypes.number,\n rowSpan: PropTypes.func,\n treeCol: PropTypes.bool,\n onResize: PropTypes.func,\n children: PropTypes.node,\n fullText: PropTypes.bool\n};\nColumn.displayName = 'Table.Column';\nColumn.defaultProps = {\n width: 100\n};\nColumn.propTypes = propTypes;\nexport var columnHandledProps = Object.keys(propTypes);\nexport default Column;","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"classPrefix\", \"width\", \"left\", \"headerHeight\", \"depth\", \"height\", \"style\", \"className\", \"fullText\", \"firstColumn\", \"lastColumn\", \"isHeaderCell\", \"align\", \"children\", \"rowData\", \"dataKey\", \"rowIndex\", \"removed\", \"rowKey\", \"rowSpan\", \"wordWrap\", \"verticalAlign\", \"expanded\", \"treeCol\", \"hasChildren\", \"predefinedStyle\", \"renderCell\", \"renderTreeToggle\", \"onClick\", \"onTreeToggle\"];\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\nimport isNil from 'lodash/isNil';\nimport get from 'lodash/get';\nimport { LAYER_WIDTH, ROW_HEADER_HEIGHT, ROW_HEIGHT } from './constants';\nimport { useClassNames, convertToFlex } from './utils';\nimport TableContext from './TableContext';\nimport ArrowRight from '@rsuite/icons/ArrowRight';\nimport ArrowDown from '@rsuite/icons/ArrowDown';\nimport { columnHandledProps } from './Column';\nvar groupKeys = ['groupCount', 'groupHeader', 'groupHeaderHeight', 'groupAlign', 'groupVerticalAlign', 'renderSortIcon'];\nvar Cell = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _extends2, _extends3;\n\n var _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'cell' : _props$classPrefix,\n _props$width = props.width,\n width = _props$width === void 0 ? 0 : _props$width,\n _props$left = props.left,\n left = _props$left === void 0 ? 0 : _props$left,\n _props$headerHeight = props.headerHeight,\n headerHeight = _props$headerHeight === void 0 ? ROW_HEADER_HEIGHT : _props$headerHeight,\n _props$depth = props.depth,\n depth = _props$depth === void 0 ? 0 : _props$depth,\n _props$height = props.height,\n height = _props$height === void 0 ? ROW_HEIGHT : _props$height,\n style = props.style,\n className = props.className,\n fullText = props.fullText,\n firstColumn = props.firstColumn,\n lastColumn = props.lastColumn,\n isHeaderCell = props.isHeaderCell,\n align = props.align,\n children = props.children,\n rowData = props.rowData,\n dataKey = props.dataKey,\n rowIndex = props.rowIndex,\n removed = props.removed,\n rowKey = props.rowKey,\n rowSpan = props.rowSpan,\n wordWrap = props.wordWrap,\n verticalAlign = props.verticalAlign,\n expanded = props.expanded,\n treeCol = props.treeCol,\n hasChildren = props.hasChildren,\n predefinedStyle = props.predefinedStyle,\n renderCell = props.renderCell,\n renderTreeToggle = props.renderTreeToggle,\n onClick = props.onClick,\n onTreeToggle = props.onTreeToggle,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _React$useContext = React.useContext(TableContext),\n rtl = _React$useContext.rtl,\n hasCustomTreeCol = _React$useContext.hasCustomTreeCol,\n isTree = _React$useContext.isTree;\n\n var isTreeCol = treeCol || !hasCustomTreeCol && firstColumn && isTree;\n var cellHeight = typeof height === 'function' ? rowData ? height(rowData) : ROW_HEIGHT : height;\n\n if (isTreeCol && !isHeaderCell && !rowData) {\n throw new Error('[Table.Cell]: `rowData` is required for tree column');\n }\n\n var handleTreeToggle = useCallback(function (event) {\n onTreeToggle === null || onTreeToggle === void 0 ? void 0 : onTreeToggle(rowKey, rowIndex, rowData, event);\n }, [onTreeToggle, rowData, rowIndex, rowKey]);\n\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var classes = merge(className, withClassPrefix({\n expanded: expanded && isTreeCol,\n first: firstColumn,\n last: lastColumn,\n rowspan: rowSpan && !isHeaderCell,\n 'full-text': fullText\n }));\n var nextHeight = isHeaderCell ? headerHeight : cellHeight;\n\n var styles = _extends({}, predefinedStyle, (_extends2 = {}, _extends2[fullText ? 'minWidth' : 'width'] = width, _extends2.height = nextHeight, _extends2.zIndex = depth, _extends2[rtl ? 'right' : 'left'] = left, _extends2));\n\n var paddingKey = rtl ? 'paddingRight' : 'paddingLeft';\n\n var contentStyles = _extends({}, convertToFlex({\n align: align,\n verticalAlign: verticalAlign\n }), style, (_extends3 = {\n width: fullText ? width - 1 : width,\n height: nextHeight\n }, _extends3[paddingKey] = isTreeCol ? depth * LAYER_WIDTH + 10 : (style === null || style === void 0 ? void 0 : style[paddingKey]) || (style === null || style === void 0 ? void 0 : style.padding), _extends3));\n\n if (wordWrap) {\n contentStyles.wordBreak = typeof wordWrap === 'boolean' ? 'break-all' : wordWrap;\n contentStyles.overflowWrap = wordWrap === 'break-word' ? wordWrap : undefined;\n }\n\n var cellContent = null;\n\n if (typeof children === 'function') {\n if (!rowData) {\n cellContent = null;\n } else {\n cellContent = children(rowData, rowIndex);\n }\n } else if (isNil(children)) {\n if (rowData && dataKey) {\n cellContent = get(rowData, dataKey);\n }\n } else {\n cellContent = children;\n }\n\n var renderTreeNodeExpandIcon = function renderTreeNodeExpandIcon() {\n var ExpandIconComponent = expanded ? ArrowDown : ArrowRight;\n var expandButton = /*#__PURE__*/React.createElement(ExpandIconComponent, {\n className: prefix('expand-icon')\n });\n\n if (isTreeCol && hasChildren) {\n return /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: prefix('expand-wrapper'),\n onClick: handleTreeToggle\n }, renderTreeToggle ? renderTreeToggle(expandButton, rowData, expanded) : expandButton);\n }\n\n return null;\n };\n\n var content = wordWrap ? /*#__PURE__*/React.createElement(\"div\", {\n className: prefix('wrap')\n }, renderTreeNodeExpandIcon(), renderCell ? renderCell(cellContent) : cellContent) : /*#__PURE__*/React.createElement(React.Fragment, null, renderTreeNodeExpandIcon(), renderCell ? renderCell(cellContent) : cellContent);\n\n if (removed) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n role: isHeaderCell ? 'columnheader' : 'gridcell'\n }, omit(rest, [].concat(groupKeys, columnHandledProps)), {\n onClick: onClick,\n className: classes,\n style: styles\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: prefix('content'),\n style: contentStyles\n }, content));\n});\nCell.displayName = 'Table.Cell';\nCell.propTypes = {\n align: PropTypes.string,\n verticalAlign: PropTypes.string,\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n dataKey: PropTypes.string,\n isHeaderCell: PropTypes.bool,\n width: PropTypes.number,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n left: PropTypes.number,\n headerHeight: PropTypes.number,\n style: PropTypes.object,\n firstColumn: PropTypes.bool,\n lastColumn: PropTypes.bool,\n hasChildren: PropTypes.bool,\n children: PropTypes.any,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rowIndex: PropTypes.number,\n rowData: PropTypes.object,\n depth: PropTypes.number,\n onTreeToggle: PropTypes.func,\n renderTreeToggle: PropTypes.func,\n renderCell: PropTypes.func,\n wordWrap: PropTypes.any,\n removed: PropTypes.bool,\n treeCol: PropTypes.bool,\n expanded: PropTypes.bool,\n fullText: PropTypes.bool\n};\nexport default Cell;","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"classPrefix\", \"width\", \"dataKey\", \"headerHeight\", \"children\", \"left\", \"sortable\", \"sortColumn\", \"sortType\", \"groupHeader\", \"resizable\", \"fixed\", \"minWidth\", \"index\", \"flexGrow\", \"align\", \"verticalAlign\", \"onColumnResizeEnd\", \"onResize\", \"onColumnResizeStart\", \"onColumnResizeMove\", \"onSortColumn\", \"renderSortIcon\"];\nimport React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport isNil from 'lodash/isNil';\nimport Sort from '@rsuite/icons/Sort';\nimport SortUp from '@rsuite/icons/SortUp';\nimport SortDown from '@rsuite/icons/SortDown';\nimport ColumnResizeHandler from './ColumnResizeHandler';\nimport { useUpdateEffect, useClassNames } from './utils';\nimport Cell from './Cell';\nvar SORTED_ICON = {\n desc: SortDown,\n asc: SortUp\n};\nvar HeaderCell = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'cell-header' : _props$classPrefix,\n width = props.width,\n dataKey = props.dataKey,\n headerHeight = props.headerHeight,\n children = props.children,\n left = props.left,\n sortable = props.sortable,\n sortColumn = props.sortColumn,\n sortType = props.sortType,\n groupHeader = props.groupHeader,\n resizable = props.resizable,\n fixed = props.fixed,\n minWidth = props.minWidth,\n index = props.index,\n flexGrow = props.flexGrow,\n align = props.align,\n verticalAlign = props.verticalAlign,\n onColumnResizeEnd = props.onColumnResizeEnd,\n onResize = props.onResize,\n onColumnResizeStart = props.onColumnResizeStart,\n onColumnResizeMove = props.onColumnResizeMove,\n onSortColumn = props.onSortColumn,\n renderSortIcon = props.renderSortIcon,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _useState = useState(isNil(flexGrow) ? width : 0),\n columnWidth = _useState[0],\n setColumnWidth = _useState[1];\n\n useUpdateEffect(function () {\n setColumnWidth(isNil(flexGrow) ? width : 0);\n }, [flexGrow, width]);\n\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var classes = merge(className, withClassPrefix({\n sortable: sortable\n }));\n var ariaSort;\n\n if (sortColumn === dataKey) {\n ariaSort = 'other';\n\n if (sortType === 'asc') {\n ariaSort = 'ascending';\n } else if (sortType === 'desc') {\n ariaSort = 'descending';\n }\n }\n\n var handleClick = useCallback(function () {\n if (sortable) {\n onSortColumn === null || onSortColumn === void 0 ? void 0 : onSortColumn(dataKey);\n }\n }, [dataKey, onSortColumn, sortable]);\n var handleColumnResizeStart = useCallback(function () {\n onColumnResizeStart === null || onColumnResizeStart === void 0 ? void 0 : onColumnResizeStart(columnWidth, left, !!fixed);\n }, [columnWidth, fixed, left, onColumnResizeStart]);\n var handleColumnResizeEnd = useCallback(function (nextColumnWidth, cursorDelta) {\n setColumnWidth(nextColumnWidth);\n onColumnResizeEnd === null || onColumnResizeEnd === void 0 ? void 0 : onColumnResizeEnd(nextColumnWidth, cursorDelta, dataKey, index);\n onResize === null || onResize === void 0 ? void 0 : onResize(nextColumnWidth, dataKey);\n }, [dataKey, index, onColumnResizeEnd, onResize]);\n\n var renderSortColumn = function renderSortColumn() {\n if (sortable && !groupHeader) {\n var _classNames;\n\n var SortIcon = sortColumn === dataKey && sortType ? SORTED_ICON[sortType] : Sort;\n var iconClasses = classNames(prefix('icon-sort'), (_classNames = {}, _classNames[prefix(\"icon-sort-\" + sortType)] = sortColumn === dataKey, _classNames));\n var sortIcon = renderSortIcon ? renderSortIcon(sortColumn === dataKey ? sortType : undefined) : /*#__PURE__*/React.createElement(SortIcon, {\n className: iconClasses\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n className: prefix('sort-wrapper')\n }, sortIcon);\n }\n\n return null;\n };\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: classes\n }, /*#__PURE__*/React.createElement(Cell, _extends({\n \"aria-sort\": ariaSort\n }, rest, {\n width: width,\n dataKey: dataKey,\n left: left,\n headerHeight: headerHeight,\n isHeaderCell: true,\n align: !groupHeader ? align : undefined,\n verticalAlign: !groupHeader ? verticalAlign : undefined,\n onClick: !groupHeader ? handleClick : undefined\n }), children, renderSortColumn()), resizable ? /*#__PURE__*/React.createElement(ColumnResizeHandler, {\n defaultColumnWidth: columnWidth,\n key: columnWidth,\n columnLeft: left,\n columnFixed: fixed,\n height: headerHeight ? headerHeight - 1 : undefined,\n minWidth: minWidth,\n onColumnResizeMove: onColumnResizeMove,\n onColumnResizeStart: handleColumnResizeStart,\n onColumnResizeEnd: handleColumnResizeEnd\n }) : null);\n});\nHeaderCell.displayName = 'HeaderCell';\nHeaderCell.propTypes = {\n index: PropTypes.number,\n sortColumn: PropTypes.string,\n sortType: PropTypes.oneOf(['desc', 'asc']),\n sortable: PropTypes.bool,\n resizable: PropTypes.bool,\n minWidth: PropTypes.number,\n onColumnResizeStart: PropTypes.func,\n onColumnResizeEnd: PropTypes.func,\n onResize: PropTypes.func,\n onColumnResizeMove: PropTypes.func,\n onSortColumn: PropTypes.func,\n flexGrow: PropTypes.number,\n fixed: PropTypes.any,\n children: PropTypes.node,\n renderSortIcon: PropTypes.func\n};\nexport default HeaderCell;","'use client';\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport isNil from 'lodash/isNil';\nimport ColumnGroup from '../ColumnGroup';\nimport HeaderCell from '../HeaderCell';\n\nfunction cloneCell(Cell, props) {\n return /*#__PURE__*/React.cloneElement(Cell, props);\n}\n\nfunction mergeCells(cells) {\n var nextCells = [];\n\n for (var i = 0; i < cells.length; i += 1) {\n var _cells$i$props = cells[i].props,\n width = _cells$i$props.width,\n colSpan = _cells$i$props.colSpan,\n groupCount = _cells$i$props.groupCount,\n groupHeader = _cells$i$props.groupHeader,\n groupAlign = _cells$i$props.groupAlign,\n groupVerticalAlign = _cells$i$props.groupVerticalAlign,\n isHeaderCell = _cells$i$props.isHeaderCell,\n headerHeight = _cells$i$props.headerHeight,\n groupHeaderHeight = _cells$i$props.groupHeaderHeight;\n var groupChildren = []; // Add grouping to column headers.\n\n if (groupCount && isHeaderCell) {\n var nextWidth = width;\n var left = 0;\n\n for (var j = 0; j < groupCount; j += 1) {\n var nextCell = cells[i + j];\n var _nextCell$props = nextCell.props,\n nextCellWidth = _nextCell$props.width,\n sortable = _nextCell$props.sortable,\n children = _nextCell$props.children,\n dataKey = _nextCell$props.dataKey,\n onSortColumn = _nextCell$props.onSortColumn,\n sortColumn = _nextCell$props.sortColumn,\n sortType = _nextCell$props.sortType,\n align = _nextCell$props.align,\n verticalAlign = _nextCell$props.verticalAlign,\n renderSortIcon = _nextCell$props.renderSortIcon;\n\n if (j !== 0) {\n nextWidth += nextCellWidth;\n left += cells[i + j - 1].props.width;\n cells[i + j] = cloneCell(nextCell, {\n removed: true\n });\n }\n\n groupChildren.push( /*#__PURE__*/React.createElement(HeaderCell, {\n key: j,\n left: left,\n align: align,\n verticalAlign: verticalAlign,\n dataKey: dataKey,\n width: nextCellWidth,\n sortable: sortable,\n sortColumn: sortColumn,\n sortType: sortType,\n onSortColumn: onSortColumn,\n renderSortIcon: renderSortIcon\n }, children));\n }\n\n nextCells.push(cloneCell(cells[i], {\n width: nextWidth,\n children: /*#__PURE__*/React.createElement(ColumnGroup, {\n width: nextWidth,\n headerHeight: headerHeight,\n header: groupHeader,\n align: groupAlign,\n verticalAlign: groupVerticalAlign,\n groupHeaderHeight: groupHeaderHeight\n }, groupChildren)\n }));\n continue;\n } else if (colSpan) {\n // If there is a colSpan attribute, go to its next Cell.\n // Determine whether the value is null or undefined, then merge this cell.\n var _nextWidth = width;\n\n for (var _j = 0; _j < colSpan; _j += 1) {\n var _nextCell = cells[i + _j];\n\n if (_nextCell) {\n var _nextCell$props2 = _nextCell.props,\n rowData = _nextCell$props2.rowData,\n rowIndex = _nextCell$props2.rowIndex,\n _children = _nextCell$props2.children,\n colSpanWidth = _nextCell$props2.width,\n _isHeaderCell = _nextCell$props2.isHeaderCell,\n _dataKey = _nextCell$props2.dataKey;\n var cellText = isFunction(_children) ? _children(rowData, rowIndex) : get(rowData, _dataKey);\n\n if (rowData && isNil(cellText) || _isHeaderCell && isNil(_children)) {\n _nextWidth += colSpanWidth;\n cells[i + _j] = cloneCell(_nextCell, {\n removed: true\n });\n }\n }\n }\n\n nextCells.push(cloneCell(cells[i], {\n width: _nextWidth,\n 'aria-colspan': _nextWidth > width ? colSpan : undefined\n }));\n continue;\n }\n\n nextCells.push(cells[i]);\n }\n\n return nextCells;\n}\n\nexport default mergeCells;","'use client';\nimport addClass from 'dom-lib/addClass';\nimport removeClass from 'dom-lib/removeClass';\n\nvar toggleClass = function toggleClass(node, className, condition) {\n if (condition) {\n addClass(node, className);\n } else {\n removeClass(node, className);\n }\n};\n\nexport default (function (node, className, condition) {\n if (!node) {\n return;\n }\n\n if (Array.isArray(node) || Object.getPrototypeOf(node).hasOwnProperty('length')) {\n node = node;\n Array.from(node).forEach(function (item) {\n toggleClass(item, className, condition);\n });\n return;\n }\n\n toggleClass(node, className, condition);\n});","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { PARENT_KEY } from '../constants';\n\n/**\n * Flatten the tree data with parent association recorded on each node\n * @param tree tree data\n */\nfunction flattenData(tree, parent) {\n return tree.reduce(function (acc, node) {\n var _extends2;\n\n // Create a new flattened node with parent association\n var flattened = _extends({}, node, (_extends2 = {}, _extends2[PARENT_KEY] = parent, _extends2)); // Add the flattened node and its flattened children (if any) to the result array\n\n\n acc.push.apply(acc, [flattened].concat(node.children ? flattenData(node.children, flattened) : []));\n return acc;\n }, []);\n}\n\nexport default flattenData;","'use client';\nexport default function findRowKeys(rows, rowKey, expanded) {\n var keys = [];\n\n if (!rowKey) {\n return keys;\n }\n\n for (var i = 0; i < rows.length; i++) {\n var item = rows[i];\n\n if (item.children) {\n keys.push(item[rowKey]);\n keys = [].concat(keys, findRowKeys(item.children, rowKey));\n } else if (expanded) {\n keys.push(item[rowKey]);\n }\n }\n\n return keys;\n}","'use client';\nimport { PARENT_KEY } from '../constants';\n\n/**\n * Get all parent nodes of the given node in the flattened data\n * @param node target node\n */\nfunction findAllParents(node, rowKey) {\n var parents = [];\n var current = node[PARENT_KEY]; // Iterate up through the parent chain and add each parent to the result array\n\n while (current) {\n parents.push(current[rowKey]);\n current = current[PARENT_KEY];\n }\n\n return parents;\n}\n\nexport default findAllParents;","'use client';\n/**\n * Check whether a row(tree) node should be expanded.\n * @param expandedRowKeys An array of all expanded nodes.\n * @param parentKeys All parent nodes of the current node\n * @returns boolean\n */\nexport default function shouldShowRowByExpanded(expandedRowKeys, parentKeys) {\n if (expandedRowKeys === void 0) {\n expandedRowKeys = [];\n }\n\n if (parentKeys === void 0) {\n parentKeys = [];\n }\n\n for (var i = 0; i < ((_parentKeys = parentKeys) === null || _parentKeys === void 0 ? void 0 : _parentKeys.length); i++) {\n var _parentKeys, _expandedRowKeys;\n\n if (((_expandedRowKeys = expandedRowKeys) === null || _expandedRowKeys === void 0 ? void 0 : _expandedRowKeys.indexOf(parentKeys[i])) === -1) {\n return false;\n }\n }\n\n return true;\n}","'use client';\nimport React from 'react';\n/**\n * Resets the relative left distance of all cells in the array.\n * @param cells\n * @param extraWidth The additional width added to the last cell when there is a vertical scroll bar.\n */\n\nexport default function resetLeftForCells(cells, extraWidth) {\n var left = 0;\n var nextCells = [];\n\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var nextCell = /*#__PURE__*/React.cloneElement(cell, {\n left: left,\n width: i === cells.length - 1 && extraWidth ? cell.props.width + extraWidth : cell.props.width\n });\n left += cell.props.width;\n nextCells.push(nextCell);\n }\n\n return nextCells;\n}","'use client';\nexport default function isNumberOrTrue(value) {\n if (typeof value === 'undefined') {\n return false;\n }\n\n return !!value || value === 0;\n}","'use client';\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport default function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (typeof a === 'function') a(value);\n if (typeof b === 'function') b(value);\n };\n}","'use client';\nimport requestAnimationFramePolyfill from 'dom-lib/requestAnimationFramePolyfill';\nimport cancelAnimationFramePolyfill from 'dom-lib/cancelAnimationFramePolyfill';\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return cancelAnimationFramePolyfill(frame.id);\n};\n/**\n * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.\n * When the delay time has been reached the function you're timing out will be called.\n *\n * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)\n */\n\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start; // wait for end of processing current event handler, because event handler may be long\n\n Promise.resolve().then(function () {\n start = Date.now();\n });\n var frame = {};\n\n var timeout = function timeout() {\n if (Date.now() - start >= delay) {\n callback.call(null);\n } else {\n frame.id = requestAnimationFramePolyfill(timeout);\n }\n };\n\n frame = {\n id: requestAnimationFramePolyfill(timeout)\n };\n return frame;\n};","'use client';\nimport { useEffect, useRef } from 'react';\n\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isMounting = useRef(true);\n useEffect(function () {\n if (isMounting.current) {\n isMounting.current = false;\n return;\n }\n\n effect(); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n\nexport default useUpdateEffect;","'use client';\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from 'dom-lib/canUseDOM';\nvar useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","'use client';\nimport { useRef } from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\n\nvar useUpdateLayoutEffect = function useUpdateLayoutEffect(effect, deps) {\n var isMounting = useRef(true);\n useIsomorphicLayoutEffect(function () {\n if (isMounting.current) {\n isMounting.current = false;\n return;\n }\n\n effect(); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n\nexport default useUpdateLayoutEffect;","'use client';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\n\nvar useMount = function useMount(effect) {\n useIsomorphicLayoutEffect(effect, []);\n};\n\nexport default useMount;","'use client';\nimport { useCallback, useContext } from 'react';\nimport classNames from 'classnames';\nimport { prefix as addPrefix } from './prefix';\nimport TableContext from '../TableContext';\n\n/**\n * Add a prefix to all classNames.\n *\n * @param str prefix of className\n * @returns { withClassPrefix, merge, prefix }\n * - withClassPrefix: A function of combining className and adding a prefix to each className.\n * At the same time, the default `classPrefix` is the first className.\n * - merge: A merge className function.\n * - prefix: Add a prefix to className\n * - rootPrefix\n */\nfunction useClassNames(str, controlled) {\n var _ref = useContext(TableContext) || {},\n _ref$classPrefix = _ref.classPrefix,\n contextClassPrefix = _ref$classPrefix === void 0 ? 'rs' : _ref$classPrefix;\n\n var componentName = controlled ? str : addPrefix(contextClassPrefix, str);\n /**\n * @example\n *\n * if str = 'button':\n * prefix('red', { active: true }) => 'rs-button-red rs-button-active'\n */\n\n var prefix = useCallback(function () {\n var mergeClasses = arguments.length ? classNames.apply(void 0, arguments).split(' ').map(function (item) {\n return addPrefix(componentName, item);\n }) : [];\n return mergeClasses.filter(function (cls) {\n return cls;\n }).join(' ');\n }, [componentName]);\n /**\n * @example\n *\n * if str = 'button':\n * withClassPrefix('red', { active: true }) => 'rs-button rs-button-red rs-button-active'\n */\n\n var withClassPrefix = useCallback(function () {\n for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {\n classes[_key] = arguments[_key];\n }\n\n var mergeClasses = prefix(classes);\n return mergeClasses ? componentName + \" \" + mergeClasses : componentName;\n }, [componentName, prefix]);\n /**\n * @example\n * rootPrefix('btn') => 'rs-btn'\n * rootPrefix('btn', { active: true }) => 'rs-btn rs-active'\n */\n\n var rootPrefix = function rootPrefix() {\n var mergeClasses = arguments.length ? classNames.apply(void 0, arguments).split(' ').map(function (item) {\n return addPrefix(contextClassPrefix, item);\n }) : [];\n return mergeClasses.filter(function (cls) {\n return cls;\n }).join(' ');\n };\n\n return {\n withClassPrefix: withClassPrefix,\n merge: classNames,\n prefix: prefix,\n rootPrefix: rootPrefix\n };\n}\n\nexport default useClassNames;","'use client';\nimport { useRef, useState, useCallback } from 'react';\n/**\n * A hook for controlled value management.\n * In the case of passing the controlled value, the controlled value is returned, otherwise the value in state is returned.\n * Generally used for a component including controlled and uncontrolled modes.\n * @param controlledValue\n * @param defaultValue\n * @param formatValue\n */\n\nfunction useControlled(controlledValue, defaultValue) {\n var controlledRef = useRef(false);\n controlledRef.current = controlledValue !== undefined;\n\n var _useState = useState(defaultValue),\n uncontrolledValue = _useState[0],\n setUncontrolledValue = _useState[1]; // If it is controlled, this directly returns the attribute value.\n\n\n var value = controlledRef.current ? controlledValue : uncontrolledValue;\n var setValue = useCallback(function (nextValue) {\n // Only update the value in state when it is not under control.\n if (!controlledRef.current) {\n setUncontrolledValue(nextValue);\n }\n }, [controlledRef]);\n return [value, setValue, controlledRef.current];\n}\n\nexport default useControlled;","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport * as ReactIs from 'react-is';\nimport flatten from 'lodash/flatten';\nimport ColumnGroup from '../ColumnGroup';\n/**\n * Get the columns ReactElement array.\n * - Handling the case where there is an array of in children.\n * - Filter empty items in children.\n */\n\nfunction getTableColumns(children) {\n var childrenArray = Array.isArray(children) ? children : [children];\n var flattenColumns = flatten(childrenArray).map(function (column) {\n // If the column is a group, we need to get the columns from the children.\n if ((column === null || column === void 0 ? void 0 : column.type) === ColumnGroup) {\n var _column$props = column === null || column === void 0 ? void 0 : column.props,\n header = _column$props.header,\n groupChildren = _column$props.children,\n align = _column$props.align,\n fixed = _column$props.fixed,\n verticalAlign = _column$props.verticalAlign,\n groupHeaderHeight = _column$props.groupHeaderHeight;\n\n var childColumns = getTableColumns(groupChildren);\n return childColumns.map(function (childColumn, index) {\n // Overwrite the props set by ColumnGroup to Column.\n var groupCellProps = _extends({}, childColumn === null || childColumn === void 0 ? void 0 : childColumn.props, {\n groupHeaderHeight: groupHeaderHeight,\n fixed: fixed,\n // Column extends the properties of Group (align,verticalAlign)\n align: (childColumn === null || childColumn === void 0 ? void 0 : childColumn.props.align) || align,\n verticalAlign: (childColumn === null || childColumn === void 0 ? void 0 : childColumn.props.verticalAlign) || verticalAlign\n });\n /**\n * Set attributes for the first column in the group:\n * @field groupCount: The number of grouping sub-items.\n * @field groupHeader: Group header title.\n * @field resizable: Set to not resizable.\n */\n\n\n if (index === 0) {\n groupCellProps.groupAlign = align;\n groupCellProps.groupVerticalAlign = verticalAlign;\n groupCellProps.groupCount = childColumns.length;\n groupCellProps.groupHeader = header;\n groupCellProps.resizable = false;\n }\n\n return /*#__PURE__*/React.cloneElement(childColumn, groupCellProps);\n });\n } else if (ReactIs.isFragment(column)) {\n var _column$props2;\n\n // If the column is a fragment, we need to get the columns from the children.\n return getTableColumns((_column$props2 = column.props) === null || _column$props2 === void 0 ? void 0 : _column$props2.children);\n } else if (Array.isArray(column)) {\n // If the column is an array, need check item in the array.\n return getTableColumns(column);\n } // If the column is not a group, we just return the column.\n\n\n return column;\n }); // Flatten the array in Columns into a one-dimensional array, and calculate lastColumn and firstColumn.\n\n return flatten(flattenColumns).filter(Boolean);\n}\n\nexport default getTableColumns;","'use client';\nimport ReactDOM from 'react-dom';\nvar majorVersion = parseInt(ReactDOM.version);\n/**\n * Force React to flush any updates inside the provided callback synchronously.\n * This ensures that the DOM is updated immediately.\n */\n\nvar flushSync = function flushSync(callback) {\n if (majorVersion >= 18) {\n var _ReactDOM$flushSync;\n\n (_ReactDOM$flushSync = ReactDOM.flushSync) === null || _ReactDOM$flushSync === void 0 ? void 0 : _ReactDOM$flushSync.call(ReactDOM, callback);\n return;\n }\n\n callback();\n};\n\nexport default flushSync;","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useState, useCallback, useRef } from 'react';\nimport addStyle from 'dom-lib/addStyle';\nimport addClass from 'dom-lib/addClass';\nimport removeClass from 'dom-lib/removeClass';\nimport omit from 'lodash/omit';\nimport merge from 'lodash/merge';\nimport { SCROLLBAR_WIDTH, SORT_TYPE } from '../constants';\nimport useControlled from './useControlled';\nimport getTableColumns from './getTableColumns';\nimport getTotalByColumns from './getTotalByColumns';\nimport getColumnProps from './getColumnProps';\nimport useUpdateEffect from './useUpdateEffect';\nimport flushSync from './flushSync';\nimport useMount from './useMount';\n\n/**\n * Attach rendering-related attributes to all cells of the form and cache them.\n * @param props\n * @returns\n */\nvar useCellDescriptor = function useCellDescriptor(props) {\n var children = props.children,\n rtl = props.rtl,\n mouseAreaRef = props.mouseAreaRef,\n tableRef = props.tableRef,\n minScrollX = props.minScrollX,\n scrollX = props.scrollX,\n tableWidth = props.tableWidth,\n headerHeight = props.headerHeight,\n showHeader = props.showHeader,\n sortTypeProp = props.sortType,\n defaultSortType = props.defaultSortType,\n sortColumn = props.sortColumn,\n rowHeight = props.rowHeight,\n onSortColumn = props.onSortColumn,\n onHeaderCellResize = props.onHeaderCellResize,\n prefix = props.prefix;\n\n var _useControlled = useControlled(sortTypeProp, defaultSortType),\n sortType = _useControlled[0],\n setSortType = _useControlled[1];\n\n var _useState = useState(),\n cacheData = _useState[0],\n setCacheData = _useState[1];\n\n var clearCache = useCallback(function () {\n setCacheData(null);\n }, []);\n var setColumnResizing = useCallback(function (resizing) {\n if (!tableRef.current) {\n return;\n }\n\n if (resizing) {\n addClass(tableRef.current, prefix('column-resizing'));\n } else {\n removeClass(tableRef.current, prefix('column-resizing'));\n }\n }, [prefix, tableRef]);\n /**\n * storage column width from props.\n * if current column width not equal initial column width, use current column width and update cache.\n */\n\n var initialColumnWidths = useRef({});\n var columnWidths = useRef({});\n useMount(function () {\n // As the cells are cached before the table width is updated, it is necessary to clear the cache again. fix: #430\n clearCache();\n });\n useUpdateEffect(function () {\n clearCache();\n }, [children, sortColumn, sortType, tableWidth.current, scrollX.current, minScrollX.current]);\n var handleColumnResizeEnd = useCallback(function (columnWidth, _cursorDelta, dataKey, index) {\n columnWidths.current[dataKey + \"_\" + index + \"_width\"] = columnWidth;\n setColumnResizing(false);\n\n if (mouseAreaRef.current) {\n addStyle(mouseAreaRef.current, {\n display: 'none'\n });\n } // fix: https://github.com/rsuite/rsuite-table/issues/398\n\n\n flushSync(function () {\n return clearCache();\n });\n onHeaderCellResize === null || onHeaderCellResize === void 0 ? void 0 : onHeaderCellResize(columnWidth, dataKey);\n }, [clearCache, mouseAreaRef, onHeaderCellResize, setColumnResizing]);\n var handleColumnResizeMove = useCallback(function (width, left, fixed) {\n var mouseAreaLeft = width + left;\n var x = mouseAreaLeft;\n var dir = 'left';\n\n if (rtl) {\n mouseAreaLeft += minScrollX.current + SCROLLBAR_WIDTH;\n dir = 'right';\n }\n\n if (!fixed) {\n x = mouseAreaLeft + (rtl ? -scrollX.current : scrollX.current);\n }\n\n if (mouseAreaRef.current) {\n var _addStyle;\n\n addStyle(mouseAreaRef.current, (_addStyle = {\n display: 'block'\n }, _addStyle[dir] = x + \"px\", _addStyle));\n }\n }, [minScrollX, mouseAreaRef, rtl, scrollX]);\n var handleColumnResizeStart = useCallback(function (width, left, fixed) {\n setColumnResizing(true);\n handleColumnResizeMove(width, left, fixed);\n }, [handleColumnResizeMove, setColumnResizing]);\n var handleSortColumn = useCallback(function (dataKey) {\n var nextSortType = sortType;\n\n if (sortColumn === dataKey) {\n nextSortType = sortType === SORT_TYPE.ASC ? SORT_TYPE.DESC : SORT_TYPE.ASC;\n setSortType(nextSortType);\n }\n\n onSortColumn === null || onSortColumn === void 0 ? void 0 : onSortColumn(dataKey, nextSortType);\n }, [onSortColumn, setSortType, sortColumn, sortType]);\n\n if (cacheData) {\n return cacheData;\n }\n\n var hasCustomTreeCol = false;\n var left = 0; // Cell left margin\n\n var headerCells = []; // Table header cell\n\n var bodyCells = []; // Table body cell\n\n if (!children) {\n var _cacheCell = {\n columns: [],\n headerCells: headerCells,\n bodyCells: bodyCells,\n hasCustomTreeCol: hasCustomTreeCol,\n allColumnsWidth: left\n };\n setCacheData(_cacheCell);\n return _cacheCell;\n }\n\n var columns = getTableColumns(children);\n var count = columns.length;\n\n var _getTotalByColumns = getTotalByColumns(columns),\n totalFlexGrow = _getTotalByColumns.totalFlexGrow,\n totalWidth = _getTotalByColumns.totalWidth;\n\n React.Children.forEach(columns, function (column, index) {\n if ( /*#__PURE__*/React.isValidElement(column)) {\n var _initialColumnWidths$, _columnWidths$current;\n\n var columnChildren = column.props.children;\n var columnProps = getColumnProps(column);\n var _width = columnProps.width,\n resizable = columnProps.resizable,\n flexGrow = columnProps.flexGrow,\n minWidth = columnProps.minWidth,\n onResize = columnProps.onResize,\n treeCol = columnProps.treeCol;\n\n if (treeCol) {\n hasCustomTreeCol = true;\n }\n\n if (columnChildren.length !== 2) {\n throw new Error(\"Component and is required, column index: \" + index + \" \");\n }\n\n var headerCell = columnChildren[0];\n var cell = columnChildren[1];\n var cellWidthId = cell.props.dataKey + \"_\" + index + \"_width\"; // get column width from cache.\n\n var initialColumnWidth = (_initialColumnWidths$ = initialColumnWidths.current) === null || _initialColumnWidths$ === void 0 ? void 0 : _initialColumnWidths$[cellWidthId];\n var currentWidth = (_columnWidths$current = columnWidths.current) === null || _columnWidths$current === void 0 ? void 0 : _columnWidths$current[cellWidthId];\n var cellWidth = currentWidth || _width || 0;\n var isControlled = typeof _width === 'number' && typeof onResize === 'function';\n /**\n * in resizable mode,\n * if width !== initialColumnWidth, use current column width and update cache.\n */\n\n if (resizable && (initialColumnWidth || _width) && initialColumnWidth !== _width) {\n // initial or update initialColumnWidth cache.\n initialColumnWidths.current[cellWidthId] = _width;\n /**\n * if currentWidth exist, update columnWidths cache.\n */\n\n if (currentWidth) {\n columnWidths.current[cellWidthId] = _width; // update cellWidth\n\n cellWidth = _width;\n }\n }\n\n if (tableWidth.current && flexGrow && totalFlexGrow) {\n var grewWidth = Math.max((tableWidth.current - totalWidth) / totalFlexGrow * flexGrow, minWidth || 60);\n /**\n * resizable = false, width will be recalc when table render.\n * resizable = true, only first render will use grewWidth.\n */\n\n cellWidth = resizable ? currentWidth || grewWidth : grewWidth;\n }\n\n var cellProps = _extends({}, omit(columnProps, ['children']), {\n 'aria-colindex': index + 1,\n left: left,\n headerHeight: headerHeight,\n key: index,\n width: isControlled ? _width : cellWidth,\n height: typeof rowHeight === 'function' ? rowHeight() : rowHeight,\n firstColumn: index === 0,\n lastColumn: index === count - 1\n });\n\n if (showHeader && headerHeight) {\n var headerCellProps = {\n // Resizable column\n // `index` is used to define the serial number when dragging the column width\n index: index,\n dataKey: cell.props.dataKey,\n isHeaderCell: true,\n minWidth: columnProps.minWidth,\n sortable: columnProps.sortable,\n onSortColumn: handleSortColumn,\n sortType: sortType,\n sortColumn: sortColumn,\n flexGrow: resizable ? undefined : flexGrow\n };\n\n if (resizable) {\n merge(headerCellProps, {\n onResize: onResize,\n onColumnResizeEnd: handleColumnResizeEnd,\n onColumnResizeStart: handleColumnResizeStart,\n onColumnResizeMove: handleColumnResizeMove\n });\n }\n\n headerCells.push( /*#__PURE__*/React.cloneElement(headerCell, _extends({}, cellProps, headerCellProps)));\n }\n\n bodyCells.push( /*#__PURE__*/React.cloneElement(cell, cellProps));\n left += cellWidth;\n }\n });\n var cacheCell = {\n columns: columns,\n headerCells: headerCells,\n bodyCells: bodyCells,\n allColumnsWidth: left,\n hasCustomTreeCol: hasCustomTreeCol\n };\n setCacheData(cacheCell);\n return cacheCell;\n};\n\nexport default useCellDescriptor;","'use client';\nimport { useState, useEffect } from 'react';\n/**\n * useIntersectionObserver Hook\n *\n * @param ref - Ref object of the element to be observed\n */\n\nvar useIntersectionObserver = function useIntersectionObserver(ref) {\n var _useState = useState(false),\n isVisible = _useState[0],\n setIsVisible = _useState[1];\n\n useEffect(function () {\n // Check if the browser supports IntersectionObserver\n if (!('IntersectionObserver' in window)) {\n // If not supported, optionally set to visible or handle fallback logic\n setIsVisible(true); // Fallback: Set to visible\n\n return;\n } // Create an IntersectionObserver instance\n\n\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n setIsVisible(entry.isIntersecting);\n });\n });\n var element = ref === null || ref === void 0 ? void 0 : ref.current; // Start observing the target element\n\n if (element) {\n observer.observe(element);\n } // Cleanup function to unobserve the element when the component unmounts or dependencies change\n\n\n return function () {\n if (element) {\n observer.unobserve(element);\n }\n };\n }, [ref]);\n return isVisible;\n};\n\nexport default useIntersectionObserver;","'use client';\nimport { useRef, useCallback } from 'react';\nimport getWidth from 'dom-lib/getWidth';\nimport getHeight from 'dom-lib/getHeight';\nimport getOffset from 'dom-lib/getOffset';\nimport { SCROLLBAR_WIDTH } from '../constants';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport useMount from './useMount';\nimport useUpdateLayoutEffect from './useUpdateLayoutEffect';\nimport useIntersectionObserver from './useIntersectionObserver';\nimport isNumberOrTrue from './isNumberOrTrue';\nimport debounce from 'lodash/debounce';\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 bordered = props.bordered,\n onTableResizeChange = props.onTableResizeChange,\n onTableScroll = props.onTableScroll;\n var contentHeight = useRef(0);\n var contentWidth = useRef(0);\n var minScrollY = useRef(0);\n var scrollY = useRef(0);\n var scrollX = useRef(0);\n var minScrollX = useRef(0);\n var tableWidth = useRef(widthProp || 0);\n var tableHeight = useRef(heightProp || 0);\n var columnCount = useRef(0);\n var resizeObserver = useRef();\n var containerResizeObserver = useRef();\n var headerOffset = useRef(null);\n var tableOffset = useRef(null);\n var getRowHeight = useCallback(function (rowData) {\n return typeof rowHeight === 'function' ? rowHeight(rowData) : rowHeight;\n }, [rowHeight]);\n var calculateTableContextHeight = 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 getHeight(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 += 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 ? 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 + 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 = useCallback(function () {\n var headerNode = headerWrapperRef === null || headerWrapperRef === void 0 ? void 0 : headerWrapperRef.current;\n\n if (isNumberOrTrue(affixHeader) && headerNode) {\n headerOffset.current = getOffset(headerNode);\n }\n\n if (isNumberOrTrue(affixHorizontalScrollbar) && tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableOffset.current = getOffset(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n }\n }, [affixHeader, affixHorizontalScrollbar, headerWrapperRef, tableRef]);\n var calculateTableContentWidth = 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 ? getWidth(row) : 0; // Whether to show the horizontal scroll bar\n\n var hasHorizontalScrollbar = contentWidth.current > tableWidth.current;\n var scrollbarWidth = hasHorizontalScrollbar ? 0 : SCROLLBAR_WIDTH;\n contentWidth.current = nextContentWidth - (autoHeight ? scrollbarWidth : 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 var minScrollWidth = -(nextContentWidth - tableWidth.current) - (autoHeight ? 0 : scrollbarWidth);\n\n if (minScrollX.current !== minScrollWidth) {\n minScrollX.current = minScrollWidth;\n\n if (scrollX.current < minScrollWidth) {\n // fix: 405#issuecomment-1464831646\n scrollX.current = minScrollWidth;\n }\n }\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\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 = useCallback(function (nextWidth) {\n var prevWidth = tableWidth.current;\n\n if (tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableWidth.current = nextWidth || getWidth(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 = 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 = getHeight(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 useMount(function () {\n var _tableRef$current;\n\n calculateTableContextHeight();\n calculateTableContentWidth();\n calculateTableWidth();\n calculateTableHeight();\n setOffsetByAffix();\n containerResizeObserver.current = new 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 = debounce(function (entries) {\n var width = entries[0].contentRect.width; // bordered table width is 1px larger than the container width. fix: #405 #404\n\n var widthWithBorder = width + 2;\n calculateTableWidth(bordered ? widthWithBorder : width);\n }, 20);\n resizeObserver.current = new 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 useUpdateLayoutEffect(function () {\n calculateTableHeight();\n calculateTableContextHeight();\n }, [fillHeight]);\n useUpdateLayoutEffect(function () {\n calculateTableWidth();\n calculateTableContentWidth();\n calculateTableContextHeight();\n }, [data, heightProp, contentHeight.current, expandedRowKeys, children, calculateTableContextHeight, calculateTableContentWidth]);\n var isVisible = useIntersectionObserver(tableRef);\n useUpdateLayoutEffect(function () {\n // When the table is visible, the width of the table is recalculated.\n // fix: https://github.com/rsuite/rsuite/issues/397\n if (isVisible) {\n calculateTableWidth();\n calculateTableContentWidth();\n }\n }, [isVisible]);\n var setScrollY = useCallback(function (value) {\n scrollY.current = value;\n }, []);\n var setScrollX = 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\nexport default useTableDimension;","'use client';\nimport defer from 'lodash/defer';\n/**\n * Defer callbacks to wait for DOM rendering to complete.\n */\n\nexport default (function (callback) {\n defer(callback, 'deferred');\n});","'use client';\nimport { useState, useCallback, useRef } from 'react';\nimport getHeight from 'dom-lib/getHeight';\nimport useUpdateLayoutEffect from './useUpdateLayoutEffect';\nimport useMount from './useMount';\nimport isEmpty from 'lodash/isEmpty';\nimport defer from './defer';\n\n/**\n * The row information of the table, get the DOM of all rows, and summarize the row height.\n * @param props\n * @returns\n */\nvar useTableRows = function useTableRows(props) {\n var prefix = props.prefix,\n wordWrap = props.wordWrap,\n data = props.data,\n expandedRowKeys = props.expandedRowKeys;\n\n var _useState = useState([]),\n tableRowsMaxHeight = _useState[0],\n setTableRowsMaxHeight = _useState[1];\n\n var tableRows = useRef({});\n\n var bindTableRowsRef = function bindTableRowsRef(index, rowData) {\n return function (ref) {\n if (ref) {\n tableRows.current[index] = [ref, rowData];\n }\n };\n };\n\n var calculateRowMaxHeight = useCallback(function () {\n if (wordWrap) {\n var nextTableRowsMaxHeight = [];\n var curTableRows = Object.values(tableRows.current);\n\n for (var i = 0; i < curTableRows.length; i++) {\n var _curTableRows$i = curTableRows[i],\n row = _curTableRows$i[0];\n\n if (row) {\n var cells = row.querySelectorAll(\".\" + prefix('cell-wrap')) || [];\n var cellArray = Array.from(cells);\n var maxHeight = 0;\n\n for (var j = 0; j < cellArray.length; j++) {\n var cell = cellArray[j];\n var h = getHeight(cell);\n maxHeight = Math.max(maxHeight, h);\n }\n\n nextTableRowsMaxHeight.push(maxHeight);\n }\n } // Can't perform a React state update on an unmounted component\n\n\n if (!isEmpty(tableRows.current)) {\n setTableRowsMaxHeight(nextTableRowsMaxHeight);\n }\n }\n }, [prefix, wordWrap]);\n useMount(function () {\n defer(calculateRowMaxHeight);\n });\n useUpdateLayoutEffect(function () {\n /**\n * After the data is updated, the height of the cell DOM needs to be re-acquired,\n * and what is often obtained is not the latest DOM that has been rendered.\n * So use `defer` to delay obtaining the height of the cell DOM.\n * TODO: To be improved\n */\n defer(calculateRowMaxHeight);\n }, [data, expandedRowKeys]);\n return {\n bindTableRowsRef: bindTableRowsRef,\n tableRowsMaxHeight: tableRowsMaxHeight,\n tableRows: tableRows\n };\n};\n\nexport default useTableRows;","'use client';\nimport { useRef, useCallback, useEffect } from 'react';\nimport getHeight from 'dom-lib/getHeight';\nimport addStyle from 'dom-lib/addStyle';\nimport removeStyle from 'dom-lib/removeStyle';\nimport on from 'dom-lib/on';\nimport toggleClass from './toggleClass';\nimport isNumberOrTrue from './isNumberOrTrue';\nimport useUpdateEffect from './useUpdateEffect';\n\nvar useAffix = function useAffix(props) {\n var getTableHeight = props.getTableHeight,\n contentHeight = props.contentHeight,\n affixHorizontalScrollbar = props.affixHorizontalScrollbar,\n affixHeader = props.affixHeader,\n tableOffset = props.tableOffset,\n headerOffset = props.headerOffset,\n headerHeight = props.headerHeight,\n scrollbarXRef = props.scrollbarXRef,\n affixHeaderWrapperRef = props.affixHeaderWrapperRef;\n var scrollListener = useRef();\n var handleAffixHorizontalScrollbar = useCallback(function () {\n var _tableOffset$current, _scrollbarXRef$curren;\n\n var scrollY = window.scrollY || window.pageYOffset;\n var windowHeight = getHeight(window);\n var height = getTableHeight();\n var bottom = typeof affixHorizontalScrollbar === 'number' ? affixHorizontalScrollbar : 0;\n var offsetTop = ((_tableOffset$current = tableOffset.current) === null || _tableOffset$current === void 0 ? void 0 : _tableOffset$current.top) || 0;\n var fixedScrollbar = scrollY + windowHeight < height + (offsetTop + bottom) && scrollY + windowHeight - headerHeight > offsetTop + bottom;\n\n if (scrollbarXRef !== null && scrollbarXRef !== void 0 && (_scrollbarXRef$curren = scrollbarXRef.current) !== null && _scrollbarXRef$curren !== void 0 && _scrollbarXRef$curren.root) {\n toggleClass(scrollbarXRef.current.root, 'fixed', fixedScrollbar);\n\n if (fixedScrollbar) {\n addStyle(scrollbarXRef.current.root, 'bottom', bottom + \"px\");\n } else {\n removeStyle(scrollbarXRef.current.root, 'bottom');\n }\n }\n }, [affixHorizontalScrollbar, headerHeight, scrollbarXRef, getTableHeight, tableOffset]);\n var handleAffixTableHeader = useCallback(function () {\n var _headerOffset$current;\n\n var top = typeof affixHeader === 'number' ? affixHeader : 0;\n var scrollY = window.scrollY || window.pageYOffset;\n var offsetTop = ((_headerOffset$current = headerOffset.current) === null || _headerOffset$current === void 0 ? void 0 : _headerOffset$current.top) || 0;\n var fixedHeader = scrollY - (offsetTop - top) >= 0 && scrollY < offsetTop - top + contentHeight.current;\n\n if (affixHeaderWrapperRef.current) {\n toggleClass(affixHeaderWrapperRef.current, 'fixed', fixedHeader);\n }\n }, [affixHeader, affixHeaderWrapperRef, contentHeight, headerOffset]);\n var handleWindowScroll = useCallback(function () {\n if (isNumberOrTrue(affixHeader)) {\n handleAffixTableHeader();\n }\n\n if (isNumberOrTrue(affixHorizontalScrollbar)) {\n handleAffixHorizontalScrollbar();\n }\n }, [affixHeader, affixHorizontalScrollbar, handleAffixTableHeader, handleAffixHorizontalScrollbar]);\n /**\n * Update the position of the fixed element after the height of the table changes.\n * fix: https://github.com/rsuite/rsuite/issues/1716\n */\n\n useUpdateEffect(handleWindowScroll, [getTableHeight]);\n useEffect(function () {\n if (isNumberOrTrue(affixHeader) || isNumberOrTrue(affixHorizontalScrollbar)) {\n scrollListener.current = on(window, 'scroll', handleWindowScroll);\n }\n\n return function () {\n var _scrollListener$curre;\n\n (_scrollListener$curre = scrollListener.current) === null || _scrollListener$curre === void 0 ? void 0 : _scrollListener$curre.off();\n };\n }, [affixHeader, affixHorizontalScrollbar, handleWindowScroll]);\n};\n\nexport default useAffix;","'use client';\nimport canUseDOM from 'dom-lib/canUseDOM';\nexport default function isSupportTouchEvent() {\n return canUseDOM && 'ontouchstart' in window;\n}","'use client';\nimport { useRef, useCallback, useState, useEffect } from 'react';\nimport WheelHandler from 'dom-lib/WheelHandler';\nimport scrollLeft from 'dom-lib/scrollLeft';\nimport scrollTop from 'dom-lib/scrollTop';\nimport on from 'dom-lib/on';\nimport removeStyle from 'dom-lib/removeStyle';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from './requestAnimationTimeout';\nimport useUpdateEffect from './useUpdateEffect';\nimport useMount from './useMount';\nimport { SCROLLBAR_WIDTH, TRANSITION_DURATION, BEZIER } from '../constants';\nimport isSupportTouchEvent from './isSupportTouchEvent';\nimport flushSync from './flushSync';\nimport defer from './defer'; // Inertial sliding start time threshold\n\nvar momentumTimeThreshold = 300; // Inertial sliding start vertical distance threshold\n\nvar momentumYThreshold = 15; //List of Arrow Keys for scrolling through keys\n\nvar arrowKeysList = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/**\n * Calculate the distance of inertial sliding.\n */\nvar momentum = function momentum(current, start, duration) {\n // Inertial sliding acceleration.\n var deceleration = 0.003;\n var distance = current - start;\n var speed = 2 * Math.abs(distance) / duration;\n var destination = current + speed / deceleration * (distance < 0 ? -1 : 1);\n return {\n delta: current - destination,\n duration: TRANSITION_DURATION,\n bezier: BEZIER\n };\n};\n/**\n * Add scroll, touch, and wheel monitoring events to the table,\n * and update the scroll position of the table.\n * @param props\n * @returns\n */\n\n\nvar useScrollListener = function useScrollListener(props) {\n var data = props.data,\n autoHeight = props.autoHeight,\n tableBodyRef = props.tableBodyRef,\n scrollbarXRef = props.scrollbarXRef,\n scrollbarYRef = props.scrollbarYRef,\n disabledScroll = props.disabledScroll,\n loading = props.loading,\n tableRef = props.tableRef,\n contentWidth = props.contentWidth,\n tableWidth = props.tableWidth,\n scrollY = props.scrollY,\n minScrollY = props.minScrollY,\n minScrollX = props.minScrollX,\n scrollX = props.scrollX,\n setScrollX = props.setScrollX,\n setScrollY = props.setScrollY,\n virtualized = props.virtualized,\n forceUpdatePosition = props.forceUpdatePosition,\n deferUpdatePosition = props.deferUpdatePosition,\n onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onTouchEnd = props.onTouchEnd,\n height = props.height,\n getTableHeight = props.getTableHeight,\n contentHeight = props.contentHeight,\n headerHeight = props.headerHeight,\n rtl = props.rtl;\n var wheelListener = useRef();\n var touchStartListener = useRef();\n var touchMoveListener = useRef();\n var touchEndListener = useRef();\n\n var _useState = useState(false),\n isScrolling = _useState[0],\n setScrolling = _useState[1];\n\n var touchX = useRef(0);\n var touchY = useRef(0);\n var disableEventsTimeoutId = useRef(null);\n var isTouching = useRef(false); // The start time within the inertial sliding range.\n\n var momentumStartTime = useRef(0); // The vertical starting value within the inertial sliding range.\n\n var momentumStartY = useRef(0);\n var shouldHandleWheelX = useCallback(function (delta) {\n if (delta === 0 || disabledScroll || loading) {\n return false;\n }\n\n return true;\n }, [disabledScroll, loading]);\n var shouldHandleWheelY = useCallback(function (delta) {\n if (delta === 0 || disabledScroll || loading || autoHeight) {\n return false;\n }\n\n if (typeof scrollY.current === 'number' && typeof minScrollY.current === 'number') {\n return delta >= 0 && scrollY.current > minScrollY.current || delta < 0 && scrollY.current < 0;\n }\n }, [autoHeight, disabledScroll, loading, minScrollY, scrollY]);\n var debounceScrollEndedCallback = useCallback(function () {\n disableEventsTimeoutId.current = null; // Forces the end of scrolling to be prioritized so that virtualized long lists can update rendering.\n // There will be no scrolling white screen.\n\n flushSync(function () {\n return setScrolling(false);\n });\n }, []);\n /**\n * Triggered when scrolling, including: wheel/touch/scroll\n * @param deltaX\n * @param deltaY\n * @param momentumOptions The configuration of inertial scrolling is used for the touch event.\n */\n\n var handleWheel = useCallback(function (deltaX, deltaY, momentumOptions, event) {\n if (!tableRef.current) {\n return;\n }\n\n var nextScrollX = contentWidth.current <= tableWidth.current ? 0 : scrollX.current - deltaX;\n var nextScrollY = scrollY.current - deltaY;\n var y = Math.min(0, nextScrollY < minScrollY.current ? minScrollY.current : nextScrollY);\n var x = Math.min(0, nextScrollX < minScrollX.current ? minScrollX.current : nextScrollX);\n setScrollX(x);\n setScrollY(y);\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(Math.abs(x), Math.abs(y));\n\n if (virtualized) {\n // Add a state to the table during virtualized scrolling.\n // Make it set CSS `pointer-events:none` on the DOM to avoid wrong event interaction.\n flushSync(function () {\n return setScrolling(true);\n });\n\n if (disableEventsTimeoutId.current) {\n cancelAnimationTimeout(disableEventsTimeoutId.current);\n }\n\n disableEventsTimeoutId.current = requestAnimationTimeout(debounceScrollEndedCallback, // When momentum is enabled, set a delay of 50ms rendering.\n momentumOptions !== null && momentumOptions !== void 0 && momentumOptions.duration ? 50 : 0);\n } // When the user clicks on the scrollbar, the scrollbar will be moved to the clicked position.\n\n\n if ((event === null || event === void 0 ? void 0 : event.type) === 'click') {\n /**\n * With virtualized enabled, the list will be re-rendered on every scroll.\n * Update the position of the rendered list with a delay.\n * fix: https://github.com/rsuite/rsuite/issues/2378\n */\n deferUpdatePosition(momentumOptions === null || momentumOptions === void 0 ? void 0 : momentumOptions.duration, momentumOptions === null || momentumOptions === void 0 ? void 0 : momentumOptions.bezier);\n return;\n }\n\n forceUpdatePosition(momentumOptions === null || momentumOptions === void 0 ? void 0 : momentumOptions.duration, momentumOptions === null || momentumOptions === void 0 ? void 0 : momentumOptions.bezier);\n }, [tableRef, contentWidth, tableWidth, scrollX, scrollY, minScrollY, minScrollX, setScrollX, setScrollY, onScroll, forceUpdatePosition, deferUpdatePosition, virtualized, debounceScrollEndedCallback]);\n var onWheel = useCallback(function (deltaX, deltaY, momentumOptions) {\n var _scrollbarXRef$curren, _scrollbarXRef$curren2, _scrollbarYRef$curren, _scrollbarYRef$curren2;\n\n handleWheel(deltaX, deltaY, momentumOptions);\n (_scrollbarXRef$curren = scrollbarXRef.current) === null || _scrollbarXRef$curren === void 0 ? void 0 : (_scrollbarXRef$curren2 = _scrollbarXRef$curren.onWheelScroll) === null || _scrollbarXRef$curren2 === void 0 ? void 0 : _scrollbarXRef$curren2.call(_scrollbarXRef$curren, deltaX);\n (_scrollbarYRef$curren = scrollbarYRef.current) === null || _scrollbarYRef$curren === void 0 ? void 0 : (_scrollbarYRef$curren2 = _scrollbarYRef$curren.onWheelScroll) === null || _scrollbarYRef$curren2 === void 0 ? void 0 : _scrollbarYRef$curren2.call(_scrollbarYRef$curren, deltaY, momentumOptions !== null && momentumOptions !== void 0 && momentumOptions.duration ? true : false);\n }, [handleWheel, scrollbarXRef, scrollbarYRef]);\n var wheelHandler = useRef(); // Stop unending scrolling and remove transition\n\n var stopScroll = useCallback(function () {\n var _tableBodyRef$current, _scrollbarYRef$curren3;\n\n var wheelElement = (_tableBodyRef$current = tableBodyRef.current) === null || _tableBodyRef$current === void 0 ? void 0 : _tableBodyRef$current.querySelector('.rs-table-body-wheel-area');\n var handleElement = (_scrollbarYRef$curren3 = scrollbarYRef.current) === null || _scrollbarYRef$curren3 === void 0 ? void 0 : _scrollbarYRef$curren3.handle;\n var transitionCSS = ['transition-duration', 'transition-timing-function'];\n\n if (!virtualized && wheelElement) {\n // Get the current translate position.\n var matrix = window.getComputedStyle(wheelElement).getPropertyValue('transform');\n var offsetY = Math.round(+matrix.split(')')[0].split(', ')[5]);\n setScrollY(offsetY);\n }\n\n if (wheelElement) {\n removeStyle(wheelElement, transitionCSS);\n }\n\n if (handleElement) {\n removeStyle(handleElement, transitionCSS);\n }\n }, [scrollbarYRef, setScrollY, tableBodyRef, virtualized]); // Handle the Touch event and initialize it when touchstart is triggered.\n\n var handleTouchStart = useCallback(function (event) {\n var _event$touches$ = event.touches[0],\n pageX = _event$touches$.pageX,\n pageY = _event$touches$.pageY;\n touchX.current = pageX;\n touchY.current = pageY;\n momentumStartTime.current = new Date().getTime();\n momentumStartY.current = scrollY.current;\n isTouching.current = true;\n onTouchStart === null || onTouchStart === void 0 ? void 0 : onTouchStart(event); // Stop unfinished scrolling when Touch starts.\n\n stopScroll();\n }, [onTouchStart, scrollY, stopScroll]); // Handle the Touch event and update the scroll when touchmove is triggered.\n\n var handleTouchMove = useCallback(function (event) {\n if (!isTouching.current) {\n return;\n }\n\n var _event$touches$2 = event.touches[0],\n pageX = _event$touches$2.pageX,\n pageY = _event$touches$2.pageY;\n var deltaX = touchX.current - pageX;\n var deltaY = autoHeight ? 0 : touchY.current - pageY;\n\n if (!shouldHandleWheelY(deltaY) && !shouldHandleWheelX(deltaX)) {\n return;\n }\n /**\n * Prevent the default touch event when the table is scrollable.\n * fix: https://github.com/rsuite/rsuite-table/commit/21785fc18f430519ab5885c44540d9ffc30de366#commitcomment-36236425\n */\n\n\n if (!autoHeight && shouldHandleWheelY(deltaY)) {\n var _event$preventDefault;\n\n (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);\n }\n\n var now = new Date().getTime();\n onWheel(deltaX, deltaY);\n touchX.current = pageX;\n touchY.current = pageY; // Record the offset value and time under the condition of triggering inertial scrolling.\n\n if (now - momentumStartTime.current > momentumTimeThreshold) {\n momentumStartY.current = scrollY.current;\n momentumStartTime.current = now;\n }\n\n onTouchMove === null || onTouchMove === void 0 ? void 0 : onTouchMove(event);\n }, [autoHeight, onWheel, onTouchMove, scrollY, shouldHandleWheelX, shouldHandleWheelY]);\n var handleTouchEnd = useCallback(function (event) {\n if (!isTouching.current) {\n return;\n }\n\n isTouching.current = false;\n var touchDuration = new Date().getTime() - momentumStartTime.current;\n var absDeltaY = Math.abs(scrollY.current - momentumStartY.current); // Enable inertial sliding.\n\n if (touchDuration < momentumTimeThreshold && absDeltaY > momentumYThreshold) {\n var _momentum = momentum(scrollY.current, momentumStartY.current, touchDuration),\n delta = _momentum.delta,\n duration = _momentum.duration,\n bezier = _momentum.bezier;\n\n onWheel(0, delta, {\n duration: duration,\n bezier: bezier\n });\n onTouchEnd === null || onTouchEnd === void 0 ? void 0 : onTouchEnd(event);\n }\n }, [onWheel, onTouchEnd, scrollY]);\n /**\n * When the user uses the tab key in the Table, the onScroll event is triggered,\n * and the scroll bar position should be updated at the same time.\n * https://github.com/rsuite/rsuite/issues/234\n */\n\n var onScrollBody = useCallback(function (event) {\n if (event.target !== tableBodyRef.current) {\n return;\n }\n\n var left = scrollLeft(event.target);\n var top = scrollTop(event.target);\n\n if (top === 0 && left === 0) {\n return;\n }\n\n onWheel(left, top);\n scrollLeft(event.target, 0);\n scrollTop(event.target, 0);\n }, [onWheel, tableBodyRef]);\n var getControlledScrollTopValue = useCallback(function (value) {\n if (autoHeight) {\n return [0, 0];\n }\n\n var height = getTableHeight(); // The maximum range of scrolling value is judged.\n\n value = Math.min(value, Math.max(0, contentHeight.current - (height - headerHeight))); // The value is a value of the theoretical scroll position of the table,\n // and the scrollY coordinate value and the value of the scroll bar position are calculated by value.\n\n return [-value, value / contentHeight.current * (height - headerHeight)];\n }, [autoHeight, contentHeight, getTableHeight, headerHeight]);\n\n var rerender = function rerender() {\n setScrolling(true);\n defer(function () {\n if (tableBodyRef.current) {\n setScrolling(false);\n }\n });\n };\n\n var getControlledScrollLeftValue = function getControlledScrollLeftValue(value) {\n // The maximum range of scrolling value is judged.\n value = Math.min(value, Math.max(0, contentWidth.current - tableWidth.current));\n return [-value, value / contentWidth.current * tableWidth.current];\n };\n\n var onScrollTop = function onScrollTop(top) {\n var _scrollbarYRef$curren4, _scrollbarYRef$curren5;\n\n if (top === void 0) {\n top = 0;\n }\n\n var _getControlledScrollT = getControlledScrollTopValue(top),\n nextScrollY = _getControlledScrollT[0],\n handleScrollY = _getControlledScrollT[1];\n\n var height = getTableHeight();\n\n if (!loading && nextScrollY !== scrollY.current) {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(Math.abs(scrollX.current), Math.abs(nextScrollY));\n }\n\n setScrollY(nextScrollY);\n scrollbarYRef === null || scrollbarYRef === void 0 ? void 0 : (_scrollbarYRef$curren4 = scrollbarYRef.current) === null || _scrollbarYRef$curren4 === void 0 ? void 0 : (_scrollbarYRef$curren5 = _scrollbarYRef$curren4.resetScrollBarPosition) === null || _scrollbarYRef$curren5 === void 0 ? void 0 : _scrollbarYRef$curren5.call(_scrollbarYRef$curren4, handleScrollY);\n deferUpdatePosition();\n /**\n * After calling `scrollTop`, a white screen will appear when `virtualized` is true.\n * The reason is that the coordinates of the DOM are directly manipulated,\n * but the component is not re-rendered. Need to call `rerender`.\n * Fix: rsuite#1044\n */\n\n if (virtualized && contentHeight.current > height) {\n rerender();\n }\n };\n\n var onScrollLeft = function onScrollLeft(left) {\n var _scrollbarXRef$curren3, _scrollbarXRef$curren4;\n\n if (left === void 0) {\n left = 0;\n }\n\n var _getControlledScrollL = getControlledScrollLeftValue(left),\n nextScrollX = _getControlledScrollL[0],\n scrollbarX = _getControlledScrollL[1];\n\n setScrollX(nextScrollX);\n !loading && (onScroll === null || onScroll === void 0 ? void 0 : onScroll(Math.abs(nextScrollX), Math.abs(scrollY.current)));\n scrollbarXRef === null || scrollbarXRef === void 0 ? void 0 : (_scrollbarXRef$curren3 = scrollbarXRef.current) === null || _scrollbarXRef$curren3 === void 0 ? void 0 : (_scrollbarXRef$curren4 = _scrollbarXRef$curren3.resetScrollBarPosition) === null || _scrollbarXRef$curren4 === void 0 ? void 0 : _scrollbarXRef$curren4.call(_scrollbarXRef$curren3, scrollbarX);\n deferUpdatePosition();\n };\n\n var onScrollTo = function onScrollTo(coord) {\n var _ref = coord || {},\n x = _ref.x,\n y = _ref.y;\n\n if (typeof x === 'number') {\n onScrollLeft(x);\n }\n\n if (typeof y === 'number') {\n onScrollTop(y);\n }\n };\n\n useUpdateEffect(function () {\n if (scrollY.current !== 0) {\n onScrollTop(Math.abs(scrollY.current));\n } // fix: #405 #404\n\n\n deferUpdatePosition();\n }, [height, data]);\n var releaseListeners = useCallback(function () {\n var _wheelListener$curren, _touchStartListener$c, _touchMoveListener$cu, _touchEndListener$cur;\n\n wheelHandler.current = null;\n (_wheelListener$curren = wheelListener.current) === null || _wheelListener$curren === void 0 ? void 0 : _wheelListener$curren.off();\n (_touchStartListener$c = touchStartListener.current) === null || _touchStartListener$c === void 0 ? void 0 : _touchStartListener$c.off();\n (_touchMoveListener$cu = touchMoveListener.current) === null || _touchMoveListener$cu === void 0 ? void 0 : _touchMoveListener$cu.off();\n (_touchEndListener$cur = touchEndListener.current) === null || _touchEndListener$cur === void 0 ? void 0 : _touchEndListener$cur.off();\n }, []);\n useEffect(function () {\n var options = {\n passive: false\n };\n var tableBody = tableBodyRef.current;\n\n if (tableBody) {\n // Reset the listener after props is updated.\n releaseListeners();\n wheelHandler.current = new WheelHandler(onWheel, shouldHandleWheelX, shouldHandleWheelY, false);\n wheelListener.current = on(tableBody, 'wheel', wheelHandler.current.onWheel, options);\n\n if (isSupportTouchEvent()) {\n touchStartListener.current = on(tableBody, 'touchstart', handleTouchStart, options);\n touchMoveListener.current = on(tableBody, 'touchmove', handleTouchMove, options);\n touchEndListener.current = on(tableBody, 'touchend', handleTouchEnd, options);\n }\n }\n\n return releaseListeners;\n }, [handleTouchEnd, handleTouchMove, handleTouchStart, onWheel, releaseListeners, shouldHandleWheelX, shouldHandleWheelY, tableBodyRef]);\n var onScrollByKeydown = useCallback(function (event) {\n if (event.currentTarget === event.target && arrowKeysList.indexOf(event.key) > -1) {\n event.preventDefault();\n var step = 40;\n\n switch (event.key) {\n case 'ArrowUp':\n onWheel(0, -step);\n break;\n\n case 'ArrowDown':\n onWheel(0, step);\n break;\n\n case 'ArrowLeft':\n onWheel(-step, 0);\n break;\n\n case 'ArrowRight':\n onWheel(step, 0);\n break;\n }\n }\n }, [onWheel]);\n useMount(function () {\n if (rtl) {\n var _scrollbarXRef$curren5, _scrollbarXRef$curren6;\n\n // Initialize scroll position\n setScrollX(tableWidth.current - contentWidth.current - SCROLLBAR_WIDTH);\n scrollbarXRef === null || scrollbarXRef === void 0 ? void 0 : (_scrollbarXRef$curren5 = scrollbarXRef.current) === null || _scrollbarXRef$curren5 === void 0 ? void 0 : (_scrollbarXRef$curren6 = _scrollbarXRef$curren5.resetScrollBarPosition) === null || _scrollbarXRef$curren6 === void 0 ? void 0 : _scrollbarXRef$curren6.call(_scrollbarXRef$curren5, -scrollX.current);\n forceUpdatePosition();\n }\n });\n var onScrollHorizontal = useCallback(function (delta) {\n return handleWheel(delta, 0);\n }, [handleWheel]);\n var onScrollVertical = useCallback(function (delta, event) {\n return handleWheel(0, delta, undefined, event);\n }, [handleWheel]);\n return {\n isScrolling: isScrolling,\n onScrollHorizontal: onScrollHorizontal,\n onScrollVertical: onScrollVertical,\n onScrollBody: onScrollBody,\n onScrollTop: onScrollTop,\n onScrollLeft: onScrollLeft,\n onScrollTo: onScrollTo,\n onScrollByKeydown: onScrollByKeydown\n };\n};\n\nexport default useScrollListener;","'use client';\nimport { useCallback, useRef } from 'react';\nimport addStyle from 'dom-lib/addStyle';\nimport { SCROLLBAR_WIDTH } from '../constants';\nimport toggleClass from './toggleClass';\nimport useUpdateEffect from './useUpdateEffect';\nimport isSupportTouchEvent from './isSupportTouchEvent';\nimport defer from './defer';\n\n/**\n * Update the position of the table according to the scrolling information of the table.\n * @param props\n * @returns\n */\nvar usePosition = function usePosition(props) {\n var data = props.data,\n height = props.height,\n tableWidth = props.tableWidth,\n tableRef = props.tableRef,\n prefix = props.prefix,\n translateDOMPositionXY = props.translateDOMPositionXY,\n wheelWrapperRef = props.wheelWrapperRef,\n headerWrapperRef = props.headerWrapperRef,\n affixHeaderWrapperRef = props.affixHeaderWrapperRef,\n tableHeaderRef = props.tableHeaderRef,\n scrollX = props.scrollX,\n scrollY = props.scrollY,\n contentWidth = props.contentWidth,\n shouldFixedColumn = props.shouldFixedColumn;\n var duration = useRef(0);\n var bezier = useRef('linear');\n var getScrollCellGroups = useCallback(function () {\n var _tableRef$current;\n\n return ((_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.querySelectorAll(\".\" + prefix('cell-group-scroll'))) || [];\n }, [prefix, tableRef]);\n var getFixedLeftCellGroups = useCallback(function () {\n var _tableRef$current2;\n\n return (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.querySelectorAll(\".\" + prefix('cell-group-fixed-left'));\n }, [prefix, tableRef]);\n var getFixedRightCellGroups = useCallback(function () {\n var _tableRef$current3;\n\n return (_tableRef$current3 = tableRef.current) === null || _tableRef$current3 === void 0 ? void 0 : _tableRef$current3.querySelectorAll(\".\" + prefix('cell-group-fixed-right'));\n }, [prefix, tableRef]);\n var updateWheelElementPosition = useCallback(function (fixedCell) {\n if (wheelWrapperRef !== null && wheelWrapperRef !== void 0 && wheelWrapperRef.current) {\n // The animation when the mobile device touches and scrolls.\n var wheelStyle = isSupportTouchEvent() ? {\n 'transition-duration': duration.current + \"ms\",\n 'transition-timing-function': bezier.current\n } : {};\n translateDOMPositionXY.current(wheelStyle, fixedCell ? 0 : scrollX.current, scrollY.current);\n addStyle(wheelWrapperRef.current, wheelStyle);\n }\n }, [scrollX, scrollY, translateDOMPositionXY, wheelWrapperRef]);\n var updatePositionByFixedCell = useCallback(function () {\n var wheelGroupStyle = {};\n var scrollGroups = getScrollCellGroups();\n var fixedLeftGroups = getFixedLeftCellGroups();\n var fixedRightGroups = getFixedRightCellGroups();\n translateDOMPositionXY.current(wheelGroupStyle, scrollX.current, 0);\n var scrollArrayGroups = Array.from(scrollGroups);\n\n for (var i = 0; i < scrollArrayGroups.length; i++) {\n var group = scrollArrayGroups[i];\n addStyle(group, wheelGroupStyle);\n }\n\n updateWheelElementPosition(true); // Whether to show the horizontal scroll bar\n\n var hasHorizontalScrollbar = contentWidth.current > tableWidth.current;\n var scrollbarWidth = hasHorizontalScrollbar ? 0 : SCROLLBAR_WIDTH;\n var leftShadowClassName = prefix('cell-group-left-shadow');\n var rightShadowClassName = prefix('cell-group-right-shadow');\n var showLeftShadow = scrollX.current < 0;\n var showRightShadow = tableWidth.current - contentWidth.current - scrollbarWidth !== scrollX.current;\n toggleClass(fixedLeftGroups, leftShadowClassName, showLeftShadow);\n toggleClass(fixedRightGroups, rightShadowClassName, showRightShadow);\n }, [contentWidth, getFixedLeftCellGroups, getFixedRightCellGroups, getScrollCellGroups, updateWheelElementPosition, prefix, scrollX, tableWidth, translateDOMPositionXY]);\n /**\n * Update the position of the table according to the scrolling information of the table.\n * @param nextDuration CSS transition-duration\n * @param nextBezier CSS transition-timing-function\n */\n\n var updatePosition = useCallback(function (nextDuration, nextBezier) {\n if (nextDuration) {\n duration.current = nextDuration;\n }\n\n if (nextBezier) {\n bezier.current = nextBezier;\n } // When there are fixed columns.\n\n\n if (shouldFixedColumn) {\n updatePositionByFixedCell();\n } else {\n var _affixHeaderElement$h;\n\n var headerStyle = {};\n translateDOMPositionXY.current(headerStyle, scrollX.current, 0);\n var headerElement = headerWrapperRef === null || headerWrapperRef === void 0 ? void 0 : headerWrapperRef.current;\n var affixHeaderElement = affixHeaderWrapperRef === null || affixHeaderWrapperRef === void 0 ? void 0 : affixHeaderWrapperRef.current;\n updateWheelElementPosition();\n headerElement && addStyle(headerElement, headerStyle);\n\n if (affixHeaderElement !== null && affixHeaderElement !== void 0 && (_affixHeaderElement$h = affixHeaderElement.hasChildNodes) !== null && _affixHeaderElement$h !== void 0 && _affixHeaderElement$h.call(affixHeaderElement)) {\n addStyle(affixHeaderElement === null || affixHeaderElement === void 0 ? void 0 : affixHeaderElement.firstChild, headerStyle);\n }\n }\n\n if (tableHeaderRef !== null && tableHeaderRef !== void 0 && tableHeaderRef.current) {\n toggleClass(tableHeaderRef.current, prefix('cell-group-shadow'), scrollY.current < 0);\n }\n }, [affixHeaderWrapperRef, updateWheelElementPosition, headerWrapperRef, prefix, scrollX, scrollY, shouldFixedColumn, tableHeaderRef, translateDOMPositionXY, updatePositionByFixedCell]);\n useUpdateEffect(function () {\n if (scrollY.current !== 0) {\n updatePosition();\n }\n }, [height, data]);\n return {\n forceUpdatePosition: updatePosition,\n deferUpdatePosition: function deferUpdatePosition(nextDuration, nextBezier) {\n defer(function () {\n updatePosition(nextDuration, nextBezier);\n });\n }\n };\n};\n\nexport default usePosition;","'use client';\nexport var verticalAlignMap = {\n top: 'flex-start',\n middle: 'center',\n bottom: 'flex-end'\n};\nexport var alignMap = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end'\n}; // Convert verticalAlign to alignItems.\n\nexport function verticalAlignToAlignItems(verticalAlign) {\n return verticalAlignMap[verticalAlign] || verticalAlign;\n} // Convert align to justifyContent.\n\nexport function alignToJustifyContent(align) {\n return alignMap[align] || align;\n} // Convert verticalAlign and align to flex styles.\n\nexport default function convertToFlex(props) {\n var verticalAlign = props.verticalAlign,\n align = props.align;\n if (!verticalAlign && !align) return {};\n return {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: verticalAlignToAlignItems(verticalAlign),\n justifyContent: alignToJustifyContent(align)\n };\n}","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"classPrefix\", \"height\", \"headerHeight\", \"className\", \"width\", \"top\", \"style\", \"isHeaderRow\", \"rowRef\", \"children\", \"rowSpan\"];\nimport React, { useContext } from 'react';\nimport { mergeRefs, useClassNames } from './utils';\nimport TableContext from './TableContext';\nimport { ROW_HEADER_HEIGHT, ROW_HEIGHT } from './constants';\nvar Row = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'row' : _props$classPrefix,\n _props$height = props.height,\n height = _props$height === void 0 ? ROW_HEIGHT : _props$height,\n _props$headerHeight = props.headerHeight,\n headerHeight = _props$headerHeight === void 0 ? ROW_HEADER_HEIGHT : _props$headerHeight,\n className = props.className,\n width = props.width,\n top = props.top,\n style = props.style,\n isHeaderRow = props.isHeaderRow,\n rowRef = props.rowRef,\n children = props.children,\n rowSpan = props.rowSpan,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _useContext = useContext(TableContext),\n translateDOMPositionXY = _useContext.translateDOMPositionXY;\n\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n\n var classes = merge(className, withClassPrefix({\n header: isHeaderRow,\n rowspan: rowSpan\n }));\n\n var styles = _extends({\n minWidth: width,\n height: isHeaderRow ? headerHeight : height\n }, style);\n\n translateDOMPositionXY === null || translateDOMPositionXY === void 0 ? void 0 : translateDOMPositionXY(styles, 0, top);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"row\"\n }, rest, {\n ref: mergeRefs(rowRef, ref),\n className: classes,\n style: styles\n }), children);\n});\nRow.displayName = 'Table.Row';\nexport default Row;","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"fixed\", \"width\", \"left\", \"height\", \"style\", \"classPrefix\", \"className\", \"children\"];\nimport React, { useContext } from 'react';\nimport { useClassNames } from './utils';\nimport TableContext from './TableContext';\nvar CellGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _withClassPrefix;\n\n var fixed = props.fixed,\n width = props.width,\n left = props.left,\n height = props.height,\n style = props.style,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'cell-group' : _props$classPrefix,\n className = props.className,\n children = props.children,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _useContext = useContext(TableContext),\n translateDOMPositionXY = _useContext.translateDOMPositionXY;\n\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n\n var classes = merge(className, withClassPrefix((_withClassPrefix = {}, _withClassPrefix[\"fixed-\" + fixed] = fixed, _withClassPrefix.scroll = !fixed, _withClassPrefix)));\n\n var styles = _extends({\n width: width,\n height: height\n }, style);\n\n translateDOMPositionXY === null || translateDOMPositionXY === void 0 ? void 0 : translateDOMPositionXY(styles, left, 0);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n ref: ref,\n className: classes,\n style: styles\n }), children);\n});\nCellGroup.displayName = 'Table.CellGroup';\nexport default CellGroup;","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"length\", \"scrollLength\", \"classPrefix\", \"vertical\", \"className\", \"tableId\", \"onMouseDown\", \"onScroll\"];\nimport React, { useState, useRef, useCallback, useImperativeHandle } from 'react';\nimport DOMMouseMoveTracker from 'dom-lib/DOMMouseMoveTracker';\nimport addStyle from 'dom-lib/addStyle';\nimport getOffset from 'dom-lib/getOffset';\nimport { SCROLLBAR_MIN_WIDTH, TRANSITION_DURATION, BEZIER } from './constants';\nimport { useMount, useClassNames, useUpdateEffect, defer } from './utils';\nimport TableContext from './TableContext';\nvar Scrollbar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _barRef$current, _styles;\n\n var _props$length = props.length,\n length = _props$length === void 0 ? 1 : _props$length,\n _props$scrollLength = props.scrollLength,\n scrollLength = _props$scrollLength === void 0 ? 1 : _props$scrollLength,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'scrollbar' : _props$classPrefix,\n vertical = props.vertical,\n className = props.className,\n tableId = props.tableId,\n onMouseDown = props.onMouseDown,\n onScroll = props.onScroll,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _React$useContext = React.useContext(TableContext),\n translateDOMPositionXY = _React$useContext.translateDOMPositionXY;\n\n var _useState = useState(false),\n handlePressed = _useState[0],\n setHandlePressed = _useState[1];\n\n var _useState2 = useState({\n top: 0,\n left: 0\n }),\n barOffset = _useState2[0],\n setBarOffset = _useState2[1];\n\n var scrollOffset = useRef(0);\n var scrollRange = useRef(scrollLength);\n var barRef = useRef(null);\n var handleRef = useRef(null);\n var mouseMoveTracker = useRef();\n\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n var classes = merge(className, withClassPrefix({\n vertical: vertical,\n horizontal: !vertical,\n pressed: handlePressed\n }), // keep the 'fixed' class name if it has already been given by useAffix hook\n ((_barRef$current = barRef.current) === null || _barRef$current === void 0 ? void 0 : _barRef$current.classList.contains('fixed')) && 'fixed');\n var width = length / scrollLength * 100;\n var styles = (_styles = {}, _styles[vertical ? 'height' : 'width'] = width + \"%\", _styles[vertical ? 'minHeight' : 'minWidth'] = SCROLLBAR_MIN_WIDTH, _styles);\n var valuenow = scrollOffset.current / length * 100 + width;\n useMount(function () {\n defer(function () {\n if (barRef.current) {\n setBarOffset(getOffset(barRef.current));\n }\n });\n return function () {\n releaseMouseMoves();\n };\n });\n useUpdateEffect(function () {\n if (scrollOffset.current) {\n // Update the position of the scroll bar when the height of the table content area changes.\n scrollOffset.current = scrollRange.current / scrollLength * scrollOffset.current;\n updateScrollBarPosition(0);\n }\n\n scrollRange.current = scrollLength;\n }, [scrollLength]);\n useImperativeHandle(ref, function () {\n return {\n get root() {\n return barRef.current;\n },\n\n get handle() {\n return handleRef.current;\n },\n\n onWheelScroll: function onWheelScroll(delta, momentum) {\n var nextDelta = delta / (scrollLength / length);\n updateScrollBarPosition(nextDelta, undefined, momentum);\n },\n resetScrollBarPosition: function resetScrollBarPosition(forceDelta) {\n if (forceDelta === void 0) {\n forceDelta = 0;\n }\n\n scrollOffset.current = 0;\n updateScrollBarPosition(0, forceDelta);\n }\n };\n });\n var updateScrollBarPosition = useCallback(function (delta, forceDelta, momentum) {\n var max = scrollLength && length ? length - Math.max(length / scrollLength * length, SCROLLBAR_MIN_WIDTH + 2) : 0;\n var styles = momentum ? {\n 'transition-duration': TRANSITION_DURATION + \"ms\",\n 'transition-timing-function': BEZIER\n } : {};\n\n var getSafeValue = function getSafeValue(value) {\n if (value === void 0) {\n value = 0;\n }\n\n return Math.min(Math.max(value, 0), max);\n };\n\n if (typeof forceDelta === 'undefined') {\n scrollOffset.current += delta;\n scrollOffset.current = getSafeValue(scrollOffset.current);\n } else {\n scrollOffset.current = getSafeValue(forceDelta);\n }\n\n if (vertical) {\n translateDOMPositionXY === null || translateDOMPositionXY === void 0 ? void 0 : translateDOMPositionXY(styles, 0, scrollOffset.current);\n } else {\n translateDOMPositionXY === null || translateDOMPositionXY === void 0 ? void 0 : translateDOMPositionXY(styles, scrollOffset.current, 0);\n }\n\n if (handleRef.current) {\n addStyle(handleRef.current, styles);\n }\n }, [length, scrollLength, translateDOMPositionXY, vertical]);\n var handleScroll = useCallback(function (delta, event) {\n var scrollDelta = delta * (scrollLength / length);\n updateScrollBarPosition(delta);\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(scrollDelta, event);\n }, [length, onScroll, scrollLength, updateScrollBarPosition]);\n var handleClick = useCallback(function (event) {\n var _handleRef$current;\n\n if (handleRef.current && (_handleRef$current = handleRef.current) !== null && _handleRef$current !== void 0 && _handleRef$current.contains(event.target)) {\n return;\n }\n\n if (typeof (barOffset === null || barOffset === void 0 ? void 0 : barOffset.top) !== 'number' || typeof (barOffset === null || barOffset === void 0 ? void 0 : barOffset.left) !== 'number') {\n return;\n }\n\n var offset = vertical ? event.pageY - (barOffset === null || barOffset === void 0 ? void 0 : barOffset.top) : event.pageX - barOffset.left;\n var handleWidth = length / scrollLength * length;\n var delta = offset - handleWidth;\n var nextDelta = offset > scrollOffset.current ? delta - scrollOffset.current : offset - scrollOffset.current;\n handleScroll(nextDelta, event);\n }, [barOffset, handleScroll, length, scrollLength, vertical]);\n var releaseMouseMoves = useCallback(function () {\n var _mouseMoveTracker$cur, _mouseMoveTracker$cur2;\n\n (_mouseMoveTracker$cur = mouseMoveTracker.current) === null || _mouseMoveTracker$cur === void 0 ? void 0 : (_mouseMoveTracker$cur2 = _mouseMoveTracker$cur.releaseMouseMoves) === null || _mouseMoveTracker$cur2 === void 0 ? void 0 : _mouseMoveTracker$cur2.call(_mouseMoveTracker$cur);\n mouseMoveTracker.current = null;\n }, []);\n var handleDragMove = useCallback(function (deltaX, deltaY, event) {\n var _window, _window$event;\n\n if (!mouseMoveTracker.current || !mouseMoveTracker.current.isDragging()) {\n return;\n }\n\n if ((event === null || event === void 0 ? void 0 : event.buttons) === 0 || ((_window = window) === null || _window === void 0 ? void 0 : (_window$event = _window.event) === null || _window$event === void 0 ? void 0 : _window$event['buttons']) === 0) {\n releaseMouseMoves();\n return;\n }\n\n handleScroll(vertical ? deltaY : deltaX, event);\n }, [handleScroll, releaseMouseMoves, vertical]);\n var handleDragEnd = useCallback(function () {\n releaseMouseMoves();\n setHandlePressed(false);\n }, [releaseMouseMoves]);\n var getMouseMoveTracker = useCallback(function () {\n return mouseMoveTracker.current || new DOMMouseMoveTracker(handleDragMove, handleDragEnd, document.body);\n }, [handleDragEnd, handleDragMove]);\n var handleMouseDown = useCallback(function (event) {\n var _mouseMoveTracker$cur3;\n\n mouseMoveTracker.current = getMouseMoveTracker();\n mouseMoveTracker === null || mouseMoveTracker === void 0 ? void 0 : (_mouseMoveTracker$cur3 = mouseMoveTracker.current) === null || _mouseMoveTracker$cur3 === void 0 ? void 0 : _mouseMoveTracker$cur3.captureMouseMoves(event);\n setHandlePressed(true);\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event);\n }, [getMouseMoveTracker, onMouseDown]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"scrollbar\",\n \"aria-controls\": tableId,\n \"aria-valuemax\": 100,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": valuenow,\n \"aria-orientation\": vertical ? 'vertical' : 'horizontal'\n }, rest, {\n ref: barRef,\n className: classes,\n onClick: handleClick\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: handleRef,\n className: prefix('handle'),\n style: styles,\n onMouseDown: handleMouseDown,\n role: \"button\",\n tabIndex: -1\n }));\n});\nScrollbar.displayName = 'Table.Scrollbar';\nexport default Scrollbar;","'use client';\nimport React from 'react';\nvar MouseArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var addPrefix = props.addPrefix,\n headerHeight = props.headerHeight,\n height = props.height;\n var styles = {\n height: height\n };\n var spanStyles = {\n height: headerHeight - 1\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: addPrefix('mouse-area'),\n style: styles\n }, /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyles\n }));\n});\nMouseArea.displayName = 'Table.MouseArea';\nexport default MouseArea;","'use client';\nimport React from 'react';\nvar Loader = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var loadAnimation = props.loadAnimation,\n loading = props.loading,\n locale = props.locale,\n addPrefix = props.addPrefix,\n renderLoading = props.renderLoading;\n var loadingElement = /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: addPrefix('loader-wrapper')\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: addPrefix('loader')\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: addPrefix('loader-icon')\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: addPrefix('loader-text')\n }, locale === null || locale === void 0 ? void 0 : locale.loading))); // Custom render a loader\n\n if (typeof renderLoading === 'function') {\n return loading ? renderLoading(loadingElement) : null;\n } // If loadAnimation is true , it returns the DOM element,\n // and controls whether the loader is displayed through CSS to achieve animation effect.\n\n\n return loading || loadAnimation ? loadingElement : null;\n});\nLoader.displayName = 'Table.Loader';\nexport default Loader;","'use client';\nimport React from 'react';\nvar EmptyMessage = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var addPrefix = props.addPrefix,\n locale = props.locale,\n renderEmpty = props.renderEmpty,\n loading = props.loading;\n\n if (loading) {\n return null;\n }\n\n var emptyMessage = /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: addPrefix('body-info')\n }, locale === null || locale === void 0 ? void 0 : locale.emptyMessage);\n return renderEmpty ? renderEmpty(emptyMessage) : emptyMessage;\n});\nEmptyMessage.displayName = 'Table.EmptyMessage';\nexport default EmptyMessage;","'use client';\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport React from 'react';\nimport * as ReactIS from 'react-is';\nexport var flattenChildren = function flattenChildren(children, flattened) {\n if (flattened === void 0) {\n flattened = [];\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(React.Children.toArray(children)), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n\n if (ReactIS.isFragment(child)) {\n var _childEl$props;\n\n var childEl = child;\n\n if ((_childEl$props = childEl.props) !== null && _childEl$props !== void 0 && _childEl$props.children) {\n flattenChildren(childEl.props.children, flattened);\n }\n } else {\n flattened.push(child);\n }\n }\n\n return flattened;\n};","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\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\", \"rowIndex\"],\n _excluded3 = [\"cellHeight\"];\nimport React, { useState, useRef, useCallback, useImperativeHandle, useReducer, useMemo } from 'react';\nimport * as ReactIs from 'react-is';\nimport { getTranslateDOMPositionXY } from 'dom-lib/translateDOMPositionXY';\nimport PropTypes from 'prop-types';\nimport isFunction from 'lodash/isFunction';\nimport debounce from 'lodash/debounce';\nimport Row from './Row';\nimport CellGroup from './CellGroup';\nimport Scrollbar from './Scrollbar';\nimport MouseArea from './MouseArea';\nimport Loader from './Loader';\nimport EmptyMessage from './EmptyMessage';\nimport TableContext from './TableContext';\nimport Cell from './Cell';\nimport HeaderCell from './HeaderCell';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport { SCROLLBAR_WIDTH, CELL_PADDING_HEIGHT, SORT_TYPE, EXPANDED_KEY, TREE_DEPTH, ROW_HEADER_HEIGHT, ROW_HEIGHT } from './constants';\nimport { mergeCells, flattenData, isRTL, findRowKeys, findAllParents, shouldShowRowByExpanded, resetLeftForCells, useClassNames, useControlled, useUpdateEffect, useCellDescriptor, useTableDimension, useTableRows, useAffix, useScrollListener, usePosition, isSupportTouchEvent } from './utils';\nimport { flattenChildren } from './utils/children';\n/**\n * Filter those expanded nodes.\n * @param data\n * @param expandedRowKeys\n * @param rowKey\n * @returns\n */\n\nvar filterTreeData = function filterTreeData(data, expandedRowKeys, rowKey) {\n return flattenData(data).filter(function (rowData) {\n if (rowKey) {\n var parents = findAllParents(rowData, rowKey);\n\n var _expanded = shouldShowRowByExpanded(expandedRowKeys, parents); // FIXME This function is supposed to be pure.\n // Don't mutate rowData in-place!\n\n\n rowData[EXPANDED_KEY] = _expanded;\n rowData[TREE_DEPTH] = parents.length;\n return _expanded;\n }\n });\n};\n\nvar DATA_PLACEHOLDER = [];\nvar getChildrenProps = {\n Cell: Cell,\n HeaderCell: HeaderCell,\n Column: Column,\n ColumnGroup: ColumnGroup\n};\nvar Table = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var affixHeader = props.affixHeader,\n getChildren = 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 ? 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 ? ROW_HEIGHT : _props$rowHeight,\n sortTypeProp = props.sortType,\n _props$headerHeight = props.headerHeight,\n headerHeightProp = _props$headerHeight === void 0 ? ROW_HEADER_HEIGHT : _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 translate3d = 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 = _objectWithoutPropertiesLoose(props, _excluded);\n\n var children = useMemo(function () {\n return flattenChildren(isFunction(getChildren) ? getChildren(getChildrenProps) : getChildren);\n }, [getChildren]);\n\n var _useClassNames = 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 = useReducer(function (x) {\n return x + 1;\n }, 0),\n forceUpdate = _useReducer[1];\n\n var _useControlled = useControlled(expandedRowKeysProp, defaultExpandAllRows ? findRowKeys(dataProp, rowKey, isFunction(renderRowExpandedProp)) : defaultExpandedRowKeys || []),\n expandedRowKeys = _useControlled[0],\n setExpandedRowKeys = _useControlled[1];\n\n var _useState = 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 = 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 || isRTL();\n\n var getRowHeight = function getRowHeight() {\n return typeof rowHeight === 'function' ? rowHeight() : rowHeight;\n };\n\n var translateDOMPositionXY = useRef(getTranslateDOMPositionXY({\n forceUseTransform: true,\n enable3DTransform: translate3d\n })); // Check for the existence of fixed columns in all column properties.\n\n var shouldFixedColumn = children.some(function (child) {\n var _child$props;\n\n return ReactIs.isElement(child) && (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 = children.some(function (child) {\n var _child$props2;\n\n return ReactIs.isElement(child) && (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 = useRef([]);\n var mouseAreaRef = useRef(null);\n var tableRef = useRef(null);\n var tableHeaderRef = useRef(null);\n var affixHeaderWrapperRef = useRef(null);\n var headerWrapperRef = useRef(null);\n var tableBodyRef = useRef(null);\n var wheelWrapperRef = useRef(null);\n var scrollbarXRef = useRef(null);\n var scrollbarYRef = 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 if (event === 'bodyWidthChanged') {\n deferUpdatePosition();\n }\n };\n\n var _useTableDimension = useTableDimension({\n // The data should be flattened,\n // otherwise the array length required to calculate the scroll height in the TreeTable is not real.\n data: data,\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 bordered: bordered,\n onTableScroll: debounce(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 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 = 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 deferUpdatePosition = _usePosition.deferUpdatePosition;\n\n var _useScrollListener = 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 deferUpdatePosition: deferUpdatePosition,\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 onScrollByKeydown = _useScrollListener.onScrollByKeydown;\n\n var _useCellDescriptor = 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 = useRef((headerCells === null || headerCells === void 0 ? void 0 : headerCells.length) || 0);\n useUpdateEffect(function () {\n setData(isTree ? filterTreeData(dataProp, expandedRowKeys, rowKey) : dataProp);\n }, [dataProp, expandedRowKeys, rowKey, isTree]);\n 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 useImperativeHandle(ref, function () {\n return {\n get root() {\n return tableRef.current;\n },\n\n get body() {\n return wheelWrapperRef.current;\n },\n\n // The scroll position of the table\n get scrollPosition() {\n return {\n top: Math.abs(scrollY.current),\n left: Math.abs(scrollX.current)\n };\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 = _extends({\n width: widthProp || 'auto',\n height: getTableHeight()\n }, style);\n\n var renderRowExpanded = useCallback(function (rowData) {\n var height = 0;\n\n if (typeof rowExpandedHeight === 'function') {\n height = rowExpandedHeight(rowData);\n } else {\n height = rowExpandedHeight;\n }\n\n var styles = {\n height: height\n };\n\n if (typeof renderRowExpandedProp === 'function') {\n return /*#__PURE__*/React.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 rowIndex = props.rowIndex,\n restRowProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n if (typeof rowClassName === 'function') {\n restRowProps.className = rowClassName(rowData, rowIndex);\n } else {\n restRowProps.className = rowClassName;\n }\n\n var rowStyles = _extends({}, 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 += SCROLLBAR_WIDTH;\n }\n\n rowNode = /*#__PURE__*/React.createElement(React.Fragment, null, fixedLeftCellGroupWidth ? /*#__PURE__*/React.createElement(CellGroup, {\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 }, mergeCells(resetLeftForCells(fixedLeftCells))) : null, /*#__PURE__*/React.createElement(CellGroup, null, mergeCells(scrollCells)), fixedRightCellGroupWidth ? /*#__PURE__*/React.createElement(CellGroup, {\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 }, mergeCells(resetLeftForCells(fixedRightCells, hasVerticalScrollbar ? SCROLLBAR_WIDTH : 0))) : null, shouldRenderExpandedRow && renderRowExpanded(rowData));\n } else {\n rowNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CellGroup, null, mergeCells(cells)), shouldRenderExpandedRow && renderRowExpanded(rowData));\n }\n\n return /*#__PURE__*/React.createElement(Row, _extends({}, 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 rowIndex: -1\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.createElement(\"div\", {\n className: prefix('affix-header'),\n style: fixedStyle,\n ref: affixHeaderWrapperRef\n }, renderRow(rowProps, headerCells));\n return /*#__PURE__*/React.createElement(React.Fragment, null, (affixHeader === 0 || affixHeader) && header, /*#__PURE__*/React.createElement(\"div\", {\n role: \"rowgroup\",\n className: prefix('header-row-wrapper'),\n ref: headerWrapperRef\n }, renderRow(rowProps, headerCells)));\n };\n\n var shouldRenderExpandedRow = useCallback(function (rowData) {\n if (isFunction(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 = useCallback(function (rowData) {\n return function (event) {\n onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(rowData, event);\n };\n }, [onRowClick]);\n var bindRowContextMenu = useCallback(function (rowData) {\n return function (event) {\n onRowContextMenu === null || onRowContextMenu === void 0 ? void 0 : onRowContextMenu(rowData, event);\n };\n }, [onRowContextMenu]);\n var handleTreeToggle = 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 = 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 cellHeight = props.cellHeight,\n restRowProps = _objectWithoutPropertiesLoose(props, _excluded3);\n\n var rowProps = _extends({}, restRowProps, {\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 var dataCellHeight = rowSpan ? rowSpan * (cellHeight || ROW_HEIGHT) : cellHeight;\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.cloneElement(cell, {\n hasChildren: hasChildren,\n rowData: rowData,\n rowIndex: props.rowIndex,\n wordWrap: wordWrap,\n height: dataCellHeight,\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.createElement(Scrollbar, {\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.createElement(Scrollbar, {\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 startHeight = 0;\n\n if (typeof rowExpandedHeight === 'function') {\n startHeight = data.length ? rowExpandedHeight(data[0]) : 100;\n } else {\n startHeight = rowExpandedHeight;\n }\n\n var maxTop = minTop + height + startHeight;\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 (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 expandedRow = shouldRenderExpandedRow(_rowData);\n var nextRowHeight = 0;\n var cellHeight = 0;\n\n if (typeof rowHeight === 'function') {\n nextRowHeight = rowHeight(_rowData);\n cellHeight = nextRowHeight;\n } else {\n nextRowHeight = maxHeight ? Math.max(maxHeight + CELL_PADDING_HEIGHT, rowHeight) : rowHeight;\n cellHeight = nextRowHeight;\n\n if (expandedRow) {\n // If the row is expanded, the height of the expanded row is added.\n if (typeof rowExpandedHeight === 'function') {\n nextRowHeight += rowExpandedHeight(_rowData);\n } else {\n nextRowHeight += rowExpandedHeight;\n }\n }\n }\n\n contentHeight += nextRowHeight;\n var rowProps = {\n key: index,\n top: _top,\n rowIndex: index,\n width: rowWidth,\n depth: _rowData[TREE_DEPTH],\n height: nextRowHeight,\n cellHeight: cellHeight\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, expandedRow));\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 (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 rowIndex: _index,\n depth: _rowData2[TREE_DEPTH],\n top: _index * _nextRowHeight,\n width: rowWidth,\n height: _nextRowHeight,\n cellHeight: _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.createElement(\"div\", {\n ref: tableBodyRef,\n role: \"rowgroup\",\n className: prefix('body-row-wrapper'),\n style: bodyStyles,\n onScroll: onScrollBody\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: wheelStyles,\n className: prefix('body-wheel-area'),\n ref: wheelWrapperRef\n }, topHideHeight ? /*#__PURE__*/React.createElement(Row, {\n style: topRowStyles,\n className: \"virtualized\"\n }) : null, visibleRows.current, bottomHideHeight ? /*#__PURE__*/React.createElement(Row, {\n style: bottomRowStyles,\n className: \"virtualized\"\n }) : null), /*#__PURE__*/React.createElement(EmptyMessage, {\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.createElement(Loader, {\n locale: locale,\n loadAnimation: loadAnimation,\n loading: loading,\n addPrefix: prefix,\n renderLoading: renderLoading\n }));\n };\n\n var contextValue = React.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.createElement(TableContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\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 tabIndex: -1,\n onKeyDown: onScrollByKeydown\n }), showHeader && renderTableHeader(headerCells, rowWidth), children && renderTableBody(bodyCells, rowWidth), showHeader && /*#__PURE__*/React.createElement(MouseArea, {\n ref: mouseAreaRef,\n addPrefix: prefix,\n headerHeight: headerHeight,\n height: getTableHeight()\n })));\n});\nTable.displayName = 'Table';\nTable.propTypes = {\n autoHeight: PropTypes.bool,\n fillHeight: PropTypes.bool,\n affixHeader: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n affixHorizontalScrollbar: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n bordered: PropTypes.bool,\n className: PropTypes.string,\n classPrefix: PropTypes.string,\n children: PropTypes.any,\n cellBordered: PropTypes.bool,\n data: PropTypes.array,\n defaultExpandAllRows: PropTypes.bool,\n defaultExpandedRowKeys: PropTypes.array,\n defaultSortType: PropTypes.any,\n disabledScroll: PropTypes.bool,\n expandedRowKeys: PropTypes.array,\n hover: PropTypes.bool,\n height: PropTypes.number,\n headerHeight: PropTypes.number,\n locale: PropTypes.object,\n loading: PropTypes.bool,\n loadAnimation: PropTypes.bool,\n minHeight: PropTypes.number,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n renderTreeToggle: PropTypes.func,\n renderRowExpanded: PropTypes.func,\n renderRow: PropTypes.func,\n rowExpandedHeight: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),\n renderEmpty: PropTypes.func,\n renderLoading: PropTypes.func,\n rowClassName: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n rtl: PropTypes.bool,\n style: PropTypes.object,\n sortColumn: PropTypes.string,\n sortType: PropTypes.any,\n showHeader: PropTypes.bool,\n shouldUpdateScroll: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n translate3d: PropTypes.bool,\n wordWrap: PropTypes.any,\n width: PropTypes.number,\n virtualized: PropTypes.bool,\n isTree: PropTypes.bool,\n onRowClick: PropTypes.func,\n onRowContextMenu: PropTypes.func,\n onScroll: PropTypes.func,\n onSortColumn: PropTypes.func,\n onExpandChange: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchEnd: PropTypes.func\n};\nexport default Table;"],"names":["b","c","d","e","f","g","h","k","l","m","n","p","q","r","u","v","w","x","y","a","t","z","A","B","C","D","E","F","G","H","I","reactIs_production_min","reactIsModule","require$$0","prefix","pre","className","classNames","name","curry","getColumnProps","column","_column$type","_column$type$render","_column$type$render$c","columnDefaultProps","_extends","getTotalByColumns","columns","totalFlexGrow","totalWidth","count","items","React","_getColumnProps","flexGrow","_getColumnProps$width","width","isPlainObject","_columns$props","_columns$props$width","_excluded","ColumnGroup","props","ref","header","children","_props$classPrefix","classPrefix","_props$headerHeight","headerHeight","verticalAlign","align","groupHeightProp","rest","_objectWithoutPropertiesLoose","groupHeight","restHeight","styles","_useClassNames","useClassNames","withClassPrefix","merge","classes","contentStyles","convertToFlex","node","PropTypes","translateDOMPositionXY","getTranslateDOMPositionXY","isRTL","TableContext","LAYER_WIDTH","SCROLLBAR_MIN_WIDTH","SCROLLBAR_WIDTH","CELL_PADDING_HEIGHT","RESIZE_MIN_WIDTH","SORT_TYPE","ROW_HEIGHT","ROW_HEADER_HEIGHT","TRANSITION_DURATION","BEZIER","EXPANDED_KEY","PARENT_KEY","TREE_DEPTH","ColumnResizeHandler","_extends2","_props$columnLeft","columnLeft","height","style","columnFixed","defaultColumnWidth","minWidth","onColumnResizeStart","onColumnResizeMove","onColumnResizeEnd","_useContext","useContext","rtl","columnWidth","useRef","mouseMoveTracker","isKeyDown","cursorDelta","handleMove","useCallback","deltaX","clamp","handleColumnResizeEnd","_mouseMoveTracker$cur","_mouseMoveTracker$cur2","getMouseMoveTracker","DOMMouseMoveTracker","handleColumnResizeMouseDown","event","client","useEffect","_mouseMoveTracker$cur3","Column","_props","propTypes","columnHandledProps","groupKeys","Cell","_extends3","_props$width","_props$left","left","_props$depth","depth","_props$height","fullText","firstColumn","lastColumn","isHeaderCell","rowData","dataKey","rowIndex","removed","rowKey","rowSpan","wordWrap","expanded","treeCol","hasChildren","predefinedStyle","renderCell","renderTreeToggle","onClick","onTreeToggle","_React$useContext","hasCustomTreeCol","isTree","isTreeCol","cellHeight","handleTreeToggle","nextHeight","paddingKey","cellContent","isNil","get","renderTreeNodeExpandIcon","ExpandIconComponent","ArrowDown","ArrowRight","expandButton","content","omit","SORTED_ICON","SortDown","SortUp","HeaderCell","sortable","sortColumn","sortType","groupHeader","resizable","fixed","index","onResize","onSortColumn","renderSortIcon","_useState","useState","setColumnWidth","useUpdateEffect","ariaSort","handleClick","handleColumnResizeStart","nextColumnWidth","renderSortColumn","_classNames","SortIcon","Sort","iconClasses","sortIcon","cloneCell","mergeCells","cells","nextCells","i","_cells$i$props","colSpan","groupCount","groupAlign","groupVerticalAlign","groupHeaderHeight","groupChildren","nextWidth","j","nextCell","_nextCell$props","nextCellWidth","_nextWidth","_j","_nextCell","_nextCell$props2","_children","colSpanWidth","_isHeaderCell","_dataKey","cellText","isFunction","toggleClass","condition","addClass","removeClass","toggleClass$1","item","flattenData","tree","parent","acc","flattened","findRowKeys","rows","keys","findAllParents","parents","current","shouldShowRowByExpanded","expandedRowKeys","parentKeys","_parentKeys","_expandedRowKeys","resetLeftForCells","extraWidth","cell","isNumberOrTrue","value","toFnRef","mergeRefs","refA","refB","cancelAnimationTimeout","frame","cancelAnimationFramePolyfill","requestAnimationTimeout","callback","delay","start","timeout","requestAnimationFramePolyfill","effect","deps","isMounting","useIsomorphicLayoutEffect","canUseDOM","useLayoutEffect","useUpdateLayoutEffect","useMount","str","controlled","_ref","_ref$classPrefix","contextClassPrefix","componentName","addPrefix","mergeClasses","cls","_len","_key","rootPrefix","useControlled","controlledValue","defaultValue","controlledRef","uncontrolledValue","setUncontrolledValue","setValue","nextValue","getTableColumns","childrenArray","flattenColumns","flatten","_column$props","childColumns","childColumn","groupCellProps","ReactIs.isFragment","_column$props2","majorVersion","ReactDOM","flushSync","_ReactDOM$flushSync","useCellDescriptor","mouseAreaRef","tableRef","minScrollX","scrollX","tableWidth","showHeader","sortTypeProp","defaultSortType","rowHeight","onHeaderCellResize","_useControlled","setSortType","cacheData","setCacheData","clearCache","setColumnResizing","resizing","initialColumnWidths","columnWidths","_cursorDelta","addStyle","handleColumnResizeMove","mouseAreaLeft","dir","_addStyle","handleSortColumn","nextSortType","headerCells","bodyCells","_cacheCell","_getTotalByColumns","_initialColumnWidths$","_columnWidths$current","columnChildren","columnProps","_width","headerCell","cellWidthId","initialColumnWidth","currentWidth","cellWidth","isControlled","grewWidth","cellProps","headerCellProps","cacheCell","useIntersectionObserver","isVisible","setIsVisible","observer","entries","entry","element","useTableDimension","data","headerWrapperRef","widthProp","affixHeader","affixHorizontalScrollbar","heightProp","autoHeight","minHeight","fillHeight","bordered","onTableResizeChange","onTableScroll","contentHeight","contentWidth","minScrollY","scrollY","tableHeight","columnCount","resizeObserver","containerResizeObserver","headerOffset","tableOffset","getRowHeight","calculateTableContextHeight","_table$querySelectorA","prevContentHeight","table","virtualized","nextContentHeight","row","getHeight","hasHorizontalScrollbar","tableBodyHeight","currentScrollTop","maxScrollTop","setOffsetByAffix","headerNode","getOffset","calculateTableContentWidth","prevWidth","prevColumnCount","nextContentWidth","getWidth","scrollbarWidth","minScrollWidth","calculateTableWidth","calculateTableHeight","prevHeight","_tableRef$current","ResizeObserver","changeTableWidthWhenResize","debounce","widthWithBorder","_resizeObserver$curre","_containerResizeObser","setScrollY","setScrollX","getTableHeight","defer","useTableRows","tableRowsMaxHeight","setTableRowsMaxHeight","tableRows","bindTableRowsRef","calculateRowMaxHeight","nextTableRowsMaxHeight","curTableRows","_curTableRows$i","cellArray","maxHeight","isEmpty","useAffix","scrollbarXRef","affixHeaderWrapperRef","scrollListener","handleAffixHorizontalScrollbar","_tableOffset$current","_scrollbarXRef$curren","windowHeight","bottom","offsetTop","fixedScrollbar","removeStyle","handleAffixTableHeader","_headerOffset$current","top","fixedHeader","handleWindowScroll","on","_scrollListener$curre","isSupportTouchEvent","momentumTimeThreshold","momentumYThreshold","arrowKeysList","momentum","duration","deceleration","distance","speed","destination","useScrollListener","tableBodyRef","scrollbarYRef","disabledScroll","loading","forceUpdatePosition","deferUpdatePosition","onScroll","onTouchMove","onTouchStart","onTouchEnd","wheelListener","touchStartListener","touchMoveListener","touchEndListener","isScrolling","setScrolling","touchX","touchY","disableEventsTimeoutId","isTouching","momentumStartTime","momentumStartY","shouldHandleWheelX","delta","shouldHandleWheelY","debounceScrollEndedCallback","handleWheel","deltaY","momentumOptions","nextScrollX","nextScrollY","onWheel","_scrollbarXRef$curren2","_scrollbarYRef$curren","_scrollbarYRef$curren2","wheelHandler","stopScroll","_tableBodyRef$current","_scrollbarYRef$curren3","wheelElement","handleElement","transitionCSS","matrix","offsetY","handleTouchStart","_event$touches$","pageX","pageY","handleTouchMove","_event$touches$2","_event$preventDefault","now","handleTouchEnd","touchDuration","absDeltaY","_momentum","bezier","onScrollBody","scrollLeft","scrollTop","getControlledScrollTopValue","rerender","getControlledScrollLeftValue","onScrollTop","_scrollbarYRef$curren4","_scrollbarYRef$curren5","_getControlledScrollT","handleScrollY","onScrollLeft","_scrollbarXRef$curren3","_scrollbarXRef$curren4","_getControlledScrollL","scrollbarX","onScrollTo","coord","releaseListeners","_wheelListener$curren","_touchStartListener$c","_touchMoveListener$cu","_touchEndListener$cur","options","tableBody","WheelHandler","onScrollByKeydown","step","_scrollbarXRef$curren5","_scrollbarXRef$curren6","onScrollHorizontal","onScrollVertical","usePosition","wheelWrapperRef","tableHeaderRef","shouldFixedColumn","getScrollCellGroups","getFixedLeftCellGroups","_tableRef$current2","getFixedRightCellGroups","_tableRef$current3","updateWheelElementPosition","fixedCell","wheelStyle","updatePositionByFixedCell","wheelGroupStyle","scrollGroups","fixedLeftGroups","fixedRightGroups","scrollArrayGroups","group","leftShadowClassName","rightShadowClassName","showLeftShadow","showRightShadow","updatePosition","nextDuration","nextBezier","_affixHeaderElement$h","headerStyle","headerElement","affixHeaderElement","verticalAlignMap","alignMap","verticalAlignToAlignItems","alignToJustifyContent","Row","isHeaderRow","rowRef","CellGroup","_withClassPrefix","Scrollbar","_barRef$current","_styles","_props$length","length","_props$scrollLength","scrollLength","vertical","tableId","onMouseDown","handlePressed","setHandlePressed","_useState2","barOffset","setBarOffset","scrollOffset","scrollRange","barRef","handleRef","valuenow","releaseMouseMoves","updateScrollBarPosition","useImperativeHandle","nextDelta","forceDelta","max","getSafeValue","handleScroll","scrollDelta","_handleRef$current","offset","handleWidth","handleDragMove","_window","_window$event","handleDragEnd","handleMouseDown","MouseArea","spanStyles","Loader","loadAnimation","locale","renderLoading","loadingElement","EmptyMessage","renderEmpty","emptyMessage","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","len","arr2","flattenChildren","_iterator","_step","child","ReactIS.isFragment","_childEl$props","childEl","_excluded2","_excluded3","filterTreeData","_expanded","DATA_PLACEHOLDER","getChildrenProps","Table","getChildren","_props$data","dataProp","_props$defaultSortTyp","expandedRowKeysProp","defaultExpandAllRows","defaultExpandedRowKeys","id","_props$hover","hover","cellBordered","_props$locale","_props$showHeader","_props$rowHeight","headerHeightProp","_props$minHeight","rtlProp","translate3d","rowClassName","_props$rowExpandedHei","rowExpandedHeight","_props$shouldUpdateSc","shouldUpdateScroll","renderRowProp","renderRowExpandedProp","onRowClick","onRowContextMenu","onExpandChange","useMemo","mergeCls","_useReducer","useReducer","forceUpdate","setExpandedRowKeys","setData","_useTableRows","_child$props","ReactIs.isElement","shouldRowSpanColumn","_child$props2","visibleRows","handleTableResizeChange","_prevSize","_useTableDimension","coords","_usePosition","_useScrollListener","_useCellDescriptor","allColumnsWidth","colCounts","rowWidth","hasVerticalScrollbar","renderRowExpanded","renderRow","shouldRenderExpandedRow","restRowProps","rowStyles","rowRight","rowNode","fixedLeftCells","fixedRightCells","scrollCells","fixedLeftCellGroupWidth","fixedRightCellGroupWidth","_cell$props","isFixedStart","isFixedEnd","renderTableHeader","rowProps","fixedStyle","key","bindRowClick","bindRowContextMenu","treeRowKey","_rowIndex","open","nextExpandedRowKeys","rowSpanState","renderRowData","nextRowKey","_cell$props2","_cell$props2$rowSpan","_rowSpanState$current","_cell$props3","_rowSpanState$current2","dataCellHeight","_cellKey","removedCell","renderScrollbar","scrollbars","renderTableBody","_visibleRows$current","bodyHeight","bodyStyles","topHideHeight","bottomHideHeight","_top","minTop","startHeight","maxTop","isCustomRowHeight","isUncertainHeight","coveredHeight","_rowData","expandedRow","nextRowHeight","_nextRowHeight","startIndex","endIndex","coveredCount","_index","_rowData2","_rowProps","wheelStyles","topRowStyles","bottomRowStyles","contextValue"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]} |