@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.
Files changed (61) hide show
  1. package/dist/pro.all.min.css +1 -1
  2. package/dist/pro.css +1 -1
  3. package/dist/pro.js +25836 -22015
  4. package/dist/pro.min.css +1 -1
  5. package/dist/pro.min.js +1 -1
  6. package/dist/pro.xconsole.min.css +1 -1
  7. package/es/card/index.scss +4 -0
  8. package/es/form/Components/FormItem2/index.js +1 -2
  9. package/es/form/SchemaForm/adapterType.js +3 -0
  10. package/es/form/fieldTypeMap.js +3 -0
  11. package/es/form/global.scss +7 -0
  12. package/es/index.d.ts +1 -1
  13. package/es/index.js +10 -1
  14. package/es/table/components/Cell/index.d.ts +17 -0
  15. package/es/table/components/Cell/index.js +191 -0
  16. package/es/table/components/Filter/index.js +3 -3
  17. package/es/table/components/Layout/index.js +9 -7
  18. package/es/table/components/Pagination/index.d.ts +5 -4
  19. package/es/table/components/Pagination/index.js +5 -3
  20. package/es/table/components/TableContent/index.d.ts +8 -0
  21. package/es/table/components/TableContent/index.js +23 -0
  22. package/es/table/components/ToolBar/index.js +1 -1
  23. package/es/table/index.js +172 -136
  24. package/es/table/index.scss +27 -0
  25. package/es/table/typing.d.ts +9 -1
  26. package/es/table/utils/columnRender.d.ts +1 -0
  27. package/es/table/utils/columnRender.js +41 -1
  28. package/es/table/utils/genAutoWidthColumns.d.ts +30 -0
  29. package/es/table/utils/genAutoWidthColumns.js +353 -0
  30. package/es/table/utils/genProColumnToColumn.js +11 -2
  31. package/es/table/utils/processColumns.d.ts +8 -0
  32. package/es/table/utils/processColumns.js +39 -0
  33. package/es/table/xconsole.scss +6 -0
  34. package/lib/card/index.scss +4 -0
  35. package/lib/form/Components/FormItem2/index.js +1 -2
  36. package/lib/form/SchemaForm/adapterType.js +3 -0
  37. package/lib/form/fieldTypeMap.js +3 -0
  38. package/lib/form/global.scss +7 -0
  39. package/lib/index.d.ts +1 -1
  40. package/lib/index.js +11 -2
  41. package/lib/table/components/Cell/index.d.ts +17 -0
  42. package/lib/table/components/Cell/index.js +196 -0
  43. package/lib/table/components/Filter/index.js +3 -3
  44. package/lib/table/components/Layout/index.js +8 -6
  45. package/lib/table/components/Pagination/index.d.ts +5 -4
  46. package/lib/table/components/Pagination/index.js +4 -2
  47. package/lib/table/components/TableContent/index.d.ts +8 -0
  48. package/lib/table/components/TableContent/index.js +34 -0
  49. package/lib/table/components/ToolBar/index.js +1 -1
  50. package/lib/table/index.js +174 -138
  51. package/lib/table/index.scss +27 -0
  52. package/lib/table/typing.d.ts +9 -1
  53. package/lib/table/utils/columnRender.d.ts +1 -0
  54. package/lib/table/utils/columnRender.js +44 -3
  55. package/lib/table/utils/genAutoWidthColumns.d.ts +30 -0
  56. package/lib/table/utils/genAutoWidthColumns.js +368 -0
  57. package/lib/table/utils/genProColumnToColumn.js +10 -1
  58. package/lib/table/utils/processColumns.d.ts +8 -0
  59. package/lib/table/utils/processColumns.js +46 -0
  60. package/lib/table/xconsole.scss +6 -0
  61. package/package.json +1 -1
@@ -19,6 +19,7 @@ import { getTargetValue } from '@teamix/utils';
19
19
  import { ProActionGroup } from '../../actions';
