@teamix/pro 1.2.35 → 1.3.0

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 (67) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +705 -1062
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/form/Filter/AdvancedFilter.js +4 -4
  6. package/es/form/Filter/LightFilter.js +22 -15
  7. package/es/form/Filter/index.js +83 -109
  8. package/es/form/ProForm/index.scss +8 -8
  9. package/es/form/SchemaForm/initializeRequest.js +1 -2
  10. package/es/form/SchemaForm/reactions.d.ts +2 -2
  11. package/es/form/SchemaForm/reactions.js +11 -13
  12. package/es/form/typing.d.ts +4 -1
  13. package/es/index.d.ts +4 -4
  14. package/es/index.js +4 -4
  15. package/es/nocode/configurators/PageHeader.js +2 -2
  16. package/es/table/components/Layout/index.js +2 -2
  17. package/es/table/components/Pagination/index.js +11 -1
  18. package/es/table/components/ToolBar/Fullscreen.js +6 -6
  19. package/es/table/index.js +3 -4
  20. package/es/timeline/ProTimeLineItem/index.d.ts +5 -0
  21. package/es/{step/ProStepItem/components/VerStepItem → timeline/ProTimeLineItem}/index.js +59 -72
  22. package/es/{step/ProStepItem/components/VerStepItem → timeline/ProTimeLineItem}/index.scss +34 -86
  23. package/es/timeline/index.d.ts +10 -0
  24. package/es/{step → timeline}/index.js +33 -57
  25. package/es/timeline/index.scss +7 -0
  26. package/es/timeline/typing.d.ts +101 -0
  27. package/es/{step → timeline}/typing.js +0 -0
  28. package/lib/form/Filter/AdvancedFilter.js +4 -4
  29. package/lib/form/Filter/LightFilter.js +21 -15
  30. package/lib/form/Filter/index.js +83 -109
  31. package/lib/form/ProForm/index.scss +8 -8
  32. package/lib/form/SchemaForm/initializeRequest.js +1 -2
  33. package/lib/form/SchemaForm/reactions.d.ts +2 -2
  34. package/lib/form/SchemaForm/reactions.js +10 -12
  35. package/lib/form/typing.d.ts +4 -1
  36. package/lib/index.d.ts +4 -4
  37. package/lib/index.js +10 -10
  38. package/lib/nocode/configurators/PageHeader.js +2 -2
  39. package/lib/table/components/Layout/index.js +2 -2
  40. package/lib/table/components/Pagination/index.js +10 -0
  41. package/lib/table/components/ToolBar/Fullscreen.js +6 -6
  42. package/lib/table/index.js +3 -4
  43. package/lib/timeline/ProTimeLineItem/index.d.ts +5 -0
  44. package/lib/{step/ProStepItem/components/VerStepItem → timeline/ProTimeLineItem}/index.js +58 -72
  45. package/lib/{step/ProStepItem/components/VerStepItem → timeline/ProTimeLineItem}/index.scss +34 -86
  46. package/lib/timeline/index.d.ts +10 -0
  47. package/lib/{step → timeline}/index.js +38 -58
  48. package/lib/timeline/index.scss +7 -0
  49. package/lib/timeline/typing.d.ts +101 -0
  50. package/lib/{step → timeline}/typing.js +0 -0
  51. package/package.json +1 -1
  52. package/es/step/ProStepItem/components/HozStepItem/index.d.ts +0 -5
  53. package/es/step/ProStepItem/components/HozStepItem/index.js +0 -235
  54. package/es/step/ProStepItem/components/HozStepItem/index.scss +0 -279
  55. package/es/step/ProStepItem/components/VerStepItem/index.d.ts +0 -5
  56. package/es/step/ProStepItem/index.d.ts +0 -4
  57. package/es/step/ProStepItem/index.js +0 -57
  58. package/es/step/index.d.ts +0 -9
  59. package/es/step/typing.d.ts +0 -96
  60. package/lib/step/ProStepItem/components/HozStepItem/index.d.ts +0 -5
  61. package/lib/step/ProStepItem/components/HozStepItem/index.js +0 -258
  62. package/lib/step/ProStepItem/components/HozStepItem/index.scss +0 -279
  63. package/lib/step/ProStepItem/components/VerStepItem/index.d.ts +0 -5
  64. package/lib/step/ProStepItem/index.d.ts +0 -4
  65. package/lib/step/ProStepItem/index.js +0 -69
  66. package/lib/step/index.d.ts +0 -9
  67. package/lib/step/typing.d.ts +0 -96
