dcp-design-react 1.10.18 → 1.10.19

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.
Files changed (46) hide show
  1. package/lib/index.d.ts +4 -0
  2. package/lib/index.esm.js +1 -1
  3. package/lib/index.full.js +1 -1
  4. package/lib/index.js +1 -1
  5. package/lib/locale/lang/en.d.ts +4 -0
  6. package/lib/locale/lang/en.js +9 -5
  7. package/lib/locale/lang/zh-cn.d.ts +4 -0
  8. package/lib/locale/lang/zh-cn.js +9 -5
  9. package/lib/pivot-grid/index.d.ts +3 -0
  10. package/lib/pivot-grid/src/config/index.d.ts +9 -0
  11. package/lib/pivot-grid/src/grid-layout/Body.d.ts +3 -0
  12. package/lib/pivot-grid/src/grid-layout/Context.d.ts +20 -0
  13. package/lib/pivot-grid/src/grid-layout/CountPanel.d.ts +7 -0
  14. package/lib/pivot-grid/src/grid-layout/Footer.d.ts +3 -0
  15. package/lib/pivot-grid/src/grid-layout/GroupCard.d.ts +10 -0
  16. package/lib/pivot-grid/src/grid-layout/Header.d.ts +3 -0
  17. package/lib/pivot-grid/src/grid-layout/List.d.ts +7 -0
  18. package/lib/pivot-grid/src/grid-layout/ResizeBar.d.ts +7 -0
  19. package/lib/pivot-grid/src/grid-layout/index.d.ts +3 -0
  20. package/lib/pivot-grid/src/main/Context.d.ts +39 -0
  21. package/lib/pivot-grid/src/main/index.d.ts +3 -0
  22. package/lib/pivot-grid/src/main/types.d.ts +8 -0
  23. package/lib/pivot-grid/src/top-bar/FieldsPanel.d.ts +3 -0
  24. package/lib/pivot-grid/src/top-bar/FilterPanel.d.ts +3 -0
  25. package/lib/pivot-grid/src/top-bar/GroupPanel.d.ts +3 -0
  26. package/lib/pivot-grid/src/top-bar/LineHeightPanel.d.ts +3 -0
  27. package/lib/pivot-grid/src/top-bar/SearchPanel.d.ts +3 -0
  28. package/lib/pivot-grid/src/top-bar/SorterPanel.d.ts +3 -0
  29. package/lib/pivot-grid/src/top-bar/ViewMode.d.ts +3 -0
  30. package/lib/pivot-grid/src/top-bar/index.d.ts +3 -0
  31. package/lib/pivot-grid/src/utils/index.d.ts +2 -0
  32. package/lib/pivot-grid/style/grid-layout.less +234 -0
  33. package/lib/pivot-grid/style/index.less +10 -0
  34. package/lib/pivot-grid/style/main.less +43 -0
  35. package/lib/pivot-grid/style/top-bar.less +105 -0
  36. package/lib/pivot-grid/style/variable.less +9 -0
  37. package/lib/style/index.css +392 -2
  38. package/lib/style/index.less +2 -1
  39. package/lib/style/index.min.css +1 -1
  40. package/lib/table/src/hooks/useTableMemo.d.ts +1 -0
  41. package/lib/table/src/pivot-grid/index.d.ts +7 -0
  42. package/lib/table/src/table/props.d.ts +1 -0
  43. package/lib/table/src/table/types.d.ts +3 -1
  44. package/lib/table/src/toolbox/index.d.ts +1 -0
  45. package/lib/table/style/index.less +1 -1
  46. package/package.json +1 -1
@@ -320,6 +320,10 @@ declare const _default: {
320
320
  queryNext: string;
321
321
  };
322
322
  };
323
+ pivotGrid: {
324
+ text: string;
325
+ settingTitle: string;
326
+ };
323
327
  };
324
328
  };
325
329
  export default _default;
@@ -1,8 +1,8 @@
1
- /*
2
- * @Author: 焦质晔
3
- * @Date: 2021-06-19 08:46:00
4
- * @Last Modified by: 焦质晔
5
- * @Last Modified time: 2024-07-26 10:21:48
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2021-06-19 08:46:00
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2024-11-28 20:28:15
6
6
  */
