@teamix/pro 1.2.20 → 1.2.24

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 (90) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +2138 -568
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/dialog.js +13 -23
  6. package/es/actions/index.d.ts +10 -0
  7. package/es/actions/index.js +11 -16
  8. package/es/form/Components/LightFilter/componentMap.js +2 -1
  9. package/es/form/Components/LightFilter/index.js +15 -3
  10. package/es/form/Components/SelectTable/index.d.ts +24 -0
  11. package/es/form/Components/SelectTable/index.js +135 -0
  12. package/es/form/Components/SelectTable/index.scss +28 -0
  13. package/es/form/Components/SelectTable/table.d.ts +6 -0
  14. package/es/form/Components/SelectTable/table.js +64 -0
  15. package/es/form/Filter/AdvancedFilter.js +1 -0
  16. package/es/form/Filter/index2.js +8 -8
  17. package/es/form/ProForm/index.js +5 -4
  18. package/es/form/ProForm/index.scss +37 -6
  19. package/es/form/ProForm/useFormDisplayValues.js +4 -2
  20. package/es/form/SchemaForm/index.js +16 -10
  21. package/es/form/SchemaForm/initializeDataSource.d.ts +2 -2
  22. package/es/form/SchemaForm/initializeDataSource.js +4 -9
  23. package/es/form/SchemaForm/initializeRequest.d.ts +2 -2
  24. package/es/form/SchemaForm/initializeRequest.js +4 -10
  25. package/es/form/SchemaForm/initializeRules.d.ts +7 -1
  26. package/es/form/SchemaForm/initializeRules.js +9 -13
  27. package/es/form/SchemaForm/reactions.d.ts +5 -5
  28. package/es/form/SchemaForm/reactions.js +27 -29
  29. package/es/form/global.scss +1 -0
  30. package/es/form/typing.d.ts +10 -1
  31. package/es/form/utils.d.ts +8 -7
  32. package/es/form/utils.js +5 -4
  33. package/es/index.d.ts +1 -1
  34. package/es/index.js +1 -1
  35. package/es/table/components/Filter/index.js +1 -0
  36. package/es/table/components/Layout/index.js +22 -12
  37. package/es/table/components/Pagination/index.d.ts +5 -1
  38. package/es/table/components/Pagination/index.js +179 -17
  39. package/es/table/components/Pagination/index.scss +55 -0
  40. package/es/table/components/ToolBar/FilterColumnIcon.js +24 -3
  41. package/es/table/components/ToolBar/index.scss +9 -4
  42. package/es/table/index.js +79 -26
  43. package/es/table/index.scss +5 -5
  44. package/es/table/typing.d.ts +9 -9
  45. package/es/table/utils/columnRender.js +2 -1
  46. package/es/table/utils/index.d.ts +7 -0
  47. package/es/table/utils/index.js +38 -4
  48. package/lib/actions/dialog.js +12 -22
  49. package/lib/actions/index.d.ts +10 -0
  50. package/lib/actions/index.js +11 -16
  51. package/lib/form/Components/LightFilter/componentMap.js +2 -1
  52. package/lib/form/Components/LightFilter/index.js +14 -3
  53. package/lib/form/Components/SelectTable/index.d.ts +24 -0
  54. package/lib/form/Components/SelectTable/index.js +157 -0
  55. package/lib/form/Components/SelectTable/index.scss +28 -0
  56. package/lib/form/Components/SelectTable/table.d.ts +6 -0
  57. package/lib/form/Components/SelectTable/table.js +76 -0
  58. package/lib/form/Filter/AdvancedFilter.js +1 -0
  59. package/lib/form/Filter/index2.js +9 -8
  60. package/lib/form/ProForm/index.js +5 -5
  61. package/lib/form/ProForm/index.scss +37 -6
  62. package/lib/form/ProForm/useFormDisplayValues.js +3 -1
  63. package/lib/form/SchemaForm/index.js +16 -9
  64. package/lib/form/SchemaForm/initializeDataSource.d.ts +2 -2
  65. package/lib/form/SchemaForm/initializeDataSource.js +4 -11
  66. package/lib/form/SchemaForm/initializeRequest.d.ts +2 -2
  67. package/lib/form/SchemaForm/initializeRequest.js +4 -11
  68. package/lib/form/SchemaForm/initializeRules.d.ts +7 -1
  69. package/lib/form/SchemaForm/initializeRules.js +9 -16
  70. package/lib/form/SchemaForm/reactions.d.ts +5 -5
  71. package/lib/form/SchemaForm/reactions.js +29 -31
  72. package/lib/form/global.scss +1 -0
  73. package/lib/form/typing.d.ts +10 -1
  74. package/lib/form/utils.d.ts +8 -7
  75. package/lib/form/utils.js +6 -5
  76. package/lib/index.d.ts +1 -1
  77. package/lib/index.js +1 -1
  78. package/lib/table/components/Layout/index.js +21 -11
  79. package/lib/table/components/Pagination/index.d.ts +5 -1
  80. package/lib/table/components/Pagination/index.js +186 -17
  81. package/lib/table/components/Pagination/index.scss +55 -0
  82. package/lib/table/components/ToolBar/FilterColumnIcon.js +23 -2
  83. package/lib/table/components/ToolBar/index.scss +9 -4
  84. package/lib/table/index.js +79 -24
  85. package/lib/table/index.scss +5 -5
  86. package/lib/table/typing.d.ts +9 -9
  87. package/lib/table/utils/columnRender.js +2 -1
  88. package/lib/table/utils/index.d.ts +7 -0
  89. package/lib/table/utils/index.js +46 -4
  90. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { ColumnProps, TableProps } from '@alicloudfe/components/types/table';
