@ant-design/pro-components 3.0.0-beta.3 → 3.0.2-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 (134) hide show
  1. package/dist/pro-components.min.js +1 -1
  2. package/es/card/components/Statistic/style.js +2 -6
  3. package/es/descriptions/index.js +2 -1
  4. package/es/field/ValueTypeToComponent.js +4 -4
  5. package/es/field/components/Cascader/index.d.ts +2 -2
  6. package/es/field/components/Checkbox/index.d.ts +1 -1
  7. package/es/field/components/ColorPicker/index.d.ts +1 -1
  8. package/es/field/components/DatePicker/index.d.ts +2 -2
  9. package/es/field/components/Percent/util.d.ts +1 -1
  10. package/es/field/components/Radio/index.d.ts +1 -1
  11. package/es/field/components/RangePicker/index.d.ts +2 -2
  12. package/es/field/components/Segmented/index.d.ts +1 -1
  13. package/es/field/components/Select/LightSelect/index.d.ts +1 -1
  14. package/es/field/components/Select/index.d.ts +1 -1
  15. package/es/field/components/Switch/index.d.ts +1 -1
  16. package/es/field/components/TreeSelect/index.d.ts +2 -2
  17. package/es/form/BaseForm/BaseForm.js +3 -2
  18. package/es/form/components/Cascader/index.js +1 -1
  19. package/es/form/components/Checkbox/index.js +1 -1
  20. package/es/form/components/ColorPicker/index.js +1 -1
  21. package/es/form/components/DatePicker/BaseDatePicker.js +21 -13
  22. package/es/form/components/DatePicker/DatePicker.js +1 -1
  23. package/es/form/components/DatePicker/DateTimePicker.js +1 -1
  24. package/es/form/components/DatePicker/MonthPicker.js +1 -1
  25. package/es/form/components/DatePicker/QuarterPicker.js +1 -1
  26. package/es/form/components/DatePicker/TimePicker.js +1 -1
  27. package/es/form/components/DatePicker/WeekPicker.js +1 -1
  28. package/es/form/components/DatePicker/YearPicker.js +1 -1
  29. package/es/form/components/DateRangePicker/BaseDateRanger.js +39 -14
  30. package/es/form/components/DateRangePicker/DateMonthRangePicker.js +1 -1
  31. package/es/form/components/DateRangePicker/DateQuarterRangePicker.js +1 -1
  32. package/es/form/components/DateRangePicker/DateTimeRangePicker.js +1 -1
  33. package/es/form/components/DateRangePicker/DateWeekRangePicker.js +1 -1
  34. package/es/form/components/DateRangePicker/DateYearRangePicker.js +1 -1
  35. package/es/form/components/DateRangePicker/TimeRangePicker.js +1 -1
  36. package/es/form/components/DateRangePicker/index.js +1 -1
  37. package/es/form/components/Digit/DigitRange.d.ts +1 -1
  38. package/es/form/components/Digit/DigitRange.js +1 -1
  39. package/es/form/components/Digit/index.js +1 -1
  40. package/es/form/components/FormItem/warpField.js +11 -11
  41. package/es/form/components/Money/index.js +1 -1
  42. package/es/form/components/Radio/index.js +49 -14
  43. package/es/form/components/Rate/index.js +1 -1
  44. package/es/form/components/SchemaForm/index.js +1 -2
  45. package/es/form/components/Segmented/index.js +1 -1
  46. package/es/form/components/Select/index.js +2 -2
  47. package/es/form/components/Slider/index.js +1 -1
  48. package/es/form/components/Switch/index.js +1 -1
  49. package/es/form/components/Text/index.js +3 -3
  50. package/es/form/components/TreeSelect/index.js +1 -1
  51. package/es/form/components/UploadButton/index.d.ts +1 -1
  52. package/es/form/components/UploadButton/index.js +3 -3
  53. package/es/form/layouts/ProForm/index.d.ts +1 -1
  54. package/es/form/typing.d.ts +1 -1
  55. package/es/layout/ProLayout.js +3 -0
  56. package/es/layout/components/SiderMenu/index.js +4 -2
  57. package/es/layout/index.d.ts +0 -1
  58. package/es/layout/index.js +2 -1
  59. package/es/table/Table.js +52 -75
  60. package/es/table/components/ColumnSetting/index.js +12 -2
  61. package/es/table/typing.d.ts +29 -7
  62. package/es/table/utils/genProColumnToColumn.d.ts +2 -2
  63. package/es/table/utils/genProColumnToColumn.js +5 -17
  64. package/es/table/utils/index.d.ts +58 -5
  65. package/es/table/utils/index.js +155 -18
  66. package/es/utils/conversionMomentValue/index.js +14 -2
  67. package/es/utils/hooks/useDocumentTitle/index.js +1 -1
  68. package/lib/card/components/Statistic/style.js +2 -6
  69. package/lib/descriptions/index.js +2 -1
  70. package/lib/field/ValueTypeToComponent.js +4 -4
  71. package/lib/field/components/Cascader/index.d.ts +2 -2
  72. package/lib/field/components/Checkbox/index.d.ts +2 -2
  73. package/lib/field/components/ColorPicker/index.d.ts +2 -2
  74. package/lib/field/components/DatePicker/index.d.ts +2 -2
  75. package/lib/field/components/Percent/util.d.ts +1 -1
  76. package/lib/field/components/Radio/index.d.ts +1 -1
  77. package/lib/field/components/RangePicker/index.d.ts +2 -2
  78. package/lib/field/components/Segmented/index.d.ts +1 -1
  79. package/lib/field/components/Select/LightSelect/index.d.ts +1 -1
  80. package/lib/field/components/Select/index.d.ts +2 -2
  81. package/lib/field/components/Switch/index.d.ts +1 -1
  82. package/lib/field/components/TreeSelect/index.d.ts +2 -2
  83. package/lib/form/BaseForm/BaseForm.js +3 -2
  84. package/lib/form/components/Cascader/index.js +1 -1
  85. package/lib/form/components/Checkbox/index.js +1 -1
  86. package/lib/form/components/ColorPicker/index.js +1 -1
  87. package/lib/form/components/DatePicker/BaseDatePicker.js +20 -12
  88. package/lib/form/components/DatePicker/DatePicker.js +1 -1
  89. package/lib/form/components/DatePicker/DateTimePicker.js +1 -1
  90. package/lib/form/components/DatePicker/MonthPicker.js +1 -1
  91. package/lib/form/components/DatePicker/QuarterPicker.js +1 -1
  92. package/lib/form/components/DatePicker/TimePicker.js +1 -1
  93. package/lib/form/components/DatePicker/WeekPicker.js +1 -1
  94. package/lib/form/components/DatePicker/YearPicker.js +1 -1
  95. package/lib/form/components/DateRangePicker/BaseDateRanger.js +38 -13
  96. package/lib/form/components/DateRangePicker/DateMonthRangePicker.js +1 -1
  97. package/lib/form/components/DateRangePicker/DateQuarterRangePicker.js +1 -1
  98. package/lib/form/components/DateRangePicker/DateTimeRangePicker.js +1 -1
  99. package/lib/form/components/DateRangePicker/DateWeekRangePicker.js +1 -1
  100. package/lib/form/components/DateRangePicker/DateYearRangePicker.js +1 -1
  101. package/lib/form/components/DateRangePicker/TimeRangePicker.js +1 -1
  102. package/lib/form/components/DateRangePicker/index.js +1 -1
  103. package/lib/form/components/Digit/DigitRange.d.ts +1 -1
  104. package/lib/form/components/Digit/DigitRange.js +1 -1
  105. package/lib/form/components/Digit/index.js +1 -1
  106. package/lib/form/components/FormItem/warpField.js +11 -11
  107. package/lib/form/components/Money/index.js +1 -1
  108. package/lib/form/components/Radio/index.js +49 -14
  109. package/lib/form/components/Rate/index.js +1 -1
  110. package/lib/form/components/SchemaForm/index.js +1 -2
  111. package/lib/form/components/Segmented/index.js +1 -1
  112. package/lib/form/components/Select/index.js +2 -2
  113. package/lib/form/components/Slider/index.js +1 -1
  114. package/lib/form/components/Switch/index.js +1 -1
  115. package/lib/form/components/Text/index.js +3 -3
  116. package/lib/form/components/TreeSelect/index.js +1 -1
  117. package/lib/form/components/UploadButton/index.d.ts +1 -1
  118. package/lib/form/components/UploadButton/index.js +3 -3
  119. package/lib/form/layouts/ProForm/index.d.ts +1 -1
  120. package/lib/form/typing.d.ts +1 -1
  121. package/lib/layout/ProLayout.js +3 -0
  122. package/lib/layout/components/SiderMenu/index.js +4 -2
  123. package/lib/layout/index.d.ts +0 -1
  124. package/lib/layout/index.js +2 -9
  125. package/lib/table/Table.js +69 -92
  126. package/lib/table/components/ColumnSetting/index.js +12 -2
  127. package/lib/table/typing.d.ts +29 -7
  128. package/lib/table/utils/genProColumnToColumn.d.ts +2 -2
  129. package/lib/table/utils/genProColumnToColumn.js +4 -16
  130. package/lib/table/utils/index.d.ts +58 -5
  131. package/lib/table/utils/index.js +157 -20
  132. package/lib/utils/conversionMomentValue/index.js +14 -2
  133. package/lib/utils/hooks/useDocumentTitle/index.js +1 -1
  134. package/package.json +49 -45