7
7
  export default {
8
8
  name: 'en',
@@ -325,6 +325,10 @@ export default {
325
325
  queryPrev: 'Find previous',
326
326
  queryNext: 'Find next'
327
327
  }
328
+ },
329
+ pivotGrid: {
330
+ text: 'Pivot Grid',
331
+ settingTitle: 'Pivot Grid Dashboard'
328
332
  }
329
333
  }
330
334
  };
@@ -320,6 +320,10 @@ declare const _default: {
320
320
  queryNext: string;
321
321
  };
322
322
  };
323
+ pivotGrid: {
324
+ text: string;
325
+ settingTitle: string;
326
+ };
323
327
  };
324
328
  };
325
329
  export default _default;
@@ -1,8 +1,8 @@
1
- /*
2
- * @Author: 焦质晔
3
- * @Date: 2021-06-19 08:45:54
4
- * @Last Modified by: 焦质晔
5
- * @Last Modified time: 2024-07-26 09:00:17
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2021-06-19 08:45:54
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2024-11-28 20:28:06
6
6
  */
7
7
  export default {
8
8
  name: 'zh-cn',
@@ -325,6 +325,10 @@ export default {
325
325
  queryPrev: '查找上一个',
326
326
  queryNext: '查找下一个'
327
327
  }
328
+ },
329
+ pivotGrid: {
330
+ text: '透视表',
331
+ settingTitle: '透视表看板'
328
332
  }
329
333
  }
330
334
  };
