@zat-design/sisyphus-react 3.7.3-beta.2 → 3.7.3-beta.21

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 (244) hide show
  1. package/dist/index.esm.css +92 -2
  2. package/dist/less.esm.css +89 -2
  3. package/es/ProAction/index.js +4 -4
  4. package/es/ProDownload/index.d.ts +1 -1
  5. package/es/ProEditTable/components/ActionButton/index.d.ts +1 -1
  6. package/es/ProEditTable/components/RcTable/BaseTable.d.ts +1 -1
  7. package/es/ProEditTable/components/RcTable/DraggableTable.d.ts +1 -1
  8. package/es/ProEditTable/components/RcTable/VirtualTable.d.ts +1 -1
  9. package/es/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +4 -3
  10. package/es/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +22 -10
  11. package/es/ProEditTable/components/RenderField/index.d.ts +1 -1
  12. package/es/ProEditTable/components/RenderField/index.js +3 -3
  13. package/es/ProEditTable/components/RenderToolbar/index.d.ts +1 -1
  14. package/es/ProEditTable/components/Summary/index.d.ts +1 -1
  15. package/es/ProEditTable/utils/config.d.ts +1 -1
  16. package/es/ProEditTable/utils/tools.js +3 -3
  17. package/es/ProEnum/components/Group.d.ts +1 -1
  18. package/es/ProEnum/components/Group.js +10 -2
  19. package/es/ProEnum/components/Tag.d.ts +1 -1
  20. package/es/ProEnum/index.d.ts +2 -2
  21. package/es/ProEnum/index.js +5 -4
  22. package/es/ProEnum/style/index.less +14 -4
  23. package/es/ProEnum/utils/eventCenter.js +2 -1
  24. package/es/ProEnum/utils/getEnumLabel.d.ts +1 -1
  25. package/es/ProForm/components/base/Input/index.d.ts +1 -1
  26. package/es/ProForm/components/combination/Container/index.js +5 -3
  27. package/es/ProForm/components/combination/Container/propsType.d.ts +2 -1
  28. package/es/ProForm/components/combination/ProCascader/index.d.ts +1 -1
  29. package/es/ProForm/components/combination/ProCascader/index.js +7 -7
  30. package/es/ProForm/components/combination/ProModalSelect/index.js +50 -45
  31. package/es/ProForm/components/combination/ProNumberRange/index.js +3 -1
  32. package/es/ProForm/components/old/InputRange/index.d.ts +1 -1
  33. package/es/ProForm/components/old/InputWithSuffix/index.d.ts +1 -1
  34. package/es/ProForm/components/old/ProAddress/index.d.ts +2 -1
  35. package/es/ProForm/components/old/ProRangeBox/index.d.ts +2 -1
  36. package/es/ProForm/components/render/ChangedWrapper.d.ts +17 -0
  37. package/es/ProForm/components/render/ChangedWrapper.js +108 -0
  38. package/es/ProForm/components/render/Render.js +7 -8
  39. package/es/ProForm/components/render/RenderFields.d.ts +2 -3
  40. package/es/ProForm/components/render/RenderFields.js +3 -4
  41. package/es/ProForm/components/render/propsType.d.ts +4 -3
  42. package/es/ProForm/index.js +3 -6
  43. package/es/ProForm/propsType.d.ts +13 -2
  44. package/es/ProForm/style/index.less +102 -4
  45. package/es/ProForm/utils/diffOriginal.d.ts +4 -4
  46. package/es/ProForm/utils/diffOriginal.js +18 -7
  47. package/es/ProForm/utils/index.js +10 -14
  48. package/es/ProForm/utils/transformValue.js +17 -11
  49. package/es/ProIcon/utils/index.js +3 -4
  50. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.d.ts +1 -1
  51. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +3 -3
  52. package/es/ProLayout/components/ProCollapse/index.d.ts +1 -1
  53. package/es/ProLayout/components/ProFooter/index.d.ts +1 -1
  54. package/es/ProLayout/components/ProHeader/components/Copy/index.d.ts +1 -1
  55. package/es/ProLayout/components/ProHeader/index.d.ts +1 -1
  56. package/es/ProLayout/index.d.ts +4 -4
  57. package/es/ProLayout/utils/index.js +9 -9
  58. package/es/ProSelect/components/AdaptiveTooltip.d.ts +1 -1
  59. package/es/ProSelect/index.d.ts +1 -1
  60. package/es/ProSelect/index.js +3 -4
  61. package/es/ProSelect/utils/index.js +5 -4
  62. package/es/ProStep/components/Anchor/index.d.ts +1 -1
  63. package/es/ProStep/components/Item/index.d.ts +1 -1
  64. package/es/ProStep/components/Listener/index.d.ts +1 -1
  65. package/es/ProStep/components/Listener/index.js +5 -2
  66. package/es/ProStep/components/Step/index.d.ts +1 -1
  67. package/es/ProStep/index.d.ts +3 -3
  68. package/es/ProStep/index.js +24 -17
  69. package/es/ProTable/components/FormatColumn/index.d.ts +7 -1
  70. package/es/ProTable/components/FormatColumn/index.js +17 -11
  71. package/es/ProTable/components/RcTable/components/BaseTable/index.d.ts +1 -1
  72. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +8 -9
  73. package/es/ProTable/components/RcTable/components/DraggableTable/index.d.ts +1 -1
  74. package/es/ProTable/components/RenderFooter/index.d.ts +1 -1
  75. package/es/ProTable/components/RenderTableHeader/index.d.ts +1 -1
  76. package/es/ProTable/components/TableResizable/index.d.ts +1 -1
  77. package/es/ProTable/index.d.ts +1 -1
  78. package/es/ProTable/index.js +30 -13
  79. package/es/ProTable/propsType.d.ts +14 -1
  80. package/es/ProTable/style/index.less +1 -1
  81. package/es/ProTabs/components/Card/index.d.ts +1 -1
  82. package/es/ProThemeTools/component/ProTools/index.d.ts +1 -1
  83. package/es/ProThemeTools/index.d.ts +1 -1
  84. package/es/ProTooltip/index.d.ts +1 -1
  85. package/es/ProTree/components/AdaptiveTooltip.d.ts +4 -0
  86. package/es/ProTree/components/AdaptiveTooltip.js +55 -0
  87. package/es/ProTree/components/CloseIcon.d.ts +2 -1
  88. package/es/ProTree/components/List.d.ts +1 -1
  89. package/es/ProTree/components/List.js +15 -3
  90. package/es/ProTree/components/ProTree.d.ts +1 -1
  91. package/es/ProTree/components/ProTreeSelect/index.d.ts +1 -1
  92. package/es/ProTree/components/ProTreeSelect/index.js +43 -23
  93. package/es/ProTree/components/ProTreeSelect/propsType.d.ts +2 -0
  94. package/es/ProTree/components/ProTreeSelect/style/index.less +2 -2
  95. package/es/ProTree/components/SearchTitle.d.ts +3 -1
  96. package/es/ProTree/components/SearchTitle.js +17 -8
  97. package/es/ProTree/components/Tree.d.ts +1 -1
  98. package/es/ProTree/components/Tree.js +3 -3
  99. package/es/ProTree/index.d.ts +1 -1
  100. package/es/ProTree/style/index.less +14 -0
  101. package/es/ProTree/utils.js +11 -12
  102. package/es/ProTreeModal/components/Cascader.d.ts +1 -1
  103. package/es/ProTreeModal/components/CloseIcon.d.ts +2 -1
  104. package/es/ProTreeModal/components/SearchTitle.d.ts +1 -1
  105. package/es/ProTreeModal/components/Tree.js +21 -23
  106. package/es/ProTreeModal/components/Trigger.d.ts +1 -1
  107. package/es/ProTreeModal/index.d.ts +1 -1
  108. package/es/ProTreeModal/index.js +62 -7
  109. package/es/ProTreeModal/utils.d.ts +1 -0
  110. package/es/ProTreeModal/utils.js +30 -12
  111. package/es/ProUpload/components/DraggableUploadListItem.d.ts +1 -1
  112. package/es/style/theme/antd.less +5 -0
  113. package/es/style/theme/index.less +2 -1
  114. package/es/style/theme/tokens.less +1 -0
  115. package/es/utils/index.d.ts +2 -0
  116. package/es/utils/index.js +13 -0
  117. package/lib/ProAction/index.js +4 -4
  118. package/lib/ProDownload/index.d.ts +1 -1
  119. package/lib/ProEditTable/components/ActionButton/index.d.ts +1 -1
  120. package/lib/ProEditTable/components/RcTable/BaseTable.d.ts +1 -1
  121. package/lib/ProEditTable/components/RcTable/DraggableTable.d.ts +1 -1
  122. package/lib/ProEditTable/components/RcTable/VirtualTable.d.ts +1 -1
  123. package/lib/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +4 -3
  124. package/lib/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +25 -11
  125. package/lib/ProEditTable/components/RenderField/index.d.ts +1 -1
  126. package/lib/ProEditTable/components/RenderField/index.js +3 -3
  127. package/lib/ProEditTable/components/RenderToolbar/index.d.ts +1 -1
  128. package/lib/ProEditTable/components/Summary/index.d.ts +1 -1
  129. package/lib/ProEditTable/utils/config.d.ts +1 -1
  130. package/lib/ProEditTable/utils/tools.js +3 -3
  131. package/lib/ProEnum/components/Group.d.ts +1 -1
  132. package/lib/ProEnum/components/Group.js +10 -2
  133. package/lib/ProEnum/components/Tag.d.ts +1 -1
  134. package/lib/ProEnum/index.d.ts +2 -2
  135. package/lib/ProEnum/index.js +5 -4
  136. package/lib/ProEnum/style/index.less +14 -4
  137. package/lib/ProEnum/utils/eventCenter.js +2 -1
  138. package/lib/ProEnum/utils/getEnumLabel.d.ts +1 -1
  139. package/lib/ProForm/components/base/Input/index.d.ts +1 -1
  140. package/lib/ProForm/components/combination/Container/index.js +5 -3
  141. package/lib/ProForm/components/combination/Container/propsType.d.ts +2 -1
  142. package/lib/ProForm/components/combination/ProCascader/index.d.ts +1 -1
  143. package/lib/ProForm/components/combination/ProCascader/index.js +7 -7
  144. package/lib/ProForm/components/combination/ProModalSelect/index.js +49 -44
  145. package/lib/ProForm/components/combination/ProNumberRange/index.js +3 -1
  146. package/lib/ProForm/components/old/InputRange/index.d.ts +1 -1
  147. package/lib/ProForm/components/old/InputWithSuffix/index.d.ts +1 -1
  148. package/lib/ProForm/components/old/ProAddress/index.d.ts +2 -1
  149. package/lib/ProForm/components/old/ProRangeBox/index.d.ts +2 -1
  150. package/lib/ProForm/components/render/ChangedWrapper.d.ts +17 -0
  151. package/lib/ProForm/components/render/ChangedWrapper.js +113 -0
  152. package/lib/ProForm/components/render/Render.js +7 -8
  153. package/lib/ProForm/components/render/RenderFields.d.ts +2 -3
  154. package/lib/ProForm/components/render/RenderFields.js +3 -4
  155. package/lib/ProForm/components/render/propsType.d.ts +4 -3
  156. package/lib/ProForm/index.js +3 -6
  157. package/lib/ProForm/propsType.d.ts +13 -2
  158. package/lib/ProForm/style/index.less +102 -4
  159. package/lib/ProForm/utils/diffOriginal.d.ts +4 -4
  160. package/lib/ProForm/utils/diffOriginal.js +18 -7
  161. package/lib/ProForm/utils/index.js +10 -10
  162. package/lib/ProForm/utils/transformValue.js +17 -11
  163. package/lib/ProIcon/utils/index.js +3 -3
  164. package/lib/ProLayout/components/Layout/Menu/OpenMenu/index.d.ts +1 -1
  165. package/lib/ProLayout/components/Layout/Menu/OpenMenu/index.js +3 -3
  166. package/lib/ProLayout/components/ProCollapse/index.d.ts +1 -1
  167. package/lib/ProLayout/components/ProFooter/index.d.ts +1 -1
  168. package/lib/ProLayout/components/ProHeader/components/Copy/index.d.ts +1 -1
  169. package/lib/ProLayout/components/ProHeader/index.d.ts +1 -1
  170. package/lib/ProLayout/index.d.ts +4 -4
  171. package/lib/ProLayout/utils/index.js +9 -9
  172. package/lib/ProSelect/components/AdaptiveTooltip.d.ts +1 -1
  173. package/lib/ProSelect/index.d.ts +1 -1
  174. package/lib/ProSelect/index.js +3 -4
  175. package/lib/ProSelect/utils/index.js +5 -4
  176. package/lib/ProStep/components/Anchor/index.d.ts +1 -1
  177. package/lib/ProStep/components/Item/index.d.ts +1 -1
  178. package/lib/ProStep/components/Listener/index.d.ts +1 -1
  179. package/lib/ProStep/components/Listener/index.js +5 -2
  180. package/lib/ProStep/components/Step/index.d.ts +1 -1
  181. package/lib/ProStep/index.d.ts +3 -3
  182. package/lib/ProStep/index.js +24 -17
  183. package/lib/ProTable/components/FormatColumn/index.d.ts +7 -1
  184. package/lib/ProTable/components/FormatColumn/index.js +17 -11
  185. package/lib/ProTable/components/RcTable/components/BaseTable/index.d.ts +1 -1
  186. package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +8 -8
  187. package/lib/ProTable/components/RcTable/components/DraggableTable/index.d.ts +1 -1
  188. package/lib/ProTable/components/RenderFooter/index.d.ts +1 -1
  189. package/lib/ProTable/components/RenderTableHeader/index.d.ts +1 -1
  190. package/lib/ProTable/components/TableResizable/index.d.ts +1 -1
  191. package/lib/ProTable/index.d.ts +1 -1
  192. package/lib/ProTable/index.js +30 -13
  193. package/lib/ProTable/propsType.d.ts +14 -1
  194. package/lib/ProTable/style/index.less +1 -1
  195. package/lib/ProTabs/components/Card/index.d.ts +1 -1
  196. package/lib/ProThemeTools/component/ProTools/index.d.ts +1 -1
  197. package/lib/ProThemeTools/index.d.ts +1 -1
  198. package/lib/ProTooltip/index.d.ts +1 -1
  199. package/lib/ProTree/components/AdaptiveTooltip.d.ts +4 -0
  200. package/lib/ProTree/components/AdaptiveTooltip.js +61 -0
  201. package/lib/ProTree/components/CloseIcon.d.ts +2 -1
  202. package/lib/ProTree/components/List.d.ts +1 -1
  203. package/lib/ProTree/components/List.js +15 -3
  204. package/lib/ProTree/components/ProTree.d.ts +1 -1
  205. package/lib/ProTree/components/ProTreeSelect/index.d.ts +1 -1
  206. package/lib/ProTree/components/ProTreeSelect/index.js +43 -23
  207. package/lib/ProTree/components/ProTreeSelect/propsType.d.ts +2 -0
  208. package/lib/ProTree/components/ProTreeSelect/style/index.less +2 -2
  209. package/lib/ProTree/components/SearchTitle.d.ts +3 -1
  210. package/lib/ProTree/components/SearchTitle.js +19 -7
  211. package/lib/ProTree/components/Tree.d.ts +1 -1
  212. package/lib/ProTree/components/Tree.js +3 -3
  213. package/lib/ProTree/index.d.ts +1 -1
  214. package/lib/ProTree/style/index.less +14 -0
  215. package/lib/ProTree/utils.js +11 -11
  216. package/lib/ProTreeModal/components/Cascader.d.ts +1 -1
  217. package/lib/ProTreeModal/components/CloseIcon.d.ts +2 -1
  218. package/lib/ProTreeModal/components/SearchTitle.d.ts +1 -1
  219. package/lib/ProTreeModal/components/Tree.js +21 -23
  220. package/lib/ProTreeModal/components/Trigger.d.ts +1 -1
  221. package/lib/ProTreeModal/index.d.ts +1 -1
  222. package/lib/ProTreeModal/index.js +61 -6
  223. package/lib/ProTreeModal/utils.d.ts +1 -0
  224. package/lib/ProTreeModal/utils.js +31 -11
  225. package/lib/ProUpload/components/DraggableUploadListItem.d.ts +1 -1
  226. package/lib/style/theme/antd.less +5 -0
  227. package/lib/style/theme/index.less +2 -1
  228. package/lib/style/theme/tokens.less +1 -0
  229. package/lib/utils/index.d.ts +2 -0
  230. package/lib/utils/index.js +19 -0
  231. package/package.json +1 -1
  232. package/.vscode/extensions.json +0 -5
  233. package/es/ProForm/components/render/Changed.d.ts +0 -14
  234. package/es/ProForm/components/render/Changed.js +0 -64
  235. package/lib/ProForm/components/render/Changed.d.ts +0 -14
  236. package/lib/ProForm/components/render/Changed.js +0 -69
  237. /package/es/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
  238. /package/es/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
  239. /package/es/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
  240. /package/es/ProForm/utils/{useListChanged.js → _useListChanged.js} +0 -0
  241. /package/lib/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
  242. /package/lib/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
  243. /package/lib/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
  244. /package/lib/ProForm/utils/{useListChanged.js → _useListChanged.js} +0 -0