@@ -4,6 +4,8 @@ var _ref3;
4
4
  var _excluded = ["fieldProps", "options", "radioType", "layout", "proFieldProps", "valueEnum"];
5
5
  import { Radio } from 'antd';
6
6
  import React from 'react';
7
+ import FieldRadio from "../../../field/components/Radio";
8
+ import { ProConfigProvider } from "../../../provider";
7
9
  import { runFunction } from "../../../utils";
8
10
  import ProField from "../Field";
9
11
  import warpField from "../FormItem/warpField";
@@ -16,20 +18,53 @@ var RadioGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
16
18
  proFieldProps = _ref.proFieldProps,
17
19
  valueEnum = _ref.valueEnum,
18
20
  rest = _objectWithoutProperties(_ref, _excluded);
19
- return /*#__PURE__*/_jsx(ProField, _objectSpread(_objectSpread({
20
- valueType: radioType === 'button' ? 'radioButton' : 'radio',
21
- ref: ref,
22
- valueEnum: runFunction(valueEnum, undefined)
23
- }, rest), {}, {
24
- fieldProps: _objectSpread({
25
- options: options,
26
- layout: layout
27
- }, fieldProps),
28
- proFieldProps: proFieldProps,
29
- filedConfig: {
30
- customLightMode: true
31
- }
32
- }));
21
+ return /*#__PURE__*/_jsx(ProConfigProvider, {
22
+ valueTypeMap: {
23
+ radio: {
24
+ render: function render(text, props) {
25
+ return /*#__PURE__*/_jsx(FieldRadio, _objectSpread(_objectSpread({}, props), {}, {
26
+ text: text
27
+ }));
28
+ },
29
+ formItemRender: function formItemRender(text, props) {
30
+ return /*#__PURE__*/_jsx(FieldRadio, _objectSpread(_objectSpread({}, props), {}, {
31
+ text: text
32
+ }));
33
+ }
34
+ },
35
+ radioButton: {
36
+ render: function render(text, props) {
37
+ console.log(props);
38
+ return /*#__PURE__*/_jsx(FieldRadio, _objectSpread(_objectSpread({
39
+ radioType: 'button'
40
+ }, props), {}, {
41
+ text: text
42
+ }));
43
+ },
44
+ formItemRender: function formItemRender(text, props) {
45
+ return /*#__PURE__*/_jsx(FieldRadio, _objectSpread(_objectSpread({
46
+ radioType: 'button'
47
+ }, props), {}, {
48
+ text: text
49
+ }));
50
+ }
51
+ }
52
+ },
53
+ children: /*#__PURE__*/_jsx(ProField, _objectSpread(_objectSpread({
54
+ valueType: radioType === 'button' ? 'radioButton' : 'radio',
55
+ ref: ref,
56
+ valueEnum: runFunction(valueEnum, undefined)
57
+ }, rest), {}, {
58
+ fieldProps: _objectSpread({
59
+ options: options,
60
+ layout: layout
61
+ }, fieldProps),
62
+ proFieldProps: proFieldProps,
63
+ fieldConfig: {
64
+ customLightMode: true
65
+ }
66
+ }))
67
+ });
33
68
  });