@@ -1,4 +1,4 @@
1
- var _excluded = ["schema", "onSubmit", "onReset", "onResetClick", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol"];
1
+ var _excluded = ["schema", "onSubmit", "onReset", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol", "forceClear"];
2
2
 
3
3
  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; }
4
4
 
@@ -35,12 +35,12 @@ var AdvancedFilter = /*#__PURE__*/memo(function (props) {
35
35
  var schema = props.schema,
36
36
  onSubmit = props.onSubmit,
37
37
  onReset = props.onReset,
38
- onResetClick = props.onResetClick,
39
38
  layout = props.layout,
40
39
  labelAlign = props.labelAlign,
41
40
  wrapperAlign = props.wrapperAlign,
42
41
  labelCol = props.labelCol,
43
42
  wrapperCol = props.wrapperCol,
43
+ forceClear = props.forceClear,
44
44
  otherProps = _objectWithoutProperties(props, _excluded);
45
45
 
46
46
  var prefixCls = usePrefixCls('', {
@@ -71,7 +71,7 @@ var AdvancedFilter = /*#__PURE__*/memo(function (props) {
71
71
  component: 'Reset',
72
72
  props: {
73
73
  onResetValidateSuccess: onReset,
74
- onClick: onResetClick,
74
+ forceClear: !!forceClear,
75
75
  children: getMessage('reset')
76
76
  }
77
77
  }, {
@@ -86,7 +86,7 @@ var AdvancedFilter = /*#__PURE__*/memo(function (props) {
86
86
  }]
87
87
  }])
88
88
  }];
89
- }, [schema, onReset, onResetClick]);
89
+ }, [schema, onReset]);
90
90
  var getTeamixLayout = useMemo(function () {
91
91
  return {
92
92
  breakpoints: [990],
@@ -1,4 +1,4 @@
1
- var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue"];
1
+ var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "activeFilterValueRef"];
2
2
 
3
3
  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; }
4
4
 
@@ -10,9 +10,8 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
10
10
 
11
11
  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; }
12
12
 
13
- import React, { memo, useMemo, useCallback, useRef } from 'react';
13
+ import React, { memo, useMemo, useCallback, useRef, useEffect } from 'react';
14
14
  import cls from 'classnames';
15
- import { toJS } from '@formily/reactive';
16
15
  import { usePrefixCls } from '@teamix/utils';
17
16
  import ProForm from '../ProForm';
