@teamix/pro 1.5.25 → 1.5.27

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.
@@ -22,6 +22,7 @@ var _proField = require("@teamix/pro-field");
22
22
  var _actions = require("../actions");
23
23
  var _classnames = _interopRequireDefault(require("classnames"));
24
24
  var _pageContainer = _interopRequireDefault(require("../page-container"));
25
+ var _genAutoWidthColumns = require("./utils/genAutoWidthColumns");
25
26
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
26
27
  var _CardView = _interopRequireDefault(require("./components/CardView"));
27
28
  var _hooks = require("@teamix/hooks");
@@ -38,8 +39,8 @@ Object.keys(_typing).forEach(function (key) {
38
39
  }
39
40
  });
40
41
  });
41
- var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "afterDataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "footer", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestConfig", "requestWhenMount", "showPagination", "pageSizeList", "responsivePaginationType", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "autoRefreshProps", "customRequest", "filterColumnType", "defaultFilterParams", "reserveSelectedRecords", "size", "disableSelectAll", "context", "fixedTableBody", "isTree", "toolBarAutoWidth", "data-teamix-spm", "switchCardView", "cardViewProps", "defaultView", "emptyProps", "bindUrlProps", "bindUrl", "autoRedirect", "useMaxData"],
42
- _excluded2 = ["onChange"];
42
+ var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "afterDataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "footer", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestConfig", "requestWhenMount", "showPagination", "pageSizeList", "responsivePaginationType", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "autoRefreshProps", "customRequest", "filterColumnType", "defaultFilterParams", "reserveSelectedRecords", "size", "disableSelectAll", "context", "autoWidth", "fixedTableBody", "isTree", "toolBarAutoWidth", "data-teamix-spm", "switchCardView", "cardViewProps", "defaultView", "emptyProps", "bindUrlProps", "bindUrl", "autoRedirect", "useMaxData"],
43
+ _excluded2 = ["onChange", "onPageSizeChange"];
43
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
44
45
  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); }
45
46
  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; }