34
69
 
35
70
  /**
@@ -35,7 +35,7 @@ var ProFormRate = function ProFormRate(_ref, ref) {
35
35
  fieldProps: fieldProps,
36
36
  ref: ref,
37
37
  proFieldProps: proFieldProps,
38
- filedConfig: {
38
+ fieldConfig: {
39
39
  ignoreWidth: true
40
40
  }
41
41
  }, rest))
@@ -140,12 +140,11 @@ function BetaSchemaForm(props) {
140
140
  propsOnValuesChange === null || propsOnValuesChange === void 0 || propsOnValuesChange(changedValues, values);
141
141
  }, [propsRef, shouldUpdate]);
142
142
  var formChildrenDoms = useDeepCompareMemo(function () {
143
- if (!formRef.current) return;
144
143
  // like StepsForm's columns but not only for StepsForm
145
144
  if (columns.length && Array.isArray(columns[0])) return;
146
145
  return genItems(columns);
147
146
  // eslint-disable-next-line react-hooks/exhaustive-deps
148
- }, [columns, restProps === null || restProps === void 0 ? void 0 : restProps.open, action, type, formDomsDeps]);
147
+ }, [columns, restProps === null || restProps === void 0 ? void 0 : restProps.open, action, type, formDomsDeps, formRef.current]);
149
148
 
150
149
  /**
151
150
  * Append layoutType component specific props
@@ -39,7 +39,7 @@ var ProFormSegmented = function ProFormSegmented(_ref, ref) {
39
39
  ref: ref,
40
40
  request: request,
41
41
  params: params,
42
- filedConfig: {
42
+ fieldConfig: {
43
43
  customLightMode: true
44
44
  },
45
45
  proFieldProps: proFieldProps
@@ -46,7 +46,7 @@ var ProFormSelectComponents = function ProFormSelectComponents(_ref, ref) {
46
46
  request: request,
47
47
  params: params,
48
48
  valueType: "select",
49
- filedConfig: {
49
+ fieldConfig: {
50
50
  customLightMode: true
51
51
  },
52
52
  fieldProps: _objectSpread({
@@ -104,7 +104,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
104
104
  request: request,
105
105
  params: params,
106
106
  valueType: "select",
107
- filedConfig: {
107
+ fieldConfig: {
108
108
  customLightMode: true
109
109
  },
110
110
  fieldProps: _objectSpread({
@@ -49,7 +49,7 @@ var ProFormSlider = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
49
49
  }),
50
50
  ref: ref,
51
51
  proFieldProps: proFieldProps,
52
- filedConfig: {
52
+ fieldConfig: {
53
53
  ignoreWidth: true
54
54
  }
55
55
  }, rest))
@@ -40,7 +40,7 @@ var ProFormSwitch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
40
40
  ref: ref,
41
41
  valuePropName: "checked",
42
42
  proFieldProps: proFieldProps,
43
- filedConfig: {
43
+ fieldConfig: {
44
44
  valuePropName: 'checked',
45
45
  ignoreWidth: true,
46
46
  customLightMode: true
@@ -25,7 +25,7 @@ var ProFormText = function ProFormText(_ref) {
25
25
  return /*#__PURE__*/_jsx(ProField, _objectSpread({
26
26
  valueType: valueType,
27
27
  fieldProps: fieldProps,
28
- filedConfig: {
28
+ fieldConfig: {
29
29
  valueType: valueType
30
30
  },
31
31
  proFieldProps: proFieldProps
@@ -126,7 +126,7 @@ var Password = function Password(_ref2) {
126
126
  }
127
127
  }),
128
128
  proFieldProps: proFieldProps,
129
- filedConfig: {
129
+ fieldConfig: {
130
130
  valueType: valueType
131
131
  }
132
132
  }, rest))
