wssf-kage-ui 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Avatar/index.d.ts +47 -0
- package/dist/cjs/Avatar/index.js +147 -0
- package/dist/cjs/Avatar/style.less +193 -0
- package/dist/cjs/Badge/index.d.ts +48 -0
- package/dist/cjs/Badge/index.js +141 -0
- package/dist/cjs/Badge/style.less +237 -0
- package/dist/cjs/Calendar/index.d.ts +33 -0
- package/dist/cjs/Calendar/index.js +296 -0
- package/dist/cjs/Calendar/style.less +384 -0
- package/dist/cjs/Card/index.d.ts +68 -0
- package/dist/cjs/Card/index.js +155 -0
- package/dist/cjs/Card/style.less +356 -0
- package/dist/cjs/Carousel/index.d.ts +33 -0
- package/dist/cjs/Carousel/index.js +169 -0
- package/dist/cjs/Carousel/style.less +232 -0
- package/dist/cjs/Collapse/index.d.ts +55 -0
- package/dist/cjs/Collapse/index.js +191 -0
- package/dist/cjs/Collapse/style.less +217 -0
- package/dist/cjs/Descriptions/index.d.ts +54 -0
- package/dist/cjs/Descriptions/index.js +181 -0
- package/dist/cjs/Descriptions/style.less +259 -0
- package/dist/cjs/Empty/index.d.ts +21 -0
- package/dist/cjs/Empty/index.js +115 -0
- package/dist/cjs/Empty/style.less +103 -0
- package/dist/cjs/Image/index.d.ts +30 -0
- package/dist/cjs/Image/index.js +153 -0
- package/dist/cjs/Image/style.less +156 -0
- package/dist/cjs/Input/index.d.ts +24 -0
- package/dist/cjs/Input/index.js +158 -0
- package/dist/cjs/Input/style.less +276 -0
- package/dist/cjs/InputNumber/index.d.ts +47 -0
- package/dist/cjs/InputNumber/index.js +323 -0
- package/dist/cjs/InputNumber/style.less +392 -0
- package/dist/cjs/Mentions/index.d.ts +57 -0
- package/dist/cjs/Mentions/index.js +378 -0
- package/dist/cjs/Mentions/style.less +297 -0
- package/dist/cjs/Popover/index.d.ts +30 -0
- package/dist/cjs/Popover/index.js +131 -0
- package/dist/cjs/Popover/style.less +279 -0
- package/dist/cjs/QRCode/index.d.ts +30 -0
- package/dist/cjs/QRCode/index.js +167 -0
- package/dist/cjs/QRCode/style.less +201 -0
- package/dist/cjs/Radio/index.d.ts +70 -0
- package/dist/cjs/Radio/index.js +199 -0
- package/dist/cjs/Radio/style.less +326 -0
- package/dist/cjs/Rate/index.d.ts +37 -0
- package/dist/cjs/Rate/index.js +151 -0
- package/dist/cjs/Rate/style.less +170 -0
- package/dist/cjs/Segmented/index.d.ts +31 -0
- package/dist/cjs/Segmented/index.js +121 -0
- package/dist/cjs/Segmented/style.less +167 -0
- package/dist/cjs/Select/index.d.ts +67 -0
- package/dist/cjs/Select/index.js +403 -0
- package/dist/cjs/Select/style.less +523 -0
- package/dist/cjs/Slider/index.d.ts +41 -0
- package/dist/cjs/Slider/index.js +325 -0
- package/dist/cjs/Slider/style.less +287 -0
- package/dist/cjs/Statistic/index.d.ts +26 -0
- package/dist/cjs/Statistic/index.js +71 -0
- package/dist/cjs/Statistic/style.less +94 -0
- package/dist/cjs/Switch/index.d.ts +28 -0
- package/dist/cjs/Switch/index.js +71 -0
- package/dist/cjs/Switch/style.less +212 -0
- package/dist/cjs/Table/index.d.ts +188 -0
- package/dist/cjs/Table/index.js +787 -0
- package/dist/cjs/Table/style.less +663 -0
- package/dist/cjs/Tag/index.d.ts +51 -0
- package/dist/cjs/Tag/index.js +142 -0
- package/dist/cjs/Tag/style.less +356 -0
- package/dist/cjs/TimePicker/index.d.ts +51 -0
- package/dist/cjs/TimePicker/index.js +332 -0
- package/dist/cjs/TimePicker/style.less +384 -0
- package/dist/cjs/Timeline/index.d.ts +47 -0
- package/dist/cjs/Timeline/index.js +127 -0
- package/dist/cjs/Timeline/style.less +265 -0
- package/dist/cjs/Tooltip/index.d.ts +53 -0
- package/dist/cjs/Tooltip/index.js +468 -0
- package/dist/cjs/Tooltip/style.less +237 -0
- package/dist/cjs/Transfer/index.d.ts +52 -0
- package/dist/cjs/Transfer/index.js +344 -0
- package/dist/cjs/Transfer/style.less +331 -0
- package/dist/cjs/TreeSelect/index.d.ts +54 -0
- package/dist/cjs/TreeSelect/index.js +373 -0
- package/dist/cjs/TreeSelect/style.less +471 -0
- package/dist/cjs/Upload/index.d.ts +65 -0
- package/dist/cjs/Upload/index.js +517 -0
- package/dist/cjs/Upload/style.less +424 -0
- package/dist/cjs/index.d.ts +58 -0
- package/dist/cjs/index.js +227 -0
- package/dist/esm/Avatar/index.d.ts +47 -0
- package/dist/esm/Avatar/index.js +142 -0
- package/dist/esm/Avatar/style.less +193 -0
- package/dist/esm/Badge/index.d.ts +48 -0
- package/dist/esm/Badge/index.js +137 -0
- package/dist/esm/Badge/style.less +237 -0
- package/dist/esm/Calendar/index.d.ts +33 -0
- package/dist/esm/Calendar/index.js +291 -0
- package/dist/esm/Calendar/style.less +384 -0
- package/dist/esm/Card/index.d.ts +68 -0
- package/dist/esm/Card/index.js +149 -0
- package/dist/esm/Card/style.less +356 -0
- package/dist/esm/Carousel/index.d.ts +33 -0
- package/dist/esm/Carousel/index.js +163 -0
- package/dist/esm/Carousel/style.less +232 -0
- package/dist/esm/Collapse/index.d.ts +55 -0
- package/dist/esm/Collapse/index.js +187 -0
- package/dist/esm/Collapse/style.less +217 -0
- package/dist/esm/Descriptions/index.d.ts +54 -0
- package/dist/esm/Descriptions/index.js +179 -0
- package/dist/esm/Descriptions/style.less +259 -0
- package/dist/esm/Empty/index.d.ts +21 -0
- package/dist/esm/Empty/index.js +109 -0
- package/dist/esm/Empty/style.less +103 -0
- package/dist/esm/Image/index.d.ts +30 -0
- package/dist/esm/Image/index.js +149 -0
- package/dist/esm/Image/style.less +156 -0
- package/dist/esm/Input/index.d.ts +24 -0
- package/dist/esm/Input/index.js +151 -0
- package/dist/esm/Input/style.less +276 -0
- package/dist/esm/InputNumber/index.d.ts +47 -0
- package/dist/esm/InputNumber/index.js +316 -0
- package/dist/esm/InputNumber/style.less +392 -0
- package/dist/esm/Mentions/index.d.ts +57 -0
- package/dist/esm/Mentions/index.js +374 -0
- package/dist/esm/Mentions/style.less +297 -0
- package/dist/esm/Popover/index.d.ts +30 -0
- package/dist/esm/Popover/index.js +126 -0
- package/dist/esm/Popover/style.less +279 -0
- package/dist/esm/QRCode/index.d.ts +30 -0
- package/dist/esm/QRCode/index.js +158 -0
- package/dist/esm/QRCode/style.less +201 -0
- package/dist/esm/Radio/index.d.ts +70 -0
- package/dist/esm/Radio/index.js +193 -0
- package/dist/esm/Radio/style.less +326 -0
- package/dist/esm/Rate/index.d.ts +37 -0
- package/dist/esm/Rate/index.js +143 -0
- package/dist/esm/Rate/style.less +170 -0
- package/dist/esm/Segmented/index.d.ts +31 -0
- package/dist/esm/Segmented/index.js +113 -0
- package/dist/esm/Segmented/style.less +167 -0
- package/dist/esm/Select/index.d.ts +67 -0
- package/dist/esm/Select/index.js +398 -0
- package/dist/esm/Select/style.less +523 -0
- package/dist/esm/Slider/index.d.ts +41 -0
- package/dist/esm/Slider/index.js +318 -0
- package/dist/esm/Slider/style.less +287 -0
- package/dist/esm/Statistic/index.d.ts +26 -0
- package/dist/esm/Statistic/index.js +65 -0
- package/dist/esm/Statistic/style.less +94 -0
- package/dist/esm/Switch/index.d.ts +28 -0
- package/dist/esm/Switch/index.js +63 -0
- package/dist/esm/Switch/style.less +212 -0
- package/dist/esm/Table/index.d.ts +188 -0
- package/dist/esm/Table/index.js +797 -0
- package/dist/esm/Table/style.less +663 -0
- package/dist/esm/Tag/index.d.ts +51 -0
- package/dist/esm/Tag/index.js +144 -0
- package/dist/esm/Tag/style.less +356 -0
- package/dist/esm/TimePicker/index.d.ts +51 -0
- package/dist/esm/TimePicker/index.js +327 -0
- package/dist/esm/TimePicker/style.less +384 -0
- package/dist/esm/Timeline/index.d.ts +47 -0
- package/dist/esm/Timeline/index.js +130 -0
- package/dist/esm/Timeline/style.less +265 -0
- package/dist/esm/Tooltip/index.d.ts +53 -0
- package/dist/esm/Tooltip/index.js +471 -0
- package/dist/esm/Tooltip/style.less +237 -0
- package/dist/esm/Transfer/index.d.ts +52 -0
- package/dist/esm/Transfer/index.js +340 -0
- package/dist/esm/Transfer/style.less +331 -0
- package/dist/esm/TreeSelect/index.d.ts +54 -0
- package/dist/esm/TreeSelect/index.js +369 -0
- package/dist/esm/TreeSelect/style.less +471 -0
- package/dist/esm/Upload/index.d.ts +65 -0
- package/dist/esm/Upload/index.js +513 -0
- package/dist/esm/Upload/style.less +424 -0
- package/dist/esm/index.d.ts +58 -0
- package/dist/esm/index.js +30 -1
- package/package.json +6 -3
|
@@ -0,0 +1,787 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.Table = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _Pagination = _interopRequireDefault(require("../Pagination"));
|
|
10
|
+
var _Checkbox = _interopRequireDefault(require("../Checkbox"));
|
|
11
|
+
var _Empty = _interopRequireDefault(require("../Empty"));
|
|
12
|
+
require("./style.less");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
18
|
+
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."); }
|
|
19
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
20
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
21
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
24
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
25
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
26
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
27
|
+
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."); }
|
|
28
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
29
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
30
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
31
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
32
|
+
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; } // ============ 类型定义 ============
|
|
33
|
+
/** 排序方向 */ /** 列对齐方式 */ /** 表格尺寸 */ /** 筛选项 */ /** 列定义 */ /** 行选择配置 */ /** 分页配置 */ /** 表格属性 */
|
|
34
|
+
// ============ 工具函数 ============
|
|
35
|
+
|
|
36
|
+
/** 获取记录的 key */
|
|
37
|
+
function getRowKey(record, rowKey, index) {
|
|
38
|
+
var _rowKey;
|
|
39
|
+
if (typeof rowKey === 'function') {
|
|
40
|
+
return rowKey(record);
|
|
41
|
+
}
|
|
42
|
+
return (_rowKey = record[rowKey]) !== null && _rowKey !== void 0 ? _rowKey : index;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** 获取嵌套值 */
|
|
46
|
+
function getNestedValue(record, dataIndex) {
|
|
47
|
+
if (!dataIndex) return record;
|
|
48
|
+
var keys = dataIndex.split('.');
|
|
49
|
+
var value = record;
|
|
50
|
+
var _iterator = _createForOfIteratorHelper(keys),
|
|
51
|
+
_step;
|
|
52
|
+
try {
|
|
53
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
54
|
+
var _value;
|
|
55
|
+
var key = _step.value;
|
|
56
|
+
value = (_value = value) === null || _value === void 0 ? void 0 : _value[key];
|
|
57
|
+
}
|
|
58
|
+
} catch (err) {
|
|
59
|
+
_iterator.e(err);
|
|
60
|
+
} finally {
|
|
61
|
+
_iterator.f();
|
|
62
|
+
}
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ============ Table 组件 ============
|
|
67
|
+
|
|
68
|
+
var Table = exports.Table = function Table(_ref) {
|
|
69
|
+
var _rowSelection$selecte, _expandable$expandedR, _currentPagination$po;
|
|
70
|
+
var columns = _ref.columns,
|
|
71
|
+
dataSource = _ref.dataSource,
|
|
72
|
+
_ref$rowKey = _ref.rowKey,
|
|
73
|
+
rowKey = _ref$rowKey === void 0 ? 'key' : _ref$rowKey,
|
|
74
|
+
_ref$showHeader = _ref.showHeader,
|
|
75
|
+
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
|
|
76
|
+
_ref$bordered = _ref.bordered,
|
|
77
|
+
bordered = _ref$bordered === void 0 ? false : _ref$bordered,
|
|
78
|
+
_ref$size = _ref.size,
|
|
79
|
+
size = _ref$size === void 0 ? 'default' : _ref$size,
|
|
80
|
+
_ref$loading = _ref.loading,
|
|
81
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
82
|
+
_ref$loadingText = _ref.loadingText,
|
|
83
|
+
loadingText = _ref$loadingText === void 0 ? '加载中...' : _ref$loadingText,
|
|
84
|
+
locale = _ref.locale,
|
|
85
|
+
_ref$pagination = _ref.pagination,
|
|
86
|
+
pagination = _ref$pagination === void 0 ? {} : _ref$pagination,
|
|
87
|
+
rowSelection = _ref.rowSelection,
|
|
88
|
+
rowClassName = _ref.rowClassName,
|
|
89
|
+
onRow = _ref.onRow,
|
|
90
|
+
title = _ref.title,
|
|
91
|
+
footer = _ref.footer,
|
|
92
|
+
_ref$className = _ref.className,
|
|
93
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
94
|
+
style = _ref.style,
|
|
95
|
+
scroll = _ref.scroll,
|
|
96
|
+
onChange = _ref.onChange,
|
|
97
|
+
expandable = _ref.expandable,
|
|
98
|
+
_ref$striped = _ref.striped,
|
|
99
|
+
striped = _ref$striped === void 0 ? false : _ref$striped,
|
|
100
|
+
_ref$hoverable = _ref.hoverable,
|
|
101
|
+
hoverable = _ref$hoverable === void 0 ? true : _ref$hoverable,
|
|
102
|
+
_ref$sticky = _ref.sticky,
|
|
103
|
+
sticky = _ref$sticky === void 0 ? false : _ref$sticky,
|
|
104
|
+
summary = _ref.summary;
|
|
105
|
+
// ============ 状态管理 ============
|
|
106
|
+
|
|
107
|
+
// 排序状态
|
|
108
|
+
var _useState = (0, _react.useState)(function () {
|
|
109
|
+
var _iterator2 = _createForOfIteratorHelper(columns),
|
|
110
|
+
_step2;
|
|
111
|
+
try {
|
|
112
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
113
|
+
var col = _step2.value;
|
|
114
|
+
if (col.defaultSortOrder) {
|
|
115
|
+
return {
|
|
116
|
+
field: col.dataIndex || col.key,
|
|
117
|
+
order: col.defaultSortOrder
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
} catch (err) {
|
|
122
|
+
_iterator2.e(err);
|
|
123
|
+
} finally {
|
|
124
|
+
_iterator2.f();
|
|
125
|
+
}
|
|
126
|
+
return {};
|
|
127
|
+
}),
|
|
128
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
129
|
+
sortState = _useState2[0],
|
|
130
|
+
setSortState = _useState2[1];
|
|
131
|
+
|
|
132
|
+
// 筛选状态
|
|
133
|
+
var _useState3 = (0, _react.useState)(function () {
|
|
134
|
+
var initial = {};
|
|
135
|
+
var _iterator3 = _createForOfIteratorHelper(columns),
|
|
136
|
+
_step3;
|
|
137
|
+
try {
|
|
138
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
139
|
+
var col = _step3.value;
|
|
140
|
+
if (col.defaultFilteredValue) {
|
|
141
|
+
var key = col.dataIndex || col.key || '';
|
|
142
|
+
initial[key] = col.defaultFilteredValue;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
} catch (err) {
|
|
146
|
+
_iterator3.e(err);
|
|
147
|
+
} finally {
|
|
148
|
+
_iterator3.f();
|
|
149
|
+
}
|
|
150
|
+
return initial;
|
|
151
|
+
}),
|
|
152
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
153
|
+
filterState = _useState4[0],
|
|
154
|
+
setFilterState = _useState4[1];
|
|
155
|
+
|
|
156
|
+
// 筛选下拉菜单可见性
|
|
157
|
+
var _useState5 = (0, _react.useState)({}),
|
|
158
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
159
|
+
filterVisible = _useState6[0],
|
|
160
|
+
setFilterVisible = _useState6[1];
|
|
161
|
+
|
|
162
|
+
// 分页状态
|
|
163
|
+
var _useState7 = (0, _react.useState)({
|
|
164
|
+
current: 1,
|
|
165
|
+
pageSize: 10
|
|
166
|
+
}),
|
|
167
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
168
|
+
paginationState = _useState8[0],
|
|
169
|
+
setPaginationState = _useState8[1];
|
|
170
|
+
|
|
171
|
+
// 展开行状态
|
|
172
|
+
var _useState9 = (0, _react.useState)((expandable === null || expandable === void 0 ? void 0 : expandable.defaultExpandedRowKeys) || []),
|
|
173
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
174
|
+
expandedKeys = _useState10[0],
|
|
175
|
+
setExpandedKeys = _useState10[1];
|
|
176
|
+
|
|
177
|
+
// 选中行状态 (非受控模式)
|
|
178
|
+
var _useState11 = (0, _react.useState)([]),
|
|
179
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
180
|
+
internalSelectedKeys = _useState12[0],
|
|
181
|
+
setInternalSelectedKeys = _useState12[1];
|
|
182
|
+
|
|
183
|
+
// ============ 计算值 ============
|
|
184
|
+
|
|
185
|
+
// 当前分页配置
|
|
186
|
+
var currentPagination = (0, _react.useMemo)(function () {
|
|
187
|
+
var _pagination$current, _pagination$pageSize, _pagination$total;
|
|
188
|
+
if (pagination === false) return null;
|
|
189
|
+
return _objectSpread({
|
|
190
|
+
current: (_pagination$current = pagination.current) !== null && _pagination$current !== void 0 ? _pagination$current : paginationState.current,
|
|
191
|
+
pageSize: (_pagination$pageSize = pagination.pageSize) !== null && _pagination$pageSize !== void 0 ? _pagination$pageSize : paginationState.pageSize,
|
|
192
|
+
total: (_pagination$total = pagination.total) !== null && _pagination$total !== void 0 ? _pagination$total : dataSource.length
|
|
193
|
+
}, pagination);
|
|
194
|
+
}, [pagination, paginationState, dataSource.length]);
|
|
195
|
+
|
|
196
|
+
// 选中的行 keys
|
|
197
|
+
var selectedRowKeys = (_rowSelection$selecte = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) !== null && _rowSelection$selecte !== void 0 ? _rowSelection$selecte : internalSelectedKeys;
|
|
198
|
+
|
|
199
|
+
// 处理后的数据 (排序 + 筛选)
|
|
200
|
+
var processedData = (0, _react.useMemo)(function () {
|
|
201
|
+
var _sortColumn$sortOrder;
|
|
202
|
+
var result = _toConsumableArray(dataSource);
|
|
203
|
+
|
|
204
|
+
// 应用筛选
|
|
205
|
+
var _iterator4 = _createForOfIteratorHelper(columns),
|
|
206
|
+
_step4;
|
|
207
|
+
try {
|
|
208
|
+
var _loop = function _loop() {
|
|
209
|
+
var _col$filteredValue;
|
|
210
|
+
var col = _step4.value;
|
|
211
|
+
var key = col.dataIndex || col.key || '';
|
|
212
|
+
var filterValues = (_col$filteredValue = col.filteredValue) !== null && _col$filteredValue !== void 0 ? _col$filteredValue : filterState[key];
|
|
213
|
+
if (filterValues && filterValues.length > 0 && col.onFilter) {
|
|
214
|
+
result = result.filter(function (record) {
|
|
215
|
+
return filterValues.some(function (value) {
|
|
216
|
+
return col.onFilter(value, record);
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
222
|
+
_loop();
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// 应用排序
|
|
226
|
+
} catch (err) {
|
|
227
|
+
_iterator4.e(err);
|
|
228
|
+
} finally {
|
|
229
|
+
_iterator4.f();
|
|
230
|
+
}
|
|
231
|
+
var sortColumn = columns.find(function (col) {
|
|
232
|
+
return (col.dataIndex || col.key) === sortState.field;
|
|
233
|
+
});
|
|
234
|
+
var sortOrder = (_sortColumn$sortOrder = sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.sortOrder) !== null && _sortColumn$sortOrder !== void 0 ? _sortColumn$sortOrder : sortState.order;
|
|
235
|
+
if (sortColumn && sortOrder && sortColumn.sorter) {
|
|
236
|
+
var _sorter = typeof sortColumn.sorter === 'function' ? sortColumn.sorter : function (a, b) {
|
|
237
|
+
var aVal = getNestedValue(a, sortColumn.dataIndex);
|
|
238
|
+
var bVal = getNestedValue(b, sortColumn.dataIndex);
|
|
239
|
+
if (aVal === bVal) return 0;
|
|
240
|
+
if (aVal === null || aVal === undefined) return 1;
|
|
241
|
+
if (bVal === null || bVal === undefined) return -1;
|
|
242
|
+
return aVal < bVal ? -1 : 1;
|
|
243
|
+
};
|
|
244
|
+
result.sort(function (a, b) {
|
|
245
|
+
var compareResult = _sorter(a, b);
|
|
246
|
+
return sortOrder === 'ascend' ? compareResult : -compareResult;
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
return result;
|
|
250
|
+
}, [dataSource, columns, sortState, filterState]);
|
|
251
|
+
|
|
252
|
+
// 当前页数据
|
|
253
|
+
var currentPageData = (0, _react.useMemo)(function () {
|
|
254
|
+
if (!currentPagination) return processedData;
|
|
255
|
+
var current = currentPagination.current,
|
|
256
|
+
pageSize = currentPagination.pageSize;
|
|
257
|
+
var start = (current - 1) * pageSize;
|
|
258
|
+
var end = start + pageSize;
|
|
259
|
+
return processedData.slice(start, end);
|
|
260
|
+
}, [processedData, currentPagination]);
|
|
261
|
+
|
|
262
|
+
// 展开的行 keys
|
|
263
|
+
var currentExpandedKeys = (_expandable$expandedR = expandable === null || expandable === void 0 ? void 0 : expandable.expandedRowKeys) !== null && _expandable$expandedR !== void 0 ? _expandable$expandedR : expandedKeys;
|
|
264
|
+
|
|
265
|
+
// ============ 事件处理 ============
|
|
266
|
+
|
|
267
|
+
// 排序处理
|
|
268
|
+
var handleSort = (0, _react.useCallback)(function (column) {
|
|
269
|
+
var field = column.dataIndex || column.key || '';
|
|
270
|
+
var newOrder;
|
|
271
|
+
if (sortState.field !== field) {
|
|
272
|
+
newOrder = 'ascend';
|
|
273
|
+
} else if (sortState.order === 'ascend') {
|
|
274
|
+
newOrder = 'descend';
|
|
275
|
+
} else if (sortState.order === 'descend') {
|
|
276
|
+
newOrder = null;
|
|
277
|
+
} else {
|
|
278
|
+
newOrder = 'ascend';
|
|
279
|
+
}
|
|
280
|
+
setSortState({
|
|
281
|
+
field: newOrder ? field : undefined,
|
|
282
|
+
order: newOrder
|
|
283
|
+
});
|
|
284
|
+
onChange === null || onChange === void 0 || onChange({
|
|
285
|
+
current: (currentPagination === null || currentPagination === void 0 ? void 0 : currentPagination.current) || 1,
|
|
286
|
+
pageSize: (currentPagination === null || currentPagination === void 0 ? void 0 : currentPagination.pageSize) || 10
|
|
287
|
+
}, filterState, {
|
|
288
|
+
column: newOrder ? column : undefined,
|
|
289
|
+
order: newOrder,
|
|
290
|
+
field: newOrder ? field : undefined
|
|
291
|
+
});
|
|
292
|
+
}, [sortState, currentPagination, filterState, onChange]);
|
|
293
|
+
|
|
294
|
+
// 筛选处理
|
|
295
|
+
var handleFilter = (0, _react.useCallback)(function (column, values) {
|
|
296
|
+
var key = column.dataIndex || column.key || '';
|
|
297
|
+
var newFilterState = _objectSpread(_objectSpread({}, filterState), {}, _defineProperty({}, key, values));
|
|
298
|
+
if (values.length === 0) {
|
|
299
|
+
delete newFilterState[key];
|
|
300
|
+
}
|
|
301
|
+
setFilterState(newFilterState);
|
|
302
|
+
setFilterVisible(_objectSpread(_objectSpread({}, filterVisible), {}, _defineProperty({}, key, false)));
|
|
303
|
+
|
|
304
|
+
// 重置到第一页
|
|
305
|
+
setPaginationState(_objectSpread(_objectSpread({}, paginationState), {}, {
|
|
306
|
+
current: 1
|
|
307
|
+
}));
|
|
308
|
+
onChange === null || onChange === void 0 || onChange({
|
|
309
|
+
current: 1,
|
|
310
|
+
pageSize: (currentPagination === null || currentPagination === void 0 ? void 0 : currentPagination.pageSize) || 10
|
|
311
|
+
}, newFilterState, {
|
|
312
|
+
column: sortState.field ? columns.find(function (c) {
|
|
313
|
+
return (c.dataIndex || c.key) === sortState.field;
|
|
314
|
+
}) : undefined,
|
|
315
|
+
order: sortState.order,
|
|
316
|
+
field: sortState.field
|
|
317
|
+
});
|
|
318
|
+
}, [filterState, filterVisible, paginationState, currentPagination, sortState, columns, onChange]);
|
|
319
|
+
|
|
320
|
+
// 分页处理
|
|
321
|
+
var handlePageChange = (0, _react.useCallback)(function (page, pageSize) {
|
|
322
|
+
setPaginationState({
|
|
323
|
+
current: page,
|
|
324
|
+
pageSize: pageSize
|
|
325
|
+
});
|
|
326
|
+
onChange === null || onChange === void 0 || onChange({
|
|
327
|
+
current: page,
|
|
328
|
+
pageSize: pageSize
|
|
329
|
+
}, filterState, {
|
|
330
|
+
column: sortState.field ? columns.find(function (c) {
|
|
331
|
+
return (c.dataIndex || c.key) === sortState.field;
|
|
332
|
+
}) : undefined,
|
|
333
|
+
order: sortState.order,
|
|
334
|
+
field: sortState.field
|
|
335
|
+
});
|
|
336
|
+
}, [filterState, sortState, columns, onChange]);
|
|
337
|
+
|
|
338
|
+
// 行选择处理
|
|
339
|
+
var handleSelectRow = (0, _react.useCallback)(function (record, selected) {
|
|
340
|
+
var _rowSelection$onChang, _rowSelection$onSelec;
|
|
341
|
+
var key = getRowKey(record, rowKey, 0);
|
|
342
|
+
var newSelectedKeys;
|
|
343
|
+
if ((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.type) === 'radio') {
|
|
344
|
+
newSelectedKeys = selected ? [key] : [];
|
|
345
|
+
} else {
|
|
346
|
+
newSelectedKeys = selected ? [].concat(_toConsumableArray(selectedRowKeys), [key]) : selectedRowKeys.filter(function (k) {
|
|
347
|
+
return k !== key;
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
if (!(rowSelection !== null && rowSelection !== void 0 && rowSelection.selectedRowKeys)) {
|
|
351
|
+
setInternalSelectedKeys(newSelectedKeys);
|
|
352
|
+
}
|
|
353
|
+
var newSelectedRows = dataSource.filter(function (r) {
|
|
354
|
+
return newSelectedKeys.includes(getRowKey(r, rowKey, 0));
|
|
355
|
+
});
|
|
356
|
+
rowSelection === null || rowSelection === void 0 || (_rowSelection$onChang = rowSelection.onChange) === null || _rowSelection$onChang === void 0 || _rowSelection$onChang.call(rowSelection, newSelectedKeys, newSelectedRows);
|
|
357
|
+
rowSelection === null || rowSelection === void 0 || (_rowSelection$onSelec = rowSelection.onSelect) === null || _rowSelection$onSelec === void 0 || _rowSelection$onSelec.call(rowSelection, record, selected, newSelectedRows, {});
|
|
358
|
+
}, [rowKey, rowSelection, selectedRowKeys, dataSource]);
|
|
359
|
+
|
|
360
|
+
// 全选处理
|
|
361
|
+
var handleSelectAll = (0, _react.useCallback)(function (selected) {
|
|
362
|
+
var _rowSelection$onChang2, _rowSelection$onSelec2;
|
|
363
|
+
var selectableRecords = currentPageData.filter(function (record) {
|
|
364
|
+
var _rowSelection$getChec;
|
|
365
|
+
var props = rowSelection === null || rowSelection === void 0 || (_rowSelection$getChec = rowSelection.getCheckboxProps) === null || _rowSelection$getChec === void 0 ? void 0 : _rowSelection$getChec.call(rowSelection, record);
|
|
366
|
+
return !(props !== null && props !== void 0 && props.disabled);
|
|
367
|
+
});
|
|
368
|
+
var newSelectedKeys = selected ? _toConsumableArray(new Set([].concat(_toConsumableArray(selectedRowKeys), _toConsumableArray(selectableRecords.map(function (r) {
|
|
369
|
+
return getRowKey(r, rowKey, 0);
|
|
370
|
+
}))))) : selectedRowKeys.filter(function (key) {
|
|
371
|
+
return !selectableRecords.some(function (r) {
|
|
372
|
+
return getRowKey(r, rowKey, 0) === key;
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
if (!(rowSelection !== null && rowSelection !== void 0 && rowSelection.selectedRowKeys)) {
|
|
376
|
+
setInternalSelectedKeys(newSelectedKeys);
|
|
377
|
+
}
|
|
378
|
+
var newSelectedRows = dataSource.filter(function (r) {
|
|
379
|
+
return newSelectedKeys.includes(getRowKey(r, rowKey, 0));
|
|
380
|
+
});
|
|
381
|
+
var changeRows = selectableRecords;
|
|
382
|
+
rowSelection === null || rowSelection === void 0 || (_rowSelection$onChang2 = rowSelection.onChange) === null || _rowSelection$onChang2 === void 0 || _rowSelection$onChang2.call(rowSelection, newSelectedKeys, newSelectedRows);
|
|
383
|
+
rowSelection === null || rowSelection === void 0 || (_rowSelection$onSelec2 = rowSelection.onSelectAll) === null || _rowSelection$onSelec2 === void 0 || _rowSelection$onSelec2.call(rowSelection, selected, newSelectedRows, changeRows);
|
|
384
|
+
}, [currentPageData, selectedRowKeys, rowKey, rowSelection, dataSource]);
|
|
385
|
+
|
|
386
|
+
// 展开处理
|
|
387
|
+
var handleExpand = (0, _react.useCallback)(function (record) {
|
|
388
|
+
var _expandable$onExpand, _expandable$onExpande;
|
|
389
|
+
var key = getRowKey(record, rowKey, 0);
|
|
390
|
+
var expanded = currentExpandedKeys.includes(key);
|
|
391
|
+
var newExpandedKeys = expanded ? currentExpandedKeys.filter(function (k) {
|
|
392
|
+
return k !== key;
|
|
393
|
+
}) : [].concat(_toConsumableArray(currentExpandedKeys), [key]);
|
|
394
|
+
if (!(expandable !== null && expandable !== void 0 && expandable.expandedRowKeys)) {
|
|
395
|
+
setExpandedKeys(newExpandedKeys);
|
|
396
|
+
}
|
|
397
|
+
expandable === null || expandable === void 0 || (_expandable$onExpand = expandable.onExpand) === null || _expandable$onExpand === void 0 || _expandable$onExpand.call(expandable, !expanded, record);
|
|
398
|
+
expandable === null || expandable === void 0 || (_expandable$onExpande = expandable.onExpandedRowsChange) === null || _expandable$onExpande === void 0 || _expandable$onExpande.call(expandable, newExpandedKeys);
|
|
399
|
+
}, [currentExpandedKeys, rowKey, expandable]);
|
|
400
|
+
|
|
401
|
+
// ============ 渲染函数 ============
|
|
402
|
+
|
|
403
|
+
// 渲染排序图标
|
|
404
|
+
var renderSorter = function renderSorter(column) {
|
|
405
|
+
var _column$sortOrder;
|
|
406
|
+
if (!column.sorter) return null;
|
|
407
|
+
var field = column.dataIndex || column.key;
|
|
408
|
+
var currentOrder = (_column$sortOrder = column.sortOrder) !== null && _column$sortOrder !== void 0 ? _column$sortOrder : sortState.field === field ? sortState.order : null;
|
|
409
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
410
|
+
className: "kage-table-column-sorter",
|
|
411
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
412
|
+
className: "kage-table-column-sorter-up ".concat(currentOrder === 'ascend' ? 'active' : ''),
|
|
413
|
+
children: "\u25B2"
|
|
414
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
415
|
+
className: "kage-table-column-sorter-down ".concat(currentOrder === 'descend' ? 'active' : ''),
|
|
416
|
+
children: "\u25BC"
|
|
417
|
+
})]
|
|
418
|
+
});
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
// 渲染筛选器
|
|
422
|
+
var renderFilter = function renderFilter(column) {
|
|
423
|
+
var _ref2, _column$filteredValue;
|
|
424
|
+
if (!column.filters || column.filters.length === 0) return null;
|
|
425
|
+
var key = column.dataIndex || column.key || '';
|
|
426
|
+
var currentFilterValues = (_ref2 = (_column$filteredValue = column.filteredValue) !== null && _column$filteredValue !== void 0 ? _column$filteredValue : filterState[key]) !== null && _ref2 !== void 0 ? _ref2 : [];
|
|
427
|
+
var isVisible = filterVisible[key];
|
|
428
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
429
|
+
className: "kage-table-filter-trigger-container",
|
|
430
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
431
|
+
className: "kage-table-filter-trigger ".concat(currentFilterValues.length > 0 ? 'active' : ''),
|
|
432
|
+
onClick: function onClick(e) {
|
|
433
|
+
e.stopPropagation();
|
|
434
|
+
setFilterVisible(_objectSpread(_objectSpread({}, filterVisible), {}, _defineProperty({}, key, !isVisible)));
|
|
435
|
+
},
|
|
436
|
+
children: "\u25BC"
|
|
437
|
+
}), isVisible && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
438
|
+
className: "kage-table-filter-dropdown",
|
|
439
|
+
children: [column.filters.map(function (filter) {
|
|
440
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("label", {
|
|
441
|
+
className: "kage-table-filter-item",
|
|
442
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
443
|
+
type: "checkbox",
|
|
444
|
+
checked: currentFilterValues.includes(filter.value),
|
|
445
|
+
onChange: function onChange(e) {
|
|
446
|
+
var newValues = e.target.checked ? [].concat(_toConsumableArray(currentFilterValues), [filter.value]) : currentFilterValues.filter(function (v) {
|
|
447
|
+
return v !== filter.value;
|
|
448
|
+
});
|
|
449
|
+
handleFilter(column, newValues);
|
|
450
|
+
}
|
|
451
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
452
|
+
children: filter.text
|
|
453
|
+
})]
|
|
454
|
+
}, String(filter.value));
|
|
455
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
456
|
+
className: "kage-table-filter-dropdown-btns",
|
|
457
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
458
|
+
onClick: function onClick() {
|
|
459
|
+
return handleFilter(column, []);
|
|
460
|
+
},
|
|
461
|
+
className: "kage-table-filter-dropdown-link",
|
|
462
|
+
children: "\u91CD\u7F6E"
|
|
463
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
464
|
+
onClick: function onClick() {
|
|
465
|
+
return setFilterVisible(_objectSpread(_objectSpread({}, filterVisible), {}, _defineProperty({}, key, false)));
|
|
466
|
+
},
|
|
467
|
+
className: "kage-table-filter-dropdown-link confirm",
|
|
468
|
+
children: "\u786E\u5B9A"
|
|
469
|
+
})]
|
|
470
|
+
})]
|
|
471
|
+
})]
|
|
472
|
+
});
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
// 渲染表头单元格
|
|
476
|
+
var renderHeaderCell = function renderHeaderCell(column) {
|
|
477
|
+
var _column$onHeaderCell;
|
|
478
|
+
var isSortable = !!column.sorter;
|
|
479
|
+
var hasFilter = column.filters && column.filters.length > 0;
|
|
480
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
|
|
481
|
+
className: ['kage-table-cell', column.className, column.align && "kage-table-cell-".concat(column.align), isSortable && 'kage-table-column-has-sorters', column.fixed && "kage-table-cell-fix-".concat(column.fixed), column.ellipsis && 'kage-table-cell-ellipsis'].filter(Boolean).join(' '),
|
|
482
|
+
style: _objectSpread({
|
|
483
|
+
width: column.width,
|
|
484
|
+
minWidth: column.minWidth
|
|
485
|
+
}, (_column$onHeaderCell = column.onHeaderCell) === null || _column$onHeaderCell === void 0 ? void 0 : _column$onHeaderCell.call(column)),
|
|
486
|
+
onClick: isSortable ? function () {
|
|
487
|
+
return handleSort(column);
|
|
488
|
+
} : undefined,
|
|
489
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
490
|
+
className: "kage-table-column-title",
|
|
491
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
492
|
+
children: column.title
|
|
493
|
+
}), renderSorter(column), renderFilter(column)]
|
|
494
|
+
})
|
|
495
|
+
}, column.key || column.dataIndex);
|
|
496
|
+
};
|
|
497
|
+
|
|
498
|
+
// 渲染选择列表头
|
|
499
|
+
var renderSelectionHeader = function renderSelectionHeader() {
|
|
500
|
+
if (!rowSelection) return null;
|
|
501
|
+
var selectableRecords = currentPageData.filter(function (record) {
|
|
502
|
+
var _rowSelection$getChec2;
|
|
503
|
+
var props = (_rowSelection$getChec2 = rowSelection.getCheckboxProps) === null || _rowSelection$getChec2 === void 0 ? void 0 : _rowSelection$getChec2.call(rowSelection, record);
|
|
504
|
+
return !(props !== null && props !== void 0 && props.disabled);
|
|
505
|
+
});
|
|
506
|
+
var allSelected = selectableRecords.length > 0 && selectableRecords.every(function (record) {
|
|
507
|
+
return selectedRowKeys.includes(getRowKey(record, rowKey, 0));
|
|
508
|
+
});
|
|
509
|
+
var someSelected = selectableRecords.some(function (record) {
|
|
510
|
+
return selectedRowKeys.includes(getRowKey(record, rowKey, 0));
|
|
511
|
+
});
|
|
512
|
+
if (rowSelection.hideSelectAll) {
|
|
513
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
|
|
514
|
+
className: "kage-table-selection-column",
|
|
515
|
+
style: {
|
|
516
|
+
width: rowSelection.columnWidth || 48
|
|
517
|
+
},
|
|
518
|
+
children: rowSelection.columnTitle
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
if (rowSelection.type === 'radio') {
|
|
522
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
|
|
523
|
+
className: "kage-table-selection-column",
|
|
524
|
+
style: {
|
|
525
|
+
width: rowSelection.columnWidth || 48
|
|
526
|
+
},
|
|
527
|
+
children: rowSelection.columnTitle
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
|
|
531
|
+
className: "kage-table-selection-column",
|
|
532
|
+
style: {
|
|
533
|
+
width: rowSelection.columnWidth || 48
|
|
534
|
+
},
|
|
535
|
+
children: rowSelection.columnTitle || /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, {
|
|
536
|
+
checked: allSelected,
|
|
537
|
+
indeterminate: !allSelected && someSelected,
|
|
538
|
+
onChange: function onChange(e) {
|
|
539
|
+
return handleSelectAll(e.target.checked);
|
|
540
|
+
},
|
|
541
|
+
disabled: selectableRecords.length === 0
|
|
542
|
+
})
|
|
543
|
+
});
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
// 渲染展开列表头
|
|
547
|
+
var renderExpandHeader = function renderExpandHeader() {
|
|
548
|
+
if (!(expandable !== null && expandable !== void 0 && expandable.expandedRowRender)) return null;
|
|
549
|
+
if (expandable.showExpandColumn === false) return null;
|
|
550
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
|
|
551
|
+
className: "kage-table-expand-icon-cell",
|
|
552
|
+
style: {
|
|
553
|
+
width: 48
|
|
554
|
+
}
|
|
555
|
+
});
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
// 渲染表格单元格
|
|
559
|
+
var renderCell = function renderCell(column, record, index) {
|
|
560
|
+
var _column$onCell;
|
|
561
|
+
var value = getNestedValue(record, column.dataIndex);
|
|
562
|
+
var content = column.render ? column.render(value, record, index) : value;
|
|
563
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
564
|
+
className: ['kage-table-cell', column.className, column.align && "kage-table-cell-".concat(column.align), column.fixed && "kage-table-cell-fix-".concat(column.fixed), column.ellipsis && 'kage-table-cell-ellipsis'].filter(Boolean).join(' '),
|
|
565
|
+
style: _objectSpread({
|
|
566
|
+
width: column.width,
|
|
567
|
+
minWidth: column.minWidth
|
|
568
|
+
}, (_column$onCell = column.onCell) === null || _column$onCell === void 0 ? void 0 : _column$onCell.call(column, record, index)),
|
|
569
|
+
children: column.ellipsis ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
570
|
+
className: "kage-table-cell-content",
|
|
571
|
+
title: typeof content === 'string' ? content : undefined,
|
|
572
|
+
children: content
|
|
573
|
+
}) : content
|
|
574
|
+
}, column.key || column.dataIndex);
|
|
575
|
+
};
|
|
576
|
+
|
|
577
|
+
// 渲染选择列单元格
|
|
578
|
+
var renderSelectionCell = function renderSelectionCell(record, index) {
|
|
579
|
+
var _rowSelection$getChec3;
|
|
580
|
+
if (!rowSelection) return null;
|
|
581
|
+
var key = getRowKey(record, rowKey, index);
|
|
582
|
+
var checked = selectedRowKeys.includes(key);
|
|
583
|
+
var checkboxProps = (_rowSelection$getChec3 = rowSelection.getCheckboxProps) === null || _rowSelection$getChec3 === void 0 ? void 0 : _rowSelection$getChec3.call(rowSelection, record);
|
|
584
|
+
var originNode = rowSelection.type === 'radio' ? /*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
585
|
+
type: "radio",
|
|
586
|
+
checked: checked,
|
|
587
|
+
disabled: checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.disabled,
|
|
588
|
+
name: (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.name) || 'table-radio',
|
|
589
|
+
onChange: function onChange(e) {
|
|
590
|
+
return handleSelectRow(record, e.target.checked);
|
|
591
|
+
}
|
|
592
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, {
|
|
593
|
+
checked: checked,
|
|
594
|
+
disabled: checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.disabled,
|
|
595
|
+
onChange: function onChange(e) {
|
|
596
|
+
return handleSelectRow(record, e.target.checked);
|
|
597
|
+
}
|
|
598
|
+
});
|
|
599
|
+
var node = rowSelection.renderCell ? rowSelection.renderCell(checked, record, index, originNode) : originNode;
|
|
600
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
601
|
+
className: "kage-table-selection-column",
|
|
602
|
+
style: {
|
|
603
|
+
width: rowSelection.columnWidth || 48
|
|
604
|
+
},
|
|
605
|
+
children: node
|
|
606
|
+
});
|
|
607
|
+
};
|
|
608
|
+
|
|
609
|
+
// 渲染展开列单元格
|
|
610
|
+
var renderExpandCell = function renderExpandCell(record, index) {
|
|
611
|
+
var _expandable$rowExpand, _expandable$rowExpand2;
|
|
612
|
+
if (!(expandable !== null && expandable !== void 0 && expandable.expandedRowRender)) return null;
|
|
613
|
+
if (expandable.showExpandColumn === false) return null;
|
|
614
|
+
var key = getRowKey(record, rowKey, index);
|
|
615
|
+
var expanded = currentExpandedKeys.includes(key);
|
|
616
|
+
var expandable_ = (_expandable$rowExpand = (_expandable$rowExpand2 = expandable.rowExpandable) === null || _expandable$rowExpand2 === void 0 ? void 0 : _expandable$rowExpand2.call(expandable, record)) !== null && _expandable$rowExpand !== void 0 ? _expandable$rowExpand : true;
|
|
617
|
+
if (!expandable_) {
|
|
618
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
619
|
+
className: "kage-table-expand-icon-cell"
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
var defaultIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
623
|
+
className: "kage-table-row-expand-icon ".concat(expanded ? 'kage-table-row-expand-icon-expanded' : 'kage-table-row-expand-icon-collapsed'),
|
|
624
|
+
onClick: function onClick() {
|
|
625
|
+
return handleExpand(record);
|
|
626
|
+
},
|
|
627
|
+
children: expanded ? '−' : '+'
|
|
628
|
+
});
|
|
629
|
+
var icon = expandable.expandIcon ? expandable.expandIcon({
|
|
630
|
+
expanded: expanded,
|
|
631
|
+
record: record,
|
|
632
|
+
onExpand: function onExpand() {
|
|
633
|
+
return handleExpand(record);
|
|
634
|
+
}
|
|
635
|
+
}) : defaultIcon;
|
|
636
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
637
|
+
className: "kage-table-expand-icon-cell",
|
|
638
|
+
children: icon
|
|
639
|
+
});
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
// 渲染展开行
|
|
643
|
+
var renderExpandedRow = function renderExpandedRow(record, index) {
|
|
644
|
+
if (!(expandable !== null && expandable !== void 0 && expandable.expandedRowRender)) return null;
|
|
645
|
+
var key = getRowKey(record, rowKey, index);
|
|
646
|
+
if (!currentExpandedKeys.includes(key)) return null;
|
|
647
|
+
var colSpan = columns.length + (rowSelection ? 1 : 0) + (expandable.showExpandColumn !== false ? 1 : 0);
|
|
648
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("tr", {
|
|
649
|
+
className: "kage-table-expanded-row",
|
|
650
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
651
|
+
colSpan: colSpan,
|
|
652
|
+
className: "kage-table-expanded-row-cell",
|
|
653
|
+
children: expandable.expandedRowRender(record, index, expandable.indentSize || 15, true)
|
|
654
|
+
})
|
|
655
|
+
}, "".concat(key, "-expanded"));
|
|
656
|
+
};
|
|
657
|
+
|
|
658
|
+
// 渲染表格行
|
|
659
|
+
var renderRow = function renderRow(record, index) {
|
|
660
|
+
var key = getRowKey(record, rowKey, index);
|
|
661
|
+
var isSelected = selectedRowKeys.includes(key);
|
|
662
|
+
var isExpanded = currentExpandedKeys.includes(key);
|
|
663
|
+
var rowClass = typeof rowClassName === 'function' ? rowClassName(record, index) : rowClassName;
|
|
664
|
+
var rowProps = (onRow === null || onRow === void 0 ? void 0 : onRow(record, index)) || {};
|
|
665
|
+
var handleRowClick = function handleRowClick(e) {
|
|
666
|
+
var _rowProps$onClick;
|
|
667
|
+
(_rowProps$onClick = rowProps.onClick) === null || _rowProps$onClick === void 0 || _rowProps$onClick.call(rowProps, e);
|
|
668
|
+
if (expandable !== null && expandable !== void 0 && expandable.expandRowByClick) {
|
|
669
|
+
handleExpand(record);
|
|
670
|
+
}
|
|
671
|
+
};
|
|
672
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
|
|
673
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
674
|
+
className: ['kage-table-row', rowClass, isSelected && 'kage-table-row-selected', isExpanded && 'kage-table-row-expanded', striped && index % 2 === 1 && 'kage-table-row-striped'].filter(Boolean).join(' '),
|
|
675
|
+
onClick: handleRowClick,
|
|
676
|
+
children: [renderSelectionCell(record, index), renderExpandCell(record, index), columns.map(function (column) {
|
|
677
|
+
return renderCell(column, record, index);
|
|
678
|
+
})]
|
|
679
|
+
})), renderExpandedRow(record, index)]
|
|
680
|
+
}, key);
|
|
681
|
+
};
|
|
682
|
+
|
|
683
|
+
// 渲染空状态
|
|
684
|
+
var renderEmpty = function renderEmpty() {
|
|
685
|
+
var colSpan = columns.length + (rowSelection ? 1 : 0) + (expandable !== null && expandable !== void 0 && expandable.expandedRowRender && expandable.showExpandColumn !== false ? 1 : 0);
|
|
686
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("tr", {
|
|
687
|
+
className: "kage-table-placeholder",
|
|
688
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
689
|
+
colSpan: colSpan,
|
|
690
|
+
className: "kage-table-cell",
|
|
691
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
|
|
692
|
+
description: (locale === null || locale === void 0 ? void 0 : locale.emptyText) || '暂无数据'
|
|
693
|
+
})
|
|
694
|
+
})
|
|
695
|
+
});
|
|
696
|
+
};
|
|
697
|
+
|
|
698
|
+
// 渲染加载状态
|
|
699
|
+
var renderLoading = function renderLoading() {
|
|
700
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
701
|
+
className: "kage-table-loading",
|
|
702
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
703
|
+
className: "kage-table-loading-spinner"
|
|
704
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
705
|
+
children: loadingText
|
|
706
|
+
})]
|
|
707
|
+
});
|
|
708
|
+
};
|
|
709
|
+
|
|
710
|
+
// 渲染分页
|
|
711
|
+
var renderPagination = function renderPagination() {
|
|
712
|
+
if (!currentPagination) return null;
|
|
713
|
+
var position = currentPagination.position || 'bottomRight';
|
|
714
|
+
var vertical = position.includes('top') ? 'top' : 'bottom',
|
|
715
|
+
horizontal = position.includes('Left') ? 'left' : position.includes('Center') ? 'center' : 'right';
|
|
716
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
717
|
+
className: "kage-table-pagination kage-table-pagination-".concat(horizontal),
|
|
718
|
+
"data-position": vertical,
|
|
719
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pagination.default, {
|
|
720
|
+
current: currentPagination.current,
|
|
721
|
+
total: currentPagination.total,
|
|
722
|
+
pageSize: currentPagination.pageSize,
|
|
723
|
+
pageSizeOptions: currentPagination.pageSizeOptions,
|
|
724
|
+
showSizeChanger: currentPagination.showSizeChanger,
|
|
725
|
+
showQuickJumper: currentPagination.showQuickJumper,
|
|
726
|
+
showTotal: currentPagination.showTotal,
|
|
727
|
+
disabled: currentPagination.disabled,
|
|
728
|
+
simple: currentPagination.simple,
|
|
729
|
+
onChange: handlePageChange
|
|
730
|
+
})
|
|
731
|
+
});
|
|
732
|
+
};
|
|
733
|
+
|
|
734
|
+
// 渲染摘要
|
|
735
|
+
var renderSummary = function renderSummary() {
|
|
736
|
+
if (!summary) return null;
|
|
737
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("tfoot", {
|
|
738
|
+
className: "kage-table-summary",
|
|
739
|
+
children: summary(processedData)
|
|
740
|
+
});
|
|
741
|
+
};
|
|
742
|
+
|
|
743
|
+
// ============ 主渲染 ============
|
|
744
|
+
|
|
745
|
+
var tableClassNames = ['kage-table', "kage-table-".concat(size), bordered && 'kage-table-bordered', loading && 'kage-table-loading-wrapper', hoverable && 'kage-table-hoverable', sticky && 'kage-table-sticky', ((scroll === null || scroll === void 0 ? void 0 : scroll.x) || (scroll === null || scroll === void 0 ? void 0 : scroll.y)) && 'kage-table-scroll', className].filter(Boolean).join(' ');
|
|
746
|
+
var tableStyle = _objectSpread({}, style);
|
|
747
|
+
var scrollStyle = {
|
|
748
|
+
overflowX: scroll !== null && scroll !== void 0 && scroll.x ? 'auto' : undefined,
|
|
749
|
+
overflowY: scroll !== null && scroll !== void 0 && scroll.y ? 'auto' : undefined,
|
|
750
|
+
maxHeight: scroll === null || scroll === void 0 ? void 0 : scroll.y
|
|
751
|
+
};
|
|
752
|
+
var innerTableStyle = {
|
|
753
|
+
width: (scroll === null || scroll === void 0 ? void 0 : scroll.x) === true ? 'max-content' : scroll === null || scroll === void 0 ? void 0 : scroll.x,
|
|
754
|
+
minWidth: scroll !== null && scroll !== void 0 && scroll.x ? '100%' : undefined
|
|
755
|
+
};
|
|
756
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
757
|
+
className: tableClassNames,
|
|
758
|
+
style: tableStyle,
|
|
759
|
+
children: [title && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
760
|
+
className: "kage-table-title",
|
|
761
|
+
children: title()
|
|
762
|
+
}), (currentPagination === null || currentPagination === void 0 || (_currentPagination$po = currentPagination.position) === null || _currentPagination$po === void 0 ? void 0 : _currentPagination$po.includes('top')) && renderPagination(), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
763
|
+
className: "kage-table-container",
|
|
764
|
+
style: scrollStyle,
|
|
765
|
+
children: [loading && renderLoading(), /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
|
|
766
|
+
style: innerTableStyle,
|
|
767
|
+
children: [showHeader && /*#__PURE__*/(0, _jsxRuntime.jsx)("thead", {
|
|
768
|
+
className: "kage-table-thead",
|
|
769
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
|
|
770
|
+
children: [renderSelectionHeader(), renderExpandHeader(), columns.map(function (column) {
|
|
771
|
+
return renderHeaderCell(column);
|
|
772
|
+
})]
|
|
773
|
+
})
|
|
774
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("tbody", {
|
|
775
|
+
className: "kage-table-tbody",
|
|
776
|
+
children: currentPageData.length > 0 ? currentPageData.map(renderRow) : renderEmpty()
|
|
777
|
+
}), renderSummary()]
|
|
778
|
+
})]
|
|
779
|
+
}), (!(currentPagination !== null && currentPagination !== void 0 && currentPagination.position) || currentPagination.position.includes('bottom')) && renderPagination(), footer && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
780
|
+
className: "kage-table-footer",
|
|
781
|
+
children: footer()
|
|
782
|
+
})]
|
|
783
|
+
});
|
|
784
|
+
};
|
|
785
|
+
|
|
786
|
+
// ============ 导出 ============
|
|
787
|
+
var _default = exports.default = Table;
|