20
20
  import ProField, { LabelIconTip } from '../../field';
21
21
  import Filter from '../components/Filter';
22
+ import { getProFieldWidth } from '@teamix/pro-field';
22
23
  /**
23
24
  * 增加了 icon 的功能 render title
24
25
  */
@@ -183,9 +184,48 @@ dataTeamixSpm) {
183
184
  value: value,
184
185
  render: newRender,
185
186
  dataSource: newDataSource,
186
- format: format
187
+ format: format,
188
+ proFieldWidthType: valueType
187
189
  }, props));
188
190
  };
191
+ export var renderCellSmartWidth = function renderCellSmartWidth(value, item, index, record) {
192
+ var _item$valueType2 = item.valueType,
193
+ valueType = _item$valueType2 === void 0 ? 'text' : _item$valueType2,
194
+ render = item.render;
195
+ var newRender = null;
196
+ var newDataSource = null;
197
+ var props = item.props;
198
+ // 如果 render 直接传函数
199
+ if (typeof render === 'function') {
200
+ newRender = function newRender() {
201
+ return render === null || render === void 0 ? void 0 : render(value, index, record);
202
+ };
203
+ } else {
204
+ newRender = processBuriedPoint(processRenderFunction(render, value, index, record), record, value, index);
205
+ if (valueType === 'selectGroup') {
206
+ newRender = _objectSpread(_objectSpread({
207
+ maxShowNumber: 'auto',
208
+ foldText: 'more',
209
+ editOnClick: function editOnClick() {},
210
+ edit: true
211
+ }, newRender), {}, {
212
+ ellipsis: false
213
+ });
214
+ props = _objectSpread({
215
+ valueAlias: {
216
+ value: 'TagValue',
217
+ key: 'TagKey'
218
+ }
219
+ }, props);
220
+ }
221
+ if ((render === null || render === void 0 ? void 0 : render.type) === 'step') {
222
+ newRender = _objectSpread(_objectSpread({}, newRender), {}, {
223
+ ellipsis: false
224
+ });
225
+ }
226
+ }
227
+ return getProFieldWidth(valueType, newRender);
228
+ };
189
229
  /**
190
230
  * 处理 render 配置项是函数的情况
191
231
  * @param render ProFieldRender
@@ -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,353 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ 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."); }
3
+ 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); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ 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; }
7
+ 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; }
8
+ 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; }
9
+ 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; }
10
+ import React, { createRef } from 'react';
11
+ import { getTargetValue } from '@teamix/utils';
12
+ import { renderCell } from './pureColumnRender';
13
+ import { renderColumnsTitle } from './columnRender';
14
+ import { ProActionGroup } from '../../actions';
15
+ import { getProFieldWidth } from '@teamix/pro-field';
16
+ import { renderCellSmartWidth } from './columnRender';
17
+ // 最大宽度
18
+ var maxColumnWidth = 600;
19
+ // 最小宽度
20
+ var minColumnWidth = 48;
21
+ // 每个列可以缩减的最大宽度
22
+ var columnShrinkMaxWidth = 100;
23
+ /**
24
+ * @param fileteredColumns
25
+ * @param ref
26
+ * @param data
27
+ * @returns
28
+ */
29
+ export function genAutoWidthColumns(fileteredColumns, ref, data, size, useRowSelection, actionColumnRef) {
30
+ if (!ref.current) {
31
+ return fileteredColumns;
32
+ }
33
+ var hasLockFlag = false;
34
+ var dom = ref.current;
35
+ var actionColumnDom = actionColumnRef === null || actionColumnRef === void 0 ? void 0 : actionColumnRef.current;
36
+ var childNodes = dom.children;
37
+ var finalColumns = [];
38
+ fileteredColumns.forEach(function (column, index) {
39
+ var _childNodes$index;
40
+ var render = column.render,
41
+ _column$valueType = column.valueType,
42
+ valueType = _column$valueType === void 0 ? 'text' : _column$valueType,
43
+ _column$autoWidth = column.autoWidth,
44
+ autoWidth = _column$autoWidth === void 0 ? true : _column$autoWidth,
45
+ actionSchema = column.actionSchema,
46
+ sortable = column.sortable,
47
+ lock = column.lock;
48
+ if (lock) {
49
+ hasLockFlag = true;
50
+ }
51
+ //@ts-ignore
52
+ var type = render === null || render === void 0 ? void 0 : render.type;
53
+ var finalType = type || valueType || '';
54
+ var shrink = fieldTypeShrink[finalType];
55
+ column.shrink = column.shrink || (shrink !== undefined ? shrink : 1);
56
+ if (column.isAutoWidth === true) {
57
+ console.log(column.title, 'isAutoWidth');
58
+ finalColumns.push(column);
59
+ return;
60
+ }
61
+ ;
62
+ if ((column === null || column === void 0 ? void 0 : column.columnFilters) === false) {
63
+ finalColumns.push(column);
64
+ return;
65
+ }
66
+ // column.isAutoWidth = true
67
+ //@ts-ignore
68
+ // if (!autoWidth) {
69
+ // finalColumns.push(column);
70
+ // return;
71
+ // }
72
+ if (actionSchema) {
73
+ // TODO 操作列暂时未处理,但是应该根据actionSchema的数量直接推测出操作列的宽度
74
+ // console.log('column', column);
75
+ column.shrink = 0;
76
+ // column.width = 280;
77
+ // console.log(
78
+ // 'actionColumnDom',
79
+ // actionColumnDom?.childNodes[0].scrollWidth,
80
+ // );
81
+ if (actionColumnDom === null || actionColumnDom === void 0 ? void 0 : actionColumnDom.childNodes[0]) {
82
+ //@ts-ignore
83
+ var width = actionColumnDom === null || actionColumnDom === void 0 ? void 0 : actionColumnDom.childNodes[0].scrollWidth;
84
+ if (width >= 280) {
85
+ width = 280;
86
+ }
87
+ column.isAutoWidth = true;
88
+ column.width = defaultPaddingFixer(width, size, false);
89
+ }
90
+ finalColumns.push(column);
91
+ return;
92
+ }
93
+ // 当列没出来的时候不比较
94
+ // @ts-ignore
95
+ if ((column === null || column === void 0 ? void 0 : column.columnFilters) === false) {
96
+ finalColumns.push(column);
97
+ return;
98
+ }
99
+ // @ts-ignore
100
+ var titleWidth = (_childNodes$index = childNodes[index]) === null || _childNodes$index === void 0 ? void 0 : _childNodes$index.children[0].scrollWidth;
101
+ // @ts-ignore
102
+ if (fixedWidthTypeList[finalType]) {
103
+ // console.log(
104
+ // 'fixedWidthTypeList[finalType]',
105
+ // fixedWidthTypeList[finalType],
106
+ // );
107
+ // 固定宽度
108
+ column.isAutoWidth = true;
109
+ column.width = defaultPaddingFixer(
110
+ // @ts-ignore
111
+ Math.max(titleWidth, fixedWidthTypeList[finalType]), size, index === 0 && useRowSelection);
112
+ // @ts-ignore
113
+ } else if (computeableWidthTypeList[finalType]) {
114
+ // 可计算宽度
115
+ column.isAutoWidth = true;
116
+ column.width = defaultPaddingFixer(
117
+ // @ts-ignore
118
+ Math.max(titleWidth, computeableWidthTypeList[finalType](data, render)), size, index === 0 && useRowSelection);
119
+ } else {
120
+ // 直接根据 dom 计算
121
+ column.isAutoWidth = true;
122
+ column.width = defaultPaddingFixer(Math.max(titleWidth,
123
+ // @ts-ignore
124
+ calcWidthWithParentDOM(childNodes[index], column.shrink)), size, index === 0 && useRowSelection);
125
+ if ((column === null || column === void 0 ? void 0 : column.sortable) && (column === null || column === void 0 ? void 0 : column.tooltip)) {
126
+ // 检测有 sortable 和 tooltip 的时候增加宽度
127
+ column.width = column.width + 40;
128
+ }
129
+ }
130
+ if (index === 0) {
131
+ // 首列不会被挤占
132
+ column.shrink = 0;
133
+ }
134
+ finalColumns.push(column);
135
+ });
136
+ if (!hasLockFlag) {
137
+ // 如果没有锁列的情况,需要将所有列放到一屏内,此时需要将所有列放到一起计算一次
138
+ var containerWidth = dom.offsetWidth;
139
+ var comboColumns = calcMultiColumnLength(finalColumns, useRowSelection ? containerWidth - 50 : containerWidth);
140
+ return comboColumns;
141
+ }
142
+ return finalColumns;
143
+ }
144
+ export var shadowContainer = function shadowContainer(props) {
145
+ var ref = /*#__PURE__*/createRef();
146
+ var columns = props.columns,
147
+ data = props.data,
148
+ shadowContainerRef = props.shadowContainerRef;
149
+ return /*#__PURE__*/React.createElement("div", {
150
+ ref: shadowContainerRef,
151
+ className: "teamix-pro-table-shadow-container"
152
+ }, columns.map(function (column, index) {
153
+ var dataIndex = column.dataIndex,
154
+ valueType = column.valueType;
155
+ if (!(column === null || column === void 0 ? void 0 : column.actionSchema)) {
156
+ return /*#__PURE__*/React.createElement("div", {
157
+ className: "teamix-pro-table-shadow-container-columns",
158
+ key: index
159
+ }, /*#__PURE__*/React.createElement("div", null, renderColumnsTitle(column, ref)),
160
+ //@ts-ignore
161
+ !computeableWidthTypeList[valueType] &&
162
+ //@ts-ignore
163
+ !fixedWidthTypeList[valueType] && data.map(function (item, index) {
164
+ // @ts-ignore
165
+ column.smartWidth = renderCellSmartWidth(getValueFromRecord(dataIndex, item), column, index, item);
166
+ return renderCell(getValueFromRecord(dataIndex, item), column, index, item);
167
+ }));
168
+ }
169
+ }));
170
+ };
171
+ export var shadowActionColumnContainer = function shadowActionColumnContainer(columns, shadowActionColumnContainerRef) {
172
+ var actionColumn = columns.find(function (column) {
173
+ return column === null || column === void 0 ? void 0 : column.actionSchema;
174
+ });
175
+ if (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionSchema) {
176
+ return /*#__PURE__*/React.createElement("div", {
177
+ ref: shadowActionColumnContainerRef,
178
+ className: "teamix-pro-table-action-column-shadow-container"
179
+ }, /*#__PURE__*/React.createElement(ProActionGroup, _objectSpread(_objectSpread({
180
+ type: "text"
181
+ }, actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionSchema), {}, {
182
+ context: _objectSpread({}, actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionSchema.context)
183
+ })));
184
+ }
185
+ };
186
+ // 计算操作列的宽度
187
+ function getValueFromRecord(dataIndex, record) {
188
+ if (!dataIndex) {
189
+ return null;
190
+ }
191
+ if (Array.isArray(dataIndex)) {
192
+ var value = dataIndex.map(function (item) {
193
+ return getTargetValue("{{".concat(item, "}}"), _objectSpread(_objectSpread({}, record), {}, {
194
+ record: record
195
+ }));
196
+ });
197
+ return value;
198
+ } else {
199
+ var result = record;
200
+ var array = dataIndex.split('.');
201
+ array.forEach(function (item) {
202
+ return result = result ? result[item] : undefined;
203
+ });
204
+ return result;
205
+ }
206
+ }
207
+ // TODO 某些可以直接算出结果的 profield 类型白名单,待补充,每个类型下支持一个函数,用当前值和渲染类型算出一个结果
208
+ export var computeableWidthTypeList = {
209
+ dateTime: function dateTime(data, render) {
210
+ var result = getProFieldWidth('dateTime', render);
211
+ // @ts-ignore
212
+ return (result === null || result === void 0 ? void 0 : result.minWidth) || 0;
213
+ }
214
+ };
215
+ // TODO 某些固定宽度的 profield 类型白名单,这里的数据可能需要综合考虑 dataFold 和 render.rows
216
+ export var fixedWidthTypeList = {
217
+ // 时间日期
218
+ // dateTime: 142,
219
+ // dateMonth: 74, // 60
220
+ // dateWeek: 74,
221
+ // date: 100,
222
+ // dateYear: 46,
223
+ // dateQuarter: 64,
224
+ // dateRange: 212,
225
+ dateWeekRange: 156,
226
+ dateMonthRange: 156,
227
+ dateYearRange: 102,
228
+ dateQuarterRange: 136,
229
+ dateTimeRange: 326,
230
+ time: 38,
231
+ timeRange: 124
232
+ };
233
+ // TODO 不同类型的 profield 的 shrink,0表示不可以省略号,数字越大越容易被挤占空间
234
+ export var fieldTypeShrink = {
235
+ tag: 0,
236
+ statusTag: 0,
237
+ statusIconTag: 0,
238
+ circle: 0,
239
+ rank: 0,
240
+ progress: 0,
241
+ money: 0,
242
+ number: 0,
243
+ percent: 0,
244
+ dateTime: 0,
245
+ ip: 0
246
+ };
247
+ function calcWidthWithParentDOM(dom, shrink) {
248
+ var childNodes = _toConsumableArray(dom.children);
249
+ childNodes.shift();
250
+ return calcSingleColumnLength(childNodes.map(function (node) {
251
+ return node.scrollWidth;
252
+ }), shrink);
253
+ }
254
+ function calcSingleColumnLength() {
255
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
256
+ var shrink = arguments.length > 1 ? arguments[1] : undefined;
257
+ if (shrink === 0) {
258
+ return Math.ceil(Math.max.apply(null, list));
259
+ }
260
+ return getConfidence90UpperBound(list);
261
+ }
262
+ /**
263
+ * 根据所有列的宽度和权重,结合总宽度,计算出各个列合适的宽度
264
+ * 目前算法:
265
+ * 当前需要的总宽度-总宽度=需要降低的宽度
266
+ * 从后往前,将shrink不为0的列,降低一些宽度到最小宽度
267
+ * 最小宽度可以用百分比去算
268
+ * TODO 当前shrink只用了0,其他的权重也要考虑一下
269
+ * @param list
270
+ * @param max
271
+ * @returns
272
+ */
273
+ function calcMultiColumnLength() {
274
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
275
+ var max = arguments.length > 1 ? arguments[1] : undefined;
276
+ var result = _toConsumableArray(list);
277
+ var targetList = [];
278
+ var needWidth = 0;
279
+ var canShrink = 0;
280
+ list.forEach(function (item) {
281
+ //@ts-ignore
282
+ needWidth += item.width;
283
+ if (item.shrink !== 0) {
284
+ targetList.push(item);
285
+ //@ts-ignore
286
+ canShrink += Math.min(item.width - minColumnWidth, columnShrinkMaxWidth);
287
+ }
288
+ });
289
+ var widthToBeRemoved = needWidth - max;
290
+ if (widthToBeRemoved <= 0) {
291
+ return list;
292
+ }
293
+ // TODO 超过的特别多直接加锁列,这个逻辑怎么设计
294
+ // 目前用可以缩小的宽度加起来比较一下
295
+ if (canShrink < widthToBeRemoved) {
296
+ list[0].lock = 'left';
297
+ if (list[list.length - 1].actionSchema) {
298
+ list[list.length - 1].lock = 'right';
299
+ }
300
+ return list;
301
+ }
302
+ //@ts-ignore
303
+ var sortedList = targetList.sort(function (a, b) {
304
+ return a.width - b.width;
305
+ });
306
+ var shrinkedWidth = 0;
307
+ for (var i = sortedList.length - 1; i >= 0; i--) {
308
+ if (shrinkedWidth >= widthToBeRemoved) {
309
+ break;
310
+ }
311
+ var singleShrinkedWidth = Math.min(sortedList[i].width - minColumnWidth, columnShrinkMaxWidth, widthToBeRemoved - shrinkedWidth);
312
+ sortedList[i].width = sortedList[i].width - singleShrinkedWidth;
313
+ shrinkedWidth += singleShrinkedWidth;
314
+ }
315
+ return result;
316
+ }
317
+ /**
318
+ * 修正内容放在table中默认的padding
319
+ * @param width
320
+ * @returns
321
+ */
322
+ function defaultPaddingFixer(width) {
323
+ var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'medium';
324
+ var half = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
325
+ return size === 'medium' ? width + (half ? 16 : 32) + 0.5 : width + (half ? 8 : 16) + 0.5;
326
+ }
327
+ function sum() {
328
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
329
+ return list.reduce(function (a, b) {
330
+ return a + b;
331
+ });
332
+ }
333
+ /**
334
+ * 假设样本正态分布,取 90% 置信区间的上界
335
+ * 当上界与最大值差距不大(目前是20)的时候,直接用最大值
336
+ * TODO 这里没考虑是否可以直接用标准差做评判依据,如标准差过大时,直接排序并展示前90%,或标准差很小时直接用最大值
337
+ * TODO 这里极限情况是不是会挂? 如:长度为9个100和2个10000,估计会挂,是否置信区间这个不靠谱。。。最差情况就直接展示90%的数据算了
338
+ */
339
+ function getConfidence90UpperBound() {
340
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
341
+ var max = Math.max.apply(null, list);
342
+ var length = list.length;
343
+ var mean = sum(list) / length;
344
+ var std = Math.sqrt(sum(list.map(function (n) {
345
+ return (n - mean) * (n - mean);
346
+ })) / length);
347
+ var interval = length > 30 ? 1.65 * std / Math.sqrt(length) : 2.2622 * std / Math.sqrt(length);
348
+ var bound = Math.ceil(mean + interval);
349
+ if (max - bound < 20) {
350
+ return Math.min(max, maxColumnWidth);
351
+ }
352
+ return Math.min(bound, maxColumnWidth);
353
+ }
@@ -5,9 +5,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
5
5
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
6
6
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
7
7
  import React from 'react';