@@ -153,7 +153,7 @@ var Password = function Password(_ref2) {
153
153
  valueType: "password",
154
154
  fieldProps: fieldProps,
155
155
  proFieldProps: proFieldProps,
156
- filedConfig: {
156
+ fieldConfig: {
157
157
  valueType: valueType
158
158
  }
159
159
  }, rest))
@@ -38,7 +38,7 @@ var ProFormTreeSelect = function ProFormTreeSelect(_ref, ref) {
38
38
  ref: ref,
39
39
  request: request,
40
40
  params: params,
41
- filedConfig: {
41
+ fieldConfig: {
42
42
  customLightMode: true
43
43
  },
44
44
  proFieldProps: proFieldProps
@@ -48,5 +48,5 @@ export type ProFormUploadButtonProps = ProFormFieldItemProps<UploadProps<any>, H
48
48
  */
49
49
  imageProps?: Omit<ImageProps, 'src'>;
50
50
  } & PickUploadProps;
51
- declare const ProFormUploadButton: React.ForwardRefRenderFunction<any, ProFormUploadButtonProps>;
51
+ declare const ProFormUploadButton: React.FC<ProFormUploadButtonProps>;
52
52
  export default ProFormUploadButton;
@@ -30,7 +30,7 @@ var getBase64 = function getBase64(file) {
30
30
  *
31
31
  * @param
32
32
  */
33
- var BaseProFormUploadButton = function BaseProFormUploadButton(_ref, ref) {
33
+ var BaseProFormUploadButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
34
34
  var _fieldProps$name;
35
35
  var fieldProps = _ref.fieldProps,
36
36
  action = _ref.action,
@@ -128,8 +128,8 @@ var BaseProFormUploadButton = function BaseProFormUploadButton(_ref, ref) {
128
128
  src: previewImage
129
129
  }))]
130
130
  });
131
- };
132
- var ProFormUploadButton = (_ref3 = warpField) === null || _ref3 === void 0 ? void 0 : _ref3( /*#__PURE__*/React.forwardRef(BaseProFormUploadButton), {
131
+ });
132
+ var ProFormUploadButton = (_ref3 = warpField) === null || _ref3 === void 0 ? void 0 : _ref3(BaseProFormUploadButton, {
133
133
  getValueFromEvent: function getValueFromEvent(value) {
134
134
  return value.fileList;
135
135
  }
@@ -14,7 +14,7 @@ declare namespace ProForm {
14
14
  var Provider: React.FC<import("antd/es/form/context").FormProviderProps>;
15
15
  var useFormInstance: typeof import("antd/es/form/hooks/useFormInstance").default;
16
16
  var EditOrReadOnlyContext: React.Context<{
17
- mode: "read" | "edit" | "update";
17
+ mode: "update" | "read" | "edit";
18
18
  }>;
19
19
  }
20
20
  export { ProForm };
@@ -67,7 +67,7 @@ export type ExtendsProps = {
67
67
  */
68
68
  formItemProps?: FormItemProps;
69
69
  /** 给自定义组件行为开的口子 */
70
- filedConfig?: ProFormItemCreateConfig;
70
+ fieldConfig?: ProFormItemCreateConfig;
71
71
  fieldRef?: React.Ref<CaptFieldRef | null | undefined>;
72
72
  };
73
73
  export type ProFormGroupProps = ProFormBaseGroupProps & ProFormGridConfig;
@@ -125,6 +125,9 @@ var defaultPageTitleRender = function defaultPageTitleRender(pageProps, props) {
125
125
  }));
126
126
  }
127
127
  warning(typeof title === 'string', 'pro-layout: renderPageTitle return value should be a string');
128
+ // 当 pageTitleRender 返回非字符串值时,返回默认的 pageTitleInfo
129
+ // 而不是使用可能包含非字符串值的 title
130
+ return pageTitleInfo;
128
131
  }
129
132
  return pageTitleInfo;
130
133
  };
