Latest updates from IceHrmPro
This commit is contained in:
613
web/node_modules/rc-table/lib/Table.js
generated
vendored
Normal file
613
web/node_modules/rc-table/lib/Table.js
generated
vendored
Normal file
@@ -0,0 +1,613 @@
|
||||
"use strict";
|
||||
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.INTERNAL_HOOKS = void 0;
|
||||
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
|
||||
var _classnames = _interopRequireDefault(require("classnames"));
|
||||
|
||||
var _shallowequal = _interopRequireDefault(require("shallowequal"));
|
||||
|
||||
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
|
||||
|
||||
var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
|
||||
|
||||
var _getScrollBarSize = _interopRequireDefault(require("rc-util/lib/getScrollBarSize"));
|
||||
|
||||
var _ColumnGroup = _interopRequireDefault(require("./sugar/ColumnGroup"));
|
||||
|
||||
var _Column = _interopRequireDefault(require("./sugar/Column"));
|
||||
|
||||
var _FixedHeader = _interopRequireDefault(require("./Header/FixedHeader"));
|
||||
|
||||
var _Header = _interopRequireDefault(require("./Header/Header"));
|
||||
|
||||
var _TableContext = _interopRequireDefault(require("./context/TableContext"));
|
||||
|
||||
var _BodyContext = _interopRequireDefault(require("./context/BodyContext"));
|
||||
|
||||
var _Body = _interopRequireDefault(require("./Body"));
|
||||
|
||||
var _useColumns3 = _interopRequireDefault(require("./hooks/useColumns"));
|
||||
|
||||
var _useFrame = require("./hooks/useFrame");
|
||||
|
||||
var _valueUtil = require("./utils/valueUtil");
|
||||
|
||||
var _ResizeContext = _interopRequireDefault(require("./context/ResizeContext"));
|
||||
|
||||
var _useStickyOffsets = _interopRequireDefault(require("./hooks/useStickyOffsets"));
|
||||
|
||||
var _ColGroup = _interopRequireDefault(require("./ColGroup"));
|
||||
|
||||
var _legacyUtil = require("./utils/legacyUtil");
|
||||
|
||||
var _Panel = _interopRequireDefault(require("./Panel"));
|
||||
|
||||
var _Footer = _interopRequireDefault(require("./Footer"));
|
||||
|
||||
var _expandUtil = require("./utils/expandUtil");
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
||||
|
||||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
||||
|
||||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
||||
|
||||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
||||
|
||||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
||||
|
||||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
||||
|
||||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||
|
||||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
||||
|
||||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
||||
|
||||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
||||
|
||||
// Used for conditions cache
|
||||
var EMPTY_DATA = []; // Used for customize scroll
|
||||
|
||||
var EMPTY_SCROLL_TARGET = {};
|
||||
var INTERNAL_HOOKS = 'rc-table-internal-hook';
|
||||
exports.INTERNAL_HOOKS = INTERNAL_HOOKS;
|
||||
var MemoTableContent = React.memo(function (_ref) {
|
||||
var children = _ref.children;
|
||||
return children;
|
||||
}, function (prev, next) {
|
||||
if (!(0, _shallowequal.default)(prev.props, next.props)) {
|
||||
return false;
|
||||
} // No additional render when pinged status change.
|
||||
// This is not a bug.
|
||||
|
||||
|
||||
return prev.pingLeft !== next.pingLeft || prev.pingRight !== next.pingRight;
|
||||
});
|
||||
|
||||
function Table(props) {
|
||||
var _classNames;
|
||||
|
||||
var prefixCls = props.prefixCls,
|
||||
className = props.className,
|
||||
rowClassName = props.rowClassName,
|
||||
style = props.style,
|
||||
data = props.data,
|
||||
rowKey = props.rowKey,
|
||||
scroll = props.scroll,
|
||||
tableLayout = props.tableLayout,
|
||||
direction = props.direction,
|
||||
title = props.title,
|
||||
footer = props.footer,
|
||||
summary = props.summary,
|
||||
id = props.id,
|
||||
showHeader = props.showHeader,
|
||||
components = props.components,
|
||||
emptyText = props.emptyText,
|
||||
onRow = props.onRow,
|
||||
onHeaderRow = props.onHeaderRow,
|
||||
internalHooks = props.internalHooks,
|
||||
transformColumns = props.transformColumns,
|
||||
internalRefs = props.internalRefs;
|
||||
var mergedData = data || EMPTY_DATA;
|
||||
var hasData = !!mergedData.length; // ===================== Effects ======================
|
||||
|
||||
var _React$useState = React.useState(0),
|
||||
_React$useState2 = _slicedToArray(_React$useState, 2),
|
||||
scrollbarSize = _React$useState2[0],
|
||||
setScrollbarSize = _React$useState2[1];
|
||||
|
||||
React.useEffect(function () {
|
||||
setScrollbarSize((0, _getScrollBarSize.default)());
|
||||
}); // ===================== Warning ======================
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {
|
||||
(0, _warning.default)(props[name] === undefined, "`".concat(name, "` is removed, please use `onRow` instead."));
|
||||
});
|
||||
(0, _warning.default)(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');
|
||||
} // ==================== Customize =====================
|
||||
|
||||
|
||||
var mergedComponents = React.useMemo(function () {
|
||||
return (0, _valueUtil.mergeObject)(components, {});
|
||||
}, [components]);
|
||||
var getComponent = React.useCallback(function (path, defaultComponent) {
|
||||
return (0, _valueUtil.getPathValue)(mergedComponents, path) || defaultComponent;
|
||||
}, [mergedComponents]);
|
||||
var getRowKey = React.useMemo(function () {
|
||||
if (typeof rowKey === 'function') {
|
||||
return rowKey;
|
||||
}
|
||||
|
||||
return function (record) {
|
||||
var key = record[rowKey];
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
(0, _warning.default)(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');
|
||||
}
|
||||
|
||||
return key;
|
||||
};
|
||||
}, [rowKey]); // ====================== Expand ======================
|
||||
|
||||
var expandableConfig = (0, _legacyUtil.getExpandableProps)(props);
|
||||
var expandIcon = expandableConfig.expandIcon,
|
||||
expandedRowKeys = expandableConfig.expandedRowKeys,
|
||||
defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,
|
||||
defaultExpandAllRows = expandableConfig.defaultExpandAllRows,
|
||||
expandedRowRender = expandableConfig.expandedRowRender,
|
||||
onExpand = expandableConfig.onExpand,
|
||||
onExpandedRowsChange = expandableConfig.onExpandedRowsChange,
|
||||
expandRowByClick = expandableConfig.expandRowByClick,
|
||||
rowExpandable = expandableConfig.rowExpandable,
|
||||
expandIconColumnIndex = expandableConfig.expandIconColumnIndex,
|
||||
expandedRowClassName = expandableConfig.expandedRowClassName,
|
||||
childrenColumnName = expandableConfig.childrenColumnName,
|
||||
indentSize = expandableConfig.indentSize;
|
||||
var mergedExpandIcon = expandIcon || _expandUtil.renderExpandIcon;
|
||||
var mergedChildrenColumnName = childrenColumnName || 'children';
|
||||
var expandableType = React.useMemo(function () {
|
||||
if (expandedRowRender) {
|
||||
return 'row';
|
||||
}
|
||||
/* eslint-disable no-underscore-dangle */
|
||||
|
||||
/**
|
||||
* Fix https://github.com/ant-design/ant-design/issues/21154
|
||||
* This is a workaround to not to break current behavior.
|
||||
* We can remove follow code after final release.
|
||||
*
|
||||
* To other developer:
|
||||
* Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor
|
||||
*/
|
||||
|
||||
|
||||
if (props.expandable && internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {
|
||||
return mergedChildrenColumnName in record;
|
||||
})) {
|
||||
return 'nest';
|
||||
}
|
||||
/* eslint-enable */
|
||||
|
||||
|
||||
return false;
|
||||
}, [!!expandedRowRender, mergedData]);
|
||||
|
||||
var _React$useState3 = React.useState(function () {
|
||||
if (defaultExpandedRowKeys) {
|
||||
return defaultExpandedRowKeys;
|
||||
}
|
||||
|
||||
if (defaultExpandAllRows) {
|
||||
return (0, _expandUtil.findAllChildrenKeys)(mergedData, getRowKey, mergedChildrenColumnName);
|
||||
}
|
||||
|
||||
return [];
|
||||
}),
|
||||
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
||||
innerExpandedKeys = _React$useState4[0],
|
||||
setInnerExpandedKeys = _React$useState4[1];
|
||||
|
||||
var mergedExpandedKeys = React.useMemo(function () {
|
||||
return new Set(expandedRowKeys || innerExpandedKeys || []);
|
||||
}, [expandedRowKeys, innerExpandedKeys]);
|
||||
var onTriggerExpand = React.useCallback(function (record) {
|
||||
var key = getRowKey(record, mergedData.indexOf(record));
|
||||
var newExpandedKeys;
|
||||
var hasKey = mergedExpandedKeys.has(key);
|
||||
|
||||
if (hasKey) {
|
||||
mergedExpandedKeys.delete(key);
|
||||
newExpandedKeys = _toConsumableArray(mergedExpandedKeys);
|
||||
} else {
|
||||
newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);
|
||||
}
|
||||
|
||||
setInnerExpandedKeys(newExpandedKeys);
|
||||
|
||||
if (onExpand) {
|
||||
onExpand(!hasKey, record);
|
||||
}
|
||||
|
||||
if (onExpandedRowsChange) {
|
||||
onExpandedRowsChange(newExpandedKeys);
|
||||
}
|
||||
}, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]); // ====================== Column ======================
|
||||
|
||||
var _React$useState5 = React.useState(0),
|
||||
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
||||
componentWidth = _React$useState6[0],
|
||||
setComponentWidth = _React$useState6[1];
|
||||
|
||||
var _useColumns = (0, _useColumns3.default)(_objectSpread({}, props, {}, expandableConfig, {
|
||||
expandable: !!expandedRowRender,
|
||||
expandedKeys: mergedExpandedKeys,
|
||||
getRowKey: getRowKey,
|
||||
onTriggerExpand: onTriggerExpand,
|
||||
expandIcon: mergedExpandIcon,
|
||||
expandIconColumnIndex: expandIconColumnIndex,
|
||||
direction: direction
|
||||
}), internalHooks === INTERNAL_HOOKS ? transformColumns : null),
|
||||
_useColumns2 = _slicedToArray(_useColumns, 2),
|
||||
columns = _useColumns2[0],
|
||||
flattenColumns = _useColumns2[1];
|
||||
|
||||
var columnContext = React.useMemo(function () {
|
||||
return {
|
||||
columns: columns,
|
||||
flattenColumns: flattenColumns
|
||||
};
|
||||
}, [columns, flattenColumns]); // ====================== Scroll ======================
|
||||
|
||||
var fullTableRef = React.useRef();
|
||||
var scrollHeaderRef = React.useRef();
|
||||
var scrollBodyRef = React.useRef();
|
||||
|
||||
var _React$useState7 = React.useState(false),
|
||||
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
||||
pingedLeft = _React$useState8[0],
|
||||
setPingedLeft = _React$useState8[1];
|
||||
|
||||
var _React$useState9 = React.useState(false),
|
||||
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
||||
pingedRight = _React$useState10[0],
|
||||
setPingedRight = _React$useState10[1];
|
||||
|
||||
var _useFrameState = (0, _useFrame.useFrameState)(new Map()),
|
||||
_useFrameState2 = _slicedToArray(_useFrameState, 2),
|
||||
colsWidths = _useFrameState2[0],
|
||||
updateColsWidths = _useFrameState2[1]; // Convert map to number width
|
||||
|
||||
|
||||
var colsKeys = (0, _valueUtil.getColumnsKey)(flattenColumns);
|
||||
var pureColWidths = colsKeys.map(function (columnKey) {
|
||||
return colsWidths.get(columnKey);
|
||||
});
|
||||
var colWidths = React.useMemo(function () {
|
||||
return pureColWidths;
|
||||
}, [pureColWidths.join('_')]);
|
||||
var stickyOffsets = (0, _useStickyOffsets.default)(colWidths, flattenColumns.length, direction);
|
||||
var fixHeader = hasData && scroll && (0, _valueUtil.validateValue)(scroll.y);
|
||||
var horizonScroll = scroll && (0, _valueUtil.validateValue)(scroll.x);
|
||||
var fixColumn = horizonScroll && flattenColumns.some(function (_ref2) {
|
||||
var fixed = _ref2.fixed;
|
||||
return fixed;
|
||||
});
|
||||
var scrollXStyle;
|
||||
var scrollYStyle;
|
||||
var scrollTableStyle;
|
||||
|
||||
if (fixHeader) {
|
||||
scrollYStyle = {
|
||||
overflowY: 'scroll',
|
||||
maxHeight: scroll.y
|
||||
};
|
||||
}
|
||||
|
||||
if (horizonScroll) {
|
||||
scrollXStyle = {
|
||||
overflowX: 'scroll'
|
||||
}; // When no vertical scrollbar, should hide it
|
||||
// https://github.com/ant-design/ant-design/pull/20705
|
||||
// https://github.com/ant-design/ant-design/issues/21879
|
||||
|
||||
if (!fixHeader) {
|
||||
scrollYStyle = {
|
||||
overflowY: 'hidden'
|
||||
};
|
||||
}
|
||||
|
||||
scrollTableStyle = {
|
||||
width: scroll.x === true ? 'auto' : scroll.x,
|
||||
minWidth: '100%'
|
||||
};
|
||||
}
|
||||
|
||||
var onColumnResize = React.useCallback(function (columnKey, width) {
|
||||
updateColsWidths(function (widths) {
|
||||
var newWidths = new Map(widths);
|
||||
newWidths.set(columnKey, width);
|
||||
return newWidths;
|
||||
});
|
||||
}, []);
|
||||
|
||||
var _useTimeoutLock = (0, _useFrame.useTimeoutLock)(null),
|
||||
_useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),
|
||||
setScrollTarget = _useTimeoutLock2[0],
|
||||
getScrollTarget = _useTimeoutLock2[1];
|
||||
|
||||
function forceScroll(scrollLeft, target) {
|
||||
/* eslint-disable no-param-reassign */
|
||||
if (target && target.scrollLeft !== scrollLeft) {
|
||||
target.scrollLeft = scrollLeft;
|
||||
}
|
||||
/* eslint-enable */
|
||||
|
||||
}
|
||||
|
||||
var onScroll = function onScroll(_ref3) {
|
||||
var currentTarget = _ref3.currentTarget,
|
||||
scrollLeft = _ref3.scrollLeft;
|
||||
var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;
|
||||
var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;
|
||||
|
||||
if (!getScrollTarget() || getScrollTarget() === compareTarget) {
|
||||
setScrollTarget(compareTarget);
|
||||
forceScroll(mergedScrollLeft, scrollHeaderRef.current);
|
||||
forceScroll(mergedScrollLeft, scrollBodyRef.current);
|
||||
}
|
||||
|
||||
if (currentTarget) {
|
||||
var scrollWidth = currentTarget.scrollWidth,
|
||||
clientWidth = currentTarget.clientWidth;
|
||||
setPingedLeft(mergedScrollLeft > 0);
|
||||
setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);
|
||||
}
|
||||
};
|
||||
|
||||
var triggerOnScroll = function triggerOnScroll() {
|
||||
if (scrollBodyRef.current) {
|
||||
onScroll({
|
||||
currentTarget: scrollBodyRef.current
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
var onFullTableResize = function onFullTableResize(_ref4) {
|
||||
var width = _ref4.width;
|
||||
triggerOnScroll();
|
||||
setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);
|
||||
}; // Sync scroll bar when init or `horizonScroll` changed
|
||||
|
||||
|
||||
React.useEffect(function () {
|
||||
return triggerOnScroll;
|
||||
}, []);
|
||||
React.useEffect(function () {
|
||||
if (horizonScroll) {
|
||||
triggerOnScroll();
|
||||
}
|
||||
}, [horizonScroll]); // ================== INTERNAL HOOKS ==================
|
||||
|
||||
React.useEffect(function () {
|
||||
if (internalHooks === INTERNAL_HOOKS && internalRefs) {
|
||||
internalRefs.body.current = scrollBodyRef.current;
|
||||
}
|
||||
}); // ====================== Render ======================
|
||||
|
||||
var TableComponent = getComponent(['table'], 'table'); // Table layout
|
||||
|
||||
var mergedTableLayout = React.useMemo(function () {
|
||||
if (tableLayout) {
|
||||
return tableLayout;
|
||||
}
|
||||
|
||||
if (fixHeader || fixColumn || flattenColumns.some(function (_ref5) {
|
||||
var ellipsis = _ref5.ellipsis;
|
||||
return ellipsis;
|
||||
})) {
|
||||
return 'fixed';
|
||||
}
|
||||
|
||||
return 'auto';
|
||||
}, [fixHeader, fixColumn, flattenColumns, tableLayout]);
|
||||
var groupTableNode; // Header props
|
||||
|
||||
var headerProps = {
|
||||
colWidths: colWidths,
|
||||
columCount: flattenColumns.length,
|
||||
stickyOffsets: stickyOffsets,
|
||||
onHeaderRow: onHeaderRow
|
||||
}; // Empty
|
||||
|
||||
var emptyNode = React.useMemo(function () {
|
||||
if (hasData) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (typeof emptyText === 'function') {
|
||||
return emptyText();
|
||||
}
|
||||
|
||||
return emptyText;
|
||||
}, [hasData, emptyText]); // Body
|
||||
|
||||
var bodyTable = React.createElement(_Body.default, {
|
||||
data: mergedData,
|
||||
measureColumnWidth: fixHeader || horizonScroll,
|
||||
stickyOffsets: stickyOffsets,
|
||||
expandedKeys: mergedExpandedKeys,
|
||||
rowExpandable: rowExpandable,
|
||||
getRowKey: getRowKey,
|
||||
onRow: onRow,
|
||||
emptyNode: emptyNode,
|
||||
childrenColumnName: mergedChildrenColumnName
|
||||
});
|
||||
var bodyColGroup = React.createElement(_ColGroup.default, {
|
||||
colWidths: flattenColumns.map(function (_ref6) {
|
||||
var width = _ref6.width;
|
||||
return width;
|
||||
}),
|
||||
columns: flattenColumns
|
||||
});
|
||||
var footerTable = summary && React.createElement(_Footer.default, null, summary(mergedData));
|
||||
var customizeScrollBody = getComponent(['body']);
|
||||
|
||||
if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {
|
||||
(0, _warning.default)(false, '`components.body` with render props is only work on `scroll.y`.');
|
||||
}
|
||||
|
||||
if (fixHeader) {
|
||||
var bodyContent;
|
||||
|
||||
if (typeof customizeScrollBody === 'function') {
|
||||
bodyContent = customizeScrollBody(mergedData, {
|
||||
scrollbarSize: scrollbarSize,
|
||||
ref: scrollBodyRef,
|
||||
onScroll: onScroll
|
||||
});
|
||||
headerProps.colWidths = flattenColumns.map(function (_ref7, index) {
|
||||
var width = _ref7.width;
|
||||
var colWidth = index === columns.length - 1 ? width - scrollbarSize : width;
|
||||
|
||||
if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {
|
||||
return colWidth;
|
||||
}
|
||||
|
||||
(0, _warning.default)(false, 'When use `components.body` with render props. Each column should have a fixed value.');
|
||||
return 0;
|
||||
});
|
||||
} else {
|
||||
bodyContent = React.createElement("div", {
|
||||
style: _objectSpread({}, scrollXStyle, {}, scrollYStyle),
|
||||
onScroll: onScroll,
|
||||
ref: scrollBodyRef,
|
||||
className: (0, _classnames.default)("".concat(prefixCls, "-body"))
|
||||
}, React.createElement(TableComponent, {
|
||||
style: _objectSpread({}, scrollTableStyle, {
|
||||
tableLayout: mergedTableLayout
|
||||
})
|
||||
}, bodyColGroup, bodyTable, footerTable));
|
||||
}
|
||||
|
||||
groupTableNode = React.createElement(React.Fragment, null, showHeader !== false && React.createElement("div", {
|
||||
style: {
|
||||
overflow: 'hidden'
|
||||
},
|
||||
onScroll: onScroll,
|
||||
ref: scrollHeaderRef,
|
||||
className: (0, _classnames.default)("".concat(prefixCls, "-header"))
|
||||
}, React.createElement(_FixedHeader.default, Object.assign({}, headerProps, columnContext, {
|
||||
direction: direction
|
||||
}))), bodyContent);
|
||||
} else {
|
||||
groupTableNode = React.createElement("div", {
|
||||
style: _objectSpread({}, scrollXStyle, {}, scrollYStyle),
|
||||
className: (0, _classnames.default)("".concat(prefixCls, "-content")),
|
||||
onScroll: onScroll,
|
||||
ref: scrollBodyRef
|
||||
}, React.createElement(TableComponent, {
|
||||
style: _objectSpread({}, scrollTableStyle, {
|
||||
tableLayout: mergedTableLayout
|
||||
})
|
||||
}, bodyColGroup, showHeader !== false && React.createElement(_Header.default, Object.assign({}, headerProps, columnContext)), bodyTable, footerTable));
|
||||
}
|
||||
|
||||
var ariaProps = (0, _legacyUtil.getDataAndAriaProps)(props);
|
||||
var fullTable = React.createElement("div", Object.assign({
|
||||
className: (0, _classnames.default)(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)),
|
||||
style: style,
|
||||
id: id,
|
||||
ref: fullTableRef
|
||||
}, ariaProps), React.createElement(MemoTableContent, {
|
||||
pingLeft: pingedLeft,
|
||||
pingRight: pingedRight,
|
||||
props: _objectSpread({}, props, {
|
||||
stickyOffsets: stickyOffsets,
|
||||
mergedExpandedKeys: mergedExpandedKeys
|
||||
})
|
||||
}, title && React.createElement(_Panel.default, {
|
||||
className: "".concat(prefixCls, "-title")
|
||||
}, title(mergedData)), React.createElement("div", {
|
||||
className: "".concat(prefixCls, "-container")
|
||||
}, groupTableNode), footer && React.createElement(_Panel.default, {
|
||||
className: "".concat(prefixCls, "-footer")
|
||||
}, footer(mergedData))));
|
||||
|
||||
if (horizonScroll) {
|
||||
fullTable = React.createElement(_rcResizeObserver.default, {
|
||||
onResize: onFullTableResize
|
||||
}, fullTable);
|
||||
}
|
||||
|
||||
var TableContextValue = React.useMemo(function () {
|
||||
return {
|
||||
prefixCls: prefixCls,
|
||||
getComponent: getComponent,
|
||||
scrollbarSize: scrollbarSize,
|
||||
direction: direction
|
||||
};
|
||||
}, [prefixCls, getComponent, scrollbarSize, direction]);
|
||||
var BodyContextValue = React.useMemo(function () {
|
||||
return _objectSpread({}, columnContext, {
|
||||
tableLayout: mergedTableLayout,
|
||||
rowClassName: rowClassName,
|
||||
expandedRowClassName: expandedRowClassName,
|
||||
componentWidth: componentWidth,
|
||||
fixHeader: fixHeader,
|
||||
fixColumn: fixColumn,
|
||||
horizonScroll: horizonScroll,
|
||||
expandIcon: mergedExpandIcon,
|
||||
expandableType: expandableType,
|
||||
expandRowByClick: expandRowByClick,
|
||||
expandedRowRender: expandedRowRender,
|
||||
onTriggerExpand: onTriggerExpand,
|
||||
expandIconColumnIndex: expandIconColumnIndex,
|
||||
indentSize: indentSize
|
||||
});
|
||||
}, [columnContext, mergedTableLayout, rowClassName, expandedRowClassName, componentWidth, fixHeader, fixColumn, horizonScroll, mergedExpandIcon, expandableType, expandRowByClick, expandedRowRender, onTriggerExpand, expandIconColumnIndex, indentSize]);
|
||||
var ResizeContextValue = React.useMemo(function () {
|
||||
return {
|
||||
onColumnResize: onColumnResize
|
||||
};
|
||||
}, [onColumnResize]);
|
||||
return React.createElement(_TableContext.default.Provider, {
|
||||
value: TableContextValue
|
||||
}, React.createElement(_BodyContext.default.Provider, {
|
||||
value: BodyContextValue
|
||||
}, React.createElement(_ResizeContext.default.Provider, {
|
||||
value: ResizeContextValue
|
||||
}, fullTable)));
|
||||
}
|
||||
|
||||
Table.Column = _Column.default;
|
||||
Table.ColumnGroup = _ColumnGroup.default;
|
||||
Table.defaultProps = {
|
||||
rowKey: 'key',
|
||||
prefixCls: 'rc-table',
|
||||
emptyText: function emptyText() {
|
||||
return 'No Data';
|
||||
}
|
||||
};
|
||||
var _default = Table;
|
||||
exports.default = _default;
|
||||
Reference in New Issue
Block a user