18
17
  /**
@@ -27,24 +26,32 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
27
26
  onSubmit = props.onSubmit,
28
27
  onChange = props.onChange,
29
28
  defaultFilterValue = props.defaultFilterValue,
29
+ activeFilterValueRef = props.activeFilterValueRef,
30
30
  otherProps = _objectWithoutProperties(props, _excluded);
31
31
 
32
32
  var filterValue = useRef(defaultFilterValue || ((_schema$ = schema[0]) === null || _schema$ === void 0 ? void 0 : _schema$.name));
33
33
  var prefixCls = usePrefixCls('', {
34
34
  prefix: 'teamix-pro-form-query-filter-light'
35
- }); // input类组件的按钮
36
-
37
- var onBtnClick = useCallback(function () {
38
- onChange && onChange(toJS(form.values));
39
- }, [form]); // 筛选提交切换
35
+ });
36
+ useEffect(function () {
37
+ if (activeFilterValueRef) {
38
+ activeFilterValueRef.current = filterValue.current;
39
+ }
40
+ }, []); // 筛选提交切换
40
41
 
41
42
  var onFilterChange = useCallback(function (value) {
42
43
  filterValue.current = value;
43
- }, [form]); // onChange
44
44
 
45
- var onCurrentChange = useCallback(function (values) {
46
- onChange && onChange(_defineProperty({}, filterValue.current, values[filterValue.current]));
47
- }, [onChange, filterValue.current]);
45
+ if (activeFilterValueRef) {
46
+ activeFilterValueRef.current = value;
47
+ }
48
+ }, [form]); // 实际输出onFilter
49
+
50
+ var onFilter = useCallback(function () {
51
+ var key = filterValue.current;
52
+ var value = form.values[key];
53
+ onChange === null || onChange === void 0 ? void 0 : onChange(_defineProperty({}, key, value));
54
+ }, [onChange]);
48
55
  var LightSchema = useMemo(function () {
49
56
  return [{
50
57
  component: 'LightFilter',
@@ -52,7 +59,7 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
52
59
  defaultFilterValue: defaultFilterValue,
53
60
  onFilterChange: onFilterChange,
54
61
  buttonProps: {
55
- onClick: onBtnClick
62
+ onClick: onFilter
56
63
  }
57
64
  },
58
65
  children: schema
@@ -64,7 +71,7 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
64
71
  }
65
72
  }
66
73
  }];
67
- }, [schema, onBtnClick, onFilterChange, defaultFilterValue]);
74
+ }, [schema, onFilter, onFilterChange, defaultFilterValue]);
68
75
  return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread({}, otherProps), {}, {
69
76
  form: form,
70
77
  className: cls(prefixCls, props.className),
@@ -73,7 +80,7 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
73
80
  breakpoints: [],
74
81
  bordered: false,
75
82
  onSubmit: onSubmit,
76
- onChange: onCurrentChange
83
+ onChange: onFilter
77
84
  }));
78
85
  });
79
86
  export default LightFilter;
@@ -70,12 +70,9 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
70
70
  otherProps = _objectWithoutProperties(props, _excluded);
71
71
 
72
72
  var _useSpecialProps = useSpecialProps(props),
73
- hasDefault = _useSpecialProps.hasDefault,
74
73
  hasChangeDefault = _useSpecialProps.hasChangeDefault,
75
74
  hasRequired = _useSpecialProps.hasRequired;
76
75
 
77
- var hasDefaultOrRequired = hasDefault || hasRequired;
78
-
79
76
  var _useState = useState(!!expand),
80
77
  _useState2 = _slicedToArray(_useState, 2),
81
78
  panelVisible = _useState2[0],
@@ -87,8 +84,9 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
87
84
  setTagDataSource = _useState4[1];
88
85
 
89
86
  var filterItem = useRef([]);
90
- var defaultForm = mode === 'panel' ? hasDefaultOrRequired || panelVisible ? 'advanced' : 'light' : 'simple';
87
+ var defaultForm = mode === 'panel' ? 'advanced' : 'simple';
91
88
  var currentForm = useRef(defaultForm);
89
+ var activeFilterValueRef = useRef();
92
90
  var prefixCls = usePrefixCls('', {
93
91
  prefix: 'teamix-pro-form-query-filter'
94
92
  });
@@ -103,7 +101,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
103
101
  initialValues = _ref.initialValues;
104
102
 
105
103
  if (!form.mounted) {
106
- // form上自定义loading属性使用
104
+ // 借用formloading属性来判断initialValues和initialRequest是否完成
107
105
  form.setState({
108
106
  loading: !!initialRequest || !!initialValues
109
107
  });
@@ -111,24 +109,34 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
111
109
 
112
110
  var loadingField = Object.values(form.fields).filter(function (field) {
113
111
  return !!field.loading;
114
- }); // 等待表单mounted + 字段loading结束 + form的loading结束 => 表单初始化完成
112
+ }); // 等待表单mounted + 字段loading结束 + form默认值初始化 => 表单初始化完成
113
+
114
+ if (form.mounted && !loadingField.length && !form.loading) {
115
+ _onFormInit = function onFormInit() {}; // init后销毁 isFormInit 方法
115
116
 
116
- if (form.mounted && loadingField.length === 0 && !form.loading) {
117
- if (loadingField.length === 0 && !form.loading) {
118
- _onFormInit = function onFormInit() {}; // init后销毁 isFormInit 方法
119
117
 
118
+ var values = getValidValues(form.values);
120
119
 
121
- var values = getValidValues(form.values);
120
+ if (!isUsable(values) || !hasChangeDefault) {
121
+ // 表单无默认值 或 无触发onChange的默认值配置,不会触发onFilter内的onInit,所以主动触发onInit
122
+ filterEnable.current = 'filter';
123
+ setTimeout(function () {
124
+ onInit === null || onInit === void 0 ? void 0 : onInit(toJS(form.values));
125
+ }, 0);
122
126
 
123
- if (!isUsable(values) || !hasChangeDefault) {
124
- // 表单无默认值 或 无触发onChange的默认值配置,不会触发onFilter内的onInit,所以主动触发onInit
125
- setTimeout(function () {
126
- onInit === null || onInit === void 0 ? void 0 : onInit(toJS(form.values));
127
- }, 0);
128
- filterEnable.current = 'filter';
129
- } else {
130
- filterEnable.current = 'initialized';
127
+ if (mode === 'panel') {
128
+ // 移除lightForm的默认值
129
+ // 设置Tag
130
+ configFilterItem(advancedForm);
131
+
132
+ if (!panelVisible) {
133
+ setTimeout(function () {
134
+ configTag();
135
+ }, 0);
136
+ }
131
137
  }
138
+ } else {
139
+ filterEnable.current = 'initialized';
132
140
  }
133
141
  }
134
142
  }; // 配置当前激活的form实例
@@ -141,9 +149,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
141
149
  var form = formMap[formName];
142
150
  formRef.current = form;
143
151
 
144
- formRef.current.updateTags = function () {
145
- configFilterItem(form);
146
- };
152
+ if (!formRef.current.updateTags) {
153
+ formRef.current.updateTags = function () {
154
+ configFilterItem(form);
155
+ };
156
+ }
147
157
  }
148
158
  }; // 创建简单筛选表单实例
149
159
 
@@ -153,7 +163,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
153
163
  validateFirst: true,
154
164
  effects: function effects() {
155
165
  onFormReact(function (form) {
156
- if (defaultForm === 'simple') {
166
+ if (mode === 'inline') {
157
167
  _onFormInit(form, props);
158
168
  }
159
169
  });
@@ -165,11 +175,6 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
165
175
  return createForm({
166
176
  validateFirst: true,
167
177
  effects: function effects() {
168
- onFormReact(function (form) {
169
- if (defaultForm === 'light') {
170
- _onFormInit(form, props);
171
- }
172
- });
173
178
  onFormInputChange(function () {
174
179
  setCurrentForm('light'); // 主动修改轻量筛选值
175
180
  });
@@ -182,7 +187,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
182
187
  validateFirst: true,
183
188
  effects: function effects() {
184
189
  onFormReact(function (form) {
185
- if (defaultForm === 'advanced') {
190
+ if (mode === 'panel') {
186
191
  _onFormInit(form, props);
187
192
  }
188
193
  });
@@ -250,14 +255,9 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
250
255
  if (result) {
251
256
  // 展开高级筛选,Light回填Advanced
252
257
  if (currentForm.current === 'light') {
253
- Object.entries(lightForm.values || {}).map(function (_ref4) {
254
- var _ref5 = _slicedToArray(_ref4, 2),
255
- key = _ref5[0],
256
- value = _ref5[1];
257
-
258
- // 有效值值回填,防止全部值回填改变,触发不必要的 reactions
259
- advancedForm.setValuesIn(key, value);
260
- });
258
+ var key = activeFilterValueRef.current;
259
+ var value = lightForm.values[key];
260
+ advancedForm.setValuesIn(key, value);
261
261
  }
262
262
  } else {
263
263
  // 收起高级筛选,配置标签数据
@@ -269,7 +269,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
269
269
  }, [panelVisible, configTag]); // 简单搜索Filter
270
270
 
271
271
  var onSimpleFilter = useCallback( /*#__PURE__*/function () {
272
- var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
272
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
273
273
  return regeneratorRuntime.wrap(function _callee$(_context) {
274
274
  while (1) {
275
275
  switch (_context.prev = _context.next) {
@@ -325,99 +325,72 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
325
325
  }));
326
326
 
327
327
  return function (_x) {
328
- return _ref6.apply(this, arguments);
328
+ return _ref4.apply(this, arguments);
329
329
  };
330
330
  }(), [onFilter, hasRequired, onInit]); // 轻量搜索Filter
