@yester/virtual-table 1.0.0 → 1.1.0
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/style.css +1 -1
- package/dist/types/index.d.ts +26 -18
- package/dist/utils/dataHandler.d.ts +8 -15
- package/dist/virtual-table.es.js +1339 -1282
- package/dist/virtual-table.es.js.map +1 -1
- package/dist/virtual-table.umd.js +14 -14
- package/dist/virtual-table.umd.js.map +1 -1
- package/package.json +5 -2
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.virtual-table .virtual-table-container:before,.virtual-table .virtual-table-container:after{display:none}.virtual-table,.virtual-table .virtual-table{--virtual-table-scrollbar-width: 0px !important}.virtual-table table{table-layout:fixed!important;width:100%!important;border-spacing:0}.virtual-table .virtual-table-header th.virtual-table-cell{background:#fafafa;border-bottom:1px solid #e8e8e8;font-weight:500;padding:10px 16px;border-right:1px solid #e8e8e8;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.virtual-table .virtual-table-thead>tr:first-child>th{border-top:1px solid #e8e8e8}.virtual-table .virtual-table-thead>tr>th:first-child{border-left:1px solid #e8e8e8}.virtual-table .virtual-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:1px solid #e8e8e8}.virtual-table-cell{box-sizing:border-box;padding:10px 16px;line-height:1.5;border-bottom:1px solid #e8e8e8;background:#fff}[data-theme=dark] .virtual-table-cell{box-sizing:border-box;line-height:1.5;padding:10px 16px;border-bottom:1px solid #303030;background:#141414}[data-theme=dark] .virtual-table .virtual-table-header th.virtual-table-cell{background:#1d1d1d;border-bottom:1px solid #303030;border-right:1px solid #303030}[data-theme=dark] .virtual-table .virtual-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:1px solid #303030}.expand-icon{cursor:pointer;color:var(--primary-color);margin-right:4px;line-height:0}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}
|
|
1
|
+
.virtual-table .virtual-table-container:before,.virtual-table .virtual-table-container:after{display:none}.virtual-table,.virtual-table .virtual-table{--virtual-table-scrollbar-width: 0px !important}.virtual-table table{table-layout:fixed!important;width:100%!important;border-spacing:0}.virtual-table .virtual-table-header th.virtual-table-cell{background:#fafafa;border-bottom:1px solid #e8e8e8;font-weight:500;padding:10px 16px;border-right:1px solid #e8e8e8;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.virtual-table .virtual-table-thead>tr:first-child>th{border-top:1px solid #e8e8e8}.virtual-table .virtual-table-thead>tr>th:first-child{border-left:1px solid #e8e8e8}.virtual-table .virtual-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:1px solid #e8e8e8}.virtual-table-cell{box-sizing:border-box;padding:10px 16px;line-height:1.5;border-bottom:1px solid #e8e8e8;background:#fff}[data-theme=dark] .virtual-table-cell{box-sizing:border-box;line-height:1.5;padding:10px 16px;border-bottom:1px solid #303030;background:#141414}[data-theme=dark] .virtual-table .virtual-table-header th.virtual-table-cell{background:#1d1d1d;border-bottom:1px solid #303030;border-right:1px solid #303030}[data-theme=dark] .virtual-table .virtual-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:1px solid #303030}.expand-icon{cursor:pointer;color:var(--primary-color);margin-right:4px;line-height:0}.virtual-table-cell-link{cursor:pointer;text-decoration:none;color:var(--primary-color)}.virtual-table-cell-link:hover{color:var(--primary-color-hover)}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
|
|
3
|
-
export interface
|
|
3
|
+
export interface BaseNode {
|
|
4
4
|
/**
|
|
5
5
|
* 字段唯一标识
|
|
6
6
|
*/
|
|
@@ -9,38 +9,46 @@ export interface CustomTreeNode {
|
|
|
9
9
|
* 标题
|
|
10
10
|
*/
|
|
11
11
|
title?: string;
|
|
12
|
-
/**
|
|
13
|
-
* 是否收起(默认都展开)
|
|
14
|
-
* @description 优先级 `collapseFields` > `expandDepth` > `collapseAll` > `collapsed`
|
|
15
|
-
*/
|
|
16
|
-
collapsed?: boolean;
|
|
17
12
|
/**
|
|
18
13
|
* 字段描述
|
|
19
14
|
*/
|
|
20
15
|
description?: string;
|
|
16
|
+
width?: number | string;
|
|
17
|
+
style?: React.CSSProperties;
|
|
18
|
+
fixed?: boolean | string;
|
|
19
|
+
colSpan?: number;
|
|
20
|
+
dataIndex?: string;
|
|
21
|
+
hidden?: boolean;
|
|
22
|
+
key?: string;
|
|
23
|
+
children?: BaseNode[];
|
|
24
|
+
}
|
|
25
|
+
export interface DimensionNode extends BaseNode {
|
|
21
26
|
/**
|
|
22
|
-
*
|
|
27
|
+
* 是否收起(默认都展开)
|
|
28
|
+
* @description 优先级 `collapseFields` > `expandDepth` > `collapseAll` > `collapsed`
|
|
23
29
|
*/
|
|
24
|
-
|
|
25
|
-
width?: number | string;
|
|
30
|
+
collapsed?: boolean;
|
|
26
31
|
total?: {
|
|
27
32
|
enabled: boolean;
|
|
28
33
|
label?: string;
|
|
29
34
|
position?: 'top' | 'bottom';
|
|
30
35
|
};
|
|
31
|
-
emptyReplace?: string;
|
|
32
|
-
calculateType?: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'd_count' | 'variance' | 'stddev';
|
|
33
36
|
sort?: {
|
|
34
37
|
enabled: boolean;
|
|
35
38
|
type: 'asc' | 'desc';
|
|
36
39
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
children?: DimensionNode[];
|
|
41
|
+
}
|
|
42
|
+
export interface MetricNode extends BaseNode {
|
|
43
|
+
emptyReplace?: string;
|
|
44
|
+
calculateType?: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'd_count' | 'variance' | 'stddev' | 'expr';
|
|
45
|
+
expression?: string;
|
|
41
46
|
render?: (val: any, record: any, index: number) => React.ReactNode;
|
|
47
|
+
formatter?: (val: any, record: any) => React.ReactNode;
|
|
42
48
|
type?: string;
|
|
49
|
+
children?: MetricNode[];
|
|
43
50
|
}
|
|
51
|
+
export type CustomTreeNode = DimensionNode | MetricNode;
|
|
44
52
|
export interface DataCell {
|
|
45
53
|
content: string | number | null | undefined;
|
|
46
54
|
rowspan: number;
|
|
@@ -68,9 +76,9 @@ export interface SortParam {
|
|
|
68
76
|
sortType: 'asc' | 'desc';
|
|
69
77
|
}
|
|
70
78
|
export interface PivotFields {
|
|
71
|
-
rows:
|
|
72
|
-
columns:
|
|
73
|
-
values:
|
|
79
|
+
rows: DimensionNode[];
|
|
80
|
+
columns: DimensionNode[];
|
|
81
|
+
values: MetricNode[];
|
|
74
82
|
}
|
|
75
83
|
export interface PivotParams {
|
|
76
84
|
data: any[];
|
|
@@ -21,27 +21,20 @@ export declare const dataHandler: (params: PivotParams) => {
|
|
|
21
21
|
tableColumns: {
|
|
22
22
|
width: string | number;
|
|
23
23
|
key: string;
|
|
24
|
+
emptyReplace?: string;
|
|
25
|
+
calculateType?: "sum" | "avg" | "count" | "min" | "max" | "d_count" | "variance" | "stddev" | "expr";
|
|
26
|
+
expression?: string;
|
|
27
|
+
render?: (val: any, record: any, index: number) => React.ReactNode;
|
|
28
|
+
formatter?: (val: any, record: any) => React.ReactNode;
|
|
29
|
+
type?: string;
|
|
30
|
+
children?: import('../types').MetricNode[];
|
|
24
31
|
field: string;
|
|
25
32
|
title?: string;
|
|
26
|
-
collapsed?: boolean;
|
|
27
33
|
description?: string;
|
|
28
|
-
children?: import('../types').CustomTreeNode[];
|
|
29
|
-
total?: {
|
|
30
|
-
enabled: boolean;
|
|
31
|
-
label?: string;
|
|
32
|
-
position?: "top" | "bottom";
|
|
33
|
-
};
|
|
34
|
-
emptyReplace?: string;
|
|
35
|
-
calculateType?: "sum" | "avg" | "count" | "min" | "max" | "d_count" | "variance" | "stddev";
|
|
36
|
-
sort?: {
|
|
37
|
-
enabled: boolean;
|
|
38
|
-
type: "asc" | "desc";
|
|
39
|
-
};
|
|
40
34
|
style?: React.CSSProperties;
|
|
41
35
|
fixed?: boolean | string;
|
|
42
36
|
colSpan?: number;
|
|
43
37
|
dataIndex?: string;
|
|
44
|
-
|
|
45
|
-
type?: string;
|
|
38
|
+
hidden?: boolean;
|
|
46
39
|
}[];
|
|
47
40
|
};
|