@teamix/pro 1.3.13 → 1.3.16

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 (81) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +5531 -720
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/index.js +40 -4
  6. package/es/actions/index.scss +13 -0
  7. package/es/form/Filter/LightFilter.js +7 -5
  8. package/es/form/Filter/index.js +171 -55
  9. package/es/form/Filter/layout.scss +4 -0
  10. package/es/form/Filter/useBindUrl.d.ts +2 -0
  11. package/es/form/Filter/useBindUrl.js +118 -0
  12. package/es/form/ProForm/index.d.ts +2 -3
  13. package/es/form/ProForm/index.js +51 -10
  14. package/es/form/ProForm/index.scss +7 -0
  15. package/es/form/ProForm/useFieldSchema.d.ts +7 -0
  16. package/es/form/ProForm/useFieldSchema.js +109 -0
  17. package/es/form/SchemaForm/index.js +2 -38
  18. package/es/form/SchemaForm/initializeDataSource.d.ts +1 -2
  19. package/es/form/SchemaForm/initializeDataSource.js +14 -19
  20. package/es/form/SchemaForm/initializeRequest.js +25 -26
  21. package/es/form/SchemaForm/initializeRules.d.ts +2 -2
  22. package/es/form/SchemaForm/initializeRules.js +30 -23
  23. package/es/form/SchemaForm/initializeSelectTable.js +80 -6
  24. package/es/form/SchemaForm/reactions.d.ts +4 -4
  25. package/es/form/SchemaForm/reactions.js +30 -23
  26. package/es/form/typing.d.ts +16 -6
  27. package/es/form/utils.d.ts +16 -1
  28. package/es/form/utils.js +21 -2
  29. package/es/global.scss +45 -0
  30. package/es/index.d.ts +2 -1
  31. package/es/index.js +3 -2
  32. package/es/page-header/index.d.ts +2 -0
  33. package/es/page-header/index.js +13 -3
  34. package/es/page-header/index.scss +8 -0
  35. package/es/table/components/Layout/index.scss +5 -5
  36. package/es/table/components/ToolBar/Fullscreen.d.ts +1 -1
  37. package/es/table/utils/pureColumnRender.d.ts +9 -0
  38. package/es/table/utils/pureColumnRender.js +201 -0
  39. package/es/table/utils/pureGenProColumnToColumn.d.ts +7 -0
  40. package/es/table/utils/pureGenProColumnToColumn.js +36 -0
  41. package/es/timeline/ProTimeLineItem/index.js +8 -5
  42. package/es/timeline/typing.d.ts +5 -0
  43. package/lib/actions/index.js +40 -4
  44. package/lib/actions/index.scss +13 -0
  45. package/lib/form/Filter/LightFilter.js +7 -6
  46. package/lib/form/Filter/index.js +172 -55
  47. package/lib/form/Filter/layout.scss +4 -0
  48. package/lib/form/Filter/useBindUrl.d.ts +2 -0
  49. package/lib/form/Filter/useBindUrl.js +129 -0
  50. package/lib/form/ProForm/index.d.ts +2 -3
  51. package/lib/form/ProForm/index.js +57 -9
  52. package/lib/form/ProForm/index.scss +7 -0
  53. package/lib/form/ProForm/useFieldSchema.d.ts +7 -0
  54. package/lib/form/ProForm/useFieldSchema.js +118 -0
  55. package/lib/form/SchemaForm/index.js +2 -45
  56. package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -2
  57. package/lib/form/SchemaForm/initializeDataSource.js +14 -19
  58. package/lib/form/SchemaForm/initializeRequest.js +26 -26
  59. package/lib/form/SchemaForm/initializeRules.d.ts +2 -2
  60. package/lib/form/SchemaForm/initializeRules.js +30 -22
  61. package/lib/form/SchemaForm/initializeSelectTable.js +85 -6
  62. package/lib/form/SchemaForm/reactions.d.ts +4 -4
  63. package/lib/form/SchemaForm/reactions.js +30 -23
  64. package/lib/form/typing.d.ts +16 -6
  65. package/lib/form/utils.d.ts +16 -1
  66. package/lib/form/utils.js +23 -2
  67. package/lib/global.scss +45 -0
  68. package/lib/index.d.ts +2 -1
  69. package/lib/index.js +3 -1
  70. package/lib/page-header/index.d.ts +2 -0
  71. package/lib/page-header/index.js +12 -2
  72. package/lib/page-header/index.scss +8 -0
  73. package/lib/table/components/Layout/index.scss +5 -5
  74. package/lib/table/components/ToolBar/Fullscreen.d.ts +1 -1
  75. package/lib/table/utils/pureColumnRender.d.ts +9 -0
  76. package/lib/table/utils/pureColumnRender.js +215 -0
  77. package/lib/table/utils/pureGenProColumnToColumn.d.ts +7 -0
  78. package/lib/table/utils/pureGenProColumnToColumn.js +43 -0
  79. package/lib/timeline/ProTimeLineItem/index.js +8 -5
  80. package/lib/timeline/typing.d.ts +5 -0
  81. package/package.json +1 -1