331
331
 
332
- var onLightFilter = useCallback( /*#__PURE__*/function () {
333
- var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
334
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
335
- while (1) {
336
- switch (_context2.prev = _context2.next) {
337
- case 0:
338
- if (!(currentForm.current === 'light')) {
339
- _context2.next = 14;
340
- break;
341
- }
342
-
343
- if (!(filterEnable.current === 'initialized')) {
344
- _context2.next = 8;
345
- break;
346
- }
347
-
348
- filterEnable.current = 'filter';
349
- onInit === null || onInit === void 0 ? void 0 : onInit(values);
350
- configFilterItem(advancedForm);
351
- configTag();
352
- _context2.next = 14;
353
- break;
354
-
355
- case 8:
356
- if (!(filterEnable.current === 'filter')) {
357
- _context2.next = 14;
358
- break;
359
- }
360
-
361
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
362
- _context2.next = 12;
363
- return advancedForm.reset();
332
+ var onLightFilter = useCallback(function (values) {
333
+ if (currentForm.current === 'light') {
334
+ if (filterEnable.current === 'filter') {
335
+ var _Object$keys;
364
336
 
365
- case 12:
366
- // 不会触发高级筛选的onReset回调函数
367
- configFilterItem(advancedForm);
368
- configTag();
337
+ onFilter === null || onFilter === void 0 ? void 0 : onFilter(values); // 清空advancedForm的值,配置Tag
369
338
 
370
- case 14:
371
- case "end":
372
- return _context2.stop();
373
- }
374
- }
375
- }, _callee2);
376
- }));
377
-
378
- return function (_x2) {
379
- return _ref7.apply(this, arguments);
380
- };
381
- }(), [onFilter, onInit]); // 高级搜索Filter by Submit
339
+ var clearKeys = {};
340
+ (_Object$keys = Object.keys(advancedForm.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (key) {
341
+ clearKeys[key] = undefined;
342
+ });
343
+ advancedForm.setValues(clearKeys);
344
+ configFilterItem(advancedForm);
345
+ configTag();
346
+ }
347
+ }
348
+ }, [onFilter]); // 高级搜索Filter by Submit
382
349
 
