@teamix/pro 1.2.30 → 1.2.31

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 (35) hide show
  1. package/dist/pro.js +193 -165
  2. package/dist/pro.min.js +1 -1
  3. package/es/form/Filter/SimpleFilter.js +10 -3
  4. package/es/form/typing.d.ts +1 -1
  5. package/es/index.d.ts +1 -1
  6. package/es/index.js +1 -1
  7. package/es/info/components/baseInfo/index.js +2 -1
  8. package/es/table/components/Filter/index.js +6 -6
  9. package/es/table/index.js +67 -17
  10. package/es/table/typing.d.ts +2 -2
  11. package/es/table/utils/columnRender.js +1 -1
  12. package/es/table/utils/index.d.ts +2 -1
  13. package/es/table/utils/index.js +62 -113
  14. package/lib/form/Filter/SimpleFilter.js +8 -1
  15. package/lib/form/typing.d.ts +1 -1
  16. package/lib/index.d.ts +1 -1
  17. package/lib/index.js +1 -1
  18. package/lib/info/components/baseInfo/index.js +2 -1
  19. package/lib/table/components/Filter/index.js +6 -6
  20. package/lib/table/index.js +66 -16
  21. package/lib/table/typing.d.ts +2 -2
  22. package/lib/table/utils/columnRender.js +1 -1
  23. package/lib/table/utils/index.d.ts +2 -1
  24. package/lib/table/utils/index.js +63 -112
  25. package/package.json +1 -1
  26. package/es/form/Components/SelectTable/index.d.ts +0 -24
  27. package/es/form/Components/SelectTable/index.js +0 -135
  28. package/es/form/Components/SelectTable/index.scss +0 -28
  29. package/es/form/Components/SelectTable/table.d.ts +0 -6
  30. package/es/form/Components/SelectTable/table.js +0 -64
  31. package/lib/form/Components/SelectTable/index.d.ts +0 -24
  32. package/lib/form/Components/SelectTable/index.js +0 -157
  33. package/lib/form/Components/SelectTable/index.scss +0 -28
  34. package/lib/form/Components/SelectTable/table.d.ts +0 -6
  35. package/lib/form/Components/SelectTable/table.js +0 -76