@@ -42,8 +42,10 @@ var SiderMenuWrapper = function SiderMenuWrapper(props) {
42
42
  placement: direction === 'rtl' ? 'right' : 'left',
43
43
  className: classNames("".concat(prefixCls, "-drawer-sider"), className),
44
44
  open: !collapsed,
45
- afterOpenChange: function afterOpenChange() {
46
- onCollapse === null || onCollapse === void 0 || onCollapse(true);
45
+ afterOpenChange: function afterOpenChange(open) {
46
+ if (!open) {
47
+ onCollapse === null || onCollapse === void 0 || onCollapse(true);
48
+ }
47
49
  },
48
50
  style: _objectSpread({
49
51
  padding: 0,
@@ -20,7 +20,6 @@ import { getPageTitle } from './getPageTitle';
20
20
  import type { ProLayoutProps } from './ProLayout';
21
21
  import { ProLayout } from './ProLayout';
22
22
  import { getMenuData } from './utils/getMenuData';
23
- export { Watermark as WaterMark } from 'antd';
24
23
  export * from './components/Help';
25
24
  export type { ProSettings, ProSettings as Settings } from './defaultSettings';
26
25
  export type { MenuDataItem } from './typing';
@@ -11,7 +11,8 @@ import { RouteContext } from "./context/RouteContext";
11
11
  import { getPageTitle } from "./getPageTitle";
12
12
  import { ProLayout } from "./ProLayout";
13
13
  import { getMenuData } from "./utils/getMenuData";
14
- export { Watermark as WaterMark } from 'antd';
14
+
15
+ // WaterMark component has been removed, please use antd Watermark directly
15
16
  export * from "./components/Help";
16
17
  export { DefaultFooter, DefaultHeader, FooterToolbar, getMenuData, getPageTitle, GridContent, PageContainer, PageHeader, PageLoading, ProBreadcrumb, ProLayout, ProPageHeader, RouteContext, SettingDrawer, TopNavHeader };
17
18
  export default ProLayout;
package/es/table/Table.js CHANGED
@@ -6,7 +6,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
6
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
7
7
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
8
8
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
9
- var _excluded = ["rowKey", "tableClassName", "defaultClassName", "action", "tableColumn", "type", "pagination", "rowSelection", "size", "defaultSize", "tableStyle", "toolbarDom", "hideToolbar", "searchNode", "style", "cardProps", "alertDom", "name", "onSortChange", "onFilterChange", "options", "isLightFilter", "className", "cardBordered", "editableUtils", "getRowKey"],
9
+ var _excluded = ["rowKey", "tableClassName", "defaultClassName", "action", "tableColumn", "type", "pagination", "rowSelection", "size", "defaultSize", "tableStyle", "toolbarDom", "hideToolbar", "searchNode", "style", "cardProps", "alertDom", "name", "onSortChange", "onFilterChange", "options", "isLightFilter", "className", "cardBordered", "editableUtils", "getRowKey", "tableRef"],
10
10
  _excluded2 = ["cardBordered", "request", "className", "params", "defaultData", "headerTitle", "postData", "ghost", "pagination", "actionRef", "columns", "toolBarRender", "optionsRender", "onLoad", "onRequestError", "style", "cardProps", "tableStyle", "tableClassName", "options", "search", "name", "onLoadingChange", "rowSelection", "beforeSearchSubmit", "tableAlertRender", "defaultClassName", "formRef", "type", "columnEmptyText", "toolbar", "rowKey", "manualRequest", "polling", "tooltip", "revalidateOnFocus", "searchFormRender"];
11
11
  import { ConfigProvider, Table } from 'antd';
12
12
  import classNames from 'classnames';
@@ -24,7 +24,7 @@ import Toolbar from "./components/ToolBar";
24
24
  import { Container, TableContext } from "./Store/Provide";
25
25
  import { useStyle } from "./style";
26
26
  import useFetchData from "./useFetchData";
27
- import { genColumnKey, isBordered, mergePagination, parseDefaultColumnConfig, useActionType } from "./utils";
27
+ import { flattenColumns, genColumnKey, getServerFilterResult, getServerSorterResult, isBordered, mergePagination, parseServerDefaultColumnConfig, useActionType } from "./utils";
28
28
  import { columnSort } from "./utils/columnSort";
29
29
  import { genProColumnToColumn } from "./utils/genProColumnToColumn";
30
30
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -58,6 +58,7 @@ function TableRender(props) {
58
58
  cardBordered = props.cardBordered,
59
59
  editableUtils = props.editableUtils,
60
60
  getRowKey = props.getRowKey,
61
+ tableRef = props.tableRef,
61
62
  rest = _objectWithoutProperties(props, _excluded);
62
63
  var counter = useContext(TableContext);
63
64
 
@@ -82,6 +83,14 @@ function TableRender(props) {
82
83
  return loopFilter(tableColumns);
83
84
  }, [counter.columnsMap, tableColumns]);
84
85
 
86
+ // 需要进行筛选的列
87
+ var useFilterColumns = useMemo(function () {
88
+ var _columns = flattenColumns(columns);
89
+ return _columns.filter(function (column) {
90
+ return !!column.filters;
91
+ });
92
+ }, [columns]);
93
+
85
94
  /**
86
95
  * 如果是分页的新增,总是加到最后一行
87
96
  *
@@ -133,22 +142,14 @@ function TableRender(props) {
133
142
  onChange: function onChange(changePagination, filters, sorter, extra) {
134
143
  var _rest$onChange;
135
144
  (_rest$onChange = rest.onChange) === null || _rest$onChange === void 0 || _rest$onChange.call(rest, changePagination, filters, sorter, extra);
136
- onFilterChange(omitUndefined(filters));
137
-
138
- // 制造筛选的数据
139
- // 制造一个排序的数据
140
- if (Array.isArray(sorter)) {
141
- var _omitUndefined;
142
- var data = sorter.reduce(function (pre, value) {
143
- return _objectSpread(_objectSpread({}, pre), {}, _defineProperty({}, "".concat(value.field), value.order));
144
- }, {});
145
- onSortChange((_omitUndefined = omitUndefined(data)) !== null && _omitUndefined !== void 0 ? _omitUndefined : {});
146
- } else {
147
- var _sorter$column, _omitUndefined2;
148
- var sorterOfColumn = (_sorter$column = sorter.column) === null || _sorter$column === void 0 ? void 0 : _sorter$column.sorter;
149
- var isSortByField = (sorterOfColumn === null || sorterOfColumn === void 0 ? void 0 : sorterOfColumn.toString()) === sorterOfColumn;
150
- onSortChange((_omitUndefined2 = omitUndefined(_defineProperty({}, "".concat(isSortByField ? sorterOfColumn : sorter.field), sorter.order))) !== null && _omitUndefined2 !== void 0 ? _omitUndefined2 : {});
151
- }
145
+
146
+ // 传递服务端筛选数据
147
+ var serverFilter = getServerFilterResult(filters, useFilterColumns);
148
+ onFilterChange(omitUndefined(serverFilter));
149
+
150
+ // 传递服务端排序数据
151
+ var serverSorter = getServerSorterResult(sorter);
152
+ onSortChange(omitUndefined(serverSorter));
152
153
  }
153
154
  });
154
155
  };
@@ -171,7 +172,8 @@ function TableRender(props) {
171
172
  rowProps: undefined
172
173
  },
173
174
  children: /*#__PURE__*/_jsx(Table, _objectSpread(_objectSpread({}, getTableProps()), {}, {
174
- rowKey: rowKey
175
+ rowKey: rowKey,
176
+ ref: tableRef
175
177
  }))
176
178
  });
177
179
 
@@ -324,6 +326,8 @@ var ProTable = function ProTable(props) {
324
326
 
325
327
  /** 通用的来操作子节点的工具类 */
326
328
  var actionRef = useRef();
329
+ // antd Table 实例 ref(仅用于转发 scrollTo 能力)
330
+ var antTableRef = useRef(null);
327
331
  var defaultFormRef = useRef();
328
332
  var formRef = propRef || defaultFormRef;
329
333
  useImperativeHandle(propsActionRef, function () {
@@ -348,54 +352,25 @@ var ProTable = function ProTable(props) {
348
352
  _useMountMergeState4 = _slicedToArray(_useMountMergeState3, 2),
349
353
  formSearch = _useMountMergeState4[0],
350
354
  setFormSearch = _useMountMergeState4[1];
351
- var _useMountMergeState5 = useMountMergeState({}),
355
+ var _useMemo = useMemo(function () {
356
+ var _parseServerDefaultCo = parseServerDefaultColumnConfig(propsColumns),
357
+ sort = _parseServerDefaultCo.sort,
358
+ filter = _parseServerDefaultCo.filter;
359
+ return {
360
+ defaultProFilter: filter,
361
+ defaultProSort: sort
362
+ };
363
+ }, [propsColumns]),
364
+ defaultProFilter = _useMemo.defaultProFilter,
365
+ defaultProSort = _useMemo.defaultProSort;
366
+ var _useMountMergeState5 = useMountMergeState(defaultProFilter),
352
367
  _useMountMergeState6 = _slicedToArray(_useMountMergeState5, 2),
353
368
  proFilter = _useMountMergeState6[0],
354
369
  setProFilter = _useMountMergeState6[1];
355
- var _useMountMergeState7 = useMountMergeState({}),
370
+ var _useMountMergeState7 = useMountMergeState(defaultProSort),
356
371
  _useMountMergeState8 = _slicedToArray(_useMountMergeState7, 2),
357
372
  proSort = _useMountMergeState8[0],
358
373
  setProSort = _useMountMergeState8[1];
359
-
360
- // 平铺所有columns, 用于判断是用的是本地筛选/排序
361
- var loopColumns = useCallback(function (data) {
362
- var _columns = [];
363
- for (var i = 0; i < data.length; i++) {
364
- var _curItem = data[i];
365
- if (_curItem.children) {
366
- loopColumns(_curItem.children);
367
- } else {
368
- _columns.push(_curItem);
369
- }
370
- }
371
- return _columns;
372
- }, []);
373
-
374
- /** 如果所有列中的 filters = true | undefined 说明是用的是本地筛选 任何一列配置 filters=false,就能绕过这个判断 */
375
- var useLocaleFilter = useMemo(function () {
376
- var _columns = loopColumns(propsColumns);
377
- return _columns === null || _columns === void 0 ? void 0 : _columns.every(function (column) {
378
- return !!column.filters && !!column.onFilter || column.filters === undefined && column.onFilter === undefined;
379
- });
380
- }, [loopColumns, propsColumns]);
381
-
382
- /** 如果所有列中的 sorter != true 说明是用的是本地排序 任何一列配置 sorter=true,就能绕过这个判断 */
383
- var useLocaleSorter = useMemo(function () {
384
- var _columns = loopColumns(propsColumns);
385
- return _columns === null || _columns === void 0 ? void 0 : _columns.every(function (column) {
386
- return column.sorter !== true;
387
- });
388
- }, [loopColumns, propsColumns]);
389
-
390
- /** 设置默认的服務端排序和筛选值 */
391
- useEffect(function () {
392
- var _parseDefaultColumnCo = parseDefaultColumnConfig(propsColumns),
393
- sort = _parseDefaultColumnCo.sort,
394
- filter = _parseDefaultColumnCo.filter;
395
- if (!useLocaleFilter) setProFilter(filter);
396
- if (!useLocaleSorter) setProSort(sort);
397
- // eslint-disable-next-line react-hooks/exhaustive-deps
398
- }, []);
399
374
  var intl = useIntl();
400
375
 
401
376
  /** 需要初始化 不然默认可能报错 这里取了 defaultCurrent 和 current 为了保证不会重复刷新 */
@@ -611,13 +586,6 @@ var ProTable = function ProTable(props) {
611
586
  var _formRef$current;
612
587
  // 清空选中行
613
588
  _onCleanSelected();
614
- var _parseDefaultColumnCo2 = parseDefaultColumnConfig(propsColumns),
615
- sort = _parseDefaultColumnCo2.sort,
616
- filter = _parseDefaultColumnCo2.filter;
617
- // 清空筛选
618
- setProFilter(filter);
619
- // 清空排序
620
- setProSort(sort);
621
589
 
622
590
  // 清空 toolbar 搜索
623
591
  counter.setKeyWords(undefined);
@@ -626,11 +594,19 @@ var ProTable = function ProTable(props) {
626
594
  current: 1
627
595
  });
628
596
 
597
+ // 重置绑定筛选值
598
+ setProFilter(defaultProFilter);
599
+ // 重置绑定排序值
600
+ setProSort(defaultProSort);
601
+
629
602
  // 重置表单
630
603
  formRef === null || formRef === void 0 || (_formRef$current = formRef.current) === null || _formRef$current === void 0 || _formRef$current.resetFields();
631
- setFormSearch({});
632
604
  },
633
- editableUtils: editableUtils
605
+ editableUtils: editableUtils,
606
+ scrollTo: function scrollTo(arg) {
607
+ var _current, _current$scrollTo;
608
+ return antTableRef === null || antTableRef === void 0 || (_current = antTableRef.current) === null || _current === void 0 || (_current$scrollTo = _current.scrollTo) === null || _current$scrollTo === void 0 ? void 0 : _current$scrollTo.call(_current, arg);
609
+ }
634
610
  });
635
611
 
636
612
  /** 同步 action */
@@ -804,15 +780,16 @@ var ProTable = function ProTable(props) {
804
780
  toolbarDom: toolbarDom,
805
781
  hideToolbar: hideToolbar,
806
782
  onSortChange: function onSortChange(sortConfig) {
807
- if (useLocaleSorter || sortConfig === proSort) return;
808
- setProSort(sortConfig);
783
+ if (isEqual(sortConfig, proSort)) return;
784
+ setProSort(sortConfig !== null && sortConfig !== void 0 ? sortConfig : {});
809
785
  },
810
786
  onFilterChange: function onFilterChange(filterConfig) {
811
- if (useLocaleFilter || filterConfig === proFilter) return;
812
- setProFilter(filterConfig);
787
+ if (isEqual(filterConfig, proFilter)) return;
788
+ setProFilter(filterConfig !== null && filterConfig !== void 0 ? filterConfig : {});
813
789
  },
814
790
  editableUtils: editableUtils,
815
- getRowKey: getRowKey
791
+ getRowKey: getRowKey,
792
+ tableRef: antTableRef
816
793
  })));