383
350
  var onAdvancedFilter = useCallback(function (values) {
384
351
  setCurrentForm('advanced');
385
352
  onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
386
- configFilterItem(advancedForm);
387
- lightForm.reset();
353
+ configFilterItem(advancedForm); // 清空lightForm的值
354
+
355
+ lightForm.reset('*', {
356
+ forceClear: true
357
+ });
388
358
  }, [onFilter]); // 高级搜索Reset
389
359
 
390
360
  var onAdvancedReset = useCallback(function () {
391
361
  setCurrentForm('advanced');
392
362
  onReset === null || onReset === void 0 ? void 0 : onReset(toJS(advancedForm.values));
393
- configFilterItem(advancedForm);
394
- lightForm.reset();
363
+ configFilterItem(advancedForm); // 清空lightForm的值
364
+
365
+ lightForm.reset('*', {
366
+ forceClear: true
367
+ });
395
368
  }, [onReset]); // 高级搜索Filter by Change
396
369
 
397
370
  var onAdvancedChange = useCallback( /*#__PURE__*/function () {
398
- var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(values) {
399
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
371
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
372
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
400
373
  while (1) {
401
- switch (_context3.prev = _context3.next) {
374
+ switch (_context2.prev = _context2.next) {
402
375
  case 0:
403
376
  if (!(currentForm.current === 'advanced')) {
404
- _context3.next = 9;
377
+ _context2.next = 9;
405
378
  break;
406
379
  }
407
380
 
408
381
  if (!(filterEnable.current === 'initialized')) {
409
- _context3.next = 9;
382
+ _context2.next = 9;
410
383
  break;
411
384
  }
412
385
 
413
386
  filterEnable.current = 'filter';
414
387
 
415
388
  if (!hasRequired) {
416
- _context3.next = 6;
389
+ _context2.next = 6;
417
390
  break;
418
391
  }
419
392
 
420
- _context3.next = 6;
393
+ _context2.next = 6;
421
394
  return advancedForm.validate();
422
395
 
423
396
  case 6:
@@ -430,14 +403,14 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
430
403
 
431
404
  case 9:
432
405
  case "end":
433
- return _context3.stop();
406
+ return _context2.stop();
434
407
  }
435
408
  }
436
- }, _callee3);
409
+ }, _callee2);
437
410
  }));
438
411
 
439
- return function (_x3) {
440
- return _ref8.apply(this, arguments);
412
+ return function (_x2) {
413
+ return _ref5.apply(this, arguments);
441
414
  };
442
415
  }(), [hasRequired, onInit]); // 关闭标签清空表单字段值
