{"version":3,"file":"900fecf2d0f03876fddd196aa6a8bcb38d819a5c-4768e03a3e98c7563331.js","mappings":"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","sources":["webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack://gatsby-starter-default/./node_modules/antd/es/dropdown/dropdown-button.js","webpack://gatsby-starter-default/./node_modules/antd/es/dropdown/dropdown.js","webpack://gatsby-starter-default/./node_modules/antd/es/dropdown/index.js","webpack://gatsby-starter-default/./node_modules/antd/es/menu/MenuContext.js","webpack://gatsby-starter-default/./node_modules/antd/es/menu/SubMenu.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/BarsOutlined.js","webpack://gatsby-starter-default/./node_modules/antd/es/layout/layout.js","webpack://gatsby-starter-default/./node_modules/antd/es/layout/Sider.js","webpack://gatsby-starter-default/./node_modules/antd/es/_util/isNumeric.js","webpack://gatsby-starter-default/./node_modules/antd/es/menu/MenuItem.js","webpack://gatsby-starter-default/./node_modules/antd/es/menu/MenuDivider.js","webpack://gatsby-starter-default/./node_modules/antd/es/menu/index.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/sugar/ColumnGroup.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/sugar/Column.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/utils/valueUtil.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/context/StickyContext.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/context/HoverContext.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Cell/index.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/context/TableContext.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/utils/fixUtil.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Header/HeaderRow.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Header/Header.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/context/BodyContext.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Body/ExpandedRow.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/context/ResizeContext.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Body/MeasureCell.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Body/BodyRow.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/hooks/useFlattenRecords.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Body/index.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/utils/legacyUtil.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/hooks/useColumns.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/hooks/useFrame.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/hooks/useStickyOffsets.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/ColGroup.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Panel/index.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Footer/Row.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Footer/Summary.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Footer/Cell.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Footer/index.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/utils/expandUtil.js","webpack://gatsby-starter-default/./node_modules/rc-util/es/Dom/css.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/stickyScrollBar.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/hooks/useSticky.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/FixedHolder/index.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/Table.js","webpack://gatsby-starter-default/./node_modules/rc-table/es/index.js","webpack://gatsby-starter-default/./node_modules/antd/es/spin/index.js","webpack://gatsby-starter-default/./node_modules/rc-pagination/es/Pager.js","webpack://gatsby-starter-default/./node_modules/rc-pagination/es/KeyCode.js","webpack://gatsby-starter-default/./node_modules/rc-pagination/es/Options.js","webpack://gatsby-starter-default/./node_modules/rc-pagination/es/Pagination.js","webpack://gatsby-starter-default/./node_modules/rc-pagination/es/locale/zh_CN.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","webpack://gatsby-starter-default/./node_modules/antd/es/pagination/MiniSelect.js","webpack://gatsby-starter-default/./node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack://gatsby-starter-default/./node_modules/antd/es/pagination/Pagination.js","webpack://gatsby-starter-default/./node_modules/antd/es/pagination/index.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/usePagination.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/contextTypes.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/Indent.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/TreeNode.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/util.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/utils/treeUtil.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/utils/conductUtil.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useSelection.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/util.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useSorter.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/FilterFilled.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/HolderOutlined.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/MotionTreeNode.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/utils/diffUtil.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/NodeList.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/Tree.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/DropIndicator.js","webpack://gatsby-starter-default/./node_modules/rc-tree/es/index.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/FileOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/FolderOutlined.js","webpack://gatsby-starter-default/./node_modules/antd/es/tree/utils/dictUtil.js","webpack://gatsby-starter-default/./node_modules/antd/es/tree/DirectoryTree.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","webpack://gatsby-starter-default/./node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","webpack://gatsby-starter-default/./node_modules/antd/es/tree/utils/dropIndicator.js","webpack://gatsby-starter-default/./node_modules/antd/es/tree/Tree.js","webpack://gatsby-starter-default/./node_modules/antd/es/tree/utils/iconUtil.js","webpack://gatsby-starter-default/./node_modules/antd/es/tree/index.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","webpack://gatsby-starter-default/./node_modules/antd/es/_util/hooks/useSyncState.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useFilter/index.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useTitleColumns.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/ExpandIcon.js","webpack://gatsby-starter-default/./node_modules/antd/es/_util/getScroll.js","webpack://gatsby-starter-default/./node_modules/antd/es/_util/easings.js","webpack://gatsby-starter-default/./node_modules/antd/es/_util/scrollTo.js","webpack://gatsby-starter-default/./node_modules/antd/es/locale/en_US.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/Column.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/ColumnGroup.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/Table.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/hooks/useLazyKVMap.js","webpack://gatsby-starter-default/./node_modules/antd/es/table/index.js","webpack://gatsby-starter-default/./node_modules/rc-util/es/Dom/styleChecker.js","webpack://gatsby-starter-default/./node_modules/lodash/_baseTrim.js","webpack://gatsby-starter-default/./node_modules/lodash/_trimmedEndIndex.js","webpack://gatsby-starter-default/./node_modules/lodash/debounce.js","webpack://gatsby-starter-default/./node_modules/lodash/isSymbol.js","webpack://gatsby-starter-default/./node_modules/lodash/now.js","webpack://gatsby-starter-default/./node_modules/lodash/toNumber.js"],"sourcesContent":["// This icon file is generated automatically.\nvar LeftOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\"\n }\n }]\n },\n \"name\": \"left\",\n \"theme\": \"outlined\"\n};\nexport default LeftOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\n\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\"\n }\n }]\n },\n \"name\": \"right\",\n \"theme\": \"outlined\"\n};\nexport default RightOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\n\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport Dropdown from './dropdown';\nvar ButtonGroup = Button.Group;\n\nvar DropdownButton = function DropdownButton(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n disabled = props.disabled,\n onClick = props.onClick,\n htmlType = props.htmlType,\n children = props.children,\n className = props.className,\n overlay = props.overlay,\n trigger = props.trigger,\n align = props.align,\n visible = props.visible,\n onVisibleChange = props.onVisibleChange,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n href = props.href,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$icon,\n title = props.title,\n _props$buttonsRender = props.buttonsRender,\n buttonsRender = _props$buttonsRender === void 0 ? function (buttons) {\n return buttons;\n } : _props$buttonsRender,\n mouseEnterDelay = props.mouseEnterDelay,\n mouseLeaveDelay = props.mouseLeaveDelay,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"disabled\", \"onClick\", \"htmlType\", \"children\", \"className\", \"overlay\", \"trigger\", \"align\", \"visible\", \"onVisibleChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\"]);\n\n var prefixCls = getPrefixCls('dropdown-button', customizePrefixCls);\n var dropdownProps = {\n align: align,\n overlay: overlay,\n disabled: disabled,\n trigger: disabled ? [] : trigger,\n onVisibleChange: onVisibleChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayClassName: overlayClassName,\n overlayStyle: overlayStyle\n };\n\n if ('visible' in props) {\n dropdownProps.visible = visible;\n }\n\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n\n var leftButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n disabled: disabled,\n onClick: onClick,\n htmlType: htmlType,\n href: href,\n title: title\n }, children);\n var rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n icon: icon\n });\n\n var _buttonsRender = buttonsRender([leftButton, rightButton]),\n _buttonsRender2 = _slicedToArray(_buttonsRender, 2),\n leftButtonToRender = _buttonsRender2[0],\n rightButtonToRender = _buttonsRender2[1];\n\n return /*#__PURE__*/React.createElement(ButtonGroup, _extends({}, restProps, {\n className: classNames(prefixCls, className)\n }), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, dropdownProps, rightButtonToRender));\n};\n\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport RcDropdown from 'rc-dropdown';\nimport classNames from 'classnames';\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport DropdownButton from './dropdown-button';\nimport { ConfigContext } from '../config-provider';\nimport devWarning from '../_util/devWarning';\nimport { tuple } from '../_util/type';\nimport { cloneElement } from '../_util/reactNode';\nvar Placements = tuple('topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight');\n\nvar Dropdown = function Dropdown(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var getTransitionName = function getTransitionName() {\n var rootPrefixCls = getPrefixCls();\n var _props$placement = props.placement,\n placement = _props$placement === void 0 ? '' : _props$placement,\n transitionName = props.transitionName;\n\n if (transitionName !== undefined) {\n return transitionName;\n }\n\n if (placement.indexOf('top') >= 0) {\n return \"\".concat(rootPrefixCls, \"-slide-down\");\n }\n\n return \"\".concat(rootPrefixCls, \"-slide-up\");\n };\n\n var renderOverlay = function renderOverlay(prefixCls) {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n var overlay = props.overlay;\n var overlayNode;\n\n if (typeof overlay === 'function') {\n overlayNode = overlay();\n } else {\n overlayNode = overlay;\n }\n\n overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n var overlayProps = overlayNode.props; // Warning if use other mode\n\n devWarning(!overlayProps.mode || overlayProps.mode === 'vertical', 'Dropdown', \"mode=\\\"\".concat(overlayProps.mode, \"\\\" is not supported for Dropdown's Menu.\")); // menu cannot be selectable in dropdown defaultly\n\n var _overlayProps$selecta = overlayProps.selectable,\n selectable = _overlayProps$selecta === void 0 ? false : _overlayProps$selecta,\n expandIcon = overlayProps.expandIcon;\n var overlayNodeExpandIcon = typeof expandIcon !== 'undefined' && /*#__PURE__*/React.isValidElement(expandIcon) ? expandIcon : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow\")\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow-icon\")\n }));\n var fixedModeOverlay = typeof overlayNode.type === 'string' ? overlayNode : cloneElement(overlayNode, {\n mode: 'vertical',\n selectable: selectable,\n expandIcon: overlayNodeExpandIcon\n });\n return fixedModeOverlay;\n };\n\n var getPlacement = function getPlacement() {\n var placement = props.placement;\n\n if (placement !== undefined) {\n return placement;\n }\n\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n\n var arrow = props.arrow,\n customizePrefixCls = props.prefixCls,\n children = props.children,\n trigger = props.trigger,\n disabled = props.disabled,\n getPopupContainer = props.getPopupContainer,\n overlayClassName = props.overlayClassName;\n var prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n var child = React.Children.only(children);\n var dropdownTrigger = cloneElement(child, {\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), child.props.className),\n disabled: disabled\n });\n var overlayClassNameCustomized = classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n var triggerActions = disabled ? [] : trigger;\n var alignPoint;\n\n if (triggerActions && triggerActions.indexOf('contextMenu') !== -1) {\n alignPoint = true;\n }\n\n return /*#__PURE__*/React.createElement(RcDropdown, _extends({\n arrow: arrow,\n alignPoint: alignPoint\n }, props, {\n overlayClassName: overlayClassNameCustomized,\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: getTransitionName(),\n trigger: triggerActions,\n overlay: function overlay() {\n return renderOverlay(prefixCls);\n },\n placement: getPlacement()\n }), dropdownTrigger);\n};\n\nDropdown.Button = DropdownButton;\nDropdown.defaultProps = {\n mouseEnterDelay: 0.15,\n mouseLeaveDelay: 0.1\n};\nexport default Dropdown;","import Dropdown from './dropdown';\nexport default Dropdown;","import { createContext } from 'react';\nvar MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport MenuContext from './MenuContext';\nimport { isValidElement, cloneElement } from '../_util/reactNode';\n\nfunction SubMenu(props) {\n var _a;\n\n var popupClassName = props.popupClassName,\n icon = props.icon,\n title = props.title;\n var context = React.useContext(MenuContext);\n var prefixCls = context.prefixCls,\n inlineCollapsed = context.inlineCollapsed,\n antdMenuTheme = context.antdMenuTheme;\n var parentPath = useFullPath();\n var titleNode;\n\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, title.charAt(0)) : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title);\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n var titleIsSpan = isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title));\n }\n\n var contextValue = React.useMemo(function () {\n return _extends(_extends({}, context), {\n firstLevel: false\n });\n }, [context]);\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, _extends({}, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(antdMenuTheme), popupClassName)\n })));\n}\n\nexport default SubMenu;","// This icon file is generated automatically.\nvar BarsOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"0 0 1024 1024\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\"\n }\n }]\n },\n \"name\": \"bars\",\n \"theme\": \"outlined\"\n};\nexport default BarsOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport BarsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BarsOutlined = function BarsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: BarsOutlinedSvg\n }));\n};\n\nBarsOutlined.displayName = 'BarsOutlined';\nexport default /*#__PURE__*/React.forwardRef(BarsOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nexport var LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: function addSider() {\n return null;\n },\n removeSider: function removeSider() {\n return null;\n }\n }\n});\n\nfunction generator(_ref) {\n var suffixCls = _ref.suffixCls,\n tagName = _ref.tagName,\n displayName = _ref.displayName;\n return function (BasicComponent) {\n var Adapter = function Adapter(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(suffixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(BasicComponent, _extends({\n prefixCls: prefixCls,\n tagName: tagName\n }, props));\n };\n\n Adapter.displayName = displayName;\n return Adapter;\n };\n}\n\nvar Basic = function Basic(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n tagName = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"tagName\"]);\n\n var classString = classNames(prefixCls, className);\n return /*#__PURE__*/React.createElement(tagName, _extends({\n className: classString\n }, others), children);\n};\n\nvar BasicLayout = function BasicLayout(props) {\n var _classNames;\n\n var _React$useContext2 = React.useContext(ConfigContext),\n direction = _React$useContext2.direction;\n\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n siders = _React$useState2[0],\n setSiders = _React$useState2[1];\n\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n hasSider = props.hasSider,\n Tag = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"hasSider\", \"tagName\"]);\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-sider\"), typeof hasSider === 'boolean' ? hasSider : siders.length > 0), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n var contextValue = React.useMemo(function () {\n return {\n siderHook: {\n addSider: function addSider(id) {\n setSiders(function (prev) {\n return [].concat(_toConsumableArray(prev), [id]);\n });\n },\n removeSider: function removeSider(id) {\n setSiders(function (prev) {\n return prev.filter(function (currentId) {\n return currentId !== id;\n });\n });\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, _extends({\n className: classString\n }, others), children));\n};\n\nvar Layout = generator({\n suffixCls: 'layout',\n tagName: 'section',\n displayName: 'Layout'\n})(BasicLayout);\nvar Header = generator({\n suffixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nvar Footer = generator({\n suffixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nvar Content = generator({\n suffixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Header, Footer, Content };\nexport default Layout;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport { useContext, useRef, useState, useEffect } from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport { LayoutContext } from './layout';\nimport { ConfigContext } from '../config-provider';\nimport isNumeric from '../_util/isNumeric';\nvar dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport var SiderContext = /*#__PURE__*/React.createContext({});\n\nvar generateId = function () {\n var i = 0;\n return function () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return \"\".concat(prefix).concat(i);\n };\n}();\n\nvar Sider = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n trigger = _a.trigger,\n children = _a.children,\n _a$defaultCollapsed = _a.defaultCollapsed,\n defaultCollapsed = _a$defaultCollapsed === void 0 ? false : _a$defaultCollapsed,\n _a$theme = _a.theme,\n theme = _a$theme === void 0 ? 'dark' : _a$theme,\n _a$style = _a.style,\n style = _a$style === void 0 ? {} : _a$style,\n _a$collapsible = _a.collapsible,\n collapsible = _a$collapsible === void 0 ? false : _a$collapsible,\n _a$reverseArrow = _a.reverseArrow,\n reverseArrow = _a$reverseArrow === void 0 ? false : _a$reverseArrow,\n _a$width = _a.width,\n width = _a$width === void 0 ? 200 : _a$width,\n _a$collapsedWidth = _a.collapsedWidth,\n collapsedWidth = _a$collapsedWidth === void 0 ? 80 : _a$collapsedWidth,\n zeroWidthTriggerStyle = _a.zeroWidthTriggerStyle,\n breakpoint = _a.breakpoint,\n onCollapse = _a.onCollapse,\n onBreakpoint = _a.onBreakpoint,\n props = __rest(_a, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n\n var _useContext = useContext(LayoutContext),\n siderHook = _useContext.siderHook;\n\n var _useState = useState('collapsed' in props ? props.collapsed : defaultCollapsed),\n _useState2 = _slicedToArray(_useState, 2),\n collapsed = _useState2[0],\n setCollapsed = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n below = _useState4[0],\n setBelow = _useState4[1];\n\n useEffect(function () {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n\n var handleSetCollapsed = function handleSetCollapsed(value, type) {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n }; // ========================= Responsive =========================\n\n\n var responsiveHandlerRef = useRef();\n\n responsiveHandlerRef.current = function (mql) {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n\n useEffect(function () {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n\n var mql;\n\n if (typeof window !== 'undefined') {\n var _window = window,\n matchMedia = _window.matchMedia;\n\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(\"(max-width: \".concat(dimensionMaxMap[breakpoint], \")\"));\n\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n\n responsiveHandler(mql);\n }\n }\n\n return function () {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, []);\n useEffect(function () {\n var uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return function () {\n return siderHook.removeSider(uniqueId);\n };\n }, []);\n\n var toggle = function toggle() {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n\n var _useContext2 = useContext(ConfigContext),\n getPrefixCls = _useContext2.getPrefixCls;\n\n var renderSider = function renderSider() {\n var _classNames;\n\n var prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n var divProps = omit(props, ['collapsed']);\n var rawWidth = collapsed ? collapsedWidth : width; // use \"px\" as fallback unit for width\n\n var siderWidth = isNumeric(rawWidth) ? \"\".concat(rawWidth, \"px\") : String(rawWidth); // special trigger when collapsedWidth == 0\n\n var zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(\"\".concat(prefixCls, \"-zero-width-trigger\"), \"\".concat(prefixCls, \"-zero-width-trigger-\").concat(reverseArrow ? 'right' : 'left')),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null)) : null;\n var iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n var status = collapsed ? 'collapsed' : 'expanded';\n var defaultTrigger = iconObj[status];\n var triggerDom = trigger !== null ? zeroWidthTrigger || /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-trigger\"),\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger) : null;\n\n var divStyle = _extends(_extends({}, style), {\n flex: \"0 0 \".concat(siderWidth),\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n\n var siderCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-collapsed\"), !!collapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-trigger\"), collapsible && trigger !== null && !zeroWidthTrigger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-below\"), !!below), _defineProperty(_classNames, \"\".concat(prefixCls, \"-zero-width\"), parseFloat(siderWidth) === 0), _classNames), className);\n return /*#__PURE__*/React.createElement(\"aside\", _extends({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-children\")\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n\n var contextValue = React.useMemo(function () {\n return {\n siderCollapsed: collapsed\n };\n }, [collapsed]);\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider());\n});\nSider.displayName = 'Sider';\nexport default Sider;","var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\n\nexport default isNumeric;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport classNames from 'classnames';\nimport MenuContext from './MenuContext';\nimport Tooltip from '../tooltip';\nimport { SiderContext } from '../layout/Sider';\nimport { isValidElement, cloneElement } from '../_util/reactNode';\n\nvar MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n\n var _super = _createSuper(MenuItem);\n\n function MenuItem() {\n var _this;\n\n _classCallCheck(this, MenuItem);\n\n _this = _super.apply(this, arguments);\n\n _this.renderItem = function (_ref) {\n var _classNames;\n\n var siderCollapsed = _ref.siderCollapsed;\n\n var _a;\n\n var _this$context = _this.context,\n prefixCls = _this$context.prefixCls,\n firstLevel = _this$context.firstLevel,\n inlineCollapsed = _this$context.inlineCollapsed,\n direction = _this$context.direction;\n var _this$props = _this.props,\n className = _this$props.className,\n children = _this$props.children;\n\n var _b = _this.props,\n title = _b.title,\n icon = _b.icon,\n danger = _b.danger,\n rest = __rest(_b, [\"title\", \"icon\", \"danger\"]);\n\n var tooltipTitle = title;\n\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n\n var tooltipProps = {\n title: tooltipTitle\n };\n\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null; // Reset `visible` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n\n tooltipProps.visible = false;\n }\n\n var childrenLength = toArray(children).length;\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: \"\".concat(prefixCls, \"-inline-collapsed-tooltip\")\n }), /*#__PURE__*/React.createElement(Item, _extends({}, rest, {\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-danger\"), danger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-only-child\"), (icon ? childrenLength + 1 : childrenLength) === 1), _classNames), className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), _this.renderItemChildren(inlineCollapsed)));\n };\n\n return _this;\n }\n\n _createClass(MenuItem, [{\n key: \"renderItemChildren\",\n value: function renderItemChildren(inlineCollapsed) {\n var _this$context2 = this.context,\n prefixCls = _this$context2.prefixCls,\n firstLevel = _this$context2.firstLevel;\n var _this$props2 = this.props,\n icon = _this$props2.icon,\n children = _this$props2.children;\n var wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, children); // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, children.charAt(0));\n }\n }\n\n return wrapNode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, this.renderItem);\n }\n }]);\n\n return MenuItem;\n}(React.Component);\n\nexport { MenuItem as default };\nMenuItem.contextType = MenuContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport { ConfigContext } from '../config-provider';\n\nvar MenuDivider = function MenuDivider(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n dashed = _a.dashed,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"dashed\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var classString = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-item-divider-dashed\"), !!dashed), className);\n return /*#__PURE__*/React.createElement(Divider, _extends({\n className: classString\n }, restProps));\n};\n\nexport default MenuDivider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcMenu, { ItemGroup } from 'rc-menu';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport memoize from 'memoize-one';\nimport SubMenu from './SubMenu';\nimport Item from './MenuItem';\nimport { ConfigConsumer } from '../config-provider';\nimport devWarning from '../_util/devWarning';\nimport { SiderContext } from '../layout/Sider';\nimport collapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nimport MenuDivider from './MenuDivider';\n\nvar InternalMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalMenu, _React$Component);\n\n var _super = _createSuper(InternalMenu);\n\n function InternalMenu(props) {\n var _this;\n\n _classCallCheck(this, InternalMenu);\n\n _this = _super.call(this, props);\n\n _this.renderMenu = function (_ref) {\n var getPopupContainer = _ref.getPopupContainer,\n getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n var rootPrefixCls = getPrefixCls();\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n theme = _a.theme,\n expandIcon = _a.expandIcon,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"theme\", \"expandIcon\"]);\n\n var passedProps = omit(restProps, ['siderCollapsed', 'collapsedWidth']);\n\n var inlineCollapsed = _this.getInlineCollapsed();\n\n var defaultMotions = {\n horizontal: {\n motionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n },\n inline: collapseMotion,\n other: {\n motionName: \"\".concat(rootPrefixCls, \"-zoom-big\")\n }\n };\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var menuClassName = classNames(\"\".concat(prefixCls, \"-\").concat(theme), className); // TODO: refactor menu with function component\n\n var contextValue = memoize(function (cls, collapsed, the, dir) {\n return {\n prefixCls: cls,\n inlineCollapsed: collapsed || false,\n antdMenuTheme: the,\n direction: dir,\n firstLevel: true\n };\n })(prefixCls, inlineCollapsed, theme, direction);\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, _extends({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: \"\".concat(prefixCls, \"-\").concat(theme)\n }, passedProps, {\n inlineCollapsed: inlineCollapsed,\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: cloneElement(expandIcon, {\n className: \"\".concat(prefixCls, \"-submenu-expand-icon\")\n })\n })));\n };\n\n devWarning(!('inlineCollapsed' in props && props.mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.');\n devWarning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.');\n return _this;\n }\n\n _createClass(InternalMenu, [{\n key: \"getInlineCollapsed\",\n value: function getInlineCollapsed() {\n var _this$props = this.props,\n inlineCollapsed = _this$props.inlineCollapsed,\n siderCollapsed = _this$props.siderCollapsed;\n\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n\n return inlineCollapsed;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderMenu);\n }\n }]);\n\n return InternalMenu;\n}(React.Component);\n\nInternalMenu.defaultProps = {\n theme: 'light' // or dark\n\n}; // We should keep this as ref-able\n\nvar Menu = /*#__PURE__*/function (_React$Component2) {\n _inherits(Menu, _React$Component2);\n\n var _super2 = _createSuper(Menu);\n\n function Menu() {\n _classCallCheck(this, Menu);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Menu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalMenu, _extends({}, _this2.props, context));\n });\n }\n }]);\n\n return Menu;\n}(React.Component);\n\nMenu.Divider = MenuDivider;\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.ItemGroup = ItemGroup;\nexport default Menu;","/* istanbul ignore next */\n\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\n\nexport default ColumnGroup;","/* istanbul ignore next */\n\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_) {\n return null;\n}\n\nexport default Column;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\n\nfunction toArray(arr) {\n if (arr === undefined || arr === null) {\n return [];\n }\n\n return Array.isArray(arr) ? arr : [arr];\n}\n\nexport function getPathValue(record, path) {\n // Skip if path is empty\n if (!path && typeof path !== 'number') {\n return record;\n }\n\n var pathList = toArray(path);\n var current = record;\n\n for (var i = 0; i < pathList.length; i += 1) {\n if (!current) {\n return null;\n }\n\n var prop = pathList[i];\n current = current[prop];\n }\n\n return current;\n}\nexport function getColumnsKey(columns) {\n var columnKeys = [];\n var keys = {};\n columns.forEach(function (column) {\n var _ref = column || {},\n key = _ref.key,\n dataIndex = _ref.dataIndex;\n\n var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n\n while (keys[mergedKey]) {\n mergedKey = \"\".concat(mergedKey, \"_next\");\n }\n\n keys[mergedKey] = true;\n columnKeys.push(mergedKey);\n });\n return columnKeys;\n}\nexport function mergeObject() {\n var merged = {};\n /* eslint-disable no-param-reassign */\n\n function fillProps(obj, clone) {\n if (clone) {\n Object.keys(clone).forEach(function (key) {\n var value = clone[key];\n\n if (value && _typeof(value) === 'object') {\n obj[key] = obj[key] || {};\n fillProps(obj[key], value);\n } else {\n obj[key] = value;\n }\n });\n }\n }\n /* eslint-enable */\n\n\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n }\n\n objects.forEach(function (clone) {\n fillProps(merged, clone);\n });\n return merged;\n}\nexport function validateValue(val) {\n return val !== null && val !== undefined;\n}","import * as React from 'react'; // Tell cell that browser support sticky\n\nvar StickyContext = /*#__PURE__*/React.createContext(false);\nexport default StickyContext;","import * as React from 'react';\nvar HoverContext = /*#__PURE__*/React.createContext({});\nexport default HoverContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"colSpan\", \"rowSpan\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { supportRef } from \"rc-util/es/ref\";\nimport { getPathValue, validateValue } from '../utils/valueUtil';\nimport StickyContext from '../context/StickyContext';\nimport HoverContext from '../context/HoverContext';\n/** Check if cell is in hover range */\n\nfunction inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {\n var cellEndRow = cellStartRow + cellRowSpan - 1;\n return cellStartRow <= endRow && cellEndRow >= startRow;\n}\n\nfunction isRenderCell(data) {\n return data && _typeof(data) === 'object' && !Array.isArray(data) && ! /*#__PURE__*/React.isValidElement(data);\n}\n\nfunction isRefComponent(component) {\n // String tag component also support ref\n if (typeof component === 'string') {\n return true;\n }\n\n return supportRef(component);\n}\n\nfunction Cell(_ref, ref) {\n var _ref3, _ref4, _classNames;\n\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n record = _ref.record,\n index = _ref.index,\n dataIndex = _ref.dataIndex,\n render = _ref.render,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'td' : _ref$component,\n colSpan = _ref.colSpan,\n rowSpan = _ref.rowSpan,\n fixLeft = _ref.fixLeft,\n fixRight = _ref.fixRight,\n firstFixLeft = _ref.firstFixLeft,\n lastFixLeft = _ref.lastFixLeft,\n firstFixRight = _ref.firstFixRight,\n lastFixRight = _ref.lastFixRight,\n appendNode = _ref.appendNode,\n _ref$additionalProps = _ref.additionalProps,\n additionalProps = _ref$additionalProps === void 0 ? {} : _ref$additionalProps,\n ellipsis = _ref.ellipsis,\n align = _ref.align,\n rowType = _ref.rowType,\n isSticky = _ref.isSticky,\n startRow = _ref.startRow,\n endRow = _ref.endRow,\n onHover = _ref.onHover,\n shouldCellUpdate = _ref.shouldCellUpdate;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var supportSticky = React.useContext(StickyContext); // ==================== Child Node ====================\n\n var cellProps;\n var childNode;\n\n if (validateValue(children)) {\n childNode = children;\n } else {\n var value = getPathValue(record, dataIndex); // Customize render node\n\n childNode = value;\n\n if (render) {\n var renderData = render(value, record, index);\n\n if (isRenderCell(renderData)) {\n childNode = renderData.children;\n cellProps = renderData.props;\n } else {\n childNode = renderData;\n }\n }\n } // Not crash if final `childNode` is not validate ReactNode\n\n\n if (_typeof(childNode) === 'object' && !Array.isArray(childNode) && ! /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = null;\n }\n\n if (ellipsis && (lastFixLeft || firstFixRight)) {\n childNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(cellPrefixCls, \"-content\")\n }, childNode);\n }\n\n var _ref2 = cellProps || {},\n cellColSpan = _ref2.colSpan,\n cellRowSpan = _ref2.rowSpan,\n cellStyle = _ref2.style,\n cellClassName = _ref2.className,\n restCellProps = _objectWithoutProperties(_ref2, _excluded);\n\n var mergedColSpan = (_ref3 = cellColSpan !== undefined ? cellColSpan : colSpan) !== null && _ref3 !== void 0 ? _ref3 : 1;\n var mergedRowSpan = (_ref4 = cellRowSpan !== undefined ? cellRowSpan : rowSpan) !== null && _ref4 !== void 0 ? _ref4 : 1;\n\n if (mergedColSpan === 0 || mergedRowSpan === 0) {\n return null;\n } // ====================== Fixed =======================\n\n\n var fixedStyle = {};\n var isFixLeft = typeof fixLeft === 'number' && supportSticky;\n var isFixRight = typeof fixRight === 'number' && supportSticky;\n\n if (isFixLeft) {\n fixedStyle.position = 'sticky';\n fixedStyle.left = fixLeft;\n }\n\n if (isFixRight) {\n fixedStyle.position = 'sticky';\n fixedStyle.right = fixRight;\n } // ====================== Align =======================\n\n\n var alignStyle = {};\n\n if (align) {\n alignStyle.textAlign = align;\n } // ====================== Hover =======================\n\n\n var hovering = inHoverRange(index, mergedRowSpan, startRow, endRow);\n\n var onMouseEnter = function onMouseEnter(event) {\n var _additionalProps$onMo;\n\n if (record) {\n onHover(index, index + mergedRowSpan - 1);\n }\n\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo = additionalProps.onMouseEnter) === null || _additionalProps$onMo === void 0 ? void 0 : _additionalProps$onMo.call(additionalProps, event);\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n var _additionalProps$onMo2;\n\n if (record) {\n onHover(-1, -1);\n }\n\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo2 = additionalProps.onMouseLeave) === null || _additionalProps$onMo2 === void 0 ? void 0 : _additionalProps$onMo2.call(additionalProps, event);\n }; // ====================== Render ======================\n\n\n var title;\n var ellipsisConfig = ellipsis === true ? {\n showTitle: true\n } : ellipsis;\n\n if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n if (typeof childNode === 'string' || typeof childNode === 'number') {\n title = childNode.toString();\n } else if ( /*#__PURE__*/React.isValidElement(childNode) && typeof childNode.props.children === 'string') {\n title = childNode.props.children;\n }\n }\n\n var componentProps = _objectSpread(_objectSpread(_objectSpread({\n title: title\n }, restCellProps), additionalProps), {}, {\n colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null,\n className: classNames(cellPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left\"), isFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-first\"), firstFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-last\"), lastFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right\"), isFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-first\"), firstFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-last\"), lastFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-ellipsis\"), ellipsis), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-with-append\"), appendNode), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-sticky\"), (isFixLeft || isFixRight) && isSticky && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-row-hover\"), !shouldCellUpdate && hovering), _classNames), additionalProps.className, cellClassName),\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, additionalProps.style), alignStyle), fixedStyle), cellStyle),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n ref: isRefComponent(Component) ? ref : null\n });\n\n return /*#__PURE__*/React.createElement(Component, componentProps, appendNode, childNode);\n}\n\nvar RefCell = /*#__PURE__*/React.forwardRef(Cell);\nRefCell.displayName = 'Cell';\nvar comparePropList = ['expanded', 'className'];\nvar MemoCell = /*#__PURE__*/React.memo(RefCell, function (prev, next) {\n if (next.shouldCellUpdate) {\n return (// Additional handle of expanded logic\n comparePropList.every(function (propName) {\n return prev[propName] === next[propName];\n }) && // User control update logic\n !next.shouldCellUpdate(next.record, prev.record)\n );\n }\n\n return false;\n});\n/** Inject hover data here, we still wish MemoCell keep simple `shouldCellUpdate` logic */\n\nvar WrappedCell = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(HoverContext),\n onHover = _React$useContext.onHover,\n startRow = _React$useContext.startRow,\n endRow = _React$useContext.endRow;\n\n return /*#__PURE__*/React.createElement(MemoCell, _extends({}, props, {\n ref: ref,\n onHover: onHover,\n startRow: startRow,\n endRow: endRow\n }));\n});\nWrappedCell.displayName = 'WrappedCell';\nexport default WrappedCell;","import * as React from 'react';\nvar TableContext = /*#__PURE__*/React.createContext(null);\nexport default TableContext;","export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction) {\n var startColumn = columns[colStart] || {};\n var endColumn = columns[colEnd] || {};\n var fixLeft;\n var fixRight;\n\n if (startColumn.fixed === 'left') {\n fixLeft = stickyOffsets.left[colStart];\n } else if (endColumn.fixed === 'right') {\n fixRight = stickyOffsets.right[colEnd];\n }\n\n var lastFixLeft = false;\n var firstFixRight = false;\n var lastFixRight = false;\n var firstFixLeft = false;\n var nextColumn = columns[colEnd + 1];\n var prevColumn = columns[colStart - 1];\n\n if (direction === 'rtl') {\n if (fixLeft !== undefined) {\n var prevFixLeft = prevColumn && prevColumn.fixed === 'left';\n firstFixLeft = !prevFixLeft;\n } else if (fixRight !== undefined) {\n var nextFixRight = nextColumn && nextColumn.fixed === 'right';\n lastFixRight = !nextFixRight;\n }\n } else if (fixLeft !== undefined) {\n var nextFixLeft = nextColumn && nextColumn.fixed === 'left';\n lastFixLeft = !nextFixLeft;\n } else if (fixRight !== undefined) {\n var prevFixRight = prevColumn && prevColumn.fixed === 'right';\n firstFixRight = !prevFixRight;\n }\n\n return {\n fixLeft: fixLeft,\n fixRight: fixRight,\n lastFixLeft: lastFixLeft,\n firstFixRight: firstFixRight,\n lastFixRight: lastFixRight,\n firstFixLeft: firstFixLeft,\n isSticky: stickyOffsets.isSticky\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\nimport { getCellFixedInfo } from '../utils/fixUtil';\nimport { getColumnsKey } from '../utils/valueUtil';\n\nfunction HeaderRow(_ref) {\n var cells = _ref.cells,\n stickyOffsets = _ref.stickyOffsets,\n flattenColumns = _ref.flattenColumns,\n RowComponent = _ref.rowComponent,\n CellComponent = _ref.cellComponent,\n onHeaderRow = _ref.onHeaderRow,\n index = _ref.index;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n direction = _React$useContext.direction;\n\n var rowProps;\n\n if (onHeaderRow) {\n rowProps = onHeaderRow(cells.map(function (cell) {\n return cell.column;\n }), index);\n }\n\n var columnsKey = getColumnsKey(cells.map(function (cell) {\n return cell.column;\n }));\n return /*#__PURE__*/React.createElement(RowComponent, rowProps, cells.map(function (cell, cellIndex) {\n var column = cell.column;\n var fixedInfo = getCellFixedInfo(cell.colStart, cell.colEnd, flattenColumns, stickyOffsets, direction);\n var additionalProps;\n\n if (column && column.onHeaderCell) {\n additionalProps = cell.column.onHeaderCell(column);\n }\n\n return /*#__PURE__*/React.createElement(Cell, _extends({}, cell, {\n ellipsis: column.ellipsis,\n align: column.align,\n component: CellComponent,\n prefixCls: prefixCls,\n key: columnsKey[cellIndex]\n }, fixedInfo, {\n additionalProps: additionalProps,\n rowType: \"header\"\n }));\n }));\n}\n\nHeaderRow.displayName = 'HeaderRow';\nexport default HeaderRow;","import * as React from 'react';\nimport HeaderRow from './HeaderRow';\nimport TableContext from '../context/TableContext';\n\nfunction parseHeaderRows(rootColumns) {\n var rows = [];\n\n function fillRowCells(columns, colIndex) {\n var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; // Init rows\n\n rows[rowIndex] = rows[rowIndex] || [];\n var currentColIndex = colIndex;\n var colSpans = columns.filter(Boolean).map(function (column) {\n var cell = {\n key: column.key,\n className: column.className || '',\n children: column.title,\n column: column,\n colStart: currentColIndex\n };\n var colSpan = 1;\n var subColumns = column.children;\n\n if (subColumns && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce(function (total, count) {\n return total + count;\n }, 0);\n cell.hasSubColumns = true;\n }\n\n if ('colSpan' in column) {\n colSpan = column.colSpan;\n }\n\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell);\n currentColIndex += colSpan;\n return colSpan;\n });\n return colSpans;\n } // Generate `rows` cell data\n\n\n fillRowCells(rootColumns, 0); // Handle `rowSpan`\n\n var rowCount = rows.length;\n\n var _loop = function _loop(rowIndex) {\n rows[rowIndex].forEach(function (cell) {\n if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n // eslint-disable-next-line no-param-reassign\n cell.rowSpan = rowCount - rowIndex;\n }\n });\n };\n\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n _loop(rowIndex);\n }\n\n return rows;\n}\n\nfunction Header(_ref) {\n var stickyOffsets = _ref.stickyOffsets,\n columns = _ref.columns,\n flattenColumns = _ref.flattenColumns,\n onHeaderRow = _ref.onHeaderRow;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n getComponent = _React$useContext.getComponent;\n\n var rows = React.useMemo(function () {\n return parseHeaderRows(columns);\n }, [columns]);\n var WrapperComponent = getComponent(['header', 'wrapper'], 'thead');\n var trComponent = getComponent(['header', 'row'], 'tr');\n var thComponent = getComponent(['header', 'cell'], 'th');\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-thead\")\n }, rows.map(function (row, rowIndex) {\n var rowNode = /*#__PURE__*/React.createElement(HeaderRow, {\n key: rowIndex,\n flattenColumns: flattenColumns,\n cells: row,\n stickyOffsets: stickyOffsets,\n rowComponent: trComponent,\n cellComponent: thComponent,\n onHeaderRow: onHeaderRow,\n index: rowIndex\n });\n return rowNode;\n }));\n}\n\nexport default Header;","import * as React from 'react';\nvar BodyContext = /*#__PURE__*/React.createContext(null);\nexport default BodyContext;","import * as React from 'react';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\n\nfunction ExpandedRow(_ref) {\n var prefixCls = _ref.prefixCls,\n children = _ref.children,\n Component = _ref.component,\n cellComponent = _ref.cellComponent,\n fixHeader = _ref.fixHeader,\n fixColumn = _ref.fixColumn,\n horizonScroll = _ref.horizonScroll,\n className = _ref.className,\n expanded = _ref.expanded,\n componentWidth = _ref.componentWidth,\n colSpan = _ref.colSpan;\n\n var _React$useContext = React.useContext(TableContext),\n scrollbarSize = _React$useContext.scrollbarSize; // Cache render node\n\n\n return React.useMemo(function () {\n var contentNode = children;\n\n if (fixColumn) {\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: componentWidth - (fixHeader ? scrollbarSize : 0),\n position: 'sticky',\n left: 0,\n overflow: 'hidden'\n },\n className: \"\".concat(prefixCls, \"-expanded-row-fixed\")\n }, contentNode);\n }\n\n return /*#__PURE__*/React.createElement(Component, {\n className: className,\n style: {\n display: expanded ? null : 'none'\n }\n }, /*#__PURE__*/React.createElement(Cell, {\n component: cellComponent,\n prefixCls: prefixCls,\n colSpan: colSpan\n }, contentNode));\n }, [children, Component, fixHeader, horizonScroll, className, expanded, componentWidth, colSpan, scrollbarSize]);\n}\n\nexport default ExpandedRow;","import * as React from 'react';\nvar ResizeContext = /*#__PURE__*/React.createContext(null);\nexport default ResizeContext;","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function MeasureCell(_ref) {\n var columnKey = _ref.columnKey,\n onColumnResize = _ref.onColumnResize;\n var cellRef = React.useRef();\n React.useEffect(function () {\n if (cellRef.current) {\n onColumnResize(columnKey, cellRef.current.offsetWidth);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetWidth = _ref2.offsetWidth;\n onColumnResize(columnKey, offsetWidth);\n }\n }, /*#__PURE__*/React.createElement(\"td\", {\n ref: cellRef,\n style: {\n padding: 0,\n border: 0,\n height: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: 0,\n overflow: 'hidden'\n }\n }, \"\\xA0\")));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\nimport BodyContext from '../context/BodyContext';\nimport { getColumnsKey } from '../utils/valueUtil';\nimport ExpandedRow from './ExpandedRow';\n\nfunction BodyRow(props) {\n var className = props.className,\n style = props.style,\n record = props.record,\n index = props.index,\n rowKey = props.rowKey,\n rowExpandable = props.rowExpandable,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n _props$indent = props.indent,\n indent = _props$indent === void 0 ? 0 : _props$indent,\n RowComponent = props.rowComponent,\n cellComponent = props.cellComponent,\n childrenColumnName = props.childrenColumnName;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n fixedInfoList = _React$useContext.fixedInfoList;\n\n var _React$useContext2 = React.useContext(BodyContext),\n fixHeader = _React$useContext2.fixHeader,\n fixColumn = _React$useContext2.fixColumn,\n horizonScroll = _React$useContext2.horizonScroll,\n componentWidth = _React$useContext2.componentWidth,\n flattenColumns = _React$useContext2.flattenColumns,\n expandableType = _React$useContext2.expandableType,\n expandRowByClick = _React$useContext2.expandRowByClick,\n onTriggerExpand = _React$useContext2.onTriggerExpand,\n rowClassName = _React$useContext2.rowClassName,\n expandedRowClassName = _React$useContext2.expandedRowClassName,\n indentSize = _React$useContext2.indentSize,\n expandIcon = _React$useContext2.expandIcon,\n expandedRowRender = _React$useContext2.expandedRowRender,\n expandIconColumnIndex = _React$useContext2.expandIconColumnIndex;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandRended = _React$useState2[0],\n setExpandRended = _React$useState2[1];\n\n var expanded = expandedKeys && expandedKeys.has(props.recordKey);\n React.useEffect(function () {\n if (expanded) {\n setExpandRended(true);\n }\n }, [expanded]);\n var rowSupportExpand = expandableType === 'row' && (!rowExpandable || rowExpandable(record)); // Only when row is not expandable and `children` exist in record\n\n var nestExpandable = expandableType === 'nest';\n var hasNestChildren = childrenColumnName && record && record[childrenColumnName];\n var mergedExpandable = rowSupportExpand || nestExpandable; // ======================== Expandable =========================\n\n var onExpandRef = React.useRef(onTriggerExpand);\n onExpandRef.current = onTriggerExpand;\n\n var onInternalTriggerExpand = function onInternalTriggerExpand() {\n onExpandRef.current.apply(onExpandRef, arguments);\n }; // =========================== onRow ===========================\n\n\n var additionalProps;\n\n if (onRow) {\n additionalProps = onRow(record, index);\n }\n\n var onClick = function onClick(event) {\n var _additionalProps, _additionalProps$onCl;\n\n if (expandRowByClick && mergedExpandable) {\n onInternalTriggerExpand(record, event);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_additionalProps = additionalProps) === null || _additionalProps === void 0 ? void 0 : (_additionalProps$onCl = _additionalProps.onClick) === null || _additionalProps$onCl === void 0 ? void 0 : _additionalProps$onCl.call.apply(_additionalProps$onCl, [_additionalProps, event].concat(args));\n }; // ======================== Base tr row ========================\n\n\n var computeRowClassName;\n\n if (typeof rowClassName === 'string') {\n computeRowClassName = rowClassName;\n } else if (typeof rowClassName === 'function') {\n computeRowClassName = rowClassName(record, index, indent);\n }\n\n var columnsKey = getColumnsKey(flattenColumns);\n var baseRowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, additionalProps, {\n \"data-row-key\": rowKey,\n className: classNames(className, \"\".concat(prefixCls, \"-row\"), \"\".concat(prefixCls, \"-row-level-\").concat(indent), computeRowClassName, additionalProps && additionalProps.className),\n style: _objectSpread(_objectSpread({}, style), additionalProps ? additionalProps.style : null),\n onClick: onClick\n }), flattenColumns.map(function (column, colIndex) {\n var render = column.render,\n dataIndex = column.dataIndex,\n columnClassName = column.className;\n var key = columnsKey[colIndex];\n var fixedInfo = fixedInfoList[colIndex]; // ============= Used for nest expandable =============\n\n var appendCellNode;\n\n if (colIndex === (expandIconColumnIndex || 0) && nestExpandable) {\n appendCellNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n paddingLeft: \"\".concat(indentSize * indent, \"px\")\n },\n className: \"\".concat(prefixCls, \"-row-indent indent-level-\").concat(indent)\n }), expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: hasNestChildren,\n record: record,\n onExpand: onInternalTriggerExpand\n }));\n }\n\n var additionalCellProps;\n\n if (column.onCell) {\n additionalCellProps = column.onCell(record, index);\n }\n\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: columnClassName,\n ellipsis: column.ellipsis,\n align: column.align,\n component: cellComponent,\n prefixCls: prefixCls,\n key: key,\n record: record,\n index: index,\n dataIndex: dataIndex,\n render: render,\n shouldCellUpdate: column.shouldCellUpdate,\n expanded: appendCellNode && expanded\n }, fixedInfo, {\n appendNode: appendCellNode,\n additionalProps: additionalCellProps\n }));\n })); // ======================== Expand Row =========================\n\n var expandRowNode;\n\n if (rowSupportExpand && (expandRended || expanded)) {\n var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n var computedExpandedRowClassName = expandedRowClassName && expandedRowClassName(record, index, indent);\n expandRowNode = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: expanded,\n className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), computedExpandedRowClassName),\n prefixCls: prefixCls,\n fixHeader: fixHeader,\n fixColumn: fixColumn,\n horizonScroll: horizonScroll,\n component: RowComponent,\n componentWidth: componentWidth,\n cellComponent: cellComponent,\n colSpan: flattenColumns.length\n }, expandContent);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, baseRowNode, expandRowNode);\n}\n\nBodyRow.displayName = 'BodyRow';\nexport default BodyRow;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react'; // recursion (flat tree structure)\n\nfunction flatRecord(record, indent, childrenColumnName, expandedKeys, getRowKey) {\n var arr = [];\n arr.push({\n record: record,\n indent: indent\n });\n var key = getRowKey(record);\n var expanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);\n\n if (record && Array.isArray(record[childrenColumnName]) && expanded) {\n // expanded state, flat record\n for (var i = 0; i < record[childrenColumnName].length; i += 1) {\n var tempArr = flatRecord(record[childrenColumnName][i], indent + 1, childrenColumnName, expandedKeys, getRowKey);\n arr.push.apply(arr, _toConsumableArray(tempArr));\n }\n }\n\n return arr;\n}\n/**\n * flat tree data on expanded state\n *\n * @export\n * @template T\n * @param {*} data : table data\n * @param {string} childrenColumnName : 指定树形结构的列名\n * @param {Set} expandedKeys : 展开的行对应的keys\n * @param {GetRowKey} getRowKey : 获取当前rowKey的方法\n * @returns flattened data\n */\n\n\nexport default function useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey) {\n var arr = React.useMemo(function () {\n if (expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.size) {\n var temp = []; // collect flattened record\n\n for (var i = 0; i < (data === null || data === void 0 ? void 0 : data.length); i += 1) {\n var record = data[i];\n temp.push.apply(temp, _toConsumableArray(flatRecord(record, 0, childrenColumnName, expandedKeys, getRowKey)));\n }\n\n return temp;\n }\n\n return data === null || data === void 0 ? void 0 : data.map(function (item) {\n return {\n record: item,\n indent: 0\n };\n });\n }, [data, childrenColumnName, expandedKeys, getRowKey]);\n return arr;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport TableContext from '../context/TableContext';\nimport ExpandedRow from './ExpandedRow';\nimport BodyContext from '../context/BodyContext';\nimport { getColumnsKey } from '../utils/valueUtil';\nimport ResizeContext from '../context/ResizeContext';\nimport MeasureCell from './MeasureCell';\nimport BodyRow from './BodyRow';\nimport useFlattenRecords from '../hooks/useFlattenRecords';\nimport HoverContext from '../context/HoverContext';\n\nfunction Body(_ref) {\n var data = _ref.data,\n getRowKey = _ref.getRowKey,\n measureColumnWidth = _ref.measureColumnWidth,\n expandedKeys = _ref.expandedKeys,\n onRow = _ref.onRow,\n rowExpandable = _ref.rowExpandable,\n emptyNode = _ref.emptyNode,\n childrenColumnName = _ref.childrenColumnName;\n\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n startRow = _React$useState2[0],\n setStartRow = _React$useState2[1];\n\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n endRow = _React$useState4[0],\n setEndRow = _React$useState4[1];\n\n var _React$useContext = React.useContext(ResizeContext),\n onColumnResize = _React$useContext.onColumnResize;\n\n var _React$useContext2 = React.useContext(TableContext),\n prefixCls = _React$useContext2.prefixCls,\n getComponent = _React$useContext2.getComponent;\n\n var _React$useContext3 = React.useContext(BodyContext),\n fixHeader = _React$useContext3.fixHeader,\n horizonScroll = _React$useContext3.horizonScroll,\n flattenColumns = _React$useContext3.flattenColumns,\n componentWidth = _React$useContext3.componentWidth;\n\n var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);\n var onHover = React.useCallback(function (start, end) {\n setStartRow(start);\n setEndRow(end);\n }, []);\n var hoverContext = React.useMemo(function () {\n return {\n startRow: startRow,\n endRow: endRow,\n onHover: onHover\n };\n }, [onHover, startRow, endRow]);\n return React.useMemo(function () {\n var WrapperComponent = getComponent(['body', 'wrapper'], 'tbody');\n var trComponent = getComponent(['body', 'row'], 'tr');\n var tdComponent = getComponent(['body', 'cell'], 'td');\n var rows;\n\n if (data.length) {\n rows = flattenData.map(function (item, index) {\n var record = item.record,\n indent = item.indent;\n var key = getRowKey(record, index);\n return /*#__PURE__*/React.createElement(BodyRow, {\n key: key,\n rowKey: key,\n record: record,\n recordKey: key,\n index: index,\n rowComponent: trComponent,\n cellComponent: tdComponent,\n expandedKeys: expandedKeys,\n onRow: onRow,\n getRowKey: getRowKey,\n rowExpandable: rowExpandable,\n childrenColumnName: childrenColumnName,\n indent: indent\n });\n });\n } else {\n rows = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: true,\n className: \"\".concat(prefixCls, \"-placeholder\"),\n prefixCls: prefixCls,\n fixHeader: fixHeader,\n fixColumn: horizonScroll,\n horizonScroll: horizonScroll,\n component: trComponent,\n componentWidth: componentWidth,\n cellComponent: tdComponent,\n colSpan: flattenColumns.length\n }, emptyNode);\n }\n\n var columnsKey = getColumnsKey(flattenColumns);\n return /*#__PURE__*/React.createElement(HoverContext.Provider, {\n value: hoverContext\n }, /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-tbody\")\n }, measureColumnWidth && /*#__PURE__*/React.createElement(\"tr\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-measure-row\"),\n style: {\n height: 0,\n fontSize: 0\n }\n }, columnsKey.map(function (columnKey) {\n return /*#__PURE__*/React.createElement(MeasureCell, {\n key: columnKey,\n columnKey: columnKey,\n onColumnResize: onColumnResize\n });\n })), rows));\n }, [data, prefixCls, onRow, measureColumnWidth, expandedKeys, getRowKey, getComponent, componentWidth, emptyNode, flattenColumns, childrenColumnName, fixHeader, horizonScroll, onColumnResize, rowExpandable, flattenData, hoverContext]);\n}\n\nvar MemoBody = /*#__PURE__*/React.memo(Body);\nMemoBody.displayName = 'Body';\nexport default MemoBody;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"expandable\"];\nimport warning from \"rc-util/es/warning\";\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\nexport function getExpandableProps(props) {\n var expandable = props.expandable,\n legacyExpandableConfig = _objectWithoutProperties(props, _excluded);\n\n if ('expandable' in props) {\n return _objectSpread(_objectSpread({}, legacyExpandableConfig), expandable);\n }\n\n if (process.env.NODE_ENV !== 'production' && ['indentSize', 'expandedRowKeys', 'defaultExpandedRowKeys', 'defaultExpandAllRows', 'expandedRowRender', 'expandRowByClick', 'expandIcon', 'onExpand', 'onExpandedRowsChange', 'expandedRowClassName', 'expandIconColumnIndex'].some(function (prop) {\n return prop in props;\n })) {\n warning(false, 'expanded related props have been moved into `expandable`.');\n }\n\n return legacyExpandableConfig;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"],\n _excluded2 = [\"fixed\"];\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { INTERNAL_COL_DEFINE } from '../utils/legacyUtil';\nexport function convertChildrenToColumns(children) {\n return toArray(children).filter(function (node) {\n return /*#__PURE__*/React.isValidElement(node);\n }).map(function (_ref) {\n var key = _ref.key,\n props = _ref.props;\n\n var nodeChildren = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var column = _objectSpread({\n key: key\n }, restProps);\n\n if (nodeChildren) {\n column.children = convertChildrenToColumns(nodeChildren);\n }\n\n return column;\n });\n}\n\nfunction flatColumns(columns) {\n return columns.reduce(function (list, column) {\n var fixed = column.fixed; // Convert `fixed='true'` to `fixed='left'` instead\n\n var parsedFixed = fixed === true ? 'left' : fixed;\n var subColumns = column.children;\n\n if (subColumns && subColumns.length > 0) {\n return [].concat(_toConsumableArray(list), _toConsumableArray(flatColumns(subColumns).map(function (subColum) {\n return _objectSpread({\n fixed: parsedFixed\n }, subColum);\n })));\n }\n\n return [].concat(_toConsumableArray(list), [_objectSpread(_objectSpread({}, column), {}, {\n fixed: parsedFixed\n })]);\n }, []);\n}\n\nfunction warningFixed(flattenColumns) {\n var allFixLeft = true;\n\n for (var i = 0; i < flattenColumns.length; i += 1) {\n var col = flattenColumns[i];\n\n if (allFixLeft && col.fixed !== 'left') {\n allFixLeft = false;\n } else if (!allFixLeft && col.fixed === 'left') {\n warning(false, \"Index \".concat(i - 1, \" of `columns` missing `fixed='left'` prop.\"));\n break;\n }\n }\n\n var allFixRight = true;\n\n for (var _i = flattenColumns.length - 1; _i >= 0; _i -= 1) {\n var _col = flattenColumns[_i];\n\n if (allFixRight && _col.fixed !== 'right') {\n allFixRight = false;\n } else if (!allFixRight && _col.fixed === 'right') {\n warning(false, \"Index \".concat(_i + 1, \" of `columns` missing `fixed='right'` prop.\"));\n break;\n }\n }\n}\n\nfunction revertForRtl(columns) {\n return columns.map(function (column) {\n var fixed = column.fixed,\n restProps = _objectWithoutProperties(column, _excluded2); // Convert `fixed='left'` to `fixed='right'` instead\n\n\n var parsedFixed = fixed;\n\n if (fixed === 'left') {\n parsedFixed = 'right';\n } else if (fixed === 'right') {\n parsedFixed = 'left';\n }\n\n return _objectSpread({\n fixed: parsedFixed\n }, restProps);\n });\n}\n/**\n * Parse `columns` & `children` into `columns`.\n */\n\n\nfunction useColumns(_ref2, transformColumns) {\n var prefixCls = _ref2.prefixCls,\n columns = _ref2.columns,\n children = _ref2.children,\n expandable = _ref2.expandable,\n expandedKeys = _ref2.expandedKeys,\n getRowKey = _ref2.getRowKey,\n onTriggerExpand = _ref2.onTriggerExpand,\n expandIcon = _ref2.expandIcon,\n rowExpandable = _ref2.rowExpandable,\n expandIconColumnIndex = _ref2.expandIconColumnIndex,\n direction = _ref2.direction,\n expandRowByClick = _ref2.expandRowByClick,\n columnWidth = _ref2.columnWidth,\n fixed = _ref2.fixed;\n var baseColumns = React.useMemo(function () {\n return columns || convertChildrenToColumns(children);\n }, [columns, children]); // Add expand column\n\n var withExpandColumns = React.useMemo(function () {\n if (expandable) {\n var _expandColumn;\n\n var expandColIndex = expandIconColumnIndex || 0;\n var prevColumn = baseColumns[expandColIndex];\n var fixedColumn;\n\n if ((fixed === 'left' || fixed) && !expandIconColumnIndex) {\n fixedColumn = 'left';\n } else if ((fixed === 'right' || fixed) && expandIconColumnIndex === baseColumns.length) {\n fixedColumn = 'right';\n } else {\n fixedColumn = prevColumn ? prevColumn.fixed : null;\n }\n\n var expandColumn = (_expandColumn = {}, _defineProperty(_expandColumn, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-expand-icon-col\")\n }), _defineProperty(_expandColumn, \"title\", ''), _defineProperty(_expandColumn, \"fixed\", fixedColumn), _defineProperty(_expandColumn, \"className\", \"\".concat(prefixCls, \"-row-expand-icon-cell\")), _defineProperty(_expandColumn, \"width\", columnWidth), _defineProperty(_expandColumn, \"render\", function render(_, record, index) {\n var rowKey = getRowKey(record, index);\n var expanded = expandedKeys.has(rowKey);\n var recordExpandable = rowExpandable ? rowExpandable(record) : true;\n var icon = expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: recordExpandable,\n record: record,\n onExpand: onTriggerExpand\n });\n\n if (expandRowByClick) {\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n }, icon);\n }\n\n return icon;\n }), _expandColumn); // Insert expand column in the target position\n\n var cloneColumns = baseColumns.slice();\n\n if (expandColIndex >= 0) {\n cloneColumns.splice(expandColIndex, 0, expandColumn);\n }\n\n return cloneColumns;\n }\n\n return baseColumns;\n }, [expandable, baseColumns, getRowKey, expandedKeys, expandIcon, direction]);\n var mergedColumns = React.useMemo(function () {\n var finalColumns = withExpandColumns;\n\n if (transformColumns) {\n finalColumns = transformColumns(finalColumns);\n } // Always provides at least one column for table display\n\n\n if (!finalColumns.length) {\n finalColumns = [{\n render: function render() {\n return null;\n }\n }];\n }\n\n return finalColumns;\n }, [transformColumns, withExpandColumns, direction]);\n var flattenColumns = React.useMemo(function () {\n if (direction === 'rtl') {\n return revertForRtl(flatColumns(mergedColumns));\n }\n\n return flatColumns(mergedColumns);\n }, [mergedColumns, direction]); // Only check out of production since it's waste for each render\n\n if (process.env.NODE_ENV !== 'production') {\n warningFixed(flattenColumns);\n }\n\n return [mergedColumns, flattenColumns];\n}\n\nexport default useColumns;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\n/**\n * Execute code before next frame but async\n */\n\nexport function useLayoutState(defaultState) {\n var stateRef = useRef(defaultState);\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var lastPromiseRef = useRef(null);\n var updateBatchRef = useRef([]);\n\n function setFrameState(updater) {\n updateBatchRef.current.push(updater);\n var promise = Promise.resolve();\n lastPromiseRef.current = promise;\n promise.then(function () {\n if (lastPromiseRef.current === promise) {\n var prevBatch = updateBatchRef.current;\n var prevState = stateRef.current;\n updateBatchRef.current = [];\n prevBatch.forEach(function (batchUpdater) {\n stateRef.current = batchUpdater(stateRef.current);\n });\n lastPromiseRef.current = null;\n\n if (prevState !== stateRef.current) {\n forceUpdate({});\n }\n }\n });\n }\n\n useEffect(function () {\n return function () {\n lastPromiseRef.current = null;\n };\n }, []);\n return [stateRef.current, setFrameState];\n}\n/** Lock frame, when frame pass reset the lock. */\n\nexport function useTimeoutLock(defaultState) {\n var frameRef = useRef(defaultState || null);\n var timeoutRef = useRef();\n\n function cleanUp() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function setState(newState) {\n frameRef.current = newState;\n cleanUp();\n timeoutRef.current = window.setTimeout(function () {\n frameRef.current = null;\n timeoutRef.current = undefined;\n }, 100);\n }\n\n function getState() {\n return frameRef.current;\n }\n\n useEffect(function () {\n return cleanUp;\n }, []);\n return [setState, getState];\n}","import { useMemo } from 'react';\n/**\n * Get sticky column offset width\n */\n\nfunction useStickyOffsets(colWidths, columnCount, direction) {\n var stickyOffsets = useMemo(function () {\n var leftOffsets = [];\n var rightOffsets = [];\n var left = 0;\n var right = 0;\n\n for (var start = 0; start < columnCount; start += 1) {\n if (direction === 'rtl') {\n // Left offset\n rightOffsets[start] = right;\n right += colWidths[start] || 0; // Right offset\n\n var end = columnCount - start - 1;\n leftOffsets[end] = left;\n left += colWidths[end] || 0;\n } else {\n // Left offset\n leftOffsets[start] = left;\n left += colWidths[start] || 0; // Right offset\n\n var _end = columnCount - start - 1;\n\n rightOffsets[_end] = right;\n right += colWidths[_end] || 0;\n }\n }\n\n return {\n left: leftOffsets,\n right: rightOffsets\n };\n }, [colWidths, columnCount, direction]);\n return stickyOffsets;\n}\n\nexport default useStickyOffsets;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { INTERNAL_COL_DEFINE } from './utils/legacyUtil';\n\nfunction ColGroup(_ref) {\n var colWidths = _ref.colWidths,\n columns = _ref.columns,\n columCount = _ref.columCount;\n var cols = [];\n var len = columCount || columns.length; // Only insert col with width & additional props\n // Skip if rest col do not have any useful info\n\n var mustInsert = false;\n\n for (var i = len - 1; i >= 0; i -= 1) {\n var width = colWidths[i];\n var column = columns && columns[i];\n var additionalProps = column && column[INTERNAL_COL_DEFINE];\n\n if (width || additionalProps || mustInsert) {\n cols.unshift( /*#__PURE__*/React.createElement(\"col\", _extends({\n key: i,\n style: {\n width: width\n }\n }, additionalProps)));\n mustInsert = true;\n }\n }\n\n return /*#__PURE__*/React.createElement(\"colgroup\", null, cols);\n}\n\nexport default ColGroup;","import * as React from 'react';\n\nfunction Panel(_ref) {\n var className = _ref.className,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\n\nexport default Panel;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport default function FooterRow(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"tr\", props, children);\n}","import Cell from './Cell';\nimport Row from './Row';\n/**\n * Syntactic sugar. Do not support HOC.\n */\n\nfunction Summary(_ref) {\n var children = _ref.children;\n return children;\n}\n\nSummary.Row = Row;\nSummary.Cell = Cell;\nexport default Summary;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SummaryContext } from '.';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\nimport { getCellFixedInfo } from '../utils/fixUtil';\nexport default function SummaryCell(_ref) {\n var className = _ref.className,\n index = _ref.index,\n children = _ref.children,\n _ref$colSpan = _ref.colSpan,\n colSpan = _ref$colSpan === void 0 ? 1 : _ref$colSpan,\n rowSpan = _ref.rowSpan,\n align = _ref.align;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n direction = _React$useContext.direction;\n\n var _React$useContext2 = React.useContext(SummaryContext),\n scrollColumnIndex = _React$useContext2.scrollColumnIndex,\n stickyOffsets = _React$useContext2.stickyOffsets,\n flattenColumns = _React$useContext2.flattenColumns;\n\n var lastIndex = index + colSpan - 1;\n var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;\n var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction);\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: className,\n index: index,\n component: \"td\",\n prefixCls: prefixCls,\n record: null,\n dataIndex: null,\n align: align,\n render: function render() {\n return {\n children: children,\n props: {\n colSpan: mergedColSpan,\n rowSpan: rowSpan\n }\n };\n }\n }, fixedInfo));\n}","import * as React from 'react';\nimport TableContext from '../context/TableContext';\nimport Summary from './Summary';\nexport var SummaryContext = /*#__PURE__*/React.createContext({});\n\nfunction Footer(_ref) {\n var children = _ref.children,\n stickyOffsets = _ref.stickyOffsets,\n flattenColumns = _ref.flattenColumns;\n var tableContext = React.useContext(TableContext);\n var prefixCls = tableContext.prefixCls;\n var lastColumnIndex = flattenColumns.length - 1;\n var scrollColumn = flattenColumns[lastColumnIndex];\n var summaryContext = React.useMemo(function () {\n return {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n scrollColumnIndex: (scrollColumn === null || scrollColumn === void 0 ? void 0 : scrollColumn.scrollbar) ? lastColumnIndex : null\n };\n }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets]);\n return /*#__PURE__*/React.createElement(SummaryContext.Provider, {\n value: summaryContext\n }, /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"\".concat(prefixCls, \"-summary\")\n }, children));\n}\n\nexport default Footer;\nexport var FooterComponents = Summary;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport function renderExpandIcon(_ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n record = _ref.record,\n onExpand = _ref.onExpand,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var expandClassName = \"\".concat(prefixCls, \"-row-expand-icon\");\n\n if (!expandable) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, \"\".concat(prefixCls, \"-row-spaced\"))\n });\n }\n\n var onClick = function onClick(event) {\n onExpand(record, event);\n event.stopPropagation();\n };\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-expanded\"), expanded), _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-collapsed\"), !expanded), _classNames)),\n onClick: onClick\n });\n}\nexport function findAllChildrenKeys(data, getRowKey, childrenColumnName) {\n var keys = [];\n\n function dig(list) {\n (list || []).forEach(function (item, index) {\n keys.push(getRowKey(item, index));\n dig(item[childrenColumnName]);\n });\n }\n\n dig(data);\n return keys;\n}","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n left: true,\n top: true\n};\nvar floatMap = {\n cssFloat: 1,\n styleFloat: 1,\n float: 1\n};\n\nfunction getComputedStyle(node) {\n return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\n\nfunction getStyleValue(node, type, value) {\n type = type.toLowerCase();\n\n if (value === 'auto') {\n if (type === 'height') {\n return node.offsetHeight;\n }\n\n if (type === 'width') {\n return node.offsetWidth;\n }\n }\n\n if (!(type in removePixel)) {\n removePixel[type] = PIXEL_PATTERN.test(type);\n }\n\n return removePixel[type] ? parseFloat(value) || 0 : value;\n}\n\nexport function get(node, name) {\n var length = arguments.length;\n var style = getComputedStyle(node);\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n var length = arguments.length;\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n\n if (length === 3) {\n if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n value = \"\".concat(value, \"px\");\n }\n\n node.style[name] = value; // Number\n\n return value;\n }\n\n for (var x in name) {\n if (name.hasOwnProperty(x)) {\n set(node, x, name[x]);\n }\n }\n\n return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n if (el === document.body) {\n return document.documentElement.clientWidth;\n }\n\n return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n if (el === document.body) {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n\n return el.offsetHeight;\n}\nexport function getDocSize() {\n var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n return {\n width: width,\n height: height\n };\n}\nexport function getClientSize() {\n var width = document.documentElement.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width: width,\n height: height\n };\n}\nexport function getScroll() {\n return {\n scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n };\n}\nexport function getOffset(node) {\n var box = node.getBoundingClientRect();\n var docElem = document.documentElement; // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport classNames from 'classnames';\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport TableContext from './context/TableContext';\nimport { useLayoutState } from './hooks/useFrame';\n\nvar StickyScrollBar = function StickyScrollBar(_ref, ref) {\n var _scrollBodyRef$curren, _scrollBodyRef$curren2;\n\n var scrollBodyRef = _ref.scrollBodyRef,\n onScroll = _ref.onScroll,\n offsetScroll = _ref.offsetScroll,\n container = _ref.container;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls;\n\n var bodyScrollWidth = ((_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 ? void 0 : _scrollBodyRef$curren.scrollWidth) || 0;\n var bodyWidth = ((_scrollBodyRef$curren2 = scrollBodyRef.current) === null || _scrollBodyRef$curren2 === void 0 ? void 0 : _scrollBodyRef$curren2.clientWidth) || 0;\n var scrollBarWidth = bodyScrollWidth && bodyWidth * (bodyWidth / bodyScrollWidth);\n var scrollBarRef = React.useRef();\n\n var _useLayoutState = useLayoutState({\n scrollLeft: 0,\n isHiddenScrollBar: false\n }),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n scrollState = _useLayoutState2[0],\n setScrollState = _useLayoutState2[1];\n\n var refState = React.useRef({\n delta: 0,\n x: 0\n });\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isActive = _React$useState2[0],\n setActive = _React$useState2[1];\n\n var onMouseUp = function onMouseUp() {\n setActive(false);\n };\n\n var onMouseDown = function onMouseDown(event) {\n event.persist();\n refState.current.delta = event.pageX - scrollState.scrollLeft;\n refState.current.x = 0;\n setActive(true);\n event.preventDefault();\n };\n\n var onMouseMove = function onMouseMove(event) {\n var _window; // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n\n\n var _ref2 = event || ((_window = window) === null || _window === void 0 ? void 0 : _window.event),\n buttons = _ref2.buttons;\n\n if (!isActive || buttons === 0) {\n // If out body mouse up, we can set isActive false when mouse move\n if (isActive) {\n setActive(false);\n }\n\n return;\n }\n\n var left = refState.current.x + event.pageX - refState.current.x - refState.current.delta;\n\n if (left <= 0) {\n left = 0;\n }\n\n if (left + scrollBarWidth >= bodyWidth) {\n left = bodyWidth - scrollBarWidth;\n }\n\n onScroll({\n scrollLeft: left / bodyWidth * (bodyScrollWidth + 2)\n });\n refState.current.x = event.pageX;\n };\n\n var onContainerScroll = function onContainerScroll() {\n var tableOffsetTop = getOffset(scrollBodyRef.current).top;\n var tableBottomOffset = tableOffsetTop + scrollBodyRef.current.offsetHeight;\n var currentClientOffset = container === window ? document.documentElement.scrollTop + window.innerHeight : getOffset(container).top + container.clientHeight;\n\n if (tableBottomOffset - getScrollBarSize() <= currentClientOffset || tableOffsetTop >= currentClientOffset - offsetScroll) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: true\n });\n });\n } else {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: false\n });\n });\n }\n };\n\n var setScrollLeft = function setScrollLeft(left) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: left / bodyScrollWidth * bodyWidth || 0\n });\n });\n };\n\n React.useImperativeHandle(ref, function () {\n return {\n setScrollLeft: setScrollLeft\n };\n });\n React.useEffect(function () {\n var onMouseUpListener = addEventListener(document.body, 'mouseup', onMouseUp, false);\n var onMouseMoveListener = addEventListener(document.body, 'mousemove', onMouseMove, false);\n onContainerScroll();\n return function () {\n onMouseUpListener.remove();\n onMouseMoveListener.remove();\n };\n }, [scrollBarWidth, isActive]);\n React.useEffect(function () {\n var onScrollListener = addEventListener(container, 'scroll', onContainerScroll, false);\n var onResizeListener = addEventListener(window, 'resize', onContainerScroll, false);\n return function () {\n onScrollListener.remove();\n onResizeListener.remove();\n };\n }, [container]);\n React.useEffect(function () {\n if (!scrollState.isHiddenScrollBar) {\n setScrollState(function (state) {\n var bodyNode = scrollBodyRef.current;\n\n if (!bodyNode) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: bodyNode.scrollLeft / bodyNode.scrollWidth * bodyNode.clientWidth\n });\n });\n }\n }, [scrollState.isHiddenScrollBar]);\n\n if (bodyScrollWidth <= bodyWidth || !scrollBarWidth || scrollState.isHiddenScrollBar) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: getScrollBarSize(),\n width: bodyWidth,\n bottom: offsetScroll\n },\n className: \"\".concat(prefixCls, \"-sticky-scroll\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onMouseDown,\n ref: scrollBarRef,\n className: classNames(\"\".concat(prefixCls, \"-sticky-scroll-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-sticky-scroll-bar-active\"), isActive)),\n style: {\n width: \"\".concat(scrollBarWidth, \"px\"),\n transform: \"translate3d(\".concat(scrollState.scrollLeft, \"px, 0, 0)\")\n }\n }));\n};\n\nexport default /*#__PURE__*/React.forwardRef(StickyScrollBar);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // fix ssr render\n\nvar defaultContainer = canUseDom() ? window : null;\n/** Sticky header hooks */\n\nexport default function useSticky(sticky, prefixCls) {\n var _ref = _typeof(sticky) === 'object' ? sticky : {},\n _ref$offsetHeader = _ref.offsetHeader,\n offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,\n _ref$offsetSummary = _ref.offsetSummary,\n offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,\n _ref$offsetScroll = _ref.offsetScroll,\n offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === void 0 ? function () {\n return defaultContainer;\n } : _ref$getContainer;\n\n var container = getContainer() || defaultContainer;\n return React.useMemo(function () {\n var isSticky = !!sticky;\n return {\n isSticky: isSticky,\n stickyClassName: isSticky ? \"\".concat(prefixCls, \"-sticky-holder\") : '',\n offsetHeader: offsetHeader,\n offsetSummary: offsetSummary,\n offsetScroll: offsetScroll,\n container: container\n };\n }, [offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"noData\", \"columns\", \"flattenColumns\", \"colWidths\", \"columCount\", \"stickyOffsets\", \"direction\", \"fixHeader\", \"stickyTopOffset\", \"stickyBottomOffset\", \"stickyClassName\", \"onScroll\", \"maxContentScroll\", \"children\"];\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames';\nimport { fillRef } from \"rc-util/es/ref\";\nimport ColGroup from '../ColGroup';\nimport TableContext from '../context/TableContext';\n\nfunction useColumnWidth(colWidths, columCount) {\n return useMemo(function () {\n var cloneColumns = [];\n\n for (var i = 0; i < columCount; i += 1) {\n var val = colWidths[i];\n\n if (val !== undefined) {\n cloneColumns[i] = val;\n } else {\n return null;\n }\n }\n\n return cloneColumns;\n }, [colWidths.join('_'), columCount]);\n}\n\nvar FixedHolder = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var className = _ref.className,\n noData = _ref.noData,\n columns = _ref.columns,\n flattenColumns = _ref.flattenColumns,\n colWidths = _ref.colWidths,\n columCount = _ref.columCount,\n stickyOffsets = _ref.stickyOffsets,\n direction = _ref.direction,\n fixHeader = _ref.fixHeader,\n stickyTopOffset = _ref.stickyTopOffset,\n stickyBottomOffset = _ref.stickyBottomOffset,\n stickyClassName = _ref.stickyClassName,\n onScroll = _ref.onScroll,\n maxContentScroll = _ref.maxContentScroll,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n scrollbarSize = _React$useContext.scrollbarSize,\n isSticky = _React$useContext.isSticky;\n\n var combinationScrollBarSize = isSticky && !fixHeader ? 0 : scrollbarSize; // Pass wheel to scroll event\n\n var scrollRef = React.useRef(null);\n var setScrollRef = React.useCallback(function (element) {\n fillRef(ref, element);\n fillRef(scrollRef, element);\n }, []);\n React.useEffect(function () {\n var _scrollRef$current;\n\n function onWheel(e) {\n var currentTarget = e.currentTarget,\n deltaX = e.deltaX;\n\n if (deltaX) {\n onScroll({\n currentTarget: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n e.preventDefault();\n }\n }\n\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.addEventListener('wheel', onWheel);\n return function () {\n var _scrollRef$current2;\n\n (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.removeEventListener('wheel', onWheel);\n };\n }, []); // Check if all flattenColumns has width\n\n var allFlattenColumnsWithWidth = React.useMemo(function () {\n return flattenColumns.every(function (column) {\n return column.width >= 0;\n });\n }, [flattenColumns]); // Add scrollbar column\n\n var lastColumn = flattenColumns[flattenColumns.length - 1];\n var ScrollBarColumn = {\n fixed: lastColumn ? lastColumn.fixed : null,\n scrollbar: true,\n onHeaderCell: function onHeaderCell() {\n return {\n className: \"\".concat(prefixCls, \"-cell-scrollbar\")\n };\n }\n };\n var columnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(columns), [ScrollBarColumn]) : columns;\n }, [combinationScrollBarSize, columns]);\n var flattenColumnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(flattenColumns), [ScrollBarColumn]) : flattenColumns;\n }, [combinationScrollBarSize, flattenColumns]); // Calculate the sticky offsets\n\n var headerStickyOffsets = useMemo(function () {\n var right = stickyOffsets.right,\n left = stickyOffsets.left;\n return _objectSpread(_objectSpread({}, stickyOffsets), {}, {\n left: direction === 'rtl' ? [].concat(_toConsumableArray(left.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]) : left,\n right: direction === 'rtl' ? right : [].concat(_toConsumableArray(right.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]),\n isSticky: isSticky\n });\n }, [combinationScrollBarSize, stickyOffsets, isSticky]);\n var mergedColumnWidth = useColumnWidth(colWidths, columCount);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread({\n overflow: 'hidden'\n }, isSticky ? {\n top: stickyTopOffset,\n bottom: stickyBottomOffset\n } : {}),\n ref: setScrollRef,\n className: classNames(className, _defineProperty({}, stickyClassName, !!stickyClassName))\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: {\n tableLayout: 'fixed',\n visibility: noData || mergedColumnWidth ? null : 'hidden'\n }\n }, (!noData || !maxContentScroll || allFlattenColumnsWithWidth) && /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: mergedColumnWidth ? [].concat(_toConsumableArray(mergedColumnWidth), [combinationScrollBarSize]) : [],\n columCount: columCount + 1,\n columns: flattenColumnsWithScrollbar\n }), children(_objectSpread(_objectSpread({}, props), {}, {\n stickyOffsets: headerStickyOffsets,\n columns: columnsWithScrollbar,\n flattenColumns: flattenColumnsWithScrollbar\n }))));\n});\nFixedHolder.displayName = 'FixedHolder';\nexport default FixedHolder;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/**\n * Feature:\n * - fixed not need to set width\n * - support `rowExpandable` to config row expand logic\n * - add `summary` to support `() => ReactNode`\n *\n * Update:\n * - `dataIndex` is `array[]` now\n * - `expandable` wrap all the expand related props\n *\n * Removed:\n * - expandIconAsCell\n * - useFixedHeader\n * - rowRef\n * - columns[number].onCellClick\n * - onRowClick\n * - onRowDoubleClick\n * - onRowMouseEnter\n * - onRowMouseLeave\n * - getBodyWrapper\n * - bodyStyle\n *\n * Deprecated:\n * - All expanded props, move into expandable\n */\n\nimport * as React from 'react';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport warning from \"rc-util/es/warning\";\nimport ResizeObserver from 'rc-resize-observer';\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport ColumnGroup from './sugar/ColumnGroup';\nimport Column from './sugar/Column';\nimport Header from './Header/Header';\nimport TableContext from './context/TableContext';\nimport BodyContext from './context/BodyContext';\nimport Body from './Body';\nimport useColumns from './hooks/useColumns';\nimport { useLayoutState, useTimeoutLock } from './hooks/useFrame';\nimport { getPathValue, mergeObject, validateValue, getColumnsKey } from './utils/valueUtil';\nimport ResizeContext from './context/ResizeContext';\nimport useStickyOffsets from './hooks/useStickyOffsets';\nimport ColGroup from './ColGroup';\nimport { getExpandableProps } from './utils/legacyUtil';\nimport Panel from './Panel';\nimport Footer, { FooterComponents } from './Footer';\nimport { findAllChildrenKeys, renderExpandIcon } from './utils/expandUtil';\nimport { getCellFixedInfo } from './utils/fixUtil';\nimport StickyScrollBar from './stickyScrollBar';\nimport useSticky from './hooks/useSticky';\nimport FixedHolder from './FixedHolder';\nimport Summary from './Footer/Summary';\nimport StickyContext from './context/StickyContext'; // Used for conditions cache\n\nvar EMPTY_DATA = []; // Used for customize scroll\n\nvar EMPTY_SCROLL_TARGET = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';\nvar MemoTableContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (prev, next) {\n if (!shallowEqual(prev.props, next.props)) {\n return false;\n } // No additional render when pinged status change.\n // This is not a bug.\n\n\n return prev.pingLeft !== next.pingLeft || prev.pingRight !== next.pingRight;\n});\n\nfunction Table(props) {\n var _classNames;\n\n var prefixCls = props.prefixCls,\n className = props.className,\n rowClassName = props.rowClassName,\n style = props.style,\n data = props.data,\n rowKey = props.rowKey,\n scroll = props.scroll,\n tableLayout = props.tableLayout,\n direction = props.direction,\n title = props.title,\n footer = props.footer,\n summary = props.summary,\n id = props.id,\n showHeader = props.showHeader,\n components = props.components,\n emptyText = props.emptyText,\n onRow = props.onRow,\n onHeaderRow = props.onHeaderRow,\n internalHooks = props.internalHooks,\n transformColumns = props.transformColumns,\n internalRefs = props.internalRefs,\n sticky = props.sticky;\n var mergedData = data || EMPTY_DATA;\n var hasData = !!mergedData.length; // ===================== Warning ======================\n\n if (process.env.NODE_ENV !== 'production') {\n ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n });\n warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n } // ==================== Customize =====================\n\n\n var mergedComponents = React.useMemo(function () {\n return mergeObject(components, {});\n }, [components]);\n var getComponent = React.useCallback(function (path, defaultComponent) {\n return getPathValue(mergedComponents, path) || defaultComponent;\n }, [mergedComponents]);\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n\n return function (record) {\n var key = record && record[rowKey];\n\n if (process.env.NODE_ENV !== 'production') {\n warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n }\n\n return key;\n };\n }, [rowKey]); // ====================== Expand ======================\n\n var expandableConfig = getExpandableProps(props);\n var expandIcon = expandableConfig.expandIcon,\n expandedRowKeys = expandableConfig.expandedRowKeys,\n defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n expandedRowRender = expandableConfig.expandedRowRender,\n onExpand = expandableConfig.onExpand,\n onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n expandRowByClick = expandableConfig.expandRowByClick,\n rowExpandable = expandableConfig.rowExpandable,\n expandIconColumnIndex = expandableConfig.expandIconColumnIndex,\n expandedRowClassName = expandableConfig.expandedRowClassName,\n childrenColumnName = expandableConfig.childrenColumnName,\n indentSize = expandableConfig.indentSize;\n var mergedExpandIcon = expandIcon || renderExpandIcon;\n var mergedChildrenColumnName = childrenColumnName || 'children';\n var expandableType = React.useMemo(function () {\n if (expandedRowRender) {\n return 'row';\n }\n /* eslint-disable no-underscore-dangle */\n\n /**\n * Fix https://github.com/ant-design/ant-design/issues/21154\n * This is a workaround to not to break current behavior.\n * We can remove follow code after final release.\n *\n * To other developer:\n * Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n */\n\n\n if (props.expandable && internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n })) {\n return 'nest';\n }\n /* eslint-enable */\n\n\n return false;\n }, [!!expandedRowRender, mergedData]);\n\n var _React$useState = React.useState(function () {\n if (defaultExpandedRowKeys) {\n return defaultExpandedRowKeys;\n }\n\n if (defaultExpandAllRows) {\n return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n }\n\n return [];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerExpandedKeys = _React$useState2[0],\n setInnerExpandedKeys = _React$useState2[1];\n\n var mergedExpandedKeys = React.useMemo(function () {\n return new Set(expandedRowKeys || innerExpandedKeys || []);\n }, [expandedRowKeys, innerExpandedKeys]);\n var onTriggerExpand = React.useCallback(function (record) {\n var key = getRowKey(record, mergedData.indexOf(record));\n var newExpandedKeys;\n var hasKey = mergedExpandedKeys.has(key);\n\n if (hasKey) {\n mergedExpandedKeys.delete(key);\n newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n } else {\n newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n }\n\n setInnerExpandedKeys(newExpandedKeys);\n\n if (onExpand) {\n onExpand(!hasKey, record);\n }\n\n if (onExpandedRowsChange) {\n onExpandedRowsChange(newExpandedKeys);\n }\n }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]); // Warning if use `expandedRowRender` and nest children in the same time\n\n if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n })) {\n warning(false, '`expandedRowRender` should not use with nested Table');\n } // ====================== Column ======================\n\n\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n componentWidth = _React$useState4[0],\n setComponentWidth = _React$useState4[1];\n\n var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n expandable: !!expandedRowRender,\n expandedKeys: mergedExpandedKeys,\n getRowKey: getRowKey,\n // https://github.com/ant-design/ant-design/issues/23894\n onTriggerExpand: onTriggerExpand,\n expandIcon: mergedExpandIcon,\n expandIconColumnIndex: expandIconColumnIndex,\n direction: direction\n }), internalHooks === INTERNAL_HOOKS ? transformColumns : null),\n _useColumns2 = _slicedToArray(_useColumns, 2),\n columns = _useColumns2[0],\n flattenColumns = _useColumns2[1];\n\n var columnContext = React.useMemo(function () {\n return {\n columns: columns,\n flattenColumns: flattenColumns\n };\n }, [columns, flattenColumns]); // ====================== Scroll ======================\n\n var fullTableRef = React.useRef();\n var scrollHeaderRef = React.useRef();\n var scrollBodyRef = React.useRef();\n var scrollSummaryRef = React.useRef();\n\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n pingedLeft = _React$useState6[0],\n setPingedLeft = _React$useState6[1];\n\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n pingedRight = _React$useState8[0],\n setPingedRight = _React$useState8[1];\n\n var _useLayoutState = useLayoutState(new Map()),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n colsWidths = _useLayoutState2[0],\n updateColsWidths = _useLayoutState2[1]; // Convert map to number width\n\n\n var colsKeys = getColumnsKey(flattenColumns);\n var pureColWidths = colsKeys.map(function (columnKey) {\n return colsWidths.get(columnKey);\n });\n var colWidths = React.useMemo(function () {\n return pureColWidths;\n }, [pureColWidths.join('_')]);\n var stickyOffsets = useStickyOffsets(colWidths, flattenColumns.length, direction);\n var fixHeader = scroll && validateValue(scroll.y);\n var horizonScroll = scroll && validateValue(scroll.x) || Boolean(expandableConfig.fixed);\n var fixColumn = horizonScroll && flattenColumns.some(function (_ref2) {\n var fixed = _ref2.fixed;\n return fixed;\n }); // Sticky\n\n var stickyRef = React.useRef();\n\n var _useSticky = useSticky(sticky, prefixCls),\n isSticky = _useSticky.isSticky,\n offsetHeader = _useSticky.offsetHeader,\n offsetSummary = _useSticky.offsetSummary,\n offsetScroll = _useSticky.offsetScroll,\n stickyClassName = _useSticky.stickyClassName,\n container = _useSticky.container; // Footer (Fix footer must fixed header)\n\n\n var summaryNode = summary === null || summary === void 0 ? void 0 : summary(mergedData);\n var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed; // Scroll\n\n var scrollXStyle;\n var scrollYStyle;\n var scrollTableStyle;\n\n if (fixHeader) {\n scrollYStyle = {\n overflowY: 'scroll',\n maxHeight: scroll.y\n };\n }\n\n if (horizonScroll) {\n scrollXStyle = {\n overflowX: 'auto'\n }; // When no vertical scrollbar, should hide it\n // https://github.com/ant-design/ant-design/pull/20705\n // https://github.com/ant-design/ant-design/issues/21879\n\n if (!fixHeader) {\n scrollYStyle = {\n overflowY: 'hidden'\n };\n }\n\n scrollTableStyle = {\n width: scroll.x === true ? 'auto' : scroll.x,\n minWidth: '100%'\n };\n }\n\n var onColumnResize = React.useCallback(function (columnKey, width) {\n if (isVisible(fullTableRef.current)) {\n updateColsWidths(function (widths) {\n if (widths.get(columnKey) !== width) {\n var newWidths = new Map(widths);\n newWidths.set(columnKey, width);\n return newWidths;\n }\n\n return widths;\n });\n }\n }, []);\n\n var _useTimeoutLock = useTimeoutLock(null),\n _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n setScrollTarget = _useTimeoutLock2[0],\n getScrollTarget = _useTimeoutLock2[1];\n\n function forceScroll(scrollLeft, target) {\n if (!target) {\n return;\n }\n\n if (typeof target === 'function') {\n target(scrollLeft);\n } else if (target.scrollLeft !== scrollLeft) {\n // eslint-disable-next-line no-param-reassign\n target.scrollLeft = scrollLeft;\n }\n }\n\n var onScroll = function onScroll(_ref3) {\n var currentTarget = _ref3.currentTarget,\n scrollLeft = _ref3.scrollLeft;\n var isRTL = direction === 'rtl';\n var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n\n if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n var _stickyRef$current;\n\n setScrollTarget(compareTarget);\n forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n forceScroll(mergedScrollLeft, scrollBodyRef.current);\n forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n }\n\n if (currentTarget) {\n var scrollWidth = currentTarget.scrollWidth,\n clientWidth = currentTarget.clientWidth;\n\n if (isRTL) {\n setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n setPingedRight(-mergedScrollLeft > 0);\n } else {\n setPingedLeft(mergedScrollLeft > 0);\n setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n }\n }\n };\n\n var triggerOnScroll = function triggerOnScroll() {\n if (scrollBodyRef.current) {\n onScroll({\n currentTarget: scrollBodyRef.current\n });\n }\n };\n\n var onFullTableResize = function onFullTableResize(_ref4) {\n var width = _ref4.width;\n\n if (width !== componentWidth) {\n triggerOnScroll();\n setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n }\n }; // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n\n\n React.useEffect(function () {\n return triggerOnScroll;\n }, []);\n React.useEffect(function () {\n if (horizonScroll) {\n triggerOnScroll();\n }\n }, [horizonScroll, data, columns.length]); // ===================== Effects ======================\n\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n scrollbarSize = _React$useState10[0],\n setScrollbarSize = _React$useState10[1];\n\n var _React$useState11 = React.useState(true),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n supportSticky = _React$useState12[0],\n setSupportSticky = _React$useState12[1]; // Only IE not support, we mark as support first\n\n\n React.useEffect(function () {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n setSupportSticky(isStyleSupport('position', 'sticky'));\n }, []); // ================== INTERNAL HOOKS ==================\n\n React.useEffect(function () {\n if (internalHooks === INTERNAL_HOOKS && internalRefs) {\n internalRefs.body.current = scrollBodyRef.current;\n }\n }); // ====================== Render ======================\n\n var TableComponent = getComponent(['table'], 'table'); // Table layout\n\n var mergedTableLayout = React.useMemo(function () {\n if (tableLayout) {\n return tableLayout;\n } // https://github.com/ant-design/ant-design/issues/25227\n // When scroll.x is max-content, no need to fix table layout\n // it's width should stretch out to fit content\n\n\n if (fixColumn) {\n return scroll.x === 'max-content' ? 'auto' : 'fixed';\n }\n\n if (fixHeader || isSticky || flattenColumns.some(function (_ref5) {\n var ellipsis = _ref5.ellipsis;\n return ellipsis;\n })) {\n return 'fixed';\n }\n\n return 'auto';\n }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n var groupTableNode; // Header props\n\n var headerProps = {\n colWidths: colWidths,\n columCount: flattenColumns.length,\n stickyOffsets: stickyOffsets,\n onHeaderRow: onHeaderRow,\n fixHeader: fixHeader,\n scroll: scroll\n }; // Empty\n\n var emptyNode = React.useMemo(function () {\n if (hasData) {\n return null;\n }\n\n if (typeof emptyText === 'function') {\n return emptyText();\n }\n\n return emptyText;\n }, [hasData, emptyText]); // Body\n\n var bodyTable = /*#__PURE__*/React.createElement(Body, {\n data: mergedData,\n measureColumnWidth: fixHeader || horizonScroll || isSticky,\n expandedKeys: mergedExpandedKeys,\n rowExpandable: rowExpandable,\n getRowKey: getRowKey,\n onRow: onRow,\n emptyNode: emptyNode,\n childrenColumnName: mergedChildrenColumnName\n });\n var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: flattenColumns.map(function (_ref6) {\n var width = _ref6.width;\n return width;\n }),\n columns: flattenColumns\n });\n var customizeScrollBody = getComponent(['body']);\n\n if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {\n warning(false, '`components.body` with render props is only work on `scroll.y`.');\n }\n\n if (fixHeader || isSticky) {\n // >>>>>> Fixed Header\n var bodyContent;\n\n if (typeof customizeScrollBody === 'function') {\n bodyContent = customizeScrollBody(mergedData, {\n scrollbarSize: scrollbarSize,\n ref: scrollBodyRef,\n onScroll: onScroll\n });\n headerProps.colWidths = flattenColumns.map(function (_ref7, index) {\n var width = _ref7.width;\n var colWidth = index === columns.length - 1 ? width - scrollbarSize : width;\n\n if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n return colWidth;\n }\n\n warning(false, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n return 0;\n });\n } else {\n bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n onScroll: onScroll,\n ref: scrollBodyRef,\n className: classNames(\"\".concat(prefixCls, \"-body\"))\n }, /*#__PURE__*/React.createElement(TableComponent, {\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns\n }, summaryNode)));\n } // Fixed holder share the props\n\n\n var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n noData: !mergedData.length,\n maxContentScroll: horizonScroll && scroll.x === 'max-content'\n }, headerProps), columnContext), {}, {\n direction: direction,\n stickyClassName: stickyClassName,\n onScroll: onScroll\n });\n\n groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyTopOffset: offsetHeader,\n className: \"\".concat(prefixCls, \"-header\"),\n ref: scrollHeaderRef\n }), function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n }), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyBottomOffset: offsetSummary,\n className: \"\".concat(prefixCls, \"-summary\"),\n ref: scrollSummaryRef\n }), function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n }), isSticky && /*#__PURE__*/React.createElement(StickyScrollBar, {\n ref: stickyRef,\n offsetScroll: offsetScroll,\n scrollBodyRef: scrollBodyRef,\n onScroll: onScroll,\n container: container\n }));\n } else {\n // >>>>>> Unique table\n groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n className: classNames(\"\".concat(prefixCls, \"-content\")),\n onScroll: onScroll,\n ref: scrollBodyRef\n }, /*#__PURE__*/React.createElement(TableComponent, {\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns\n }, summaryNode)));\n }\n\n var ariaProps = pickAttrs(props, {\n aria: true,\n data: true\n });\n var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-right\"), pingedRight), _defineProperty(_classNames, \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), _defineProperty(_classNames, \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right'), _classNames)),\n style: style,\n id: id,\n ref: fullTableRef\n }, ariaProps), /*#__PURE__*/React.createElement(MemoTableContent, {\n pingLeft: pingedLeft,\n pingRight: pingedRight,\n props: _objectSpread(_objectSpread({}, props), {}, {\n stickyOffsets: stickyOffsets,\n mergedExpandedKeys: mergedExpandedKeys\n })\n }, title && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-title\")\n }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-container\")\n }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer(mergedData))));\n\n if (horizonScroll) {\n fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onFullTableResize\n }, fullTable);\n }\n\n var TableContextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n getComponent: getComponent,\n scrollbarSize: scrollbarSize,\n direction: direction,\n fixedInfoList: flattenColumns.map(function (_, colIndex) {\n return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction);\n }),\n isSticky: isSticky\n };\n }, [prefixCls, getComponent, scrollbarSize, direction, flattenColumns, stickyOffsets, direction, isSticky]);\n var BodyContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, columnContext), {}, {\n tableLayout: mergedTableLayout,\n rowClassName: rowClassName,\n expandedRowClassName: expandedRowClassName,\n componentWidth: componentWidth,\n fixHeader: fixHeader,\n fixColumn: fixColumn,\n horizonScroll: horizonScroll,\n expandIcon: mergedExpandIcon,\n expandableType: expandableType,\n expandRowByClick: expandRowByClick,\n expandedRowRender: expandedRowRender,\n onTriggerExpand: onTriggerExpand,\n expandIconColumnIndex: expandIconColumnIndex,\n indentSize: indentSize\n });\n }, [columnContext, mergedTableLayout, rowClassName, expandedRowClassName, componentWidth, fixHeader, fixColumn, horizonScroll, mergedExpandIcon, expandableType, expandRowByClick, expandedRowRender, onTriggerExpand, expandIconColumnIndex, indentSize]);\n var ResizeContextValue = React.useMemo(function () {\n return {\n onColumnResize: onColumnResize\n };\n }, [onColumnResize]);\n return /*#__PURE__*/React.createElement(StickyContext.Provider, {\n value: supportSticky\n }, /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: TableContextValue\n }, /*#__PURE__*/React.createElement(BodyContext.Provider, {\n value: BodyContextValue\n }, /*#__PURE__*/React.createElement(ResizeContext.Provider, {\n value: ResizeContextValue\n }, fullTable))));\n}\n\nTable.Column = Column;\nTable.ColumnGroup = ColumnGroup;\nTable.Summary = FooterComponents;\nTable.defaultProps = {\n rowKey: 'key',\n prefixCls: 'rc-table',\n emptyText: function emptyText() {\n return 'No Data';\n }\n};\nexport default Table;","import Table from './Table';\nimport { FooterComponents as Summary } from './Footer';\nimport Column from './sugar/Column';\nimport ColumnGroup from './sugar/ColumnGroup';\nimport { INTERNAL_COL_DEFINE } from './utils/legacyUtil';\nexport { Summary, Column, ColumnGroup, INTERNAL_COL_DEFINE };\nexport default Table;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport debounce from 'lodash/debounce';\nimport { ConfigConsumer } from '../config-provider';\nimport { tuple } from '../_util/type';\nimport { isValidElement, cloneElement } from '../_util/reactNode';\nvar SpinSizes = tuple('small', 'default', 'large'); // Render indicator\n\nvar defaultIndicator = null;\n\nfunction renderIndicator(prefixCls, props) {\n var indicator = props.indicator;\n var dotClassName = \"\".concat(prefixCls, \"-dot\"); // should not be render default indicator when indicator value is null\n\n if (indicator === null) {\n return null;\n }\n\n if (isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName)\n });\n }\n\n if (isValidElement(defaultIndicator)) {\n return cloneElement(defaultIndicator, {\n className: classNames(defaultIndicator.props.className, dotClassName)\n });\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, \"\".concat(prefixCls, \"-dot-spin\"))\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }));\n}\n\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\n\nvar Spin = /*#__PURE__*/function (_React$Component) {\n _inherits(Spin, _React$Component);\n\n var _super = _createSuper(Spin);\n\n function Spin(props) {\n var _this;\n\n _classCallCheck(this, Spin);\n\n _this = _super.call(this, props);\n\n _this.debouncifyUpdateSpinning = function (props) {\n var _ref = props || _this.props,\n delay = _ref.delay;\n\n if (delay) {\n _this.cancelExistingSpin();\n\n _this.updateSpinning = debounce(_this.originalUpdateSpinning, delay);\n }\n };\n\n _this.updateSpinning = function () {\n var spinning = _this.props.spinning;\n var currentSpinning = _this.state.spinning;\n\n if (currentSpinning !== spinning) {\n _this.setState({\n spinning: spinning\n });\n }\n };\n\n _this.renderSpin = function (_ref2) {\n var _classNames;\n\n var getPrefixCls = _ref2.getPrefixCls,\n direction = _ref2.direction;\n\n var _a = _this.props,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n size = _a.size,\n tip = _a.tip,\n wrapperClassName = _a.wrapperClassName,\n style = _a.style,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"size\", \"tip\", \"wrapperClassName\", \"style\"]);\n\n var spinning = _this.state.spinning;\n var prefixCls = getPrefixCls('spin', customizePrefixCls);\n var spinClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spinning\"), spinning), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-text\"), !!tip), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className); // fix https://fb.me/react-unknown-prop\n\n var divProps = omit(restProps, ['spinning', 'delay', 'indicator']);\n var spinElement = /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n style: style,\n className: spinClassName\n }), renderIndicator(prefixCls, _this.props), tip ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-text\")\n }, tip) : null);\n\n if (_this.isNestedPattern()) {\n var containerClassName = classNames(\"\".concat(prefixCls, \"-container\"), _defineProperty({}, \"\".concat(prefixCls, \"-blur\"), spinning));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classNames(\"\".concat(prefixCls, \"-nested-loading\"), wrapperClassName)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, _this.props.children));\n }\n\n return spinElement;\n };\n\n var spinning = props.spinning,\n delay = props.delay;\n var shouldBeDelayed = shouldDelay(spinning, delay);\n _this.state = {\n spinning: spinning && !shouldBeDelayed\n };\n _this.originalUpdateSpinning = _this.updateSpinning;\n\n _this.debouncifyUpdateSpinning(props);\n\n return _this;\n }\n\n _createClass(Spin, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateSpinning();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.debouncifyUpdateSpinning();\n this.updateSpinning();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelExistingSpin();\n }\n }, {\n key: \"cancelExistingSpin\",\n value: function cancelExistingSpin() {\n var updateSpinning = this.updateSpinning;\n\n if (updateSpinning && updateSpinning.cancel) {\n updateSpinning.cancel();\n }\n }\n }, {\n key: \"isNestedPattern\",\n value: function isNestedPattern() {\n return !!(this.props && typeof this.props.children !== 'undefined');\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderSpin);\n }\n }], [{\n key: \"setDefaultIndicator\",\n value: function setDefaultIndicator(indicator) {\n defaultIndicator = indicator;\n }\n }]);\n\n return Spin;\n}(React.Component);\n\nSpin.defaultProps = {\n spinning: true,\n size: 'default',\n wrapperClassName: ''\n};\nexport default Spin;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Pager = function Pager(props) {\n var _classNames;\n\n var prefixCls = \"\".concat(props.rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), props.active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !props.page), _defineProperty(_classNames, props.className, !!props.className), _classNames));\n\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n\n return /*#__PURE__*/React.createElement(\"li\", {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: \"0\"\n }, props.itemRender(props.page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, props.page)));\n};\n\nexport default Pager;","export default {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\n\nimport React from 'react';\nimport KEYCODE from './KeyCode';\n\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n\n var _super = _createSuper(Options);\n\n function Options() {\n var _this;\n\n _classCallCheck(this, Options);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n\n if (goButton || goInputText === '') {\n return;\n }\n\n _this.setState({\n goInputText: ''\n });\n\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n\n quickGo(_this.getValidValue());\n };\n\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n\n if (goInputText === '') {\n return;\n }\n\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n\n _this.props.quickGo(_this.getValidValue());\n }\n };\n\n return _this;\n }\n\n _createClass(Options, [{\n key: \"getValidValue\",\n value: function getValidValue() {\n var goInputText = this.state.goInputText; // eslint-disable-next-line no-restricted-globals\n\n return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText);\n }\n }, {\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = isNaN(Number(a)) ? 0 : Number(a); // eslint-disable-next-line no-restricted-globals\n\n var numberB = isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n\n if (!changeSize && !quickGo) {\n return null;\n }\n\n var pageSizeOptions = this.getPageSizeOptions();\n\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n }\n }, options);\n }\n\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur\n }), locale.page, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n\n return Options;\n}(React.Component);\n\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\n\nimport React, { cloneElement, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\n\nfunction noop() {}\n\nfunction isInteger(value) {\n return (// eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n );\n}\n\nfunction defaultItemRender(page, type, element) {\n return element;\n}\n\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\n\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n\n var _super = _createSuper(Pagination);\n\n function Pagination(props) {\n var _this;\n\n _classCallCheck(this, Pagination);\n\n _this = _super.call(this, props);\n\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n\n return iconNode;\n };\n\n _this.savePaginationNode = function (node) {\n _this.paginationNode = node;\n };\n\n _this.isValid = function (page) {\n return isInteger(page) && page !== _this.state.current;\n };\n\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n pageSize = _this$props.pageSize,\n total = _this$props.total;\n\n if (total <= pageSize) {\n return false;\n }\n\n return showQuickJumper;\n };\n\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n\n var currentInputValue = _this.state.currentInputValue;\n\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current; // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n\n _this.props.onShowSizeChange(current, size);\n\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n\n _this.handleChange = function (p) {\n var disabled = _this.props.disabled;\n var page = p;\n\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n\n if (page > currentPage) {\n page = currentPage;\n } else if (page < 1) {\n page = 1;\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: page,\n currentInputValue: page\n });\n }\n\n var pageSize = _this.state.pageSize;\n\n _this.props.onChange(page, pageSize);\n\n return page;\n }\n\n return _this.state.current;\n };\n\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n\n callback.apply(void 0, restParams);\n }\n };\n\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n\n var _current = props.defaultCurrent;\n\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n\n var _pageSize = props.defaultPageSize;\n\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n\n if (inputValue === '') {\n value = inputValue; // eslint-disable-next-line no-restricted-globals\n } else if (isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props2 = this.props,\n showSizeChanger = _this$props2.showSizeChanger,\n total = _this$props2.total,\n totalBoundaryShowSizeChanger = _this$props2.totalBoundaryShowSizeChanger;\n\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"renderPrev\",\n value: function renderPrev(prevPage) {\n var _this$props3 = this.props,\n prevIcon = _this$props3.prevIcon,\n itemRender = _this$props3.itemRender;\n var prevButton = itemRender(prevPage, 'prev', this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n }\n }, {\n key: \"renderNext\",\n value: function renderNext(nextPage) {\n var _this$props4 = this.props,\n nextIcon = _this$props4.nextIcon,\n itemRender = _this$props4.itemRender;\n var nextButton = itemRender(nextPage, 'next', this.getItemIcon(nextIcon, 'next page'));\n var disabled = !this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n className = _this$props5.className,\n style = _this$props5.style,\n disabled = _this$props5.disabled,\n hideOnSinglePage = _this$props5.hideOnSinglePage,\n total = _this$props5.total,\n locale = _this$props5.locale,\n showQuickJumper = _this$props5.showQuickJumper,\n showLessItems = _this$props5.showLessItems,\n showTitle = _this$props5.showTitle,\n showTotal = _this$props5.showTotal,\n simple = _this$props5.simple,\n itemRender = _this$props5.itemRender,\n showPrevNextJumpers = _this$props5.showPrevNextJumpers,\n jumpPrevIcon = _this$props5.jumpPrevIcon,\n jumpNextIcon = _this$props5.jumpNextIcon,\n selectComponentClass = _this$props5.selectComponentClass,\n selectPrefixCls = _this$props5.selectPrefixCls,\n pageSizeOptions = _this$props5.pageSizeOptions;\n var _this$state = this.state,\n current = _this$state.current,\n pageSize = _this$state.pageSize,\n currentInputValue = _this$state.currentInputValue; // When hideOnSinglePage is true and there is only 1 page, hide the pager\n\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = _this2.props[key];\n }\n\n return prev;\n }, {});\n\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, this.renderPrev(prevPage)), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n size: \"3\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: 1,\n className: \"\".concat(prefixCls, \"-item-disabled\")\n })));\n }\n\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n\n if (showPrevNextJumpers) {\n jumpPrev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: \"0\",\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page')));\n jumpNext = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: \"0\",\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page')));\n }\n\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n\n var totalText = null;\n\n if (showTotal) {\n totalText = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n }\n\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n unselectable: \"unselectable\",\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, this.renderPrev(prevPage)), pagerList, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, this.renderNext(nextPage)), /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n\n if ('current' in props) {\n newState.current = props.current;\n\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n\n newState.pageSize = props.pageSize;\n }\n\n return newState;\n }\n }]);\n\n return Pagination;\n}(React.Component);\n\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页'\n};","// This icon file is generated automatically.\nvar DoubleLeftOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\"\n }\n }]\n },\n \"name\": \"double-left\",\n \"theme\": \"outlined\"\n};\nexport default DoubleLeftOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\n\nDoubleLeftOutlined.displayName = 'DoubleLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);","// This icon file is generated automatically.\nvar DoubleRightOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\"\n }\n }]\n },\n \"name\": \"double-right\",\n \"theme\": \"outlined\"\n};\nexport default DoubleRightOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\n\nDoubleRightOutlined.displayName = 'DoubleRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleRightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Select from '../select';\n\nvar MiniSelect = function MiniSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({\n size: \"small\"\n }, props));\n};\n\nMiniSelect.Option = Select.Option;\nexport default MiniSelect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\n\nfunction useBreakpoint() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n screens = _useState2[0],\n setScreens = _useState2[1];\n\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n setScreens(supportScreens);\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screens;\n}\n\nexport default useBreakpoint;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport classNames from 'classnames';\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport MiniSelect from './MiniSelect';\nimport Select from '../select';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\n\nvar Pagination = function Pagination(_a) {\n var customizePrefixCls = _a.prefixCls,\n customizeSelectPrefixCls = _a.selectPrefixCls,\n className = _a.className,\n size = _a.size,\n customLocale = _a.locale,\n selectComponentClass = _a.selectComponentClass,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\", \"selectComponentClass\"]);\n\n var _useBreakpoint = useBreakpoint(),\n xs = _useBreakpoint.xs;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n\n var getIconsProps = function getIconsProps() {\n var ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\");\n var prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(LeftOutlined, null));\n var nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(RightOutlined, null));\n var jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n var jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis)); // change arrows direction in right-to-left direction\n\n if (direction === 'rtl') {\n var _ref = [nextIcon, prevIcon];\n prevIcon = _ref[0];\n nextIcon = _ref[1];\n var _ref2 = [jumpNextIcon, jumpPrevIcon];\n jumpPrevIcon = _ref2[0];\n jumpNextIcon = _ref2[1];\n }\n\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n };\n\n var renderPagination = function renderPagination(contextLocale) {\n var locale = _extends(_extends({}, contextLocale), customLocale);\n\n var isSmall = size === 'small' || !!(xs && !size && restProps.responsive);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n var extendedClassName = classNames(_defineProperty({\n mini: isSmall\n }, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(RcPagination, _extends({}, getIconsProps(), restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls,\n className: extendedClassName,\n selectComponentClass: selectComponentClass || (isSmall ? MiniSelect : Select),\n locale: locale\n }));\n };\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Pagination\",\n defaultLocale: enUS\n }, renderPagination);\n};\n\nexport default Pagination;","import Pagination from './Pagination';\nexport default Pagination;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport { useState } from 'react';\nexport var DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(pagination, mergedPagination) {\n var param = {\n current: mergedPagination.current,\n pageSize: mergedPagination.pageSize\n };\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n Object.keys(paginationObj).forEach(function (pageProp) {\n var value = mergedPagination[pageProp];\n\n if (typeof value !== 'function') {\n param[pageProp] = value;\n }\n });\n return param;\n}\n\nfunction extendsObject() {\n var result = {};\n\n for (var _len = arguments.length, list = new Array(_len), _key = 0; _key < _len; _key++) {\n list[_key] = arguments[_key];\n }\n\n list.forEach(function (obj) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n\n if (val !== undefined) {\n result[key] = val;\n }\n });\n }\n });\n return result;\n}\n\nexport default function usePagination(total, pagination, onChange) {\n var _a = pagination && _typeof(pagination) === 'object' ? pagination : {},\n _a$total = _a.total,\n paginationTotal = _a$total === void 0 ? 0 : _a$total,\n paginationObj = __rest(_a, [\"total\"]);\n\n var _useState = useState(function () {\n return {\n current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerPagination = _useState2[0],\n setInnerPagination = _useState2[1]; // ============ Basic Pagination Config ============\n\n\n var mergedPagination = extendsObject(innerPagination, paginationObj, {\n total: paginationTotal > 0 ? paginationTotal : total\n }); // Reset `current` if data length or pageSize changed\n\n var maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n\n if (mergedPagination.current > maxPage) {\n // Prevent a maximum page count of 0\n mergedPagination.current = maxPage || 1;\n }\n\n var refreshPagination = function refreshPagination(current, pageSize) {\n setInnerPagination({\n current: current !== null && current !== void 0 ? current : 1,\n pageSize: pageSize || mergedPagination.pageSize\n });\n };\n\n var onInternalChange = function onInternalChange(current, pageSize) {\n var _a;\n\n if (pagination) {\n (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n }\n\n refreshPagination(current, pageSize);\n onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n };\n\n if (pagination === false) {\n return [{}, function () {}];\n }\n\n return [_extends(_extends({}, mergedPagination), {\n onChange: onInternalChange\n }), refreshPagination];\n}","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\n\nexport default /*#__PURE__*/React.memo(Indent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\"; // @ts-ignore\n\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\n\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n\n var _super = _createSuper(InternalTreeNode);\n\n function InternalTreeNode() {\n var _this;\n\n _classCallCheck(this, InternalTreeNode);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n e.preventDefault();\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n e.preventDefault();\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n\n _this.setState({\n dragNodeHighlight: true\n });\n\n onNodeDragStart(e, _assertThisInitialized(_this));\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {// empty\n }\n };\n\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n\n _this.setState({\n dragNodeHighlight: false\n });\n\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n\n _this.setState({\n dragNodeHighlight: false\n });\n\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n\n if (_this.isLeaf()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n\n var _ref = keyEntities[eventKey] || {},\n children = _ref.children;\n\n return !!(children || []).length;\n };\n\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n\n var hasChildren = _this.hasChildren();\n\n if (isLeaf === false) {\n return false;\n }\n\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable; // Return false if tree or treeNode is not checkable\n\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n\n if (loading) {\n return;\n } // read from state to avoid loadData at same time\n\n\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx; // if switcherIconDom is null, no render switcher span\n\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n\n return switcherIcon;\n };\n\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n\n var disabled = _this.isDisabled();\n\n var checkable = _this.isCheckable();\n\n if (!checkable) return null; // [Legacy] Custom element should be separate with `checkable` in future\n\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n title = _this$props6.title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n\n var disabled = _this.isDisabled();\n\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\"); // Icon - Still show loading icon when loading without showIcon\n\n var $icon;\n\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n } // Title\n\n\n var titleNode;\n\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = draggable !== false; // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: indent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n\n return _this;\n }\n\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value: // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable; // Ignore when selectable is undefined or null\n\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value: // =========================== Render ===========================\n function render() {\n var _classNames;\n\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n\n var _ref2 = keyEntities[eventKey] || {},\n level = _ref2.level;\n\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), draggableWithoutDisabled), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n\n return InternalTreeNode;\n}(React.Component);\n\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\n\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.defaultProps = {\n title: defaultTitle\n};\nContextTreeNode.isTreeNode = 1;\nexport { InternalTreeNode };\nexport default ContextTreeNode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport function arrDel(list, value) {\n var clone = list.slice();\n var index = clone.indexOf(value);\n\n if (index >= 0) {\n clone.splice(index, 1);\n }\n\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = list.slice();\n\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = keyEntities[dragNodeKey];\n\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n} // Only used when drag, not affect SSR.\n\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n\n var clientX = event.clientX,\n clientY = event.clientY;\n\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height; // optional chain for testing\n\n\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent; // find abstract drop node by horizontal offset\n\n var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.data.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].data.key;\n abstractDropNodeEntity = keyEntities[prevNodeKey];\n }\n\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0; // Only allow cross level drop when dragging on a non-expanded node\n\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\n\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n\n return selectedKeys;\n}\n\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\n\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, processProps(props), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\n\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n } // Convert keys to object format\n\n\n var keyProps;\n\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\n\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport omit from \"rc-util/es/omit\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { getPosition, isTreeNode } from '../util';\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\n\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\n\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n\n var key = treeNode.key;\n\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n\n var dataNode = _objectSpread({\n key: key\n }, rest);\n\n var parsedChildren = dig(children);\n\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\n\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos); // Pick matched title in field title list\n\n var mergedTitle;\n\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n } // Add FlattenDataNode into list\n\n\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n\n flattenList.push(flattenNode); // Loop treeNode children\n\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n\n return flattenNode;\n });\n }\n\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\n\nexport function traverseDataNodes(dataNodes, callback, // To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n\n mergedConfig = mergedConfig || {}; // Init config\n\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n\n var mergeChildrenPropName = childrenPropName || fieldChildren; // Get keys\n\n var syntheticGetKey;\n\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n } // Process\n\n\n function processNode(node, index, parent) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0'; // Process node if is not root\n\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1\n };\n callback(data);\n } // Process children node\n\n\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n });\n });\n }\n }\n\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\n\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n\n var\n /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined; // Init config\n\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level;\n var entity = {\n node: node,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity; // Fill children\n\n entity.parent = posEntities[parentPos];\n\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\n\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n\n return eventData;\n}","import warning from \"rc-util/es/warning\";\n\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\n\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n\n return !!(disabled || disableCheckbox) || checkable === false;\n} // Fill miss keys\n\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(); // Add checked keys top to bottom\n\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n } // Add checked keys from bottom to top\n\n\n var visitedKeys = new Set();\n\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node; // Skip if no need to check\n\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n } // Skip if parent is disabled\n\n\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n\n if (allChecked && !checked) {\n allChecked = false;\n }\n\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n\n visitedKeys.add(parent.key);\n });\n }\n\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n} // Remove useless key\n\n\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys); // Remove checked keys from top to bottom\n\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n } // Remove checked keys form bottom to top\n\n\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node; // Skip if no need to check\n\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n } // Skip if parent is disabled\n\n\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n\n if (allChecked && !checked) {\n allChecked = false;\n }\n\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n\n visitedKeys.add(parent.key);\n });\n }\n\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\n\n\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n } // We only handle exist keys\n\n\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!keyEntities[key];\n\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0; // Convert entities by level for calculation\n\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n\n return result;\n}","import _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport { useState, useCallback, useMemo } from 'react';\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Menu from '../../menu';\nimport Radio from '../../radio';\nimport devWarning from '../../_util/devWarning'; // TODO: warning if use ajax!!!\n\nexport var SELECTION_ALL = 'SELECT_ALL';\nexport var SELECTION_INVERT = 'SELECT_INVERT';\nexport var SELECTION_NONE = 'SELECT_NONE';\n\nfunction getFixedType(column) {\n return column && column.fixed;\n}\n\nfunction flattenData(data, childrenColumnName) {\n var list = [];\n (data || []).forEach(function (record) {\n list.push(record);\n\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(record[childrenColumnName], childrenColumnName)));\n }\n });\n return list;\n}\n\nexport default function useSelection(rowSelection, config) {\n var _ref = rowSelection || {},\n preserveSelectedRowKeys = _ref.preserveSelectedRowKeys,\n selectedRowKeys = _ref.selectedRowKeys,\n defaultSelectedRowKeys = _ref.defaultSelectedRowKeys,\n getCheckboxProps = _ref.getCheckboxProps,\n onSelectionChange = _ref.onChange,\n onSelect = _ref.onSelect,\n onSelectAll = _ref.onSelectAll,\n onSelectInvert = _ref.onSelectInvert,\n onSelectNone = _ref.onSelectNone,\n onSelectMultiple = _ref.onSelectMultiple,\n selectionColWidth = _ref.columnWidth,\n selectionType = _ref.type,\n selections = _ref.selections,\n fixed = _ref.fixed,\n customizeRenderCell = _ref.renderCell,\n hideSelectAll = _ref.hideSelectAll,\n _ref$checkStrictly = _ref.checkStrictly,\n checkStrictly = _ref$checkStrictly === void 0 ? true : _ref$checkStrictly;\n\n var prefixCls = config.prefixCls,\n data = config.data,\n pageData = config.pageData,\n getRecordByKey = config.getRecordByKey,\n getRowKey = config.getRowKey,\n expandType = config.expandType,\n childrenColumnName = config.childrenColumnName,\n tableLocale = config.locale,\n expandIconColumnIndex = config.expandIconColumnIndex,\n getPopupContainer = config.getPopupContainer; // ========================= Keys =========================\n\n var _useMergedState = useMergedState(selectedRowKeys || defaultSelectedRowKeys || [], {\n value: selectedRowKeys\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSelectedKeys = _useMergedState2[0],\n setMergedSelectedKeys = _useMergedState2[1]; // ======================== Caches ========================\n\n\n var preserveRecordsRef = React.useRef(new Map());\n var updatePreserveRecordsCache = useCallback(function (keys) {\n if (preserveSelectedRowKeys) {\n var newCache = new Map(); // Keep key if mark as preserveSelectedRowKeys\n\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n\n newCache.set(key, record);\n }); // Refresh to new cache\n\n preserveRecordsRef.current = newCache;\n }\n }, [getRecordByKey, preserveSelectedRowKeys]); // Update cache with selectedKeys\n\n React.useEffect(function () {\n updatePreserveRecordsCache(mergedSelectedKeys);\n }, [mergedSelectedKeys]);\n\n var _useMemo = useMemo(function () {\n return checkStrictly ? {\n keyEntities: null\n } : convertDataToEntities(data, {\n externalGetKey: getRowKey,\n childrenPropName: childrenColumnName\n });\n }, [data, getRowKey, checkStrictly, childrenColumnName]),\n keyEntities = _useMemo.keyEntities; // Get flatten data\n\n\n var flattedData = useMemo(function () {\n return flattenData(pageData, childrenColumnName);\n }, [pageData, childrenColumnName]); // Get all checkbox props\n\n var checkboxPropsMap = useMemo(function () {\n var map = new Map();\n flattedData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n\n if (process.env.NODE_ENV !== 'production' && ('checked' in checkboxProps || 'defaultChecked' in checkboxProps)) {\n devWarning(false, 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.');\n }\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n var isCheckboxDisabled = useCallback(function (r) {\n var _a;\n\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n\n var _useMemo2 = useMemo(function () {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n\n var _conductCheck = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]),\n _useMemo3 = _slicedToArray(_useMemo2, 2),\n derivedSelectedKeys = _useMemo3[0],\n derivedHalfSelectedKeys = _useMemo3[1];\n\n var derivedSelectedKeySet = useMemo(function () {\n var keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n var derivedHalfSelectedKeySet = useMemo(function () {\n return selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys);\n }, [derivedHalfSelectedKeys, selectionType]); // Save last selected key to enable range selection\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n lastSelectedKey = _useState2[0],\n setLastSelectedKey = _useState2[1]; // Reset if rowSelection reset\n\n\n React.useEffect(function () {\n if (!rowSelection) {\n setMergedSelectedKeys([]);\n }\n }, [!!rowSelection]);\n var setSelectedKeys = useCallback(function (keys) {\n var availableKeys;\n var records;\n updatePreserveRecordsCache(keys);\n\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map(function (key) {\n return preserveRecordsRef.current.get(key);\n });\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n\n setMergedSelectedKeys(availableKeys);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records);\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]); // ====================== Selections ======================\n // Trigger single `onSelect` event\n\n var triggerSingleSelection = useCallback(function (key, selected, keys, event) {\n if (onSelect) {\n var rows = keys.map(function (k) {\n return getRecordByKey(k);\n });\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n\n setSelectedKeys(keys);\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n var mergedSelections = useMemo(function () {\n if (!selections || hideSelectAll) {\n return null;\n }\n\n var selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return selectionList.map(function (selection) {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect: function onSelect() {\n setSelectedKeys(data.map(function (record, index) {\n return getRowKey(record, index);\n }).filter(function (key) {\n var checkProps = checkboxPropsMap.get(key);\n return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n }));\n }\n };\n }\n\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect: function onSelect() {\n var keySet = new Set(derivedSelectedKeySet);\n pageData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkProps = checkboxPropsMap.get(key);\n\n if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n if (keySet.has(key)) {\n keySet[\"delete\"](key);\n } else {\n keySet.add(key);\n }\n }\n });\n var keys = Array.from(keySet);\n\n if (onSelectInvert) {\n devWarning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.');\n onSelectInvert(keys);\n }\n\n setSelectedKeys(keys);\n }\n };\n }\n\n if (selection === SELECTION_NONE) {\n return {\n key: 'none',\n text: tableLocale.selectNone,\n onSelect: function onSelect() {\n onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n setSelectedKeys(Array.from(derivedSelectedKeySet).filter(function (key) {\n var checkProps = checkboxPropsMap.get(key);\n return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n }));\n }\n };\n }\n\n return selection;\n });\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]); // ======================= Columns ========================\n\n var transformColumns = useCallback(function (columns) {\n if (!rowSelection) {\n return columns;\n } // Support selection\n\n\n var keySet = new Set(derivedSelectedKeySet); // Record key only need check with enabled\n\n var recordKeys = flattedData.map(getRowKey).filter(function (key) {\n return !checkboxPropsMap.get(key).disabled;\n });\n var checkedCurrentAll = recordKeys.every(function (key) {\n return keySet.has(key);\n });\n var checkedCurrentSome = recordKeys.some(function (key) {\n return keySet.has(key);\n });\n\n var onSelectAllChange = function onSelectAllChange() {\n var changeKeys = [];\n\n if (checkedCurrentAll) {\n recordKeys.forEach(function (key) {\n keySet[\"delete\"](key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(function (key) {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n\n var keys = Array.from(keySet);\n onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(function (k) {\n return getRecordByKey(k);\n }), changeKeys.map(function (k) {\n return getRecordByKey(k);\n }));\n setSelectedKeys(keys);\n }; // ===================== Render =====================\n // Title Cell\n\n\n var title;\n\n if (selectionType !== 'radio') {\n var customizeSelections;\n\n if (mergedSelections) {\n var menu = /*#__PURE__*/React.createElement(Menu, {\n getPopupContainer: getPopupContainer\n }, mergedSelections.map(function (selection, index) {\n var key = selection.key,\n text = selection.text,\n onSelectionClick = selection.onSelect;\n return /*#__PURE__*/React.createElement(Menu.Item, {\n key: key || index,\n onClick: function onClick() {\n onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n }\n }, text);\n }));\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection-extra\")\n }, /*#__PURE__*/React.createElement(Dropdown, {\n overlay: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n\n var allDisabledData = flattedData.map(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = checkboxPropsMap.get(key) || {};\n return _extends({\n checked: keySet.has(key)\n }, checkboxProps);\n }).filter(function (_ref2) {\n var disabled = _ref2.disabled;\n return disabled;\n });\n var allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n var allDisabledAndChecked = allDisabled && allDisabledData.every(function (_ref3) {\n var checked = _ref3.checked;\n return checked;\n });\n var allDisabledSomeChecked = allDisabled && allDisabledData.some(function (_ref4) {\n var checked = _ref4.checked;\n return checked;\n });\n title = !hideSelectAll && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection\")\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled,\n skipGroup: true\n }), customizeSelections);\n } // Body Cell\n\n\n var renderCell;\n\n if (selectionType === 'radio') {\n renderCell = function renderCell(_, record, index) {\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n return {\n node: /*#__PURE__*/React.createElement(Radio, _extends({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(event) {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n })),\n checked: checked\n };\n };\n } else {\n renderCell = function renderCell(_, record, index) {\n var _a;\n\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n var indeterminate = derivedHalfSelectedKeySet.has(key);\n var checkboxProps = checkboxPropsMap.get(key);\n var mergedIndeterminate;\n\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n devWarning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.');\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n } // Record checked\n\n\n return {\n node: /*#__PURE__*/React.createElement(Checkbox, _extends({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n skipGroup: true,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(_ref5) {\n var nativeEvent = _ref5.nativeEvent;\n var shiftKey = nativeEvent.shiftKey;\n var startIndex = -1;\n var endIndex = -1; // Get range of this\n\n if (shiftKey && checkStrictly) {\n var pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some(function (recordKey, recordIndex) {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n\n return false;\n });\n }\n\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n var rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n var changedKeys = [];\n\n if (checked) {\n rangeKeys.forEach(function (recordKey) {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet[\"delete\"](recordKey);\n }\n });\n } else {\n rangeKeys.forEach(function (recordKey) {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n\n var keys = Array.from(keySet);\n onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }), changedKeys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }));\n setSelectedKeys(keys);\n } else {\n // Single record selected\n var originCheckedKeys = derivedSelectedKeys;\n\n if (checkStrictly) {\n var checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n var result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n var _checkedKeys = result.checkedKeys,\n halfCheckedKeys = result.halfCheckedKeys;\n var nextCheckedKeys = _checkedKeys; // If remove, we do it again to correction\n\n if (checked) {\n var tempKeySet = new Set(_checkedKeys);\n tempKeySet[\"delete\"](key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys: halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n\n setLastSelectedKey(key);\n }\n })),\n checked: checked\n };\n };\n }\n\n var renderSelectionCell = function renderSelectionCell(_, record, index) {\n var _renderCell = renderCell(_, record, index),\n node = _renderCell.node,\n checked = _renderCell.checked;\n\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n\n return node;\n }; // Columns\n\n\n var selectionColumn = _defineProperty({\n width: selectionColWidth,\n className: \"\".concat(prefixCls, \"-selection-column\"),\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell\n }, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-selection-col\")\n });\n\n if (expandType === 'row' && columns.length && !expandIconColumnIndex) {\n var _columns = _toArray(columns),\n expandColumn = _columns[0],\n restColumns = _columns.slice(1);\n\n var selectionFixed = fixed || getFixedType(restColumns[0]);\n\n if (selectionFixed) {\n expandColumn.fixed = selectionFixed;\n }\n\n return [expandColumn, _extends(_extends({}, selectionColumn), {\n fixed: selectionFixed\n })].concat(_toConsumableArray(restColumns));\n }\n\n return [_extends(_extends({}, selectionColumn), {\n fixed: fixed || getFixedType(columns[0])\n })].concat(_toConsumableArray(columns));\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n}","// This icon file is generated automatically.\nvar CaretDownOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"0 0 1024 1024\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\"\n }\n }]\n },\n \"name\": \"caret-down\",\n \"theme\": \"outlined\"\n};\nexport default CaretDownOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretDownOutlined = function CaretDownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretDownOutlinedSvg\n }));\n};\n\nCaretDownOutlined.displayName = 'CaretDownOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretDownOutlined);","// This icon file is generated automatically.\nvar CaretUpOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"0 0 1024 1024\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\"\n }\n }]\n },\n \"name\": \"caret-up\",\n \"theme\": \"outlined\"\n};\nexport default CaretUpOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretUpOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretUpOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretUpOutlined = function CaretUpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretUpOutlinedSvg\n }));\n};\n\nCaretUpOutlined.displayName = 'CaretUpOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretUpOutlined);","export function getColumnKey(column, defaultKey) {\n if ('key' in column && column.key !== undefined && column.key !== null) {\n return column.key;\n }\n\n if (column.dataIndex) {\n return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n }\n\n return defaultKey;\n}\nexport function getColumnPos(index, pos) {\n return pos ? \"\".concat(pos, \"-\").concat(index) : \"\".concat(index);\n}\nexport function renderColumnTitle(title, props) {\n if (typeof title === 'function') {\n return title(props);\n }\n\n return title;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../util';\nvar ASCEND = 'ascend';\nvar DESCEND = 'descend';\n\nfunction getMultiplePriority(column) {\n if (_typeof(column.sorter) === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n\n return false;\n}\n\nfunction getSortFunction(sorter) {\n if (typeof sorter === 'function') {\n return sorter;\n }\n\n if (sorter && _typeof(sorter) === 'object' && sorter.compare) {\n return sorter.compare;\n }\n\n return false;\n}\n\nfunction nextSortDirection(sortDirections, current) {\n if (!current) {\n return sortDirections[0];\n }\n\n return sortDirections[sortDirections.indexOf(current) + 1];\n}\n\nfunction collectSortStates(columns, init, pos) {\n var sortStates = [];\n\n function pushState(column, columnPos) {\n sortStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n }\n\n (columns || []).forEach(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n}\n\nfunction injectSorter(prefixCls, columns, sorterSates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n return (columns || []).map(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n var newColumn = column;\n\n if (newColumn.sorter) {\n var sortDirections = newColumn.sortDirections || defaultSortDirections;\n var showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n var columnKey = getColumnKey(newColumn, columnPos);\n var sorterState = sorterSates.find(function (_ref) {\n var key = _ref.key;\n return key === columnKey;\n });\n var sorterOrder = sorterState ? sorterState.sortOrder : null;\n var nextSortOrder = nextSortDirection(sortDirections, sorterOrder);\n var upNode = sortDirections.includes(ASCEND) && /*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter-up\"), {\n active: sorterOrder === ASCEND\n })\n });\n var downNode = sortDirections.includes(DESCEND) && /*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter-down\"), {\n active: sorterOrder === DESCEND\n })\n });\n\n var _ref2 = tableLocale || {},\n cancelSort = _ref2.cancelSort,\n triggerAsc = _ref2.triggerAsc,\n triggerDesc = _ref2.triggerDesc;\n\n var sortTip = cancelSort;\n\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n\n var tooltipProps = _typeof(showSorterTooltip) === 'object' ? showSorterTooltip : {\n title: sortTip\n };\n newColumn = _extends(_extends({}, newColumn), {\n className: classNames(newColumn.className, _defineProperty({}, \"\".concat(prefixCls, \"-column-sort\"), sorterOrder)),\n title: function title(renderProps) {\n var renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-column-sorters\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-column-title\")\n }, renderColumnTitle(column.title, renderProps)), /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-sorter-full\"), !!(upNode && downNode)))\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-column-sorter-inner\")\n }, upNode, downNode)));\n return showSorterTooltip ? /*#__PURE__*/React.createElement(Tooltip, tooltipProps, renderSortTitle) : renderSortTitle;\n },\n onHeaderCell: function onHeaderCell(col) {\n var cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n var originOnClick = cell.onClick;\n\n cell.onClick = function (event) {\n triggerSorter({\n column: column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n\n if (originOnClick) {\n originOnClick(event);\n }\n };\n\n cell.className = classNames(cell.className, \"\".concat(prefixCls, \"-column-has-sorters\"));\n return cell;\n }\n });\n }\n\n if ('children' in newColumn) {\n newColumn = _extends(_extends({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterSates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n\n return newColumn;\n });\n}\n\nfunction stateToInfo(sorterStates) {\n var column = sorterStates.column,\n sortOrder = sorterStates.sortOrder;\n return {\n column: column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n}\n\nfunction generateSorterInfo(sorterStates) {\n var list = sorterStates.filter(function (_ref3) {\n var sortOrder = _ref3.sortOrder;\n return sortOrder;\n }).map(stateToInfo); // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n\n if (list.length === 0 && sorterStates.length) {\n return _extends(_extends({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n column: undefined\n });\n }\n\n if (list.length <= 1) {\n return list[0] || {};\n }\n\n return list;\n}\n\nexport function getSortData(data, sortStates, childrenColumnName) {\n var innerSorterStates = sortStates.slice().sort(function (a, b) {\n return b.multiplePriority - a.multiplePriority;\n });\n var cloneData = data.slice();\n var runningSorters = innerSorterStates.filter(function (_ref4) {\n var sorter = _ref4.column.sorter,\n sortOrder = _ref4.sortOrder;\n return getSortFunction(sorter) && sortOrder;\n }); // Skip if no sorter needed\n\n if (!runningSorters.length) {\n return cloneData;\n }\n\n return cloneData.sort(function (record1, record2) {\n for (var i = 0; i < runningSorters.length; i += 1) {\n var sorterState = runningSorters[i];\n var sorter = sorterState.column.sorter,\n sortOrder = sorterState.sortOrder;\n var compareFn = getSortFunction(sorter);\n\n if (compareFn && sortOrder) {\n var compareResult = compareFn(record1, record2, sortOrder);\n\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n\n return 0;\n }).map(function (record) {\n var subRecords = record[childrenColumnName];\n\n if (subRecords) {\n return _extends(_extends({}, record), _defineProperty({}, childrenColumnName, getSortData(subRecords, sortStates, childrenColumnName)));\n }\n\n return record;\n });\n}\nexport default function useFilterSorter(_ref5) {\n var prefixCls = _ref5.prefixCls,\n mergedColumns = _ref5.mergedColumns,\n onSorterChange = _ref5.onSorterChange,\n sortDirections = _ref5.sortDirections,\n tableLocale = _ref5.tableLocale,\n showSorterTooltip = _ref5.showSorterTooltip;\n\n var _React$useState = React.useState(collectSortStates(mergedColumns, true)),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sortStates = _React$useState2[0],\n setSortStates = _React$useState2[1];\n\n var mergedSorterStates = React.useMemo(function () {\n var validate = true;\n var collectedStates = collectSortStates(mergedColumns, false); // Return if not controlled\n\n if (!collectedStates.length) {\n return sortStates;\n }\n\n var validateStates = [];\n\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(_extends(_extends({}, state), {\n sortOrder: null\n }));\n }\n }\n\n var multipleMode = null;\n collectedStates.forEach(function (state) {\n if (multipleMode === null) {\n patchStates(state);\n\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]); // Get render columns title required props\n\n var columnTitleSorterProps = React.useMemo(function () {\n var sortColumns = mergedSorterStates.map(function (_ref6) {\n var column = _ref6.column,\n sortOrder = _ref6.sortOrder;\n return {\n column: column,\n order: sortOrder\n };\n });\n return {\n sortColumns: sortColumns,\n // Legacy\n sortColumn: sortColumns[0] && sortColumns[0].column,\n sortOrder: sortColumns[0] && sortColumns[0].order\n };\n }, [mergedSorterStates]);\n\n function triggerSorter(sortState) {\n var newSorterStates;\n\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(function (_ref7) {\n var key = _ref7.key;\n return key !== sortState.key;\n })), [sortState]);\n }\n\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n }\n\n var transformColumns = function transformColumns(innerColumns) {\n return injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n };\n\n var getSorters = function getSorters() {\n return generateSorterInfo(mergedSorterStates);\n };\n\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}","// This icon file is generated automatically.\nvar FilterFilled = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\"\n }\n }]\n },\n \"name\": \"filter\",\n \"theme\": \"filled\"\n};\nexport default FilterFilled;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FilterFilledSvg from \"@ant-design/icons-svg/es/asn/FilterFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FilterFilled = function FilterFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FilterFilledSvg\n }));\n};\n\nFilterFilled.displayName = 'FilterFilled';\nexport default /*#__PURE__*/React.forwardRef(FilterFilled);","// This icon file is generated automatically.\nvar HolderOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\"\n }\n }]\n },\n \"name\": \"holder\",\n \"theme\": \"outlined\"\n};\nexport default HolderOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar HolderOutlined = function HolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: HolderOutlinedSvg\n }));\n};\n\nHolderOutlined.displayName = 'HolderOutlined';\nexport default /*#__PURE__*/React.forwardRef(HolderOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TreeNode from './TreeNode';\nimport { getTreeNodeProps } from './utils/treeUtil';\nimport { TreeContext } from './contextTypes';\n\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n\n var motionedRef = React.useRef(false);\n\n var onMotionEnd = function onMotionEnd() {\n if (!motionedRef.current) {\n onOriginMotionEnd();\n }\n\n motionedRef.current = true;\n };\n\n useEffect(function () {\n if (motionNodes && motionType === 'hide' && visible) {\n setVisible(false);\n }\n }, [motionNodes]);\n useEffect(function () {\n // Trigger motion only when patched\n if (motionNodes) {\n onOriginMotionStart();\n }\n\n return function () {\n if (motionNodes) {\n onMotionEnd();\n }\n };\n }, []);\n\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onAppearEnd: onMotionEnd,\n onLeaveEnd: onMotionEnd\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, treeNode.data),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\n\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (_ref) {\n var data = _ref.data;\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (_ref2) {\n var data = _ref2.data;\n return data.key === key;\n });\n\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (_ref3) {\n var data = _ref3.data;\n return data.key === shorterEndNode.data.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n\n return longer.slice(longerStartIndex + 1);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\n\nimport * as React from 'react';\nimport VirtualList from 'rc-virtual-list';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getTreeNodeProps, getKey } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\n\nvar noop = function noop() {};\n\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\n\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\n\nfunction itemKey(item) {\n var key = item.data.key,\n pos = item.pos;\n return getKey(key, pos);\n}\n\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n\n return path;\n}\n\nvar RefNodeList = function RefNodeList(props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded); // =============================== Ref ================================\n\n\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n }); // ============================== Motion ==============================\n\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n\n function onMotionEnd() {\n setPrevData(data);\n setTransitionData(data);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n } // Do animation if expanded keys changed\n\n\n React.useEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.data.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.data.key;\n return key === diffExpanded.key;\n });\n\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n\n var _newTransitionData = data.slice();\n\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]); // We should clean up motion if is changed by dragging\n\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden'\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n }); // Motion node is not render. Skip motion\n\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, treeNode.data),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.data.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n};\n\nvar NodeList = /*#__PURE__*/React.forwardRef(RefNodeList);\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\"; // TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\n\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport classNames from 'classnames';\nimport { TreeContext } from './contextTypes';\nimport { getDragChildrenKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr } from './util';\nimport { flattenTreeData, convertTreeToData, convertDataToEntities, warningWithoutKey, convertNodePropsToEventData, getTreeNodeProps, fillFieldNames } from './utils/treeUtil';\nimport NodeList, { MOTION_KEY, MotionEntity } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { conductCheck } from './utils/conductUtil';\nimport DropIndicator from './DropIndicator';\nvar MAX_RETRY_TIMES = 10;\n\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n\n var _super = _createSuper(Tree);\n\n function Tree() {\n var _this;\n\n _classCallCheck(this, Tree);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n _this.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n\n _this.setExpandedKeys(newExpandedKeys);\n\n window.addEventListener('dragend', _this.onWindowDragEnd);\n\n if (onDragStart) {\n onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n }\n };\n\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode; // record the key of node which is latest entered, used in dragleave event.\n\n\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n\n if (!dragNode || // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 || // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n\n return;\n } // Side effect for delay drag\n\n\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n\n var entity = keyEntities[node.props.eventKey];\n\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n\n if (onExpand) {\n onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }\n }, 800);\n } // Skip if drag node is self\n\n\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n\n return;\n } // Update drag over node and drag state\n\n\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n\n if (onDragEnter) {\n onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n }\n };\n\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n\n if (!dragNode || dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n } // Update drag position\n\n\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.setState({\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false,\n dragOverNodeKey: null\n });\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n\n if (onDragOver) {\n onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n }\n };\n\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.setState({\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false,\n dragOverNodeKey: null\n });\n\n _this.currentMouseOverDroppableNodeKey = null;\n }\n\n var onDragLeave = _this.props.onDragLeave;\n\n if (onDragLeave) {\n onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n }\n };\n\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n\n _this.onNodeDragEnd = function (event, node) {\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var onDragEnd = _this.props.onDragEnd;\n\n _this.setState({\n dragOverNodeKey: null\n });\n\n _this.cleanDragState();\n\n if (onDragEnd && !outsideTree) {\n onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n }\n\n _this.dragNode = null;\n };\n\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n\n _this.setState({\n dragOverNodeKey: null\n });\n\n _this.cleanDragState();\n\n if (dropTargetKey === null) return;\n\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.data.key) === dropTargetKey,\n data: _this.state.keyEntities[dropTargetKey].node\n });\n\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n\n if (onDrop && !outsideTree) {\n onDrop(dropResult);\n }\n\n _this.dragNode = null;\n };\n\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n\n _this.onNodeClick = function (e, treeNode) {\n var onClick = _this.props.onClick;\n\n if (onClick) {\n onClick(e, treeNode);\n }\n };\n\n _this.onNodeDoubleClick = function (e, treeNode) {\n var onDoubleClick = _this.props.onDoubleClick;\n\n if (onDoubleClick) {\n onDoubleClick(e, treeNode);\n }\n };\n\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state5 = _this.state,\n keyEntities = _this$state5.keyEntities,\n fieldNames = _this$state5.fieldNames;\n var _this$props3 = _this.props,\n onSelect = _this$props3.onSelect,\n multiple = _this$props3.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected; // Update selected keys\n\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n } // [Legacy] Not found related usage in doc or upper libs\n\n\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = keyEntities[selectedKey];\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n\n if (onSelect) {\n onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n }\n };\n\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n oriCheckedKeys = _this$state6.checkedKeys,\n oriHalfCheckedKeys = _this$state6.halfCheckedKeys;\n var _this$props4 = _this.props,\n checkStrictly = _this$props4.checkStrictly,\n onCheck = _this$props4.onCheck;\n var key = treeNode.key; // Prepare trigger arguments\n\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return keyEntities[checkedKey];\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys; // If remove, we do it again to correction\n\n\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n\n checkedObj = _checkedKeys; // [Legacy] This is used for `rc-tree-select`\n\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n\n _checkedKeys.forEach(function (checkedKey) {\n var entity = keyEntities[checkedKey];\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n\n if (onCheck) {\n onCheck(checkedObj, eventObj);\n }\n };\n\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props5 = _this.props,\n loadData = _this$props5.loadData,\n onLoad = _this$props5.onLoad;\n\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n } // Process load data\n\n\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key); // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n\n if (onLoad) {\n onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n }\n\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n }); // If exceed max retry times, we give up retry\n\n\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n\n resolve();\n }\n\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n }); // Not care warning if we ignore this\n\n loadPromise.catch(function () {});\n return loadPromise;\n };\n\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n if (onMouseEnter) {\n onMouseEnter({\n event: event,\n node: node\n });\n }\n };\n\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n\n if (onMouseLeave) {\n onMouseLeave({\n event: event,\n node: node\n });\n }\n };\n\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n\n _this.setState({\n focused: true\n });\n\n if (onFocus) {\n onFocus.apply(void 0, arguments);\n }\n };\n\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n\n _this.setState({\n focused: false\n });\n\n _this.onActiveChange(null);\n\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n };\n\n _this.getTreeNodeRequiredProps = function () {\n var _this$state7 = _this.state,\n expandedKeys = _this$state7.expandedKeys,\n selectedKeys = _this$state7.selectedKeys,\n loadedKeys = _this$state7.loadedKeys,\n loadingKeys = _this$state7.loadingKeys,\n checkedKeys = _this$state7.checkedKeys,\n halfCheckedKeys = _this$state7.halfCheckedKeys,\n dragOverNodeKey = _this$state7.dragOverNodeKey,\n dropPosition = _this$state7.dropPosition,\n keyEntities = _this$state7.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state8 = _this.state,\n treeData = _this$state8.treeData,\n fieldNames = _this$state8.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state9 = _this.state,\n listChanging = _this$state9.listChanging,\n fieldNames = _this$state9.fieldNames;\n var _this$props6 = _this.props,\n onExpand = _this$props6.onExpand,\n loadData = _this$props6.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key]; // Do nothing when motion is in progress\n\n if (listChanging) {\n return;\n } // Update selected keys\n\n\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n\n _this.setExpandedKeys(expandedKeys);\n\n if (onExpand) {\n onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n } // Async Load data\n\n\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n\n if (activeKey === newActiveKey) {\n return;\n }\n\n _this.setState({\n activeKey: newActiveKey\n });\n\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n\n if (onActiveChange) {\n onActiveChange(newActiveKey);\n }\n };\n\n _this.getActiveItem = function () {\n var _this$state10 = _this.state,\n activeKey = _this$state10.activeKey,\n flattenNodes = _this$state10.flattenNodes;\n\n if (activeKey === null) {\n return null;\n }\n\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n\n _this.offsetActiveKey = function (offset) {\n var _this$state11 = _this.state,\n flattenNodes = _this$state11.flattenNodes,\n activeKey = _this$state11.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n }); // Align with index\n\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n\n if (item) {\n var key = item.key;\n\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n\n _this.onKeyDown = function (event) {\n var _this$state12 = _this.state,\n activeKey = _this$state12.activeKey,\n expandedKeys = _this$state12.expandedKeys,\n checkedKeys = _this$state12.checkedKeys;\n var _this$props7 = _this.props,\n onKeyDown = _this$props7.onKeyDown,\n checkable = _this$props7.checkable,\n selectable = _this$props7.selectable; // >>>>>>>>>> Direction\n\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n\n event.preventDefault();\n break;\n }\n\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n\n event.preventDefault();\n break;\n }\n } // >>>>>>>>>> Expand & Selection\n\n\n var activeItem = _this.getActiveItem();\n\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data.children || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.data.key);\n }\n\n event.preventDefault();\n break;\n }\n\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].data.key);\n }\n\n event.preventDefault();\n break;\n }\n // Selection\n\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n\n break;\n }\n }\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n\n return _this;\n }\n\n _createClass(Tree, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$state13 = this.state,\n focused = _this$state13.focused,\n flattenNodes = _this$state13.flattenNodes,\n keyEntities = _this$state13.keyEntities,\n draggingNodeKey = _this$state13.draggingNodeKey,\n activeKey = _this$state13.activeKey,\n dropLevelOffset = _this$state13.dropLevelOffset,\n dropContainerKey = _this$state13.dropContainerKey,\n dropTargetKey = _this$state13.dropTargetKey,\n dropPosition = _this$state13.dropPosition,\n dragOverNodeKey = _this$state13.dragOverNodeKey,\n indent = _this$state13.indent;\n var _this$props8 = this.props,\n prefixCls = _this$props8.prefixCls,\n className = _this$props8.className,\n style = _this$props8.style,\n showLine = _this$props8.showLine,\n focusable = _this$props8.focusable,\n _this$props8$tabIndex = _this$props8.tabIndex,\n tabIndex = _this$props8$tabIndex === void 0 ? 0 : _this$props8$tabIndex,\n selectable = _this$props8.selectable,\n showIcon = _this$props8.showIcon,\n icon = _this$props8.icon,\n switcherIcon = _this$props8.switcherIcon,\n draggable = _this$props8.draggable,\n checkable = _this$props8.checkable,\n checkStrictly = _this$props8.checkStrictly,\n disabled = _this$props8.disabled,\n motion = _this$props8.motion,\n loadData = _this$props8.loadData,\n filterTreeNode = _this$props8.filterTreeNode,\n height = _this$props8.height,\n itemHeight = _this$props8.itemHeight,\n virtual = _this$props8.virtual,\n titleRender = _this$props8.titleRender,\n dropIndicatorRender = _this$props8.dropIndicatorRender,\n onContextMenu = _this$props8.onContextMenu,\n onScroll = _this$props8.onScroll,\n direction = _this$props8.direction;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n }); // It's better move to hooks but we just simply keep here\n\n var draggableConfig;\n\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames))\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n } // ================== Tree Node ==================\n\n\n var treeData; // fieldNames\n\n var fieldNames = prevState.fieldNames;\n\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n } // Check if `treeData` or `children` changed and save into the state.\n\n\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n } // Save flatten nodes info and convert `treeData` into keyEntities\n\n\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities); // Warning if treeNode not provide key\n\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n\n var keyEntities = newState.keyEntities || prevState.keyEntities; // ================ expandedKeys =================\n\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n } // ================ flattenNodes =================\n\n\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n } // ================ selectedKeys =================\n\n\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n } // ================= checkedKeys =================\n\n\n if (props.checkable) {\n var checkedKeyEntity;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n } // ================= loadedKeys ==================\n\n\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n\n return newState;\n }\n }]);\n\n return Tree;\n}(React.Component);\n\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n }\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\n}","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nexport { TreeNode };\nexport default Tree;","// This icon file is generated automatically.\nvar FileOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\"\n }\n }]\n },\n \"name\": \"file\",\n \"theme\": \"outlined\"\n};\nexport default FileOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FileOutlined = function FileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FileOutlinedSvg\n }));\n};\n\nFileOutlined.displayName = 'FileOutlined';\nexport default /*#__PURE__*/React.forwardRef(FileOutlined);","// This icon file is generated automatically.\nvar FolderOpenOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\"\n }\n }]\n },\n \"name\": \"folder-open\",\n \"theme\": \"outlined\"\n};\nexport default FolderOpenOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FolderOpenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOpenOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FolderOpenOutlined = function FolderOpenOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FolderOpenOutlinedSvg\n }));\n};\n\nFolderOpenOutlined.displayName = 'FolderOpenOutlined';\nexport default /*#__PURE__*/React.forwardRef(FolderOpenOutlined);","// This icon file is generated automatically.\nvar FolderOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\"\n }\n }]\n },\n \"name\": \"folder\",\n \"theme\": \"outlined\"\n};\nexport default FolderOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FolderOutlined = function FolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FolderOutlinedSvg\n }));\n};\n\nFolderOutlined.displayName = 'FolderOutlined';\nexport default /*#__PURE__*/React.forwardRef(FolderOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar Record;\n\n(function (Record) {\n Record[Record[\"None\"] = 0] = \"None\";\n Record[Record[\"Start\"] = 1] = \"Start\";\n Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {}));\n\nfunction traverseNodesKey(treeData, callback) {\n function processNode(dataNode) {\n var key = dataNode.key,\n children = dataNode.children;\n\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback);\n }\n }\n\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\n\n\nexport function calcRangeKeys(_ref) {\n var treeData = _ref.treeData,\n expandedKeys = _ref.expandedKeys,\n startKey = _ref.startKey,\n endKey = _ref.endKey;\n var keys = [];\n var record = Record.None;\n\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n\n if (!startKey || !endKey) {\n return [];\n }\n\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n\n traverseNodesKey(treeData, function (key) {\n if (record === Record.End) {\n return false;\n }\n\n if (matchKey(key)) {\n // Match test\n keys.push(key);\n\n if (record === Record.None) {\n record = Record.Start;\n } else if (record === Record.Start) {\n record = Record.End;\n return false;\n }\n } else if (record === Record.Start) {\n // Append selection\n keys.push(key);\n }\n\n if (expandedKeys.indexOf(key) === -1) {\n return false;\n }\n\n return true;\n });\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys) {\n var restKeys = _toConsumableArray(keys);\n\n var nodes = [];\n traverseNodesKey(treeData, function (key, node) {\n var index = restKeys.indexOf(key);\n\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n\n return !!restKeys.length;\n });\n return nodes;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\n\nfunction getIcon(props) {\n var isLeaf = props.isLeaf,\n expanded = props.expanded;\n\n if (isLeaf) {\n return /*#__PURE__*/React.createElement(FileOutlined, null);\n }\n\n return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\n\nfunction getTreeData(_ref) {\n var treeData = _ref.treeData,\n children = _ref.children;\n return treeData || convertTreeToData(children);\n}\n\nvar DirectoryTree = function DirectoryTree(_a, ref) {\n var defaultExpandAll = _a.defaultExpandAll,\n defaultExpandParent = _a.defaultExpandParent,\n defaultExpandedKeys = _a.defaultExpandedKeys,\n props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]); // Shift click usage\n\n\n var lastSelectedKey = React.useRef();\n var cachedSelectedKeys = React.useRef();\n var treeRef = /*#__PURE__*/React.createRef();\n React.useImperativeHandle(ref, function () {\n return treeRef.current;\n });\n\n var getInitExpandedKeys = function getInitExpandedKeys() {\n var _convertDataToEntitie = convertDataToEntities(getTreeData(props)),\n keyEntities = _convertDataToEntitie.keyEntities;\n\n var initExpandedKeys; // Expanded keys\n\n if (defaultExpandAll) {\n initExpandedKeys = Object.keys(keyEntities);\n } else if (defaultExpandParent) {\n initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n } else {\n initExpandedKeys = props.expandedKeys || defaultExpandedKeys;\n }\n\n return initExpandedKeys;\n };\n\n var _React$useState = React.useState(props.selectedKeys || props.defaultSelectedKeys || []),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedKeys = _React$useState2[0],\n setSelectedKeys = _React$useState2[1];\n\n var _React$useState3 = React.useState(getInitExpandedKeys()),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n expandedKeys = _React$useState4[0],\n setExpandedKeys = _React$useState4[1];\n\n React.useEffect(function () {\n if ('selectedKeys' in props) {\n setSelectedKeys(props.selectedKeys);\n }\n }, [props.selectedKeys]);\n React.useEffect(function () {\n if ('expandedKeys' in props) {\n setExpandedKeys(props.expandedKeys);\n }\n }, [props.expandedKeys]);\n\n var expandFolderNode = function expandFolderNode(event, node) {\n var isLeaf = node.isLeaf;\n\n if (isLeaf || event.shiftKey || event.metaKey || event.ctrlKey) {\n return;\n } // Call internal rc-tree expand function\n // https://github.com/ant-design/ant-design/issues/12567\n\n\n treeRef.current.onNodeExpand(event, node);\n };\n\n var onDebounceExpand = debounce(expandFolderNode, 200, {\n leading: true\n });\n\n var onExpand = function onExpand(keys, info) {\n var _a;\n\n if (!('expandedKeys' in props)) {\n setExpandedKeys(keys);\n } // Call origin function\n\n\n return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n };\n\n var onClick = function onClick(event, node) {\n var _a;\n\n var expandAction = props.expandAction; // Expand the tree\n\n if (expandAction === 'click') {\n onDebounceExpand(event, node);\n }\n\n (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, event, node);\n };\n\n var onDoubleClick = function onDoubleClick(event, node) {\n var _a;\n\n var expandAction = props.expandAction; // Expand the tree\n\n if (expandAction === 'doubleClick') {\n onDebounceExpand(event, node);\n }\n\n (_a = props.onDoubleClick) === null || _a === void 0 ? void 0 : _a.call(props, event, node);\n };\n\n var onSelect = function onSelect(keys, event) {\n var _a;\n\n var multiple = props.multiple;\n var node = event.node,\n nativeEvent = event.nativeEvent;\n var _node$key = node.key,\n key = _node$key === void 0 ? '' : _node$key;\n var treeData = getTreeData(props); // const newState: DirectoryTreeState = {};\n // We need wrap this event since some value is not same\n\n var newEvent = _extends(_extends({}, event), {\n selected: true\n }); // Windows / Mac single pick\n\n\n var ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n var shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey; // Generate new selected keys\n\n var newSelectedKeys;\n\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n treeData: treeData,\n expandedKeys: expandedKeys,\n startKey: key,\n endKey: lastSelectedKey.current\n })))));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else {\n // Single click\n newSelectedKeys = [key];\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n\n (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n\n if (!('selectedKeys' in props)) {\n setSelectedKeys(newSelectedKeys);\n }\n };\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n otherProps = __rest(props, [\"prefixCls\", \"className\"]);\n\n var prefixCls = getPrefixCls('tree', customizePrefixCls);\n var connectClassName = classNames(\"\".concat(prefixCls, \"-directory\"), _defineProperty({}, \"\".concat(prefixCls, \"-directory-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(Tree, _extends({\n icon: getIcon,\n ref: treeRef,\n blockNode: true\n }, otherProps, {\n prefixCls: prefixCls,\n className: connectClassName,\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n onSelect: onSelect,\n onClick: onClick,\n onDoubleClick: onDoubleClick,\n onExpand: onExpand\n }));\n};\n\nvar ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nForwardDirectoryTree.displayName = 'DirectoryTree';\nForwardDirectoryTree.defaultProps = {\n showIcon: true,\n expandAction: 'click'\n};\nexport default ForwardDirectoryTree;","// This icon file is generated automatically.\nvar MinusSquareOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"\n }\n }]\n },\n \"name\": \"minus-square\",\n \"theme\": \"outlined\"\n};\nexport default MinusSquareOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MinusSquareOutlinedSvg\n }));\n};\n\nMinusSquareOutlined.displayName = 'MinusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(MinusSquareOutlined);","// This icon file is generated automatically.\nvar PlusSquareOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"\n }\n }]\n },\n \"name\": \"plus-square\",\n \"theme\": \"outlined\"\n};\nexport default PlusSquareOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusSquareOutlinedSvg\n }));\n};\n\nPlusSquareOutlined.displayName = 'PlusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusSquareOutlined);","// This icon file is generated automatically.\nvar CaretDownFilled = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"0 0 1024 1024\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\"\n }\n }]\n },\n \"name\": \"caret-down\",\n \"theme\": \"filled\"\n};\nexport default CaretDownFilled;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\"; // GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretDownFilledSvg\n }));\n};\n\nCaretDownFilled.displayName = 'CaretDownFilled';\nexport default /*#__PURE__*/React.forwardRef(CaretDownFilled);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\nexport var offset = 4;\nexport default function dropIndicatorRender(props) {\n var _style;\n\n var dropPosition = props.dropPosition,\n dropLevelOffset = props.dropLevelOffset,\n prefixCls = props.prefixCls,\n indent = props.indent,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction;\n var startPosition = direction === 'ltr' ? 'left' : 'right';\n var endPosition = direction === 'ltr' ? 'right' : 'left';\n var style = (_style = {}, _defineProperty(_style, startPosition, -dropLevelOffset * indent + offset), _defineProperty(_style, endPosition, 0), _style);\n\n switch (dropPosition) {\n case -1:\n style.top = -3;\n break;\n\n case 1:\n style.bottom = -3;\n break;\n\n default:\n // dropPosition === 0\n style.bottom = -3;\n style[startPosition] = indent + offset;\n break;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: \"\".concat(prefixCls, \"-drop-indicator\")\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport RcTree, { TreeNode } from 'rc-tree';\nimport classNames from 'classnames';\nimport DirectoryTree from './DirectoryTree';\nimport { ConfigContext } from '../config-provider';\nimport collapseMotion from '../_util/motion';\nimport renderSwitcherIcon from './utils/iconUtil';\nimport dropIndicatorRender from './utils/dropIndicator';\nvar Tree = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n showIcon = props.showIcon,\n showLine = props.showLine,\n _switcherIcon = props.switcherIcon,\n blockNode = props.blockNode,\n children = props.children,\n checkable = props.checkable,\n selectable = props.selectable,\n draggable = props.draggable;\n var prefixCls = getPrefixCls('tree', customizePrefixCls);\n\n var newProps = _extends(_extends({}, props), {\n showLine: Boolean(showLine),\n dropIndicatorRender: dropIndicatorRender\n });\n\n var draggableConfig = React.useMemo(function () {\n if (!draggable) {\n return false;\n }\n\n var mergedDraggable = {};\n\n switch (_typeof(draggable)) {\n case 'function':\n mergedDraggable.nodeDraggable = draggable;\n break;\n\n case 'object':\n mergedDraggable = _extends({}, draggable);\n break;\n\n default: // Do nothing\n\n }\n\n if (mergedDraggable.icon !== false) {\n mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n }\n\n return mergedDraggable;\n }, [draggable]);\n return /*#__PURE__*/React.createElement(RcTree, _extends({\n itemHeight: 20,\n ref: ref,\n virtual: virtual\n }, newProps, {\n prefixCls: prefixCls,\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-hide\"), !showIcon), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block-node\"), blockNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-unselectable\"), !selectable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className),\n direction: direction,\n checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-checkbox-inner\")\n }) : checkable,\n selectable: selectable,\n switcherIcon: function switcherIcon(nodeProps) {\n return renderSwitcherIcon(prefixCls, _switcherIcon, showLine, nodeProps);\n },\n draggable: draggableConfig\n }), children);\n});\nTree.TreeNode = TreeNode;\nTree.DirectoryTree = DirectoryTree;\nTree.defaultProps = {\n checkable: false,\n selectable: true,\n showIcon: false,\n motion: _extends(_extends({}, collapseMotion), {\n motionAppear: false\n }),\n blockNode: false\n};\nexport default Tree;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport { isValidElement, cloneElement } from '../../_util/reactNode';\nexport default function renderSwitcherIcon(prefixCls, switcherIcon, showLine, _ref) {\n var isLeaf = _ref.isLeaf,\n expanded = _ref.expanded,\n loading = _ref.loading;\n\n if (loading) {\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-loading-icon\")\n });\n }\n\n var showLeafIcon;\n\n if (showLine && _typeof(showLine) === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n\n if (isLeaf) {\n if (showLine) {\n if (_typeof(showLine) === 'object' && !showLeafIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-switcher-leaf-line\")\n });\n }\n\n return /*#__PURE__*/React.createElement(FileOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n });\n }\n\n return null;\n }\n\n var switcherCls = \"\".concat(prefixCls, \"-switcher-icon\");\n\n if (isValidElement(switcherIcon)) {\n return cloneElement(switcherIcon, {\n className: classNames(switcherIcon.props.className || '', switcherCls)\n });\n }\n\n if (switcherIcon) {\n return switcherIcon;\n }\n\n if (showLine) {\n return expanded ? /*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n }) : /*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n });\n }\n\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n}","import Tree from './Tree';\nexport default Tree;","import * as React from 'react';\n\nvar FilterDropdownMenuWrapper = function FilterDropdownMenuWrapper(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: props.className,\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n }, props.children);\n};\n\nexport default FilterDropdownMenuWrapper;","import * as React from 'react';\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport Input from '../../../input';\n\nvar FilterSearch = function FilterSearch(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n filterSearch = _ref.filterSearch,\n tablePrefixCls = _ref.tablePrefixCls,\n locale = _ref.locale;\n\n if (!filterSearch) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n placeholder: locale.filterSearchPlaceholder,\n onChange: onChange,\n value: value // for skip min-width of input\n ,\n htmlSize: 1,\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-search-input\")\n }));\n};\n\nexport default FilterSearch;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport Button from '../../../button';\nimport Menu from '../../../menu';\nimport Tree from '../../../tree';\nimport Checkbox from '../../../checkbox';\nimport Radio from '../../../radio';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nimport FilterSearch from './FilterSearch';\nimport { flattenKeys } from '.';\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport { ConfigContext } from '../../../config-provider/context';\n\nfunction hasSubMenu(filters) {\n return filters.some(function (_ref) {\n var children = _ref.children;\n return children;\n });\n}\n\nfunction searchValueMatched(searchValue, text) {\n if (typeof text === 'string' || typeof text === 'number') {\n return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n }\n\n return false;\n}\n\nfunction renderFilterItems(_ref2) {\n var filters = _ref2.filters,\n prefixCls = _ref2.prefixCls,\n filteredKeys = _ref2.filteredKeys,\n filterMultiple = _ref2.filterMultiple,\n searchValue = _ref2.searchValue;\n return filters.map(function (filter, index) {\n var key = String(filter.value);\n\n if (filter.children) {\n return /*#__PURE__*/React.createElement(Menu.SubMenu, {\n key: key || index,\n title: filter.text,\n popupClassName: \"\".concat(prefixCls, \"-dropdown-submenu\")\n }, renderFilterItems({\n filters: filter.children,\n prefixCls: prefixCls,\n filteredKeys: filteredKeys,\n filterMultiple: filterMultiple,\n searchValue: searchValue\n }));\n }\n\n var Component = filterMultiple ? Checkbox : Radio;\n var item = /*#__PURE__*/React.createElement(Menu.Item, {\n key: filter.value !== undefined ? key : index\n }, /*#__PURE__*/React.createElement(Component, {\n checked: filteredKeys.includes(key)\n }), /*#__PURE__*/React.createElement(\"span\", null, filter.text));\n\n if (searchValue.trim()) {\n return searchValueMatched(searchValue, filter.text) ? item : undefined;\n }\n\n return item;\n });\n}\n\nfunction FilterDropdown(props) {\n var _a;\n\n var tablePrefixCls = props.tablePrefixCls,\n prefixCls = props.prefixCls,\n column = props.column,\n dropdownPrefixCls = props.dropdownPrefixCls,\n columnKey = props.columnKey,\n filterMultiple = props.filterMultiple,\n _props$filterMode = props.filterMode,\n filterMode = _props$filterMode === void 0 ? 'menu' : _props$filterMode,\n _props$filterSearch = props.filterSearch,\n filterSearch = _props$filterSearch === void 0 ? false : _props$filterSearch,\n filterState = props.filterState,\n triggerFilter = props.triggerFilter,\n locale = props.locale,\n children = props.children,\n getPopupContainer = props.getPopupContainer;\n var filterDropdownVisible = column.filterDropdownVisible,\n onFilterDropdownVisibleChange = column.onFilterDropdownVisibleChange;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n\n var filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n\n var triggerVisible = function triggerVisible(newVisible) {\n setVisible(newVisible);\n onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n };\n\n var mergedVisible = typeof filterDropdownVisible === 'boolean' ? filterDropdownVisible : visible; // ===================== Select Keys =====================\n\n var propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n\n var _useSyncState = useSyncState(propFilteredKeys || []),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n getFilteredKeysSync = _useSyncState2[0],\n setFilteredKeysSync = _useSyncState2[1];\n\n var onSelectKeys = function onSelectKeys(_ref3) {\n var selectedKeys = _ref3.selectedKeys;\n setFilteredKeysSync(selectedKeys);\n };\n\n var onCheck = function onCheck(keys, _ref4) {\n var node = _ref4.node,\n checked = _ref4.checked;\n\n if (!filterMultiple) {\n onSelectKeys({\n selectedKeys: checked && node.key ? [node.key] : []\n });\n } else {\n onSelectKeys({\n selectedKeys: keys\n });\n }\n };\n\n React.useEffect(function () {\n if (!visible) {\n return;\n }\n\n onSelectKeys({\n selectedKeys: propFilteredKeys || []\n });\n }, [propFilteredKeys]); // ====================== Open Keys ======================\n\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n openKeys = _React$useState4[0],\n setOpenKeys = _React$useState4[1];\n\n var openRef = React.useRef();\n\n var onOpenChange = function onOpenChange(keys) {\n openRef.current = window.setTimeout(function () {\n setOpenKeys(keys);\n });\n };\n\n var onMenuClick = function onMenuClick() {\n window.clearTimeout(openRef.current);\n };\n\n React.useEffect(function () {\n return function () {\n window.clearTimeout(openRef.current);\n };\n }, []); // search in tree mode column filter\n\n var _React$useState5 = React.useState(''),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n searchValue = _React$useState6[0],\n setSearchValue = _React$useState6[1];\n\n var onSearch = function onSearch(e) {\n var value = e.target.value;\n setSearchValue(value);\n }; // clear search value after close filter dropdown\n\n\n React.useEffect(function () {\n if (!visible) {\n setSearchValue('');\n }\n }, [visible]); // ======================= Submit ========================\n\n var internalTriggerFilter = function internalTriggerFilter(keys) {\n var mergedKeys = keys && keys.length ? keys : null;\n\n if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n return null;\n }\n\n if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys)) {\n return null;\n }\n\n triggerFilter({\n column: column,\n key: columnKey,\n filteredKeys: mergedKeys\n });\n };\n\n var onConfirm = function onConfirm() {\n triggerVisible(false);\n internalTriggerFilter(getFilteredKeysSync());\n };\n\n var onReset = function onReset() {\n setSearchValue('');\n setFilteredKeysSync([]);\n };\n\n var doFilter = function doFilter() {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n closeDropdown: true\n },\n closeDropdown = _ref5.closeDropdown;\n\n if (closeDropdown) {\n triggerVisible(false);\n }\n\n internalTriggerFilter(getFilteredKeysSync());\n };\n\n var onVisibleChange = function onVisibleChange(newVisible) {\n if (newVisible && propFilteredKeys !== undefined) {\n // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefiend)\n setFilteredKeysSync(propFilteredKeys || []);\n }\n\n triggerVisible(newVisible); // Default will filter when closed\n\n if (!newVisible && !column.filterDropdown) {\n onConfirm();\n }\n }; // ======================== Style ========================\n\n\n var dropdownMenuClass = classNames(_defineProperty({}, \"\".concat(dropdownPrefixCls, \"-menu-without-submenu\"), !hasSubMenu(column.filters || [])));\n\n var onCheckAll = function onCheckAll(e) {\n if (e.target.checked) {\n var allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(function (key) {\n return String(key);\n });\n setFilteredKeysSync(allFilterKeys);\n } else {\n setFilteredKeysSync([]);\n }\n };\n\n var getTreeData = function getTreeData(_ref6) {\n var filters = _ref6.filters;\n return (filters || []).map(function (filter, index) {\n var key = String(filter.value);\n var item = {\n title: filter.text,\n key: filter.value !== undefined ? key : index\n };\n\n if (filter.children) {\n item.children = getTreeData({\n filters: filter.children\n });\n }\n\n return item;\n });\n };\n\n var dropdownContent;\n\n if (typeof column.filterDropdown === 'function') {\n dropdownContent = column.filterDropdown({\n prefixCls: \"\".concat(dropdownPrefixCls, \"-custom\"),\n setSelectedKeys: function setSelectedKeys(selectedKeys) {\n return onSelectKeys({\n selectedKeys: selectedKeys\n });\n },\n selectedKeys: getFilteredKeysSync(),\n confirm: doFilter,\n clearFilters: onReset,\n filters: column.filters,\n visible: mergedVisible\n });\n } else if (column.filterDropdown) {\n dropdownContent = column.filterDropdown;\n } else {\n var selectedKeys = getFilteredKeysSync() || [];\n\n var getFilterComponent = function getFilterComponent() {\n if ((column.filters || []).length === 0) {\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n description: locale.filterEmptyText,\n imageStyle: {\n height: 24\n },\n style: {\n margin: 0,\n padding: '16px 0'\n }\n });\n }\n\n if (filterMode === 'tree') {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-tree\")\n }, filterMultiple ? /*#__PURE__*/React.createElement(Checkbox, {\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-checkall\"),\n onChange: onCheckAll\n }, locale.filterCheckall) : null, /*#__PURE__*/React.createElement(Tree, {\n checkable: true,\n selectable: false,\n blockNode: true,\n multiple: filterMultiple,\n checkStrictly: !filterMultiple,\n className: \"\".concat(dropdownPrefixCls, \"-menu\"),\n onCheck: onCheck,\n checkedKeys: selectedKeys,\n selectedKeys: selectedKeys,\n showIcon: false,\n treeData: getTreeData({\n filters: column.filters\n }),\n autoExpandParent: true,\n defaultExpandAll: true,\n filterTreeNode: searchValue.trim() ? function (node) {\n return searchValueMatched(searchValue, node.title);\n } : undefined\n })));\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(Menu, {\n multiple: filterMultiple,\n prefixCls: \"\".concat(dropdownPrefixCls, \"-menu\"),\n className: dropdownMenuClass,\n onClick: onMenuClick,\n onSelect: onSelectKeys,\n onDeselect: onSelectKeys,\n selectedKeys: selectedKeys,\n getPopupContainer: getPopupContainer,\n openKeys: openKeys,\n onOpenChange: onOpenChange\n }, renderFilterItems({\n filters: column.filters || [],\n prefixCls: prefixCls,\n filteredKeys: getFilteredKeysSync(),\n filterMultiple: filterMultiple,\n searchValue: searchValue\n })));\n };\n\n dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-dropdown-btns\")\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n size: \"small\",\n disabled: selectedKeys.length === 0,\n onClick: onReset\n }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm\n }, locale.filterConfirm)));\n }\n\n var menu = /*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n className: \"\".concat(prefixCls, \"-dropdown\")\n }, dropdownContent);\n var filterIcon;\n\n if (typeof column.filterIcon === 'function') {\n filterIcon = column.filterIcon(filtered);\n } else if (column.filterIcon) {\n filterIcon = column.filterIcon;\n } else {\n filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n }\n\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-column\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(tablePrefixCls, \"-column-title\")\n }, children), /*#__PURE__*/React.createElement(Dropdown, {\n overlay: menu,\n trigger: ['click'],\n visible: mergedVisible,\n onVisibleChange: onVisibleChange,\n getPopupContainer: getPopupContainer,\n placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight'\n }, /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), {\n active: filtered\n }),\n onClick: function onClick(e) {\n e.stopPropagation();\n }\n }, filterIcon)));\n}\n\nexport default FilterDropdown;","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n var ref = React.useRef(initialValue);\n var forceUpdate = useForceUpdate();\n return [function () {\n return ref.current;\n }, function (newValue) {\n ref.current = newValue; // re-render\n\n forceUpdate();\n }];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport devWarning from '../../../_util/devWarning';\nimport { getColumnPos, renderColumnTitle, getColumnKey } from '../../util';\nimport FilterDropdown from './FilterDropdown';\n\nfunction collectFilterStates(columns, init, pos) {\n var filterStates = [];\n (columns || []).forEach(function (column, index) {\n var _a;\n\n var columnPos = getColumnPos(index, pos);\n\n if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n if ('filteredValue' in column) {\n // Controlled\n var filteredValues = column.filteredValue;\n\n if (!('filterDropdown' in column)) {\n filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n }\n\n filterStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n filteredKeys: filteredValues,\n forceFiltered: column.filtered\n });\n } else {\n // Uncontrolled\n filterStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n forceFiltered: column.filtered\n });\n }\n }\n\n if ('children' in column) {\n filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n }\n });\n return filterStates;\n}\n\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, triggerFilter, getPopupContainer, locale, pos) {\n return columns.map(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n var _column$filterMultipl = column.filterMultiple,\n filterMultiple = _column$filterMultipl === void 0 ? true : _column$filterMultipl,\n filterMode = column.filterMode,\n filterSearch = column.filterSearch;\n var newColumn = column;\n\n if (newColumn.filters || newColumn.filterDropdown) {\n var columnKey = getColumnKey(newColumn, columnPos);\n var filterState = filterStates.find(function (_ref) {\n var key = _ref.key;\n return columnKey === key;\n });\n newColumn = _extends(_extends({}, newColumn), {\n title: function title(renderProps) {\n return /*#__PURE__*/React.createElement(FilterDropdown, {\n tablePrefixCls: prefixCls,\n prefixCls: \"\".concat(prefixCls, \"-filter\"),\n dropdownPrefixCls: dropdownPrefixCls,\n column: newColumn,\n columnKey: columnKey,\n filterState: filterState,\n filterMultiple: filterMultiple,\n filterMode: filterMode,\n filterSearch: filterSearch,\n triggerFilter: triggerFilter,\n locale: locale,\n getPopupContainer: getPopupContainer\n }, renderColumnTitle(column.title, renderProps));\n }\n });\n }\n\n if ('children' in newColumn) {\n newColumn = _extends(_extends({}, newColumn), {\n children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, triggerFilter, getPopupContainer, locale, columnPos)\n });\n }\n\n return newColumn;\n });\n}\n\nexport function flattenKeys(filters) {\n var keys = [];\n (filters || []).forEach(function (_ref2) {\n var value = _ref2.value,\n children = _ref2.children;\n keys.push(value);\n\n if (children) {\n keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n }\n });\n return keys;\n}\n\nfunction generateFilterInfo(filterStates) {\n var currentFilters = {};\n filterStates.forEach(function (_ref3) {\n var key = _ref3.key,\n filteredKeys = _ref3.filteredKeys,\n column = _ref3.column;\n var filters = column.filters,\n filterDropdown = column.filterDropdown;\n\n if (filterDropdown) {\n currentFilters[key] = filteredKeys || null;\n } else if (Array.isArray(filteredKeys)) {\n var keys = flattenKeys(filters);\n currentFilters[key] = keys.filter(function (originKey) {\n return filteredKeys.includes(String(originKey));\n });\n } else {\n currentFilters[key] = null;\n }\n });\n return currentFilters;\n}\n\nexport function getFilterData(data, filterStates) {\n return filterStates.reduce(function (currentData, filterState) {\n var _filterState$column = filterState.column,\n onFilter = _filterState$column.onFilter,\n filters = _filterState$column.filters,\n filteredKeys = filterState.filteredKeys;\n\n if (onFilter && filteredKeys && filteredKeys.length) {\n return currentData.filter(function (record) {\n return filteredKeys.some(function (key) {\n var keys = flattenKeys(filters);\n var keyIndex = keys.findIndex(function (k) {\n return String(k) === String(key);\n });\n var realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n return onFilter(realKey, record);\n });\n });\n }\n\n return currentData;\n }, data);\n}\n\nfunction useFilter(_ref4) {\n var prefixCls = _ref4.prefixCls,\n dropdownPrefixCls = _ref4.dropdownPrefixCls,\n mergedColumns = _ref4.mergedColumns,\n onFilterChange = _ref4.onFilterChange,\n getPopupContainer = _ref4.getPopupContainer,\n tableLocale = _ref4.locale;\n\n var _React$useState = React.useState(collectFilterStates(mergedColumns, true)),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n filterStates = _React$useState2[0],\n setFilterStates = _React$useState2[1];\n\n var mergedFilterStates = React.useMemo(function () {\n var collectedStates = collectFilterStates(mergedColumns, false);\n var filteredKeysIsNotControlled = collectedStates.every(function (_ref5) {\n var filteredKeys = _ref5.filteredKeys;\n return filteredKeys === undefined;\n }); // Return if not controlled\n\n if (filteredKeysIsNotControlled) {\n return filterStates;\n }\n\n var filteredKeysIsAllControlled = collectedStates.every(function (_ref6) {\n var filteredKeys = _ref6.filteredKeys;\n return filteredKeys !== undefined;\n });\n devWarning(filteredKeysIsNotControlled || filteredKeysIsAllControlled, 'Table', '`FilteredKeys` should all be controlled or not controlled.');\n return collectedStates;\n }, [mergedColumns, filterStates]);\n var getFilters = React.useCallback(function () {\n return generateFilterInfo(mergedFilterStates);\n }, [mergedFilterStates]);\n\n var triggerFilter = function triggerFilter(filterState) {\n var newFilterStates = mergedFilterStates.filter(function (_ref7) {\n var key = _ref7.key;\n return key !== filterState.key;\n });\n newFilterStates.push(filterState);\n setFilterStates(newFilterStates);\n onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n };\n\n var transformColumns = function transformColumns(innerColumns) {\n return injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, triggerFilter, getPopupContainer, tableLocale);\n };\n\n return [transformColumns, mergedFilterStates, getFilters];\n}\n\nexport default useFilter;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { renderColumnTitle } from '../util';\n\nfunction fillTitle(columns, columnTitleProps) {\n return columns.map(function (column) {\n var cloneColumn = _extends({}, column);\n\n cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n\n if ('children' in cloneColumn) {\n cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n }\n\n return cloneColumn;\n });\n}\n\nexport default function useTitleColumns(columnTitleProps) {\n var filledColumns = React.useCallback(function (columns) {\n return fillTitle(columns, columnTitleProps);\n }, [columnTitleProps]);\n return [filledColumns];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nfunction renderExpandIcon(locale) {\n return function expandIcon(_ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n onExpand = _ref.onExpand,\n record = _ref.record,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var iconPrefix = \"\".concat(prefixCls, \"-row-expand-icon\");\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: function onClick(e) {\n onExpand(record, e);\n e.stopPropagation();\n },\n className: classNames(iconPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"-spaced\"), !expandable), _defineProperty(_classNames, \"\".concat(iconPrefix, \"-expanded\"), expandable && expanded), _defineProperty(_classNames, \"\".concat(iconPrefix, \"-collapsed\"), expandable && !expanded), _classNames)),\n \"aria-label\": expanded ? locale.collapse : locale.expand\n });\n };\n}\n\nexport default renderExpandIcon;","export function isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n}\nexport default function getScroll(target, top) {\n var _a;\n\n if (typeof window === 'undefined') {\n return 0;\n }\n\n var method = top ? 'scrollTop' : 'scrollLeft';\n var result = 0;\n\n if (isWindow(target)) {\n result = target[top ? 'pageYOffset' : 'pageXOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = target[method];\n }\n\n if (target && !isWindow(target) && typeof result !== 'number') {\n result = (_a = (target.ownerDocument || target).documentElement) === null || _a === void 0 ? void 0 : _a[method];\n }\n\n return result;\n}","// eslint-disable-next-line import/prefer-default-export\nexport function easeInOutCubic(t, b, c, d) {\n var cc = c - b;\n t /= d / 2;\n\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n } // eslint-disable-next-line no-return-assign\n\n\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","import raf from \"rc-util/es/raf\";\nimport getScroll, { isWindow } from './getScroll';\nimport { easeInOutCubic } from './easings';\nexport default function scrollTo(y) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$getContainer = options.getContainer,\n getContainer = _options$getContainer === void 0 ? function () {\n return window;\n } : _options$getContainer,\n callback = options.callback,\n _options$duration = options.duration,\n duration = _options$duration === void 0 ? 450 : _options$duration;\n var container = getContainer();\n var scrollTop = getScroll(container, true);\n var startTime = Date.now();\n\n var frameFunc = function frameFunc() {\n var timestamp = Date.now();\n var time = timestamp - startTime;\n var nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof HTMLDocument || container.constructor.name === 'HTMLDocument') {\n container.documentElement.scrollTop = nextScrollTop;\n } else {\n container.scrollTop = nextScrollTop;\n }\n\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n\n raf(frameFunc);\n}","import defaultLocale from './default';\nexport default defaultLocale;","/* istanbul ignore next */\n\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction Column(_) {\n return null;\n}\n\nexport default Column;","/* istanbul ignore next */\n\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\n\nexport default ColumnGroup;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport RcTable, { Summary } from 'rc-table';\nimport { INTERNAL_HOOKS } from \"rc-table/es/Table\";\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport Spin from '../spin';\nimport Pagination from '../pagination';\nimport { ConfigContext } from '../config-provider/context';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport useSelection, { SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useTitleColumns from './hooks/useTitleColumns';\nimport renderExpandIcon from './ExpandIcon';\nimport scrollTo from '../_util/scrollTo';\nimport defaultLocale from '../locale/en_US';\nimport SizeContext from '../config-provider/SizeContext';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport devWarning from '../_util/devWarning';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nvar EMPTY_LIST = [];\n\nfunction InternalTable(props, ref) {\n var _classNames3;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n customizeSize = props.size,\n bordered = props.bordered,\n customizeDropdownPrefixCls = props.dropdownPrefixCls,\n dataSource = props.dataSource,\n pagination = props.pagination,\n rowSelection = props.rowSelection,\n rowKey = props.rowKey,\n rowClassName = props.rowClassName,\n columns = props.columns,\n children = props.children,\n legacyChildrenColumnName = props.childrenColumnName,\n onChange = props.onChange,\n getPopupContainer = props.getPopupContainer,\n loading = props.loading,\n expandIcon = props.expandIcon,\n expandable = props.expandable,\n expandedRowRender = props.expandedRowRender,\n expandIconColumnIndex = props.expandIconColumnIndex,\n indentSize = props.indentSize,\n scroll = props.scroll,\n sortDirections = props.sortDirections,\n locale = props.locale,\n _props$showSorterTool = props.showSorterTooltip,\n showSorterTooltip = _props$showSorterTool === void 0 ? true : _props$showSorterTool;\n devWarning(!(typeof rowKey === 'function' && rowKey.length > 1), 'Table', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.');\n var screens = useBreakpoint();\n var mergedColumns = React.useMemo(function () {\n var matched = new Set(Object.keys(screens).filter(function (m) {\n return screens[m];\n }));\n return (columns || convertChildrenToColumns(children)).filter(function (c) {\n return !c.responsive || c.responsive.some(function (r) {\n return matched.has(r);\n });\n });\n }, [children, columns, screens]);\n var tableProps = omit(props, ['className', 'style', 'columns']);\n var size = React.useContext(SizeContext);\n\n var _React$useContext = React.useContext(ConfigContext),\n _React$useContext$loc = _React$useContext.locale,\n contextLocale = _React$useContext$loc === void 0 ? defaultLocale : _React$useContext$loc,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n\n var mergedSize = customizeSize || size;\n\n var tableLocale = _extends(_extends({}, contextLocale.Table), locale);\n\n var rawData = dataSource || EMPTY_LIST;\n\n var _React$useContext2 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext2.getPrefixCls;\n\n var prefixCls = getPrefixCls('table', customizePrefixCls);\n var dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n\n var mergedExpandable = _extends({\n childrenColumnName: legacyChildrenColumnName,\n expandIconColumnIndex: expandIconColumnIndex\n }, expandable);\n\n var _mergedExpandable$chi = mergedExpandable.childrenColumnName,\n childrenColumnName = _mergedExpandable$chi === void 0 ? 'children' : _mergedExpandable$chi;\n var expandType = React.useMemo(function () {\n if (rawData.some(function (item) {\n var _a;\n\n return (_a = item) === null || _a === void 0 ? void 0 : _a[childrenColumnName];\n })) {\n return 'nest';\n }\n\n if (expandedRowRender || expandable && expandable.expandedRowRender) {\n return 'row';\n }\n\n return null;\n }, [rawData]);\n var internalRefs = {\n body: React.useRef()\n }; // ============================ RowKey ============================\n\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n\n return function (record) {\n var _a;\n\n return (_a = record) === null || _a === void 0 ? void 0 : _a[rowKey];\n };\n }, [rowKey]);\n\n var _useLazyKVMap = useLazyKVMap(rawData, childrenColumnName, getRowKey),\n _useLazyKVMap2 = _slicedToArray(_useLazyKVMap, 1),\n getRecordByKey = _useLazyKVMap2[0]; // ============================ Events =============================\n\n\n var changeEventInfo = {};\n\n var triggerOnChange = function triggerOnChange(info, action) {\n var reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var changeInfo = _extends(_extends({}, changeEventInfo), info);\n\n if (reset) {\n changeEventInfo.resetPagination(); // Reset event param\n\n if (changeInfo.pagination.current) {\n changeInfo.pagination.current = 1;\n } // Trigger pagination events\n\n\n if (pagination && pagination.onChange) {\n pagination.onChange(1, changeInfo.pagination.pageSize);\n }\n }\n\n if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n scrollTo(0, {\n getContainer: function getContainer() {\n return internalRefs.body.current;\n }\n });\n }\n\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates),\n action: action\n });\n };\n /**\n * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n * state out and then put it back to title render. Move these code into `hooks` but still too\n * complex. We should provides Table props like `sorter` & `filter` to handle control in next big version.\n */\n // ============================ Sorter =============================\n\n\n var onSorterChange = function onSorterChange(sorter, sorterStates) {\n triggerOnChange({\n sorter: sorter,\n sorterStates: sorterStates\n }, 'sort', false);\n };\n\n var _useSorter = useSorter({\n prefixCls: prefixCls,\n mergedColumns: mergedColumns,\n onSorterChange: onSorterChange,\n sortDirections: sortDirections || ['ascend', 'descend'],\n tableLocale: tableLocale,\n showSorterTooltip: showSorterTooltip\n }),\n _useSorter2 = _slicedToArray(_useSorter, 4),\n transformSorterColumns = _useSorter2[0],\n sortStates = _useSorter2[1],\n sorterTitleProps = _useSorter2[2],\n getSorters = _useSorter2[3];\n\n var sortedData = React.useMemo(function () {\n return getSortData(rawData, sortStates, childrenColumnName);\n }, [rawData, sortStates]);\n changeEventInfo.sorter = getSorters();\n changeEventInfo.sorterStates = sortStates; // ============================ Filter ============================\n\n var onFilterChange = function onFilterChange(filters, filterStates) {\n triggerOnChange({\n filters: filters,\n filterStates: filterStates\n }, 'filter', true);\n };\n\n var _useFilter = useFilter({\n prefixCls: prefixCls,\n locale: tableLocale,\n dropdownPrefixCls: dropdownPrefixCls,\n mergedColumns: mergedColumns,\n onFilterChange: onFilterChange,\n getPopupContainer: getPopupContainer\n }),\n _useFilter2 = _slicedToArray(_useFilter, 3),\n transformFilterColumns = _useFilter2[0],\n filterStates = _useFilter2[1],\n getFilters = _useFilter2[2];\n\n var mergedData = getFilterData(sortedData, filterStates);\n changeEventInfo.filters = getFilters();\n changeEventInfo.filterStates = filterStates; // ============================ Column ============================\n\n var columnTitleProps = React.useMemo(function () {\n return _extends({}, sorterTitleProps);\n }, [sorterTitleProps]);\n\n var _useTitleColumns = useTitleColumns(columnTitleProps),\n _useTitleColumns2 = _slicedToArray(_useTitleColumns, 1),\n transformTitleColumns = _useTitleColumns2[0]; // ========================== Pagination ==========================\n\n\n var onPaginationChange = function onPaginationChange(current, pageSize) {\n triggerOnChange({\n pagination: _extends(_extends({}, changeEventInfo.pagination), {\n current: current,\n pageSize: pageSize\n })\n }, 'paginate');\n };\n\n var _usePagination = usePagination(mergedData.length, pagination, onPaginationChange),\n _usePagination2 = _slicedToArray(_usePagination, 2),\n mergedPagination = _usePagination2[0],\n resetPagination = _usePagination2[1];\n\n changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(pagination, mergedPagination);\n changeEventInfo.resetPagination = resetPagination; // ============================= Data =============================\n\n var pageData = React.useMemo(function () {\n if (pagination === false || !mergedPagination.pageSize) {\n return mergedData;\n }\n\n var _mergedPagination$cur = mergedPagination.current,\n current = _mergedPagination$cur === void 0 ? 1 : _mergedPagination$cur,\n total = mergedPagination.total,\n _mergedPagination$pag = mergedPagination.pageSize,\n pageSize = _mergedPagination$pag === void 0 ? DEFAULT_PAGE_SIZE : _mergedPagination$pag;\n devWarning(current > 0, 'Table', '`current` should be positive number.'); // Dynamic table data\n\n if (mergedData.length < total) {\n if (mergedData.length > pageSize) {\n devWarning(false, 'Table', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.');\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }\n\n return mergedData;\n }\n\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }, [!!pagination, mergedData, mergedPagination && mergedPagination.current, mergedPagination && mergedPagination.pageSize, mergedPagination && mergedPagination.total]); // ========================== Selections ==========================\n\n var _useSelection = useSelection(rowSelection, {\n prefixCls: prefixCls,\n data: mergedData,\n pageData: pageData,\n getRowKey: getRowKey,\n getRecordByKey: getRecordByKey,\n expandType: expandType,\n childrenColumnName: childrenColumnName,\n locale: tableLocale,\n expandIconColumnIndex: mergedExpandable.expandIconColumnIndex,\n getPopupContainer: getPopupContainer\n }),\n _useSelection2 = _slicedToArray(_useSelection, 2),\n transformSelectionColumns = _useSelection2[0],\n selectedKeySet = _useSelection2[1];\n\n var internalRowClassName = function internalRowClassName(record, index, indent) {\n var mergedRowClassName;\n\n if (typeof rowClassName === 'function') {\n mergedRowClassName = classNames(rowClassName(record, index, indent));\n } else {\n mergedRowClassName = classNames(rowClassName);\n }\n\n return classNames(_defineProperty({}, \"\".concat(prefixCls, \"-row-selected\"), selectedKeySet.has(getRowKey(record, index))), mergedRowClassName);\n }; // ========================== Expandable ==========================\n // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n\n\n mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon; // Customize expandable icon\n\n mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale); // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n\n if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n mergedExpandable.expandIconColumnIndex -= 1;\n } // Indent size\n\n\n if (typeof mergedExpandable.indentSize !== 'number') {\n mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n } // ============================ Render ============================\n\n\n var transformColumns = React.useCallback(function (innerColumns) {\n return transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns))));\n }, [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n var topPaginationNode;\n var bottomPaginationNode;\n\n if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n var paginationSize;\n\n if (mergedPagination.size) {\n paginationSize = mergedPagination.size;\n } else {\n paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n }\n\n var renderPagination = function renderPagination(position) {\n return /*#__PURE__*/React.createElement(Pagination, _extends({}, mergedPagination, {\n className: classNames(\"\".concat(prefixCls, \"-pagination \").concat(prefixCls, \"-pagination-\").concat(position), mergedPagination.className),\n size: paginationSize\n }));\n };\n\n var defaultPosition = direction === 'rtl' ? 'left' : 'right';\n var position = mergedPagination.position;\n\n if (position !== null && Array.isArray(position)) {\n var topPos = position.find(function (p) {\n return p.indexOf('top') !== -1;\n });\n var bottomPos = position.find(function (p) {\n return p.indexOf('bottom') !== -1;\n });\n var isDisable = position.every(function (p) {\n return \"\".concat(p) === 'none';\n });\n\n if (!topPos && !bottomPos && !isDisable) {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n\n if (topPos) {\n topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n }\n\n if (bottomPos) {\n bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n }\n } else {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n } // >>>>>>>>> Spinning\n\n\n var spinProps;\n\n if (typeof loading === 'boolean') {\n spinProps = {\n spinning: loading\n };\n } else if (_typeof(loading) === 'object') {\n spinProps = _extends({\n spinning: true\n }, loading);\n }\n\n var wrapperClassNames = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty({}, \"\".concat(prefixCls, \"-wrapper-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: wrapperClassNames,\n style: style\n }, /*#__PURE__*/React.createElement(Spin, _extends({\n spinning: false\n }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(RcTable, _extends({}, tableProps, {\n columns: mergedColumns,\n direction: direction,\n expandable: mergedExpandable,\n prefixCls: prefixCls,\n className: classNames((_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-middle\"), mergedSize === 'middle'), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-small\"), mergedSize === 'small'), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-empty\"), rawData.length === 0), _classNames3)),\n data: pageData,\n rowKey: getRowKey,\n rowClassName: internalRowClassName,\n emptyText: locale && locale.emptyText || renderEmpty('Table') // Internal\n ,\n internalHooks: INTERNAL_HOOKS,\n internalRefs: internalRefs,\n transformColumns: transformColumns\n })), bottomPaginationNode));\n}\n\nvar ForwardTable = /*#__PURE__*/React.forwardRef(InternalTable);\nvar Table = ForwardTable;\nTable.defaultProps = {\n rowKey: 'key'\n};\nTable.SELECTION_ALL = SELECTION_ALL;\nTable.SELECTION_INVERT = SELECTION_INVERT;\nTable.SELECTION_NONE = SELECTION_NONE;\nTable.Column = Column;\nTable.ColumnGroup = ColumnGroup;\nTable.Summary = Summary;\nexport default Table;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nexport default function useLazyKVMap(data, childrenColumnName, getRowKey) {\n var mapCacheRef = React.useRef({});\n\n function getRecordByKey(key) {\n if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n var kvMap = new Map();\n /* eslint-disable no-inner-declarations */\n\n function dig(records) {\n records.forEach(function (record, index) {\n var rowKey = getRowKey(record, index);\n kvMap.set(rowKey, record);\n\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || []);\n }\n });\n }\n /* eslint-enable */\n\n\n dig(data);\n mapCacheRef.current = {\n data: data,\n childrenColumnName: childrenColumnName,\n kvMap: kvMap,\n getRowKey: getRowKey\n };\n }\n\n return mapCacheRef.current.kvMap.get(key);\n }\n\n return [getRecordByKey];\n}","import Table from './Table';\nexport default Table;","import canUseDom from './canUseDom';\n\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n\n return false;\n};\n\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\n\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n\n return isStyleNameSupport(styleName);\n}","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n"],"names":["props","ref","AntdIcon","icon","displayName","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","ButtonGroup","DropdownButton","_React$useContext","getContextPopupContainer","getPopupContainer","getPrefixCls","direction","customizePrefixCls","prefixCls","_props$type","type","disabled","onClick","htmlType","children","className","overlay","trigger","align","visible","onVisibleChange","placement","href","_props$icon","EllipsisOutlined","title","_props$buttonsRender","buttonsRender","buttons","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","restProps","dropdownProps","_buttonsRender","_buttonsRender2","leftButtonToRender","rightButtonToRender","__ANT_BUTTON","Dropdown","alignPoint","rootPrefixCls","_props$placement","transitionName","arrow","child","dropdownTrigger","concat","overlayClassNameCustomized","triggerActions","undefined","overlayNode","overlayProps","devWarning","mode","_overlayProps$selecta","selectable","expandIcon","overlayNodeExpandIcon","RightOutlined","renderOverlay","getPlacement","Button","defaultProps","createContext","firstLevel","inlineCollapsed","_a","titleNode","popupClassName","context","antdMenuTheme","parentPath","titleIsSpan","charAt","contextValue","value","omit","LayoutContext","siderHook","addSider","removeSider","generator","_ref","suffixCls","tagName","BasicComponent","Adapter","Basic","others","classString","_classNames","_React$useState","_React$useState2","siders","setSiders","hasSider","Tag","id","prev","filter","currentId","Provider","isNaN","parseFloat","isFinite","dimensionMaxMap","xs","sm","md","lg","xl","xxl","SiderContext","generateId","prefix","arguments","Sider","_a$defaultCollapsed","defaultCollapsed","_a$theme","theme","_a$style","style","_a$collapsible","collapsible","_a$reverseArrow","reverseArrow","_a$width","width","_a$collapsedWidth","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint","useContext","_useState","useState","collapsed","_useState2","setCollapsed","_useState3","_useState4","below","setBelow","useEffect","handleSetCollapsed","responsiveHandlerRef","useRef","current","mql","matches","responsiveHandler","window","matchMedia","addEventListener","error","addListener","removeEventListener","removeListener","uniqueId","divProps","rawWidth","siderWidth","zeroWidthTrigger","defaultTrigger","triggerDom","divStyle","siderCls","toggle","siderCollapsed","String","expanded","LeftOutlined","flex","maxWidth","minWidth","MenuItem","_React$Component","_super","_this","this","apply","renderItem","_this$context","_this$props","_b","danger","rest","tooltipTitle","tooltipProps","childrenLength","toArray","renderItemChildren","key","_this$context2","_this$props2","wrapNode","Consumer","contextType","dashed","InternalMenu","renderMenu","passedProps","getInlineCollapsed","defaultMotions","horizontal","motionName","inline","other","menuClassName","cls","the","dir","overflowedIndicator","overflowedIndicatorPopupClassName","C","Menu","_React$Component2","_super2","_this2","Divider","Item","SubMenu","ItemGroup","_","arr","Array","isArray","getPathValue","record","path","pathList","getColumnsKey","columns","columnKeys","keys","forEach","column","dataIndex","mergedKey","join","push","validateValue","val","_excluded","Cell","_ref3","_ref4","cellProps","childNode","data","index","render","_ref$component","component","Component","colSpan","rowSpan","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","_ref$additionalProps","additionalProps","ellipsis","rowType","isSticky","startRow","endRow","onHover","shouldCellUpdate","cellPrefixCls","supportSticky","renderData","_ref2","cellColSpan","cellRowSpan","cellStyle","cellClassName","restCellProps","mergedColSpan","mergedRowSpan","fixedStyle","isFixLeft","isFixRight","position","left","right","alignStyle","textAlign","hovering","cellStartRow","inHoverRange","ellipsisConfig","showTitle","toString","componentProps","onMouseEnter","event","_additionalProps$onMo","onMouseLeave","_additionalProps$onMo2","RefCell","comparePropList","MemoCell","next","every","propName","WrappedCell","getCellFixedInfo","colStart","colEnd","stickyOffsets","startColumn","endColumn","fixed","nextColumn","prevColumn","HeaderRow","rowProps","cells","flattenColumns","RowComponent","rowComponent","CellComponent","cellComponent","onHeaderRow","map","cell","columnsKey","cellIndex","fixedInfo","onHeaderCell","getComponent","rows","rootColumns","fillRowCells","colIndex","rowIndex","currentColIndex","Boolean","subColumns","reduce","total","count","hasSubColumns","rowCount","_loop","parseHeaderRows","WrapperComponent","trComponent","thComponent","row","fixHeader","fixColumn","horizonScroll","componentWidth","scrollbarSize","contentNode","overflow","display","MeasureCell","columnKey","onColumnResize","cellRef","offsetWidth","onResize","padding","border","height","BodyRow","rowKey","rowExpandable","expandedKeys","onRow","_props$indent","indent","childrenColumnName","fixedInfoList","_React$useContext2","expandableType","expandRowByClick","onTriggerExpand","rowClassName","expandedRowClassName","indentSize","expandedRowRender","expandIconColumnIndex","expandRended","setExpandRended","has","recordKey","rowSupportExpand","nestExpandable","hasNestChildren","mergedExpandable","onExpandRef","onInternalTriggerExpand","computeRowClassName","expandRowNode","baseRowNode","_additionalProps","_additionalProps$onCl","_len","args","_key","appendCellNode","additionalCellProps","columnClassName","paddingLeft","expandable","onExpand","onCell","expandContent","computedExpandedRowClassName","flatRecord","getRowKey","tempArr","Body","measureColumnWidth","emptyNode","setStartRow","_React$useState3","_React$useState4","setEndRow","_React$useContext3","flattenData","size","temp","item","useFlattenRecords","start","end","hoverContext","tdComponent","fontSize","MemoBody","INTERNAL_COL_DEFINE","_excluded2","convertChildrenToColumns","node","nodeChildren","flatColumns","list","parsedFixed","subColum","transformColumns","columnWidth","baseColumns","withExpandColumns","_expandColumn","fixedColumn","expandColIndex","expandColumn","recordExpandable","stopPropagation","cloneColumns","slice","splice","mergedColumns","finalColumns","revertForRtl","useLayoutState","defaultState","stateRef","forceUpdate","lastPromiseRef","updateBatchRef","updater","promise","Promise","resolve","then","prevBatch","prevState","batchUpdater","colWidths","columnCount","useMemo","leftOffsets","rightOffsets","_end","cols","mustInsert","columCount","unshift","Summary","Row","_ref$colSpan","SummaryContext","scrollColumnIndex","lastColumnIndex","scrollColumn","summaryContext","scrollbar","FooterComponents","renderExpandIcon","expandClassName","getOffset","box","getBoundingClientRect","docElem","document","documentElement","pageXOffset","scrollLeft","clientLeft","body","top","pageYOffset","scrollTop","clientTop","StickyScrollBar","_scrollBodyRef$curren","_scrollBodyRef$curren2","scrollBodyRef","onScroll","offsetScroll","container","bodyScrollWidth","scrollWidth","bodyWidth","clientWidth","scrollBarWidth","scrollBarRef","_useLayoutState","isHiddenScrollBar","_useLayoutState2","scrollState","setScrollState","refState","delta","x","isActive","setActive","onMouseUp","onMouseMove","_window","pageX","onContainerScroll","tableOffsetTop","tableBottomOffset","offsetHeight","currentClientOffset","innerHeight","clientHeight","getScrollBarSize","state","setScrollLeft","onMouseUpListener","onMouseMoveListener","remove","onScrollListener","onResizeListener","bodyNode","bottom","onMouseDown","persist","preventDefault","transform","defaultContainer","FixedHolder","noData","stickyTopOffset","stickyBottomOffset","stickyClassName","maxContentScroll","combinationScrollBarSize","scrollRef","setScrollRef","element","_scrollRef$current","onWheel","currentTarget","deltaX","_scrollRef$current2","allFlattenColumnsWithWidth","lastColumn","ScrollBarColumn","columnsWithScrollbar","flattenColumnsWithScrollbar","headerStickyOffsets","mergedColumnWidth","useColumnWidth","tableLayout","visibility","EMPTY_DATA","EMPTY_SCROLL_TARGET","INTERNAL_HOOKS","MemoTableContent","pingLeft","pingRight","Table","scroll","footer","summary","showHeader","components","emptyText","internalHooks","internalRefs","sticky","mergedData","hasData","mergedComponents","merged","fillProps","obj","clone","objects","mergeObject","defaultComponent","expandableConfig","legacyExpandableConfig","getExpandableProps","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","onExpandedRowsChange","mergedExpandIcon","mergedChildrenColumnName","__PARENT_RENDER_ICON__","some","dig","findAllChildrenKeys","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","Set","newExpandedKeys","hasKey","delete","scrollXStyle","scrollYStyle","scrollTableStyle","setComponentWidth","_useColumns","_useColumns2","columnContext","fullTableRef","scrollHeaderRef","scrollSummaryRef","_React$useState5","_React$useState6","pingedLeft","setPingedLeft","_React$useState7","_React$useState8","pingedRight","setPingedRight","Map","colsWidths","updateColsWidths","pureColWidths","get","y","stickyRef","_useSticky","_ref$offsetHeader","offsetHeader","_ref$offsetSummary","offsetSummary","_ref$offsetScroll","_ref$getContainer","getContainer","useSticky","summaryNode","fixFooter","overflowY","maxHeight","overflowX","isVisible","widths","newWidths","set","_useTimeoutLock","frameRef","timeoutRef","cleanUp","clearTimeout","newState","setTimeout","useTimeoutLock","_useTimeoutLock2","setScrollTarget","getScrollTarget","forceScroll","target","_stickyRef$current","isRTL","mergedScrollLeft","compareTarget","triggerOnScroll","_React$useState9","_React$useState10","setScrollbarSize","_React$useState11","_React$useState12","setSupportSticky","groupTableNode","TableComponent","mergedTableLayout","_ref5","headerProps","bodyTable","bodyColGroup","_ref6","customizeScrollBody","bodyContent","_ref7","colWidth","Number","fixedHolderProps","fixedHolderPassProps","ariaProps","pickAttrs","aria","fullTable","TableContextValue","BodyContextValue","ResizeContextValue","Column","ColumnGroup","defaultIndicator","Spin","debouncifyUpdateSpinning","delay","cancelExistingSpin","updateSpinning","originalUpdateSpinning","spinning","setState","renderSpin","tip","wrapperClassName","spinClassName","spinElement","indicator","dotClassName","renderIndicator","isNestedPattern","containerClassName","shouldBeDelayed","shouldDelay","cancel","page","active","onKeyPress","tabIndex","itemRender","rel","Options","goInputText","buildOptionText","locale","items_per_page","changeSize","handleChange","handleBlur","goButton","quickGo","relatedTarget","getValidValue","go","keyCode","pageSize","pageSizeOptions","option","sort","a","b","_this$props3","selectComponentClass","selectPrefixCls","Select","changeSelect","goInput","gotoButton","getPageSizeOptions","options","opt","Option","showSearch","optionLabelProp","dropdownMatchSelectWidth","onChange","triggerNode","parentNode","onKeyUp","jump_to_confirm","jump_to","onBlur","noop","calculatePage","Math","floor","Pagination","getJumpPrevPage","max","showLessItems","getJumpNextPage","min","getItemIcon","label","iconNode","savePaginationNode","paginationNode","isValid","shouldDisplayQuickJumper","showQuickJumper","handleKeyDown","handleKeyUp","currentInputValue","changePageSize","newCurrent","onShowSizeChange","currentPage","hasPrev","hasNext","jumpPrev","jumpNext","runIfEnter","callback","charCode","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","hasOnChange","console","warn","_current","defaultCurrent","_pageSize","defaultPageSize","prevProps","lastCurrentNode","querySelector","activeElement","blur","inputValue","allPages","showSizeChanger","totalBoundaryShowSizeChanger","prevPage","prevIcon","prevButton","isValidElement","cloneElement","nextPage","_this$props4","nextIcon","nextButton","_this$props5","hideOnSinglePage","showTotal","simple","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","_this$state","pagerList","firstPager","lastPager","pageBufferSize","dataOrAriaAttributeProps","substr","prev_page","renderPrev","onKeyDown","next_page","renderNext","pagerProps","prevItemTitle","prev_3","prev_5","nextItemTitle","next_3","next_5","last","_i","_active","totalText","prevDisabled","nextDisabled","unselectable","getShowSizeChanger","MiniSelect","screens","setScreens","token","supportScreens","customizeSelectPrefixCls","customLocale","renderPagination","contextLocale","isSmall","responsive","extendedClassName","mini","getIconsProps","LocaleReceiver","componentName","defaultLocale","usePagination","pagination","_a$total","paginationTotal","paginationObj","innerPagination","setInnerPagination","mergedPagination","result","extendsObject","maxPage","ceil","refreshPagination","TreeContext","Indent","level","isStart","isEnd","baseClassName","ICON_OPEN","ICON_CLOSE","InternalTreeNode","dragNodeHighlight","selectHandle","onSelectorClick","onNodeClick","convertNodePropsToEventData","isSelectable","onSelect","onCheck","onSelectorDoubleClick","onNodeDoubleClick","isDisabled","onNodeSelect","disableCheckbox","checked","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onContextMenu","onNodeContextMenu","onDragStart","onNodeDragStart","dataTransfer","setData","onDragEnter","onNodeDragEnter","onDragOver","onNodeDragOver","onDragLeave","onNodeDragLeave","onDragEnd","onNodeDragEnd","onDrop","onNodeDrop","loading","onNodeExpand","setSelectHandle","getNodeState","isLeaf","hasChildren","eventKey","keyEntities","loaded","loadData","checkable","treeCheckable","syncLoadData","_this$props$context","onNodeLoad","isDraggable","draggable","nodeDraggable","renderDragHandler","_this$props$context2","renderSwitcherIconDom","switcherIconFromProps","switcherIcon","switcherIconFromCtx","renderSwitcher","_switcherIconDom","switcherCls","switcherIconDom","renderCheckbox","halfChecked","$custom","renderIcon","renderSelector","$icon","_this$props6","selected","_this$props$context3","showIcon","treeIcon","titleRender","wrapClass","currentIcon","$title","onDoubleClick","renderDropIndicator","_this$props7","_this$props$context4","dropLevelOffset","dropPosition","dropIndicatorRender","dragOverNodeKey","treeSelectable","_this$props8","dragOver","dragOverGapTop","dragOverGapBottom","domRef","otherProps","_this$props$context5","filterTreeNode","dropContainerKey","dropTargetKey","draggingNodeKey","isEndNode","mergedDraggable","draggableWithoutDisabled","dragging","ContextTreeNode","isTreeNode","arrDel","arrAdd","posToArr","pos","split","getPosition","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","parent","posArr","calcDropPosition","dragNode","targetNode","startMousePosition","allowDrop","flattenedNodes","expandKeys","_abstractDropNodeEnti","clientX","clientY","_event$target$getBoun","rawDropLevelOffset","abstractDropNodeEntity","nodeIndex","findIndex","flattenedNode","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","includes","abstractDragDataNode","abstractDropDataNode","dropAllowed","dropNode","dropTargetPos","calcSelectedKeys","selectedKeys","multiple","parseCheckedKeys","keyProps","checkedKeys","halfCheckedKeys","conductExpandParent","keyList","conductUp","entity","add","getKey","fillFieldNames","fieldNames","mergedTitle","_title","convertTreeToData","rootNodes","treeNode","_treeNode$props","dataNode","parsedChildren","flattenTreeData","treeNodeList","_fillFieldNames","fieldTitles","fieldKey","fieldChildren","expandedKeySet","flattenList","fieldTitle","flattenNode","traverseDataNodes","dataNodes","config","syntheticGetKey","_mergedConfig","externalGetKey","childrenPropName","_fillFieldNames2","mergeChildrenPropName","processNode","parentPos","subNode","subIndex","convertDataToEntities","initWrapper","processEntity","onProcessFinished","legacyExternalGetKey","mergedExternalGetKey","posEntities","wrapper","getTreeNodeProps","loadedKeys","loadingKeys","eventData","defineProperty","removeFromCheckedKeys","filteredKeys","isCheckDisabled","conductCheck","getCheckDisabled","syntheticGetCheckDisabled","warningMissKeys","hasEntity","levelEntities","maxLevel","levelSet","_entity$children","childEntity","visitedKeys","_level","allChecked","partialChecked","from","fillConductCheck","halfKeys","_entity$children2","_level2","cleanConductCheck","SELECTION_ALL","SELECTION_INVERT","SELECTION_NONE","getFixedType","useSelection","rowSelection","preserveSelectedRowKeys","selectedRowKeys","defaultSelectedRowKeys","getCheckboxProps","onSelectionChange","onSelectAll","onSelectInvert","onSelectNone","onSelectMultiple","selectionColWidth","selectionType","selections","customizeRenderCell","renderCell","hideSelectAll","_ref$checkStrictly","checkStrictly","pageData","getRecordByKey","expandType","tableLocale","_useMergedState","useMergedState","_useMergedState2","mergedSelectedKeys","setMergedSelectedKeys","preserveRecordsRef","updatePreserveRecordsCache","useCallback","newCache","flattedData","checkboxPropsMap","checkboxProps","isCheckboxDisabled","r","_useMemo2","_conductCheck","_useMemo3","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","derivedHalfSelectedKeySet","lastSelectedKey","setLastSelectedKey","setSelectedKeys","availableKeys","records","triggerSingleSelection","k","mergedSelections","selection","text","selectionAll","checkProps","selectInvert","keySet","selectNone","recordKeys","checkedCurrentAll","checkedCurrentSome","customizeSelections","menu","onSelectionClick","DownOutlined","allDisabledData","allDisabled","allDisabledAndChecked","allDisabledSomeChecked","indeterminate","changeKeys","skipGroup","nativeEvent","mergedIndeterminate","shiftKey","startIndex","endIndex","pointKeys","recordIndex","rangeKeys","changedKeys","originCheckedKeys","_checkedKeys","nextCheckedKeys","tempKeySet","selectionColumn","columnTitle","_renderCell","_columns","restColumns","selectionFixed","getColumnKey","defaultKey","getColumnPos","renderColumnTitle","ASCEND","DESCEND","getMultiplePriority","sorter","getSortFunction","compare","collectSortStates","init","sortStates","pushState","columnPos","multiplePriority","sortOrder","defaultSortOrder","injectSorter","sorterSates","triggerSorter","defaultSortDirections","tableShowSorterTooltip","newColumn","sortDirections","showSorterTooltip","sorterState","find","sorterOrder","nextSortOrder","nextSortDirection","upNode","downNode","cancelSort","triggerAsc","triggerDesc","sortTip","renderProps","renderSortTitle","col","originOnClick","stateToInfo","sorterStates","order","field","generateSorterInfo","getSortData","innerSorterStates","cloneData","runningSorters","record1","record2","compareFn","compareResult","subRecords","useFilterSorter","onSorterChange","setSortStates","mergedSorterStates","validate","collectedStates","validateStates","patchStates","multipleMode","columnTitleSorterProps","sortColumns","sortColumn","sortState","newSorterStates","innerColumns","MotionTreeNode","motion","motionNodes","motionType","onOriginMotionStart","onMotionStart","onOriginMotionEnd","onMotionEnd","treeNodeRequiredProps","setVisible","motionedRef","motionAppear","onAppearEnd","onLeaveEnd","motionRef","motionClassName","motionStyle","treeNodeProps","getExpandRange","shorter","longer","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","opacity","margin","MOTION_KEY","random","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","virtual","itemHeight","itemKey","RefNodeList","focusable","activeItem","focused","onFocus","onActiveChange","onListChangeStart","onListChangeEnd","domProps","listRef","indentMeasurerRef","scrollTo","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","prevData","setPrevData","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","diffExpanded","prevLen","nextLen","abs","cache","findExpandedKeys","keyIndex","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","getAccessibilityPath","pointerEvents","fullHeight","originList","fullList","originSet","NodeList","Tree","_args","destroyed","delayedDragEnterLogic","loadingRetryTimes","treeData","flattenNodes","activeKey","listChanging","dragStartMousePosition","currentMouseOverDroppableNodeKey","setExpandedKeys","onWindowDragEnd","_this$state2","_node$props","_calcDropPosition","_this$state3","_calcDropPosition2","contains","outsideTree","cleanDragState","_this$getActiveItem","_this$state4","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropToChild","dropResult","dragNodesKeys","dropToGap","_this$state5","targetSelected","selectedNodes","selectedKey","setUncontrolledState","checkedObj","_this$state6","oriCheckedKeys","oriHalfCheckedKeys","eventObj","checkedNodes","checkedKey","_halfCheckedKeys","_conductCheck2","checkedNodesPositions","loadPromise","reject","_ref$loadedKeys","_ref$loadingKeys","onLoad","newLoadedKeys","catch","currentLoadedKeys","onRightClick","_this$state7","_this$state8","_this$state9","targetExpanded","newFlattenTreeData","expandedKeysToRestore","newActiveKey","_this$state10","offsetActiveKey","offset","_this$state11","_this$state12","which","eventNode","atomic","forceState","needSync","allPassed","name","draggableConfig","_this$state13","showLine","_this$props8$tabIndex","role","entitiesMap","checkedKeyEntity","autoExpandParent","defaultExpandParent","defaultExpandAll","cloneKeyEntities","defaultExpandedKeys","defaultSelectedKeys","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","backgroundColor","TreeNode","Record","traverseNodesKey","calcRangeKeys","startKey","endKey","None","End","matchKey","Start","convertDirectoryKeysToNodes","restKeys","nodes","getIcon","getTreeData","DirectoryTree","cachedSelectedKeys","treeRef","onDebounceExpand","metaKey","ctrlKey","leading","connectClassName","blockNode","newSelectedKeys","_node$key","newEvent","ctrlPick","shiftPick","expandAction","info","ForwardDirectoryTree","_style","_props$direction","startPosition","endPosition","_switcherIcon","newProps","nodeProps","showLeafIcon","LoadingOutlined","renderSwitcherIcon","filterSearch","tablePrefixCls","SearchOutlined","placeholder","filterSearchPlaceholder","htmlSize","searchValueMatched","searchValue","toLowerCase","trim","renderFilterItems","filters","filterMultiple","initialValue","dropdownPrefixCls","_props$filterMode","filterMode","_props$filterSearch","filterState","triggerFilter","filterDropdownVisible","onFilterDropdownVisibleChange","filtered","forceFiltered","triggerVisible","newVisible","mergedVisible","propFilteredKeys","_useSyncState","useForceUpdate","newValue","_useSyncState2","getFilteredKeysSync","setFilteredKeysSync","onSelectKeys","openKeys","setOpenKeys","openRef","onOpenChange","onMenuClick","setSearchValue","onSearch","dropdownContent","internalTriggerFilter","mergedKeys","onConfirm","onReset","dropdownMenuClass","onCheckAll","allFilterKeys","flattenKeys","filterDropdown","confirm","closeDropdown","clearFilters","image","description","filterEmptyText","imageStyle","filterCheckall","onDeselect","filterReset","filterConfirm","filterIcon","collectFilterStates","filterStates","filteredValues","filteredValue","defaultFilteredValue","injectFilter","_column$filterMultipl","generateFilterInfo","currentFilters","originKey","getFilterData","currentData","_filterState$column","onFilter","realKey","onFilterChange","setFilterStates","mergedFilterStates","filteredKeysIsNotControlled","filteredKeysIsAllControlled","getFilters","newFilterStates","fillTitle","columnTitleProps","cloneColumn","useTitleColumns","iconPrefix","collapse","expand","isWindow","method","Document","ownerDocument","easeInOutCubic","c","d","cc","_options$getContainer","_options$duration","duration","startTime","Date","now","frameFunc","time","nextScrollTop","HTMLDocument","constructor","raf","EMPTY_LIST","InternalTable","_classNames3","customizeSize","bordered","customizeDropdownPrefixCls","dataSource","legacyChildrenColumnName","_props$showSorterTool","matched","m","tableProps","SizeContext","_React$useContext$loc","renderEmpty","mergedSize","rawData","_mergedExpandable$chi","_useLazyKVMap","mapCacheRef","kvMap","useLazyKVMap","changeEventInfo","triggerOnChange","action","reset","changeInfo","resetPagination","scrollToFirstRowOnChange","currentDataSource","_useSorter","_useSorter2","transformSorterColumns","sorterTitleProps","getSorters","sortedData","_useFilter","_useFilter2","transformFilterColumns","_useTitleColumns","transformTitleColumns","_usePagination","_usePagination2","param","pageProp","getPaginationParam","_mergedPagination$cur","_mergedPagination$pag","_useSelection","_useSelection2","transformSelectionColumns","selectedKeySet","topPaginationNode","bottomPaginationNode","spinProps","paginationSize","defaultPosition","topPos","bottomPos","isDisable","replace","wrapperClassNames","mergedRowClassName","isStyleNameSupport","styleName","styleNameList","isStyleSupport","styleValue","ele","createElement","origin","isStyleValueSupport","trimmedEndIndex","reTrimStart","module","exports","string","reWhitespace","test","isObject","toNumber","nativeMax","nativeMin","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","trailing","TypeError","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","baseGetTag","isObjectLike","root","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","valueOf","isBinary"],"sourceRoot":""}