@@ -281,7 +281,24 @@ var ProTable = function ProTable(props) {
281
281
  var _useState19 = (0, _react.useState)(true),
282
282
  _useState20 = _slicedToArray(_useState19, 2),
283
283
  showLoading = _useState20[0],
284
- setShowLoading = _useState20[1]; // 存储定时器 id
284
+ setShowLoading = _useState20[1]; // 存储能够被 on 监听到的 ProTable 状态
285
+ // 因为只做存储用。不需要更新视图以及需要同步更改。所以不使用 setState 更新
286
+
287
+
288
+ var _useState21 = (0, _react.useState)({
289
+ fullScreenState: false,
290
+ filterRules: {},
291
+ filterColumns: []
292
+ }),
293
+ _useState22 = _slicedToArray(_useState21, 1),
294
+ actionRefState = _useState22[0]; // 存储 on 监听事件
295
+
296
+
297
+ var _useState23 = (0, _react.useState)({
298
+ fullScreenState: {}
299
+ }),
300
+ _useState24 = _slicedToArray(_useState23, 1),
301
+ actionRefCallback = _useState24[0]; // 存储定时器 id
285
302
 
286
303
 
287
304
  var autoRefreshTimerRef = (0, _react.useRef)(); // 获取header高度,用作全屏吸底吸底高度计算
@@ -305,16 +322,16 @@ var ProTable = function ProTable(props) {
305
322
  }; // header 区域高度。用作全屏计算吸顶吸底高度。默认不做计算
306
323
 
307
324
 
308
- var _useState21 = (0, _react.useState)(0),
309
- _useState22 = _slicedToArray(_useState21, 2),
310
- headerHeight = _useState22[0],
311
- setHeaderHeight = _useState22[1]; // 全屏显示 className
325
+ var _useState25 = (0, _react.useState)(0),
326
+ _useState26 = _slicedToArray(_useState25, 2),
327
+ headerHeight = _useState26[0],
328
+ setHeaderHeight = _useState26[1]; // 全屏显示 className
312
329
 
313
330
 
314
- var _useState23 = (0, _react.useState)(false),
315
- _useState24 = _slicedToArray(_useState23, 2),
316
- fullscreenState = _useState24[0],
317
- setFullscreenState = _useState24[1]; // 非全屏状态下的
331
+ var _useState27 = (0, _react.useState)(false),
332
+ _useState28 = _slicedToArray(_useState27, 2),
333
+ fullscreenState = _useState28[0],
334
+ setFullscreenState = _useState28[1]; // 非全屏状态下的
318
335
 
319
336
 
320
337
  var normalDataFilterFormRef = (0, _react.useRef)();
@@ -325,10 +342,10 @@ var ProTable = function ProTable(props) {
325
342
  var dataFilterFormRef = !fullscreenState ? normalDataFilterFormRef : fullscreenDataFilterFormRef;
326
343
  var dataFilterForm = dataFilterFormRef.current; // 整个内容区是否超过一屏。用于表格在非全屏模式下的吸底
327
344
 
328
- var _useState25 = (0, _react.useState)(false),
329
- _useState26 = _slicedToArray(_useState25, 2),
330
- footerSuctionState = _useState26[0],
331
- setFooterSuctionState = _useState26[1]; // TODO 获取内容区是否超出一屏(暂时仅支持全家桶)
345
+ var _useState29 = (0, _react.useState)(false),
346
+ _useState30 = _slicedToArray(_useState29, 2),
347
+ footerSuctionState = _useState30[0],
348
+ setFooterSuctionState = _useState30[1]; // TODO 获取内容区是否超出一屏(暂时仅支持全家桶)
332
349
 
333
350
 
334
351
  var getFooterSuctionState = function getFooterSuctionState() {
@@ -451,7 +468,42 @@ var ProTable = function ProTable(props) {
451
468
  if (propsDataSource) {
452
469
  setData(propsDataSource);
453
470
  }
454
- }, [propsDataSource]); // 绑定 Actions
471
+ }, [propsDataSource]); // 初始化 ActionRef。
472
+
473
+ (0, _utils2.initActionRef)(actionRef, {
474
+ getState: function getState() {
475
+ return actionRefState;
476
+ },
477
+ getCallback: function getCallback() {
478
+ return actionRefCallback;
479
+ },
480
+ setState: function setState(key, value) {
481
+ actionRefState[key] = value;
482
+ (0, _utils2.actionRefUseStateOn)(actionRefCallback, key, value);
483
+ },
484
+ on: function on(fun, state, name) {
485
+ if (!actionRefCallback[state]) {
486
+ actionRefCallback[state] = {};
487
+ }
488
+
489
+ actionRefCallback[state][name] = fun;
490
+ },
491
+ off: function off(name) {
492
+ actionRefCallback = Object.fromEntries(Object.entries(actionRefCallback).map(function (_ref) {
493
+ var _ref2 = _slicedToArray(_ref, 2),
494
+ k = _ref2[0],
495
+ v = _ref2[1];
496
+
497
+ var filterV = Object.fromEntries(Object.entries(v).filter(function (_ref3) {
498
+ var _ref4 = _slicedToArray(_ref3, 1),
499
+ k = _ref4[0];
500
+
501
+ return k !== name;
502
+ }));
503
+ return [k, filterV];
504
+ }));
505
+ }
506
+ }); // 绑定 Actions
455
507
 