@@ -193,8 +193,18 @@ export var ProActionButton = function ProActionButton(props) {
193
193
  }, tooltipProps);
194
194
 
195
195
  if (tooltip || disabledTooltip) {
196
- var showToolTip = disabled ? disabledTooltip : tooltip;
197
- content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), showToolTip);
196
+ if (tooltip && !disabledTooltip) {
197
+ if (!disabled) {
198
+ content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), tooltip);
199
+ }
200
+ } else if (!tooltip && disabledTooltip) {
201
+ if (disabled) {
202
+ content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), disabledTooltip);
203
+ }
204
+ } else if (tooltip && disabledTooltip) {
205
+ var showToolTip = disabled ? disabledTooltip : tooltip;
206
+ content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), showToolTip);
207
+ }
198
208
  }
199
209
 
200
210
  return content;
@@ -208,7 +218,10 @@ var ProActionMenuButtonItem = function ProActionMenuButtonItem(props) {
208
218
  _onClick2 = action.onClick,
209
219
  children = action.children,
210
220
  icon = action.icon,
211
- disabled = action.disabled;
221
+ disabled = action.disabled,
222
+ tooltip = action.tooltip,
223
+ disabledTooltip = action.disabledTooltip,
224
+ tooltipProps = action.tooltipProps;
212
225
  var menuItemActionConfig = Object.assign({}, config, {
213
226
  trigger: 'onClick'
214
227
  });
@@ -222,9 +235,32 @@ var ProActionMenuButtonItem = function ProActionMenuButtonItem(props) {
222
235
  return _onClick2(e, context);
223
236
  }
224
237
  }) : _objectSpread({}, menuItemProps);
238
+ var content = buttonContent(children, icon, undefined, context);
239
+
240
+ var baseToolTipProps = _objectSpread({
241
+ triggerType: 'hover',
242
+ align: 't',
243
+ trigger: content
244
+ }, tooltipProps);
245
+
246
+ if (tooltip || disabledTooltip) {
247
+ if (tooltip && !disabledTooltip) {
248
+ if (!disabled) {
249
+ content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), tooltip);
250
+ }
251
+ } else if (!tooltip && disabledTooltip) {
252
+ if (disabled) {
253
+ content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), disabledTooltip);
254
+ }
255
+ } else if (tooltip && disabledTooltip) {
256
+ var showToolTip = disabled ? disabledTooltip : tooltip;
257
+ content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), showToolTip);
258
+ }
259
+ }
260
+
225
261
  return /*#__PURE__*/React.createElement("div", _objectSpread({
226
262
  className: cls('teamix-pro-action-menu-item', "".concat(usePrefixCls(), "menu-item"), _defineProperty({}, "".concat(usePrefixCls(), "disabled"), disabled))
227
- }, buttonProps), buttonContent(children, icon, undefined, context));
263
+ }, buttonProps), content);
228
264
  };