@@ -167,6 +168,8 @@ var ProTable = function ProTable(props) {
167
168
  propsSize = _props$size === void 0 ? 'medium' : _props$size,
168
169
  disableSelectAll = props.disableSelectAll,
169
170
  context = props.context,
171
+ _props$autoWidth = props.autoWidth,
172
+ autoWidthProp = _props$autoWidth === void 0 ? false : _props$autoWidth,
170
173
  _props$fixedTableBody = props.fixedTableBody,
171
174
  fixedTableBody = _props$fixedTableBody === void 0 ? false : _props$fixedTableBody,
172
175
  isTree = props.isTree,
@@ -230,6 +233,19 @@ var ProTable = function ProTable(props) {
230
233
  _useState16 = _slicedToArray(_useState15, 2),
231
234
  filteredColumns = _useState16[0],
232
235
  setFilteredColumns = _useState16[1];
236
+ // 全局状态 : 自适应表格
237
+ var autoWidth = (0, _react.useMemo)(function () {
238
+ var _getGlobalConfig2;
239
+ return ((_getGlobalConfig2 = (0, _utils.getGlobalConfig)('ProTable')) === null || _getGlobalConfig2 === void 0 ? void 0 : _getGlobalConfig2.autoWidth) || autoWidthProp;
240
+ }, [autoWidthProp]);
241
+ // 判断是否有操作列,有的话则渲染一个 shadow dom
242
+ var hasActionColumn = false;
243
+ if (autoWidth) {
244
+ hasActionColumn = filteredColumns.some(function (column) {
245
+ var _column$actionSchema, _column$actionSchema$;
246
+ return (column === null || column === void 0 ? void 0 : column.actionSchema) && ((_column$actionSchema = column.actionSchema) === null || _column$actionSchema === void 0 ? void 0 : (_column$actionSchema$ = _column$actionSchema.actions) === null || _column$actionSchema$ === void 0 ? void 0 : _column$actionSchema$.length) > 0;
247
+ });
248
+ }
233
249
  var _useState17 = (0, _react.useState)(propsSize),
234
250
  _useState18 = _slicedToArray(_useState17, 2),
235
251
  size = _useState18[0],
@@ -238,6 +254,13 @@ var ProTable = function ProTable(props) {
238
254
  _useState20 = _slicedToArray(_useState19, 2),
239
255
  showLoading = _useState20[0],
240
256
  setShowLoading = _useState20[1];
257
+ // 自动计算列宽需要的一些hook
258
+ var _useState21 = (0, _react.useState)(false),
259
+ _useState22 = _slicedToArray(_useState21, 2),
260
+ showShadowContainer = _useState22[0],
261
+ setShowShadowContainer = _useState22[1];
262
+ var shadowContainerRef = (0, _react.useRef)(null);
263
+ var shadowActionColumnContainerRef = (0, _react.useRef)(null);
241
264
  // 表格内部用作存储的 Ref,标识 Table 组件是否被第一次渲染。用作 useUrlState filter 第一次渲染时使用 state 数据请求
242
265
  var dataRef = (0, _react.useRef)({
243
266
  flag: true
@@ -258,19 +281,19 @@ var ProTable = function ProTable(props) {
258
281
  }, [currentPage, pageSize, urlState]);
259
282
  // 存储能够被 on 监听到的 ProTable 状态
260
283
  // 因为只做存储用。不需要更新视图以及需要同步更改。所以不使用 setState 更新
261
- var _useState21 = (0, _react.useState)({
284
+ var _useState23 = (0, _react.useState)({
262
285
  fullScreenState: false,
263
286
  filterRules: {},
264
287
  filterColumns: []
265
288
  }),
266
- _useState22 = _slicedToArray(_useState21, 1),
267
- actionRefState = _useState22[0];
289
+ _useState24 = _slicedToArray(_useState23, 1),
290
+ actionRefState = _useState24[0];
268
291
  // 存储 on 监听事件
269
- var _useState23 = (0, _react.useState)({
292
+ var _useState25 = (0, _react.useState)({
270
293
  fullScreenState: {}
271
294
  }),
272
- _useState24 = _slicedToArray(_useState23, 1),
273
- actionRefCallback = _useState24[0];
295
+ _useState26 = _slicedToArray(_useState25, 1),
296
+ actionRefCallback = _useState26[0];
274
297
  // 存储定时器 id
275
298
  var autoRefreshTimerRef = (0, _react.useRef)();
276
299
  var onResize = null;
@@ -382,20 +405,20 @@ var ProTable = function ProTable(props) {
382
405
  }, 50);
383
406
  };
384
407
  // header 区域高度。用作全屏计算吸顶吸底高度。默认不做计算
385
- var _useState25 = (0, _react.useState)(0),
386
- _useState26 = _slicedToArray(_useState25, 2),
387
- headerHeight = _useState26[0],
388
- setHeaderHeight = _useState26[1];
389
- // 全屏显示 className
390
- var _useState27 = (0, _react.useState)(false),
408
+ var _useState27 = (0, _react.useState)(0),
391
409
  _useState28 = _slicedToArray(_useState27, 2),
392
- fullscreenState = _useState28[0],
393
- setFullscreenState = _useState28[1];
394
- // 切换视角
395
- var _useState29 = (0, _react.useState)(defaultView !== null && defaultView !== void 0 ? defaultView : 'table'),
410
+ headerHeight = _useState28[0],
411
+ setHeaderHeight = _useState28[1];
412
+ // 全屏显示 className
413
+ var _useState29 = (0, _react.useState)(false),
396
414
  _useState30 = _slicedToArray(_useState29, 2),
397
- switchViewState = _useState30[0],
398
- setSwitchViewState = _useState30[1];
415
+ fullscreenState = _useState30[0],
416
+ setFullscreenState = _useState30[1];
417
+ // 切换视角
418
+ var _useState31 = (0, _react.useState)(defaultView !== null && defaultView !== void 0 ? defaultView : 'table'),
419
+ _useState32 = _slicedToArray(_useState31, 2),
420
+ switchViewState = _useState32[0],
421
+ setSwitchViewState = _useState32[1];
399
422
  // 切换全屏搜索开关
400
423
  var filterEnableRef = (0, _react.useRef)({
401
424
  fullscreen: false,
@@ -403,8 +426,8 @@ var ProTable = function ProTable(props) {
403
426
  });
404
427
  // 全局状态 : 大数据截断
405
428
  var globalUseMaxData = (0, _react.useMemo)(function () {
406
- var _getGlobalConfig2;
407
- return (_getGlobalConfig2 = (0, _utils.getGlobalConfig)('ProTable')) === null || _getGlobalConfig2 === void 0 ? void 0 : _getGlobalConfig2.useMaxData;
429
+ var _getGlobalConfig3;
430
+ return (_getGlobalConfig3 = (0, _utils.getGlobalConfig)('ProTable')) === null || _getGlobalConfig3 === void 0 ? void 0 : _getGlobalConfig3.useMaxData;
408
431
  }, []);
409
432
  // 非全屏状态下的
410
433
  var normalDataFilterFormRef = (0, _react.useRef)();
@@ -415,10 +438,10 @@ var ProTable = function ProTable(props) {
415
438
  var dataFilterFormRef = !fullscreenState ? normalDataFilterFormRef : fullscreenDataFilterFormRef;
416
439
  // let dataFilterForm = dataFilterFormRef.current;
417
440
  // 整个内容区是否超过一屏。用于表格在非全屏模式下的吸底
418
- var _useState31 = (0, _react.useState)(false),
419
- _useState32 = _slicedToArray(_useState31, 2),
420
- footerSuctionState = _useState32[0],
421
- setFooterSuctionState = _useState32[1];
441
+ var _useState33 = (0, _react.useState)(false),
442
+ _useState34 = _slicedToArray(_useState33, 2),
443
+ footerSuctionState = _useState34[0],
444
+ setFooterSuctionState = _useState34[1];
422
445
  // TODO 获取内容区是否超出一屏(暂时仅支持全家桶)
423
446
  var getFooterSuctionState = function getFooterSuctionState() {
424
447
  if (!footerSuction) {
@@ -569,6 +592,9 @@ var ProTable = function ProTable(props) {
569
592
  setFullscreenState(state);
570
593
  getHeaderHeight(state);
571
594
  actionRef === null || actionRef === void 0 ? void 0 : (_actionRef$current2 = actionRef.current) === null || _actionRef$current2 === void 0 ? void 0 : (_actionRef$current2$s = _actionRef$current2.setState) === null || _actionRef$current2$s === void 0 ? void 0 : _actionRef$current2$s.call(_actionRef$current2, 'fullScreenState', state);
595
+ if (autoWidth) {
596
+ reGenFilteredColumnsByAutoWidth();
597
+ }
572
598
  return state;
573
599
  },
574
600
  setColumn: function setColumn(newColumns) {
@@ -580,10 +606,16 @@ var ProTable = function ProTable(props) {
580
606
  if (update) {
581
607
  (0, _utils2.emit)('refreshFilterState', newColumns);
582
608
  }
609
+ if (autoWidth) {
610
+ reGenFilteredColumnsByAutoWidth(columns);
611
+ }
583
612
  },
584
613
  size: size,
585
614
  setSize: function setSize(mode) {
586
615
  _setSize(mode);
616
+ if (autoWidth) {
617
+ reGenFilteredColumnsByAutoWidth();
618
+ }
587
619
  },
588
620
  refresh: function refresh(params) {
589
621
  // card视角的刷新等于重新请求
@@ -647,6 +679,9 @@ var ProTable = function ProTable(props) {
647
679
  filterEnableRef: filterEnableRef,
648
680
  setData: function setData(data) {
649
681
  _setData(data);
682
+ if (autoWidth) {
683
+ reGenFilteredColumnsByAutoWidth();
684
+ }
650
685
  },
651
686
  resetTableMaxBodyHeight: function resetTableMaxBodyHeight(offset) {
652
687
  getHeaderHeight(fullscreenState, offset);
@@ -693,6 +728,21 @@ var ProTable = function ProTable(props) {
693
728
  if (propsActionRef) {
694
729
  propsActionRef.current = actionRef.current;
695
730
  }
731
+ function reGenFilteredColumnsByAutoWidth(columns) {
732
+ if (!autoWidth) {
733
+ return;
734
+ }
735
+ setShowShadowContainer(true);
736
+ var authWidthedColumns = (0, _genAutoWidthColumns.genAutoWidthColumns)(columns !== null && columns !== void 0 ? columns : filteredColumns, shadowContainerRef, data, size, useRowSelection, shadowActionColumnContainerRef);
737
+ setFilteredColumns(authWidthedColumns);
738
+ // 移除 shadow dom
739
+ // setTimeout(() => {
740
+ // if (document.querySelector('.teamix-pro-table-shadow-container')) {
741
+ // document.querySelector('.teamix-pro-table-shadow-container')?.remove();
742
+ // }
743
+ // }, 0);
744
+ }
745
+
696
746
  function onFormatResult(next) {
697
747
  props.onFormatResult && props.onFormatResult(next);
698
748
  // 如果开启了 autoRedirect 当当前页数不为1,并且data为空的时候,重定向到第一页
@@ -732,6 +782,9 @@ var ProTable = function ProTable(props) {
732
782
  setTotal(total + (next.total || ((_next$data3 = next.data) === null || _next$data3 === void 0 ? void 0 : _next$data3.length)));
733
783
  }
734
784
  setShowSkeleton(false);
785
+ if (autoWidth) {
786
+ reGenFilteredColumnsByAutoWidth();
787
+ }
735
788
  }
736
789
  // 请求表格数据工具函数
737
790
  var getData = (0, _utils.useRequest)(function (params) {
@@ -878,6 +931,9 @@ var ProTable = function ProTable(props) {
878
931
  _setData([].concat(_toConsumableArray(data), _toConsumableArray(dataRes || [])));
879
932
  setTotal(total + (totalRes || (dataRes === null || dataRes === void 0 ? void 0 : dataRes.length)));
880
933
  }
934
+ if (autoWidth) {
935
+ reGenFilteredColumnsByAutoWidth();
936
+ }
881
937
  setShowSkeleton(false);
882
938
  setCustomTableLoading(false);
883
939
  }
@@ -899,7 +955,7 @@ var ProTable = function ProTable(props) {
899
955
  if (Number.isInteger(time) && time >= 1000) {
900
956
  autoRefreshTimerRef.current = setTimeout(function () {
901
957
  // 自动刷新不显示 loading
902
- _request({}, true);
958
+ _request(params, true);
903
959
  }, Number(time));
904
960
  (0, _utils2.emit)('PRO_TABLE_REFRESH_TIMER_FLAG', Number(time));
905
961
  }
@@ -1106,6 +1162,7 @@ var ProTable = function ProTable(props) {
1106
1162
  var _props$paginationProp3;
1107
1163
  var _ref8 = (_props$paginationProp3 = props === null || props === void 0 ? void 0 : props.paginationProps) !== null && _props$paginationProp3 !== void 0 ? _props$paginationProp3 : {},
1108
1164
  onPaginationPropsChange = _ref8.onChange,
1165
+ onPageSizeChangeProp = _ref8.onPageSizeChange,
1109
1166
  othersPaginationProps = _objectWithoutProperties(_ref8, _excluded2);
1110
1167
  return /*#__PURE__*/_react.default.createElement("div", {
1111
1168
  className: cls('footer', {
@@ -1130,7 +1187,8 @@ var ProTable = function ProTable(props) {
1130
1187
  pageSizeSelector: total > (props.pageSize || 10) * 2 ? 'dropdown' : false,
1131
1188
  type: total / pageSize <= 2 ? 'simple' : 'normal',
1132
1189
  onPageSizeChange: function onPageSizeChange(number) {
1133
- return onChangePaginationSize(number);
1190
+ onChangePaginationSize(number);
1191
+ onPageSizeChangeProp === null || onPageSizeChangeProp === void 0 ? void 0 : onPageSizeChangeProp(number);
1134
1192
  },
1135
1193
  useMaxData: globalUseMaxData !== null && globalUseMaxData !== void 0 ? globalUseMaxData : useMaxData
1136
1194
  }, othersPaginationProps)))));
@@ -1168,7 +1226,11 @@ var ProTable = function ProTable(props) {
1168
1226
  // 'footer-suction': footerSuctionState && footerSuction,
1169
1227
  }),
1170
1228
  ref: tableRef
1171
- }, renderTable(isFullScreen), fixFooterState && /*#__PURE__*/_react.default.createElement(_pageContainer.default.FixedFooter, null, renderFooter()), !fixFooterState && renderFooter());
1229
+ }, showShadowContainer && (0, _genAutoWidthColumns.shadowContainer)({
1230
+ columns: filteredColumns,
1231
+ data: data,
1232
+ shadowContainerRef: shadowContainerRef
1233
+ }), hasActionColumn && (0, _genAutoWidthColumns.shadowActionColumnContainer)(filteredColumns, shadowActionColumnContainerRef), renderTable(isFullScreen), fixFooterState && /*#__PURE__*/_react.default.createElement(_pageContainer.default.FixedFooter, null, renderFooter()), !fixFooterState && renderFooter());
1172
1234
  });
1173
1235
  };
1174
1236
  var _default = ProTable;
@@ -78,6 +78,32 @@ $fullscreenPadding: 24px;
78
78
  transition: all 0.1s;
79
79
  }
80
80
  }
81
+ &-shadow-container {
82
+ overflow: hidden;
83
+ position: absolute;
84
+ right: 0;
85
+ left: 0;
86
+ top: 0;
87
+ visibility: hidden;
88
+ pointer-events: none;
89
+ }
90
+ &-shadow-container-columns {
91
+ display: flex;
92
+ >* {
93
+ flex-shrink: 0;
94
+ }
95
+ }
96
+ &-action-column-shadow-container {
97
+ overflow: hidden;
98
+ position: absolute;
99
+ right: 0;
100
+ left: 0;
101
+ top: 0;
102
+ visibility: hidden;
103
+ pointer-events: none;
104
+ display: flex;
105
+ }
106
+
81
107
  // sort icon
82
108
  .next-table-sort.next-table-header-icon {
83
109
  line-height: 16px;
@@ -13,7 +13,7 @@ import { ProCardProps } from '../card';
13
13
  declare type IFieldRenderProps = keyof ProFieldRenderProps;
14
14
  /** 列record函数 */
15
15
  declare type ProTableCellFunProp = (value: any, index: number, record: any, ...others: any) => any;
16
- declare type ITableCellRender = {
16
+ export declare type ITableCellRender = {
17
17
  [key in IFieldRenderProps]?: ProFieldRenderProps[key] | ProTableCellFunProp;
18
18
  } | ((...other: any) => React.ReactNode);
19
19
  declare type TDataService = {
@@ -24,6 +24,10 @@ declare type TDataService = {
24
24
  };
25
25
  export declare type responsivePaginationType = 'mini' | 'small' | 'simple' | 'normal';
26
26
  export declare type ProTableColumnProps = {
27
+ /** 自动计算宽度时的被挤占的情况 */
28
+ shrink?: number;
29
+ /** 是否自动适应该列宽度 */
30
+ autoWidth?: boolean;
27
31
  /**
28
32
  * 会在 title 之后展示一个 icon,hover 之后提示一些信息
29
33
  */
@@ -65,6 +69,8 @@ export declare type ProTableColumnProps = {
65
69
  } & Omit<ColumnProps, 'filters' | 'dataIndex' | 'filtersMode' | 'children'>;
66
70
  export declare type ProColumnProps = ProTableColumnProps;
67
71
  export declare type ProTableProps = {
72
+ /** 表格是否自适应宽度 */
73
+ autoWidth?: boolean;
68
74
  /** ProColums 定义,取代 Table 的 columns */
69
75
  columns: ProTableColumnProps[];
70
76
  /** 请求地址 */
@@ -11,3 +11,4 @@ export declare const renderColumnsTitle: (item: ProTableColumnProps, actionRef:
11
11
  * 负责单元格的具体渲染
12
12
  */
13
13
  export declare const renderCell: (value: any, item: ProTableColumnProps, index: number, record: any, actionRef: React.MutableRefObject<ProTableActionType | undefined>, context?: any, dataTeamixSpm?: string) => JSX.Element;
14
+ export declare const renderCellSmartWidth: (value: any, item: ProTableColumnProps, index: number, record: any) => 0 | import("@teamix/pro-field/lib/autoWidth/typing").ProFieldAutoWidthPropsItem;
@@ -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.renderCell = renderCell;
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 {};