{"version":3,"file":"rsuite-table-736f6b68.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/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 if (Array.isArray(className)) {\n return classNames(className.filter(function (name) {\n return !!name;\n }).map(function (name) {\n return pre + \"-\" + name;\n }));\n }\n\n // TODO Compatible with V4\n if (pre[pre.length - 1] === '-') {\n return \"\" + pre + className;\n }\n return pre + \"-\" + className;\n}\nexport default curry(prefix);","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 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';\nfunction getTotalByColumns(columns) {\n var totalFlexGrow = 0;\n var totalWidth = 0;\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 totalFlexGrow += flexGrow || 0;\n totalWidth += flexGrow ? 0 : width;\n } else if (Array.isArray(column)) {\n count(column);\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 totalFlexGrow = flexGrow || 0;\n totalWidth = flexGrow ? 0 : width;\n }\n return {\n totalFlexGrow: totalFlexGrow,\n totalWidth: totalWidth\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 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 var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n var classes = merge(className, withClassPrefix());\n var contentStyles = _extends({}, convertToFlex({\n verticalAlign: verticalAlign,\n align: align\n }), styles);\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;\n\n// transition-duration (ms)\nexport var TRANSITION_DURATION = 1000;\n// transition-timing-function (ease-out)\nexport var BEZIER = 'cubic-bezier(0, 0, .58, 1)';\n\n// An attribute value added to the data row to identify whether it is expanded, used in Tree.\nexport var EXPANDED_KEY = Symbol('expanded');\n\n// An attribute value added for the data row, identifying the key of the parent node, used in Tree.\nexport var PARENT_KEY = Symbol('parent');\n\n// 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.\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 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 var _useContext = useContext(TableContext),\n rtl = _useContext.rtl;\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\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 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 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 (_mouseMoveTracker$cur3 = mouseMoveTracker.current) === null || _mouseMoveTracker$cur3 === void 0 ? void 0 : _mouseMoveTracker$cur3.releaseMouseMoves();\n mouseMoveTracker.current = null;\n };\n }, []);\n if (columnFixed === 'right') {\n return null;\n }\n var styles = _extends((_extends2 = {}, _extends2[rtl ? 'right' : 'left'] = columnWidth.current + columnLeft - 2, _extends2.height = height, _extends2), style);\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// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_props) {\n return /*#__PURE__*/React.createElement(React.Fragment, null);\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 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 var _React$useContext = React.useContext(TableContext),\n rtl = _React$useContext.rtl,\n hasCustomTreeCol = _React$useContext.hasCustomTreeCol,\n isTree = _React$useContext.isTree;\n var isTreeCol = treeCol || !hasCustomTreeCol && firstColumn && isTree;\n var cellHeight = typeof height === 'function' ? rowData ? height(rowData) : ROW_HEIGHT : height;\n if (isTreeCol && !isHeaderCell && !rowData) {\n throw new Error('[Table.Cell]: `rowData` is required for tree column');\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 var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\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 var styles = _extends({}, predefinedStyle, (_extends2 = {}, _extends2[fullText ? 'minWidth' : 'width'] = width, _extends2.height = nextHeight, _extends2.zIndex = depth, _extends2[rtl ? 'right' : 'left'] = left, _extends2));\n var paddingKey = rtl ? 'paddingRight' : 'paddingLeft';\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 if (wordWrap) {\n contentStyles.wordBreak = typeof wordWrap === 'boolean' ? 'break-all' : wordWrap;\n contentStyles.overflowWrap = wordWrap === 'break-word' ? wordWrap : undefined;\n }\n var cellContent = null;\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 var renderTreeNodeExpandIcon = function renderTreeNodeExpandIcon() {\n var ExpandIconComponent = expanded ? ArrowDown : ArrowRight;\n var expandButton = /*#__PURE__*/React.createElement(ExpandIconComponent, {\n className: prefix('expand-icon')\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 return null;\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 if (removed) {\n return null;\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 var _useState = useState(isNil(flexGrow) ? width : 0),\n columnWidth = _useState[0],\n setColumnWidth = _useState[1];\n useUpdateEffect(function () {\n setColumnWidth(isNil(flexGrow) ? width : 0);\n }, [flexGrow, width]);\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n var classes = merge(className, withClassPrefix({\n sortable: sortable\n }));\n var ariaSort;\n if (sortColumn === dataKey) {\n ariaSort = 'other';\n if (sortType === 'asc') {\n ariaSort = 'ascending';\n } else if (sortType === 'desc') {\n ariaSort = 'descending';\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 var renderSortColumn = function renderSortColumn() {\n if (sortable && !groupHeader) {\n var _classNames;\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 return null;\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';\nfunction cloneCell(Cell, props) {\n return /*#__PURE__*/React.cloneElement(Cell, props);\n}\nfunction mergeCells(cells) {\n var nextCells = [];\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 = [];\n\n // Add grouping to column headers.\n if (groupCount && isHeaderCell) {\n var nextWidth = width;\n var left = 0;\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 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 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 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\n var _nextWidth = width;\n for (var _j = 0; _j < colSpan; _j += 1) {\n var _nextCell = cells[i + _j];\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 if (rowData && isNil(cellText) || _isHeaderCell && isNil(_children)) {\n _nextWidth += colSpanWidth;\n cells[i + _j] = cloneCell(_nextCell, {\n removed: true\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 nextCells.push(cells[i]);\n }\n return nextCells;\n}\nexport default mergeCells;","'use client';\nimport addClass from 'dom-lib/addClass';\nimport removeClass from 'dom-lib/removeClass';\nvar toggleClass = function toggleClass(node, className, condition) {\n if (condition) {\n addClass(node, className);\n } else {\n removeClass(node, className);\n }\n};\nexport default (function (node, className, condition) {\n if (!node) {\n return;\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 toggleClass(node, className, condition);\n});","'use client';\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { PARENT_KEY } from '../constants';\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 // Create a new flattened node with parent association\n var flattened = _extends({}, node, (_extends2 = {}, _extends2[PARENT_KEY] = parent, _extends2));\n\n // Add the flattened node and its flattened children (if any) to the result array\n acc.push.apply(acc, [flattened].concat(node.children ? flattenData(node.children, flattened) : []));\n return acc;\n }, []);\n}\nexport default flattenData;","'use client';\nexport default function findRowKeys(rows, rowKey, expanded) {\n var keys = [];\n if (!rowKey) {\n return keys;\n }\n for (var i = 0; i < rows.length; i++) {\n var item = rows[i];\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 return keys;\n}","'use client';\nimport { PARENT_KEY } from '../constants';\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];\n\n // Iterate up through the parent chain and add each parent to the result array\n while (current) {\n parents.push(current[rowKey]);\n current = current[PARENT_KEY];\n }\n return parents;\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 if (parentKeys === void 0) {\n parentKeys = [];\n }\n for (var i = 0; i < ((_parentKeys = parentKeys) === null || _parentKeys === void 0 ? void 0 : _parentKeys.length); i++) {\n var _parentKeys, _expandedRowKeys;\n if (((_expandedRowKeys = expandedRowKeys) === null || _expandedRowKeys === void 0 ? void 0 : _expandedRowKeys.indexOf(parentKeys[i])) === -1) {\n return false;\n }\n }\n return true;\n}","'use client';\nimport React from 'react';\n\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 */\nexport default function resetLeftForCells(cells, extraWidth) {\n var left = 0;\n var nextCells = [];\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 return nextCells;\n}","'use client';\nexport default function isNumberOrTrue(value) {\n if (typeof value === 'undefined') {\n return false;\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};\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/**\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 */\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start;\n // wait for end of processing current event handler, because event handler may be long\n Promise.resolve().then(function () {\n start = Date.now();\n });\n var frame = {};\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 frame = {\n id: requestAnimationFramePolyfill(timeout)\n };\n return frame;\n};","'use client';\nimport { useEffect, useRef } from 'react';\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 effect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\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';\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 effect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\nexport default useUpdateLayoutEffect;","'use client';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar useMount = function useMount(effect) {\n useIsomorphicLayoutEffect(effect, []);\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// This is the only way I found to break circular references between ClassArray and ClassValue\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\n\n//eslint-disable-line @typescript-eslint/no-empty-interface\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 var componentName = controlled ? str : addPrefix(contextClassPrefix, str);\n\n /**\n * @example\n *\n * if str = 'button':\n * prefix('red', { active: true }) => 'rs-button-red rs-button-active'\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 /**\n * @example\n *\n * if str = 'button':\n * withClassPrefix('red', { active: true }) => 'rs-button rs-button-red rs-button-active'\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 var mergeClasses = prefix(classes);\n return mergeClasses ? componentName + \" \" + mergeClasses : componentName;\n }, [componentName, prefix]);\n\n /**\n * @example\n * rootPrefix('btn') => 'rs-btn'\n * rootPrefix('btn', { active: true }) => 'rs-btn rs-active'\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 return {\n withClassPrefix: withClassPrefix,\n merge: classNames,\n prefix: prefix,\n rootPrefix: rootPrefix\n };\n}\nexport default useClassNames;","'use client';\nimport { useRef, useState, useCallback } from 'react';\n\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 */\nfunction useControlled(controlledValue, defaultValue) {\n var controlledRef = useRef(false);\n controlledRef.current = controlledValue !== undefined;\n var _useState = useState(defaultValue),\n uncontrolledValue = _useState[0],\n setUncontrolledValue = _useState[1];\n\n // If it is controlled, this directly returns the attribute value.\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}\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/**\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 */\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 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 /**\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 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 return /*#__PURE__*/React.cloneElement(childColumn, groupCellProps);\n });\n } else if (ReactIs.isFragment(column)) {\n var _column$props2;\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 }\n\n // If the column is not a group, we just return the column.\n return column;\n });\n\n // Flatten the array in Columns into a one-dimensional array, and calculate lastColumn and firstColumn.\n return flatten(flattenColumns).filter(Boolean);\n}\nexport default getTableColumns;","'use client';\nimport ReactDOM from 'react-dom';\nvar majorVersion = parseInt(ReactDOM.version);\n\n/**\n * Force React to flush any updates inside the provided callback synchronously.\n * This ensures that the DOM is updated immediately.\n */\nvar flushSync = function flushSync(callback) {\n if (majorVersion >= 18) {\n var _ReactDOM$flushSync;\n (_ReactDOM$flushSync = ReactDOM.flushSync) === null || _ReactDOM$flushSync === void 0 ? void 0 : _ReactDOM$flushSync.call(ReactDOM, callback);\n return;\n }\n callback();\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 * 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 var _useControlled = useControlled(sortTypeProp, defaultSortType),\n sortType = _useControlled[0],\n setSortType = _useControlled[1];\n var _useState = useState(),\n cacheData = _useState[0],\n setCacheData = _useState[1];\n var clearCache = useCallback(function () {\n setCacheData(null);\n }, []);\n var setColumnResizing = useCallback(function (resizing) {\n if (!tableRef.current) {\n return;\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 /**\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 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 if (mouseAreaRef.current) {\n addStyle(mouseAreaRef.current, {\n display: 'none'\n });\n }\n\n // fix: https://github.com/rsuite/rsuite-table/issues/398\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 if (rtl) {\n mouseAreaLeft += minScrollX.current + SCROLLBAR_WIDTH;\n dir = 'right';\n }\n if (!fixed) {\n x = mouseAreaLeft + (rtl ? -scrollX.current : scrollX.current);\n }\n if (mouseAreaRef.current) {\n var _addStyle;\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 if (sortColumn === dataKey) {\n nextSortType = sortType === SORT_TYPE.ASC ? SORT_TYPE.DESC : SORT_TYPE.ASC;\n setSortType(nextSortType);\n }\n onSortColumn === null || onSortColumn === void 0 ? void 0 : onSortColumn(dataKey, nextSortType);\n }, [onSortColumn, setSortType, sortColumn, sortType]);\n if (cacheData) {\n return cacheData;\n }\n var hasCustomTreeCol = false;\n var left = 0; // Cell left margin\n var headerCells = []; // Table header cell\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 var columns = getTableColumns(children);\n var count = columns.length;\n var _getTotalByColumns = getTotalByColumns(columns),\n totalFlexGrow = _getTotalByColumns.totalFlexGrow,\n totalWidth = _getTotalByColumns.totalWidth;\n React.Children.forEach(columns, function (column, index) {\n if ( /*#__PURE__*/React.isValidElement(column)) {\n var _initialColumnWidths$, _columnWidths$current;\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 if (treeCol) {\n hasCustomTreeCol = true;\n }\n if (columnChildren.length !== 2) {\n throw new Error(\"Component and is required, column index: \" + index + \" \");\n }\n var headerCell = columnChildren[0];\n var cell = columnChildren[1];\n var cellWidthId = cell.props.dataKey + \"_\" + index + \"_width\";\n\n // get column width from cache.\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 /**\n * in resizable mode,\n * if width !== initialColumnWidth, use current column width and update cache.\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 if (currentWidth) {\n columnWidths.current[cellWidthId] = _width;\n // update cellWidth\n cellWidth = _width;\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 cellWidth = resizable ? currentWidth || grewWidth : grewWidth;\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 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 if (resizable) {\n merge(headerCellProps, {\n onResize: onResize,\n onColumnResizeEnd: handleColumnResizeEnd,\n onColumnResizeStart: handleColumnResizeStart,\n onColumnResizeMove: handleColumnResizeMove\n });\n }\n headerCells.push( /*#__PURE__*/React.cloneElement(headerCell, _extends({}, cellProps, headerCellProps)));\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};\nexport default useCellDescriptor;","'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 isNumberOrTrue from './isNumberOrTrue';\nimport debounce from 'lodash/debounce';\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 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;\n\n // After setting the affixHeader property, the height of the two headers should be subtracted.\n contentHeight.current = Math.round(nextContentHeight - (affixHeader ? headerHeight * 2 : headerHeight));\n\n // Whether to show the horizontal scroll bar\n var hasHorizontalScrollbar = contentWidth.current > tableWidth.current;\n\n // The height of the table content area should be added to the height occupied by the horizontal scroll bar when autoHeight is set.\n if (autoHeight && hasHorizontalScrollbar) {\n contentHeight.current += SCROLLBAR_WIDTH;\n }\n var height = fillHeight ? tableHeight.current : heightProp;\n var tableBodyHeight = showHeader ? height - headerHeight : height;\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 }\n\n // If the height of the content area is less than the height of the table, the vertical scroll bar is reset.\n if (nextContentHeight < height) {\n onTableScroll === null || onTableScroll === void 0 ? void 0 : onTableScroll({\n y: 0\n });\n }\n var currentScrollTop = Math.abs(scrollY.current);\n\n // 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 var maxScrollTop = nextContentHeight + SCROLLBAR_WIDTH - tableBodyHeight;\n\n // If the top value of the current scroll is greater than the scrollable range,\n // keep the vertical scroll bar at the bottom.\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 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 if (isNumberOrTrue(affixHeader) && headerNode) {\n headerOffset.current = getOffset(headerNode);\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;\n\n // Whether to show the horizontal scroll bar\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;\n\n // 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 var minScrollWidth = -(nextContentWidth - tableWidth.current) - (autoHeight ? 0 : scrollbarWidth);\n if (minScrollX.current !== minScrollWidth) {\n minScrollX.current = minScrollWidth;\n if (scrollX.current < minScrollWidth) {\n // fix: 405#issuecomment-1464831646\n scrollX.current = minScrollWidth;\n }\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 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 if (tableRef !== null && tableRef !== void 0 && tableRef.current) {\n tableWidth.current = nextWidth || getWidth(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current);\n }\n if (prevWidth && prevWidth !== tableWidth.current) {\n scrollX.current = 0;\n onTableResizeChange === null || onTableResizeChange === void 0 ? void 0 : onTableResizeChange(prevWidth, 'widthChanged');\n }\n setOffsetByAffix();\n }, [onTableResizeChange, setOffsetByAffix, tableRef]);\n var calculateTableHeight = useCallback(function (nextHeight) {\n var prevHeight = tableHeight.current;\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 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 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;\n // bordered table width is 1px larger than the container width. fix: #405 #404\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 (_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 setScrollY = useCallback(function (value) {\n scrollY.current = value;\n }, []);\n var setScrollX = useCallback(function (value) {\n scrollX.current = value;\n }, []);\n var getTableHeight = function getTableHeight() {\n if (fillHeight) {\n return tableHeight.current;\n }\n if ((data === null || data === void 0 ? void 0 : data.length) === 0 && autoHeight) {\n return heightProp;\n }\n return autoHeight ? Math.max(headerHeight + contentHeight.current, minHeight) : heightProp;\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};\nexport default useTableDimension;","'use client';\nimport defer from 'lodash/defer';\n\n/**\n * Defer callbacks to wait for DOM rendering to complete.\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 * 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 var _useState = useState([]),\n tableRowsMaxHeight = _useState[0],\n setTableRowsMaxHeight = _useState[1];\n var tableRows = useRef({});\n var bindTableRowsRef = function bindTableRowsRef(index, rowData) {\n return function (ref) {\n if (ref) {\n tableRows.current[index] = [ref, rowData];\n }\n };\n };\n var calculateRowMaxHeight = useCallback(function () {\n if (wordWrap) {\n var nextTableRowsMaxHeight = [];\n var curTableRows = Object.values(tableRows.current);\n for (var i = 0; i < curTableRows.length; i++) {\n var _curTableRows$i = curTableRows[i],\n row = _curTableRows$i[0];\n if (row) {\n var cells = row.querySelectorAll(\".\" + prefix('cell-wrap')) || [];\n var cellArray = Array.from(cells);\n var maxHeight = 0;\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 nextTableRowsMaxHeight.push(maxHeight);\n }\n }\n\n // Can't perform a React state update on an unmounted component\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};\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';\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 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 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 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 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 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 if (isNumberOrTrue(affixHorizontalScrollbar)) {\n handleAffixHorizontalScrollbar();\n }\n }, [affixHeader, affixHorizontalScrollbar, handleAffixTableHeader, handleAffixHorizontalScrollbar]);\n\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 useUpdateEffect(handleWindowScroll, [getTableHeight]);\n useEffect(function () {\n if (isNumberOrTrue(affixHeader) || isNumberOrTrue(affixHorizontalScrollbar)) {\n scrollListener.current = on(window, 'scroll', handleWindowScroll);\n }\n return function () {\n var _scrollListener$curre;\n (_scrollListener$curre = scrollListener.current) === null || _scrollListener$curre === void 0 ? void 0 : _scrollListener$curre.off();\n };\n }, [affixHeader, affixHorizontalScrollbar, handleWindowScroll]);\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';\n\n// Inertial sliding start time threshold\nvar momentumTimeThreshold = 300;\n\n// Inertial sliding start vertical distance threshold\nvar momentumYThreshold = 15;\n\n//List of Arrow Keys for scrolling through keys\nvar arrowKeysList = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\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/**\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 */\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 var _useState = useState(false),\n isScrolling = _useState[0],\n setScrolling = _useState[1];\n var touchX = useRef(0);\n var touchY = useRef(0);\n var disableEventsTimeoutId = useRef(null);\n var isTouching = useRef(false);\n\n // The start time within the inertial sliding range.\n var momentumStartTime = useRef(0);\n\n // The vertical starting value within the inertial sliding range.\n var momentumStartY = useRef(0);\n var shouldHandleWheelX = useCallback(function (delta) {\n if (delta === 0 || disabledScroll || loading) {\n return false;\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 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;\n\n // 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 flushSync(function () {\n return setScrolling(false);\n });\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 var handleWheel = useCallback(function (deltaX, deltaY, momentumOptions, event) {\n if (!tableRef.current) {\n return;\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 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\n flushSync(function () {\n return setScrolling(true);\n });\n if (disableEventsTimeoutId.current) {\n cancelAnimationTimeout(disableEventsTimeoutId.current);\n }\n disableEventsTimeoutId.current = requestAnimationTimeout(debounceScrollEndedCallback,\n // When momentum is enabled, set a delay of 50ms rendering.\n momentumOptions !== null && momentumOptions !== void 0 && momentumOptions.duration ? 50 : 0);\n }\n\n // When the user clicks on the scrollbar, the scrollbar will be moved to the clicked position.\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 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 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();\n\n // Stop unending scrolling and remove transition\n var stopScroll = useCallback(function () {\n var _tableBodyRef$current, _scrollbarYRef$curren3;\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 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 if (wheelElement) {\n removeStyle(wheelElement, transitionCSS);\n }\n if (handleElement) {\n removeStyle(handleElement, transitionCSS);\n }\n }, [scrollbarYRef, setScrollY, tableBodyRef, virtualized]);\n\n // Handle the Touch event and initialize it when touchstart is triggered.\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);\n\n // Stop unfinished scrolling when Touch starts.\n stopScroll();\n }, [onTouchStart, scrollY, stopScroll]);\n\n // Handle the Touch event and update the scroll when touchmove is triggered.\n var handleTouchMove = useCallback(function (event) {\n if (!isTouching.current) {\n return;\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 if (!shouldHandleWheelY(deltaY) && !shouldHandleWheelX(deltaX)) {\n return;\n }\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 if (!autoHeight && shouldHandleWheelY(deltaY)) {\n var _event$preventDefault;\n (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);\n }\n var now = new Date().getTime();\n onWheel(deltaX, deltaY);\n touchX.current = pageX;\n touchY.current = pageY;\n\n // Record the offset value and time under the condition of triggering inertial scrolling.\n if (now - momentumStartTime.current > momentumTimeThreshold) {\n momentumStartY.current = scrollY.current;\n momentumStartTime.current = now;\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 isTouching.current = false;\n var touchDuration = new Date().getTime() - momentumStartTime.current;\n var absDeltaY = Math.abs(scrollY.current - momentumStartY.current);\n\n // Enable inertial sliding.\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 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 /**\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 var onScrollBody = useCallback(function (event) {\n if (event.target !== tableBodyRef.current) {\n return;\n }\n var left = scrollLeft(event.target);\n var top = scrollTop(event.target);\n if (top === 0 && left === 0) {\n return;\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 var height = getTableHeight();\n\n // The maximum range of scrolling value is judged.\n value = Math.min(value, Math.max(0, contentHeight.current - (height - headerHeight)));\n\n // 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 return [-value, value / contentHeight.current * (height - headerHeight)];\n }, [autoHeight, contentHeight, getTableHeight, headerHeight]);\n var rerender = function rerender() {\n setScrolling(true);\n defer(function () {\n if (tableBodyRef.current) {\n setScrolling(false);\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 var onScrollTop = function onScrollTop(top) {\n var _scrollbarYRef$curren4, _scrollbarYRef$curren5;\n if (top === void 0) {\n top = 0;\n }\n var _getControlledScrollT = getControlledScrollTopValue(top),\n nextScrollY = _getControlledScrollT[0],\n handleScrollY = _getControlledScrollT[1];\n var height = getTableHeight();\n if (!loading && nextScrollY !== scrollY.current) {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(Math.abs(scrollX.current), Math.abs(nextScrollY));\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 /**\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 if (virtualized && contentHeight.current > height) {\n rerender();\n }\n };\n var onScrollLeft = function onScrollLeft(left) {\n var _scrollbarXRef$curren3, _scrollbarXRef$curren4;\n if (left === void 0) {\n left = 0;\n }\n var _getControlledScrollL = getControlledScrollLeftValue(left),\n nextScrollX = _getControlledScrollL[0],\n scrollbarX = _getControlledScrollL[1];\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 var onScrollTo = function onScrollTo(coord) {\n var _ref = coord || {},\n x = _ref.x,\n y = _ref.y;\n if (typeof x === 'number') {\n onScrollLeft(x);\n }\n if (typeof y === 'number') {\n onScrollTop(y);\n }\n };\n useUpdateEffect(function () {\n if (scrollY.current !== 0) {\n onScrollTop(Math.abs(scrollY.current));\n }\n\n // fix: #405 #404\n deferUpdatePosition();\n }, [height, data]);\n var releaseListeners = useCallback(function () {\n var _wheelListener$curren, _touchStartListener$c, _touchMoveListener$cu, _touchEndListener$cur;\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 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 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 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 switch (event.key) {\n case 'ArrowUp':\n onWheel(0, -step);\n break;\n case 'ArrowDown':\n onWheel(0, step);\n break;\n case 'ArrowLeft':\n onWheel(-step, 0);\n break;\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 // 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};\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 * 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 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 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 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 for (var i = 0; i < scrollArrayGroups.length; i++) {\n var group = scrollArrayGroups[i];\n addStyle(group, wheelGroupStyle);\n }\n updateWheelElementPosition(true);\n\n // Whether to show the horizontal scroll bar\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 /**\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 var updatePosition = useCallback(function (nextDuration, nextBezier) {\n if (nextDuration) {\n duration.current = nextDuration;\n }\n if (nextBezier) {\n bezier.current = nextBezier;\n }\n\n // When there are fixed columns.\n if (shouldFixedColumn) {\n updatePositionByFixedCell();\n } else {\n var _affixHeaderElement$h;\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 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 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};\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};\n\n// Convert verticalAlign to alignItems.\nexport function verticalAlignToAlignItems(verticalAlign) {\n return verticalAlignMap[verticalAlign] || verticalAlign;\n}\n\n// Convert align to justifyContent.\nexport function alignToJustifyContent(align) {\n return alignMap[align] || align;\n}\n\n// Convert verticalAlign and align to flex styles.\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 var _useContext = useContext(TableContext),\n translateDOMPositionXY = _useContext.translateDOMPositionXY;\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n var classes = merge(className, withClassPrefix({\n header: isHeaderRow,\n rowspan: rowSpan\n }));\n var styles = _extends({\n minWidth: width,\n height: isHeaderRow ? headerHeight : height\n }, style);\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 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 var _useContext = useContext(TableContext),\n translateDOMPositionXY = _useContext.translateDOMPositionXY;\n var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n var classes = merge(className, withClassPrefix((_withClassPrefix = {}, _withClassPrefix[\"fixed-\" + fixed] = fixed, _withClassPrefix.scroll = !fixed, _withClassPrefix)));\n var styles = _extends({\n width: width,\n height: height\n }, style);\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 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 var _React$useContext = React.useContext(TableContext),\n translateDOMPositionXY = _React$useContext.translateDOMPositionXY;\n var _useState = useState(false),\n handlePressed = _useState[0],\n setHandlePressed = _useState[1];\n var _useState2 = useState({\n top: 0,\n left: 0\n }),\n barOffset = _useState2[0],\n setBarOffset = _useState2[1];\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 var _useClassNames = useClassNames(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n var classes = merge(className, withClassPrefix({\n vertical: vertical,\n horizontal: !vertical,\n pressed: handlePressed\n }),\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 scrollRange.current = scrollLength;\n }, [scrollLength]);\n useImperativeHandle(ref, function () {\n return {\n get root() {\n return barRef.current;\n },\n get handle() {\n return handleRef.current;\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 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 var getSafeValue = function getSafeValue(value) {\n if (value === void 0) {\n value = 0;\n }\n return Math.min(Math.max(value, 0), max);\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 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 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 if (handleRef.current && (_handleRef$current = handleRef.current) !== null && _handleRef$current !== void 0 && _handleRef$current.contains(event.target)) {\n return;\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 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 (_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 if (!mouseMoveTracker.current || !mouseMoveTracker.current.isDragging()) {\n return;\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 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 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)));\n\n // Custom render a loader\n if (typeof renderLoading === 'function') {\n return loading ? renderLoading(loadingElement) : null;\n }\n\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 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 if (loading) {\n return null;\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.\"); }\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); }\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; }\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 for (var _iterator = _createForOfIteratorHelperLoose(React.Children.toArray(children)), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n if (ReactIS.isFragment(child)) {\n var _childEl$props;\n var childEl = child;\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 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 */\nvar filterTreeData = function filterTreeData(data, expandedRowKeys, rowKey) {\n return flattenData(data).filter(function (rowData) {\n if (rowKey) {\n var parents = findAllParents(rowData, rowKey);\n var _expanded = shouldShowRowByExpanded(expandedRowKeys, parents);\n\n // FIXME This function is supposed to be pure.\n // Don't mutate rowData in-place!\n rowData[EXPANDED_KEY] = _expanded;\n rowData[TREE_DEPTH] = parents.length;\n return _expanded;\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 var children = useMemo(function () {\n return flattenChildren(isFunction(getChildren) ? getChildren(getChildrenProps) : getChildren);\n }, [getChildren]);\n var _useClassNames = useClassNames(classPrefix, typeof classPrefix !== 'undefined'),\n withClassPrefix = _useClassNames.withClassPrefix,\n mergeCls = _useClassNames.merge,\n prefix = _useClassNames.prefix;\n\n // Use `forceUpdate` to force the component to re-render after manipulating the DOM.\n var _useReducer = useReducer(function (x) {\n return x + 1;\n }, 0),\n forceUpdate = _useReducer[1];\n var _useControlled = useControlled(expandedRowKeysProp, defaultExpandAllRows ? findRowKeys(dataProp, rowKey, isFunction(renderRowExpandedProp)) : defaultExpandedRowKeys || []),\n expandedRowKeys = _useControlled[0],\n setExpandedRowKeys = _useControlled[1];\n var _useState = useState(function () {\n return isTree ? filterTreeData(dataProp, expandedRowKeys, rowKey) : dataProp;\n }),\n data = _useState[0],\n setData = _useState[1];\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 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 var headerHeight = showHeader ? headerHeightProp : 0;\n var rtl = rtlProp || isRTL();\n var getRowHeight = function getRowHeight() {\n return typeof rowHeight === 'function' ? rowHeight() : rowHeight;\n };\n var translateDOMPositionXY = useRef(getTranslateDOMPositionXY({\n forceUseTransform: true,\n enable3DTransform: translate3d\n }));\n\n // Check for the existence of fixed columns in all column properties.\n var shouldFixedColumn = children.some(function (child) {\n var _child$props;\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 });\n\n // Check all column properties for the existence of rowSpan.\n var shouldRowSpanColumn = children.some(function (child) {\n var _child$props2;\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 var handleTableResizeChange = function handleTableResizeChange(_prevSize, event) {\n forceUpdate();\n\n /**\n * Reset the position of the scroll bar after the table size changes.\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 if (event === 'bodyWidthChanged') {\n deferUpdatePosition();\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 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 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 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 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 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 get body() {\n return wheelWrapperRef.current;\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 scrollTop: onScrollTop,\n scrollLeft: onScrollLeft\n };\n });\n var rowWidth = allColumnsWidth > tableWidth.current ? allColumnsWidth : tableWidth.current;\n\n // Whether to show vertical scroll bar\n var hasVerticalScrollbar = !autoHeight && contentHeight.current > getTableHeight() - headerHeight;\n\n // Whether to show the horizontal scroll bar\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 var styles = _extends({\n width: widthProp || 'auto',\n height: getTableHeight()\n }, style);\n var renderRowExpanded = useCallback(function (rowData) {\n var height = 0;\n if (typeof rowExpandedHeight === 'function') {\n height = rowExpandedHeight(rowData);\n } else {\n height = rowExpandedHeight;\n }\n var styles = {\n height: height\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 return null;\n }, [prefix, renderRowExpandedProp, rowExpandedHeight]);\n var renderRow = function renderRow(props, cells, shouldRenderExpandedRow, rowData) {\n var depth = props.depth,\n rowIndex = props.rowIndex,\n restRowProps = _objectWithoutPropertiesLoose(props, _excluded2);\n if (typeof rowClassName === 'function') {\n restRowProps.className = rowClassName(rowData, rowIndex);\n } else {\n restRowProps.className = rowClassName;\n }\n var rowStyles = _extends({}, props === null || props === void 0 ? void 0 : props.style);\n var rowRight = 0;\n if (rtl && contentWidth.current > tableWidth.current) {\n rowRight = tableWidth.current - contentWidth.current;\n rowStyles.right = rowRight;\n }\n var rowNode = null;\n\n // IF there are fixed columns, add a fixed group\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 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 if (rtl) {\n isFixedStart = fixed === 'right';\n isFixedEnd = fixed === 'left' || fixed === true;\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 if (hasVerticalScrollbar && fixedRightCellGroupWidth) {\n fixedRightCellGroupWidth += SCROLLBAR_WIDTH;\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 return /*#__PURE__*/React.createElement(Row, _extends({}, restRowProps, {\n \"data-depth\": depth,\n style: rowStyles\n }), renderRowProp ? renderRowProp(rowNode, rowData) : rowNode);\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 };\n\n // Affix header\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 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 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 for (var i = 0; i < expandedRowKeys.length; i++) {\n var key = expandedRowKeys[i];\n if (key === treeRowKey) {\n open = true;\n } else {\n nextExpandedRowKeys.push(key);\n }\n }\n if (!open) {\n nextExpandedRowKeys.push(treeRowKey);\n }\n setExpandedRowKeys(nextExpandedRowKeys);\n onExpandChange === null || onExpandChange === void 0 ? void 0 : onExpandChange(!open, rowData);\n }, [expandedRowKeys, onExpandChange, setExpandedRowKeys]);\n\n /**\n * Records the status of merged rows.\n * { cellKey: [count,index]}\n */\n var rowSpanState = useRef({});\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 var cellHeight = props.cellHeight,\n restRowProps = _objectWithoutPropertiesLoose(props, _excluded3);\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 var expanded = expandedRowKeys.some(function (key) {\n return rowKey && key === rowData[rowKey];\n });\n var cells = [];\n for (var i = 0; i < bodyCells.length; i++) {\n var _cell$props2, _cell$props2$rowSpan, _cell$props3, _rowSpanState$current, _cell$props4, _rowSpanState$current2;\n var cell = bodyCells[i];\n var rowSpan = (_cell$props2 = cell.props) === null || _cell$props2 === void 0 ? void 0 : (_cell$props2$rowSpan = (_cell$props3 = _cell$props2).rowSpan) === null || _cell$props2$rowSpan === void 0 ? void 0 : _cell$props2$rowSpan.call(_cell$props3, rowData);\n var dataCellHeight = rowSpan ? rowSpan * (cellHeight || ROW_HEIGHT) : cellHeight;\n var _cellKey = cell.props.dataKey || i;\n\n // Record the cell state of the merged row\n if (((_rowSpanState$current = rowSpanState.current[_cellKey]) === null || _rowSpanState$current === void 0 ? void 0 : _rowSpanState$current[1]) > 0) {\n rowSpanState.current[_cellKey][1] -= 1;\n\n // Restart counting when merged to the last cell.\n if (rowSpanState.current[_cellKey][1] === 0) {\n rowSpanState.current[_cellKey][0] = 0;\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 }\n\n // Cells marked as deleted when checking for merged cell.\n var removedCell = (_cell$props4 = cell.props) !== null && _cell$props4 !== void 0 && _cell$props4.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 return renderRow(rowProps, cells, shouldRenderExpandedRow, rowData);\n };\n var renderScrollbar = function renderScrollbar() {\n var height = getTableHeight();\n if (disabledScroll) {\n return null;\n }\n var scrollbars = [];\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 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 return scrollbars;\n };\n var renderTableBody = function renderTableBody(bodyCells, rowWidth) {\n var _visibleRows$current;\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 if (data) {\n var _top = 0; // Row position\n var minTop = Math.abs(scrollY.current);\n var startHeight = 0;\n if (typeof rowExpandedHeight === 'function') {\n startHeight = data.length ? rowExpandedHeight(data[0]) : 100;\n } else {\n startHeight = rowExpandedHeight;\n }\n var maxTop = minTop + height + startHeight;\n var isCustomRowHeight = typeof rowHeight === 'function';\n var isUncertainHeight = !!renderRowExpandedProp || isCustomRowHeight || wordWrap;\n\n // 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 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 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 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 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 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 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 visibleRows.current.push(renderRowData(bodyCells, _rowData, rowProps, expandedRow));\n }\n } else {\n /** virtualized */\n\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 var startIndex = Math.max(Math.floor(minTop / _nextRowHeight), 0);\n var endIndex = Math.min(startIndex + Math.ceil(bodyHeight / _nextRowHeight) + 5, data.length);\n\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 coveredCount = Math.floor(height / _nextRowHeight * 3);\n startIndex = Math.max(startIndex - coveredCount, 0);\n endIndex = Math.min(endIndex + coveredCount, data.length);\n }\n contentHeight = data.length * _nextRowHeight;\n topHideHeight = startIndex * _nextRowHeight;\n bottomHideHeight = (data.length - endIndex) * _nextRowHeight;\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 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 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'\n // 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","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","entries","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","_cell$props3","_rowSpanState$current","_cell$props4","_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]}