229
265
 
230
266
  function renderCommonActionButtonMenuItem(action, key, context) {
@@ -121,3 +121,16 @@
121
121
  }
122
122
  }
123
123
  }
124
+
125
+ // 针对弹层内的 table 在暗色模式下适配
126
+ .next-dialog-body {
127
+ .teamix-pro-table, .next-table-empty {
128
+ background: var(--dialog-bg);
129
+ }
130
+ }
131
+
132
+ .next-drawer-body {
133
+ .teamix-pro-table, .next-table-empty {
134
+ background: var(--drawer-bg);
135
+ }
136
+ }
@@ -15,9 +15,6 @@ import cls from 'classnames';
15
15
  import { observable } from '@formily/reactive';
16
16
  import { usePrefixCls } from '@teamix/utils';
17
17
  import ProForm from '../ProForm';
18
- var lightFilterObs = observable({
19
- onFilter: function onFilter() {}
20
- });
21
18
  /**
22
19
  * 轻量筛选
23
20
  */
@@ -34,10 +31,15 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
34
31
  activeFilterValueRef = props.activeFilterValueRef,
35
32
  otherProps = _objectWithoutProperties(props, _excluded);
36
33
 
37
- var filterValue = useRef(defaultFilterValue || ((_schema$ = schema[0]) === null || _schema$ === void 0 ? void 0 : _schema$.name));
34
+ var filterValue = useRef(defaultFilterValue || (schema === null || schema === void 0 ? void 0 : (_schema$ = schema[0]) === null || _schema$ === void 0 ? void 0 : _schema$.name));
38
35
  var prefixCls = usePrefixCls('', {
39
36
  prefix: 'teamix-pro-form-query-filter-light'
40
37
  });
