@teamix/pro 1.5.24 → 1.5.26-beta-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/pro.all.min.css +1 -1
- package/dist/pro.css +1 -1
- package/dist/pro.js +25836 -22015
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/dist/pro.xconsole.min.css +1 -1
- package/es/card/index.scss +4 -0
- package/es/form/Components/FormItem2/index.js +1 -2
- package/es/form/SchemaForm/adapterType.js +3 -0
- package/es/form/fieldTypeMap.js +3 -0
- package/es/form/global.scss +7 -0
- package/es/index.d.ts +1 -1
- package/es/index.js +10 -1
- package/es/table/components/Cell/index.d.ts +17 -0
- package/es/table/components/Cell/index.js +191 -0
- package/es/table/components/Filter/index.js +3 -3
- package/es/table/components/Layout/index.js +9 -7
- package/es/table/components/Pagination/index.d.ts +5 -4
- package/es/table/components/Pagination/index.js +5 -3
- package/es/table/components/TableContent/index.d.ts +8 -0
- package/es/table/components/TableContent/index.js +23 -0
- package/es/table/components/ToolBar/index.js +1 -1
- package/es/table/index.js +172 -136
- package/es/table/index.scss +27 -0
- package/es/table/typing.d.ts +9 -1
- package/es/table/utils/columnRender.d.ts +1 -0
- package/es/table/utils/columnRender.js +41 -1
- package/es/table/utils/genAutoWidthColumns.d.ts +30 -0
- package/es/table/utils/genAutoWidthColumns.js +353 -0
- package/es/table/utils/genProColumnToColumn.js +11 -2
- package/es/table/utils/processColumns.d.ts +8 -0
- package/es/table/utils/processColumns.js +39 -0
- package/es/table/xconsole.scss +6 -0
- package/lib/card/index.scss +4 -0
- package/lib/form/Components/FormItem2/index.js +1 -2
- package/lib/form/SchemaForm/adapterType.js +3 -0
- package/lib/form/fieldTypeMap.js +3 -0
- package/lib/form/global.scss +7 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +11 -2
- package/lib/table/components/Cell/index.d.ts +17 -0
- package/lib/table/components/Cell/index.js +196 -0
- package/lib/table/components/Filter/index.js +3 -3
- package/lib/table/components/Layout/index.js +8 -6
- package/lib/table/components/Pagination/index.d.ts +5 -4
- package/lib/table/components/Pagination/index.js +4 -2
- package/lib/table/components/TableContent/index.d.ts +8 -0
- package/lib/table/components/TableContent/index.js +34 -0
- package/lib/table/components/ToolBar/index.js +1 -1
- package/lib/table/index.js +174 -138
- package/lib/table/index.scss +27 -0
- package/lib/table/typing.d.ts +9 -1
- package/lib/table/utils/columnRender.d.ts +1 -0
- package/lib/table/utils/columnRender.js +44 -3
- package/lib/table/utils/genAutoWidthColumns.d.ts +30 -0
- package/lib/table/utils/genAutoWidthColumns.js +368 -0
- package/lib/table/utils/genProColumnToColumn.js +10 -1
- package/lib/table/utils/processColumns.d.ts +8 -0
- package/lib/table/utils/processColumns.js +46 -0
- package/lib/table/xconsole.scss +6 -0
- package/package.json +1 -1
@@ -4,12 +4,13 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
5
5
|
value: true
|
6
6
|
});
|
7
|
-
exports.renderColumnsTitle = exports.renderCell = void 0;
|
7
|
+
exports.renderColumnsTitle = exports.renderCellSmartWidth = exports.renderCell = void 0;
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
9
9
|
var _utils = require("@teamix/utils");
|
10
10
|
var _actions = require("../../actions");
|
11
11
|
var _field = _interopRequireWildcard(require("../../field"));
|
12
12
|
var _Filter = _interopRequireDefault(require("../components/Filter"));
|
13
|
+
var _proField = require("@teamix/pro-field");
|
13
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
14
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
15
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -191,9 +192,49 @@ dataTeamixSpm) {
|
|
191
192
|
value: value,
|
192
193
|
render: newRender,
|
193
194
|
dataSource: newDataSource,
|
194
|
-
format: format
|
195
|
+
format: format,
|
196
|
+
proFieldWidthType: valueType
|
195
197
|
}, props));
|
196
198
|
};
|
199
|
+
exports.renderCell = renderCell;
|
200
|
+
var renderCellSmartWidth = function renderCellSmartWidth(value, item, index, record) {
|
201
|
+
var _item$valueType2 = item.valueType,
|
202
|
+
valueType = _item$valueType2 === void 0 ? 'text' : _item$valueType2,
|
203
|
+
render = item.render;
|
204
|
+
var newRender = null;
|
205
|
+
var newDataSource = null;
|
206
|
+
var props = item.props;
|
207
|
+
// 如果 render 直接传函数
|
208
|
+
if (typeof render === 'function') {
|
209
|
+
newRender = function newRender() {
|
210
|
+
return render === null || render === void 0 ? void 0 : render(value, index, record);
|
211
|
+
};
|
212
|
+
} else {
|
213
|
+
newRender = processBuriedPoint(processRenderFunction(render, value, index, record), record, value, index);
|
214
|
+
if (valueType === 'selectGroup') {
|
215
|
+
newRender = _objectSpread(_objectSpread({
|
216
|
+
maxShowNumber: 'auto',
|
217
|
+
foldText: 'more',
|
218
|
+
editOnClick: function editOnClick() {},
|
219
|
+
edit: true
|
220
|
+
}, newRender), {}, {
|
221
|
+
ellipsis: false
|
222
|
+
});
|
223
|
+
props = _objectSpread({
|
224
|
+
valueAlias: {
|
225
|
+
value: 'TagValue',
|
226
|
+
key: 'TagKey'
|
227
|
+
}
|
228
|
+
}, props);
|
229
|
+
}
|
230
|
+
if ((render === null || render === void 0 ? void 0 : render.type) === 'step') {
|
231
|
+
newRender = _objectSpread(_objectSpread({}, newRender), {}, {
|
232
|
+
ellipsis: false
|
233
|
+
});
|
234
|
+
}
|
235
|
+
}
|
236
|
+
return (0, _proField.getProFieldWidth)(valueType, newRender);
|
237
|
+
};
|
197
238
|
/**
|
198
239
|
* 处理 render 配置项是函数的情况
|
199
240
|
* @param render ProFieldRender
|
@@ -202,7 +243,7 @@ dataTeamixSpm) {
|
|
202
243
|
* @param record table cell record
|
203
244
|
* @returns
|
204
245
|
*/
|
205
|
-
exports.
|
246
|
+
exports.renderCellSmartWidth = renderCellSmartWidth;
|
206
247
|
var processRenderFunction = function processRenderFunction() {
|
207
248
|
var render = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
208
249
|
var value = arguments.length > 1 ? arguments[1] : undefined;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { MutableRefObject } from 'react';
|
2
|
+
import { ProTableColumnProps, ITableCellRender } from '../typing';
|
3
|
+
/**
|
4
|
+
* @param fileteredColumns
|
5
|
+
* @param ref
|
6
|
+
* @param data
|
7
|
+
* @returns
|
8
|
+
*/
|
9
|
+
export declare function genAutoWidthColumns(fileteredColumns: ProTableColumnProps[], ref: MutableRefObject<HTMLDivElement | null>, data: any[], size: 'small' | 'medium', useRowSelection?: boolean | undefined, actionColumnRef?: MutableRefObject<HTMLDivElement | null>): ProTableColumnProps[];
|
10
|
+
interface IShadowContainerProps {
|
11
|
+
columns: ProTableColumnProps[];
|
12
|
+
data: any[];
|
13
|
+
shadowContainerRef: MutableRefObject<null>;
|
14
|
+
}
|
15
|
+
export declare const shadowContainer: (props: IShadowContainerProps) => JSX.Element;
|
16
|
+
export declare const shadowActionColumnContainer: (columns: ProTableColumnProps[], shadowActionColumnContainerRef: MutableRefObject<null>) => JSX.Element | undefined;
|
17
|
+
export declare const computeableWidthTypeList: {
|
18
|
+
dateTime: (data: any[], render: ITableCellRender) => any;
|
19
|
+
};
|
20
|
+
export declare const fixedWidthTypeList: {
|
21
|
+
dateWeekRange: number;
|
22
|
+
dateMonthRange: number;
|
23
|
+
dateYearRange: number;
|
24
|
+
dateQuarterRange: number;
|
25
|
+
dateTimeRange: number;
|
26
|
+
time: number;
|
27
|
+
timeRange: number;
|
28
|
+
};
|
29
|
+
export declare const fieldTypeShrink: any;
|
30
|
+
export {};
|
@@ -0,0 +1,368 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.fixedWidthTypeList = exports.fieldTypeShrink = exports.computeableWidthTypeList = void 0;
|
8
|
+
exports.genAutoWidthColumns = genAutoWidthColumns;
|
9
|
+
exports.shadowContainer = exports.shadowActionColumnContainer = void 0;
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
11
|
+
var _utils = require("@teamix/utils");
|
12
|
+
var _pureColumnRender = require("./pureColumnRender");
|
13
|
+
var _columnRender = require("./columnRender");
|
14
|
+
var _actions = require("../../actions");
|
15
|
+
var _proField = require("@teamix/pro-field");
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
18
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
19
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
21
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
22
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
23
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
24
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
25
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
26
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
27
|
+
// 最大宽度
|
28
|
+
var maxColumnWidth = 600;
|
29
|
+
// 最小宽度
|
30
|
+
var minColumnWidth = 48;
|
31
|
+
// 每个列可以缩减的最大宽度
|
32
|
+
var columnShrinkMaxWidth = 100;
|
33
|
+
/**
|
34
|
+
* @param fileteredColumns
|
35
|
+
* @param ref
|
36
|
+
* @param data
|
37
|
+
* @returns
|
38
|
+
*/
|
39
|
+
function genAutoWidthColumns(fileteredColumns, ref, data, size, useRowSelection, actionColumnRef) {
|
40
|
+
if (!ref.current) {
|
41
|
+
return fileteredColumns;
|
42
|
+
}
|
43
|
+
var hasLockFlag = false;
|
44
|
+
var dom = ref.current;
|
45
|
+
var actionColumnDom = actionColumnRef === null || actionColumnRef === void 0 ? void 0 : actionColumnRef.current;
|
46
|
+
var childNodes = dom.children;
|
47
|
+
var finalColumns = [];
|
48
|
+
fileteredColumns.forEach(function (column, index) {
|
49
|
+
var _childNodes$index;
|
50
|
+
var render = column.render,
|
51
|
+
_column$valueType = column.valueType,
|
52
|
+
valueType = _column$valueType === void 0 ? 'text' : _column$valueType,
|
53
|
+
_column$autoWidth = column.autoWidth,
|
54
|
+
autoWidth = _column$autoWidth === void 0 ? true : _column$autoWidth,
|
55
|
+
actionSchema = column.actionSchema,
|
56
|
+
sortable = column.sortable,
|
57
|
+
lock = column.lock;
|
58
|
+
if (lock) {
|
59
|
+
hasLockFlag = true;
|
60
|
+
}
|
61
|
+
//@ts-ignore
|
62
|
+
var type = render === null || render === void 0 ? void 0 : render.type;
|
63
|
+
var finalType = type || valueType || '';
|
64
|
+
var shrink = fieldTypeShrink[finalType];
|
65
|
+
column.shrink = column.shrink || (shrink !== undefined ? shrink : 1);
|
66
|
+
if (column.isAutoWidth === true) {
|
67
|
+
console.log(column.title, 'isAutoWidth');
|
68
|
+
finalColumns.push(column);
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
;
|
72
|
+
if ((column === null || column === void 0 ? void 0 : column.columnFilters) === false) {
|
73
|
+
finalColumns.push(column);
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
// column.isAutoWidth = true
|
77
|
+
//@ts-ignore
|
78
|
+
// if (!autoWidth) {
|
79
|
+
// finalColumns.push(column);
|
80
|
+
// return;
|
81
|
+
// }
|
82
|
+
if (actionSchema) {
|
83
|
+
// TODO 操作列暂时未处理,但是应该根据actionSchema的数量直接推测出操作列的宽度
|
84
|
+
// console.log('column', column);
|
85
|
+
column.shrink = 0;
|
86
|
+
// column.width = 280;
|
87
|
+
// console.log(
|
88
|
+
// 'actionColumnDom',
|
89
|
+
// actionColumnDom?.childNodes[0].scrollWidth,
|
90
|
+
// );
|
91
|
+
if (actionColumnDom === null || actionColumnDom === void 0 ? void 0 : actionColumnDom.childNodes[0]) {
|
92
|
+
//@ts-ignore
|
93
|
+
var width = actionColumnDom === null || actionColumnDom === void 0 ? void 0 : actionColumnDom.childNodes[0].scrollWidth;
|
94
|
+
if (width >= 280) {
|
95
|
+
width = 280;
|
96
|
+
}
|
97
|
+
column.isAutoWidth = true;
|
98
|
+
column.width = defaultPaddingFixer(width, size, false);
|
99
|
+
}
|
100
|
+
finalColumns.push(column);
|
101
|
+
return;
|
102
|
+
}
|
103
|
+
// 当列没出来的时候不比较
|
104
|
+
// @ts-ignore
|
105
|
+
if ((column === null || column === void 0 ? void 0 : column.columnFilters) === false) {
|
106
|
+
finalColumns.push(column);
|
107
|
+
return;
|
108
|
+
}
|
109
|
+
// @ts-ignore
|
110
|
+
var titleWidth = (_childNodes$index = childNodes[index]) === null || _childNodes$index === void 0 ? void 0 : _childNodes$index.children[0].scrollWidth;
|
111
|
+
// @ts-ignore
|
112
|
+
if (fixedWidthTypeList[finalType]) {
|
113
|
+
// console.log(
|
114
|
+
// 'fixedWidthTypeList[finalType]',
|
115
|
+
// fixedWidthTypeList[finalType],
|
116
|
+
// );
|
117
|
+
// 固定宽度
|
118
|
+
column.isAutoWidth = true;
|
119
|
+
column.width = defaultPaddingFixer(
|
120
|
+
// @ts-ignore
|
121
|
+
Math.max(titleWidth, fixedWidthTypeList[finalType]), size, index === 0 && useRowSelection);
|
122
|
+
// @ts-ignore
|
123
|
+
} else if (computeableWidthTypeList[finalType]) {
|
124
|
+
// 可计算宽度
|
125
|
+
column.isAutoWidth = true;
|
126
|
+
column.width = defaultPaddingFixer(
|
127
|
+
// @ts-ignore
|
128
|
+
Math.max(titleWidth, computeableWidthTypeList[finalType](data, render)), size, index === 0 && useRowSelection);
|
129
|
+
} else {
|
130
|
+
// 直接根据 dom 计算
|
131
|
+
column.isAutoWidth = true;
|
132
|
+
column.width = defaultPaddingFixer(Math.max(titleWidth,
|
133
|
+
// @ts-ignore
|
134
|
+
calcWidthWithParentDOM(childNodes[index], column.shrink)), size, index === 0 && useRowSelection);
|
135
|
+
if ((column === null || column === void 0 ? void 0 : column.sortable) && (column === null || column === void 0 ? void 0 : column.tooltip)) {
|
136
|
+
// 检测有 sortable 和 tooltip 的时候增加宽度
|
137
|
+
column.width = column.width + 40;
|
138
|
+
}
|
139
|
+
}
|
140
|
+
if (index === 0) {
|
141
|
+
// 首列不会被挤占
|
142
|
+
column.shrink = 0;
|
143
|
+
}
|
144
|
+
finalColumns.push(column);
|
145
|
+
});
|
146
|
+
if (!hasLockFlag) {
|
147
|
+
// 如果没有锁列的情况,需要将所有列放到一屏内,此时需要将所有列放到一起计算一次
|
148
|
+
var containerWidth = dom.offsetWidth;
|
149
|
+
var comboColumns = calcMultiColumnLength(finalColumns, useRowSelection ? containerWidth - 50 : containerWidth);
|
150
|
+
return comboColumns;
|
151
|
+
}
|
152
|
+
return finalColumns;
|
153
|
+
}
|
154
|
+
var shadowContainer = function shadowContainer(props) {
|
155
|
+
var ref = /*#__PURE__*/(0, _react.createRef)();
|
156
|
+
var columns = props.columns,
|
157
|
+
data = props.data,
|
158
|
+
shadowContainerRef = props.shadowContainerRef;
|
159
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
160
|
+
ref: shadowContainerRef,
|
161
|
+
className: "teamix-pro-table-shadow-container"
|
162
|
+
}, columns.map(function (column, index) {
|
163
|
+
var dataIndex = column.dataIndex,
|
164
|
+
valueType = column.valueType;
|
165
|
+
if (!(column === null || column === void 0 ? void 0 : column.actionSchema)) {
|
166
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
167
|
+
className: "teamix-pro-table-shadow-container-columns",
|
168
|
+
key: index
|
169
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, (0, _columnRender.renderColumnsTitle)(column, ref)),
|
170
|
+
//@ts-ignore
|
171
|
+
!computeableWidthTypeList[valueType] &&
|
172
|
+
//@ts-ignore
|
173
|
+
!fixedWidthTypeList[valueType] && data.map(function (item, index) {
|
174
|
+
// @ts-ignore
|
175
|
+
column.smartWidth = (0, _columnRender.renderCellSmartWidth)(getValueFromRecord(dataIndex, item), column, index, item);
|
176
|
+
return (0, _pureColumnRender.renderCell)(getValueFromRecord(dataIndex, item), column, index, item);
|
177
|
+
}));
|
178
|
+
}
|
179
|
+
}));
|
180
|
+
};
|
181
|
+
exports.shadowContainer = shadowContainer;
|
182
|
+
var shadowActionColumnContainer = function shadowActionColumnContainer(columns, shadowActionColumnContainerRef) {
|
183
|
+
var actionColumn = columns.find(function (column) {
|
184
|
+
return column === null || column === void 0 ? void 0 : column.actionSchema;
|
185
|
+
});
|
186
|
+
if (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionSchema) {
|
187
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
188
|
+
ref: shadowActionColumnContainerRef,
|
189
|
+
className: "teamix-pro-table-action-column-shadow-container"
|
190
|
+
}, /*#__PURE__*/_react.default.createElement(_actions.ProActionGroup, _objectSpread(_objectSpread({
|
191
|
+
type: "text"
|
192
|
+
}, actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionSchema), {}, {
|
193
|
+
context: _objectSpread({}, actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionSchema.context)
|
194
|
+
})));
|
195
|
+
}
|
196
|
+
};
|
197
|
+
// 计算操作列的宽度
|
198
|
+
exports.shadowActionColumnContainer = shadowActionColumnContainer;
|
199
|
+
function getValueFromRecord(dataIndex, record) {
|
200
|
+
if (!dataIndex) {
|
201
|
+
return null;
|
202
|
+
}
|
203
|
+
if (Array.isArray(dataIndex)) {
|
204
|
+
var value = dataIndex.map(function (item) {
|
205
|
+
return (0, _utils.getTargetValue)("{{".concat(item, "}}"), _objectSpread(_objectSpread({}, record), {}, {
|
206
|
+
record: record
|
207
|
+
}));
|
208
|
+
});
|
209
|
+
return value;
|
210
|
+
} else {
|
211
|
+
var result = record;
|
212
|
+
var array = dataIndex.split('.');
|
213
|
+
array.forEach(function (item) {
|
214
|
+
return result = result ? result[item] : undefined;
|
215
|
+
});
|
216
|
+
return result;
|
217
|
+
}
|
218
|
+
}
|
219
|
+
// TODO 某些可以直接算出结果的 profield 类型白名单,待补充,每个类型下支持一个函数,用当前值和渲染类型算出一个结果
|
220
|
+
var computeableWidthTypeList = {
|
221
|
+
dateTime: function dateTime(data, render) {
|
222
|
+
var result = (0, _proField.getProFieldWidth)('dateTime', render);
|
223
|
+
// @ts-ignore
|
224
|
+
return (result === null || result === void 0 ? void 0 : result.minWidth) || 0;
|
225
|
+
}
|
226
|
+
};
|
227
|
+
// TODO 某些固定宽度的 profield 类型白名单,这里的数据可能需要综合考虑 dataFold 和 render.rows
|
228
|
+
exports.computeableWidthTypeList = computeableWidthTypeList;
|
229
|
+
var fixedWidthTypeList = {
|
230
|
+
// 时间日期
|
231
|
+
// dateTime: 142,
|
232
|
+
// dateMonth: 74, // 60
|
233
|
+
// dateWeek: 74,
|
234
|
+
// date: 100,
|
235
|
+
// dateYear: 46,
|
236
|
+
// dateQuarter: 64,
|
237
|
+
// dateRange: 212,
|
238
|
+
dateWeekRange: 156,
|
239
|
+
dateMonthRange: 156,
|
240
|
+
dateYearRange: 102,
|
241
|
+
dateQuarterRange: 136,
|
242
|
+
dateTimeRange: 326,
|
243
|
+
time: 38,
|
244
|
+
timeRange: 124
|
245
|
+
};
|
246
|
+
// TODO 不同类型的 profield 的 shrink,0表示不可以省略号,数字越大越容易被挤占空间
|
247
|
+
exports.fixedWidthTypeList = fixedWidthTypeList;
|
248
|
+
var fieldTypeShrink = {
|
249
|
+
tag: 0,
|
250
|
+
statusTag: 0,
|
251
|
+
statusIconTag: 0,
|
252
|
+
circle: 0,
|
253
|
+
rank: 0,
|
254
|
+
progress: 0,
|
255
|
+
money: 0,
|
256
|
+
number: 0,
|
257
|
+
percent: 0,
|
258
|
+
dateTime: 0,
|
259
|
+
ip: 0
|
260
|
+
};
|
261
|
+
exports.fieldTypeShrink = fieldTypeShrink;
|
262
|
+
function calcWidthWithParentDOM(dom, shrink) {
|
263
|
+
var childNodes = _toConsumableArray(dom.children);
|
264
|
+
childNodes.shift();
|
265
|
+
return calcSingleColumnLength(childNodes.map(function (node) {
|
266
|
+
return node.scrollWidth;
|
267
|
+
}), shrink);
|
268
|
+
}
|
269
|
+
function calcSingleColumnLength() {
|
270
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
271
|
+
var shrink = arguments.length > 1 ? arguments[1] : undefined;
|
272
|
+
if (shrink === 0) {
|
273
|
+
return Math.ceil(Math.max.apply(null, list));
|
274
|
+
}
|
275
|
+
return getConfidence90UpperBound(list);
|
276
|
+
}
|
277
|
+
/**
|
278
|
+
* 根据所有列的宽度和权重,结合总宽度,计算出各个列合适的宽度
|
279
|
+
* 目前算法:
|
280
|
+
* 当前需要的总宽度-总宽度=需要降低的宽度
|
281
|
+
* 从后往前,将shrink不为0的列,降低一些宽度到最小宽度
|
282
|
+
* 最小宽度可以用百分比去算
|
283
|
+
* TODO 当前shrink只用了0,其他的权重也要考虑一下
|
284
|
+
* @param list
|
285
|
+
* @param max
|
286
|
+
* @returns
|
287
|
+
*/
|
288
|
+
function calcMultiColumnLength() {
|
289
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
290
|
+
var max = arguments.length > 1 ? arguments[1] : undefined;
|
291
|
+
var result = _toConsumableArray(list);
|
292
|
+
var targetList = [];
|
293
|
+
var needWidth = 0;
|
294
|
+
var canShrink = 0;
|
295
|
+
list.forEach(function (item) {
|
296
|
+
//@ts-ignore
|
297
|
+
needWidth += item.width;
|
298
|
+
if (item.shrink !== 0) {
|
299
|
+
targetList.push(item);
|
300
|
+
//@ts-ignore
|
301
|
+
canShrink += Math.min(item.width - minColumnWidth, columnShrinkMaxWidth);
|
302
|
+
}
|
303
|
+
});
|
304
|
+
var widthToBeRemoved = needWidth - max;
|
305
|
+
if (widthToBeRemoved <= 0) {
|
306
|
+
return list;
|
307
|
+
}
|
308
|
+
// TODO 超过的特别多直接加锁列,这个逻辑怎么设计
|
309
|
+
// 目前用可以缩小的宽度加起来比较一下
|
310
|
+
if (canShrink < widthToBeRemoved) {
|
311
|
+
list[0].lock = 'left';
|
312
|
+
if (list[list.length - 1].actionSchema) {
|
313
|
+
list[list.length - 1].lock = 'right';
|
314
|
+
}
|
315
|
+
return list;
|
316
|
+
}
|
317
|
+
//@ts-ignore
|
318
|
+
var sortedList = targetList.sort(function (a, b) {
|
319
|
+
return a.width - b.width;
|
320
|
+
});
|
321
|
+
var shrinkedWidth = 0;
|
322
|
+
for (var i = sortedList.length - 1; i >= 0; i--) {
|
323
|
+
if (shrinkedWidth >= widthToBeRemoved) {
|
324
|
+
break;
|
325
|
+
}
|
326
|
+
var singleShrinkedWidth = Math.min(sortedList[i].width - minColumnWidth, columnShrinkMaxWidth, widthToBeRemoved - shrinkedWidth);
|
327
|
+
sortedList[i].width = sortedList[i].width - singleShrinkedWidth;
|
328
|
+
shrinkedWidth += singleShrinkedWidth;
|
329
|
+
}
|
330
|
+
return result;
|
331
|
+
}
|
332
|
+
/**
|
333
|
+
* 修正内容放在table中默认的padding
|
334
|
+
* @param width
|
335
|
+
* @returns
|
336
|
+
*/
|
337
|
+
function defaultPaddingFixer(width) {
|
338
|
+
var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'medium';
|
339
|
+
var half = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
340
|
+
return size === 'medium' ? width + (half ? 16 : 32) + 0.5 : width + (half ? 8 : 16) + 0.5;
|
341
|
+
}
|
342
|
+
function sum() {
|
343
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
344
|
+
return list.reduce(function (a, b) {
|
345
|
+
return a + b;
|
346
|
+
});
|
347
|
+
}
|
348
|
+
/**
|
349
|
+
* 假设样本正态分布,取 90% 置信区间的上界
|
350
|
+
* 当上界与最大值差距不大(目前是20)的时候,直接用最大值
|
351
|
+
* TODO 这里没考虑是否可以直接用标准差做评判依据,如标准差过大时,直接排序并展示前90%,或标准差很小时直接用最大值
|
352
|
+
* TODO 这里极限情况是不是会挂? 如:长度为9个100和2个10000,估计会挂,是否置信区间这个不靠谱。。。最差情况就直接展示90%的数据算了
|
353
|
+
*/
|
354
|
+
function getConfidence90UpperBound() {
|
355
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
356
|
+
var max = Math.max.apply(null, list);
|
357
|
+
var length = list.length;
|
358
|
+
var mean = sum(list) / length;
|
359
|
+
var std = Math.sqrt(sum(list.map(function (n) {
|
360
|
+
return (n - mean) * (n - mean);
|
361
|
+
})) / length);
|
362
|
+
var interval = length > 30 ? 1.65 * std / Math.sqrt(length) : 2.2622 * std / Math.sqrt(length);
|
363
|
+
var bound = Math.ceil(mean + interval);
|
364
|
+
if (max - bound < 20) {
|
365
|
+
return Math.min(max, maxColumnWidth);
|
366
|
+
}
|
367
|
+
return Math.min(bound, maxColumnWidth);
|
368
|
+
}
|
@@ -8,6 +8,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _columnRender = require("./columnRender");
|
9
9
|
var _skeleton = require("../../skeleton");
|
10
10
|
var _utils = require("@teamix/utils");
|
11
|
+
var _Cell = _interopRequireDefault(require("../components/Cell"));
|
11
12
|
var _excluded = ["filters", "dataIndex", "children"];
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
14
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
@@ -51,7 +52,15 @@ showSkeleton, actionRef) {
|
|
51
52
|
dataIndex: dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString(),
|
52
53
|
title: (0, _columnRender.renderColumnsTitle)(columnProps, actionRef, bindUrl, bindUrlProps),
|
53
54
|
cell: function cell(value, index, record) {
|
54
|
-
return (
|
55
|
+
return /*#__PURE__*/_react.default.createElement(_Cell.default, {
|
56
|
+
value: value,
|
57
|
+
item: columnProps,
|
58
|
+
index: index,
|
59
|
+
record: record,
|
60
|
+
actionRef: actionRef,
|
61
|
+
context: context,
|
62
|
+
dataTeamixSpm: dataTeamixSpm
|
63
|
+
});
|
55
64
|
}
|
56
65
|
});
|
57
66
|
});
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { ProTableColumnProps } from '../typing';
|
2
|
+
/**
|
3
|
+
* 处理原生传入的 columns 以便于 选择列 方便处理
|
4
|
+
* @param columns 原生传入的 columns
|
5
|
+
* @returns
|
6
|
+
*/
|
7
|
+
declare const processColumns: (columns: ProTableColumnProps[], initialColumns: ProTableColumnProps[]) => ProTableColumnProps[];
|
8
|
+
export default processColumns;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _utils = require("@teamix/utils");
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
10
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
11
|
+
/**
|
12
|
+
* 处理原生传入的 columns 以便于 选择列 方便处理
|
13
|
+
* @param columns 原生传入的 columns
|
14
|
+
* @returns
|
15
|
+
*/
|
16
|
+
var processColumns = function processColumns(columns, initialColumns) {
|
17
|
+
var _getGlobalConfig;
|
18
|
+
var globalFilterColumns = (_getGlobalConfig = (0, _utils.getGlobalConfig)('ProTable')) === null || _getGlobalConfig === void 0 ? void 0 : _getGlobalConfig.filterColumns;
|
19
|
+
var filterColumns = columns.filter(function (item) {
|
20
|
+
return item.columnFilters !== false && (item === null || item === void 0 ? void 0 : item.hidden) !== true && (!globalFilterColumns || globalFilterColumns(_objectSpread({}, item)));
|
21
|
+
});
|
22
|
+
// 处理只剩一列批量选择的情况下宽度错乱问题
|
23
|
+
if (filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) {
|
24
|
+
var _initialColumns$;
|
25
|
+
if ((filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) === 1) {
|
26
|
+
var _filterColumns$, _filterColumns$2;
|
27
|
+
if ((_filterColumns$ = filterColumns[0]) === null || _filterColumns$ === void 0 ? void 0 : _filterColumns$.width) {
|
28
|
+
delete filterColumns[0].width;
|
29
|
+
}
|
30
|
+
if ((_filterColumns$2 = filterColumns[0]) === null || _filterColumns$2 === void 0 ? void 0 : _filterColumns$2.lock) {
|
31
|
+
filterColumns[0].lock = false;
|
32
|
+
}
|
33
|
+
} else if (((_initialColumns$ = initialColumns[0]) === null || _initialColumns$ === void 0 ? void 0 : _initialColumns$.columnFilters) !== false) {
|
34
|
+
var _initialColumns$2, _initialColumns$3;
|
35
|
+
if ((_initialColumns$2 = initialColumns[0]) === null || _initialColumns$2 === void 0 ? void 0 : _initialColumns$2.width) {
|
36
|
+
filterColumns[0].width = initialColumns[0].width;
|
37
|
+
}
|
38
|
+
if ((_initialColumns$3 = initialColumns[0]) === null || _initialColumns$3 === void 0 ? void 0 : _initialColumns$3.lock) {
|
39
|
+
filterColumns[0].lock = initialColumns[0].lock;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return filterColumns;
|
44
|
+
};
|
45
|
+
var _default = processColumns;
|
46
|
+
exports.default = _default;
|