443
416
 
@@ -453,7 +426,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
453
426
  configFilterItem(advancedForm);
454
427
  configTag();
455
428
  onFilter === null || onFilter === void 0 ? void 0 : onFilter(toJS(advancedForm.values));
456
- }, []); // initialValues和initialRequest的回调
429
+ }, [onFilter]); // initialValues和initialRequest的回调
457
430
 
458
431
  var onInitialComplete = useCallback(function (form) {
459
432
  form.setState({
@@ -472,9 +445,10 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
472
445
  onExpand: toggleAdvancedFilter,
473
446
  count: tagDataSource.length,
474
447
  inlineContent: mode === 'panel' ? /*#__PURE__*/React.createElement("div", {
475
- className: cls("".concat(prefixCls, "-inline"), purePanel || hasDefaultOrRequired ? "".concat(prefixCls, "-inline-hidden") : '')
448
+ className: cls("".concat(prefixCls, "-inline"), purePanel || hasRequired ? "".concat(prefixCls, "-inline-hidden") : '')
476
449
  }, /*#__PURE__*/React.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
477
450
  defaultFilterValue: defaultFilterValue,
451
+ activeFilterValueRef: activeFilterValueRef,
478
452
  form: lightForm,
479
453
  onChange: debounce(onLightFilter, filterDebounce)
480
454
  }))) : /*#__PURE__*/React.createElement("div", {
@@ -492,12 +466,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
492
466
  onReset: onAdvancedReset,
493
467
  onInitialComplete: onInitialComplete
494
468
  })) : null
495
- }, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref9) {
496
- var key = _ref9.key,
497
- label = _ref9.label,
498
- value = _ref9.value,
499
- type = _ref9.type,
500
- index = _ref9.index;
469
+ }, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref6) {
470
+ var key = _ref6.key,
471
+ label = _ref6.label,
472
+ value = _ref6.value,
473
+ type = _ref6.type,
474
+ index = _ref6.index;
501
475
  return /*#__PURE__*/React.createElement(Tag.Closeable, {
502
476
  key: isNum(index) ? key + label : key,
503
477
  afterClose: function afterClose() {
@@ -197,14 +197,14 @@
197
197
  margin-right: 4px;
198
198
  }
199
199
  }
200
- // 数组类ArrayItem Icon 居中
201
- .#{$form-array}-items-item-inner {
202
- .#{$css-prefix}space-item {
203
- > .#{$css-prefix}formily-icon {
204
- margin-top: 9px;
205
- }
206
- }
207
- }
200
+ // 数组类ArrayItem Icon 居中(移除,通过align:center配置)
201
+ // .#{$form-array}-items-item-inner {
202
+ // .#{$css-prefix}space-item {
203
+ // > .#{$css-prefix}formily-icon {
204
+ // margin-top: 9px;
205
+ // }
206
+ // }
207
+ // }
208
208
 
209
209
  // Editable预览态行高
210
210
  .#{$css-prefix}formily-editable-content {
@@ -37,9 +37,8 @@ var initializeRequest = function initializeRequest(requestConfig, suffix) {
37
37
  };
38
38
  } else {
39
39
  var requestConfigName = "$requestConfig_".concat(suffix);
40
- var requestIndex = (/\d{1,}\w(\d{0,})/g.exec(suffix) || [])[1];
41
40
  return {
42
- reactions: ["{{$common($request,".concat(requestConfigName, ",context,").concat(requestIndex, ")}}")],
41
+ reactions: ["{{$common($request,".concat(requestConfigName, ",context)}}")],
43
42
  scope: _defineProperty({}, requestConfigName, requestConfig)
44
43
  };
45
44
  }
@@ -1,6 +1,6 @@
1
1
  import type { ProFormRequestConfig } from '../typing';
2
- declare const $request: (field: any, requestConfig: ProFormRequestConfig, context: any, type: string | number) => Promise<unknown>;
3
- declare const $common: (services: any, requestConfig: ProFormRequestConfig, context: any, index: string) => (field: any) => any;
2
+ declare const $request: (field: any, requestConfig: ProFormRequestConfig, context: any, type: 'request' | 'validator' | 'dataSource') => Promise<unknown>;
3
+ declare const $common: (services: any, requestConfig: ProFormRequestConfig, context: any) => (field: any) => any;
4
4
  declare const $validator: (services: any, requestConfig: ProFormRequestConfig, context: any) => (value: any, rules: any, { field }: any) => any;