38
+ var lightFilterObs = useMemo(function () {
39
+ return observable({
40
+ onFilter: function onFilter() {}
41
+ });
42
+ }, []);
41
43
  useEffect(function () {
42
44
  if (activeFilterValueRef) {
43
45
  activeFilterValueRef.current = filterValue.current;
@@ -88,7 +90,7 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
88
90
  }, [schema, onFilterChange, defaultFilterValue]);
89
91
  useEffect(function () {
90
92
  lightFilterObs.onFilter = onFilter;
91
- }, [onChange]);
93
+ }, [onFilter]);
92
94
  return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread({}, otherProps), {}, {
93
95
  scope: _objectSpread(_objectSpread({}, otherProps === null || otherProps === void 0 ? void 0 : otherProps.scope), {}, {
94
96
  lightFilterObs: lightFilterObs
@@ -1,4 +1,4 @@
1
- var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
1
+ var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "bindUrl", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
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
 
@@ -49,6 +49,7 @@ import LightFilter from './LightFilter';
49
49
  import AdvancedFilter from './AdvancedFilter';
50
50
  import { QueryFilterLayout } from './Layout';
51
51
  import useSpecialProps from './useSpecialProps';
52
+ import useBindUrl from './useBindUrl';
52
53
  import './index.scss';
53
54
  /**
54
55
  * 查询筛选
@@ -64,9 +65,10 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
64
65
  defaultFilterValue = props.defaultFilterValue,
65
66
  filterValues = props.filterValues,
66
67
  filterDebounce = props.filterDebounce,
67
- onFilter = props.onFilter,
68
- onInit = props.onInit,
69
- onReset = props.onReset,
68
+ bindUrl = props.bindUrl,
69
+ outerFilter = props.onFilter,
70
+ outerInit = props.onInit,
71
+ outerReset = props.onReset,
70
72
  onExpand = props.onExpand,
71
73
  onChange = props.onChange,
72
74
  otherProps = _objectWithoutProperties(props, _excluded);
@@ -85,15 +87,27 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
85
87
  setTagDataSource = _useState4[1];
86
88
 
87
89
  var filterItem = useRef([]);
88
- var defaultForm = mode === 'panel' ? 'advanced' : 'simple';
89
- var currentForm = useRef(defaultForm);
90
+ var defaultFormName = mode === 'panel' ? 'advanced' : 'simple';
91
+ var currentFormName = useRef(defaultFormName);
92
+ var currentForm = useRef();
90
93
  var activeFilterValueRef = useRef();
91
94
  var prefixCls = usePrefixCls('', {
92
95
  prefix: 'teamix-pro-form-query-filter'
93
96
  });
94
97
  var debounceFun = debounce(function (fun, props) {
95
98
  return fun(props);
96
- }, filterDebounce); // onInit
99
+ }, filterDebounce); // 绑定URL
100
+
101
+ var _useBindUrl = useBindUrl(bindUrl, {
102
+ onInit: outerInit,
103
+ onFilter: outerFilter,
104
+ onReset: outerReset
105
+ }, currentForm),
106
+ setValuesByUrlState = _useBindUrl.setValuesByUrlState,
107
+ onInit = _useBindUrl.onInit,
108
+ onFilter = _useBindUrl.onFilter,
109
+ onReset = _useBindUrl.onReset; // onInit
110
+
97
111
 
98
112
  var initialRequestRef = useRef(!!(props === null || props === void 0 ? void 0 : props.initialRequest));
99
113
  var filterEnable = useRef('waiting');
@@ -118,12 +132,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
118
132
  break;
119
133
  }
120
134
 
121
- onFormInit = function onFormInit() {}; // init后销毁 isFormInit 方法
135
+ onFormInit = undefined; // init后销毁 isFormInit 方法
122
136
 
137
+ setValuesByUrlState(form); // 配置URL参数到表单
123
138
 
124
- filterEnable.current = 'filter';
125
-
126
- if (!onInit) {
139
+ if (!outerInit) {
127
140
  _context.next = 10;
128
141
  break;
129
142
  }
@@ -132,7 +145,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
132
145
  return form.validate();
133
146
 
134
147
  case 8:
135
- onInit === null || onInit === void 0 ? void 0 : onInit(toJS(form.values)); // 设置Tag
148
+ onInit(toJS(form.values)); // 设置Tag
136
149
 
137
150
  if (mode === 'panel') {
138
151
  configFilterItem(advancedForm);
@@ -154,17 +167,110 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
154
167
 
155
168
 
156
169
  var setCurrentForm = function setCurrentForm(formName) {
157
- currentForm.current = formName;
170
+ currentFormName.current = formName;
171
+ currentForm.current = formMap[formName];
172
+ var form = currentForm.current;
158
173
 
159
174
  if (formRef) {
160
- var form = formMap[formName];
161
- formRef.current = form;
175
+ formRef.current = form; // 自定义updateTags方法
162
176
 
163
177
  if (!formRef.current.updateTags) {
164
178
  formRef.current.updateTags = function () {
165
- configFilterItem(form);
166
- configTag();
179
+ updateTags(form);
167
180
  };
181
+ } // 自定义setAsyncValues方法
182
+
183
+
184
+ if (!formRef.current.setAsyncValues) {
185
+ formRef.current.setAsyncValues = /*#__PURE__*/function () {
186
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
187
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
188
+ while (1) {
189
+ switch (_context2.prev = _context2.next) {
190
+ case 0:
191
+ form.setValues(values);
192
+
193
+ if (!(filterEnable.current === 'filter' && formName === 'advanced')) {
194
+ _context2.next = 6;
195
+ break;
196
+ }
197
+
198
+ _context2.next = 4;
199
+ return form.validate();
200
+
201
+ case 4:
202
+ onFilter(toJS(form.values));
203
+ updateTags(form);
204
+
205
+ case 6:
206
+ case "end":
207
+ return _context2.stop();
208
+ }
209
+ }
210
+ }, _callee2);
211
+ }));
212
+
213
+ return function (_x2) {
214
+ return _ref2.apply(this, arguments);
215
+ };
216
+ }();
217
+ } // 自定义triggerFilter方法
218
+
219
+
220
+ if (!formRef.current.triggerFilter) {
221
+ formRef.current.triggerFilter = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
222
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
223
+ while (1) {
224
+ switch (_context3.prev = _context3.next) {
225
+ case 0:
226
+ _context3.next = 2;
227
+ return form.validate();
228
+
229
+ case 2:
230
+ onFilter(toJS(form.values));
231
+
232
+ if (formName === 'advanced') {
233
+ updateTags(form);
234
+ }
235
+
236
+ case 4:
237
+ case "end":
238
+ return _context3.stop();
239
+ }
240
+ }
241
+ }, _callee3);
242
+ }));
243
+ } // 自定义triggerReset方法
244
+
245
+
246
+ if (!formRef.current.triggerReset) {
247
+ formRef.current.triggerReset = /*#__PURE__*/function () {
248
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(config) {
249
+ return regeneratorRuntime.wrap(function _callee4$(_context4) {
250
+ while (1) {
251
+ switch (_context4.prev = _context4.next) {
252
+ case 0:
253
+ simpleForm.reset('*', config);
254
+ lightForm.reset('*', config);
255
+ advancedForm.reset('*', config);
256
+
257
+ if (formName === 'advanced') {
258
+ onReset(toJS(advancedForm.values));
259
+ updateTags(form);
260
+ }
261
+
262
+ case 4:
263
+ case "end":
264
+ return _context4.stop();
265
+ }
266
+ }
267
+ }, _callee4);
268
+ }));
269
+
270
+ return function (_x3) {
271
+ return _ref4.apply(this, arguments);
272
+ };
273
+ }();
168
274
  }
