0dd59acabd501c0f2760f7fe3e2a6ed8.json 70.8 KB
{"ast":null,"code":"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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport warning from \"rc-util/es/warning\";\nimport ResizeObserver from 'rc-resize-observer';\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport ColumnGroup from './sugar/ColumnGroup';\nimport Column from './sugar/Column';\nimport FixedHeader from './Header/FixedHeader';\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, getDataAndAriaProps } 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'; // 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 = 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; // ===================== Effects ======================\n\n  var _React$useState = React.useState(0),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      scrollbarSize = _React$useState2[0],\n      setScrollbarSize = _React$useState2[1];\n\n  React.useEffect(function () {\n    setScrollbarSize(getScrollBarSize());\n  }); // ===================== 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$useState3 = 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$useState4 = _slicedToArray(_React$useState3, 2),\n      innerExpandedKeys = _React$useState4[0],\n      setInnerExpandedKeys = _React$useState4[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]); // ====================== Column ======================\n\n  var _React$useState5 = React.useState(0),\n      _React$useState6 = _slicedToArray(_React$useState5, 2),\n      componentWidth = _React$useState6[0],\n      setComponentWidth = _React$useState6[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\n  var _React$useState7 = React.useState(false),\n      _React$useState8 = _slicedToArray(_React$useState7, 2),\n      pingedLeft = _React$useState8[0],\n      setPingedLeft = _React$useState8[1];\n\n  var _React$useState9 = React.useState(false),\n      _React$useState10 = _slicedToArray(_React$useState9, 2),\n      pingedRight = _React$useState10[0],\n      setPingedRight = _React$useState10[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);\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      offsetScroll = _useSticky.offsetScroll,\n      stickyClassName = _useSticky.stickyClassName,\n      container = _useSticky.container;\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, (_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    triggerOnScroll();\n    setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n  }; // Sync scroll bar when init or `horizonScroll` changed\n\n\n  React.useEffect(function () {\n    return triggerOnScroll;\n  }, []);\n  React.useEffect(function () {\n    if (horizonScroll) {\n      triggerOnScroll();\n    }\n  }, [horizonScroll]); // ================== 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 || 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]);\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  }; // 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 = 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 = React.createElement(ColGroup, {\n    colWidths: flattenColumns.map(function (_ref6) {\n      var width = _ref6.width;\n      return width;\n    }),\n    columns: flattenColumns\n  });\n  var footerTable = summary && React.createElement(Footer, null, summary(mergedData));\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    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 value.');\n        return 0;\n      });\n    } else {\n      bodyContent = React.createElement(\"div\", {\n        style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n        onScroll: onScroll,\n        ref: scrollBodyRef,\n        className: classNames(\"\".concat(prefixCls, \"-body\"))\n      }, React.createElement(TableComponent, {\n        style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n          tableLayout: mergedTableLayout\n        })\n      }, bodyColGroup, bodyTable, footerTable));\n    }\n\n    groupTableNode = React.createElement(React.Fragment, null, showHeader !== false && React.createElement(FixedHeader, Object.assign({\n      noData: !mergedData.length\n    }, headerProps, columnContext, {\n      direction: direction,\n      // Fixed Props\n      offsetHeader: offsetHeader,\n      stickyClassName: stickyClassName,\n      ref: scrollHeaderRef,\n      onScroll: onScroll\n    })), bodyContent, isSticky && React.createElement(StickyScrollBar, {\n      ref: stickyRef,\n      offsetScroll: offsetScroll,\n      scrollBodyRef: scrollBodyRef,\n      onScroll: onScroll,\n      container: container\n    }));\n  } else {\n    groupTableNode = React.createElement(\"div\", {\n      style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n      className: classNames(\"\".concat(prefixCls, \"-content\")),\n      onScroll: onScroll,\n      ref: scrollBodyRef\n    }, React.createElement(TableComponent, {\n      style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n        tableLayout: mergedTableLayout\n      })\n    }, bodyColGroup, showHeader !== false && React.createElement(Header, Object.assign({}, headerProps, columnContext)), bodyTable, footerTable));\n  }\n\n  var ariaProps = getDataAndAriaProps(props);\n  var fullTable = React.createElement(\"div\", Object.assign({\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), React.createElement(MemoTableContent, {\n    pingLeft: pingedLeft,\n    pingRight: pingedRight,\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      stickyOffsets: stickyOffsets,\n      mergedExpandedKeys: mergedExpandedKeys\n    })\n  }, title && React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-title\")\n  }, title(mergedData)), React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-container\")\n  }, groupTableNode), footer && React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-footer\")\n  }, footer(mergedData))));\n\n  if (horizonScroll) {\n    fullTable = 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 React.createElement(TableContext.Provider, {\n    value: TableContextValue\n  }, React.createElement(BodyContext.Provider, {\n    value: BodyContextValue\n  }, 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;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-table/es/Table.js"],"names":["_defineProperty","_objectSpread","_toConsumableArray","_typeof","_slicedToArray","React","isVisible","classNames","shallowEqual","warning","ResizeObserver","getScrollBarSize","ColumnGroup","Column","FixedHeader","Header","TableContext","BodyContext","Body","useColumns","useLayoutState","useTimeoutLock","getPathValue","mergeObject","validateValue","getColumnsKey","ResizeContext","useStickyOffsets","ColGroup","getExpandableProps","getDataAndAriaProps","Panel","Footer","FooterComponents","findAllChildrenKeys","renderExpandIcon","getCellFixedInfo","StickyScrollBar","useSticky","EMPTY_DATA","EMPTY_SCROLL_TARGET","INTERNAL_HOOKS","MemoTableContent","memo","_ref","children","prev","next","props","pingLeft","pingRight","Table","_classNames","prefixCls","className","rowClassName","style","data","rowKey","scroll","tableLayout","direction","title","footer","summary","id","showHeader","components","emptyText","onRow","onHeaderRow","internalHooks","transformColumns","internalRefs","sticky","mergedData","hasData","length","_React$useState","useState","_React$useState2","scrollbarSize","setScrollbarSize","useEffect","process","env","NODE_ENV","forEach","name","undefined","concat","mergedComponents","useMemo","getComponent","useCallback","path","defaultComponent","getRowKey","record","key","expandableConfig","expandIcon","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","expandedRowRender","onExpand","onExpandedRowsChange","expandRowByClick","rowExpandable","expandIconColumnIndex","expandedRowClassName","childrenColumnName","indentSize","mergedExpandIcon","mergedChildrenColumnName","expandableType","expandable","__PARENT_RENDER_ICON__","some","_React$useState3","_React$useState4","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","Set","onTriggerExpand","indexOf","newExpandedKeys","hasKey","has","delete","_React$useState5","_React$useState6","componentWidth","setComponentWidth","_useColumns","expandedKeys","_useColumns2","columns","flattenColumns","columnContext","fullTableRef","useRef","scrollHeaderRef","scrollBodyRef","_React$useState7","_React$useState8","pingedLeft","setPingedLeft","_React$useState9","_React$useState10","pingedRight","setPingedRight","_useLayoutState","Map","_useLayoutState2","colsWidths","updateColsWidths","colsKeys","pureColWidths","map","columnKey","get","colWidths","join","stickyOffsets","fixHeader","y","horizonScroll","x","fixColumn","_ref2","fixed","stickyRef","_useSticky","isSticky","offsetHeader","offsetScroll","stickyClassName","container","scrollXStyle","scrollYStyle","scrollTableStyle","overflowY","maxHeight","overflowX","width","minWidth","onColumnResize","current","widths","newWidths","set","_useTimeoutLock","_useTimeoutLock2","setScrollTarget","getScrollTarget","forceScroll","scrollLeft","target","onScroll","_ref3","currentTarget","isRTL","mergedScrollLeft","compareTarget","_stickyRef$current","setScrollLeft","scrollWidth","clientWidth","triggerOnScroll","onFullTableResize","_ref4","offsetWidth","body","TableComponent","mergedTableLayout","_ref5","ellipsis","groupTableNode","headerProps","columCount","emptyNode","bodyTable","createElement","measureColumnWidth","bodyColGroup","_ref6","footerTable","customizeScrollBody","bodyContent","ref","_ref7","index","colWidth","Number","isNaN","Fragment","Object","assign","noData","ariaProps","fullTable","onResize","TableContextValue","fixedInfoList","_","colIndex","BodyContextValue","ResizeContextValue","Provider","value","Summary","defaultProps"],"mappings":"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","sourcesContent":["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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\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 */\nimport * as React from 'react';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport warning from \"rc-util/es/warning\";\nimport ResizeObserver from 'rc-resize-observer';\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport ColumnGroup from './sugar/ColumnGroup';\nimport Column from './sugar/Column';\nimport FixedHeader from './Header/FixedHeader';\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, getDataAndAriaProps } 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'; // 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 = 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; // ===================== Effects ======================\n\n  var _React$useState = React.useState(0),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      scrollbarSize = _React$useState2[0],\n      setScrollbarSize = _React$useState2[1];\n\n  React.useEffect(function () {\n    setScrollbarSize(getScrollBarSize());\n  }); // ===================== 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$useState3 = 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$useState4 = _slicedToArray(_React$useState3, 2),\n      innerExpandedKeys = _React$useState4[0],\n      setInnerExpandedKeys = _React$useState4[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]); // ====================== Column ======================\n\n  var _React$useState5 = React.useState(0),\n      _React$useState6 = _slicedToArray(_React$useState5, 2),\n      componentWidth = _React$useState6[0],\n      setComponentWidth = _React$useState6[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\n  var _React$useState7 = React.useState(false),\n      _React$useState8 = _slicedToArray(_React$useState7, 2),\n      pingedLeft = _React$useState8[0],\n      setPingedLeft = _React$useState8[1];\n\n  var _React$useState9 = React.useState(false),\n      _React$useState10 = _slicedToArray(_React$useState9, 2),\n      pingedRight = _React$useState10[0],\n      setPingedRight = _React$useState10[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);\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      offsetScroll = _useSticky.offsetScroll,\n      stickyClassName = _useSticky.stickyClassName,\n      container = _useSticky.container;\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, (_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    triggerOnScroll();\n    setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n  }; // Sync scroll bar when init or `horizonScroll` changed\n\n\n  React.useEffect(function () {\n    return triggerOnScroll;\n  }, []);\n  React.useEffect(function () {\n    if (horizonScroll) {\n      triggerOnScroll();\n    }\n  }, [horizonScroll]); // ================== 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 || 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]);\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  }; // 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 = 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 = React.createElement(ColGroup, {\n    colWidths: flattenColumns.map(function (_ref6) {\n      var width = _ref6.width;\n      return width;\n    }),\n    columns: flattenColumns\n  });\n  var footerTable = summary && React.createElement(Footer, null, summary(mergedData));\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    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 value.');\n        return 0;\n      });\n    } else {\n      bodyContent = React.createElement(\"div\", {\n        style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n        onScroll: onScroll,\n        ref: scrollBodyRef,\n        className: classNames(\"\".concat(prefixCls, \"-body\"))\n      }, React.createElement(TableComponent, {\n        style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n          tableLayout: mergedTableLayout\n        })\n      }, bodyColGroup, bodyTable, footerTable));\n    }\n\n    groupTableNode = React.createElement(React.Fragment, null, showHeader !== false && React.createElement(FixedHeader, Object.assign({\n      noData: !mergedData.length\n    }, headerProps, columnContext, {\n      direction: direction,\n      // Fixed Props\n      offsetHeader: offsetHeader,\n      stickyClassName: stickyClassName,\n      ref: scrollHeaderRef,\n      onScroll: onScroll\n    })), bodyContent, isSticky && React.createElement(StickyScrollBar, {\n      ref: stickyRef,\n      offsetScroll: offsetScroll,\n      scrollBodyRef: scrollBodyRef,\n      onScroll: onScroll,\n      container: container\n    }));\n  } else {\n    groupTableNode = React.createElement(\"div\", {\n      style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n      className: classNames(\"\".concat(prefixCls, \"-content\")),\n      onScroll: onScroll,\n      ref: scrollBodyRef\n    }, React.createElement(TableComponent, {\n      style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n        tableLayout: mergedTableLayout\n      })\n    }, bodyColGroup, showHeader !== false && React.createElement(Header, Object.assign({}, headerProps, columnContext)), bodyTable, footerTable));\n  }\n\n  var ariaProps = getDataAndAriaProps(props);\n  var fullTable = React.createElement(\"div\", Object.assign({\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), React.createElement(MemoTableContent, {\n    pingLeft: pingedLeft,\n    pingRight: pingedRight,\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      stickyOffsets: stickyOffsets,\n      mergedExpandedKeys: mergedExpandedKeys\n    })\n  }, title && React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-title\")\n  }, title(mergedData)), React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-container\")\n  }, groupTableNode), footer && React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-footer\")\n  }, footer(mergedData))));\n\n  if (horizonScroll) {\n    fullTable = 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 React.createElement(TableContext.Provider, {\n    value: TableContextValue\n  }, React.createElement(BodyContext.Provider, {\n    value: BodyContextValue\n  }, 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;"]},"metadata":{},"sourceType":"module"}