@@ -2,7 +2,7 @@ import { ColProps } from 'antd';
2
2
  import { FormInstance } from 'antd/es/form/Form';
3
3
  import React from 'react';
4
4
  import { ProColumnProps } from './propsType';
5
- import { ProFormProps } from '../../propsType';
5
+ import { DiffConfigProps } from '../../propsType';
6
6
  interface Props<T = any> {
7
7
  isView?: boolean;
8
8
  columns: ProColumnProps[];
@@ -13,11 +13,10 @@ interface Props<T = any> {
13
13
  viewEmpty?: React.ReactNode;
14
14
  openState?: boolean;
15
15
  labelWidth?: string | number;
16
- originalValues?: ProFormProps<T>['originalValues'];
16
+ diffConfig?: DiffConfigProps;
17
17
  clearNotShow?: boolean;
18
18
  requiredOnView?: boolean;
19
19
  required?: boolean | boolean[] | (() => boolean | boolean[]);
20
- originalDiffTip?: boolean;
21
20
  globalControl?: boolean;
22
21
  }
23
22
  declare const RenderFields: React.FC<Props>;
@@ -22,11 +22,10 @@ var RenderFields = function RenderFields(props) {
22
22
  viewEmpty = _props$viewEmpty === void 0 ? '-' : _props$viewEmpty,
23
23
  openState = props.openState,
24
24
  labelWidth = props.labelWidth,
25
- originalValues = props.originalValues,
26
25
  outerClearNotShow = props.clearNotShow,
27
26
  requiredOnView = props.requiredOnView,
28
27
  required = props.required,
29
- originalDiffTip = props.originalDiffTip,
28
+ diffConfig = props.diffConfig,
30
29
  globalControl = props.globalControl;
31
30
  // 是否包含隐藏字段
32
31
  var hiddenData = columns.filter(function (item) {
@@ -154,6 +153,7 @@ var RenderFields = function RenderFields(props) {
154
153
  if (['ProCollapse', 'Container'].includes(_type)) {
155
154
  componentProps.show = show;
156
155
  componentProps.clearNotShow = clearNotShow;
156
+ componentProps.diffConfig = diffConfig;
157
157
  }
158
158
  // switch与SwitchCheckbox单独添加valuePropName
159
159
  if (['Switch', 'SwitchCheckbox'].includes(_type)) {
@@ -206,10 +206,9 @@ var RenderFields = function RenderFields(props) {
206
206
  otherProps: otherProps,
207
207
  fieldProps: isFunction(fieldProps) ? fieldProps : null,
208
208
  isSelect: _isSelect,
209
- originalValues: originalValues,
209
+ diffConfig: diffConfig,
210
210
  equalWith: equalWith,
211
211
  requiredOnView: requiredOnView,
212
- originalDiffTip: originalDiffTip,
213
212
  globalControl: globalControl
214
213
  })
215
214
  }, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
@@ -30,7 +30,8 @@ import { ProUploadProps } from '../../../ProUpload/propsType';
30
30
  import { ProTreeProps } from '../../../ProTree/propsType';
31
31
  import { GroupProps as GroupCopyProps } from '../combination/Group/propsType';
32
32
  import { ProCollapseProps } from '../../../ProLayout/components/ProCollapse/PropTypes';
33
- import { DistributiveOmit } from '../../propsType';
33
+ import { DistributiveOmit, DiffConfigProps } from '../../propsType';
34
+ import { DiffOriginalParams } from '../../utils/diffOriginal';
34
35
  export type ComponentMap = keyof typeof componentMap;
35
36
  type ValidateKey = keyof typeof validate;
36
37
  type RegExpKey = keyof typeof regExp;
@@ -201,7 +202,7 @@ export interface ProFormColumnProps<Values = any> extends Omit<FormItemProps<Val
201
202
  upperCase?: boolean;
202
203
  hiddenNames?: string[] | any[];
203
204
  rules?: ProRule[] | ReactiveFunction<Values, ProRule[]>;
204
- equalWith?: (originValue: any, currentValue: any) => boolean;
205
+ equalWith?: DiffOriginalParams['equalWith'];
205
206
  required?: boolean | boolean[] | ReactiveFunction<Values, boolean | boolean[]>;
206
207
  labelRequired?: boolean;
207
208
  toISOString?: boolean;
@@ -267,7 +268,7 @@ export interface RenderProps<Values = any> {
267
268
  form: FormInstance<Values>;
268
269
  fieldProps?: ReactiveFunction<Values, React.ReactNode>;
269
270
  isSelect: boolean;
270
- originalValues?: Values;
271
+ diffConfig: DiffConfigProps;
271
272
  requiredOnView?: boolean;
272
273
  confirm?: ProFormColumnProps['confirm'];
273
274
  globalControl?: boolean;
@@ -11,7 +11,7 @@ import _Space from "antd/es/space";
11
11
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
12
12
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
13
13
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
14
- var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "originalValues", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "originalDiffTip", "formKey", "globalControl", "scrollToError", "optimize"];
14
+ var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize"];
15
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  import { DoubleLeftOutlined } from '@ant-design/icons';
17
17
  import classnames from 'classnames';
@@ -53,7 +53,7 @@ var ProForm = function ProForm(props, ref) {
53
53
  labelWidth = props.labelWidth,
54
54
  onValuesChange = props.onValuesChange,
55
55
  onFinish = props.onFinish,
56
- originalValues = props.originalValues,
56
+ diffConfig = props.diffConfig,
57
57
  submitOnEnter = props.submitOnEnter,
58
58
  _props$clearNotShow = props.clearNotShow,
59
59
  clearNotShow = _props$clearNotShow === void 0 ? true : _props$clearNotShow,
@@ -62,8 +62,6 @@ var ProForm = function ProForm(props, ref) {
62
62
  requiredOnView = _props$requiredOnView === void 0 ? true : _props$requiredOnView,
63
63
  formId = props.formId,
64
64
  required = props.required,
65
- _props$originalDiffTi = props.originalDiffTip,
66
- originalDiffTip = _props$originalDiffTi === void 0 ? true : _props$originalDiffTi,
67
65
  formKey = props.formKey,
68
66
  globalControl = props.globalControl,
69
67
  _props$scrollToError = props.scrollToError,
@@ -261,11 +259,10 @@ var ProForm = function ProForm(props, ref) {
261
259
  colProps: colProps,
262
260
  viewEmpty: viewEmpty,
263
261
  labelWidth: labelWidth,
264
- originalValues: originalValues,
262
+ diffConfig: diffConfig,
265
263
  clearNotShow: clearNotShow,
266
264
  requiredOnView: requiredOnView,
267
265
  required: required,
268
- originalDiffTip: originalDiffTip,
269
266
  globalControl: globalControl
270
267
  }), footerRender()]
271
268
  })), children]