5
5
  import { ProFieldType, ProFieldRenderProps, ProFieldDataSourceItem } from '../field';
6
- import { IFilterProps } from '../form';
6
+ import { QueryFilterProps } from '../form';
7
7
  import { ProActionGroupProps, ProActionButtonProps } from '../actions';
8
8
  import { PaginationProps } from '@alicloudfe/components/types/pagination';
9
9
  import { HeaderProps as ProTableHeaderProps } from '@teamix/utils';
@@ -12,7 +12,7 @@ import React from 'react';
12
12
  import type { Form as FormType } from '@formily/core';
13
13
  declare type IFieldRenderProps = keyof ProFieldRenderProps;
14
14
  /** 列record函数 */
15
- declare type ProTableCellFunProp = (value: any, index: number, record: any) => any;
15
+ declare type ProTableCellFunProp = (value: any, index: number, record: any, ...others: any) => any;
16
16
  declare type ITableCellRender = {
17
17
  [key in IFieldRenderProps]?: ProFieldRenderProps[key] | ProTableCellFunProp;
18
18
  } | ((...other: any) => React.ReactNode);
@@ -22,6 +22,7 @@ declare type TDataService = {
22
22
  /** 表格数据 */
23
23
  data?: any;
24
24
  };
25
+ export declare type responsivePaginationType = 'mini' | 'small' | 'simple' | 'normal';
25
26
  export declare type ProTableColumnProps = {
26
27
  /**
27
28
  * 会在 title 之后展示一个 icon,hover 之后提示一些信息
@@ -92,6 +93,8 @@ export declare type ProTableProps = {
92
93
  paginationProps?: PaginationProps;
93
94
  /** 是否显示翻页器 */
94
95
  showPagination?: boolean;
96
+ /** 手动指定响应式翻页器的 type */
97
+ responsivePaginationType?: responsivePaginationType;
95
98
  /** 是否使用内置的 rowSelection */
96
99
  useRowSelection?: boolean;
97
100
  /** 内置 rowSelection 变化时的回调 */
@@ -146,7 +149,7 @@ export declare type ProTableActionType = {
146
149
  /** 全屏展示 */
147
150
  fullScreen?: () => boolean;
148
151
  /** 设置显示列 */
149
- setColumn?: (newColumns: ProColumnProps[]) => void;
152
+ setColumn?: (newColumns: ProColumnProps[], update?: boolean) => void;
150
153
  /** 设置表格大小 */
151
154
  setSize?: (mode: 'small' | 'medium') => void;
152
155
  /** 刷新表格 */
@@ -212,15 +215,12 @@ export declare type ProTableActionTypeState = {
212
215
  [key: string]: any;
213
216
  };
214
217
  export declare type ProTableDataFilterProps = {
215
- /** 展示形式 */
216
- mode?: 'inline' | 'panel';
217
- /** mode='panel' 时是否默认展开 */
218
- expand?: boolean;
219
- /** 搜索时是否传入值为undefined的参数,默认不传 */
220
218
  searchUndefined?: boolean;
221
219
  /** 搜索时是否传入值为空字符串的参数,默认不传 */
222
220
  searchEmptyString?: boolean;
223
- } & IFilterProps;
221
+ /** 自定义内容 */
222
+ content?: React.ReactNode;
223
+ } & QueryFilterProps;
224
224
  export declare type dataFilterProps = ProTableDataFilterProps;
225
225
  export declare type ProTableTopAreaProps = {
226
226
  /** 标题区 */
@@ -204,7 +204,8 @@ var processRenderFunction = function processRenderFunction() {
204
204
  var value = arguments.length > 1 ? arguments[1] : undefined;
205
205
  var index = arguments.length > 2 ? arguments[2] : undefined;
206
206
  var record = arguments.length > 3 ? arguments[3] : undefined;
207
- var external = ['linkOnClick', 'link', 'value'];
207
+ // ProField render 类型为 function 时。需要表格预先处理以塞入 record
208
+ var external = ['linkOnClick', 'link', 'value', 'renderEdit', 'descriptionRenderEdit', 'editPopConfirmProps', 'descriptionEditPopConfirmProps', 'editOnClick', 'descriptionEditOnClick'];
208
209
  return Object.fromEntries(Object.entries(render).map(function (_ref3) {
209
210
  var _ref4 = _slicedToArray(_ref3, 2),
210
211
  k = _ref4[0],
@@ -1,4 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { ProTableActionType } from '../typing';
3
+ export declare function initActionRef(): void;
4
+ /** table 组件内监听 不对外暴露 */
5
+ export declare function on(fun: any, key: string): void;
6
+ /** table 组件内销毁监听 不对外暴露 */
7
+ export declare function off(key: string): void;
8
+ /** table 组件内触发事件 不对外暴露 */
9
+ export declare function emit(key: string, ...args: any): void;
3
10
  export declare function useActionType<T>(ref: React.MutableRefObject<ProTableActionType | undefined>, action: ProTableActionType): void;
4
11
  export declare function cloneDeep<T>(obj: T): T;
@@ -16,7 +16,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
16
16
 
17
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
18
 
19
- import cloneDeepLodash from 'lodash.clonedeep'; // 组件内全局状态
19
+ import cloneDeepLodash from 'lodash.clonedeep'; // 组件内全局状态 每次初始化 ActionRef 会重新深拷贝对象
20
20
 
21
21
  var state = {
22
22
  fullScreenState: false,
@@ -24,12 +24,16 @@ var state = {
24
24
  filterColumns: []
25
25
  };
26
26
 
27
- var _initState = cloneDeepLodash(state); // 组件内全局监听事件
27
+ var _initState = cloneDeepLodash(state); // state监听事件 每次初始化 ActionRef 会重新深拷贝对象
28
28
 
29
29
 
30
30
  var callback = {
31
31
  fullScreenState: {}
32
- }; // 组件内对全局状态的更改
32
+ };
33
+ var initCallback = cloneDeepLodash(callback); // 所有 ProTable 组件公用一套组件内事件转发机制
34
+
35
+ var tableCallback = {}; // 组件内监听事件
36
+ // 组件内对全局状态的更改
33
37
 
34
38
  var mutations = {
35
39
  getState: function getState() {
@@ -129,8 +133,38 @@ var useOn = function useOn(state) {
129
133
  }
130
134
  });
131
135
  }
132
- };
136
+ }; // 初始化 actionRef
137
+
138
+
139
+ export function initActionRef() {
140
+ state = cloneDeepLodash(_initState);
141
+ callback = cloneDeepLodash(initCallback);
142
+ }
143
+ /** table 组件内监听 不对外暴露 */
144
+
145
+ export function on(fun, key) {
146
+ tableCallback[key] = fun;
147
+ }
148
+ /** table 组件内销毁监听 不对外暴露 */
133
149
 
150
+ export function off(key) {
151
+ if (tableCallback[key]) {
152
+ delete tableCallback[key];
153
+ }
154
+ }
155
+ /** table 组件内触发事件 不对外暴露 */
156
+
157
+ export function emit(key) {
158
+ var fun = tableCallback[key];
159
+
160
+ if (fun) {
161
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
162
+ args[_key2 - 1] = arguments[_key2];
163
+ }
164
+
165
+ fun.apply(void 0, args);
166
+ }
167
+ }
134
168
  export function useActionType(ref, action) {
135
169
  // 合并自定义事件
136
170
  var userAction = _objectSpread(_objectSpread({}, action), mutations);
@@ -30,7 +30,7 @@ var _request = require("./request");
30
30
 
31
31
  var _utils2 = require("./utils");
32
32
 
33
- var _excluded = ["url", "method", "params", "data", "extendParams", "successMsg", "errorMsg", "formatParams", "formatResult", "onSuccess", "onError"],
33
+ var _excluded = ["trigger", "url", "method", "params", "data", "extendParams", "successMsg", "errorMsg", "formatParams", "formatResult", "onSuccess", "onError"],
34
34
  _excluded2 = ["title", "content", "component", "schema", "onFinish", "dialogType", "dialogQuickShowType", "messageType", "popType", "beforeRequest", "onTrigger", "link", "beforeContent", "afterContent", "message", "footerDescription", "footerAlign", "className"];
35
35
 
36
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -107,7 +107,8 @@ function useDialogAction(action, actionContext) {
107
107
  var onActionStart = function onActionStart(context, e) {
108
108
  var _objectSpread2;
109
109
 
110
- var url = action.url,
110
+ var trigger = action.trigger,
111
+ url = action.url,
111
112
  method = action.method,
112
113
  params = action.params,
113
114
  data = action.data,
@@ -187,45 +188,34 @@ function useDialogAction(action, actionContext) {
187
188
  while (1) {
188
189
  switch (_context.prev = _context.next) {
189
190
  case 0:
190
- if (!link) {
191
- _context.next = 5;
192
- break;
193
- }
194
-
195
- (0, _utils.goToLink)(link, history);
196
- onFinish && onFinish();
197
- resolve(true);
198
- return _context.abrupt("return");
199
-
200
- case 5:
201
191
  setLoading(true);
202
192
  footerDescriptionValues = Object.assign({}, footerDescriptionRef === null || footerDescriptionRef === void 0 ? void 0 : (_footerDescriptionRef = footerDescriptionRef.current) === null || _footerDescriptionRef === void 0 ? void 0 : _footerDescriptionRef.values);
203
- _context.prev = 7;
193
+ _context.prev = 2;
204
194
  requestContext = Object.assign({
205
195
  footer: footerDescriptionValues
206
196
  }, context);
207
- _context.next = 11;
197
+ _context.next = 6;
208
198
  return (0, _request.doRequest)(action, requestContext, history, footerDescriptionValues);
209
199
 
210
- case 11:
200
+ case 6:
211
201
  onFinish && onFinish();
212
202
  resolve(true);
213
- _context.next = 20;
203
+ _context.next = 15;
214
204
  break;
215
205
 
216
- case 15:
217
- _context.prev = 15;
218
- _context.t0 = _context["catch"](7);
206
+ case 10:
207
+ _context.prev = 10;
208
+ _context.t0 = _context["catch"](2);
219
209
  setLoading(false);
220
210
  resolve(false);
221
211
  return _context.abrupt("return");
222
212
 
223
- case 20:
213
+ case 15:
224
214
  case "end":
225
215
  return _context.stop();
226
216
  }
227
217
  }
228
- }, _callee, null, [[7, 15]]);
218
+ }, _callee, null, [[2, 10]]);
229
219
  }));
