es-grid-template 1.9.0 → 1.9.10
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/es/ali-table/Grid.d.ts +1 -1
- package/es/ali-table/Grid.js +7 -4
- package/es/ali-table/InternalTable.d.ts +1 -1
- package/es/ali-table/InternalTable.js +28 -8
- package/es/ali-table/base-table/styles.js +1 -1
- package/es/ali-table/common-views.js +1 -1
- package/es/ali-table/pipeline/features/ColumnsChoose.js +4 -3
- package/es/ali-table/pipeline/features/columnCustom.d.ts +11 -2
- package/es/ali-table/pipeline/features/columnCustom.js +27 -8
- package/es/ali-table/pipeline/features/treeMode.d.ts +1 -0
- package/es/ali-table/pipeline/features/treeMode.js +8 -1
- package/es/ali-table/pipeline/features/treeSelect.js +1 -1
- package/es/ali-table/utils/convertColumnsChoose.d.ts +1 -1
- package/es/ali-table/utils/convertColumnsChoose.js +2 -0
- package/es/grid-component/TempTable.d.ts +1 -1
- package/es/grid-component/type.d.ts +3 -0
- package/es/group-component/hook/utils.d.ts +4 -3
- package/es/table-component/index.d.ts +0 -2
- package/es/table-component/index.js +4 -0
- package/lib/ali-table/Grid.d.ts +1 -1
- package/lib/ali-table/Grid.js +8 -4
- package/lib/ali-table/InternalTable.d.ts +1 -1
- package/lib/ali-table/InternalTable.js +27 -7
- package/lib/ali-table/base-table/styles.js +1 -1
- package/lib/ali-table/common-views.js +1 -1
- package/lib/ali-table/pipeline/features/ColumnsChoose.js +4 -3
- package/lib/ali-table/pipeline/features/columnCustom.d.ts +11 -2
- package/lib/ali-table/pipeline/features/columnCustom.js +27 -8
- package/lib/ali-table/pipeline/features/treeMode.d.ts +1 -0
- package/lib/ali-table/pipeline/features/treeMode.js +8 -1
- package/lib/ali-table/utils/convertColumnsChoose.d.ts +1 -1
- package/lib/ali-table/utils/convertColumnsChoose.js +2 -0
- package/lib/grid-component/TempTable.d.ts +1 -1
- package/lib/grid-component/type.d.ts +3 -0
- package/lib/group-component/hook/utils.d.ts +1 -0
- package/lib/table-component/index.d.ts +0 -2
- package/lib/table-component/index.js +2 -0
- package/package.json +1 -1
package/es/ali-table/Grid.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import type { TablePipeline } from "./pipeline";
|
|
|
2
2
|
import type { Dispatch, SetStateAction } from "react";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import './base-table/styles.scss';
|
|
5
|
-
import type { TableProps } from "../table-component";
|
|
6
5
|
import type { BaseTable } from "./base-table/table";
|
|
7
6
|
import type { VirtualEnum } from "./base-table/interfaces";
|
|
7
|
+
import type { TableProps } from "../grid-component";
|
|
8
8
|
declare const Grid: React.ForwardRefExoticComponent<Omit<TableProps, "useVirtual"> & {
|
|
9
9
|
isFullScreen: boolean;
|
|
10
10
|
setIsFullScreen: Dispatch<SetStateAction<boolean>>;
|
package/es/ali-table/Grid.js
CHANGED
|
@@ -4,6 +4,7 @@ import { useLocale } from "rc-master-ui/es/locale";
|
|
|
4
4
|
import React, { useContext } from "react";
|
|
5
5
|
import { Tooltip } from "react-tooltip";
|
|
6
6
|
import "./base-table/styles.scss";
|
|
7
|
+
// import type { TableProps } from "../table-component"
|
|
7
8
|
import { Toolbar } from 'rc-master-ui';
|
|
8
9
|
import classNames from "classnames";
|
|
9
10
|
import Pagination from "rc-master-ui/es/pagination";
|
|
@@ -50,7 +51,8 @@ const Grid = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
50
51
|
setVisibleKeys,
|
|
51
52
|
footerDataSource,
|
|
52
53
|
loading,
|
|
53
|
-
useVirtual
|
|
54
|
+
useVirtual,
|
|
55
|
+
useOuterBorder = true
|
|
54
56
|
|
|
55
57
|
// onRowFooterStyles,
|
|
56
58
|
// onRowHeaderStyles
|
|
@@ -143,12 +145,13 @@ const Grid = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
143
145
|
setVisibleKeys(nextVisibleKeys);
|
|
144
146
|
};
|
|
145
147
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
146
|
-
className: classNames(`${prefix}-grid
|
|
148
|
+
className: classNames(`${prefix}-grid`, {
|
|
149
|
+
[tableClassNames]: !!tableClassNames,
|
|
147
150
|
[`${prefix}-grid-light`]: !theme || theme.theme === 'light',
|
|
148
151
|
[`${prefix}-grid-dark`]: theme?.theme === 'dark'
|
|
149
152
|
}),
|
|
150
153
|
style: {
|
|
151
|
-
|
|
154
|
+
maxHeight: height ?? 700,
|
|
152
155
|
minHeight,
|
|
153
156
|
display: 'flex',
|
|
154
157
|
flexDirection: 'column'
|
|
@@ -228,7 +231,7 @@ const Grid = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
228
231
|
|
|
229
232
|
// estimatedRowHeight={50}
|
|
230
233
|
,
|
|
231
|
-
useOuterBorder:
|
|
234
|
+
useOuterBorder: useOuterBorder
|
|
232
235
|
// style={{ height: 700, overflow: 'auto' }}
|
|
233
236
|
,
|
|
234
237
|
style: minHeight ? {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import './base-table/styles.scss';
|
|
3
|
-
import type { TableProps } from "../
|
|
3
|
+
import type { TableProps } from "../grid-component/type";
|
|
4
4
|
declare const InternalTable: <RecordType extends object>(props: TableProps<RecordType>) => React.JSX.Element;
|
|
5
5
|
export default InternalTable;
|
|
@@ -5,7 +5,7 @@ import { useLocale } from "rc-master-ui/es/locale";
|
|
|
5
5
|
import { faker } from "@faker-js/faker";
|
|
6
6
|
import React from "react";
|
|
7
7
|
import "./base-table/styles.scss";
|
|
8
|
-
import { addRowIdArray, filterDataByColumns, groupArrayByColumns, isTreeArray, sortByType, sumFields } from "../table-component/hook/utils";
|
|
8
|
+
import { addRowIdArray, filterDataByColumns, groupArrayByColumns, isTreeArray, revertConvertFilters, sortByType, sumFields } from "../table-component/hook/utils";
|
|
9
9
|
import { CustomProvider, ConfigProvider } from 'rc-master-ui';
|
|
10
10
|
import { Modal } from 'antd';
|
|
11
11
|
import { getLocale, getLocales } from "../locale/useLocale";
|
|
@@ -33,7 +33,9 @@ const InternalTable = props => {
|
|
|
33
33
|
expandable,
|
|
34
34
|
sortMultiple,
|
|
35
35
|
onFilter,
|
|
36
|
+
defaultFilter,
|
|
36
37
|
onSorter,
|
|
38
|
+
defaultSorter,
|
|
37
39
|
footerDataSource,
|
|
38
40
|
summary,
|
|
39
41
|
useVirtual,
|
|
@@ -88,11 +90,12 @@ const InternalTable = props => {
|
|
|
88
90
|
return isTreeArray(convertData);
|
|
89
91
|
}, [convertData]);
|
|
90
92
|
const mergedData = React.useMemo(() => {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
const shouldSkip = onFilter && onSorter;
|
|
94
|
+
if (shouldSkip) {
|
|
95
|
+
return convertData;
|
|
93
96
|
}
|
|
94
|
-
return convertData;
|
|
95
|
-
}, [convertData, filterState, ignoreAccents, sortState]);
|
|
97
|
+
return filterDataByColumns(convertData, onFilter ? undefined : filterState ?? defaultFilter, onSorter ? undefined : sortState ?? defaultSorter, [], ignoreAccents);
|
|
98
|
+
}, [convertData, filterState, ignoreAccents, sortState, onFilter, onSorter, defaultFilter, defaultSorter]);
|
|
96
99
|
const footerData = React.useMemo(() => {
|
|
97
100
|
if (!summary) {
|
|
98
101
|
return undefined;
|
|
@@ -110,6 +113,12 @@ const InternalTable = props => {
|
|
|
110
113
|
return undefined;
|
|
111
114
|
}, [expandable?.defaultExpandAllRows, convertData, isDataTree]);
|
|
112
115
|
const [isFullScreen, setIsFullScreen] = React.useState(false);
|
|
116
|
+
const defaultFilterConvert = React.useMemo(() => {
|
|
117
|
+
if (defaultFilter) {
|
|
118
|
+
return revertConvertFilters(defaultFilter);
|
|
119
|
+
}
|
|
120
|
+
return undefined;
|
|
121
|
+
}, [defaultFilter]);
|
|
113
122
|
const pipeline = useTablePipeline({
|
|
114
123
|
components: fusion
|
|
115
124
|
}).input({
|
|
@@ -158,7 +167,8 @@ const InternalTable = props => {
|
|
|
158
167
|
clickArea: 'icon',
|
|
159
168
|
stopClickEventPropagation: true,
|
|
160
169
|
expandIconColumnIndex: expandable?.expandIconColumnIndex,
|
|
161
|
-
defaultOpenKeys: expandAllKeys ?? expandable?.defaultExpandedRowKeys
|
|
170
|
+
defaultOpenKeys: expandAllKeys ?? expandable?.defaultExpandedRowKeys,
|
|
171
|
+
isTreeArray: !!isDataTree
|
|
162
172
|
})).use(features.columnCustom({
|
|
163
173
|
id,
|
|
164
174
|
t,
|
|
@@ -177,6 +187,8 @@ const InternalTable = props => {
|
|
|
177
187
|
currentPage: pagination ? pagination?.currentPage : undefined,
|
|
178
188
|
pageSize: pagination ? pagination?.pageSize : undefined,
|
|
179
189
|
isDataTree,
|
|
190
|
+
defaultFilter: defaultFilterConvert,
|
|
191
|
+
defaultSorter,
|
|
180
192
|
onFilter(val) {
|
|
181
193
|
// const rs =
|
|
182
194
|
|
|
@@ -232,7 +244,11 @@ const InternalTable = props => {
|
|
|
232
244
|
originColumns: columns,
|
|
233
245
|
groupColumns: groupColumns,
|
|
234
246
|
setVisibleKeys: setVisibleKeys,
|
|
235
|
-
footerDataSource: footerData
|
|
247
|
+
footerDataSource: footerData,
|
|
248
|
+
onFilter: onFilter,
|
|
249
|
+
onSorter: onSorter,
|
|
250
|
+
defaultFilter: defaultFilter,
|
|
251
|
+
defaultSorter: defaultSorter
|
|
236
252
|
})), /*#__PURE__*/React.createElement(Modal, {
|
|
237
253
|
open: isFullScreen,
|
|
238
254
|
footer: null,
|
|
@@ -278,7 +294,11 @@ const InternalTable = props => {
|
|
|
278
294
|
originColumns: columns,
|
|
279
295
|
groupColumns: groupColumns,
|
|
280
296
|
setVisibleKeys: setVisibleKeys,
|
|
281
|
-
footerDataSource: footerData
|
|
297
|
+
footerDataSource: footerData,
|
|
298
|
+
onFilter: onFilter,
|
|
299
|
+
onSorter: onSorter,
|
|
300
|
+
defaultFilter: defaultFilter,
|
|
301
|
+
defaultSorter: defaultSorter
|
|
282
302
|
})))))));
|
|
283
303
|
};
|
|
284
304
|
export default InternalTable;
|
|
@@ -48,4 +48,4 @@ const outerBorderStyleMixin = css(["border-top:var(--cell-border-horizontal);bor
|
|
|
48
48
|
export const StyledArtTableWrapper = styled.div.withConfig({
|
|
49
49
|
displayName: "StyledArtTableWrapper",
|
|
50
50
|
componentId: "es-grid-template__sc-ipj1ht-0"
|
|
51
|
-
})(["--row-height:38px;--color:#333;--bgcolor:white;--hover-bgcolor:var(--hover-color,#f5f5f5);--highlight-bgcolor:#eee;--header-row-height:36px;--header-color:#000000de;--header-bgcolor:#ffffff;--header-hover-bgcolor:#ddd;--header-highlight-bgcolor:#e4e8ed;--cell-padding:7px 8px;--font-size:13px;--line-height:1.28571;--lock-shadow:rgba(152,152,152,0.5) 0 0 6px 2px;--border-color:#dfe3e8;--cell-border:1px solid var(--border-color);--cell-border-horizontal:var(--cell-border);--cell-border-vertical:var(--cell-border);--header-cell-border:1px solid var(--border-color);--header-cell-border-horizontal:var(--header-cell-border);--header-cell-border-vertical:var(--header-cell-border);--footer-bgColor:#fafafa;box-sizing:border-box;*{box-sizing:border-box;}cursor:default;color:var(--color);font-size:var(--font-size);line-height:var(--line-height);position:relative;overflow-anchor:none;&.use-outer-border{", ";}.no-scrollbar{scrollbar-width:none;::-webkit-scrollbar{display:none;}}.", "{overflow-x:auto;overflow-y:hidden;background:var(--header-bgcolor);.ui-rc-table-column-title{flex:1;min-width:0;text-align:start;}.", "{font-weight:500;.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}.", "{width:100%;white-space:normal;word-break:break-word;}.", "{text-align:center;}.", "{text-align:right;}}}.", "{.", "{&.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}&.", "{width:100%;white-space:normal;word-break:break-word;}&.", "{text-align:center;}&.", "{text-align:right;}}}.", ",.", "{overflow-x:auto;overflow-y:hidden;background:var(--bgcolor);}&.sticky-header .", "{position:sticky;top:0;z-index:", ";}&.sticky-footer .", "{position:sticky;bottom:0;z-index:", ";}.", "{tr{td{&.lock-left,&.lock-right{border-bottom-width:0;box-shadow:0 -1px 0 0 var(--border-color),0 1px 0 0 var(--border-color),-1px 0 0 0 var(--border-color);}}}}table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;display:table;margin:0;padding:0;}tr:not(.no-hover):hover > td{background:var(--hover-bgcolor);}tr:not(.no-highlight).highlight > td{background:var(--highlight-bgcolor);}th{font-weight:normal;text-align:left;padding:var(--cell-padding);height:var(--header-row-height);color:var(--header-color);background:var(--header-bgcolor);border:none;border-right:var(--header-cell-border-vertical);border-bottom:var(--header-cell-border-horizontal);}tr.first th{border-top:var(--header-cell-border-horizontal);}th.first{border-left:var(--header-cell-border-vertical);}td{padding:var(--cell-padding);background:var(--bgcolor);height:var(--row-height);border:none;border-right:var(--cell-border-vertical);border-bottom:var(--cell-border-horizontal);}td.first{border-left:var(--cell-border-vertical);}tr.first td{border-top:var(--cell-border-horizontal);}&.has-header tbody tr.first td{border-top:none;}&.has-footer tbody tr.last td{border-bottom:none;}.lock-left,.lock-right{z-index:", ";}.resize-handle{width:6px;height:100%;position:absolute;top:0;right:0;cursor:col-resize;background-color:transparent;border-right:2px solid transparent}.", "{position:absolute;top:0;bottom:0;z-index:", ";pointer-events:none;overflow:hidden;.", "{height:100%;}.", "{margin-right:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-right:var(--cell-border-vertical);}}.", "{margin-left:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-left:var(--cell-border-vertical);}}}.", "{pointer-events:none;color:#99a3b3;font-size:12px;text-align:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);.empty-image{width:50px;height:50px;}.empty-tips{margin-top:16px;line-height:1.5;}}.", "{overflow:auto;position:sticky;bottom:0;z-index:", ";margin-top:-17px;}.ui-rc-grid-loading-wrapper{}.ui-rc-grid-table{}.art-loading-content-wrapper{}.", "{height:1px;visibility:hidden;}.", "{position:relative;.", "{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;}.", "{position:sticky;z-index:", ";transform:translateY(-50%);}}"], outerBorderStyleMixin, Classes.tableHeader, Classes.tableHeaderCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.tableBody, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator);
|
|
51
|
+
})(["--row-height:38px;--color:#333;--bgcolor:white;--hover-bgcolor:var(--hover-color,#f5f5f5);--highlight-bgcolor:#eee;--header-row-height:36px;--header-color:#000000de;--header-bgcolor:#ffffff;--header-hover-bgcolor:#ddd;--header-highlight-bgcolor:#e4e8ed;--cell-padding:7px 8px;--font-size:13px;--line-height:1.28571;--lock-shadow:rgba(152,152,152,0.5) 0 0 6px 2px;--border-color:#dfe3e8;--cell-border:1px solid var(--border-color);--cell-border-horizontal:var(--cell-border);--cell-border-vertical:var(--cell-border);--header-cell-border:1px solid var(--border-color);--header-cell-border-horizontal:var(--header-cell-border);--header-cell-border-vertical:var(--header-cell-border);--footer-bgColor:#fafafa;box-sizing:border-box;*{box-sizing:border-box;}cursor:default;color:var(--color);font-size:var(--font-size);line-height:var(--line-height);position:relative;overflow-anchor:none;&.use-outer-border{", ";}.no-scrollbar{scrollbar-width:none;::-webkit-scrollbar{display:none;}}.", "{overflow-x:auto;overflow-y:hidden;background:var(--header-bgcolor);.ui-rc-table-column-title{flex:1;min-width:0;text-align:start;}.", "{font-weight:500;.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}.", "{width:100%;white-space:normal;word-break:break-word;}.", "{text-align:center;}.", "{text-align:right;}}}.", "{.", "{&.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;.expansion-cell{.expansion-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}}&.", "{width:100%;white-space:normal;word-break:break-word;}&.", "{text-align:center;}&.", "{text-align:right;}}}.", ",.", "{overflow-x:auto;overflow-y:hidden;background:var(--bgcolor);}&.sticky-header .", "{position:sticky;top:0;z-index:", ";}&.sticky-footer .", "{position:sticky;bottom:0;z-index:", ";}.", "{tr{td{&.lock-left,&.lock-right{border-bottom-width:0;box-shadow:0 -1px 0 0 var(--border-color),0 1px 0 0 var(--border-color),-1px 0 0 0 var(--border-color);}}}}table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;display:table;margin:0;padding:0;}tr:not(.no-hover):hover > td{background:var(--hover-bgcolor);}tr:not(.no-highlight).highlight > td{background:var(--highlight-bgcolor);}th{font-weight:normal;text-align:left;padding:var(--cell-padding);height:var(--header-row-height);color:var(--header-color);background:var(--header-bgcolor);border:none;border-right:var(--header-cell-border-vertical);border-bottom:var(--header-cell-border-horizontal);}tr.first th{border-top:var(--header-cell-border-horizontal);}th.first{border-left:var(--header-cell-border-vertical);}td{padding:var(--cell-padding);background:var(--bgcolor);height:var(--row-height);border:none;border-right:var(--cell-border-vertical);border-bottom:var(--cell-border-horizontal);}td.first{border-left:var(--cell-border-vertical);}tr.first td{border-top:var(--cell-border-horizontal);}&.has-header tbody tr.first td{border-top:none;}&.has-footer tbody tr.last td{border-bottom:none;}.lock-left,.lock-right{z-index:", ";}.resize-handle{width:6px;height:100%;position:absolute;top:0;right:0;cursor:col-resize;background-color:transparent;border-right:2px solid transparent}.", "{position:absolute;top:0;bottom:0;z-index:", ";pointer-events:none;overflow:hidden;.", "{height:100%;}.", "{margin-right:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-right:var(--cell-border-vertical);}}.", "{margin-left:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-left:var(--cell-border-vertical);}}}.", "{pointer-events:none;color:#99a3b3;font-size:12px;text-align:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);.empty-image{width:50px;height:50px;}.empty-tips{margin-top:16px;line-height:1.5;}}.", "{overflow:auto;position:sticky;bottom:0;z-index:", ";margin-top:-17px;}.ui-rc-grid-loading-wrapper{}.ui-rc-grid-table{}.art-loading-content-wrapper{}.", "{height:1px;visibility:hidden;}.", "{position:relative;.", "{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;}.", "{position:sticky;z-index:", ";transform:translateY(-50%);}}"], outerBorderStyleMixin, Classes.tableHeader, Classes.tableHeaderCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.tableBody, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator);
|
|
@@ -4,7 +4,7 @@ import styled from 'styled-components';
|
|
|
4
4
|
export const InlineFlexCell = styled.div.withConfig({
|
|
5
5
|
displayName: "InlineFlexCell",
|
|
6
6
|
componentId: "es-grid-template__sc-1o0on5d-0"
|
|
7
|
-
})(["display:
|
|
7
|
+
})(["display:flex;align-items:center;"]);
|
|
8
8
|
export const ExpansionCell = styled(InlineFlexCell).withConfig({
|
|
9
9
|
displayName: "ExpansionCell",
|
|
10
10
|
componentId: "es-grid-template__sc-1o0on5d-1"
|
|
@@ -33,11 +33,12 @@ export const ColumnsChoose = props => {
|
|
|
33
33
|
const defaultSelectedKeys = React.useMemo(() => {
|
|
34
34
|
const colsVisiables = originColumns.filter(it => it.showInColumnChoose !== false && it.visible !== false);
|
|
35
35
|
const colsKeys = colsVisiables.map(it => it.field);
|
|
36
|
-
|
|
37
|
-
// const aa = Object.keys(columnHidden)
|
|
38
|
-
|
|
39
36
|
return colsKeys.filter(it => !columnsGroup?.includes(it));
|
|
40
37
|
}, [columnsGroup, originColumns]);
|
|
38
|
+
|
|
39
|
+
// console.log('defaultSelectedKeys', defaultSelectedKeys)
|
|
40
|
+
// console.log('originColumns', originColumns)
|
|
41
|
+
|
|
41
42
|
const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(defaultSelectedKeys && defaultSelectedKeys.length ? defaultSelectedKeys : undefined, {
|
|
42
43
|
value: undefined
|
|
43
44
|
});
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import type { TablePipeline } from '../pipeline';
|
|
2
2
|
import type { ColumnResizeMode } from '../../base-table/table';
|
|
3
|
-
import type { SortOrder } from '../../interfaces';
|
|
3
|
+
import type { ArtColumn, SortOrder } from '../../interfaces';
|
|
4
4
|
import type { FilterItem, IFormat, IWrapSettings, Sorter, SourceFilter } from '../../../grid-component/type';
|
|
5
|
+
type FilterState = {
|
|
6
|
+
field: any;
|
|
7
|
+
key: any;
|
|
8
|
+
column: ArtColumn;
|
|
9
|
+
filteredKeys: any[];
|
|
10
|
+
operator: string | undefined;
|
|
11
|
+
};
|
|
5
12
|
export interface ColumnFeatureOptions {
|
|
6
13
|
id: any;
|
|
7
14
|
columns: any[];
|
|
@@ -39,7 +46,8 @@ export interface ColumnFeatureOptions {
|
|
|
39
46
|
dataSourceFilter?: SourceFilter[];
|
|
40
47
|
ignoreAccents?: boolean;
|
|
41
48
|
onFilter?: (filterState: FilterItem[]) => void;
|
|
42
|
-
|
|
49
|
+
defaultFilter?: FilterState[];
|
|
50
|
+
defaultSorter?: Sorter[];
|
|
43
51
|
mode?: 'single' | 'multiple';
|
|
44
52
|
keepDataSource?: boolean;
|
|
45
53
|
orders?: SortOrder[];
|
|
@@ -49,3 +57,4 @@ export interface ColumnFeatureOptions {
|
|
|
49
57
|
pageSize?: number;
|
|
50
58
|
}
|
|
51
59
|
export declare function columnCustom(opts: ColumnFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
60
|
+
export {};
|
|
@@ -41,7 +41,10 @@ export function columnCustom(opts) {
|
|
|
41
41
|
wrapSettings,
|
|
42
42
|
// ignoreAccents,
|
|
43
43
|
dataSource,
|
|
44
|
-
isDataTree
|
|
44
|
+
isDataTree,
|
|
45
|
+
defaultSorter,
|
|
46
|
+
defaultFilter
|
|
47
|
+
|
|
45
48
|
// currentPage = 1,
|
|
46
49
|
// pageSize
|
|
47
50
|
} = opts;
|
|
@@ -52,7 +55,7 @@ export function columnCustom(opts) {
|
|
|
52
55
|
} = opts;
|
|
53
56
|
return function columnResizeFeature(pipeline) {
|
|
54
57
|
const sizes = opts.sizes ?? pipeline.getStateAtKey(stateKeyResize) ?? opts.defaultSizes ?? [];
|
|
55
|
-
const filterState = pipeline.getStateAtKey(stateKeyFilter) ?? [];
|
|
58
|
+
const filterState = pipeline.getStateAtKey(stateKeyFilter) ?? defaultFilter ?? [];
|
|
56
59
|
const visible = pipeline.getStateAtKey(stateKeyVisible) ?? '';
|
|
57
60
|
const isOpenTooltip = pipeline.getStateAtKey(stateKeyTooltip) ?? false;
|
|
58
61
|
const pageSize = opts?.pageSize ?? pipeline.getStateAtKey(stateKey)?.pageSize ?? pageSizeOptions[0];
|
|
@@ -67,7 +70,7 @@ export function columnCustom(opts) {
|
|
|
67
70
|
// const fieldOriginal = fieldOriginalKey ? columns.find((it) => it.field === fieldOriginalKey) : undefined
|
|
68
71
|
|
|
69
72
|
// const sorterStates = pipeline.getStateAtKey(stateKeySorter) ?? []
|
|
70
|
-
const sorterStates = pipeline.getStateAtKey(stateKeySorter) ??
|
|
73
|
+
const sorterStates = pipeline.getStateAtKey(stateKeySorter) ?? defaultSorter ?? [];
|
|
71
74
|
const activeSorts = sorterStates.filter(s => s.order !== 'none');
|
|
72
75
|
const sorts = mode === 'multiple' ? activeSorts : activeSorts.slice(0, 1);
|
|
73
76
|
const leafColumns = collectNodes(pipeline.getColumns(), 'leaf-only');
|
|
@@ -119,9 +122,10 @@ export function columnCustom(opts) {
|
|
|
119
122
|
const onVisibleChange = (newVisible, info, column) => {
|
|
120
123
|
if (info.source === 'trigger') {
|
|
121
124
|
if (newVisible) {
|
|
122
|
-
const
|
|
125
|
+
const defaultFilterOption = defaultFilter?.find(it => it.field === column.field);
|
|
126
|
+
const filterValue = filterColumnState.filteredKeys === null ? [] : filterColumnState.filteredKeys ?? defaultFilterOption?.filteredKeys ?? [];
|
|
123
127
|
const operator = filterColumnState.operator;
|
|
124
|
-
const operatorValue = operator ?? getDefaultOperator(column);
|
|
128
|
+
const operatorValue = operator ?? defaultFilterOption?.operator ?? getDefaultOperator(column);
|
|
125
129
|
pipeline.setStateAtKey(stateKeyColumnFilter, {
|
|
126
130
|
operator: operatorValue,
|
|
127
131
|
filteredKeys: filterValue,
|
|
@@ -193,8 +197,20 @@ export function columnCustom(opts) {
|
|
|
193
197
|
// xóa column đang filter trong filterState
|
|
194
198
|
|
|
195
199
|
const newFilterState = filterState.filter(it => it.field !== filterColumnState.field);
|
|
196
|
-
|
|
197
|
-
|
|
200
|
+
const currentFilter = {
|
|
201
|
+
field: filterColumnState.field,
|
|
202
|
+
key: filterColumnState.field,
|
|
203
|
+
column: filterColumnState.column,
|
|
204
|
+
filteredKeys: null,
|
|
205
|
+
operator: filterColumnState.operator ?? undefined
|
|
206
|
+
};
|
|
207
|
+
const rs = updateArrayByKey(filterState, currentFilter, 'field');
|
|
208
|
+
pipeline.setStateAtKey(stateKeyColumnFilter, {
|
|
209
|
+
...currentFilter
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
// pipeline.setStateAtKey(stateKeyFilter, [...newFilterState])
|
|
213
|
+
pipeline.setStateAtKey(stateKeyFilter, rs);
|
|
198
214
|
if (onFilter) {
|
|
199
215
|
onFilter(convertFilters([...newFilterState]));
|
|
200
216
|
} else {
|
|
@@ -242,7 +258,10 @@ export function columnCustom(opts) {
|
|
|
242
258
|
const {
|
|
243
259
|
order
|
|
244
260
|
} = isSorted && sortMap.get(col.field);
|
|
245
|
-
const
|
|
261
|
+
const find = filterState.find(it => it.field === col.field);
|
|
262
|
+
|
|
263
|
+
// const filtered = !!filterState.find((it) => it.field === col.field)
|
|
264
|
+
const filtered = !!find && find.filteredKeys !== null;
|
|
246
265
|
const getDropdownTrigger = () => {
|
|
247
266
|
let iconFilter;
|
|
248
267
|
if (typeof filterIcon === 'function') {
|
|
@@ -16,5 +16,6 @@ export interface TreeModeFeatureOptions {
|
|
|
16
16
|
clickArea?: 'cell' | 'content' | 'icon';
|
|
17
17
|
stopClickEventPropagation?: boolean;
|
|
18
18
|
treeMetaKey?: string | symbol;
|
|
19
|
+
isTreeArray?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export declare function treeMode(opts?: TreeModeFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
@@ -10,6 +10,7 @@ export function treeMode(opts = {}) {
|
|
|
10
10
|
const stateKey = 'treeMode';
|
|
11
11
|
const ctx = pipeline.ctx;
|
|
12
12
|
const expandIconColumnIndex = opts.expandIconColumnIndex ?? 0;
|
|
13
|
+
const isTreeArray = opts.isTreeArray;
|
|
13
14
|
const primaryKey = pipeline.ensurePrimaryKey('treeMode');
|
|
14
15
|
if (typeof primaryKey !== 'string') {
|
|
15
16
|
throw new Error('treeMode Only strings are supported primaryKey');
|
|
@@ -94,6 +95,9 @@ export function treeMode(opts = {}) {
|
|
|
94
95
|
if (record[treeMetaKey] == null) {
|
|
95
96
|
return content;
|
|
96
97
|
}
|
|
98
|
+
if (!isTreeArray) {
|
|
99
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, content);
|
|
100
|
+
}
|
|
97
101
|
const {
|
|
98
102
|
rowKey,
|
|
99
103
|
depth,
|
|
@@ -105,6 +109,7 @@ export function treeMode(opts = {}) {
|
|
|
105
109
|
return /*#__PURE__*/React.createElement(InlineFlexCell, {
|
|
106
110
|
className: "expansion-cell leaf"
|
|
107
111
|
}, /*#__PURE__*/React.createElement("span", {
|
|
112
|
+
className: "expansion-content",
|
|
108
113
|
style: {
|
|
109
114
|
marginLeft: indent + iconWidth + iconGap
|
|
110
115
|
}
|
|
@@ -131,7 +136,9 @@ export function treeMode(opts = {}) {
|
|
|
131
136
|
marginRight: iconGap
|
|
132
137
|
},
|
|
133
138
|
onClick: clickArea === 'icon' ? onClick : undefined
|
|
134
|
-
}),
|
|
139
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
140
|
+
className: "expansion-content"
|
|
141
|
+
}, content));
|
|
135
142
|
};
|
|
136
143
|
const getCellProps = (value, record, rowIndex) => {
|
|
137
144
|
const prevProps = internals.safeGetCellProps(firstCol, record, rowIndex);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TreeDataNode } from "antd";
|
|
2
|
-
import
|
|
2
|
+
import { ColumnTable } from "../../grid-component";
|
|
3
3
|
export declare function convertColumnsToTreeData(columns: ColumnTable[], groupColumns?: string[], t?: any): TreeDataNode[];
|
|
4
4
|
export declare function filterColumnsByField(columns: ColumnTable[], fieldList: string[]): ColumnTable[];
|
|
5
5
|
export declare function filterVisibleColumns(columns: ColumnTable[]): ColumnTable[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { TableProps } from "../
|
|
2
|
+
import type { TableProps } from "../grid-component";
|
|
3
3
|
declare const TempTable: <RecordType extends object>(props: TableProps<RecordType>) => React.JSX.Element;
|
|
4
4
|
export default TempTable;
|
|
@@ -219,6 +219,8 @@ export type ColumnTable<RecordType = AnyObject> = {
|
|
|
219
219
|
/** Custom render method */
|
|
220
220
|
/** Custom method to get cell props */
|
|
221
221
|
getCellProps?: (value: any, row: any, rowIndex: number) => CellProps;
|
|
222
|
+
/** Props for the header cell */
|
|
223
|
+
headerCellProps?: CellProps;
|
|
222
224
|
/** Custom method to get cell SpanRect */
|
|
223
225
|
getSpanRect?: (value: any, row: any, rowIndex: number) => SpanRect;
|
|
224
226
|
};
|
|
@@ -230,6 +232,7 @@ export type TableProps<RecordType = AnyObject> = {
|
|
|
230
232
|
backgroundColor?: string;
|
|
231
233
|
color?: string;
|
|
232
234
|
};
|
|
235
|
+
useOuterBorder?: boolean;
|
|
233
236
|
className?: string;
|
|
234
237
|
title?: ReactNode | ((data: RecordType) => ReactNode);
|
|
235
238
|
fullScreenTitle?: ReactNode | (() => ReactNode);
|
|
@@ -208,12 +208,13 @@ export declare const fixColumnsLeft: <RecordType>(columns: ColumnTable<RecordTyp
|
|
|
208
208
|
ellipsis?: boolean;
|
|
209
209
|
allowResizing?: boolean;
|
|
210
210
|
allowSelection?: boolean | ((rowData: RecordType) => boolean);
|
|
211
|
-
onCellStyles?: Omit<CSSProperties, "
|
|
212
|
-
onCellHeaderStyles?: Omit<CSSProperties, "
|
|
213
|
-
onCellFooterStyles?: Omit<CSSProperties, "
|
|
211
|
+
onCellStyles?: Omit<CSSProperties, "left" | "right" | "display" | "minWidth" | "position" | "width"> | ((cellValue: any, cell: import("@tanstack/react-table").Cell<RecordType, unknown>) => Omit<CSSProperties, "left" | "right" | "display" | "minWidth" | "position" | "width">);
|
|
212
|
+
onCellHeaderStyles?: Omit<CSSProperties, "left" | "right" | "display" | "minWidth" | "position" | "width"> | ((cell: import("@tanstack/react-table").Header<RecordType, unknown>) => Omit<CSSProperties, "left" | "right" | "display" | "minWidth" | "position" | "width">);
|
|
213
|
+
onCellFooterStyles?: Omit<CSSProperties, "left" | "right" | "display" | "minWidth" | "position" | "width"> | ((cellValue: any, cell: import("@tanstack/react-table").Header<RecordType, unknown>) => Omit<CSSProperties, "left" | "right" | "display" | "minWidth" | "position" | "width">);
|
|
214
214
|
sumGroup?: boolean;
|
|
215
215
|
getValue?: (row: any, rowIndex: number) => any;
|
|
216
216
|
getCellProps?: (value: any, row: any, rowIndex: number) => import("./../../grid-component/type").CellProps;
|
|
217
|
+
headerCellProps?: import("./../../grid-component/type").CellProps;
|
|
217
218
|
getSpanRect?: (value: any, row: any, rowIndex: number) => import("./../../grid-component/type").SpanRect;
|
|
218
219
|
}[];
|
|
219
220
|
export declare function sortColumnsByField<T extends ColumnTable>(columns: T[], priorityFields: string[]): T[];
|
package/lib/ali-table/Grid.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import type { TablePipeline } from "./pipeline";
|
|
|
2
2
|
import type { Dispatch, SetStateAction } from "react";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import './base-table/styles.scss';
|
|
5
|
-
import type { TableProps } from "../table-component";
|
|
6
5
|
import type { BaseTable } from "./base-table/table";
|
|
7
6
|
import type { VirtualEnum } from "./base-table/interfaces";
|
|
7
|
+
import type { TableProps } from "../grid-component";
|
|
8
8
|
declare const Grid: React.ForwardRefExoticComponent<Omit<TableProps, "useVirtual"> & {
|
|
9
9
|
isFullScreen: boolean;
|
|
10
10
|
setIsFullScreen: Dispatch<SetStateAction<boolean>>;
|
package/lib/ali-table/Grid.js
CHANGED
|
@@ -22,6 +22,8 @@ var _useContext = require("./useContext");
|
|
|
22
22
|
var _ColumnsChoose = require("./pipeline/features/ColumnsChoose");
|
|
23
23
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
24
|
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; }
|
|
25
|
+
// import type { TableProps } from "../table-component"
|
|
26
|
+
|
|
25
27
|
// const Grid = (props: GridProps) => {
|
|
26
28
|
const Grid = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
27
29
|
const {
|
|
@@ -59,7 +61,8 @@ const Grid = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
59
61
|
setVisibleKeys,
|
|
60
62
|
footerDataSource,
|
|
61
63
|
loading,
|
|
62
|
-
useVirtual
|
|
64
|
+
useVirtual,
|
|
65
|
+
useOuterBorder = true
|
|
63
66
|
|
|
64
67
|
// onRowFooterStyles,
|
|
65
68
|
// onRowHeaderStyles
|
|
@@ -152,12 +155,13 @@ const Grid = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
152
155
|
setVisibleKeys(nextVisibleKeys);
|
|
153
156
|
};
|
|
154
157
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
155
|
-
className: (0, _classnames.default)(`${prefix}-grid
|
|
158
|
+
className: (0, _classnames.default)(`${prefix}-grid`, {
|
|
159
|
+
[tableClassNames]: !!tableClassNames,
|
|
156
160
|
[`${prefix}-grid-light`]: !theme || theme.theme === 'light',
|
|
157
161
|
[`${prefix}-grid-dark`]: theme?.theme === 'dark'
|
|
158
162
|
}),
|
|
159
163
|
style: {
|
|
160
|
-
|
|
164
|
+
maxHeight: height ?? 700,
|
|
161
165
|
minHeight,
|
|
162
166
|
display: 'flex',
|
|
163
167
|
flexDirection: 'column'
|
|
@@ -237,7 +241,7 @@ const Grid = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
237
241
|
|
|
238
242
|
// estimatedRowHeight={50}
|
|
239
243
|
,
|
|
240
|
-
useOuterBorder:
|
|
244
|
+
useOuterBorder: useOuterBorder
|
|
241
245
|
// style={{ height: 700, overflow: 'auto' }}
|
|
242
246
|
,
|
|
243
247
|
style: minHeight ? {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import './base-table/styles.scss';
|
|
3
|
-
import type { TableProps } from "../
|
|
3
|
+
import type { TableProps } from "../grid-component/type";
|
|
4
4
|
declare const InternalTable: <RecordType extends object>(props: TableProps<RecordType>) => React.JSX.Element;
|
|
5
5
|
export default InternalTable;
|
|
@@ -42,7 +42,9 @@ const InternalTable = props => {
|
|
|
42
42
|
expandable,
|
|
43
43
|
sortMultiple,
|
|
44
44
|
onFilter,
|
|
45
|
+
defaultFilter,
|
|
45
46
|
onSorter,
|
|
47
|
+
defaultSorter,
|
|
46
48
|
footerDataSource,
|
|
47
49
|
summary,
|
|
48
50
|
useVirtual,
|
|
@@ -97,11 +99,12 @@ const InternalTable = props => {
|
|
|
97
99
|
return (0, _utils.isTreeArray)(convertData);
|
|
98
100
|
}, [convertData]);
|
|
99
101
|
const mergedData = _react.default.useMemo(() => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
const shouldSkip = onFilter && onSorter;
|
|
103
|
+
if (shouldSkip) {
|
|
104
|
+
return convertData;
|
|
102
105
|
}
|
|
103
|
-
return convertData;
|
|
104
|
-
}, [convertData, filterState, ignoreAccents, sortState]);
|
|
106
|
+
return (0, _utils.filterDataByColumns)(convertData, onFilter ? undefined : filterState ?? defaultFilter, onSorter ? undefined : sortState ?? defaultSorter, [], ignoreAccents);
|
|
107
|
+
}, [convertData, filterState, ignoreAccents, sortState, onFilter, onSorter, defaultFilter, defaultSorter]);
|
|
105
108
|
const footerData = _react.default.useMemo(() => {
|
|
106
109
|
if (!summary) {
|
|
107
110
|
return undefined;
|
|
@@ -119,6 +122,12 @@ const InternalTable = props => {
|
|
|
119
122
|
return undefined;
|
|
120
123
|
}, [expandable?.defaultExpandAllRows, convertData, isDataTree]);
|
|
121
124
|
const [isFullScreen, setIsFullScreen] = _react.default.useState(false);
|
|
125
|
+
const defaultFilterConvert = _react.default.useMemo(() => {
|
|
126
|
+
if (defaultFilter) {
|
|
127
|
+
return (0, _utils.revertConvertFilters)(defaultFilter);
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
}, [defaultFilter]);
|
|
122
131
|
const pipeline = (0, _pipeline.useTablePipeline)({
|
|
123
132
|
components: fusion
|
|
124
133
|
}).input({
|
|
@@ -167,7 +176,8 @@ const InternalTable = props => {
|
|
|
167
176
|
clickArea: 'icon',
|
|
168
177
|
stopClickEventPropagation: true,
|
|
169
178
|
expandIconColumnIndex: expandable?.expandIconColumnIndex,
|
|
170
|
-
defaultOpenKeys: expandAllKeys ?? expandable?.defaultExpandedRowKeys
|
|
179
|
+
defaultOpenKeys: expandAllKeys ?? expandable?.defaultExpandedRowKeys,
|
|
180
|
+
isTreeArray: !!isDataTree
|
|
171
181
|
})).use(_pipeline.features.columnCustom({
|
|
172
182
|
id,
|
|
173
183
|
t,
|
|
@@ -186,6 +196,8 @@ const InternalTable = props => {
|
|
|
186
196
|
currentPage: pagination ? pagination?.currentPage : undefined,
|
|
187
197
|
pageSize: pagination ? pagination?.pageSize : undefined,
|
|
188
198
|
isDataTree,
|
|
199
|
+
defaultFilter: defaultFilterConvert,
|
|
200
|
+
defaultSorter,
|
|
189
201
|
onFilter(val) {
|
|
190
202
|
// const rs =
|
|
191
203
|
|
|
@@ -241,7 +253,11 @@ const InternalTable = props => {
|
|
|
241
253
|
originColumns: columns,
|
|
242
254
|
groupColumns: groupColumns,
|
|
243
255
|
setVisibleKeys: setVisibleKeys,
|
|
244
|
-
footerDataSource: footerData
|
|
256
|
+
footerDataSource: footerData,
|
|
257
|
+
onFilter: onFilter,
|
|
258
|
+
onSorter: onSorter,
|
|
259
|
+
defaultFilter: defaultFilter,
|
|
260
|
+
defaultSorter: defaultSorter
|
|
245
261
|
})), /*#__PURE__*/_react.default.createElement(_antd.Modal, {
|
|
246
262
|
open: isFullScreen,
|
|
247
263
|
footer: null,
|
|
@@ -287,7 +303,11 @@ const InternalTable = props => {
|
|
|
287
303
|
originColumns: columns,
|
|
288
304
|
groupColumns: groupColumns,
|
|
289
305
|
setVisibleKeys: setVisibleKeys,
|
|
290
|
-
footerDataSource: footerData
|
|
306
|
+
footerDataSource: footerData,
|
|
307
|
+
onFilter: onFilter,
|
|
308
|
+
onSorter: onSorter,
|
|
309
|
+
defaultFilter: defaultFilter,
|
|
310
|
+
defaultSorter: defaultSorter
|
|
291
311
|
})))))));
|
|
292
312
|
};
|
|
293
313
|
var _default = exports.default = InternalTable;
|
|
@@ -56,4 +56,4 @@ const outerBorderStyleMixin = (0, _styledComponents.css)(["border-top:var(--cell
|
|
|
56
56
|
const StyledArtTableWrapper = exports.StyledArtTableWrapper = _styledComponents.default.div.withConfig({
|
|
57
57
|
displayName: "StyledArtTableWrapper",
|
|
58
58
|
componentId: "es-grid-template__sc-ipj1ht-0"
|
|
59
|
-
})(["--row-height:38px;--color:#333;--bgcolor:white;--hover-bgcolor:var(--hover-color,#f5f5f5);--highlight-bgcolor:#eee;--header-row-height:36px;--header-color:#000000de;--header-bgcolor:#ffffff;--header-hover-bgcolor:#ddd;--header-highlight-bgcolor:#e4e8ed;--cell-padding:7px 8px;--font-size:13px;--line-height:1.28571;--lock-shadow:rgba(152,152,152,0.5) 0 0 6px 2px;--border-color:#dfe3e8;--cell-border:1px solid var(--border-color);--cell-border-horizontal:var(--cell-border);--cell-border-vertical:var(--cell-border);--header-cell-border:1px solid var(--border-color);--header-cell-border-horizontal:var(--header-cell-border);--header-cell-border-vertical:var(--header-cell-border);--footer-bgColor:#fafafa;box-sizing:border-box;*{box-sizing:border-box;}cursor:default;color:var(--color);font-size:var(--font-size);line-height:var(--line-height);position:relative;overflow-anchor:none;&.use-outer-border{", ";}.no-scrollbar{scrollbar-width:none;::-webkit-scrollbar{display:none;}}.", "{overflow-x:auto;overflow-y:hidden;background:var(--header-bgcolor);.ui-rc-table-column-title{flex:1;min-width:0;text-align:start;}.", "{font-weight:500;.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}.", "{width:100%;white-space:normal;word-break:break-word;}.", "{text-align:center;}.", "{text-align:right;}}}.", "{.", "{&.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}&.", "{width:100%;white-space:normal;word-break:break-word;}&.", "{text-align:center;}&.", "{text-align:right;}}}.", ",.", "{overflow-x:auto;overflow-y:hidden;background:var(--bgcolor);}&.sticky-header .", "{position:sticky;top:0;z-index:", ";}&.sticky-footer .", "{position:sticky;bottom:0;z-index:", ";}.", "{tr{td{&.lock-left,&.lock-right{border-bottom-width:0;box-shadow:0 -1px 0 0 var(--border-color),0 1px 0 0 var(--border-color),-1px 0 0 0 var(--border-color);}}}}table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;display:table;margin:0;padding:0;}tr:not(.no-hover):hover > td{background:var(--hover-bgcolor);}tr:not(.no-highlight).highlight > td{background:var(--highlight-bgcolor);}th{font-weight:normal;text-align:left;padding:var(--cell-padding);height:var(--header-row-height);color:var(--header-color);background:var(--header-bgcolor);border:none;border-right:var(--header-cell-border-vertical);border-bottom:var(--header-cell-border-horizontal);}tr.first th{border-top:var(--header-cell-border-horizontal);}th.first{border-left:var(--header-cell-border-vertical);}td{padding:var(--cell-padding);background:var(--bgcolor);height:var(--row-height);border:none;border-right:var(--cell-border-vertical);border-bottom:var(--cell-border-horizontal);}td.first{border-left:var(--cell-border-vertical);}tr.first td{border-top:var(--cell-border-horizontal);}&.has-header tbody tr.first td{border-top:none;}&.has-footer tbody tr.last td{border-bottom:none;}.lock-left,.lock-right{z-index:", ";}.resize-handle{width:6px;height:100%;position:absolute;top:0;right:0;cursor:col-resize;background-color:transparent;border-right:2px solid transparent}.", "{position:absolute;top:0;bottom:0;z-index:", ";pointer-events:none;overflow:hidden;.", "{height:100%;}.", "{margin-right:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-right:var(--cell-border-vertical);}}.", "{margin-left:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-left:var(--cell-border-vertical);}}}.", "{pointer-events:none;color:#99a3b3;font-size:12px;text-align:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);.empty-image{width:50px;height:50px;}.empty-tips{margin-top:16px;line-height:1.5;}}.", "{overflow:auto;position:sticky;bottom:0;z-index:", ";margin-top:-17px;}.ui-rc-grid-loading-wrapper{}.ui-rc-grid-table{}.art-loading-content-wrapper{}.", "{height:1px;visibility:hidden;}.", "{position:relative;.", "{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;}.", "{position:sticky;z-index:", ";transform:translateY(-50%);}}"], outerBorderStyleMixin, Classes.tableHeader, Classes.tableHeaderCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.tableBody, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator);
|
|
59
|
+
})(["--row-height:38px;--color:#333;--bgcolor:white;--hover-bgcolor:var(--hover-color,#f5f5f5);--highlight-bgcolor:#eee;--header-row-height:36px;--header-color:#000000de;--header-bgcolor:#ffffff;--header-hover-bgcolor:#ddd;--header-highlight-bgcolor:#e4e8ed;--cell-padding:7px 8px;--font-size:13px;--line-height:1.28571;--lock-shadow:rgba(152,152,152,0.5) 0 0 6px 2px;--border-color:#dfe3e8;--cell-border:1px solid var(--border-color);--cell-border-horizontal:var(--cell-border);--cell-border-vertical:var(--cell-border);--header-cell-border:1px solid var(--border-color);--header-cell-border-horizontal:var(--header-cell-border);--header-cell-border-vertical:var(--header-cell-border);--footer-bgColor:#fafafa;box-sizing:border-box;*{box-sizing:border-box;}cursor:default;color:var(--color);font-size:var(--font-size);line-height:var(--line-height);position:relative;overflow-anchor:none;&.use-outer-border{", ";}.no-scrollbar{scrollbar-width:none;::-webkit-scrollbar{display:none;}}.", "{overflow-x:auto;overflow-y:hidden;background:var(--header-bgcolor);.ui-rc-table-column-title{flex:1;min-width:0;text-align:start;}.", "{font-weight:500;.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}.", "{width:100%;white-space:normal;word-break:break-word;}.", "{text-align:center;}.", "{text-align:right;}}}.", "{.", "{&.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;.expansion-cell{.expansion-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}}&.", "{width:100%;white-space:normal;word-break:break-word;}&.", "{text-align:center;}&.", "{text-align:right;}}}.", ",.", "{overflow-x:auto;overflow-y:hidden;background:var(--bgcolor);}&.sticky-header .", "{position:sticky;top:0;z-index:", ";}&.sticky-footer .", "{position:sticky;bottom:0;z-index:", ";}.", "{tr{td{&.lock-left,&.lock-right{border-bottom-width:0;box-shadow:0 -1px 0 0 var(--border-color),0 1px 0 0 var(--border-color),-1px 0 0 0 var(--border-color);}}}}table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;display:table;margin:0;padding:0;}tr:not(.no-hover):hover > td{background:var(--hover-bgcolor);}tr:not(.no-highlight).highlight > td{background:var(--highlight-bgcolor);}th{font-weight:normal;text-align:left;padding:var(--cell-padding);height:var(--header-row-height);color:var(--header-color);background:var(--header-bgcolor);border:none;border-right:var(--header-cell-border-vertical);border-bottom:var(--header-cell-border-horizontal);}tr.first th{border-top:var(--header-cell-border-horizontal);}th.first{border-left:var(--header-cell-border-vertical);}td{padding:var(--cell-padding);background:var(--bgcolor);height:var(--row-height);border:none;border-right:var(--cell-border-vertical);border-bottom:var(--cell-border-horizontal);}td.first{border-left:var(--cell-border-vertical);}tr.first td{border-top:var(--cell-border-horizontal);}&.has-header tbody tr.first td{border-top:none;}&.has-footer tbody tr.last td{border-bottom:none;}.lock-left,.lock-right{z-index:", ";}.resize-handle{width:6px;height:100%;position:absolute;top:0;right:0;cursor:col-resize;background-color:transparent;border-right:2px solid transparent}.", "{position:absolute;top:0;bottom:0;z-index:", ";pointer-events:none;overflow:hidden;.", "{height:100%;}.", "{margin-right:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-right:var(--cell-border-vertical);}}.", "{margin-left:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-left:var(--cell-border-vertical);}}}.", "{pointer-events:none;color:#99a3b3;font-size:12px;text-align:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);.empty-image{width:50px;height:50px;}.empty-tips{margin-top:16px;line-height:1.5;}}.", "{overflow:auto;position:sticky;bottom:0;z-index:", ";margin-top:-17px;}.ui-rc-grid-loading-wrapper{}.ui-rc-grid-table{}.art-loading-content-wrapper{}.", "{height:1px;visibility:hidden;}.", "{position:relative;.", "{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;}.", "{position:sticky;z-index:", ";transform:translateY(-50%);}}"], outerBorderStyleMixin, Classes.tableHeader, Classes.tableHeaderCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.tableBody, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator);
|
|
@@ -11,7 +11,7 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
11
11
|
const InlineFlexCell = exports.InlineFlexCell = _styledComponents.default.div.withConfig({
|
|
12
12
|
displayName: "InlineFlexCell",
|
|
13
13
|
componentId: "es-grid-template__sc-1o0on5d-0"
|
|
14
|
-
})(["display:
|
|
14
|
+
})(["display:flex;align-items:center;"]);
|
|
15
15
|
const ExpansionCell = exports.ExpansionCell = (0, _styledComponents.default)(InlineFlexCell).withConfig({
|
|
16
16
|
displayName: "ExpansionCell",
|
|
17
17
|
componentId: "es-grid-template__sc-1o0on5d-1"
|
|
@@ -42,11 +42,12 @@ const ColumnsChoose = props => {
|
|
|
42
42
|
const defaultSelectedKeys = _react.default.useMemo(() => {
|
|
43
43
|
const colsVisiables = originColumns.filter(it => it.showInColumnChoose !== false && it.visible !== false);
|
|
44
44
|
const colsKeys = colsVisiables.map(it => it.field);
|
|
45
|
-
|
|
46
|
-
// const aa = Object.keys(columnHidden)
|
|
47
|
-
|
|
48
45
|
return colsKeys.filter(it => !columnsGroup?.includes(it));
|
|
49
46
|
}, [columnsGroup, originColumns]);
|
|
47
|
+
|
|
48
|
+
// console.log('defaultSelectedKeys', defaultSelectedKeys)
|
|
49
|
+
// console.log('originColumns', originColumns)
|
|
50
|
+
|
|
50
51
|
const [mergedSelectedKeys, setMergedSelectedKeys] = (0, _useMergedState.default)(defaultSelectedKeys && defaultSelectedKeys.length ? defaultSelectedKeys : undefined, {
|
|
51
52
|
value: undefined
|
|
52
53
|
});
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import type { TablePipeline } from '../pipeline';
|
|
2
2
|
import type { ColumnResizeMode } from '../../base-table/table';
|
|
3
|
-
import type { SortOrder } from '../../interfaces';
|
|
3
|
+
import type { ArtColumn, SortOrder } from '../../interfaces';
|
|
4
4
|
import type { FilterItem, IFormat, IWrapSettings, Sorter, SourceFilter } from '../../../grid-component/type';
|
|
5
|
+
type FilterState = {
|
|
6
|
+
field: any;
|
|
7
|
+
key: any;
|
|
8
|
+
column: ArtColumn;
|
|
9
|
+
filteredKeys: any[];
|
|
10
|
+
operator: string | undefined;
|
|
11
|
+
};
|
|
5
12
|
export interface ColumnFeatureOptions {
|
|
6
13
|
id: any;
|
|
7
14
|
columns: any[];
|
|
@@ -39,7 +46,8 @@ export interface ColumnFeatureOptions {
|
|
|
39
46
|
dataSourceFilter?: SourceFilter[];
|
|
40
47
|
ignoreAccents?: boolean;
|
|
41
48
|
onFilter?: (filterState: FilterItem[]) => void;
|
|
42
|
-
|
|
49
|
+
defaultFilter?: FilterState[];
|
|
50
|
+
defaultSorter?: Sorter[];
|
|
43
51
|
mode?: 'single' | 'multiple';
|
|
44
52
|
keepDataSource?: boolean;
|
|
45
53
|
orders?: SortOrder[];
|
|
@@ -49,3 +57,4 @@ export interface ColumnFeatureOptions {
|
|
|
49
57
|
pageSize?: number;
|
|
50
58
|
}
|
|
51
59
|
export declare function columnCustom(opts: ColumnFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
60
|
+
export {};
|
|
@@ -48,7 +48,10 @@ function columnCustom(opts) {
|
|
|
48
48
|
wrapSettings,
|
|
49
49
|
// ignoreAccents,
|
|
50
50
|
dataSource,
|
|
51
|
-
isDataTree
|
|
51
|
+
isDataTree,
|
|
52
|
+
defaultSorter,
|
|
53
|
+
defaultFilter
|
|
54
|
+
|
|
52
55
|
// currentPage = 1,
|
|
53
56
|
// pageSize
|
|
54
57
|
} = opts;
|
|
@@ -59,7 +62,7 @@ function columnCustom(opts) {
|
|
|
59
62
|
} = opts;
|
|
60
63
|
return function columnResizeFeature(pipeline) {
|
|
61
64
|
const sizes = opts.sizes ?? pipeline.getStateAtKey(stateKeyResize) ?? opts.defaultSizes ?? [];
|
|
62
|
-
const filterState = pipeline.getStateAtKey(stateKeyFilter) ?? [];
|
|
65
|
+
const filterState = pipeline.getStateAtKey(stateKeyFilter) ?? defaultFilter ?? [];
|
|
63
66
|
const visible = pipeline.getStateAtKey(stateKeyVisible) ?? '';
|
|
64
67
|
const isOpenTooltip = pipeline.getStateAtKey(stateKeyTooltip) ?? false;
|
|
65
68
|
const pageSize = opts?.pageSize ?? pipeline.getStateAtKey(stateKey)?.pageSize ?? _hooks.pageSizeOptions[0];
|
|
@@ -74,7 +77,7 @@ function columnCustom(opts) {
|
|
|
74
77
|
// const fieldOriginal = fieldOriginalKey ? columns.find((it) => it.field === fieldOriginalKey) : undefined
|
|
75
78
|
|
|
76
79
|
// const sorterStates = pipeline.getStateAtKey(stateKeySorter) ?? []
|
|
77
|
-
const sorterStates = pipeline.getStateAtKey(stateKeySorter) ??
|
|
80
|
+
const sorterStates = pipeline.getStateAtKey(stateKeySorter) ?? defaultSorter ?? [];
|
|
78
81
|
const activeSorts = sorterStates.filter(s => s.order !== 'none');
|
|
79
82
|
const sorts = mode === 'multiple' ? activeSorts : activeSorts.slice(0, 1);
|
|
80
83
|
const leafColumns = (0, _utils.collectNodes)(pipeline.getColumns(), 'leaf-only');
|
|
@@ -126,9 +129,10 @@ function columnCustom(opts) {
|
|
|
126
129
|
const onVisibleChange = (newVisible, info, column) => {
|
|
127
130
|
if (info.source === 'trigger') {
|
|
128
131
|
if (newVisible) {
|
|
129
|
-
const
|
|
132
|
+
const defaultFilterOption = defaultFilter?.find(it => it.field === column.field);
|
|
133
|
+
const filterValue = filterColumnState.filteredKeys === null ? [] : filterColumnState.filteredKeys ?? defaultFilterOption?.filteredKeys ?? [];
|
|
130
134
|
const operator = filterColumnState.operator;
|
|
131
|
-
const operatorValue = operator ?? (0, _utils2.getDefaultOperator)(column);
|
|
135
|
+
const operatorValue = operator ?? defaultFilterOption?.operator ?? (0, _utils2.getDefaultOperator)(column);
|
|
132
136
|
pipeline.setStateAtKey(stateKeyColumnFilter, {
|
|
133
137
|
operator: operatorValue,
|
|
134
138
|
filteredKeys: filterValue,
|
|
@@ -200,8 +204,20 @@ function columnCustom(opts) {
|
|
|
200
204
|
// xóa column đang filter trong filterState
|
|
201
205
|
|
|
202
206
|
const newFilterState = filterState.filter(it => it.field !== filterColumnState.field);
|
|
203
|
-
|
|
204
|
-
|
|
207
|
+
const currentFilter = {
|
|
208
|
+
field: filterColumnState.field,
|
|
209
|
+
key: filterColumnState.field,
|
|
210
|
+
column: filterColumnState.column,
|
|
211
|
+
filteredKeys: null,
|
|
212
|
+
operator: filterColumnState.operator ?? undefined
|
|
213
|
+
};
|
|
214
|
+
const rs = (0, _hooks.updateArrayByKey)(filterState, currentFilter, 'field');
|
|
215
|
+
pipeline.setStateAtKey(stateKeyColumnFilter, {
|
|
216
|
+
...currentFilter
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
// pipeline.setStateAtKey(stateKeyFilter, [...newFilterState])
|
|
220
|
+
pipeline.setStateAtKey(stateKeyFilter, rs);
|
|
205
221
|
if (onFilter) {
|
|
206
222
|
onFilter((0, _utils2.convertFilters)([...newFilterState]));
|
|
207
223
|
} else {
|
|
@@ -249,7 +265,10 @@ function columnCustom(opts) {
|
|
|
249
265
|
const {
|
|
250
266
|
order
|
|
251
267
|
} = isSorted && sortMap.get(col.field);
|
|
252
|
-
const
|
|
268
|
+
const find = filterState.find(it => it.field === col.field);
|
|
269
|
+
|
|
270
|
+
// const filtered = !!filterState.find((it) => it.field === col.field)
|
|
271
|
+
const filtered = !!find && find.filteredKeys !== null;
|
|
253
272
|
const getDropdownTrigger = () => {
|
|
254
273
|
let iconFilter;
|
|
255
274
|
if (typeof filterIcon === 'function') {
|
|
@@ -16,5 +16,6 @@ export interface TreeModeFeatureOptions {
|
|
|
16
16
|
clickArea?: 'cell' | 'content' | 'icon';
|
|
17
17
|
stopClickEventPropagation?: boolean;
|
|
18
18
|
treeMetaKey?: string | symbol;
|
|
19
|
+
isTreeArray?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export declare function treeMode(opts?: TreeModeFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
@@ -18,6 +18,7 @@ function treeMode(opts = {}) {
|
|
|
18
18
|
const stateKey = 'treeMode';
|
|
19
19
|
const ctx = pipeline.ctx;
|
|
20
20
|
const expandIconColumnIndex = opts.expandIconColumnIndex ?? 0;
|
|
21
|
+
const isTreeArray = opts.isTreeArray;
|
|
21
22
|
const primaryKey = pipeline.ensurePrimaryKey('treeMode');
|
|
22
23
|
if (typeof primaryKey !== 'string') {
|
|
23
24
|
throw new Error('treeMode Only strings are supported primaryKey');
|
|
@@ -102,6 +103,9 @@ function treeMode(opts = {}) {
|
|
|
102
103
|
if (record[treeMetaKey] == null) {
|
|
103
104
|
return content;
|
|
104
105
|
}
|
|
106
|
+
if (!isTreeArray) {
|
|
107
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, content);
|
|
108
|
+
}
|
|
105
109
|
const {
|
|
106
110
|
rowKey,
|
|
107
111
|
depth,
|
|
@@ -113,6 +117,7 @@ function treeMode(opts = {}) {
|
|
|
113
117
|
return /*#__PURE__*/_react.default.createElement(_commonViews.InlineFlexCell, {
|
|
114
118
|
className: "expansion-cell leaf"
|
|
115
119
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
120
|
+
className: "expansion-content",
|
|
116
121
|
style: {
|
|
117
122
|
marginLeft: indent + iconWidth + iconGap
|
|
118
123
|
}
|
|
@@ -139,7 +144,9 @@ function treeMode(opts = {}) {
|
|
|
139
144
|
marginRight: iconGap
|
|
140
145
|
},
|
|
141
146
|
onClick: clickArea === 'icon' ? onClick : undefined
|
|
142
|
-
}),
|
|
147
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
148
|
+
className: "expansion-content"
|
|
149
|
+
}, content));
|
|
143
150
|
};
|
|
144
151
|
const getCellProps = (value, record, rowIndex) => {
|
|
145
152
|
const prevProps = _internals.internals.safeGetCellProps(firstCol, record, rowIndex);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TreeDataNode } from "antd";
|
|
2
|
-
import
|
|
2
|
+
import { ColumnTable } from "../../grid-component";
|
|
3
3
|
export declare function convertColumnsToTreeData(columns: ColumnTable[], groupColumns?: string[], t?: any): TreeDataNode[];
|
|
4
4
|
export declare function filterColumnsByField(columns: ColumnTable[], fieldList: string[]): ColumnTable[];
|
|
5
5
|
export declare function filterVisibleColumns(columns: ColumnTable[]): ColumnTable[];
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.convertColumnsToTreeData = convertColumnsToTreeData;
|
|
7
7
|
exports.filterColumnsByField = filterColumnsByField;
|
|
8
8
|
exports.filterVisibleColumns = filterVisibleColumns;
|
|
9
|
+
// import type { ColumnTable } from "../../table-component"
|
|
10
|
+
|
|
9
11
|
function convertColumnsToTreeData(columns, groupColumns, t) {
|
|
10
12
|
if (!columns) {
|
|
11
13
|
return [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { TableProps } from "../
|
|
2
|
+
import type { TableProps } from "../grid-component";
|
|
3
3
|
declare const TempTable: <RecordType extends object>(props: TableProps<RecordType>) => React.JSX.Element;
|
|
4
4
|
export default TempTable;
|
|
@@ -219,6 +219,8 @@ export type ColumnTable<RecordType = AnyObject> = {
|
|
|
219
219
|
/** Custom render method */
|
|
220
220
|
/** Custom method to get cell props */
|
|
221
221
|
getCellProps?: (value: any, row: any, rowIndex: number) => CellProps;
|
|
222
|
+
/** Props for the header cell */
|
|
223
|
+
headerCellProps?: CellProps;
|
|
222
224
|
/** Custom method to get cell SpanRect */
|
|
223
225
|
getSpanRect?: (value: any, row: any, rowIndex: number) => SpanRect;
|
|
224
226
|
};
|
|
@@ -230,6 +232,7 @@ export type TableProps<RecordType = AnyObject> = {
|
|
|
230
232
|
backgroundColor?: string;
|
|
231
233
|
color?: string;
|
|
232
234
|
};
|
|
235
|
+
useOuterBorder?: boolean;
|
|
233
236
|
className?: string;
|
|
234
237
|
title?: ReactNode | ((data: RecordType) => ReactNode);
|
|
235
238
|
fullScreenTitle?: ReactNode | (() => ReactNode);
|
|
@@ -214,6 +214,7 @@ export declare const fixColumnsLeft: <RecordType>(columns: ColumnTable<RecordTyp
|
|
|
214
214
|
sumGroup?: boolean;
|
|
215
215
|
getValue?: (row: any, rowIndex: number) => any;
|
|
216
216
|
getCellProps?: (value: any, row: any, rowIndex: number) => import("./../../grid-component/type").CellProps;
|
|
217
|
+
headerCellProps?: import("./../../grid-component/type").CellProps;
|
|
217
218
|
getSpanRect?: (value: any, row: any, rowIndex: number) => import("./../../grid-component/type").SpanRect;
|
|
218
219
|
}[];
|
|
219
220
|
export declare function sortColumnsByField<T extends ColumnTable>(columns: T[], priorityFields: string[]): T[];
|
|
@@ -6,4 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _InternalTable = _interopRequireDefault(require("./InternalTable"));
|
|
9
|
+
// import type { ColumnsTable, TableProps, ColumnTable, ContextMenuItem} from './../grid-component/type'
|
|
10
|
+
// export type {ColumnsTable, TableProps, ColumnTable, ContextMenuItem}
|
|
9
11
|
var _default = exports.default = _InternalTable.default;
|