8
- import { renderColumnsTitle, renderCell } from './columnRender';
8
+ import { renderColumnsTitle } from './columnRender';
9
9
  import { ProSkeletonRaw as Skeleton } from '../../skeleton';
10
10
  import { getLanguage } from '@teamix/utils';
11
+ import Cell from '../components/Cell';
11
12
  /**
12
13
  * ProColumn => Column
13
14
  */
@@ -44,7 +45,15 @@ showSkeleton, actionRef) {
44
45
  dataIndex: dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString(),
45
46
  title: renderColumnsTitle(columnProps, actionRef, bindUrl, bindUrlProps),
46
47
  cell: function cell(value, index, record) {
47
- return renderCell(value, columnProps, index, record, actionRef, context, dataTeamixSpm);
48
+ return /*#__PURE__*/React.createElement(Cell, {
49
+ value: value,
50
+ item: columnProps,
51
+ index: index,
52
+ record: record,
53
+ actionRef: actionRef,
54
+ context: context,
55
+ dataTeamixSpm: dataTeamixSpm
56
+ });
48
57
  }
49
58
  });
50
59
  });
@@ -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,39 @@
1
+ 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; }
2
+ 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; }
3
+ 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; }
4
+ import { getGlobalConfig } from '@teamix/utils';
5
+ /**
6
+ * 处理原生传入的 columns 以便于 选择列 方便处理
7
+ * @param columns 原生传入的 columns
8
+ * @returns
9
+ */
10
+ var processColumns = function processColumns(columns, initialColumns) {
11
+ var _getGlobalConfig;
12
+ var globalFilterColumns = (_getGlobalConfig = getGlobalConfig('ProTable')) === null || _getGlobalConfig === void 0 ? void 0 : _getGlobalConfig.filterColumns;
13
+ var filterColumns = columns.filter(function (item) {
14
+ return item.columnFilters !== false && (item === null || item === void 0 ? void 0 : item.hidden) !== true && (!globalFilterColumns || globalFilterColumns(_objectSpread({}, item)));
15
+ });
16
+ // 处理只剩一列批量选择的情况下宽度错乱问题
17
+ if (filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) {
18
+ var _initialColumns$;
19
+ if ((filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) === 1) {
20
+ var _filterColumns$, _filterColumns$2;
21
+ if ((_filterColumns$ = filterColumns[0]) === null || _filterColumns$ === void 0 ? void 0 : _filterColumns$.width) {
22
+ delete filterColumns[0].width;
23
+ }
24
+ if ((_filterColumns$2 = filterColumns[0]) === null || _filterColumns$2 === void 0 ? void 0 : _filterColumns$2.lock) {
25
+ filterColumns[0].lock = false;
26
+ }
27
+ } else if (((_initialColumns$ = initialColumns[0]) === null || _initialColumns$ === void 0 ? void 0 : _initialColumns$.columnFilters) !== false) {
28
+ var _initialColumns$2, _initialColumns$3;
29
+ if ((_initialColumns$2 = initialColumns[0]) === null || _initialColumns$2 === void 0 ? void 0 : _initialColumns$2.width) {
30
+ filterColumns[0].width = initialColumns[0].width;
31
+ }
32
+ if ((_initialColumns$3 = initialColumns[0]) === null || _initialColumns$3 === void 0 ? void 0 : _initialColumns$3.lock) {
33
+ filterColumns[0].lock = initialColumns[0].lock;
34
+ }
35
+ }
36
+ }
37
+ return filterColumns;
38
+ };
39
+ export default processColumns;
@@ -0,0 +1,6 @@
1
+ .theme-xconsole {
2
+ .next-menu-item-inner {
3
+ display: flex;
4
+ align-items: center;
5
+ }
6
+ }
@@ -310,4 +310,8 @@
310
310
  background: transparent;