456
508
  (0, _utils2.useActionType)(actionRef, {
457
509
  fullScreen: function fullScreen() {
@@ -677,8 +729,6 @@ var ProTable = function ProTable(props) {
677
729
  }
678
730
 
679
731
  (0, _react.useEffect)(function () {
680
- // 初始化 actionRef state、callback 此时 actionRef 已初始化完成
681
- (0, _utils2.initActionRef)();
682
732
  dataFilterForm = dataFilterFormRef.current; // 监听 浏览器变化 更吸底状态
683
733
 
684
734
  if (footerSuction) {
@@ -201,8 +201,6 @@ export declare type ProTableActionTypeMutations = {
201
201
  getState?: () => ProTableActionTypeState;
202
202
  /** 设置state 状态 */
203
203
  setState?: (key: string, value: any) => void;
204
- /** 初始化 state 状态 */
205
- initState?: () => void;
206
204
  /** 设置全屏状态 */
207
205
  setFullScreenState?: (state: boolean) => void;
208
206
  /** 绑定state监听事件 */
@@ -217,6 +215,8 @@ export declare type ProTableActionTypeMutations = {
217
215
  resetTableMaxBodyHeight?: () => void;
218
216
  /** 列筛选规则 */
219
217
  filterColumns?: any[];
218
+ /** 获取所有 on 监听事件 */
219
+ getCallback?: () => any;
220
220
  };
221
221
  /** action Mutations 定义 */
222
222
  export declare type ProTableActionTypeState = {
@@ -157,7 +157,7 @@ var renderCell = function renderCell(value, item, index, record, actionRef) {
157
157
 
158
158
  if (valueType === 'selectGroup') {
159
159
  newRender = _objectSpread(_objectSpread({
160
- maxShowNumber: 1,
160
+ maxShowNumber: 'auto',
161
161
  foldText: 'more',
162
162
  editOnClick: function editOnClick() {},
163
163
  edit: true
@@ -1,13 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { ProTableActionType } from '../typing';
3
3
  import { ProTableProps, ProTableColumnProps } from '..';
4
- export declare function initActionRef(): void;
4
+ export declare function actionRefUseStateOn(callback: any, state: string, ...args: any): void;
5
5
  /** table 组件内监听 不对外暴露 */
6
6
  export declare function on(fun: any, key: string): void;
7
7
  /** table 组件内销毁监听 不对外暴露 */
8
8
  export declare function off(key: string): void;
9
9
  /** table 组件内触发事件 不对外暴露 */
10
10
  export declare function emit(key: string, ...args: any): void;
11
+ export declare function initActionRef(ref: React.MutableRefObject<ProTableActionType | undefined>, action: ProTableActionType): void;
11
12
  export declare function useActionType<T>(ref: React.MutableRefObject<ProTableActionType | undefined>, action: ProTableActionType): void;
12
13
  export declare function cloneDeep<T>(obj: T): T;
13
14
  /**
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.actionRefUseStateOn = actionRefUseStateOn;
6
7
  exports.cloneDeep = cloneDeep;
7
8
  exports.emit = emit;
8
9
  exports.initActionRef = initActionRef;
@@ -33,128 +34,75 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
33
34
 
34
35
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
36
 
36
- // 组件内全局状态 每次初始化 ActionRef 会重新深拷贝对象
37
- var state = {
38
- fullScreenState: false,
39
- filterRules: {},
40
- filterColumns: []
41
- };
42
-
43
- var _initState = (0, _lodash.default)(state); // state监听事件 每次初始化 ActionRef 会重新深拷贝对象
44
-
45
-
46
- var callback = {
47
- fullScreenState: {}
48
- };
49
- var initCallback = (0, _lodash.default)(callback); // 所有 ProTable 组件公用一套组件内事件转发机制
50
-
51
- var tableCallback = {}; // 组件内监听事件
52
- // 组件内对全局状态的更改
53
-
54
- var mutations = {
55
- getState: function getState() {
56
- return state;
57
- },
58
- setState: function setState(key, value) {
59
- state[key] = value;
60
- useOn(key, value);
61
-
62
- if (mutations.hasOwnProperty(key)) {
63
- mutations[key] = value;
64
- }
65
- },
66
- initState: function initState() {
67
- state = (0, _lodash.default)(_initState);
68
- },
69
- filterColumns: state.filterColumns,
70
- setFullScreenState: function setFullScreenState(fullScreenState) {
71
- state.fullScreenState = fullScreenState;
72
- useOn('fullScreenState', fullScreenState);
73
- },
74
-
75
- /**
76
- * 设置筛选列规则
77
- * @param rules 规则
78
- * @param dataIndex column.dataIndex
79
- */
80
- setFilterRules: function setFilterRules(rules) {
81
- state.filterRules = rules;
82
- },
83
-
84
- /**
85
- * 获取筛选规则。为params
86
- */
87
- getFilterRules: function getFilterRules() {
88
- var result = {};
89
-
90
- if (state.filterRules) {
91
- result = Object.entries(state.filterRules).map(function (_ref) {
92
- var _ref2 = _slicedToArray(_ref, 2),
93
- k = _ref2[0],
94
- v = _ref2[1];
95
-
96
- return _defineProperty({}, k, v.params);
97
- }).reduce(function (acc, cur) {
98
- acc = _objectSpread(_objectSpread({}, acc), cur);
99
- return acc;
100
- }, {});
101
- }
37
+ // 所有 ProTable 组件公用一套组件内事件转发机制
38
+ var tableCallback = {}; // 组件内对全局状态的更改
39
+
40
+ var getMutations = function getMutations(actionRef) {
41
+ var _actionRef$current2, _actionRef$current2$g, _actionRef$current2$g2;
42
+
43
+ return {
44
+ setFullScreenState: function setFullScreenState(fullScreenState) {
45
+ var _actionRef$current, _actionRef$current$se;
46
+
47
+ (_actionRef$current = actionRef.current) === null || _actionRef$current === void 0 ? void 0 : (_actionRef$current$se = _actionRef$current.setState) === null || _actionRef$current$se === void 0 ? void 0 : _actionRef$current$se.call(_actionRef$current, 'fullScreenState', fullScreenState);
48
+ },
49
+ filterColumns: (_actionRef$current2 = actionRef.current) === null || _actionRef$current2 === void 0 ? void 0 : (_actionRef$current2$g = _actionRef$current2.getState) === null || _actionRef$current2$g === void 0 ? void 0 : (_actionRef$current2$g2 = _actionRef$current2$g.call(_actionRef$current2)) === null || _actionRef$current2$g2 === void 0 ? void 0 : _actionRef$current2$g2.filterColumns,
50
+
51
+ /**
52
+ * 设置筛选列规则
53
+ * @param rules 规则
54
+ * @param dataIndex column.dataIndex
55
+ */
56
+ setFilterRules: function setFilterRules(rules) {
57
+ var _actionRef$current3, _actionRef$current3$s;
58
+
59
+ (_actionRef$current3 = actionRef.current) === null || _actionRef$current3 === void 0 ? void 0 : (_actionRef$current3$s = _actionRef$current3.setState) === null || _actionRef$current3$s === void 0 ? void 0 : _actionRef$current3$s.call(_actionRef$current3, 'filterRules', rules);
60
+ },
61
+
62
+ /**
63
+ * 获取筛选规则。为params
64
+ */
65
+ getFilterRules: function getFilterRules() {
66
+ var _actionRef$current4, _actionRef$current4$g;
67
+
68
+ var result = {};
69
+ var filterRules = (_actionRef$current4 = actionRef.current) === null || _actionRef$current4 === void 0 ? void 0 : (_actionRef$current4$g = _actionRef$current4.getState) === null || _actionRef$current4$g === void 0 ? void 0 : _actionRef$current4$g.call(_actionRef$current4).filterRules;
70
+
71
+ if (filterRules) {
72
+ result = Object.entries(filterRules).map(function (_ref) {
73
+ var _ref2 = _slicedToArray(_ref, 2),
74
+ k = _ref2[0],
75
+ v = _ref2[1];
76
+
77
+ return _defineProperty({}, k, v.params);
78
+ }).reduce(function (acc, cur) {
79
+ acc = _objectSpread(_objectSpread({}, acc), cur);
80
+ return acc;
81
+ }, {});
82
+ }
102
83
 
103
- return result;
104
- },
105
-
106
- /**
107
- * 绑定监听函数
108
- * @param fun 监听函数
109
- * @param state 需要监听的state
110
- * @param name 监听名(作为销毁唯一id使用)
111
- */
112
- on: function on(fun, state, name) {
113
- if (!callback[state]) {
114
- callback[state] = {};
84
+ return result;
115
85
  }
116
-
117
- callback[state][name] = fun;
118
- },
119
- off: function off(name) {
120
- callback = Object.fromEntries(Object.entries(callback).map(function (_ref4) {
121
- var _ref5 = _slicedToArray(_ref4, 2),
122
- k = _ref5[0],
123
- v = _ref5[1];
124
-
125
- var filterV = Object.fromEntries(Object.entries(v).filter(function (_ref6) {
126
- var _ref7 = _slicedToArray(_ref6, 1),
127
- k = _ref7[0];
128
-
129
- return k !== name;
130
- }));
131
- return [k, filterV];
132
- }));
133
- }
86
+ };
134
87
  }; // 调用绑定的监听函数
135
88
 
136
- var useOn = function useOn(state) {
137
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
138
- args[_key - 1] = arguments[_key];
89
+
90
+ function actionRefUseStateOn(callback, state) {
91
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
92
+ args[_key - 2] = arguments[_key];
139
93
  }
140
94
 
141
95
  if (callback[state]) {
142
- Object.entries(callback[state]).forEach(function (_ref8) {
143
- var _ref9 = _slicedToArray(_ref8, 2),
144
- k = _ref9[0],
145
- v = _ref9[1];
96
+ Object.entries(callback[state]).forEach(function (_ref4) {
97
+ var _ref5 = _slicedToArray(_ref4, 2),
98
+ k = _ref5[0],
99
+ v = _ref5[1];
146
100
 
147
101
  if (v) {
148
102
  v === null || v === void 0 ? void 0 : v.apply(void 0, args);
149
103
  }
150
104
  });
151
105
  }
152
- }; // 初始化 actionRef
153
-
154
-
155
- function initActionRef() {
156
- state = (0, _lodash.default)(_initState);
157
- callback = (0, _lodash.default)(initCallback);
158
106
  }
159
107
  /** table 组件内监听 不对外暴露 */
160
108
 
@@ -185,13 +133,16 @@ function emit(key) {
185
133
  }
186
134
  }
187
135
 
188
- function useActionType(ref, action) {
189
- // 合并自定义事件
190
- var userAction = _objectSpread(_objectSpread({}, action), mutations);
136
+ function initActionRef(ref, action) {
137
+ var userAction = _objectSpread(_objectSpread({}, action), getMutations(ref));
191
138
 
192
139
  ref.current = userAction;
193
140
  }
194
141
 
142
+ function useActionType(ref, action) {
143
+ ref.current = _objectSpread(_objectSpread({}, ref.current), action);
144
+ }
145
+
195
146
  function cloneDeep(obj) {
196
147
  return (0, _lodash.default)(obj);
197
148
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamix/pro",
3
- "version": "1.2.30",
3
+ "version": "1.2.31",
4
4
  "description": "TeamixPro大包",
5
5
  "repository": "http://gitlab.alibaba-inc.com/teamix/pro",
6
6
  "author": "Velociraptor(迅猛龙)",
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
- import { TableProps, ColumnProps } from '@alifd/next/types/table';
3
- import './index.scss';
4
- declare type ISelectTableFilterOption = boolean | ((optipn: any, kewword: string) => boolean);
5
- declare type ISelectTableFilterSort = (optionA: any, optionB: any) => number;
6
- export interface ISelectTableColumnProps extends ColumnProps {
7
- key: React.ReactText;
8
- }
9
- export interface ISelectTableProps extends TableProps {
10
- mode?: 'multiple' | 'single';
11
- dataSource?: any[];
12
- optionAsValue?: boolean;
13
- showSearch?: boolean;
14
- filterOption?: ISelectTableFilterOption;
15
- filterSort?: ISelectTableFilterSort;
16
- onSearch?: (kekword: string) => void;
17
- onChange?: (value: any) => void;
18
- value?: any;
19
- }
20
- declare type ComposedSelectTable = React.FC<ISelectTableProps> & {
21
- TableColumn?: React.FC<ISelectTableColumnProps>;
22
- };
23
- declare const SelectTable: ComposedSelectTable;
24
- export default SelectTable;
@@ -1,135 +0,0 @@
1
- var _excluded = ["mode", "dataSource", "optionAsValue", "showSearch", "filterOption", "filterSort", "onSearch", "className", "value", "onChange", "rowSelection"];
2
-
3
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
-
5
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
-
7
- 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); }
8
-
9
- 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; }
10
-
11
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
-
13
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
-
15
- 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; }
16
-
17
- 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; }
18
-
19
- 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; }
20
-
21
- 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; }
22
-
23
- 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; }
24
-
25
- import React, { useEffect, useState } from 'react';
26
- import { Table, Search } from '@alicloudfe/components';
27
- import { observer, useFieldSchema } from '@formily/react';
28
- import cls from 'classnames';
29
- import { isArr } from '@formily/shared';
30
- import { usePrefixCls } from '@teamix/utils';
31
- import './index.scss';
32
-
33
- var useColumns = function useColumns() {
34
- var schema = useFieldSchema();
35
- var columns = [];
36
- schema.mapProperties(function (schema, name) {
37
- var _schema$xComponent;
38
-
39
- if (((_schema$xComponent = schema['x-component']) === null || _schema$xComponent === void 0 ? void 0 : _schema$xComponent.indexOf('Column')) > -1) {
40
- var props = schema === null || schema === void 0 ? void 0 : schema['x-component-props'];
41
- columns.push({
42
- name: name,
43
- props: _objectSpread(_objectSpread({}, props), {}, {
44
- title: (props === null || props === void 0 ? void 0 : props.title) || (schema === null || schema === void 0 ? void 0 : schema.title),
45
- dataIndex: (props === null || props === void 0 ? void 0 : props.dataIndex) || name
46
- }),
47
- schema: schema
48
- });
49
- }
50
- });
51
- return columns;
52
- };
53
-
54
- var SelectTable = observer(function (props) {
55
- var mode = props.mode,
56
- dataSource = props.dataSource,
57
- optionAsValue = props.optionAsValue,
58
- showSearch = props.showSearch,
59
- filterOption = props.filterOption,
60
- filterSort = props.filterSort,
61
- onSearch = props.onSearch,
62
- className = props.className,
63
- value = props.value,
64
- onChange = props.onChange,
65
- rowSelection = props.rowSelection,
66
- otherTableProps = _objectWithoutProperties(props, _excluded);
67
-
68
- var prefixCls = usePrefixCls('formily-selectTable', props);
69
-
70
- var _useState = useState(),
71
- _useState2 = _slicedToArray(_useState, 2),
72
- selected = _useState2[0],
73
- setSelected = _useState2[1];
74
-
75
- var tabs = useColumns();
76
-
77
- var expandedRowRender = function expandedRowRender(record, index) {
78
- var children = isArr(record.children) ? record.children : [];
79
- return /*#__PURE__*/React.createElement(Table, {
80
- dataSource: children,
81
- key: index
82
- }, tabs.map(function (_ref, key) {
83
- var props = _ref.props;
84
- return /*#__PURE__*/React.createElement(Table.Column, _objectSpread({
85
- key: key
86
- }, props));
87
- }));
88
- };
89
-
90
- var onInnerChange = function onInnerChange(selectedRowKeys, records) {
91
- var outputValue = optionAsValue ? records : selectedRowKeys;
92
- outputValue = mode === 'single' ? outputValue[0] : outputValue;
93
- onChange && onChange(outputValue);
94
- };
95
-
96
- useEffect(function () {
97
- var primaryKey = props.primaryKey;
98
- var inputValue = mode === 'single' ? [value] : isArr(value) ? value : [];
99
- inputValue = optionAsValue ? inputValue.map(function (v) {
100
- return v === null || v === void 0 ? void 0 : v[primaryKey];
101
- }) : inputValue;
102
- setSelected(inputValue);
103
- }, [value, mode]);
104
- return /*#__PURE__*/React.createElement("div", {
105
- className: cls(prefixCls, props.className)
106
- }, showSearch ? /*#__PURE__*/React.createElement(Search, {
107
- className: "".concat(prefixCls, "-search"),
108
- onSearch: console.log
109
- }) : null, /*#__PURE__*/React.createElement(Table, _objectSpread({
110
- className: "".concat(prefixCls, "-table"),
111
- dataSource: dataSource,
112
- rowSelection: _objectSpread(_objectSpread({}, rowSelection), {}, {
113
- mode: mode,
114
- onChange: onInnerChange,
115
- selectedRowKeys: selected
116
- })
117
- }, otherTableProps), tabs.map(function (_ref2, key) {
118
- var props = _ref2.props;
119
- return /*#__PURE__*/React.createElement(Table.Column, _objectSpread({
120
- key: key
121
- }, props));
122
- })));
123
- });
124
-
125
- var TableColumn = function TableColumn(_ref3) {
126
- var children = _ref3.children;
127
- return /*#__PURE__*/React.createElement(React.Fragment, null, children);
128
- };
129
-
130
- SelectTable.TableColumn = TableColumn;
131
- SelectTable.defaultProps = {
132
- showSearch: false,
133
- primaryKey: 'key'
134
- };
135
- export default SelectTable;
@@ -1,28 +0,0 @@
1
- @import '../../global.scss';
2
-
3
- $selectTable: #{$css-prefix}formily-selectTable;
4
-
5
- .#{$selectTable} {
6
- .#{$selectTable}-search {
7
- margin-bottom: 8px;
8
- }
9
- .#{$selectTable}-table {
10
- }
11
- }
12
-
13
- .next-table-row-nochildren {
14
- > .next-table-expanded {
15
- > * {
16
- visibility: hidden;
17
- }
18
- }
19
- }
20
- .next-table-expanded-row {
21
- .next-table-body {
22
- > tr:last-child {
23
- > td {
24
- border-bottom: 0;
25
- }
26
- }
27
- }
28
- }
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- import React from 'React';
3
- import { TableProps } from '@alifd/next/types/table';
4
- import './index.scss';
5
- declare const Table: React.FC<TableProps>;
6
- export default Table;
@@ -1,64 +0,0 @@
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
-
3
- 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; }
4
-
5
- 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; }
6
-
7
- import React from 'React';
8
- import { Table as NextTable } from '@alicloudfe/components';
9
- import './index.scss';
10
-
11
- var Table = function Table(props) {
12
- var onChange = function onChange(selectedRowKeys, records) {
13
- console.log(selectedRowKeys);
14
- };
15
-
16
- var onSelect = function onSelect() {};
17
-
18
- var onSelectAll = function onSelectAll() {};
19
-
20
- var rowProps = function rowProps(record) {
21
- var _record$children;
22
-
23
- if (!(record === null || record === void 0 ? void 0 : (_record$children = record.children) === null || _record$children === void 0 ? void 0 : _record$children.length)) {
24
- return {// className: 'next-table-row-nochildren',
25
- };
26
- }
27
-
28
- return {};
29
- };
30
-
31
- var expandedRowRender = function expandedRowRender(record, index) {
32
- var children = record.children;
33
-
34
- if (children === null || children === void 0 ? void 0 : children.length) {
35
- return React.createElement(Table, _objectSpread(_objectSpread({}, props), {}, {
36
- key: index,
37
- dataSource: children,
38
- hasHeader: false,
39
- hasBorder: false,
40
- rowProps: rowProps,
41
- rowSelection: {
42
- onChange: onChange
43
- },
44
- expandedRowRender: expandedRowRender,
45
- expandedRowIndent: [1, 0]
46
- }));
47
- }
48
-
49
- return React.createElement(React.Fragment, null);
50
- };
51
-
52
- return React.createElement(NextTable, _objectSpread(_objectSpread({}, props), {}, {
53
- rowProps: rowProps,
54
- rowSelection: {
55
- onChange: onChange,
56
- onSelectAll: onSelectAll,
57
- onSelect: onSelect
58
- },
59
- expandedRowRender: expandedRowRender,
60
- expandedRowIndent: [1, 0]
61
- }));
62
- };
63
-
64
- export default Table;