230
220
 
231
221
  return function (_x) {
@@ -46,11 +46,21 @@ export interface ProActionMenuButtonProps extends MenuButtonProps {
46
46
  export declare const ProActionMenuButton: (props: ProActionMenuButtonProps) => JSX.Element;
47
47
  export declare type ProActionProps = ProActionButtonProps | ProActionMenuButtonProps;
48
48
  export declare type ProActionGroupProps = {
49
+ /** 操作组类型:按钮、文字按钮 */
49
50
  type?: 'button' | 'text';
51
+ /** 上下文 */
50
52
  context?: any;
53
+ /** 操作项配置 */
51
54
  actions: ProActionProps[];
55
+ /** 操作按钮最长数量,超出后折叠,默认为4 */
52
56
  max?: number;
57
+ /**
58
+ * @deprecated 建议使用 more 代替
59
+ */
53
60
  moreText?: string;
61
+ /** 更多按钮的配置,只有在actions数量超过max时才有效 */
62
+ more?: string | ProActionButtonProps;
63
+ /** 是否有分割线,只有type="text"时生效,默认有分割线 */
54
64
  divider?: boolean;
55
65
  } & React.HTMLAttributes<HTMLElement>;
56
66
  export declare function ProActionGroup(props: ProActionGroupProps): JSX.Element;
@@ -60,7 +60,7 @@ var _excluded = ["type"],
60
60
  _excluded5 = ["context", "text"],
61
61
  _excluded6 = ["key", "actions"],
62
62
  _excluded7 = ["key", "config"],
63
- _excluded8 = ["type", "divider", "max", "moreText", "context", "actions", "className"];
63
+ _excluded8 = ["type", "divider", "max", "moreText", "more", "context", "actions", "className"];
64
64
 
65
65
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
66
66
 
@@ -329,25 +329,19 @@ function renderCommonActionButton(button, context, isTypeText) {
329
329
  return /*#__PURE__*/_react.default.createElement(ProActionMenuButton, _objectSpread({}, buttonProps));
330
330
  }
331
331
 
332
- function getDefaultMoreButton(type, moreText) {
333
- if (type === 'button') {
334
- return {
335
- label: moreText || (0, _utils.getMessage)('more')
336
- };
337
- }
338
-
339
- if (moreText) {
340
- return {
341
- label: moreText
342
- };
343
- }
344
-
345
- return {
332
+ function getDefaultMoreButton(type, more) {
333
+ var moreConfig = typeof more === 'string' ? {
334
+ children: more
335
+ } : more;
336
+ var defaultConfig = type === 'button' ? {
337
+ children: (0, _utils.getMessage)('more')
338
+ } : {
346
339
  icon: 'more-line',
347
340
  // iconSize: 'small',
348
341
  autoWidth: false,
349
342
  className: 'teamix-pro-actions-text-menu-btn-no-arrow'
350
343
  };
344
+ return Object.assign(defaultConfig, moreConfig);
351
345
  }
352
346
 
353
347
  var MAX_ACTTIONS = 4;
@@ -392,6 +386,7 @@ function ProActionGroup(props) {
392
386
  _props$max = props.max,
393
387
  max = _props$max === void 0 ? MAX_ACTTIONS : _props$max,
394
388
  moreText = props.moreText,
389
+ more = props.more,
395
390
  context = props.context,
396
391
  _props$actions = props.actions,
397
392
  actions = _props$actions === void 0 ? [] : _props$actions,
@@ -404,7 +399,7 @@ function ProActionGroup(props) {
404
399
  }).filter(function (action) {
405
400
  return action.visible !== false;
406
401
  });
407
- var formatedActions = formatGroupActions(filteredActions, max, getDefaultMoreButton(type, moreText));
402
+ var formatedActions = formatGroupActions(filteredActions, max, getDefaultMoreButton(type, more || moreText));
408
403
  return /*#__PURE__*/_react.default.createElement("div", _objectSpread({
409
404
  className: (0, _classnames.default)('teamix-pro-actions', "teamix-pro-actions-type-".concat(type), className, {
410
405
  'teamix-pro-actions-divider': type === 'button' ? false : divider
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.inputCategory = exports.componentMap = void 0;
7
7
  var componentMap = {
8
8
  Radio: 'Select',
9
- Checkbox: 'Select'
9
+ Checkbox: 'Select',
10
+ CheckboxGroup: 'MultipleSelect'
10
11
  };
11
12
  exports.componentMap = componentMap;
12
13
  var inputCategory = ['Input', 'Password', 'TextArea', 'NumberPicker', 'Percent', 'Money'];
@@ -47,18 +47,29 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
47
47
 
48
48
  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; }
49
49
 
50
- // 主激活区内容
50
+ var formatComponent = function formatComponent(schema) {
51
+ var _schema$enum;
52
+
53
+ var component = schema['x-component'];
54
+
55
+ if (component === 'Checkbox' && ((_schema$enum = schema['enum']) === null || _schema$enum === void 0 ? void 0 : _schema$enum.length)) {
56
+ component = 'CheckboxGroup';
57
+ }
58
+
59
+ return _componentMap.componentMap[component] || component;
60
+ }; // 主激活区内容
61
+
62
+
51
63
  var useMain = function useMain(active) {
52
64
  var schema = (0, _react2.useFieldSchema)();
53
65
  var main = [];
54
66
  schema.mapProperties(function (schema, name) {
55
- // console.log(schema.required); // 添加 *
56
67
  if (schema.name === active) {
57
68
  main.push({
58
69
  name: name,
59
70
  schema: _objectSpread(_objectSpread({}, schema), {}, {
60
71
  title: '',
61
- 'x-component': _componentMap.componentMap[schema['x-component']] || schema['x-component']
72
+ 'x-component': formatComponent(schema)
62
73
  })
63
74
  });
64
75
  }
@@ -0,0 +1,24 @@
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;
@@ -0,0 +1,157 @@
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
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _components = require("@alicloudfe/components");
13
+
14
+ var _react2 = require("@formily/react");
15
+
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ var _shared = require("@formily/shared");
19
+
20
+ var _utils = require("@teamix/utils");
21
+
22
+ require("./index.scss");
23
+
24
+ var _excluded = ["mode", "dataSource", "optionAsValue", "showSearch", "filterOption", "filterSort", "onSearch", "className", "value", "onChange", "rowSelection"];
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
33
+
34
+ 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."); }
35
+
36
+ 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); }
37
+
38
+ 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; }
39
+
40
+ 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; }
41
+
42
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
43
+
44
+ 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; }
45
+
46
+ 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; }
47
+
48
+ 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; }
49
+
50
+ 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; }
51
+
52
+ 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; }
53
+
54
+ var useColumns = function useColumns() {
55
+ var schema = (0, _react2.useFieldSchema)();
56
+ var columns = [];
57
+ schema.mapProperties(function (schema, name) {
58
+ var _schema$xComponent;
59
+
60
+ if (((_schema$xComponent = schema['x-component']) === null || _schema$xComponent === void 0 ? void 0 : _schema$xComponent.indexOf('Column')) > -1) {
61
+ var props = schema === null || schema === void 0 ? void 0 : schema['x-component-props'];
62
+ columns.push({
63
+ name: name,
64
+ props: _objectSpread(_objectSpread({}, props), {}, {
65
+ title: (props === null || props === void 0 ? void 0 : props.title) || (schema === null || schema === void 0 ? void 0 : schema.title),
66
+ dataIndex: (props === null || props === void 0 ? void 0 : props.dataIndex) || name
67
+ }),
68
+ schema: schema
69
+ });
70
+ }
71
+ });
72
+ return columns;
73
+ };
74
+
75
+ var SelectTable = (0, _react2.observer)(function (props) {
76
+ var mode = props.mode,
77
+ dataSource = props.dataSource,
78
+ optionAsValue = props.optionAsValue,
79
+ showSearch = props.showSearch,
80
+ filterOption = props.filterOption,
81
+ filterSort = props.filterSort,
82
+ onSearch = props.onSearch,
83
+ className = props.className,
84
+ value = props.value,
85
+ onChange = props.onChange,
86
+ rowSelection = props.rowSelection,
87
+ otherTableProps = _objectWithoutProperties(props, _excluded);
88
+
89
+ var prefixCls = (0, _utils.usePrefixCls)('formily-selectTable', props);
90
+
91
+ var _useState = (0, _react.useState)(),
92
+ _useState2 = _slicedToArray(_useState, 2),
93
+ selected = _useState2[0],
94
+ setSelected = _useState2[1];
95
+
96
+ var tabs = useColumns();
97
+
98
+ var expandedRowRender = function expandedRowRender(record, index) {
99
+ var children = (0, _shared.isArr)(record.children) ? record.children : [];
100
+ return /*#__PURE__*/_react.default.createElement(_components.Table, {
101
+ dataSource: children,
102
+ key: index
103
+ }, tabs.map(function (_ref, key) {
104
+ var props = _ref.props;
105
+ return /*#__PURE__*/_react.default.createElement(_components.Table.Column, _objectSpread({
106
+ key: key
107
+ }, props));
108
+ }));
109
+ };
110
+
111
+ var onInnerChange = function onInnerChange(selectedRowKeys, records) {
112
+ var outputValue = optionAsValue ? records : selectedRowKeys;
113
+ outputValue = mode === 'single' ? outputValue[0] : outputValue;
114
+ onChange && onChange(outputValue);
115
+ };
116
+
117
+ (0, _react.useEffect)(function () {
118
+ var primaryKey = props.primaryKey;
119
+ var inputValue = mode === 'single' ? [value] : (0, _shared.isArr)(value) ? value : [];
120
+ inputValue = optionAsValue ? inputValue.map(function (v) {
121
+ return v === null || v === void 0 ? void 0 : v[primaryKey];
122
+ }) : inputValue;
123
+ setSelected(inputValue);
124
+ }, [value, mode]);
125
+ return /*#__PURE__*/_react.default.createElement("div", {
126
+ className: (0, _classnames.default)(prefixCls, props.className)
127
+ }, showSearch ? /*#__PURE__*/_react.default.createElement(_components.Search, {
128
+ className: "".concat(prefixCls, "-search"),
129
+ onSearch: console.log
130
+ }) : null, /*#__PURE__*/_react.default.createElement(_components.Table, _objectSpread({
131
+ className: "".concat(prefixCls, "-table"),
132
+ dataSource: dataSource,
133
+ rowSelection: _objectSpread(_objectSpread({}, rowSelection), {}, {
134
+ mode: mode,
135
+ onChange: onInnerChange,
136
+ selectedRowKeys: selected
137
+ })
138
+ }, otherTableProps), tabs.map(function (_ref2, key) {
139
+ var props = _ref2.props;
140
+ return /*#__PURE__*/_react.default.createElement(_components.Table.Column, _objectSpread({
141
+ key: key
142
+ }, props));
143
+ })));
144
+ });
145
+
146
+ var TableColumn = function TableColumn(_ref3) {
147
+ var children = _ref3.children;
148
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
149
+ };
150
+
151
+ SelectTable.TableColumn = TableColumn;
152
+ SelectTable.defaultProps = {
153
+ showSearch: false,
154
+ primaryKey: 'key'
155
+ };
156
+ var _default = SelectTable;
157
+ exports.default = _default;
@@ -0,0 +1,28 @@
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
+ }
@@ -0,0 +1,6 @@
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;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _React = _interopRequireDefault(require("React"));
9
+
10
+ var _components = require("@alicloudfe/components");
11
+
12
+ require("./index.scss");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ 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; }
17
+
18
+ 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; }
19
+
20
+ 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; }
21
+
22
+ var Table = function Table(props) {
23
+ var onChange = function onChange(selectedRowKeys, records) {
24
+ console.log(selectedRowKeys);
25
+ };
26
+
27
+ var onSelect = function onSelect() {};
28
+
29
+ var onSelectAll = function onSelectAll() {};
30
+
31
+ var rowProps = function rowProps(record) {
32
+ var _record$children;
33
+
34
+ if (!(record === null || record === void 0 ? void 0 : (_record$children = record.children) === null || _record$children === void 0 ? void 0 : _record$children.length)) {
35
+ return {// className: 'next-table-row-nochildren',
36
+ };
37
+ }
38
+
39
+ return {};
40
+ };
41
+
42
+ var expandedRowRender = function expandedRowRender(record, index) {
43
+ var children = record.children;
44
+
45
+ if (children === null || children === void 0 ? void 0 : children.length) {
46
+ return _React.default.createElement(Table, _objectSpread(_objectSpread({}, props), {}, {
47
+ key: index,
48
+ dataSource: children,
49
+ hasHeader: false,
50
+ hasBorder: false,
51
+ rowProps: rowProps,
52
+ rowSelection: {
53
+ onChange: onChange
54
+ },
55
+ expandedRowRender: expandedRowRender,
56
+ expandedRowIndent: [1, 0]
57
+ }));
58
+ }
59
+
60
+ return _React.default.createElement(_React.default.Fragment, null);
61
+ };
62
+
63
+ return _React.default.createElement(_components.Table, _objectSpread(_objectSpread({}, props), {}, {
64
+ rowProps: rowProps,
65
+ rowSelection: {
66
+ onChange: onChange,
67
+ onSelectAll: onSelectAll,
68
+ onSelect: onSelect
69
+ },
70
+ expandedRowRender: expandedRowRender,
71
+ expandedRowIndent: [1, 0]
72
+ }));
73
+ };
74
+
75
+ var _default = Table;
76
+ exports.default = _default;
@@ -72,6 +72,7 @@ var AdvancedFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
72
72
  props: {
73
73
  breakpoints: [480, 720, 990, 1200, Infinity],
74
74
  maxColumns: [1, 2, 3, 3, 4],
75
+ maxWidth: [480, 360, 330, 330, 300],
75
76
  columnGap: 16,
76
77
  rowGap: 12
77
78
  },