817
794
  };
818
795
 
@@ -143,7 +143,9 @@ var CheckboxList = function CheckboxList(_ref3) {
143
143
  checkedKeys.push(columnKey);
144
144
  }
145
145
  }
146
- treeMap.set(key, item);
146
+ treeMap.set(key, _objectSpread(_objectSpread({}, item), {}, {
147
+ parentKey: parentConfig === null || parentConfig === void 0 ? void 0 : parentConfig.columnKey
148
+ }));
147
149
  return item;
148
150
  });
149
151
  };
@@ -188,7 +190,7 @@ var CheckboxList = function CheckboxList(_ref3) {
188
190
  var onCheckTree = useRefFunction(function (e) {
189
191
  var newColumnMap = _objectSpread({}, columnsMap);
190
192
  var loopSetShow = function loopSetShow(key) {
191
- var _treeDataConfig$map;
193
+ var _treeDataConfig$map, _treeDataConfig$map2;
192
194
  var newSetting = _objectSpread({}, newColumnMap[key]);
193
195
  newSetting.show = e.checked;
194
196
  // 如果含有子节点,也要选中
@@ -198,6 +200,14 @@ var CheckboxList = function CheckboxList(_ref3) {
198
200
  return loopSetShow(item.key);
199
201
  });
200
202
  }
203
+
204
+ // 如果子节点选择,那父节点也应该选中
205
+ var parentKey = (_treeDataConfig$map2 = treeDataConfig.map) === null || _treeDataConfig$map2 === void 0 || (_treeDataConfig$map2 = _treeDataConfig$map2.get(key)) === null || _treeDataConfig$map2 === void 0 ? void 0 : _treeDataConfig$map2.parentKey;
206
+ if (parentKey) {
207
+ newColumnMap[parentKey] = _objectSpread(_objectSpread({}, newColumnMap[parentKey]), {}, {
208
+ show: true
209
+ });
210
+ }
201
211
  newColumnMap[key] = newSetting;
202
212
  };
203
213
  loopSetShow(e.node.key);
@@ -3,9 +3,10 @@ import type { SizeType } from 'antd/lib/config-provider/SizeContext';
3
3
  import type { LabelTooltipType } from 'antd/lib/form/FormItemLabel';
4
4
  import type { NamePath } from 'antd/lib/form/interface';
5
5
  import type { SearchProps } from 'antd/lib/input';
6
- import type { ColumnFilterItem, ColumnType, CompareFn, SortOrder } from 'antd/lib/table/interface';
6
+ import type { ColumnFilterItem, ColumnType, CompareFn, SorterResult, SortOrder } from 'antd/lib/table/interface';
7
7
  import type dayjs from 'dayjs';
8
8
  import type React from 'react';
9
+ import type { Key } from 'react';
9
10
  import type { CSSProperties } from 'react';
10
11
  import type { ProCardProps } from '../card';
11
12
  import type { ProFieldEmptyText } from '../field';
@@ -49,13 +50,24 @@ export type ColumnRenderInterface<T> = {
49
50
  counter: ReturnType<ContainerType>;
50
51
  };
51
52
  export type TableRowSelection = TableProps<any>['rowSelection'];
52
- export type ExtraProColumnType<T> = Omit<ColumnType<T>, 'render' | 'children' | 'title' | 'filters' | 'onFilter' | 'sorter'> & {
53
- sorter?: string | boolean | CompareFn<T> | {
54
- compare?: CompareFn<T>;
55
- /** Config multiple sorter order priority */
56
- multiple?: number;
53
+ /**
54
+ * Request filter 參數
55
+ * @description 与 antd 不同,Pro 有自己定义的 request FilterValue 类型,主要做了值内容的转换
56
+ */
57
+ export type FilterValue = (string | number)[] | null;
58
+ export type ProSorter<T> = string | boolean | CompareFn<T> | {
59
+ compare?: CompareFn<T>;
60
+ /** Config multiple sorter order priority */
61
+ multiple?: number;
62
+ };
63
+ export type ProSorterResult<T> = Omit<SorterResult<T>, 'column'> & {
64
+ column?: ColumnType<T> & {
65
+ sorter?: ProSorter<T>;
57
66
  };
58
67
  };
68
+ export type ExtraProColumnType<T> = Omit<ColumnType<T>, 'render' | 'children' | 'title' | 'filters' | 'onFilter' | 'sorter'> & {
69
+ sorter?: ProSorter<T>;
70
+ };
59
71
  export type ProColumnType<T = unknown, ValueType = 'text'> = ProSchema<T, ExtraProColumnType<T> & {
60
72
  children?: ProColumns<T>[];
61
73
  index?: number;
@@ -187,7 +199,7 @@ export type ProTableProps<DataSource, U, ValueType = 'text'> = {
187
199
  pageSize?: number;
188
200
  current?: number;
189
201
  keyword?: string;
190
- }, sort: Record<string, SortOrder>, filter: Record<string, (string | number)[] | null>) => Promise<Partial<RequestData<DataSource>>>;
202
+ }, sort: Record<string, SortOrder>, filter: Record<string, FilterValue>) => Promise<Partial<RequestData<DataSource>>>;
191
203
  /** @name 对数据进行一些处理 */
192
204
  postData?: any;
193
205
  /** @name 默认的数据 */
@@ -324,6 +336,16 @@ export type ProTableProps<DataSource, U, ValueType = 'text'> = {
324
336
  export type ActionType = ProCoreActionType & {
325
337
  fullScreen?: () => void;
326
338
  setPageInfo?: (page: Partial<PageInfo>) => void;
339
+ /**
340
+ * 对齐 antd Table ScrollConfig
341
+ * - number: 作为 top 处理
342
+ * - { index?, key?, top? }
343
+ */
344
+ scrollTo?: (arg: number | {
345
+ index?: number;
346
+ key?: Key;
347
+ top?: number;
348
+ }) => void;
327
349
  };
328
350
  /**
329
351
  * 用于定义 useFetch 的参数类型
@@ -4,7 +4,7 @@ import { SortOrder } from 'antd/lib/table/interface';
4
4
  import type { ProFieldEmptyText } from '../../field';
5
5
  import type { ProSchemaComponentTypes, UseEditableUtilType } from '../../utils';
6
6
  import type { ContainerType } from '../Store/Provide';
7
- import type { ProColumns } from '../typing';
7
+ import type { FilterValue, ProColumns } from '../typing';
8
8
  type ColumnToColumnReturnType<T> = (TableColumnType<T> & {
9
9
  index?: number;
10
10
  })[];
@@ -14,7 +14,7 @@ type ColumnToColumnParams<T> = {
14
14
  columnEmptyText: ProFieldEmptyText;
15
15
  type: ProSchemaComponentTypes;
16
16
  editableUtils: UseEditableUtilType;
17
- proFilter: Record<string, (string | number)[] | null>;
17
+ proFilter: Record<string, FilterValue>;
18
18
  proSort: Record<string, SortOrder>;
19
19
  } & Pick<TableProps<T>, 'rowKey' | 'childrenColumnName'>;
20
20
  /**