@jannie-shao/components-antd4
Version:
97 lines (96 loc) • 5.19 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
require("antd/es/table/style");
var _table = _interopRequireDefault(require("antd/es/table"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _lodash = require("lodash");
var _config = require("../style/config");
var _excluded = ["className", "type", "dataSource", "expandable", "columns"],
_excluded2 = ["defaultExpandAllRows", "expandedRowKeys"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
var getClass = {
tabMore: _config.rootPrefix + "-table-use-tab-more",
tabExpand: _config.rootPrefix + "-table-in-expand"
};
var CompTable = function CompTable(_ref) {
var className = _ref.className,
type = _ref.type,
dataSource = _ref.dataSource,
expandable = _ref.expandable,
columns = _ref.columns,
tableProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
var _useState = (0, _react.useState)([]),
expandedKeys = _useState[0],
setExpandedKeys = _useState[1];
var defaultExpandAllRows = expandable.defaultExpandAllRows,
expandedRowKeys = expandable.expandedRowKeys,
expandMore = (0, _objectWithoutPropertiesLoose2["default"])(expandable, _excluded2);
var handleExpand = function handleExpand(expanded, _ref2) {
var _rowKey = _ref2._rowKey;
if (expanded && !expandedKeys.includes(_rowKey)) {
setExpandedKeys([].concat(expandedKeys, [_rowKey]));
} else if (!expanded && expandedKeys.includes(_rowKey)) {
setExpandedKeys((0, _lodash.pull)([].concat(expandedKeys), _rowKey));
}
};
(0, _react.useEffect)(function () {
if (defaultExpandAllRows) {
setExpandedKeys(dataSource.map(function (d) {
return d._rowKey;
}));
} else {
setExpandedKeys(expandedRowKeys || []);
}
}, [defaultExpandAllRows, expandedRowKeys, dataSource]);
return /*#__PURE__*/_react["default"].createElement(_table["default"], (0, _extends2["default"])({
className: (0, _classnames["default"])(getClass[type] || '', className),
expandable: (0, _lodash.isEmpty)(expandable) ? {} : (0, _extends2["default"])({}, expandMore, {
expandedRowKeys: expandedKeys,
onExpand: handleExpand
}),
columns: columns.map(function (c) {
var cNow = (0, _extends2["default"])({}, c);
if (!(0, _lodash.isEmpty)(c._expandable)) {
var _c$_expandable = c._expandable,
_c$_expandable$show = _c$_expandable.show,
show = _c$_expandable$show === void 0 ? 'Show' : _c$_expandable$show,
_c$_expandable$hide = _c$_expandable.hide,
hide = _c$_expandable$hide === void 0 ? 'Hide' : _c$_expandable$hide;
cNow.render = function (_, record) {
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, expandedKeys.includes(record._rowKey) && /*#__PURE__*/_react["default"].createElement("a", {
onClick: function onClick() {
return handleExpand(false, record);
}
}, hide), !expandedKeys.includes(record._rowKey) && /*#__PURE__*/_react["default"].createElement("a", {
onClick: function onClick() {
return handleExpand(true, record);
}
}, show));
};
}
return cNow;
}),
dataSource: dataSource
}, tableProps));
};
CompTable.propTypes = {
className: _propTypes["default"].string,
type: _propTypes["default"].string,
dataSource: _propTypes["default"].array,
expandable: _propTypes["default"].object
};
CompTable.defaultProps = {
className: '',
type: '',
dataSource: [],
expandable: {}
};
var _default = CompTable;
exports["default"] = _default;