dcp-design-react 1.11.15 → 1.11.17
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/lib/index.esm.js +1 -1
- package/lib/index.full.js +1 -1
- package/lib/index.js +1 -1
- package/lib/pivot-grid/src/grid-layout/Context.d.ts +5 -5
- package/lib/pivot-grid/src/hooks/use-context-menu.d.ts +2 -1
- package/lib/pivot-grid/src/hooks/use-keyboard-event.d.ts +3 -0
- package/lib/pivot-grid/src/hooks/use-row-cell.d.ts +3 -3
- package/lib/pivot-grid/src/main/Context.d.ts +6 -4
- package/lib/pivot-grid/src/main/types.d.ts +15 -1
- package/lib/pivot-grid/style/context-menu.less +28 -0
- package/lib/pivot-grid/style/grid-layout.less +7 -1
- package/lib/pivot-grid/style/index.less +11 -10
- package/lib/style/index.css +36 -2
- package/lib/style/index.min.css +1 -1
- package/lib/table/src/hooks/useTableCore.d.ts +0 -2
- package/lib/table/src/hooks/useTableEffect.d.ts +0 -2
- package/lib/table/style/table.less +377 -373
- package/lib/virtual-list/src/core.d.ts +1 -1
- package/lib/virtual-list/style/index.less +23 -22
- package/package.json +1 -1
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { IRowKey } from '../../../table/src/table/types';
|
|
3
3
|
import type { ScrollbarRef } from '../../../scrollbar';
|
|
4
|
-
import type { Summary } from '../utils';
|
|
5
4
|
export type IGridLayoutContext = {
|
|
6
5
|
scrollbarRef: React.RefObject<ScrollbarRef>;
|
|
7
6
|
indentDepth: number;
|
|
8
7
|
selectionKeys: IRowKey[];
|
|
9
8
|
treeExpandKeys: IRowKey[];
|
|
10
|
-
|
|
11
|
-
summationData: Summary;
|
|
9
|
+
highlightKey: IRowKey;
|
|
12
10
|
checkedColumnKey: string;
|
|
13
11
|
hoverRowKey: IRowKey;
|
|
14
12
|
updateLayout: number;
|
|
13
|
+
clicked: [IRowKey, string] | [];
|
|
15
14
|
};
|
|
16
15
|
type IProps = {
|
|
17
16
|
scrollbar: React.RefObject<ScrollbarRef>;
|
|
@@ -22,11 +21,12 @@ export declare const useGridLayoutContext: () => (IGridLayoutContext & {
|
|
|
22
21
|
setContext: (data: Partial<IGridLayoutContext>) => void;
|
|
23
22
|
setSelectionKeys: (rowKeys: IRowKey[]) => void;
|
|
24
23
|
setTreeExpandKeys: (rowKeys: IRowKey[]) => void;
|
|
25
|
-
|
|
26
|
-
setSummationData: (value: Summary) => void;
|
|
24
|
+
setHighlightKey: (value: IRowKey) => void;
|
|
27
25
|
setCheckColumnKey: (value: string) => void;
|
|
28
26
|
setHoverRowKey: (value: IRowKey) => void;
|
|
29
27
|
forceUpdateLayout: () => void;
|
|
30
28
|
updateColumnsWidth: () => void;
|
|
29
|
+
setClicked: (value: [IRowKey, string] | [
|
|
30
|
+
]) => void;
|
|
31
31
|
}) | undefined;
|
|
32
32
|
export {};
|
|
@@ -4,9 +4,10 @@ type UseContextMenuProps = {
|
|
|
4
4
|
popup: (ev: MouseEvent) => React.ReactNode;
|
|
5
5
|
getTriggerContainer?: (el: HTMLElement | null) => HTMLElement | null;
|
|
6
6
|
prevent?: (node: HTMLElement) => boolean;
|
|
7
|
+
prefixCls?: string;
|
|
7
8
|
enabled?: boolean;
|
|
8
9
|
};
|
|
9
|
-
declare const useContextMenu: ({ ref, popup, getTriggerContainer, prevent, enabled }: UseContextMenuProps) => {
|
|
10
|
+
declare const useContextMenu: ({ ref, popup, getTriggerContainer, prevent, prefixCls, enabled }: UseContextMenuProps) => {
|
|
10
11
|
contextMenu: React.JSX.Element;
|
|
11
12
|
closeMenu: () => void;
|
|
12
13
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { IColumn, IRecord, IRowKey } from '../../../table/src/table/types';
|
|
3
|
-
declare const useRowCell: (isLeftPanel?: boolean) => {
|
|
4
|
-
renderGroupRow: (
|
|
5
|
-
renderRow: (
|
|
3
|
+
declare const useRowCell: (columns: IColumn[], isLeftPanel?: boolean) => {
|
|
4
|
+
renderGroupRow: (row: IRecord, rowKey: IRowKey) => React.JSX.Element;
|
|
5
|
+
renderRow: (row: IRecord, rowIndex: number, rowKey: IRowKey) => React.JSX.Element;
|
|
6
6
|
};
|
|
7
7
|
export default useRowCell;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { IColumn, IOrderBy, IRecord, IRowKey, ISuperFilter } from '../../../table/src/table/types';
|
|
3
3
|
import type { ComponentSize, ValueOf } from '../../../_utils/types';
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
export type IPivotMode = 'table' | 'gantt' | 'card';
|
|
4
|
+
import type { PivotGridProps, IPivotMode, ICountFn } from './types';
|
|
5
|
+
import type { Summary } from '../utils';
|
|
7
6
|
export type GroupItem = {
|
|
8
7
|
fieldName: string;
|
|
9
8
|
order: IOrderBy;
|
|
@@ -32,7 +31,6 @@ export type PivotRef = {
|
|
|
32
31
|
flatGroupData: IRecord[];
|
|
33
32
|
isTree: boolean;
|
|
34
33
|
keyRecordMap: Map<IRowKey, IRecord>;
|
|
35
|
-
gridLayoutContext: Partial<IGridLayoutContext>;
|
|
36
34
|
};
|
|
37
35
|
export type IPivotGridContext = {
|
|
38
36
|
pivotRef: React.MutableRefObject<PivotRef>;
|
|
@@ -50,6 +48,8 @@ export type IPivotGridContext = {
|
|
|
50
48
|
searchResults: SearchResult[];
|
|
51
49
|
switchIndex: number;
|
|
52
50
|
fillColorCells: Map<string, string>;
|
|
51
|
+
countMethod: Record<string, ICountFn>;
|
|
52
|
+
summationData: Summary;
|
|
53
53
|
};
|
|
54
54
|
type IProps = {
|
|
55
55
|
prefixCls: string;
|
|
@@ -76,5 +76,7 @@ export declare const usePivotGridContext: () => (IPivotGridContext & {
|
|
|
76
76
|
setSearchResults: (value: SearchResult[]) => void;
|
|
77
77
|
setSwitchIndex: (value: number) => void;
|
|
78
78
|
setFillColor: (items: FillColorCell[]) => void;
|
|
79
|
+
setCountMethod: (value: Record<string, ICountFn | undefined>) => void;
|
|
80
|
+
setSummationData: (value: Summary) => void;
|
|
79
81
|
}) | undefined;
|
|
80
82
|
export {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { IColumn, IRecord, IRowKey, ISuperFilter } from '../../../table/src/table/types';
|
|
2
|
+
import type { IColumn, IRecord, IRowHighlight, IRowKey, ISelectionType, ISuperFilter } from '../../../table/src/table/types';
|
|
3
3
|
import type { ComponentSize } from '../../../_utils/types';
|
|
4
4
|
import type { GroupItem, SorterItem } from './Context';
|
|
5
|
+
export type IPivotMode = 'table' | 'gantt' | 'card';
|
|
6
|
+
export type ICountFn = 'count' | 'unique' | 'empty' | 'notEmpty' | 'sum' | 'max' | 'min' | 'avg';
|
|
5
7
|
export type RowSelectType = {
|
|
8
|
+
type?: ISelectionType;
|
|
6
9
|
defaultSelectedRowKeys?: IRowKey[];
|
|
7
10
|
selectedRowKeys?: IRowKey[];
|
|
8
11
|
checkStrictly?: boolean;
|
|
@@ -14,6 +17,14 @@ export type TreeExpandType = {
|
|
|
14
17
|
onChange?: (rowKeys: IRowKey[]) => void;
|
|
15
18
|
onExpand?: (expanded: boolean, record: IRecord) => void;
|
|
16
19
|
};
|
|
20
|
+
export type CxtMenuItem = {
|
|
21
|
+
key: string | number;
|
|
22
|
+
label: React.ReactNode;
|
|
23
|
+
disabled?: (row: IRecord, column: IColumn) => boolean;
|
|
24
|
+
prefix?: React.ReactNode;
|
|
25
|
+
suffix?: React.ReactNode;
|
|
26
|
+
onClick?: (row: IRecord, column: IColumn) => void;
|
|
27
|
+
};
|
|
17
28
|
export type PivotGridRef = {};
|
|
18
29
|
export type PivotGridProps = {
|
|
19
30
|
fromTable?: boolean;
|
|
@@ -27,8 +38,11 @@ export type PivotGridProps = {
|
|
|
27
38
|
className?: string;
|
|
28
39
|
style?: React.CSSProperties;
|
|
29
40
|
rowSelection?: RowSelectType;
|
|
41
|
+
rowHighlight?: IRowHighlight;
|
|
30
42
|
treeExpandable?: TreeExpandType;
|
|
31
43
|
initialGroup?: GroupItem[];
|
|
44
|
+
initialCount?: Record<string, ICountFn>;
|
|
45
|
+
contextMenues?: CxtMenuItem[];
|
|
32
46
|
onDataChange?: (records: IRecord[]) => void;
|
|
33
47
|
onColumnsChange?: (columns: IColumn[]) => void;
|
|
34
48
|
onGroupChange?: (group: GroupItem[]) => void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 焦质晔
|
|
3
|
+
* @Date: 2025-01-11 18:31:17
|
|
4
|
+
* @Last Modified by: 焦质晔
|
|
5
|
+
* @Last Modified time: 2025-01-12 13:18:56
|
|
6
|
+
*/
|
|
7
|
+
@import '../../style/common';
|
|
8
|
+
|
|
9
|
+
.@{prefix-pivot-grid}__context-menu {
|
|
10
|
+
min-width: 150px;
|
|
11
|
+
.ant-dropdown-menu-item {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
padding-left: @--padding-md;
|
|
15
|
+
padding-right: @--padding-md;
|
|
16
|
+
border-radius: @--border-radius-lg;
|
|
17
|
+
.label {
|
|
18
|
+
flex: auto;
|
|
19
|
+
}
|
|
20
|
+
.prefix {
|
|
21
|
+
margin-right: 5px;
|
|
22
|
+
}
|
|
23
|
+
.suffix {
|
|
24
|
+
margin-left: 4px;
|
|
25
|
+
color: @--text-color-placeholder;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: 焦质晔
|
|
3
3
|
* @Date: 2022-03-16 19:05:30
|
|
4
4
|
* @Last Modified by: 焦质晔
|
|
5
|
-
* @Last Modified time: 2025-01-
|
|
5
|
+
* @Last Modified time: 2025-01-12 14:23:51
|
|
6
6
|
*/
|
|
7
7
|
@import '../../style/common';
|
|
8
8
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
.reset-container();
|
|
11
11
|
width: 100%;
|
|
12
12
|
.@{qm-prefix}-scrollbar__wrap {
|
|
13
|
+
// 调整为 flex 布局
|
|
13
14
|
display: flex;
|
|
14
15
|
flex-wrap: nowrap;
|
|
15
16
|
& > div {
|
|
@@ -266,6 +267,11 @@
|
|
|
266
267
|
}
|
|
267
268
|
}
|
|
268
269
|
}
|
|
270
|
+
&.row--highlight {
|
|
271
|
+
.table-cell {
|
|
272
|
+
background-color: @--primary-1;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
269
275
|
&.row--hover {
|
|
270
276
|
.table-cell {
|
|
271
277
|
.drag-icon,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: 焦质晔
|
|
3
|
-
* @Date: 2024-11-28 19:27:58
|
|
4
|
-
* @Last Modified by: 焦质晔
|
|
5
|
-
* @Last Modified time:
|
|
6
|
-
*/
|
|
7
|
-
@import './variable.less';
|
|
8
|
-
@import './main.less';
|
|
9
|
-
@import './top-bar.less';
|
|
10
|
-
@import './grid-layout.less';
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 焦质晔
|
|
3
|
+
* @Date: 2024-11-28 19:27:58
|
|
4
|
+
* @Last Modified by: 焦质晔
|
|
5
|
+
* @Last Modified time: 2025-01-11 18:32:54
|
|
6
|
+
*/
|
|
7
|
+
@import './variable.less';
|
|
8
|
+
@import './main.less';
|
|
9
|
+
@import './top-bar.less';
|
|
10
|
+
@import './grid-layout.less';
|
|
11
|
+
@import './context-menu.less';
|
package/lib/style/index.css
CHANGED
|
@@ -29366,6 +29366,10 @@ body {
|
|
|
29366
29366
|
overflow-y: auto;
|
|
29367
29367
|
overflow-x: auto;
|
|
29368
29368
|
}
|
|
29369
|
+
.qm-table--body-wrapper .virtual-container {
|
|
29370
|
+
contain: paint;
|
|
29371
|
+
will-change: margin-top, margin-left;
|
|
29372
|
+
}
|
|
29369
29373
|
.qm-table.c--resize {
|
|
29370
29374
|
cursor: col-resize;
|
|
29371
29375
|
}
|
|
@@ -30967,7 +30971,7 @@ body {
|
|
|
30967
30971
|
* @Author: 焦质晔
|
|
30968
30972
|
* @Date: 2024-11-28 19:27:58
|
|
30969
30973
|
* @Last Modified by: 焦质晔
|
|
30970
|
-
* @Last Modified time:
|
|
30974
|
+
* @Last Modified time: 2025-01-11 18:32:54
|
|
30971
30975
|
*/
|
|
30972
30976
|
/*
|
|
30973
30977
|
* @Author: 焦质晔
|
|
@@ -31180,7 +31184,7 @@ body {
|
|
|
31180
31184
|
* @Author: 焦质晔
|
|
31181
31185
|
* @Date: 2022-03-16 19:05:30
|
|
31182
31186
|
* @Last Modified by: 焦质晔
|
|
31183
|
-
* @Last Modified time: 2025-01-
|
|
31187
|
+
* @Last Modified time: 2025-01-12 14:23:51
|
|
31184
31188
|
*/
|
|
31185
31189
|
.qm-pivot-grid__layout {
|
|
31186
31190
|
box-sizing: border-box;
|
|
@@ -31492,6 +31496,9 @@ body {
|
|
|
31492
31496
|
.qm-pivot-grid__layout .container .row-item .table-row.row--selection .table-cell .middle .checkbox {
|
|
31493
31497
|
display: inline-flex;
|
|
31494
31498
|
}
|
|
31499
|
+
.qm-pivot-grid__layout .container .row-item .table-row.row--highlight .table-cell {
|
|
31500
|
+
background-color: #e6f7ff;
|
|
31501
|
+
}
|
|
31495
31502
|
.qm-pivot-grid__layout .container .row-item .table-row.row--hover .table-cell .drag-icon,
|
|
31496
31503
|
.qm-pivot-grid__layout .container .row-item .table-row.row--hover .table-cell .expand-icon {
|
|
31497
31504
|
visibility: visible;
|
|
@@ -31519,6 +31526,32 @@ body {
|
|
|
31519
31526
|
.qm-pivot-grid__layout.large .table-cell {
|
|
31520
31527
|
height: 42px;
|
|
31521
31528
|
}
|
|
31529
|
+
/*
|
|
31530
|
+
* @Author: 焦质晔
|
|
31531
|
+
* @Date: 2025-01-11 18:31:17
|
|
31532
|
+
* @Last Modified by: 焦质晔
|
|
31533
|
+
* @Last Modified time: 2025-01-12 13:18:56
|
|
31534
|
+
*/
|
|
31535
|
+
.qm-pivot-grid__context-menu {
|
|
31536
|
+
min-width: 150px;
|
|
31537
|
+
}
|
|
31538
|
+
.qm-pivot-grid__context-menu .ant-dropdown-menu-item {
|
|
31539
|
+
display: flex;
|
|
31540
|
+
align-items: center;
|
|
31541
|
+
padding-left: 10px;
|
|
31542
|
+
padding-right: 10px;
|
|
31543
|
+
border-radius: 4px;
|
|
31544
|
+
}
|
|
31545
|
+
.qm-pivot-grid__context-menu .ant-dropdown-menu-item .label {
|
|
31546
|
+
flex: auto;
|
|
31547
|
+
}
|
|
31548
|
+
.qm-pivot-grid__context-menu .ant-dropdown-menu-item .prefix {
|
|
31549
|
+
margin-right: 5px;
|
|
31550
|
+
}
|
|
31551
|
+
.qm-pivot-grid__context-menu .ant-dropdown-menu-item .suffix {
|
|
31552
|
+
margin-left: 4px;
|
|
31553
|
+
color: rgba(0, 0, 0, 0.45);
|
|
31554
|
+
}
|
|
31522
31555
|
/*
|
|
31523
31556
|
* @Author: 焦质晔
|
|
31524
31557
|
* @Date: 2024-12-02 09:06:20
|
|
@@ -31539,6 +31572,7 @@ body {
|
|
|
31539
31572
|
display: block;
|
|
31540
31573
|
}
|
|
31541
31574
|
.qm-virtual-list .container ul {
|
|
31575
|
+
contain: paint;
|
|
31542
31576
|
will-change: transform;
|
|
31543
31577
|
}
|
|
31544
31578
|
.qm-virtual-list .container ul li.list-item {
|