@autobest-ui/components 1.1.1 → 1.1.8
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/README.md +10 -10
- package/esm/accordion/__stories__/style.scss +58 -58
- package/esm/affix/__stories__/style.scss +13 -13
- package/esm/affix/style/index.scss +34 -34
- package/esm/base.scss +42 -42
- package/esm/carousel/__stories__/style.scss +41 -41
- package/esm/carousel/style/index.scss +37 -37
- package/esm/checkbox/style/index.scss +117 -117
- package/esm/collapse/__stories__/style.scss +18 -18
- package/esm/collapse/style/index.scss +42 -42
- package/esm/confirm/style/index.scss +44 -44
- package/esm/date-picker/calendar/grid/index.scss +85 -85
- package/esm/date-picker/calendar/index.scss +57 -57
- package/esm/date-picker/index.d.ts +1 -0
- package/esm/date-picker/index.js +17 -7
- package/esm/date-picker/style/index.css +1 -1
- package/esm/date-picker/style/index.scss +23 -19
- package/esm/drawer/style/index.scss +44 -44
- package/esm/ellipsis/style/index.scss +35 -35
- package/esm/guide/__stories__/style.scss +13 -13
- package/esm/guide/style/index.scss +17 -17
- package/esm/icon/__stories__/style.scss +39 -39
- package/esm/icon/style/index.scss +6 -6
- package/esm/index.d.ts +2 -1
- package/esm/input-number/style/index.scss +86 -86
- package/esm/lazy-image/__stories__/style.scss +9 -9
- package/esm/lazy-image/style/index.scss +24 -24
- package/esm/link-list/style/index.scss +125 -125
- package/esm/loading/style/index.scss +30 -30
- package/esm/loading-bar/style/index.scss +62 -62
- package/esm/loading-container/__stories__/style.scss +5 -5
- package/esm/loading-container/style/index.scss +27 -27
- package/esm/loading-icon/style/index.scss +23 -23
- package/esm/mask/style/index.scss +34 -34
- package/esm/message/style/index.scss +70 -70
- package/esm/modal/style/index.scss +112 -112
- package/esm/move/__stories__/style.scss +6 -6
- package/esm/move/style/index.scss +7 -7
- package/esm/popover/__stories__/style.scss +15 -15
- package/esm/popover/style/index.scss +59 -59
- package/esm/select/__stories__/style.scss +8 -8
- package/esm/select/style/index.scss +126 -126
- package/esm/show-more/style/index.scss +22 -22
- package/esm/skeleton/__stories__/style.scss +2 -2
- package/esm/skeleton/style/index.scss +26 -26
- package/esm/style.css +14 -14
- package/esm/table/__stories__/style.css +1 -1
- package/esm/table/__stories__/style.scss +33 -2
- package/esm/table/body/BodyRow.d.ts +19 -0
- package/esm/table/body/BodyRow.js +98 -0
- package/esm/table/body/CheckIcon.d.ts +16 -0
- package/esm/table/body/CheckIcon.js +35 -0
- package/esm/table/body/index.d.ts +24 -0
- package/esm/table/body/index.js +62 -0
- package/esm/table/header/CheckIcon.d.ts +13 -0
- package/esm/table/header/CheckIcon.js +37 -0
- package/esm/table/header/HeaderCell.d.ts +18 -0
- package/esm/table/{HeaderCell.js → header/HeaderCell.js} +11 -4
- package/esm/table/header/HeaderRow.d.ts +16 -0
- package/esm/table/header/HeaderRow.js +76 -0
- package/esm/table/index.d.ts +52 -27
- package/esm/table/index.js +178 -155
- package/esm/table/interface.d.ts +16 -3
- package/esm/table/style/index.css +1 -1
- package/esm/table/style/index.scss +51 -70
- package/esm/tabs/__stories__/style.scss +8 -8
- package/esm/tabs/style/index.css +1 -1
- package/esm/tabs/style/index.scss +62 -62
- package/esm/tooltip/style/index.scss +61 -61
- package/esm/trigger/style/index.scss +79 -79
- package/lib/accordion/__stories__/style.scss +58 -58
- package/lib/affix/__stories__/style.scss +13 -13
- package/lib/affix/style/index.scss +34 -34
- package/lib/base.scss +42 -42
- package/lib/carousel/__stories__/style.scss +41 -41
- package/lib/carousel/style/index.scss +37 -37
- package/lib/checkbox/style/index.scss +117 -117
- package/lib/collapse/__stories__/style.scss +18 -18
- package/lib/collapse/style/index.scss +42 -42
- package/lib/confirm/style/index.scss +44 -44
- package/lib/date-picker/calendar/grid/index.scss +85 -85
- package/lib/date-picker/calendar/index.scss +57 -57
- package/lib/date-picker/index.d.ts +1 -0
- package/lib/date-picker/index.js +17 -7
- package/lib/date-picker/style/index.css +1 -1
- package/lib/date-picker/style/index.scss +23 -19
- package/lib/drawer/style/index.scss +44 -44
- package/lib/ellipsis/style/index.scss +35 -35
- package/lib/guide/__stories__/style.scss +13 -13
- package/lib/guide/style/index.scss +17 -17
- package/lib/icon/__stories__/style.scss +39 -39
- package/lib/icon/style/index.scss +6 -6
- package/lib/index.d.ts +2 -1
- package/lib/input-number/style/index.scss +86 -86
- package/lib/lazy-image/__stories__/style.scss +9 -9
- package/lib/lazy-image/style/index.scss +24 -24
- package/lib/link-list/style/index.scss +125 -125
- package/lib/loading/style/index.scss +30 -30
- package/lib/loading-bar/style/index.scss +62 -62
- package/lib/loading-container/__stories__/style.scss +5 -5
- package/lib/loading-container/style/index.scss +27 -27
- package/lib/loading-icon/style/index.scss +23 -23
- package/lib/mask/style/index.scss +34 -34
- package/lib/message/style/index.scss +70 -70
- package/lib/modal/style/index.scss +112 -112
- package/lib/move/__stories__/style.scss +6 -6
- package/lib/move/style/index.scss +7 -7
- package/lib/popover/__stories__/style.scss +15 -15
- package/lib/popover/style/index.scss +59 -59
- package/lib/select/__stories__/style.scss +8 -8
- package/lib/select/style/index.scss +126 -126
- package/lib/show-more/style/index.scss +22 -22
- package/lib/skeleton/__stories__/style.scss +2 -2
- package/lib/skeleton/style/index.scss +26 -26
- package/lib/style.css +14 -14
- package/lib/table/__stories__/style.css +1 -1
- package/lib/table/__stories__/style.scss +33 -2
- package/lib/table/body/BodyRow.d.ts +19 -0
- package/lib/table/body/BodyRow.js +112 -0
- package/lib/table/body/CheckIcon.d.ts +16 -0
- package/lib/table/body/CheckIcon.js +47 -0
- package/lib/table/body/index.d.ts +24 -0
- package/lib/table/body/index.js +74 -0
- package/lib/table/header/CheckIcon.d.ts +13 -0
- package/lib/table/header/CheckIcon.js +49 -0
- package/lib/table/header/HeaderCell.d.ts +18 -0
- package/lib/table/{HeaderCell.js → header/HeaderCell.js} +11 -4
- package/lib/table/header/HeaderRow.d.ts +16 -0
- package/lib/table/header/HeaderRow.js +89 -0
- package/lib/table/index.d.ts +52 -27
- package/lib/table/index.js +177 -155
- package/lib/table/interface.d.ts +16 -3
- package/lib/table/style/index.css +1 -1
- package/lib/table/style/index.scss +51 -70
- package/lib/tabs/__stories__/style.scss +8 -8
- package/lib/tabs/style/index.css +1 -1
- package/lib/tabs/style/index.scss +62 -62
- package/lib/tooltip/style/index.scss +61 -61
- package/lib/trigger/style/index.scss +79 -79
- package/package.json +2 -2
- package/esm/table/BodyCell.d.ts +0 -6
- package/esm/table/BodyCell.js +0 -12
- package/esm/table/HeaderCell.d.ts +0 -13
- package/lib/table/BodyCell.d.ts +0 -6
- package/lib/table/BodyCell.js +0 -22
- package/lib/table/HeaderCell.d.ts +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
.ab-table-
|
|
1
|
+
.table-demo thead{background-color:#2b5797;color:#fff}.table-demo tbody tr.ab-table-expand-row{background-color:#fafafa}.table-demo tbody tr:hover{background-color:#f3f3f3}.table-demo td,.table-demo th{padding:.16rem;border-bottom:1px solid #d0d0d0}.table-demo td.ab-table-checkbox,.table-demo th.ab-table-checkbox{padding:.16rem 0}.table-demo .merged-cell{border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0}.table-demo-expanded{font-size:.2rem}
|
|
@@ -1,3 +1,34 @@
|
|
|
1
|
-
.
|
|
2
|
-
|
|
1
|
+
.table-demo {
|
|
2
|
+
thead {
|
|
3
|
+
background-color: #2b5797;
|
|
4
|
+
color: #fff;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
tbody tr {
|
|
8
|
+
&.ab-table-expand-row {
|
|
9
|
+
background-color: #fafafa;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&:hover {
|
|
13
|
+
background-color: #f3f3f3;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
th, td {
|
|
18
|
+
padding: .16rem;
|
|
19
|
+
border-bottom: 1px solid #D0D0D0;
|
|
20
|
+
|
|
21
|
+
&.ab-table-checkbox {
|
|
22
|
+
padding: .16rem 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.merged-cell {
|
|
27
|
+
border-left: 1px solid #D0D0D0;
|
|
28
|
+
border-right: 1px solid #D0D0D0;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.table-demo-expanded {
|
|
33
|
+
font-size: .2rem;
|
|
3
34
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Column } from '../interface';
|
|
3
|
+
export interface BodyRowProps<T> {
|
|
4
|
+
className?: string;
|
|
5
|
+
prefixCls: string;
|
|
6
|
+
rowData: T;
|
|
7
|
+
index: number;
|
|
8
|
+
columns: Column<T>[];
|
|
9
|
+
indent: number;
|
|
10
|
+
CheckCell: React.ReactElement;
|
|
11
|
+
isExpand?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare function BodyRow<RowDataType>({ className, prefixCls: cls, rowData, index, columns, indent, CheckCell, isExpand }: BodyRowProps<RowDataType>): JSX.Element;
|
|
14
|
+
declare namespace BodyRow {
|
|
15
|
+
var defaultProps: {
|
|
16
|
+
isExpand: boolean;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export default BodyRow;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
16
|
+
var _utils = require("@autobest-ui/utils");
|
|
17
|
+
|
|
18
|
+
var __assign = void 0 && (void 0).__assign || function () {
|
|
19
|
+
__assign = Object.assign || function (t) {
|
|
20
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
21
|
+
s = arguments[i];
|
|
22
|
+
|
|
23
|
+
for (var p in s) {
|
|
24
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return t;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return __assign.apply(this, arguments);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var getIndentCol = function getIndentCol(prefixCls, number) {
|
|
35
|
+
if (number === 0) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return new Array(number).fill(false).map(function (_item, index) {
|
|
40
|
+
return _react.default.createElement("td", {
|
|
41
|
+
key: index,
|
|
42
|
+
className: prefixCls + "-indent"
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
function BodyRow(_a) {
|
|
48
|
+
var className = _a.className,
|
|
49
|
+
cls = _a.prefixCls,
|
|
50
|
+
rowData = _a.rowData,
|
|
51
|
+
index = _a.index,
|
|
52
|
+
columns = _a.columns,
|
|
53
|
+
indent = _a.indent,
|
|
54
|
+
CheckCell = _a.CheckCell,
|
|
55
|
+
isExpand = _a.isExpand;
|
|
56
|
+
|
|
57
|
+
var indentCell = _react.default.useMemo(function () {
|
|
58
|
+
return getIndentCol(cls, indent);
|
|
59
|
+
}, [cls, indent]);
|
|
60
|
+
|
|
61
|
+
var contentCells = [];
|
|
62
|
+
columns.forEach(function (col, colIndex) {
|
|
63
|
+
var renderer = (columns[colIndex] || {}).onRender;
|
|
64
|
+
var renderInfo = renderer ? renderer(rowData, index, colIndex) : rowData[col.dataIndex];
|
|
65
|
+
var cellProps = {};
|
|
66
|
+
var content;
|
|
67
|
+
|
|
68
|
+
if (renderInfo && (0, _typeof2.default)(renderInfo) === 'object' && !Array.isArray(renderInfo) && !_react.default.isValidElement(renderInfo)) {
|
|
69
|
+
var children = renderInfo.children,
|
|
70
|
+
props = renderInfo.props;
|
|
71
|
+
content = children;
|
|
72
|
+
cellProps = props;
|
|
73
|
+
} else {
|
|
74
|
+
content = renderInfo;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var colSpan = cellProps.colSpan,
|
|
78
|
+
rowSpan = cellProps.rowSpan,
|
|
79
|
+
className = cellProps.className;
|
|
80
|
+
|
|
81
|
+
var cellInfo = __assign(__assign({}, col), {
|
|
82
|
+
content: content,
|
|
83
|
+
colSpan: colSpan === undefined ? 1 : colSpan,
|
|
84
|
+
rowSpan: rowSpan === undefined ? 1 : rowSpan
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
if (cellInfo.colSpan === 0 || cellInfo.rowSpan === 0 || isExpand && !cellInfo.content) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
contentCells.push(_react.default.createElement("td", {
|
|
92
|
+
className: className,
|
|
93
|
+
key: cellInfo.key,
|
|
94
|
+
colSpan: cellInfo.colSpan,
|
|
95
|
+
rowSpan: cellInfo.rowSpan
|
|
96
|
+
}, cellInfo.content));
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
if (!(0, _utils.isEmptyArray)(contentCells)) {
|
|
100
|
+
return _react.default.createElement("tr", {
|
|
101
|
+
className: (0, _classnames.default)(cls + "-row", className)
|
|
102
|
+
}, indentCell, CheckCell, contentCells);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
BodyRow.defaultProps = {
|
|
109
|
+
isExpand: false
|
|
110
|
+
};
|
|
111
|
+
var _default = BodyRow;
|
|
112
|
+
exports.default = _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { ReactText } from 'react';
|
|
2
|
+
export interface BodyRowSelectionInfo<T> {
|
|
3
|
+
checkIcon?: (checked: boolean, rowData: T, index: number) => React.ReactElement;
|
|
4
|
+
getDisabled?: (rowData: T) => boolean;
|
|
5
|
+
onSelect?: (checked: boolean, rowData: T) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface BodyCheckIconProps<T> {
|
|
8
|
+
prefixCls: string;
|
|
9
|
+
rowData: T;
|
|
10
|
+
rowKey: ReactText;
|
|
11
|
+
rowIndex: number;
|
|
12
|
+
rowSelection: BodyRowSelectionInfo<T>;
|
|
13
|
+
selectedRowKeys: ReactText[];
|
|
14
|
+
}
|
|
15
|
+
declare const _default: React.NamedExoticComponent<BodyCheckIconProps<any>>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _checkbox = _interopRequireDefault(require("../../checkbox"));
|
|
13
|
+
|
|
14
|
+
function BodyCheckIcon(_a) {
|
|
15
|
+
var cls = _a.prefixCls,
|
|
16
|
+
rowData = _a.rowData,
|
|
17
|
+
rowKey = _a.rowKey,
|
|
18
|
+
rowIndex = _a.rowIndex,
|
|
19
|
+
selectedRowKeys = _a.selectedRowKeys,
|
|
20
|
+
_b = _a.rowSelection,
|
|
21
|
+
checkIcon = _b.checkIcon,
|
|
22
|
+
getDisabled = _b.getDisabled,
|
|
23
|
+
onSelect = _b.onSelect;
|
|
24
|
+
var checked = selectedRowKeys.includes(rowKey);
|
|
25
|
+
|
|
26
|
+
if (checkIcon) {
|
|
27
|
+
return _react.default.createElement("td", null, checkIcon(checked, rowData, rowIndex));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var disabled = getDisabled(rowData);
|
|
31
|
+
|
|
32
|
+
var onCheckBoxChange = function onCheckBoxChange(checked) {
|
|
33
|
+
onSelect(checked, rowData);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return _react.default.createElement("td", {
|
|
37
|
+
className: cls + "-checkbox"
|
|
38
|
+
}, _react.default.createElement(_checkbox.default, {
|
|
39
|
+
checked: checked,
|
|
40
|
+
disabled: disabled,
|
|
41
|
+
onChange: onCheckBoxChange
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var _default = _react.default.memo(BodyCheckIcon);
|
|
46
|
+
|
|
47
|
+
exports.default = _default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { ReactText } from 'react';
|
|
2
|
+
import { BodyRowProps } from './BodyRow';
|
|
3
|
+
import { BodyCheckIconProps, BodyRowSelectionInfo } from './CheckIcon';
|
|
4
|
+
import { ColumnOnRenderReturnObjectInfo } from '../interface';
|
|
5
|
+
/**
|
|
6
|
+
* 可展开子列表
|
|
7
|
+
*/
|
|
8
|
+
export interface TableExpandableInfo<T> {
|
|
9
|
+
expandedRowRender: (rowData: T, index: number) => React.ReactNode | React.ReactNode[] | ColumnOnRenderReturnObjectInfo;
|
|
10
|
+
}
|
|
11
|
+
export interface BodyProps<T> extends Pick<BodyRowProps<T>, 'prefixCls' | 'columns'>, Pick<BodyCheckIconProps<T>, 'selectedRowKeys'> {
|
|
12
|
+
/**
|
|
13
|
+
* 表格数据
|
|
14
|
+
*/
|
|
15
|
+
dataSource: T[];
|
|
16
|
+
/**
|
|
17
|
+
* 子列表渲染(不赋值则没有子列表),详见Expandable
|
|
18
|
+
*/
|
|
19
|
+
expandable?: TableExpandableInfo<T>;
|
|
20
|
+
getRowKey: (rowData: T) => ReactText;
|
|
21
|
+
rowSelection: BodyRowSelectionInfo<T>;
|
|
22
|
+
}
|
|
23
|
+
declare function Body<RowDataType>({ prefixCls, columns, dataSource, getRowKey, rowSelection, selectedRowKeys, expandable }: BodyProps<RowDataType>): JSX.Element;
|
|
24
|
+
export default Body;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _BodyRow = _interopRequireDefault(require("./BodyRow"));
|
|
13
|
+
|
|
14
|
+
var _CheckIcon = _interopRequireDefault(require("./CheckIcon"));
|
|
15
|
+
|
|
16
|
+
var noop = function noop() {
|
|
17
|
+
return null;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
function Body(_a) {
|
|
21
|
+
var prefixCls = _a.prefixCls,
|
|
22
|
+
columns = _a.columns,
|
|
23
|
+
dataSource = _a.dataSource,
|
|
24
|
+
getRowKey = _a.getRowKey,
|
|
25
|
+
rowSelection = _a.rowSelection,
|
|
26
|
+
selectedRowKeys = _a.selectedRowKeys,
|
|
27
|
+
expandable = _a.expandable;
|
|
28
|
+
var rows = [];
|
|
29
|
+
var expandedRowRenderer = expandable ? expandable.expandedRowRender : noop;
|
|
30
|
+
dataSource.forEach(function (row, rowIndex) {
|
|
31
|
+
var rowKey = getRowKey(row);
|
|
32
|
+
var CheckCell = rowSelection ? _react.default.createElement(_CheckIcon.default, {
|
|
33
|
+
prefixCls: prefixCls,
|
|
34
|
+
rowSelection: rowSelection,
|
|
35
|
+
rowKey: rowKey,
|
|
36
|
+
rowData: row,
|
|
37
|
+
rowIndex: rowIndex,
|
|
38
|
+
selectedRowKeys: selectedRowKeys
|
|
39
|
+
}) : null;
|
|
40
|
+
rows.push(_react.default.createElement(_BodyRow.default, {
|
|
41
|
+
key: rowKey,
|
|
42
|
+
prefixCls: prefixCls,
|
|
43
|
+
rowData: row,
|
|
44
|
+
index: rowIndex,
|
|
45
|
+
columns: columns,
|
|
46
|
+
CheckCell: CheckCell,
|
|
47
|
+
indent: 0
|
|
48
|
+
}));
|
|
49
|
+
var expandedRowKey = rowKey + " expanded";
|
|
50
|
+
var expandedColumns = [{
|
|
51
|
+
title: null,
|
|
52
|
+
key: expandedRowKey,
|
|
53
|
+
onRender: expandedRowRenderer
|
|
54
|
+
}];
|
|
55
|
+
|
|
56
|
+
if (expandable) {
|
|
57
|
+
rows.push(_react.default.createElement(_BodyRow.default, {
|
|
58
|
+
key: expandedRowKey,
|
|
59
|
+
className: prefixCls + "-expand-row",
|
|
60
|
+
prefixCls: prefixCls,
|
|
61
|
+
rowData: row,
|
|
62
|
+
index: rowIndex,
|
|
63
|
+
columns: expandedColumns,
|
|
64
|
+
CheckCell: null,
|
|
65
|
+
indent: CheckCell ? 1 : 0,
|
|
66
|
+
isExpand: true
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return _react.default.createElement(_react.default.Fragment, null, rows);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
var _default = Body;
|
|
74
|
+
exports.default = _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface HeaderRowSelectionInfo {
|
|
3
|
+
checkIcon?: (checked: boolean, rowData: null, index: number) => React.ReactElement;
|
|
4
|
+
selectAllVisible?: boolean;
|
|
5
|
+
selectAllChecked: boolean;
|
|
6
|
+
onSelectAll?: (checked: boolean) => void;
|
|
7
|
+
}
|
|
8
|
+
interface HeaderCheckIconProps {
|
|
9
|
+
prefixCls: string;
|
|
10
|
+
rowSelection: HeaderRowSelectionInfo;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: React.NamedExoticComponent<HeaderCheckIconProps>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _checkbox = _interopRequireDefault(require("../../checkbox"));
|
|
13
|
+
|
|
14
|
+
function HeaderCheckIcon(_a) {
|
|
15
|
+
var cls = _a.prefixCls,
|
|
16
|
+
rowSelection = _a.rowSelection;
|
|
17
|
+
|
|
18
|
+
if (!rowSelection) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (!rowSelection.selectAllVisible) {
|
|
23
|
+
// 有勾选功能,但是没有全选功能,需有占位元素
|
|
24
|
+
return _react.default.createElement("th", null, " ");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var checkIcon = rowSelection.checkIcon,
|
|
28
|
+
selectAllChecked = rowSelection.selectAllChecked,
|
|
29
|
+
onSelectAll = rowSelection.onSelectAll;
|
|
30
|
+
|
|
31
|
+
if (checkIcon) {
|
|
32
|
+
return _react.default.createElement("th", null, checkIcon(selectAllChecked, null, -1));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var onCheckBoxChange = function onCheckBoxChange() {
|
|
36
|
+
onSelectAll(!selectAllChecked);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
return _react.default.createElement("th", {
|
|
40
|
+
className: cls + "-checkbox"
|
|
41
|
+
}, _react.default.createElement(_checkbox.default, {
|
|
42
|
+
checked: selectAllChecked,
|
|
43
|
+
onChange: onCheckBoxChange
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var _default = _react.default.memo(HeaderCheckIcon);
|
|
48
|
+
|
|
49
|
+
exports.default = _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Column } from '../interface';
|
|
3
|
+
export interface HeaderCellProps<T> extends Column<T> {
|
|
4
|
+
prefixCls: string;
|
|
5
|
+
isSort: boolean;
|
|
6
|
+
isSortedDescending?: boolean;
|
|
7
|
+
onSort: (sortColumn: string) => void;
|
|
8
|
+
/**
|
|
9
|
+
* 自定义排序图标,若不传,则采用默认的排序图标
|
|
10
|
+
* @param isSortDesc
|
|
11
|
+
*/
|
|
12
|
+
sortIcon?: (isSortDesc: boolean) => React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export default class HeaderCell<RowDataType> extends React.PureComponent<HeaderCellProps<RowDataType>> {
|
|
15
|
+
onClick: () => void;
|
|
16
|
+
renderArrow: () => {};
|
|
17
|
+
render(): JSX.Element;
|
|
18
|
+
}
|
|
@@ -11,7 +11,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
|
|
14
|
-
var _icon = _interopRequireDefault(require("
|
|
14
|
+
var _icon = _interopRequireDefault(require("../../icon"));
|
|
15
15
|
|
|
16
16
|
var __extends = void 0 && (void 0).__extends || function () {
|
|
17
17
|
var _extendStatics = function extendStatics(d, b) {
|
|
@@ -61,12 +61,17 @@ function (_super) {
|
|
|
61
61
|
var _a = _this.props,
|
|
62
62
|
prefixCls = _a.prefixCls,
|
|
63
63
|
isSort = _a.isSort,
|
|
64
|
-
isSortedDescending = _a.isSortedDescending
|
|
64
|
+
isSortedDescending = _a.isSortedDescending,
|
|
65
|
+
sortIcon = _a.sortIcon;
|
|
65
66
|
|
|
66
67
|
if (!isSort) {
|
|
67
68
|
return null;
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
if (sortIcon) {
|
|
72
|
+
return sortIcon(isSortedDescending);
|
|
73
|
+
}
|
|
74
|
+
|
|
70
75
|
return _react.default.createElement(_icon.default, {
|
|
71
76
|
className: prefixCls + "-arrow",
|
|
72
77
|
name: "arrow",
|
|
@@ -83,11 +88,13 @@ function (_super) {
|
|
|
83
88
|
|
|
84
89
|
var _b = this.props,
|
|
85
90
|
prefixCls = _b.prefixCls,
|
|
91
|
+
className = _b.className,
|
|
86
92
|
title = _b.title,
|
|
87
93
|
sortName = _b.sortName,
|
|
88
|
-
|
|
94
|
+
colSpan = _b.colSpan;
|
|
89
95
|
return _react.default.createElement("th", {
|
|
90
|
-
|
|
96
|
+
className: className,
|
|
97
|
+
colSpan: colSpan
|
|
91
98
|
}, _react.default.createElement("div", {
|
|
92
99
|
className: (0, _classnames.default)(prefixCls + "-title", (_a = {}, _a[prefixCls + "-point"] = sortName, _a)),
|
|
93
100
|
onClick: this.onClick
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Column } from '../interface';
|
|
2
|
+
import { HeaderCellProps } from './HeaderCell';
|
|
3
|
+
import { HeaderRowSelectionInfo } from './CheckIcon';
|
|
4
|
+
export interface HeaderRowProps<T> extends Pick<HeaderCellProps<T>, 'sortName' | 'isSortedDescending' | 'sortIcon'> {
|
|
5
|
+
prefixCls: string;
|
|
6
|
+
columns: Column<T>[];
|
|
7
|
+
/**
|
|
8
|
+
* 点击表头触发的排序函数
|
|
9
|
+
* @param isSortedDescending
|
|
10
|
+
* @param sortName
|
|
11
|
+
*/
|
|
12
|
+
onSortChange?: (isSortedDescending: boolean, sortName: string) => void;
|
|
13
|
+
rowSelection: HeaderRowSelectionInfo;
|
|
14
|
+
}
|
|
15
|
+
declare function HeaderRow<RowDataType>({ prefixCls: cls, columns, rowSelection, sortName, isSortedDescending, onSortChange, sortIcon }: HeaderRowProps<RowDataType>): JSX.Element;
|
|
16
|
+
export default HeaderRow;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _HeaderCell = _interopRequireDefault(require("./HeaderCell"));
|
|
13
|
+
|
|
14
|
+
var _CheckIcon = _interopRequireDefault(require("./CheckIcon"));
|
|
15
|
+
|
|
16
|
+
var __assign = void 0 && (void 0).__assign || function () {
|
|
17
|
+
__assign = Object.assign || function (t) {
|
|
18
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
19
|
+
s = arguments[i];
|
|
20
|
+
|
|
21
|
+
for (var p in s) {
|
|
22
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return t;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return __assign.apply(this, arguments);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
function parseHeaderRows(columns) {
|
|
33
|
+
var rows = [];
|
|
34
|
+
columns.forEach(function (col) {
|
|
35
|
+
if ('colSpan' in col && col.colSpan === 0) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
rows.push(__assign(__assign({}, col), {
|
|
40
|
+
colSpan: col.colSpan ? col.colSpan : 1
|
|
41
|
+
}));
|
|
42
|
+
});
|
|
43
|
+
return rows;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function HeaderRow(_a) {
|
|
47
|
+
var cls = _a.prefixCls,
|
|
48
|
+
columns = _a.columns,
|
|
49
|
+
rowSelection = _a.rowSelection,
|
|
50
|
+
sortName = _a.sortName,
|
|
51
|
+
isSortedDescending = _a.isSortedDescending,
|
|
52
|
+
onSortChange = _a.onSortChange,
|
|
53
|
+
sortIcon = _a.sortIcon;
|
|
54
|
+
/**
|
|
55
|
+
* 点击某一列的表头,触发排序
|
|
56
|
+
* @param name
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
var onSort = function onSort(name) {
|
|
60
|
+
if (!onSortChange) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
var isSortedDesc = sortName === name ? !isSortedDescending : true;
|
|
65
|
+
onSortChange(isSortedDesc, name);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var rows = _react.default.useMemo(function () {
|
|
69
|
+
return parseHeaderRows(columns);
|
|
70
|
+
}, [columns]);
|
|
71
|
+
|
|
72
|
+
return _react.default.createElement("tr", null, _react.default.createElement(_CheckIcon.default, {
|
|
73
|
+
prefixCls: cls,
|
|
74
|
+
rowSelection: rowSelection
|
|
75
|
+
}), rows.map(function (item) {
|
|
76
|
+
return _react.default.createElement(_HeaderCell.default, __assign({
|
|
77
|
+
key: item.key
|
|
78
|
+
}, item, {
|
|
79
|
+
prefixCls: cls,
|
|
80
|
+
isSort: sortName && sortName === item.sortName,
|
|
81
|
+
isSortedDescending: isSortedDescending,
|
|
82
|
+
onSort: onSort,
|
|
83
|
+
sortIcon: sortIcon
|
|
84
|
+
}));
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
var _default = HeaderRow;
|
|
89
|
+
exports.default = _default;
|