@@ -44,6 +44,17 @@ export interface ProFormOtherProps {
44
44
  listName?: any[] | string | number;
45
45
  globalControl?: boolean;
46
46
  formDisabled?: boolean;
47
+ isDiffChange?: boolean;
48
+ }
49
+ export interface DiffConfigProps<Values = any> {
50
+ /** 比对原始数据源 */
51
+ originalValues: Values;
52
+ /** 是否显示对比值气泡 */
53
+ toolTip?: boolean;
54
+ /** 变更提示颜色 */
55
+ changeTipColor?: string;
56
+ /** 新增提示颜色 */
57
+ addTipColor?: string;
47
58
  }
48
59
  export interface ProFormProps<Values = any> extends FormProps<Values> {
49
60
  disabled?: boolean;
@@ -67,14 +78,14 @@ export interface ProFormProps<Values = any> extends FormProps<Values> {
67
78
  viewEmpty?: React.ReactNode | string;
68
79
  confirmLoading?: boolean;
69
80
  labelWidth?: string | number;
70
- originalValues?: Values;
71
81
  /** 是否回车提交 */
72
82
  submitOnEnter?: boolean;
73
83
  clearNotShow?: boolean;
74
84
  requiredOnView?: boolean;
75
85
  formId?: string;
76
86
  required?: boolean | boolean[];
77
- originalDiffTip?: boolean;
87
+ /** 表单比对配置 */
88
+ diffConfig?: DiffConfigProps;
78
89
  scrollToError?: boolean;
79
90
  /** 性能模式,谨慎使用,默认不开启
80
91
  * 1. 开启不过滤names的中间态值
@@ -99,10 +99,12 @@
99
99
 
100
100
  &.pro-form-item-width-auto {
101
101
  .@{ant-prefix}-form-item-control-input {
102
+ width: 100%;
102
103
  flex-grow: inherit;
103
104
  }
104
105
 
105
106
  .@{ant-prefix}-form-item-control-input-content {
107
+ width: 100%;
106
108
  flex: initial;
107
109
  }
108
110
  }
@@ -314,16 +316,23 @@
314
316
  vertical-align: middle;
315
317
  }
316
318
  }
317
- .pro-form-list-mode-block{
318
- .pro-collapse-content{
319
- .@{ant-prefix}-row{
319
+
320
+ .pro-form-list-mode-block {
321
+ .pro-collapse-content {
322
+ .@{ant-prefix}-row {
320
323
  width: auto;
321
324
  }
322
325
  }
323
326
  }
324
327
 
325
- // 比较原始值场景下 不同时的样式
326
328
  .pro-form-item-changed {
329
+ border-radius: 4px;
330
+ background: @zaui-contract-bg !important;
331
+
332
+ .@{ant-prefix}-select.@{ant-prefix}-select-disabled .@{ant-prefix}-select-selector{
333
+ background: @zaui-contract-bg !important;
334
+ }
335
+
327
336
  span.@{ant-prefix}-input-affix-wrapper,
328
337
  .@{ant-prefix}-select .@{ant-prefix}-select-selector,
329
338
  .@{ant-prefix}-picker,
@@ -367,10 +376,99 @@
367
376
  }
368
377
  }
369
378
 
379
+ // checkbox
380
+ .@{ant-prefix}-checkbox-group {
381
+ padding: 5px 0
382
+ }
383
+ // switch
384
+ &:has(.@{ant-prefix}-switch) {
385
+ padding: 5px 0;
386
+ }
387
+
388
+ // textArea
389
+ .@{ant-prefix}-input-textarea > textarea {
390
+ background: @zaui-contract-bg;
391
+ }
392
+
370
393
  .pro-form-view-container {
371
394
  padding: 4px 8px;
372
395
  background: @zaui-contract-bg;
373
396
  border-radius: 4px;
374
397
  }
375
398
  }
399
+
400
+
401
+ // 比较原始值场景下 不同时的样式
402
+ .pro-form-item-add {
403
+ border-radius: 4px;
404
+ background: @zaui-contract-bg-add !important;
405
+
406
+ .@{ant-prefix}-select.@{ant-prefix}-select-disabled .@{ant-prefix}-select-selector{
407
+ background: @zaui-contract-bg-add !important;
408
+ }
409
+
410
+ span.@{ant-prefix}-input-affix-wrapper,
411
+ .@{ant-prefix}-select .@{ant-prefix}-select-selector,
412
+ .@{ant-prefix}-picker,
413
+ .@{ant-prefix}-input-number {
414
+ background: @zaui-contract-bg-add !important;
415
+
416
+ input {
417
+ background: transparent !important;
418
+ }
419
+ .@{ant-prefix}-select-selection-placeholder {
420
+ z-index: 9;
421
+ }
422
+ }
423
+
424
+ .@{ant-prefix}-form-item-control:has(.@{ant-prefix}-switch-handle),
425
+ .@{ant-prefix}-form-item-control:has(.@{ant-prefix}-checkbox-wrapper-in-form-item) {
426
+ background: @zaui-contract-bg-add;
427
+ border-radius: 4px;
428
+ }
429
+
430
+ // 地址组件
431
+ .@{ant-prefix}-form-item-control-input-content {
432
+ // 查看模式
433
+ & > span {
434
+ border-radius: 4px;
435
+ padding: 5px 8px;
436
+ background: @zaui-contract-bg-add;
437
+ }
438
+
439
+ & > .pro-address {
440
+ .@{ant-prefix}-select-selector,
441
+ .@{ant-prefix}-input-affix-wrapper,
442
+ .@{ant-prefix}-input-disabled {
443
+ background: @zaui-contract-bg-add;
444
+ }
445
+ }
446
+ & > .@{ant-prefix}-input-group {
447
+ .forever-checkbox {
448
+ background: @zaui-contract-bg-add;
449
+ }
450
+ }
451
+ }
452
+
453
+ // checkbox
454
+ .@{ant-prefix}-checkbox-group {
455
+ padding: 5px 0
456
+ }
457
+ // switch
458
+ &:has(.@{ant-prefix}-switch) {
459
+ padding: 5px 0;
460
+ }
461
+
462
+ // textArea
463
+ .@{ant-prefix}-input-textarea > textarea {
464
+ background: @zaui-contract-bg-add;
465
+ }
466
+
467
+
468
+ .pro-form-view-container {
469
+ padding: 4px 8px;
470
+ background: @zaui-contract-bg-add;
471
+ border-radius: 4px;
472
+ }
473
+ }
376
474
  }
@@ -1,9 +1,9 @@
1
1
  import { FormInstance } from 'antd';
2
- interface Params {
2
+ export interface DiffOriginalParams {
3
3
  originalValue: any;
4
4
  value: any;
5
5
  form: FormInstance;
6
- equalWith?: (originalValue: any, currentValue: any) => boolean;
6
+ equalWith?: (originalValue: any, currentValue: any) => DiffType | boolean | undefined;
7
7
  }
8
- export declare const diffOriginal: (params: Params) => boolean;
9
- export {};
8
+ export type DiffType = 'same' | 'add' | 'changed';
9
+ export declare const diffOriginal: (params: DiffOriginalParams) => DiffType;
@@ -1,4 +1,5 @@
1
1
  import { isEqual, isFunction } from 'lodash';
2
+ import { isEmpty } from '../../utils';
2
3
  var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
3
4
  export var diffOriginal = function diffOriginal(params) {
4
5
  var originalValue = params.originalValue,
@@ -6,19 +7,29 @@ export var diffOriginal = function diffOriginal(params) {
6
7
  equalWith = params.equalWith;
7
8
  // 支持传入自定义比较事件
8
9
  if (isFunction(equalWith)) {
9
- return !equalWith(originalValue, value);
10
+ var diffRes = equalWith(originalValue, value);
11
+ if (diffRes === undefined) return 'same';
12
+ if (typeof diffRes === 'boolean') {
13
+ return diffRes ? 'same' : 'changed';
14
+ }
15
+ return diffRes;
16
+ }
17
+ // 如果原始值为空 且当前有值的话 认为变更类型是新增
18
+ if (isEmpty(originalValue) && !isEmpty(value)) {
19
+ return 'add';
10
20
  }
11
21
  if (Array.isArray(originalValue)) {
12
- return originalValue.some(function (valueItem, index) {
22
+ var isSame = originalValue.every(function (valueItem, index) {
13
23
  // 如果两个值有一个不是空值, 则进行深比较
14
- if (!nullValue.includes(value === null || value === void 0 ? void 0 : value[index]) || !nullValue.includes(valueItem)) {
15
- return !isEqual(value === null || value === void 0 ? void 0 : value[index], valueItem);
24
+ if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
25
+ return isEqual(value === null || value === void 0 ? void 0 : value[index], valueItem);
16
26
  }
17
- return false;
27
+ return true;
18
28
  });
29
+ return isSame ? 'same' : 'changed';
19
30
  }
20
31
  if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
21
- return !isEqual(value, originalValue);
32
+ return isEqual(value, originalValue) ? 'same' : 'changed';
22
33
  }
23
- return false;
34
+ return 'same';
24
35
  };
@@ -120,7 +120,7 @@ export var splitNameStr = function splitNameStr(name) {
120
120
  });
121
121
  };
122
122
  // 过滤掉字段名中包含 '-' 的字段
123
- var _filterInternalFields = function filterInternalFields(values, optimize) {
123
+ export var filterInternalFields = function filterInternalFields(values, optimize) {
124
124
  if (optimize) {
125
125
  return values;
126
126
  }
@@ -134,21 +134,20 @@ var _filterInternalFields = function filterInternalFields(values, optimize) {
134
134
  }
135
135
  if (Array.isArray(nextValues)) {
136
136
  return nextValues.map(function (item) {
137
- return _filterInternalFields(item);
137
+ return filterInternalFields(item);
138
138
  });
139
139
  }
140
140
  if (isObject(nextValues)) {
141
141
  var result = {};
142
142
  Object.keys(nextValues).forEach(function (key) {
143
143
  if (key.includes('-')) return;
144
- result[key] = _filterInternalFields(nextValues[key]);
144
+ result[key] = filterInternalFields(nextValues[key]);
145
145
  });
146
146
  return result;
147
147
  }
148
148
  return nextValues;
149
149
  };
150
- export { _filterInternalFields as filterInternalFields };
151
- var _getAllNamePath = function getAllNamePath(object) {
150
+ export var getAllNamePath = function getAllNamePath(object) {
152
151
  var currentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
153
152
  var keys = Object.keys(object);
154
153
  var resultKeys = [];
@@ -162,14 +161,13 @@ var _getAllNamePath = function getAllNamePath(object) {
162
161
  }
163
162
  // 深度获取对象key
164
163
  if (isObject(value)) {
165
- resultKeys.concat(_getAllNamePath(value, [].concat(_toConsumableArray(currentPath), [key])));
164
+ resultKeys.concat(getAllNamePath(value, [].concat(_toConsumableArray(currentPath), [key])));
166
165
  }
167
166
  resultKeys.push([].concat(_toConsumableArray(currentPath), [key]));
168
167
  });
169
168
  return resultKeys;
170
169
  };
171
170
  // 判断一个字段值是否算空
172
- export { _getAllNamePath as getAllNamePath };
173
171
  var nullList = [undefined, 'null', '""', '[]'];
174
172
  export var isNullValue = function isNullValue(value) {
175
173
  return nullList.includes(JSON.stringify(value));
@@ -306,7 +304,7 @@ export var customEqualForFun = function customEqualForFun(value, other) {
306
304
  /**
307
305
  * 查询数据中是否包含rowKey
308
306
  */
309
- var _hasRowKey = function hasRowKey(obj) {
307
+ export var hasRowKey = function hasRowKey(obj) {
310
308
  if (_typeof(obj) !== 'object' || obj === null) {
311
309
  return false;
312
310
  }
@@ -316,13 +314,12 @@ var _hasRowKey = function hasRowKey(obj) {
316
314
  return true;
317
315
  }
318
316
  return keys.some(function (key) {
319
- return _hasRowKey(obj[key]);
317
+ return hasRowKey(obj[key]);
320
318
  });
321
319
  };
322
320
  /**
323
321
  * 查询数据中是否包含rowKey
324
322
  */
325
- export { _hasRowKey as hasRowKey };
326
323
  export var view = function view(obj) {
327
324
  if (_typeof(obj) !== 'object' || obj === null) {
328
325
  return false;
@@ -333,7 +330,7 @@ export var view = function view(obj) {
333
330
  return true;
334
331
  }
335
332
  return keys.some(function (key) {
336
- return _hasRowKey(obj[key]);
333
+ return hasRowKey(obj[key]);
337
334
  });
338
335
  };
339
336
  /**
@@ -369,7 +366,7 @@ export var deleteForPath = function deleteForPath(values, namePath) {
369
366
  * @param value 选中值
370
367
  * @returns {}
371
368
  */
372
- var _findOptionByValue = function findOptionByValue(treeData, value, fieldNames) {
369
+ export var findOptionByValue = function findOptionByValue(treeData, value, fieldNames) {
373
370
  if (isObject(value)) {
374
371
  return value;
375
372
  }
@@ -379,7 +376,7 @@ var _findOptionByValue = function findOptionByValue(treeData, value, fieldNames)
379
376
  return omit(node, ['children', fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children]);
380
377
  }
381
378
  if (node.children) {
382
- var foundNode = _findOptionByValue(node[(fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'], value, fieldNames);
379
+ var foundNode = findOptionByValue(node[(fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'], value, fieldNames);
383
380
  if (foundNode) {
384
381
  return omit(foundNode, ['children', fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children]);
385
382
  }
@@ -389,7 +386,6 @@ var _findOptionByValue = function findOptionByValue(treeData, value, fieldNames)
389
386
  /**
390
387
  * 对比依赖列表中的 值是否变更
391
388
  */
392
- export { _findOptionByValue as findOptionByValue };
393
389
  export var equalDependencies = function equalDependencies(dependencies, prevValues, currentValues) {
394
390
  if (dependencies === null || dependencies === void 0 ? void 0 : dependencies.length) {
395
391
  return dependencies.some(function (namePath) {
@@ -1,8 +1,7 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["value"];
4
2
  import { set } from 'lodash';
5
3
  import { diffField } from '../utils';
4
+ import { isEmpty } from '../../utils';
6
5
  export var transformValue = function transformValue(names, form, fieldName, _normalize, _getValueProps) {
7
6
  return {
8
7
  normalize: function normalize(value) {
@@ -22,23 +21,30 @@ export var transformValue = function transformValue(names, form, fieldName, _nor
22
21
  return _value;
23
22
  },
24
23
  getValueProps: function getValueProps(value) {
24
+ var _curValue;
25
25
  var _value = [];
26
26
  names.forEach(function (name, index) {
27
27
  var value = form.getFieldValue(name);
28
28
  _value[index] = value;
29
29
  });
30
30
  // 支持外部传入转换函数
31
- var _ref = (_getValueProps === null || _getValueProps === void 0 ? void 0 : _getValueProps(_value)) || {
32
- value: _value
33
- },
34
- cusValue = _ref.value,
35
- cusRest = _objectWithoutProperties(_ref, _excluded);
31
+ var res = (_getValueProps === null || _getValueProps === void 0 ? void 0 : _getValueProps(_value)) || {
32
+ value: _value
33
+ };
34
+ // 如果数组中值都为空, 则值置为空
35
+ var curValue = res === null || res === void 0 ? void 0 : res.value;
36
36
  // @ts-ignore
37
- set(form.getFieldsValue(true), fieldName, cusValue);
37
+ if ((_curValue = curValue) === null || _curValue === void 0 ? void 0 : _curValue.every(function (item) {
38
+ return isEmpty(item);
39
+ })) {
40
+ curValue = undefined;
41
+ }
42
+ // @ts-ignore
43
+ set(form.getFieldsValue(true), fieldName, curValue);
38
44
  // 如果表单里的值和组合得到的值不全等 更新表单里的值、
39
- return _objectSpread({
40
- value: cusValue
41
- }, cusRest);
45
+ return _objectSpread(_objectSpread({}, res), {}, {
46
+ value: curValue
47
+ });
42
48
  },
43
49
  shouldUpdate: function shouldUpdate(prevValues, curValues) {
44
50
  return diffField(prevValues, curValues, names);
@@ -1,6 +1,6 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import { themeMap, themeFillMap } from '../config';
3
- var _recurseGetNodes = function recurseGetNodes(type, node, queue) {
3
+ export var recurseGetNodes = function recurseGetNodes(type, node, queue) {
4
4
  switch (type) {
5
5
  // 渐变
6
6
  case 'gradation':
@@ -19,11 +19,10 @@ var _recurseGetNodes = function recurseGetNodes(type, node, queue) {
19
19
  }
20
20
  if (node.childNodes) {
21
21
  for (var i = 0; i < node.childNodes.length; i++) {
22
- _recurseGetNodes(type, node.childNodes[i], queue);
22
+ recurseGetNodes(type, node.childNodes[i], queue);
23
23
  }
24
24
  }
25
25
  };
26
- export { _recurseGetNodes as recurseGetNodes };
27
26
  export var onBeforeInjection = function onBeforeInjection(_ref) {
28
27
  var svg = _ref.svg,
29
28
  actionMap = _ref.actionMap,
@@ -50,7 +49,7 @@ export var onBeforeInjection = function onBeforeInjection(_ref) {
50
49
  // 目前只支持处理渐变及fill填充
51
50
  var types = Reflect.ownKeys(nodeMap !== null && nodeMap !== void 0 ? nodeMap : {});
52
51
  types.forEach(function (typeKey) {
53
- _recurseGetNodes(typeKey, svg, nodeMap[typeKey]);
52
+ recurseGetNodes(typeKey, svg, nodeMap[typeKey]);
54
53
  });
55
54
  if ((gradList === null || gradList === void 0 ? void 0 : gradList.length) > 0) {
56
55
  nodeMap.gradation.forEach(function (item, index) {
@@ -1,3 +1,3 @@
1
1
  import type { OpenMenuPropsType } from './propsType';
2
- declare const OpenMenu: (props: OpenMenuPropsType) => import("react/jsx-runtime").JSX.Element;
2
+ declare const OpenMenu: (props: OpenMenuPropsType) => JSX.Element;
3
3
  export default OpenMenu;
@@ -50,7 +50,7 @@ var OpenMenu = function OpenMenu(props) {
50
50
  if (!Array.isArray(result) || !result.length) {
51
51
  return [];
52
52
  }
53
- var _menuDeep = function menuDeep(data) {
53
+ var menuDeep = function menuDeep(data) {
54
54
  data.forEach(function (item) {
55
55
  var _item$keyIdPath, _item$keyIdPath2, _item$children;
56
56
  // 是否是第一级菜单,展开模式一级菜单有icon, 收起模式二级菜单有icon
@@ -91,7 +91,7 @@ var OpenMenu = function OpenMenu(props) {
91
91
  if ((_item === null || _item === void 0 ? void 0 : _item.hideInMenu) || ['TAB', 'QUERY', 'BUTTON'].includes(_item === null || _item === void 0 ? void 0 : _item.type)) {
92
92
  delete item.children;
93
93
  } else {
94
- _menuDeep(item.children);
94
+ menuDeep(item.children);
95
95
  }
96
96
  } else {
97
97
  delete item.children;
@@ -99,7 +99,7 @@ var OpenMenu = function OpenMenu(props) {
99
99
  });
100
100
  return data;
101
101
  };
102
- _menuDeep(result);
102
+ menuDeep(result);
103
103
  return result;
104
104
  }, [dataSource]);
105
105
  useDeepCompareEffect(function () {
@@ -1,3 +1,3 @@
1
1
  import { ProCollapseProps } from './PropTypes';
2
- declare const ProCollapse: (props: ProCollapseProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const ProCollapse: (props: ProCollapseProps) => JSX.Element;
3
3
  export default ProCollapse;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { ProFooterProps } from './PropTypes';
3
- declare const _default: import("react").MemoExoticComponent<(props: ProFooterProps) => import("react/jsx-runtime").JSX.Element>;
3
+ declare const _default: import("react").MemoExoticComponent<(props: ProFooterProps) => JSX.Element>;
4
4
  export default _default;
@@ -1,4 +1,4 @@
1
1
  declare const Copy: ({ text }: {
2
2
  text: any;
3
- }) => import("react/jsx-runtime").JSX.Element;
3
+ }) => JSX.Element;
4
4
  export default Copy;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import type { ProHeaderProps } from './PropTypes';
3
- declare const _default: React.MemoExoticComponent<(props: ProHeaderProps) => import("react/jsx-runtime").JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<(props: ProHeaderProps) => JSX.Element>;
4
4
  export default _default;
@@ -5,7 +5,7 @@ export declare const LayoutContext: import("react").Context<{
5
5
  onSelected: (params: any) => void;
6
6
  }>;
7
7
  declare const ProLayout: {
8
- (props: ProLayoutProps): import("react/jsx-runtime").JSX.Element;
8
+ (props: ProLayoutProps): JSX.Element;
9
9
  defaultProps: {
10
10
  menus: any[];
11
11
  iconfontUrl: string;
@@ -17,8 +17,8 @@ declare const ProLayout: {
17
17
  headerHeight: number;
18
18
  contentStyle: {};
19
19
  };
20
- ProCollapse: (props: import("./components/ProCollapse/PropTypes").ProCollapseProps) => import("react/jsx-runtime").JSX.Element;
21
- ProFooter: import("react").MemoExoticComponent<(props: import("./components/ProFooter/PropTypes").ProFooterProps) => import("react/jsx-runtime").JSX.Element>;
22
- ProHeader: import("react").MemoExoticComponent<(props: import("./components/ProHeader/PropTypes").ProHeaderProps) => import("react/jsx-runtime").JSX.Element>;
20
+ ProCollapse: (props: import("./components/ProCollapse/PropTypes").ProCollapseProps) => JSX.Element;
21
+ ProFooter: import("react").MemoExoticComponent<(props: import("./components/ProFooter/PropTypes").ProFooterProps) => JSX.Element>;
22
+ ProHeader: import("react").MemoExoticComponent<(props: import("./components/ProHeader/PropTypes").ProHeaderProps) => JSX.Element>;
23
23
  };
24
24
  export default ProLayout;