@hi-ui/table 4.12.1 → 4.12.3
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/CHANGELOG.md +15 -0
- package/lib/cjs/BaseTable.js +20 -7
- package/lib/cjs/Table.js +6 -0
- package/lib/cjs/hooks/use-col-width.js +13 -14
- package/lib/cjs/utils/index.js +18 -2
- package/lib/esm/BaseTable.js +21 -8
- package/lib/esm/Table.js +6 -0
- package/lib/esm/hooks/use-col-width.js +13 -14
- package/lib/esm/utils/index.js +18 -3
- package/lib/types/context.d.ts +0 -2
- package/lib/types/hooks/use-col-width.d.ts +0 -1
- package/lib/types/use-table.d.ts +0 -1
- package/lib/types/utils/index.d.ts +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @hi-ui/table
|
|
2
2
|
|
|
3
|
+
## 4.12.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3426](https://github.com/XiaoMi/hiui/pull/3426) [`a8cc00c`](https://github.com/XiaoMi/hiui/commit/a8cc00cc9c5591309049c25a458ffcd41e292eba) Thanks [@zyprepare](https://github.com/zyprepare)! - fix(table): 修复设置 minWidth 无效的问题 (#3425)
|
|
8
|
+
|
|
9
|
+
## 4.12.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#3382](https://github.com/XiaoMi/hiui/pull/3382) [`144de50f5`](https://github.com/XiaoMi/hiui/commit/144de50f528c834942d1d04467f7234c1710f758) Thanks [@zyprepare](https://github.com/zyprepare)! - fix(table): 统计行加上表头分组情况的处理 (#3381)
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [[`d5b4363`](https://github.com/XiaoMi/hiui/commit/d5b4363888ebc0869a70482de2eb114326ee4d3c)]:
|
|
16
|
+
- @hi-ui/core@4.0.10
|
|
17
|
+
|
|
3
18
|
## 4.12.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/lib/cjs/BaseTable.js
CHANGED
|
@@ -132,6 +132,8 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
132
132
|
}, [embedExpandable, getEmbedPanelColumn, columns]);
|
|
133
133
|
var i18n = core.useLocaleContext();
|
|
134
134
|
var _useMemo = React.useMemo(function () {
|
|
135
|
+
var _a;
|
|
136
|
+
// 确保包含 avg 属性,且值为数字类型的字符串
|
|
135
137
|
// 确保包含 avg 属性,且值为数字类型的字符串
|
|
136
138
|
var avgRow = {
|
|
137
139
|
id: 'avg',
|
|
@@ -140,9 +142,15 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
140
142
|
}
|
|
141
143
|
};
|
|
142
144
|
var hasAvgColumn = false;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
145
|
+
var flattenedColumns = index.flattenColumns(columns);
|
|
146
|
+
// 找第一个非选择框列
|
|
147
|
+
// 找第一个非选择框列
|
|
148
|
+
var firstDataColumnIndex = 0;
|
|
149
|
+
if (((_a = columns[0]) === null || _a === void 0 ? void 0 : _a.dataKey) === Table.SELECTION_DATA_KEY) {
|
|
150
|
+
firstDataColumnIndex = 1;
|
|
151
|
+
}
|
|
152
|
+
flattenedColumns.forEach(function (column, index$1) {
|
|
153
|
+
if (index$1 === firstDataColumnIndex) {
|
|
146
154
|
// @ts-ignore
|
|
147
155
|
avgRow.raw[column.dataKey] = i18n.get('table.average');
|
|
148
156
|
}
|
|
@@ -161,6 +169,8 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
161
169
|
avgRow = _useMemo.avgRow,
|
|
162
170
|
hasAvgColumn = _useMemo.hasAvgColumn;
|
|
163
171
|
var _useMemo2 = React.useMemo(function () {
|
|
172
|
+
var _a;
|
|
173
|
+
// 确保包含total属性,且值为数字类型的字符串
|
|
164
174
|
// 确保包含total属性,且值为数字类型的字符串
|
|
165
175
|
var sumRow = {
|
|
166
176
|
id: 'sum',
|
|
@@ -169,16 +179,19 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
169
179
|
}
|
|
170
180
|
};
|
|
171
181
|
var hasSumColumn = false;
|
|
172
|
-
|
|
173
|
-
|
|
182
|
+
var flattenedColumns = index.flattenColumns(columns);
|
|
183
|
+
var firstDataColumnIndex = 0;
|
|
184
|
+
if (((_a = columns[0]) === null || _a === void 0 ? void 0 : _a.dataKey) === Table.SELECTION_DATA_KEY) {
|
|
185
|
+
firstDataColumnIndex = 1;
|
|
186
|
+
}
|
|
187
|
+
flattenedColumns.forEach(function (column, index$1) {
|
|
188
|
+
if (index$1 === firstDataColumnIndex) {
|
|
174
189
|
// @ts-ignore
|
|
175
190
|
sumRow.raw[column.dataKey] = i18n.get('table.total');
|
|
176
191
|
}
|
|
177
192
|
if (index.checkNeedTotalOrEvg(data, column, 'total')) {
|
|
178
193
|
hasSumColumn = true;
|
|
179
|
-
// 获取当前数据最大小数点个数,并设置最后总和值小数点
|
|
180
194
|
// @ts-ignore
|
|
181
|
-
// 获取当前数据最大小数点个数,并设置最后总和值小数点
|
|
182
195
|
// @ts-ignore
|
|
183
196
|
sumRow.raw[column.dataKey] = index.getTotalOrEvgRowData(data, column, false);
|
|
184
197
|
}
|
package/lib/cjs/Table.js
CHANGED
|
@@ -206,6 +206,12 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
206
206
|
var rowKey = getRowKeyField(rowItem);
|
|
207
207
|
var checked = isCheckedRowKey(rowKey);
|
|
208
208
|
var disabledCheckbox = checkRowIsDisabledCheckbox(rowItem);
|
|
209
|
+
if (rowItem.key === 'avg' || rowItem.key === 'sum') {
|
|
210
|
+
return {
|
|
211
|
+
node: null,
|
|
212
|
+
checked: false
|
|
213
|
+
};
|
|
214
|
+
}
|
|
209
215
|
return {
|
|
210
216
|
node: type === 'checkbox' ? ( /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
|
211
217
|
checked: checked,
|
|
@@ -126,7 +126,7 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
126
126
|
if (virtual) {
|
|
127
127
|
setColWidths(getVirtualWidths());
|
|
128
128
|
} else {
|
|
129
|
-
//
|
|
129
|
+
// 当第一行有内容时并且没有重新设置列宽时,再去设置列宽
|
|
130
130
|
// Warning hasResetWidths.current 作用是防止某些浏览器下,下面逻辑死循环
|
|
131
131
|
if ((measureRowElement === null || measureRowElement === void 0 ? void 0 : measureRowElement.childNodes) && hasResetWidths.current === false) {
|
|
132
132
|
hasResetWidths.current = true;
|
|
@@ -145,7 +145,7 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
145
145
|
headerTableElement = _React$useState2[0],
|
|
146
146
|
setHeaderTableElement = _React$useState2[1];
|
|
147
147
|
// 控制列最小可调整宽度
|
|
148
|
-
var _React$useState3 = React__default["default"].useState(
|
|
148
|
+
var _React$useState3 = React__default["default"].useState(index.getGroupItemWidth(columns).minColWidths),
|
|
149
149
|
minColWidths = _React$useState3[0],
|
|
150
150
|
setMinColWidths = _React$useState3[1];
|
|
151
151
|
// 当列变化时同步更新 minColWidths
|
|
@@ -153,17 +153,16 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
153
153
|
var resizeObserver;
|
|
154
154
|
if (headerTableElement) {
|
|
155
155
|
resizeObserver = new ResizeObserver(function () {
|
|
156
|
-
var resizableHandlerWidth = 4;
|
|
157
156
|
var calcMinColWidths = Array.from(headerTableElement.childNodes).map(function (th, index$1) {
|
|
158
157
|
var minColWidth = index.getGroupItemWidth(columns).minColWidths[index$1];
|
|
158
|
+
// 如果设置了最小宽度,则直接使用最小宽度,否则使用标题宽度
|
|
159
|
+
if (minColWidth !== undefined && minColWidth !== 0) {
|
|
160
|
+
return minColWidth;
|
|
161
|
+
}
|
|
159
162
|
var thPaddingLeft = parseFloat(window.getComputedStyle(th).getPropertyValue('padding-left'));
|
|
160
|
-
var
|
|
161
|
-
var
|
|
162
|
-
|
|
163
|
-
}).reduce(function (prev, next) {
|
|
164
|
-
return prev + next;
|
|
165
|
-
}, 0) + thPaddingLeft * 2 + resizableHandlerWidth;
|
|
166
|
-
return childNodesWidth > minColWidth ? minColWidth : childNodesWidth;
|
|
163
|
+
var childNode = Array.from(th.childNodes)[0];
|
|
164
|
+
var childNodeWidth = childNode.offsetWidth + thPaddingLeft * 2;
|
|
165
|
+
return childNodeWidth || 40;
|
|
167
166
|
});
|
|
168
167
|
setMinColWidths(calcMinColWidths);
|
|
169
168
|
});
|
|
@@ -220,15 +219,15 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
220
219
|
}, [minColWidths, tableWidthAdjustOnResize]);
|
|
221
220
|
var getColgroupProps = React__default["default"].useCallback(function (column, index) {
|
|
222
221
|
var width = colWidths[index] || undefined;
|
|
223
|
-
|
|
222
|
+
// const minWidth = minColWidths[index] || undefined
|
|
224
223
|
return {
|
|
225
224
|
style: {
|
|
226
|
-
width: width
|
|
227
|
-
minWidth: minWidth || width
|
|
225
|
+
width: width
|
|
226
|
+
// minWidth: minWidth || width,
|
|
228
227
|
}
|
|
229
228
|
// 'data-hover-highlight': setAttrStatus(isHoveredCol(column.dataKey)),
|
|
230
229
|
};
|
|
231
|
-
}, [colWidths
|
|
230
|
+
}, [colWidths]);
|
|
232
231
|
return {
|
|
233
232
|
measureRowElementRef: measureRowElementRef,
|
|
234
233
|
onColumnResizable: onColumnResizable,
|
package/lib/cjs/utils/index.js
CHANGED
|
@@ -79,8 +79,8 @@ var getGroupItemWidth = function getGroupItemWidth(columns) {
|
|
|
79
79
|
}
|
|
80
80
|
// 如果没有设置列宽度,css 宽度默认是 `auto`,这里对于非数字 width 均设置为 0
|
|
81
81
|
var colWidth = typeAssertion.isNumeric(width) ? Number(width) : 0;
|
|
82
|
-
var minColWidth = typeAssertion.isNumeric(minWidth) ? Number(minWidth) :
|
|
83
|
-
colWidths.push(colWidth
|
|
82
|
+
var minColWidth = typeAssertion.isNumeric(minWidth) ? Number(minWidth) : 0;
|
|
83
|
+
colWidths.push(colWidth);
|
|
84
84
|
minColWidths.push(minColWidth);
|
|
85
85
|
});
|
|
86
86
|
};
|
|
@@ -223,7 +223,23 @@ var getColumnByDefaultSortOrder = function getColumnByDefaultSortOrder(columns)
|
|
|
223
223
|
}
|
|
224
224
|
return {};
|
|
225
225
|
};
|
|
226
|
+
var flattenColumns = function flattenColumns(columns) {
|
|
227
|
+
var result = [];
|
|
228
|
+
var traverse = function traverse(cols) {
|
|
229
|
+
cols.forEach(function (col) {
|
|
230
|
+
var _a;
|
|
231
|
+
if ((_a = col.children) === null || _a === void 0 ? void 0 : _a.length) {
|
|
232
|
+
traverse(col.children);
|
|
233
|
+
} else {
|
|
234
|
+
result.push(col);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
traverse(columns);
|
|
239
|
+
return result;
|
|
240
|
+
};
|
|
226
241
|
exports.checkNeedTotalOrEvg = checkNeedTotalOrEvg;
|
|
242
|
+
exports.flattenColumns = flattenColumns;
|
|
227
243
|
exports.getColumnByDataKey = getColumnByDataKey;
|
|
228
244
|
exports.getColumnByDefaultSortOrder = getColumnByDefaultSortOrder;
|
|
229
245
|
exports.getGroupItemWidth = getGroupItemWidth;
|
package/lib/esm/BaseTable.js
CHANGED
|
@@ -20,7 +20,7 @@ import { TableBody } from './TableBody.js';
|
|
|
20
20
|
import { TableHeader } from './TableHeader.js';
|
|
21
21
|
import { defaultLoadingIcon } from './icons/index.js';
|
|
22
22
|
import { TableProvider } from './context.js';
|
|
23
|
-
import { uuid, checkNeedTotalOrEvg, getTotalOrEvgRowData } from './utils/index.js';
|
|
23
|
+
import { uuid, flattenColumns, checkNeedTotalOrEvg, getTotalOrEvgRowData } from './utils/index.js';
|
|
24
24
|
import { useTable } from './use-table.js';
|
|
25
25
|
import { useEmbedExpand } from './hooks/use-embed-expand.js';
|
|
26
26
|
import { TheadContent } from './TheadContent.js';
|
|
@@ -119,6 +119,8 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
119
119
|
}, [embedExpandable, getEmbedPanelColumn, columns]);
|
|
120
120
|
var i18n = useLocaleContext();
|
|
121
121
|
var _useMemo = useMemo(function () {
|
|
122
|
+
var _a;
|
|
123
|
+
// 确保包含 avg 属性,且值为数字类型的字符串
|
|
122
124
|
// 确保包含 avg 属性,且值为数字类型的字符串
|
|
123
125
|
var avgRow = {
|
|
124
126
|
id: 'avg',
|
|
@@ -127,9 +129,15 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
127
129
|
}
|
|
128
130
|
};
|
|
129
131
|
var hasAvgColumn = false;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
132
|
+
var flattenedColumns = flattenColumns(columns);
|
|
133
|
+
// 找第一个非选择框列
|
|
134
|
+
// 找第一个非选择框列
|
|
135
|
+
var firstDataColumnIndex = 0;
|
|
136
|
+
if (((_a = columns[0]) === null || _a === void 0 ? void 0 : _a.dataKey) === SELECTION_DATA_KEY) {
|
|
137
|
+
firstDataColumnIndex = 1;
|
|
138
|
+
}
|
|
139
|
+
flattenedColumns.forEach(function (column, index) {
|
|
140
|
+
if (index === firstDataColumnIndex) {
|
|
133
141
|
// @ts-ignore
|
|
134
142
|
avgRow.raw[column.dataKey] = i18n.get('table.average');
|
|
135
143
|
}
|
|
@@ -148,6 +156,8 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
148
156
|
avgRow = _useMemo.avgRow,
|
|
149
157
|
hasAvgColumn = _useMemo.hasAvgColumn;
|
|
150
158
|
var _useMemo2 = useMemo(function () {
|
|
159
|
+
var _a;
|
|
160
|
+
// 确保包含total属性,且值为数字类型的字符串
|
|
151
161
|
// 确保包含total属性,且值为数字类型的字符串
|
|
152
162
|
var sumRow = {
|
|
153
163
|
id: 'sum',
|
|
@@ -156,16 +166,19 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
156
166
|
}
|
|
157
167
|
};
|
|
158
168
|
var hasSumColumn = false;
|
|
159
|
-
|
|
160
|
-
|
|
169
|
+
var flattenedColumns = flattenColumns(columns);
|
|
170
|
+
var firstDataColumnIndex = 0;
|
|
171
|
+
if (((_a = columns[0]) === null || _a === void 0 ? void 0 : _a.dataKey) === SELECTION_DATA_KEY) {
|
|
172
|
+
firstDataColumnIndex = 1;
|
|
173
|
+
}
|
|
174
|
+
flattenedColumns.forEach(function (column, index) {
|
|
175
|
+
if (index === firstDataColumnIndex) {
|
|
161
176
|
// @ts-ignore
|
|
162
177
|
sumRow.raw[column.dataKey] = i18n.get('table.total');
|
|
163
178
|
}
|
|
164
179
|
if (checkNeedTotalOrEvg(data, column, 'total')) {
|
|
165
180
|
hasSumColumn = true;
|
|
166
|
-
// 获取当前数据最大小数点个数,并设置最后总和值小数点
|
|
167
181
|
// @ts-ignore
|
|
168
|
-
// 获取当前数据最大小数点个数,并设置最后总和值小数点
|
|
169
182
|
// @ts-ignore
|
|
170
183
|
sumRow.raw[column.dataKey] = getTotalOrEvgRowData(data, column, false);
|
|
171
184
|
}
|
package/lib/esm/Table.js
CHANGED
|
@@ -191,6 +191,12 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
191
191
|
var rowKey = getRowKeyField(rowItem);
|
|
192
192
|
var checked = isCheckedRowKey(rowKey);
|
|
193
193
|
var disabledCheckbox = checkRowIsDisabledCheckbox(rowItem);
|
|
194
|
+
if (rowItem.key === 'avg' || rowItem.key === 'sum') {
|
|
195
|
+
return {
|
|
196
|
+
node: null,
|
|
197
|
+
checked: false
|
|
198
|
+
};
|
|
199
|
+
}
|
|
194
200
|
return {
|
|
195
201
|
node: type === 'checkbox' ? ( /*#__PURE__*/React__default.createElement(Checkbox, {
|
|
196
202
|
checked: checked,
|
|
@@ -114,7 +114,7 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
114
114
|
if (virtual) {
|
|
115
115
|
setColWidths(getVirtualWidths());
|
|
116
116
|
} else {
|
|
117
|
-
//
|
|
117
|
+
// 当第一行有内容时并且没有重新设置列宽时,再去设置列宽
|
|
118
118
|
// Warning hasResetWidths.current 作用是防止某些浏览器下,下面逻辑死循环
|
|
119
119
|
if ((measureRowElement === null || measureRowElement === void 0 ? void 0 : measureRowElement.childNodes) && hasResetWidths.current === false) {
|
|
120
120
|
hasResetWidths.current = true;
|
|
@@ -133,7 +133,7 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
133
133
|
headerTableElement = _React$useState2[0],
|
|
134
134
|
setHeaderTableElement = _React$useState2[1];
|
|
135
135
|
// 控制列最小可调整宽度
|
|
136
|
-
var _React$useState3 = React__default.useState(
|
|
136
|
+
var _React$useState3 = React__default.useState(getGroupItemWidth(columns).minColWidths),
|
|
137
137
|
minColWidths = _React$useState3[0],
|
|
138
138
|
setMinColWidths = _React$useState3[1];
|
|
139
139
|
// 当列变化时同步更新 minColWidths
|
|
@@ -141,17 +141,16 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
141
141
|
var resizeObserver;
|
|
142
142
|
if (headerTableElement) {
|
|
143
143
|
resizeObserver = new ResizeObserver(function () {
|
|
144
|
-
var resizableHandlerWidth = 4;
|
|
145
144
|
var calcMinColWidths = Array.from(headerTableElement.childNodes).map(function (th, index) {
|
|
146
145
|
var minColWidth = getGroupItemWidth(columns).minColWidths[index];
|
|
146
|
+
// 如果设置了最小宽度,则直接使用最小宽度,否则使用标题宽度
|
|
147
|
+
if (minColWidth !== undefined && minColWidth !== 0) {
|
|
148
|
+
return minColWidth;
|
|
149
|
+
}
|
|
147
150
|
var thPaddingLeft = parseFloat(window.getComputedStyle(th).getPropertyValue('padding-left'));
|
|
148
|
-
var
|
|
149
|
-
var
|
|
150
|
-
|
|
151
|
-
}).reduce(function (prev, next) {
|
|
152
|
-
return prev + next;
|
|
153
|
-
}, 0) + thPaddingLeft * 2 + resizableHandlerWidth;
|
|
154
|
-
return childNodesWidth > minColWidth ? minColWidth : childNodesWidth;
|
|
151
|
+
var childNode = Array.from(th.childNodes)[0];
|
|
152
|
+
var childNodeWidth = childNode.offsetWidth + thPaddingLeft * 2;
|
|
153
|
+
return childNodeWidth || 40;
|
|
155
154
|
});
|
|
156
155
|
setMinColWidths(calcMinColWidths);
|
|
157
156
|
});
|
|
@@ -208,15 +207,15 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
208
207
|
}, [minColWidths, tableWidthAdjustOnResize]);
|
|
209
208
|
var getColgroupProps = React__default.useCallback(function (column, index) {
|
|
210
209
|
var width = colWidths[index] || undefined;
|
|
211
|
-
|
|
210
|
+
// const minWidth = minColWidths[index] || undefined
|
|
212
211
|
return {
|
|
213
212
|
style: {
|
|
214
|
-
width: width
|
|
215
|
-
minWidth: minWidth || width
|
|
213
|
+
width: width
|
|
214
|
+
// minWidth: minWidth || width,
|
|
216
215
|
}
|
|
217
216
|
// 'data-hover-highlight': setAttrStatus(isHoveredCol(column.dataKey)),
|
|
218
217
|
};
|
|
219
|
-
}, [colWidths
|
|
218
|
+
}, [colWidths]);
|
|
220
219
|
return {
|
|
221
220
|
measureRowElementRef: measureRowElementRef,
|
|
222
221
|
onColumnResizable: onColumnResizable,
|
package/lib/esm/utils/index.js
CHANGED
|
@@ -74,8 +74,8 @@ var getGroupItemWidth = function getGroupItemWidth(columns) {
|
|
|
74
74
|
}
|
|
75
75
|
// 如果没有设置列宽度,css 宽度默认是 `auto`,这里对于非数字 width 均设置为 0
|
|
76
76
|
var colWidth = isNumeric(width) ? Number(width) : 0;
|
|
77
|
-
var minColWidth = isNumeric(minWidth) ? Number(minWidth) :
|
|
78
|
-
colWidths.push(colWidth
|
|
77
|
+
var minColWidth = isNumeric(minWidth) ? Number(minWidth) : 0;
|
|
78
|
+
colWidths.push(colWidth);
|
|
79
79
|
minColWidths.push(minColWidth);
|
|
80
80
|
});
|
|
81
81
|
};
|
|
@@ -218,4 +218,19 @@ var getColumnByDefaultSortOrder = function getColumnByDefaultSortOrder(columns)
|
|
|
218
218
|
}
|
|
219
219
|
return {};
|
|
220
220
|
};
|
|
221
|
-
|
|
221
|
+
var flattenColumns = function flattenColumns(columns) {
|
|
222
|
+
var result = [];
|
|
223
|
+
var traverse = function traverse(cols) {
|
|
224
|
+
cols.forEach(function (col) {
|
|
225
|
+
var _a;
|
|
226
|
+
if ((_a = col.children) === null || _a === void 0 ? void 0 : _a.length) {
|
|
227
|
+
traverse(col.children);
|
|
228
|
+
} else {
|
|
229
|
+
result.push(col);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
traverse(columns);
|
|
234
|
+
return result;
|
|
235
|
+
};
|
|
236
|
+
export { checkNeedTotalOrEvg, flattenColumns, getColumnByDataKey, getColumnByDefaultSortOrder, getGroupItemWidth, getTotalOrEvgRowData, parseFixedColumns, parseLocalArray, setColumnsDefaultWidth, uuid };
|
package/lib/types/context.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ export declare const TableProvider: import("react").Provider<(Omit<{
|
|
|
5
5
|
getColgroupProps: (column: import("./types").FlattedTableColumnItemData, index: number) => {
|
|
6
6
|
style: {
|
|
7
7
|
width: number | undefined;
|
|
8
|
-
minWidth: number | undefined;
|
|
9
8
|
};
|
|
10
9
|
};
|
|
11
10
|
getStickyColProps: (column: any) => {
|
|
@@ -137,7 +136,6 @@ export declare const useTableContext: () => Omit<{
|
|
|
137
136
|
getColgroupProps: (column: import("./types").FlattedTableColumnItemData, index: number) => {
|
|
138
137
|
style: {
|
|
139
138
|
width: number | undefined;
|
|
140
|
-
minWidth: number | undefined;
|
|
141
139
|
};
|
|
142
140
|
};
|
|
143
141
|
getStickyColProps: (column: any) => {
|
|
@@ -12,7 +12,6 @@ export declare const useColWidth: ({ resizable, tableWidthAdjustOnResize, data,
|
|
|
12
12
|
getColgroupProps: (column: FlattedTableColumnItemData, index: number) => {
|
|
13
13
|
style: {
|
|
14
14
|
width: number | undefined;
|
|
15
|
-
minWidth: number | undefined;
|
|
16
15
|
};
|
|
17
16
|
};
|
|
18
17
|
setHeaderTableElement: React.Dispatch<React.SetStateAction<HTMLTableRowElement | null>>;
|
package/lib/types/use-table.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ export declare const useTable: ({ data, columns: columnsProp, defaultFixedToColu
|
|
|
7
7
|
getColgroupProps: (column: FlattedTableColumnItemData, index: number) => {
|
|
8
8
|
style: {
|
|
9
9
|
width: number | undefined;
|
|
10
|
-
minWidth: number | undefined;
|
|
11
10
|
};
|
|
12
11
|
};
|
|
13
12
|
getStickyColProps: (column: any) => {
|
|
@@ -27,3 +27,4 @@ export declare const getColumnByDataKey: (columns: TableColumnItem[], dataKey: s
|
|
|
27
27
|
* 获取默认排序的列
|
|
28
28
|
*/
|
|
29
29
|
export declare const getColumnByDefaultSortOrder: (columns: TableColumnItem[]) => TableColumnItem;
|
|
30
|
+
export declare const flattenColumns: (columns: TableColumnItem[]) => TableColumnItem[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hi-ui/table",
|
|
3
|
-
"version": "4.12.
|
|
3
|
+
"version": "4.12.3",
|
|
4
4
|
"description": "A sub-package for @hi-ui/hiui.",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "HiUI <mi-hiui@xiaomi.com>",
|
|
@@ -78,12 +78,12 @@
|
|
|
78
78
|
"react-resizable": "^3.0.4"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
|
-
"@hi-ui/core": ">=4.0.
|
|
81
|
+
"@hi-ui/core": ">=4.0.10",
|
|
82
82
|
"react": ">=16.8.6",
|
|
83
83
|
"react-dom": ">=16.8.6"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
|
-
"@hi-ui/core": "^4.0.
|
|
86
|
+
"@hi-ui/core": "^4.0.10",
|
|
87
87
|
"@hi-ui/core-css": "^4.1.5",
|
|
88
88
|
"@types/react-resizable": "^1.7.4",
|
|
89
89
|
"react": "^17.0.1",
|