169
275
  }
170
276
  }; // 创建简单筛选表单实例
@@ -176,7 +282,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
176
282
  effects: function effects() {
177
283
  onFormReact(function (form) {
178
284
  if (mode === 'inline') {
179
- onFormInit(form);
285
+ var _onFormInit;
286
+
287
+ (_onFormInit = onFormInit) === null || _onFormInit === void 0 ? void 0 : _onFormInit(form).finally(function () {
288
+ return filterEnable.current = 'filter';
289
+ });
180
290
  }
181
291
  });
182
292
  }
@@ -200,7 +310,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
200
310
  effects: function effects() {
201
311
  onFormReact(function (form) {
202
312
  if (mode === 'panel') {
203
- onFormInit(form);
313
+ var _onFormInit2;
314
+
315
+ (_onFormInit2 = onFormInit) === null || _onFormInit2 === void 0 ? void 0 : _onFormInit2(form).finally(function () {
316
+ return filterEnable.current = 'filter';
317
+ });
204
318
  }
205
319
  });
206
320
  onFormInputChange(function (form) {
@@ -219,12 +333,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
219
333
  var displayValues = getFormDisplayValues(form);
220
334
  var originalData = Object.entries(displayValues);
221
335
  var filterData = [];
222
- originalData.forEach(function (_ref2) {
336
+ originalData.forEach(function (_ref5) {
223
337
  var _data$displayValue;
224
338
 
225
- var _ref3 = _slicedToArray(_ref2, 2),
226
- key = _ref3[0],
227
- data = _ref3[1];
339
+ var _ref6 = _slicedToArray(_ref5, 2),
340
+ key = _ref6[0],
341
+ data = _ref6[1];
228
342
 
229
343
  var value = (_data$displayValue = data.displayValue) !== null && _data$displayValue !== void 0 ? _data$displayValue : data.value;
230
344
  var component = data.component;
@@ -259,6 +373,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
259
373
 
260
374
  var configTag = useCallback(function () {
261
375
  setTagDataSource(filterItem.current);
376
+ }, []); // 更新标签数据
377
+
378
+ var updateTags = useCallback(function (form) {
379
+ configFilterItem(form);
380
+ configTag();
262
381
  }, []); // 展开收起高级筛选
263
382
 
264
383
  var toggleAdvancedFilter = useCallback(function () {
@@ -266,7 +385,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
266
385
 
267
386
  if (result) {
268
387
  // 展开高级筛选,Light回填Advanced
269
- if (currentForm.current === 'light') {
388
+ if (currentFormName.current === 'light') {
270
389
  var key = activeFilterValueRef.current;
271
390
  var value = lightForm.values[key];
272
391
  advancedForm.setValuesIn(key, value);
@@ -281,68 +400,66 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
281
400
  }, [panelVisible, configTag]); // 简单搜索Filter
282
401
 
283
402
  var onSimpleFilter = useCallback( /*#__PURE__*/function () {
284
- var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
285
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
403
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(values) {
404
+ return regeneratorRuntime.wrap(function _callee5$(_context5) {
286
405
  while (1) {
287
- switch (_context2.prev = _context2.next) {
406
+ switch (_context5.prev = _context5.next) {
288
407
  case 0:
289
- _context2.next = 2;
408
+ _context5.next = 2;
290
409
  return simpleForm.validate();
291
410
 
292
411
  case 2:
293
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
412
+ onFilter(values);
294
413
 
295
414
  case 3:
296
415
  case "end":
297
- return _context2.stop();
416
+ return _context5.stop();
298
417
  }
299
418
  }
300
- }, _callee2);
419
+ }, _callee5);
301
420
  }));
302
421
 
303
- return function (_x2) {
304
- return _ref4.apply(this, arguments);
422
+ return function (_x4) {
423
+ return _ref7.apply(this, arguments);
305
424
  };
306
425
  }(), [onFilter]); // 简单搜索Change
307
426
 
308
427
  var onSimpleChange = useCallback(function (values, fieldValue, fieldName) {
309
- if (currentForm.current === 'simple') {
428
+ if (currentFormName.current === 'simple') {
310
429
  onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
311
430
 
312
431
  if (filterEnable.current === 'filter') {
313
432
  debounceFun(onSimpleFilter, values);
314
433
  }
315
434
  }
316
- }, [onChange]); // 轻量搜索Filter
435
+ }, [onChange, onSimpleFilter]); // 轻量搜索Filter
317
436
 
318
437
  var onLightFilter = useCallback(function (values) {
319
438
  var _Object$keys;
320
439
 
321
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(values); // 清空advancedForm的值
440
+ onFilter(values); // 清空advancedForm的值
322
441
 
323
442
  var clearKeys = {};
324
443
  (_Object$keys = Object.keys(advancedForm.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (key) {
325
444
  clearKeys[key] = undefined;
326
445
  });
327
- advancedForm.setValues(clearKeys); // 配置Tag
328
-
329
- configFilterItem(advancedForm);
330
- configTag();
446
+ advancedForm.setValues(clearKeys);
447
+ updateTags(advancedForm);
331
448
  }, [onFilter]); // 轻量搜索Change
332
449
 
333
450
  var onLightChange = useCallback(function (values, fieldValue, fieldName) {
334
- if (currentForm.current === 'light') {
451
+ if (currentFormName.current === 'light') {
335
452
  onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
336
453
 
337
454
  if (filterEnable.current === 'filter') {
338
455
  debounceFun(onLightFilter, values);
339
456
  }
340
457
  }
341
- }, [onChange]); // 高级搜索Filter
458
+ }, [onChange, onLightFilter]); // 高级搜索Filter
342
459
 
343
460
  var onAdvancedFilter = useCallback(function (values) {
344
461
  setCurrentForm('advanced');
345
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
462
+ onFilter(values);
346
463
  configFilterItem(advancedForm); // 清空lightForm的值
347
464
 
348
465
  lightForm.reset('*', {
@@ -352,7 +469,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
352
469
 
353
470
  var onAdvancedReset = useCallback(function () {
354
471
  setCurrentForm('advanced');
355
- onReset === null || onReset === void 0 ? void 0 : onReset(toJS(advancedForm.values));
472
+ onReset(toJS(advancedForm.values));
356
473
  configFilterItem(advancedForm); // 清空lightForm的值
357
474
 
358
475
  lightForm.reset('*', {
@@ -361,7 +478,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
361
478
  }, [onReset]); // 高级搜索Change
362
479
 
363
480
  var onAdvancedChange = useCallback(function (values, fieldValue, fieldName) {
364
- if (currentForm.current === 'advanced') {
481
+ if (currentFormName.current === 'advanced') {
365
482
  onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
366
483
  }
367
484
  }, [onChange]); // 关闭标签清空表单字段值
@@ -375,9 +492,8 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
375
492
  }
376
493
 
377
494
  advancedForm.setValuesIn(key, newValue);
378
- configFilterItem(advancedForm);
379
- configTag();
380
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(toJS(advancedForm.values));
495
+ updateTags(advancedForm);
496
+ onFilter(toJS(advancedForm.values));
381
497
  }, [onFilter]); // initialRequest 的回调
382
498
 
383
499
  var onInitialComplete = useCallback(function (form) {
@@ -388,7 +504,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
388
504
  }, []); // 组件挂载
389
505
 
390
506
  useEffect(function () {
391
- setCurrentForm(currentForm.current);
507
+ setCurrentForm(currentFormName.current);
392
508
  }, []);
393
509
  return /*#__PURE__*/React.createElement(QueryFilterLayout, {
394
510
  className: cls(prefixCls, props.className),
@@ -420,12 +536,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
420
536
  onReset: onAdvancedReset,
421
537
  onInitialComplete: onInitialComplete
422
538
  })) : null
423
- }, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref5) {
424
- var key = _ref5.key,
425
- label = _ref5.label,
426
- value = _ref5.value,
427
- type = _ref5.type,
428
- index = _ref5.index;
539
+ }, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref8) {
540
+ var key = _ref8.key,
541
+ label = _ref8.label,
542
+ value = _ref8.value,
543
+ type = _ref8.type,
544
+ index = _ref8.index;
429
545
  return /*#__PURE__*/React.createElement(Tag.Closeable, {
430
546
  key: isNum(index) ? key + label : key,
431
547
  afterClose: function afterClose() {
@@ -6,6 +6,10 @@ $query-filter-layout: #{$teamix-pro-form}-query-filter-layout;
6
6
  --panel-filter-bg: #1f1f1f;
7
7
  }
8
8
 
9
+ .theme-hybridcloud {
10
+ --panel-filter-bg: var(--color-fill1-2);
11
+ }
12
+
9
13
  .#{$query-filter-layout} {
10
14
  .#{$query-filter-layout}-inline {
11
15
  display: flex;
@@ -0,0 +1,2 @@
1
+ declare const _default: (bindUrl: any, functions: any, formRef: any) => any;
2
+ export default _default;
@@ -0,0 +1,118 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ 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; }
14
+
15
+ 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; }
16
+
17
+ 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; }
18
+
19
+ import { useUrlState } from '@teamix/hooks';
20
+ import { isUsable } from '@teamix/utils';
21
+ export default (function (bindUrl, functions, formRef) {
22
+ // 预处理 bindUrl 参数(主要兼容 SelectGroup 组件)
23
+ var initializeBindUrl = function initializeBindUrl(options) {
24
+ return options ? _objectSpread(_objectSpread({}, options), {}, {
25
+ beforeStringify: function beforeStringify(values) {
26
+ var _Object$entries;
27
+
28
+ var beforeStringify = options.beforeStringify;
29
+
30
+ var newValues = _objectSpread({}, values);
31
+
32
+ (_Object$entries = Object.entries(values)) === null || _Object$entries === void 0 ? void 0 : _Object$entries.forEach(function (_ref) {
33
+ var _form$query;
34
+
35
+ var _ref2 = _slicedToArray(_ref, 2),
36
+ key = _ref2[0],
37
+ value = _ref2[1];
38
+
39
+ var form = formRef.current;
40
+ var field = (_form$query = form.query(key)) === null || _form$query === void 0 ? void 0 : _form$query.take();
41
+
42
+ if ((field === null || field === void 0 ? void 0 : field.component[0]) === 'SelectGroup') {
43
+ newValues[key] = value.map(function (_ref3) {
44
+ var key = _ref3.key,
45
+ value = _ref3.value;
46
+ return key && value ? "".concat(key, "||").concat(value === null || value === void 0 ? void 0 : value.join('|')) : '';
47
+ });
48
+ }
49
+ });
50
+ return beforeStringify ? beforeStringify(newValues) : newValues;
51
+ }
52
+ }) : options;
53
+ }; // 通过 useUrlState 获取 url 上的参数和 url 配置方法
54
+
55
+
56
+ var _useUrlState = useUrlState(undefined, initializeBindUrl(bindUrl)),
57
+ _useUrlState2 = _slicedToArray(_useUrlState, 2),
58
+ urlState = _useUrlState2[0],
59
+ setUrlState = _useUrlState2[1]; // 输出配置url参数的函数
60
+
61
+
62
+ var initializedFunctions = Object.entries(functions).reduce(function (prev, _ref4) {
63
+ var _ref5 = _slicedToArray(_ref4, 2),
64
+ key = _ref5[0],
65
+ fun = _ref5[1];
66
+
67
+ prev[key] = function (values) {
68
+ fun === null || fun === void 0 ? void 0 : fun(values);
69
+ setUrlState(values);
70
+ };
71
+
72
+ return prev;
73
+ }, {}); // 使用 url 参数配置 QueryFilter 默认值(移除非表单值,兼容数组数据,兼容 SelectGroup 组件)
74
+
75
+ var setValuesByUrlState = function setValuesByUrlState(form) {
76
+ if (urlState) {
77
+ var _Object$entries2;
78
+
79
+ (_Object$entries2 = Object.entries(urlState)) === null || _Object$entries2 === void 0 ? void 0 : _Object$entries2.forEach(function (_ref6) {
80
+ var _form$query2;
81
+
82
+ var _ref7 = _slicedToArray(_ref6, 2),
83
+ key = _ref7[0],
84
+ value = _ref7[1];
85
+
86
+ var field = (_form$query2 = form.query(key)) === null || _form$query2 === void 0 ? void 0 : _form$query2.take();
87
+
88
+ if (field) {
89
+ var newValue = value;
90
+
91
+ if (field.displayName === 'ArrayField') {
92
+ newValue = [].concat(isUsable(newValue) ? newValue : []);
93
+ }
94
+
95
+ if (field.component[0] === 'SelectGroup') {
96
+ newValue = newValue.map(function (item) {
97
+ var _item$split = item === null || item === void 0 ? void 0 : item.split('||'),
98
+ _item$split2 = _slicedToArray(_item$split, 2),
99
+ key = _item$split2[0],
100
+ value = _item$split2[1];
101
+
102
+ return {
103
+ key: key,
104
+ value: value === null || value === void 0 ? void 0 : value.split('|')
105
+ };
106
+ });
107
+ }
108
+
109
+ form.setValuesIn(key, newValue);
110
+ }
111
+ });
112
+ }
113
+ };
114
+
115
+ return _objectSpread({
116
+ setValuesByUrlState: setValuesByUrlState
117
+ }, initializedFunctions);
118
+ });
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
- import type { ProFormProps } from '../typing';
1
+ import type { ComposedProForm } from '../typing';
3
2
  import './index.scss';
4
- declare const ProForm: React.FC<ProFormProps>;
3
+ declare const ProForm: ComposedProForm;
5
4
  export default ProForm;