311
311
  }
312
312
 
313
+ .next-card-content-container:has(.cloud-wnumbercard-data-overview-container) {
314
+ margin-top: -16px;
315
+ }
316
+
313
317
  }
@@ -153,8 +153,7 @@ var BaseItem = function BaseItem(props) {
153
153
  }
154
154
  var prefixCls = (0, _builtins__.usePrefixCls)('formily-item', props);
155
155
  var prefix = (0, _builtins__.usePrefixCls)();
156
- console.log('feedbackLayout', feedbackLayout);
157
- var formatChildren = feedbackLayout === 'popover' || feedbackLayout === 'hover-popover' ? /*#__PURE__*/_react.default.createElement(_components.Balloon, _objectSpread({
156
+ var formatChildren = (feedbackLayout === 'popover' || feedbackLayout === 'hover-popover') && !!feedbackText ? /*#__PURE__*/_react.default.createElement(_components.Balloon, _objectSpread({
158
157
  needAdjust: true,
159
158
  align: "t",
160
159
  closable: false,
@@ -18,7 +18,10 @@ var typeMap = (_typeMap = {
18
18
  Money: 'number',
19
19
  Select: 'string',
20
20
  MenuSelect: 'string',
21
+ MultipleMenuSelect: 'array',
21
22
  MultipleSelect: 'array',
23
+ MenuCascaderSelect: 'string',
24
+ MultipleMenuCascaderSelect: 'array',
22
25
  TreeSelect: 'string',
23
26
  Cascader: 'string',
24
27
  MultipleCascader: 'array',
@@ -13,6 +13,9 @@ var fieldTypeMap = {
13
13
  Money: 'money',
14
14
  Select: 'select',
15
15
  MenuSelect: 'menuSelect',
16
+ MultipleMenuSelect: 'multipleMenuSelect',
17
+ MenuCascaderSelect: 'menuCascaderSelect',
18
+ MultipleMenuCascaderSelect: 'multipleMenuCascaderSelect',
16
19
  MultipleSelect: 'multipleSelect',
17
20
  TreeSelect: 'treeSelect',
18
21
  Cascader: 'cascader',
@@ -12,3 +12,10 @@ $inset-font-weight-medium: calc(
12
12
  $noborder-font-weight-medium: calc(
13
13
  var(--form-element-medium-height, 32px) - var(--input-border-width, 1px) * 2
14
14
  );
15
+ .next-formily-item.next-formily-item.next-formily-item {
16
+ display: flex;
17
+ font-size: var(--font-size-body-1,12px);
18
+ }
19
+ .next-formily-item-inset.next-formily-item-inset.next-formily-item-inset {
20
+ line-height: calc(var(--form-element-medium-height, 32px) - var(--input-border-width, 1px)*2);
21
+ }
package/lib/index.d.ts CHANGED
@@ -30,5 +30,5 @@ export * from './sidebar';
30
30
  export * from './utils';
31
31
  export * from './timeline';
32
32
  export * from './image';
33
- declare const version = "1.5.24";
33
+ declare const version = "1.5.26-beta-2";
34
34
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProSidebar, ProTimeline, TeamixIcon, ProImage, hooks, nocode, templates, utils, };
package/lib/index.js CHANGED
@@ -299,7 +299,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
299
299
  if (!((_window = window) === null || _window === void 0 ? void 0 : _window.TEAMIXPRO_WITHOUT_ICON)) {
300
300
  _icon.default.setConfig(_utils.default.getTeamixIconConfig());
301
301
  }
302
- var version = '1.5.24';
302
+ var version = '1.5.26-beta-2';
303
303
  // By TeamixTest
304
304
  exports.version = version;
305
305
  window.postMessage({
@@ -310,4 +310,13 @@ window.postMessage({
310
310
  moduleVersion: version,
311
311
  moduleType: 'TeamixPro',
312
312
  componentName: 'TeamixPro'
313
- }, '*');
313
+ }, '*');
314
+ // window.TeamixMaterial = {
315
+ // ...window.TeamixMaterial,
316
+ // ProTable: ProTable
317
+ // }
318
+ // window.TeamixPro = {
319
+ // ...window.TeamixPro,
320
+ // ProTable: ProTable
321
+ // }
322
+ // console.log('TeamixPro')
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 渲染列的逻辑函数
3
+ */
4
+ import React from 'react';
5
+ import { ProTableColumnProps, ProTableActionType } from '../../typing';
6
+ interface ICellProps {
7
+ value: any;
8
+ item: ProTableColumnProps;
9
+ index: number;
10
+ record: any;
11
+ actionRef: React.MutableRefObject<ProTableActionType | undefined>;
12
+ /** 接收外部比如 dialog-table 传过来的 context,用于弹窗关闭等 */
13
+ context?: any;
14
+ dataTeamixSpm?: string;
15
+ }
16
+ declare const _default: React.MemoExoticComponent<(props: ICellProps) => JSX.Element>;
17
+ export default _default;