5
5
  declare const $dataSource: (services: any, requestConfig: ProFormRequestConfig, context: any, readPretty: any) => (field: any) => any;
6
6
  export { $request, $common, $dataSource, $validator };
@@ -4,23 +4,21 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
4
4
 
5
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
6
 
7
- import { isFn, isPlainObj, doCommonRequest, getValueByValue } from '@teamix/utils'; // 配置请求
7
+ import { isFn, isPureObj, doCommonRequest, getValueByValue } from '@teamix/utils'; // 配置请求
8
8
 
9
9
  var $request = function $request(field, requestConfig, context, type) {
10
10
  var _field$data;
11
11
 
12
- // let refresh
13
- // if(isStr(type)){
14
- // refresh = field.data?.refreshMap?.[type]
15
- // }else if(isNum(type)){
16
- // }else{
17
- // refresh = field.data?.refresh;
18
- // }
19
- var refresh = (_field$data = field.data) === null || _field$data === void 0 ? void 0 : _field$data.refresh;
20
12
  var beforeRequest = requestConfig.beforeRequest,
21
13
  onSuccess = requestConfig.onSuccess;
22
- var refreshResult = isPlainObj(refresh) ? refresh : {};
23
14
  var beforeRequestResult = isFn(beforeRequest) ? beforeRequest(field, context) : {};
15
+ /**
16
+ * // 主动触发的请求刷新
17
+ */
18
+ // 触发所有配置的请求
19
+
20
+ var refresh = (_field$data = field.data) === null || _field$data === void 0 ? void 0 : _field$data.refresh;
21
+ var refreshResult = isPureObj(refresh) ? refresh : {};
24
22
  return doCommonRequest(_objectSpread(_objectSpread({}, requestConfig), {}, {
25
23
  params: _objectSpread(_objectSpread(_objectSpread({}, requestConfig.params), beforeRequestResult), refreshResult),
26
24
  beforeRequest: function beforeRequest() {
@@ -33,9 +31,9 @@ var $request = function $request(field, requestConfig, context, type) {
33
31
  }; // 通用请求配置上下文
34
32
 
35
33
 
36
- var $common = function $common(services, requestConfig, context, index) {
34
+ var $common = function $common(services, requestConfig, context) {
37
35
  return function (field) {
38
- return services(field, requestConfig, context, index || 'common').then(function (res) {
36
+ return services(field, requestConfig, context, 'request').then(function (res) {
39
37
  return requestConfig.onComplete && requestConfig.onComplete(res, field, context);
40
38
  });
41
39
  };
@@ -61,7 +59,7 @@ var $dataSource = function $dataSource(services, requestConfig, context, readPre
61
59
  });
62
60
  }
63
61
 
64
- return services(field, requestConfig, context).then(function (res) {
62
+ return services(field, requestConfig, context, 'dataSource').then(function (res) {
65
63
  var isValueInDataSource = getValueByValue(res, field.value);
66
64
  var clearValue = isValueInDataSource ? {} : {
67
65
  value: undefined
@@ -68,8 +68,9 @@ export interface ProFormProps extends IFormLayoutProps {
68
68
  export interface FilterProps extends ProFormProps {
69
69
  form: FormType;
70
70
  defaultFilterValue?: string;
71
+ activeFilterValueRef?: React.MutableRefObject<any>;
72
+ forceClear?: boolean;
71
73
  onReset?: (payload?: any) => void;
72
- onResetClick?: () => void;
73
74
  }
74
75
  export interface QueryFilterLayoutProps {
75
76
  prefixCls?: string;
@@ -93,6 +94,8 @@ export interface QueryFilterProps extends ProFormProps {
93
94
  purePanel?: boolean;
94
95
  /** 面板是否默认展开,仅在 mode='panel' 时生效 */
95
96
  expand?: boolean;
97
+ /** 是否强制清除 */
98
+ forceClear?: boolean;
96
99
  /** 顶部筛选区前缀 */
97
100
  addonBefore?: ReactNode;
98
101
  /** 顶部筛选区后缀 */
package/es/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import ProPageHeader from './page-header';
9
9
  import ProTable from './table';
10
10
  import ProSkeleton from './skeleton';
11
11
  import utils from './utils';
12
- import { ProStep } from './step';
12
+ import { ProTimeline } from './timeline';
13
13
  import * as nocode from './nocode';
14
14
  import * as templates from './templates';
15
15
  export * from './actions';
@@ -23,6 +23,6 @@ export * from './page-header';
23
23
  export * from './skeleton';
24
24
  export * from './table';
25
25
  export * from './utils';
26
- export * from './step';
27
- declare const version = "1.2.35";
28
- export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProStep, hooks, nocode, templates, utils, };
26
+ export * from './timeline';
27
+ declare const version = "1.3.0";
28
+ export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProTimeline, hooks, nocode, templates, utils, };
package/es/index.js CHANGED
@@ -11,7 +11,7 @@ import ProTable from './table';
11
11
  import ProSkeleton from './skeleton';
12
12
  import utils from './utils'; // import ProSidebar from './sidebar'
13
13
 
14
- import { ProStep } from './step';
14
+ import { ProTimeline } from './timeline';
15
15
  import * as nocode from './nocode';
16
16
  import * as templates from './templates';
17
17
  import TeamixIcon from '@teamix/icon'; // 设置图标源
@@ -29,8 +29,8 @@ export * from './skeleton';
29
29
  export * from './table';
30
30
  export * from './utils'; // export * from './sidebar';
31
31
 
32
- export * from './step';
33
- var version = '1.2.35';
32
+ export * from './timeline';
33
+ var version = '1.3.0';
34
34
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, // ProLayout,
35
35
  ProPageContainer, ProPageHeader, ProSkeleton, ProTable, // ProSidebar,
36
- ProStep, hooks, nocode, templates, utils };
36
+ ProTimeline, hooks, nocode, templates, utils };
@@ -80,11 +80,11 @@ var schema = [{
80
80
  }, {
81
81
  name: 'iconColor',
82
82
  title: '图标颜色',
83
- component: 'ColorSwatches'
83
+ component: 'ColorPicker'
84
84
  }, {
85
85
  name: 'iconBackgroundColor',
86
86
  title: '图标背景颜色',
87
- component: 'ColorSwatches'
87
+ component: 'ColorPicker'
88
88
  }, {
89
89
  name: 'iconBackgroundType',
90
90
  title: '图标背景形状',
@@ -152,13 +152,13 @@ var Layout = function Layout(props) {
152
152
  className: cls('wrapper')
153
153
  }, /*#__PURE__*/React.createElement("div", {
154
154
  className: cls('left')
155
- }, header && /*#__PURE__*/React.createElement(Header, _objectSpread({}, header)), (dataFilter === null || dataFilter === void 0 ? void 0 : (_dataFilter$schema3 = dataFilter.schema) === null || _dataFilter$schema3 === void 0 ? void 0 : _dataFilter$schema3.length) && renderQueryFilter()), /*#__PURE__*/React.createElement("div", {
155
+ }, header && /*#__PURE__*/React.createElement(Header, _objectSpread({}, header))), /*#__PURE__*/React.createElement("div", {
156
156
  className: cls('right')
157
157
  }, extra && /*#__PURE__*/React.createElement(QuickAction, {
158
158
  actionRef: actionRef,
159
159
  quickAction: extra,
160
160
  rowSelection: rowSelection
161
- }), !(dataFilter === null || dataFilter === void 0 ? void 0 : (_dataFilter$schema4 = dataFilter.schema) === null || _dataFilter$schema4 === void 0 ? void 0 : _dataFilter$schema4.length) && renderQueryFilter())));
161
+ }), !(dataFilter === null || dataFilter === void 0 ? void 0 : (_dataFilter$schema3 = dataFilter.schema) === null || _dataFilter$schema3 === void 0 ? void 0 : _dataFilter$schema3.length) && renderQueryFilter())), (dataFilter === null || dataFilter === void 0 ? void 0 : (_dataFilter$schema4 = dataFilter.schema) === null || _dataFilter$schema4 === void 0 ? void 0 : _dataFilter$schema4.length) && renderQueryFilter());
162
162
  } else if (!header && mainAction) {
163
163
  return /*#__PURE__*/React.createElement(React.Fragment, null, renderQueryFilter());
164
164
  } else if (!header && !mainAction) {