@@ -0,0 +1,3 @@
1
+ import PivotGrid from './src/main';
2
+ export type { PivotGridRef, PivotGridProps } from './src/main/types';
3
+ export default PivotGrid;
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ selectionColumnDefine: {
3
+ title: string;
4
+ dataIndex: string;
5
+ width: number;
6
+ };
7
+ indentWidth: number;
8
+ };
9
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const Body: React.FC;
3
+ export default Body;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { IRowKey } from '../../../table/src/table/types';
3
+ import type { ScrollbarRef } from '../../../scrollbar';
4
+ export type IGridLayoutContext = {
5
+ scrollbarRef: React.RefObject<ScrollbarRef>;
6
+ indentDepth: number;
7
+ selectionKeys: IRowKey[];
8
+ countMethod: Record<string, any>;
9
+ };
10
+ type IProps = {
11
+ scrollbar: React.RefObject<ScrollbarRef>;
12
+ children?: React.ReactNode;
13
+ };
14
+ export declare const GridLayoutProvider: React.FC<IProps>;
15
+ export declare const useGridLayoutContext: () => (IGridLayoutContext & {
16
+ setContext: (data: Partial<IGridLayoutContext>) => void;
17
+ setSelectionKeys: (rowKeys: IRowKey[]) => void;
18
+ setCountMethod: (value: IGridLayoutContext[`countMethod`]) => void;
19
+ }) | undefined;
20
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IColumn } from '../../../table/src/table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const CountPanel: React.FC<IProps>;
7
+ export default CountPanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const Footer: React.FC;
3
+ export default Footer;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ type IProps = {
3
+ labelKey: string;
4
+ depth: number;
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ children?: React.ReactNode;
8
+ };
9
+ declare const GroupCard: React.FC<IProps>;
10
+ export default GroupCard;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const Header: React.FC;
3
+ export default Header;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IRecord } from '../../../table/src/table/types';
3
+ type IProps = {
4
+ records: IRecord[];
5
+ };
6
+ declare const List: React.FC<IProps>;
7
+ export default List;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IColumn } from '../../../table/src/table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const ResizeBar: React.FC<IProps>;
7
+ export default ResizeBar;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const Grid: React.FC;
3
+ export default Grid;
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import type { IColumn, IOrderBy, IRecord, ISuperFilter } from '../../../table/src/table/types';
3
+ import type { ComponentSize } from '../../../_utils/types';
4
+ export type IPivotMode = 'table' | 'gantt' | 'card' | 'chart';
5
+ export type GroupItem = {
6
+ fieldName: string;
7
+ order: IOrderBy;
8
+ };
9
+ export type SorterItem = {
10
+ fieldName: string;
11
+ order: IOrderBy;
12
+ };
13
+ export type IPivotGridContext = {
14
+ prefixCls: string;
15
+ viewMode: IPivotMode;
16
+ size: ComponentSize;
17
+ columns: IColumn[];
18
+ tableData: IRecord[];
19
+ groupList: GroupItem[];
20
+ filterList: ISuperFilter[];
21
+ sorterList: SorterItem[];
22
+ expandedKeys: string[];
23
+ };
24
+ type IProps = {
25
+ prefixCls: string;
26
+ flatColumns: IColumn[];
27
+ children?: React.ReactNode;
28
+ };
29
+ export declare const PivotGridProvider: React.FC<IProps>;
30
+ export declare const usePivotGridContext: () => (IPivotGridContext & {
31
+ setContext: (data: Partial<IPivotGridContext>) => void;
32
+ setColumns: (items: IColumn[]) => void;
33
+ setTableData: (records: IRecord[]) => void;
34
+ setGroupList: (items: GroupItem[]) => void;
35
+ setFilterList: (items: ISuperFilter[]) => void;
36
+ setSorterList: (items: SorterItem[]) => void;
37
+ setExpandedKeys: (keys: string[]) => void;
38
+ }) | undefined;
39
+ export {};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const PivotGrid: React.FC;
3
+ export default PivotGrid;
@@ -0,0 +1,8 @@
1
+ import { IColumn, IRecord } from '../../../table/src/table/types';
2
+ export type PivotGridRef = {};
3
+ export type PivotGridProps = {
4
+ columns?: IColumn[];
5
+ tableColumns?: IColumn[];
6
+ dataSource?: IRecord[];
7
+ tableDataSource?: IRecord[];
8
+ };
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const FieldsPanel: React.FC;
3
+ export default FieldsPanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const FilterPanel: React.FC;
3
+ export default FilterPanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const GroupPanel: React.FC;
3
+ export default GroupPanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const LineHeightPanel: React.FC;
3
+ export default LineHeightPanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const SearchPanel: React.FC;
3
+ export default SearchPanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const SorterPanel: React.FC;
3
+ export default SorterPanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ViewMode: React.FC;
3
+ export default ViewMode;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const TopBar: React.FC;
3
+ export default TopBar;
@@ -0,0 +1,2 @@
1
+ import type { IRecord, IOrderBy } from '../../../table/src/table/types';
2
+ export declare const groupMultiData: (records: IRecord[], groupKeys: Record<string, IOrderBy>[] | undefined, fn: (row: IRecord, key: string) => string | number) => any;
@@ -0,0 +1,234 @@
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2022-03-16 19:05:30
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2024-11-29 13:20:19
6
+ */
7
+ @import '../../style/common';
8
+
9
+ .@{prefix-pivot-grid}__layout {
10
+ .reset-container();
11
+ height: 100%;
12
+ .header,
13
+ .footer {
14
+ overflow: hidden;
15
+ background-color: #fff;
16
+ border: 1px solid @--border-color-secondary;
17
+ border-radius: @pivot-border-radius;
18
+ .table {
19
+ table-layout: fixed;
20
+ display: contents;
21
+ thead th,
22
+ tfoot td {
23
+ text-align: left;
24
+ font-weight: normal;
25
+ border-right: 1px solid @--border-color-secondary;
26
+ position: relative;
27
+ &.selection-column {
28
+ text-align: center;
29
+ justify-content: center;
30
+ border-right-color: transparent;
31
+ }
32
+ }
33
+ }
34
+ }
35
+ .header {
36
+ position: sticky;
37
+ top: 0;
38
+ z-index: 1;
39
+ .resize-bar {
40
+ position: absolute;
41
+ top: 0;
42
+ bottom: 0;
43
+ right: -3px;
44
+ width: 6px;
45
+ z-index: 2;
46
+ cursor: col-resize;
47
+ }
48
+ }
49
+ .body {
50
+ min-height: fit-content;
51
+ .group-card {
52
+ margin: 15px 0;
53
+ border: 1px solid @--border-color-secondary;
54
+ border-radius: @pivot-border-radius;
55
+ background-color: #fff;
56
+ &.inner {
57
+ margin: 0 12px 12px;
58
+ }
59
+ &:has(.inner) > .label-row > .label-cell {
60
+ border-bottom: 0;
61
+ }
62
+ .label-row {
63
+ display: flex;
64
+ align-items: center;
65
+ .label-cell {
66
+ align-self: stretch;
67
+ display: inline-flex;
68
+ align-items: center;
69
+ border-bottom: 1px solid @--border-color-secondary;
70
+ &.expandable-column {
71
+ justify-content: center;
72
+ .button-icon {
73
+ & > .anticon {
74
+ transition: transform 0.3s ease;
75
+ }
76
+ &.expand > .anticon {
77
+ transform: rotate(90deg);
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ .grid-list {
84
+ margin: 0;
85
+ border: 0;
86
+ border-radius: 0;
87
+ background: transparent;
88
+ }
89
+ }
90
+ .grid-list {
91
+ margin: 15px 0;
92
+ border: 1px solid @--border-color-secondary;
93
+ border-radius: @pivot-border-radius;
94
+ background-color: #fff;
95
+ .table-row {
96
+ display: flex;
97
+ align-items: center;
98
+ &:hover {
99
+ background-color: @--background-color-light;
100
+ .table-cell {
101
+ .order {
102
+ display: none;
103
+ }
104
+ .checkbox {
105
+ display: inline-flex;
106
+ }
107
+ }
108
+ }
109
+ &.row--selection {
110
+ background-color: @--primary-1;
111
+ .table-cell {
112
+ .order {
113
+ display: none;
114
+ }
115
+ .checkbox {
116
+ display: inline-flex;
117
+ }
118
+ }
119
+ }
120
+ .table-cell {
121
+ align-self: stretch; // 子元素高度和父元素一致
122
+ display: inline-flex;
123
+ align-items: center;
124
+ border-right: 1px solid @--border-color-secondary;
125
+ border-bottom: 1px solid @--border-color-secondary;
126
+ &:last-child {
127
+ border-right: 0;
128
+ }
129
+ &.selection-column {
130
+ justify-content: center;
131
+ border-right-color: transparent;
132
+ }
133
+ .order {
134
+ display: inline-block;
135
+ }
136
+ .checkbox {
137
+ display: none;
138
+ }
139
+ }
140
+ &:last-child {
141
+ .table-cell {
142
+ border-bottom: 0;
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ .footer {
149
+ position: sticky;
150
+ bottom: 0;
151
+ z-index: 1;
152
+ }
153
+ .header,
154
+ .body,
155
+ .footer {
156
+ .table-cell {
157
+ &.col--center {
158
+ text-align: center !important;
159
+ justify-content: center;
160
+ }
161
+ &.col--right {
162
+ text-align: right !important;
163
+ justify-content: flex-end;
164
+ }
165
+ .cell {
166
+ .text-overflow-cut();
167
+ padding: 0 @--padding-sm;
168
+ }
169
+ &:hover {
170
+ .count-select {
171
+ visibility: visible;
172
+ }
173
+ }
174
+ }
175
+ .count-select {
176
+ .text-overflow-cut();
177
+ display: inline-flex;
178
+ align-items: center;
179
+ justify-content: flex-end;
180
+ height: 100%;
181
+ width: 100%;
182
+ padding: 0 @--padding-sm;
183
+ color: @--text-color-placeholder;
184
+ cursor: pointer;
185
+ visibility: hidden;
186
+ &:hover,
187
+ &.ant-dropdown-open {
188
+ visibility: visible;
189
+ background-color: @--background-color-light;
190
+ }
191
+ &.show {
192
+ visibility: visible;
193
+ }
194
+ .icon {
195
+ margin-left: 4px;
196
+ }
197
+ }
198
+ }
199
+ .resize-line {
200
+ position: absolute;
201
+ left: -2px;
202
+ top: 0;
203
+ width: 2px;
204
+ height: 100%;
205
+ background-color: @--primary-color;
206
+ cursor: col-resize;
207
+ z-index: 2;
208
+ }
209
+ // size
210
+ &.small {
211
+ .header .table th,
212
+ .footer .table td,
213
+ .body .grid-list > li,
214
+ .body .group-card > li {
215
+ height: 26px;
216
+ }
217
+ }
218
+ &.middle {
219
+ .header .table th,
220
+ .footer .table td,
221
+ .body .grid-list > li,
222
+ .body .group-card > li {
223
+ height: 34px;
224
+ }
225
+ }
226
+ &.large {
227
+ .header .table th,
228
+ .footer .table td,
229
+ .body .grid-list > li,
230
+ .body .group-card > li {
231
+ height: 42px;
232
+ }
233
+ }
234
+ }
@@ -0,0 +1,10 @@
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2024-11-28 19:27:58
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2024-11-28 20:04:56
6
+ */
7
+ @import './variable.less';
8
+ @import './main.less';
9
+ @import './top-bar.less';
10
+ @import './grid-layout.less';
@@ -0,0 +1,43 @@
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2022-03-16 19:05:30
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2024-11-29 10:33:42
6
+ */
7
+ @import '../../style/common';
8
+
9
+ .@{prefix-pivot-grid}__main {
10
+ height: 100%;
11
+ display: flex;
12
+ flex-direction: column;
13
+ .top-bar {
14
+ padding: @--padding-sm;
15
+ border-bottom: 1px solid @--border-color-secondary;
16
+ .action-btn {
17
+ display: inline-flex;
18
+ align-items: center;
19
+ padding: 5px 12px;
20
+ border-radius: @--border-radius-lg;
21
+ cursor: pointer;
22
+ transition: all 0.3s ease;
23
+ &:hover,
24
+ &.active,
25
+ &.ant-dropdown-open {
26
+ background-color: @--background-color;
27
+ }
28
+ .icon {
29
+ margin-right: 6px;
30
+ }
31
+ }
32
+ .ant-divider-vertical {
33
+ margin: 0;
34
+ height: 1.25em;
35
+ }
36
+ }
37
+ .wrapper {
38
+ flex: auto;
39
+ height: 0;
40
+ padding: @--padding-md;
41
+ background-color: @--background-color-light;
42
+ }
43
+ }
@@ -0,0 +1,105 @@
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2022-03-16 19:05:30
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2024-11-29 10:34:35
6
+ */
7
+ @import '../../style/common';
8
+
9
+ .button-icon {
10
+ display: inline-block;
11
+ text-align: center;
12
+ text-transform: none;
13
+ text-decoration: none;
14
+ background: transparent;
15
+ border: 0;
16
+ outline: 0;
17
+ line-height: 0;
18
+ padding: 5px;
19
+ color: @--text-color-placeholder;
20
+ border-radius: @--border-radius-lg;
21
+ transition: background-color 0.3s ease;
22
+ cursor: pointer;
23
+ &:not(.no-hover-bg):hover {
24
+ background-color: @--background-color;
25
+ }
26
+ }
27
+
28
+ .@{prefix-pivot-grid}__popper {
29
+ .container {
30
+ padding: 6px 15px;
31
+ & > .label {
32
+ display: flex;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+ padding: 4px 0;
36
+ }
37
+ & > .list {
38
+ li.item {
39
+ display: flex;
40
+ align-items: center;
41
+ margin: 6px 0;
42
+ .icon {
43
+ padding: 6px 2px;
44
+ color: @--text-color-placeholder;
45
+ cursor: pointer;
46
+ }
47
+ .close {
48
+ margin-left: @--margin-sm;
49
+ font-size: @--font-size-lg;
50
+ padding: @--padding-sm;
51
+ border-radius: @--border-radius-lg;
52
+ transition: all 0.3s ease;
53
+ &:hover {
54
+ background-color: @--background-color;
55
+ }
56
+ }
57
+ }
58
+ li.check-item {
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ border-radius: @--border-radius-lg;
63
+ &.active {
64
+ .icon {
65
+ display: block;
66
+ }
67
+ }
68
+ .icon {
69
+ color: @--primary-color;
70
+ display: none;
71
+ }
72
+ }
73
+ }
74
+ & > .add-record {
75
+ display: flex;
76
+ justify-content: space-between;
77
+ align-items: center;
78
+ padding: @--margin-md 0 4px;
79
+ .insert {
80
+ color: @--primary-4;
81
+ cursor: pointer;
82
+ .icon {
83
+ margin-right: 4px;
84
+ }
85
+ }
86
+ }
87
+ & > .search {
88
+ .search-switch {
89
+ display: inline-flex;
90
+ align-items: center;
91
+ margin-right: -7px;
92
+ &.disabled {
93
+ .btn {
94
+ pointer-events: none;
95
+ }
96
+ }
97
+ .num {
98
+ margin: 0 4px;
99
+ color: @--text-color-placeholder;
100
+ line-height: 1;
101
+ }
102
+ }
103
+ }
104
+ }
105
+ }
@@ -0,0 +1,9 @@
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2020-02-28 21:58:58
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2024-11-28 20:04:56
6
+ */
7
+ @prefix-pivot-grid: ~'@{qm-prefix}-pivot-grid';
8
+
9
+ @pivot-border-radius: 6px;