@ant-design/pro-components 3.1.4-0 → 3.1.6-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 (214) hide show
  1. package/dist/pro-components.min.js +1 -1
  2. package/es/card/ProCard.js +15 -7
  3. package/es/card/components/Card/index.js +43 -19
  4. package/es/card/components/Card/style.js +12 -1
  5. package/es/card/components/Statistic/index.js +2 -2
  6. package/es/card/components/StatisticCard/index.js +1 -1
  7. package/es/card/typing.d.ts +27 -8
  8. package/es/field/AllProField.d.ts +2 -0
  9. package/es/field/AllProField.js +3 -0
  10. package/es/field/PureProField.d.ts +2 -0
  11. package/es/field/PureProField.js +2 -0
  12. package/es/field/components/Cascader/index.js +8 -1
  13. package/es/field/components/Checkbox/index.js +5 -1
  14. package/es/field/components/ColorPicker/index.d.ts +1 -1
  15. package/es/field/components/DatePicker/index.d.ts +1 -1
  16. package/es/field/components/DatePicker/index.js +13 -1
  17. package/es/field/components/Digit/index.js +20 -3
  18. package/es/field/components/Money/index.js +51 -3
  19. package/es/field/components/Password/index.js +12 -11
  20. package/es/field/components/Radio/index.js +5 -1
  21. package/es/field/components/RangePicker/index.d.ts +1 -1
  22. package/es/field/components/Segmented/index.js +2 -1
  23. package/es/field/components/Select/SearchSelect/index.js +3 -5
  24. package/es/field/components/Select/index.d.ts +1 -1
  25. package/es/field/components/Select/index.js +1 -1
  26. package/es/field/components/Switch/index.js +10 -2
  27. package/es/field/components/Text/index.js +7 -1
  28. package/es/field/components/TextArea/index.js +6 -3
  29. package/es/field/components/TimePicker/index.js +10 -1
  30. package/es/field/components/TreeSelect/index.d.ts +2 -12
  31. package/es/field/components/TreeSelect/index.js +31 -17
  32. package/es/form/BaseForm/BaseForm.js +4 -3
  33. package/es/form/BaseForm/Submitter/index.d.ts +1 -1
  34. package/es/form/components/Digit/DigitRange.js +5 -2
  35. package/es/form/components/Digit/index.js +7 -2
  36. package/es/form/components/FormItem/FormItemRender/index.d.ts +1 -1
  37. package/es/form/components/FormItem/FormItemRender/index.js +10 -2
  38. package/es/form/components/FormItem/Group/index.js +12 -2
  39. package/es/form/components/List/ListContainer.js +2 -1
  40. package/es/form/components/Select/index.js +11 -1
  41. package/es/form/layouts/DrawerForm/index.d.ts +4 -4
  42. package/es/form/layouts/DrawerForm/index.js +1 -1
  43. package/es/form/layouts/LightFilter/index.js +22 -31
  44. package/es/form/layouts/LoginForm/index.js +10 -9
  45. package/es/form/layouts/LoginFormPage/index.js +17 -16
  46. package/es/form/layouts/ModalForm/index.d.ts +2 -2
  47. package/es/form/layouts/ProForm/index.d.ts +1 -1
  48. package/es/form/layouts/QueryFilter/Actions.js +2 -1
  49. package/es/form/layouts/QueryFilter/index.js +40 -23
  50. package/es/form/layouts/StepsForm/index.js +2 -2
  51. package/es/layout/ProLayout.d.ts +3 -3
  52. package/es/layout/ProLayout.js +13 -25
  53. package/es/layout/components/AppsLogoComponents/DefaultContent.js +6 -5
  54. package/es/layout/components/AppsLogoComponents/SimpleContent.js +6 -5
  55. package/es/layout/components/FooterToolbar/index.d.ts +1 -1
  56. package/es/layout/components/FooterToolbar/index.js +2 -2
  57. package/es/layout/components/GlobalFooter/index.js +3 -3
  58. package/es/layout/components/GlobalHeader/ActionsContent.js +6 -6
  59. package/es/layout/components/GlobalHeader/index.js +1 -1
  60. package/es/layout/components/GridContent/index.js +1 -1
  61. package/es/layout/components/Help/ProHelpPanel.js +11 -10
  62. package/es/layout/components/PageContainer/index.js +9 -9
  63. package/es/layout/components/PageHeader/index.js +10 -10
  64. package/es/layout/components/SettingDrawer/BlockCheckbox.js +2 -2
  65. package/es/layout/components/SettingDrawer/LayoutChange.js +3 -2
  66. package/es/layout/components/SettingDrawer/RegionalChange.js +3 -2
  67. package/es/layout/components/SettingDrawer/ThemeColor.js +3 -2
  68. package/es/layout/components/SettingDrawer/index.js +5 -4
  69. package/es/layout/components/SiderMenu/BaseMenu.js +3 -3
  70. package/es/layout/components/SiderMenu/SiderMenu.js +5 -5
  71. package/es/layout/components/TopNavHeader/index.js +3 -3
  72. package/es/layout/utils/getBreadcrumbProps.js +1 -1
  73. package/es/list/Item.d.ts +3 -3
  74. package/es/list/Item.js +8 -1
  75. package/es/list/ListView.js +1 -2
  76. package/es/list/ProListBase.d.ts +1 -1
  77. package/es/list/ProListBase.js +43 -37
  78. package/es/list/style/index.js +13 -0
  79. package/es/provider/index.d.ts +2 -2
  80. package/es/table/Table.js +14 -5
  81. package/es/table/components/Alert/index.js +6 -5
  82. package/es/table/components/ColumnSetting/index.js +9 -9
  83. package/es/table/components/DragSortTable/index.js +8 -4
  84. package/es/table/components/EditableTable/index.d.ts +1 -1
  85. package/es/table/components/EditableTable/index.js +5 -70
  86. package/es/table/components/ListToolBar/HeaderMenu.d.ts +1 -0
  87. package/es/table/components/ListToolBar/HeaderMenu.js +4 -3
  88. package/es/table/components/ListToolBar/index.js +15 -12
  89. package/es/table/components/ListToolBar/style.js +2 -2
  90. package/es/table/components/ToolBar/DensityIcon.d.ts +2 -2
  91. package/es/table/components/ToolBar/DensityIcon.js +6 -3
  92. package/es/table/components/ToolBar/FullscreenIcon.d.ts +1 -1
  93. package/es/table/components/ToolBar/FullscreenIcon.js +11 -5
  94. package/es/table/useFetchData.js +4 -1
  95. package/es/table/utils/cellRenderToFromItem.js +1 -1
  96. package/es/table/utils/useDragSort.js +1 -1
  97. package/es/utils/components/DropdownFooter/index.d.ts +1 -1
  98. package/es/utils/components/FieldLabel/index.js +1 -1
  99. package/es/utils/components/FilterDropdown/index.d.ts +1 -1
  100. package/es/utils/components/FilterDropdown/index.js +1 -1
  101. package/es/utils/components/InlineErrorFormItem/index.js +5 -4
  102. package/es/utils/components/LabelIconTip/index.js +2 -2
  103. package/es/utils/hooks/useFetchData/index.js +0 -2
  104. package/es/utils/isUrl/index.js +1 -1
  105. package/es/utils/proFieldParsingText/index.d.ts +2 -2
  106. package/es/utils/proFieldParsingText/index.js +2 -2
  107. package/guidelines/components/pro-card.md +5 -4
  108. package/lib/card/ProCard.js +15 -7
  109. package/lib/card/components/Card/index.js +43 -19
  110. package/lib/card/components/Card/style.js +12 -1
  111. package/lib/card/components/Statistic/index.js +2 -2
  112. package/lib/card/components/StatisticCard/index.js +1 -1
  113. package/lib/card/typing.d.ts +27 -8
  114. package/lib/field/AllProField.d.ts +2 -0
  115. package/lib/field/AllProField.js +3 -0
  116. package/lib/field/PureProField.d.ts +2 -0
  117. package/lib/field/PureProField.js +2 -0
  118. package/lib/field/components/Cascader/index.js +8 -1
  119. package/lib/field/components/Checkbox/index.js +5 -1
  120. package/lib/field/components/ColorPicker/index.d.ts +1 -1
  121. package/lib/field/components/DatePicker/index.d.ts +1 -1
  122. package/lib/field/components/DatePicker/index.js +13 -1
  123. package/lib/field/components/Digit/index.js +20 -3
  124. package/lib/field/components/Money/index.js +50 -2
  125. package/lib/field/components/Password/index.js +11 -10
  126. package/lib/field/components/Percent/util.d.ts +1 -1
  127. package/lib/field/components/Radio/index.js +5 -1
  128. package/lib/field/components/RangePicker/index.d.ts +1 -1
  129. package/lib/field/components/Segmented/index.js +2 -1
  130. package/lib/field/components/Select/SearchSelect/index.js +2 -4
  131. package/lib/field/components/Select/index.d.ts +1 -1
  132. package/lib/field/components/Select/index.js +1 -1
  133. package/lib/field/components/Switch/index.js +10 -2
  134. package/lib/field/components/Text/index.js +7 -1
  135. package/lib/field/components/TextArea/index.js +6 -3
  136. package/lib/field/components/TimePicker/index.js +10 -1
  137. package/lib/field/components/TreeSelect/index.d.ts +2 -12
  138. package/lib/field/components/TreeSelect/index.js +30 -16
  139. package/lib/form/BaseForm/BaseForm.js +4 -3
  140. package/lib/form/BaseForm/Submitter/index.d.ts +1 -1
  141. package/lib/form/components/Digit/DigitRange.js +5 -2
  142. package/lib/form/components/Digit/index.js +7 -2
  143. package/lib/form/components/FormItem/FormItemRender/index.d.ts +1 -1
  144. package/lib/form/components/FormItem/FormItemRender/index.js +10 -2
  145. package/lib/form/components/FormItem/Group/index.js +12 -2
  146. package/lib/form/components/List/ListContainer.js +2 -1
  147. package/lib/form/components/Select/index.js +11 -1
  148. package/lib/form/layouts/DrawerForm/index.d.ts +4 -4
  149. package/lib/form/layouts/DrawerForm/index.js +1 -1
  150. package/lib/form/layouts/LightFilter/index.js +21 -30
  151. package/lib/form/layouts/LoginForm/index.js +10 -9
  152. package/lib/form/layouts/LoginFormPage/index.js +17 -16
  153. package/lib/form/layouts/ModalForm/index.d.ts +2 -2
  154. package/lib/form/layouts/ProForm/index.d.ts +1 -1
  155. package/lib/form/layouts/QueryFilter/Actions.js +2 -1
  156. package/lib/form/layouts/QueryFilter/index.js +39 -22
  157. package/lib/form/layouts/StepsForm/index.js +2 -2
  158. package/lib/layout/ProLayout.d.ts +3 -3
  159. package/lib/layout/ProLayout.js +13 -25
  160. package/lib/layout/components/AppsLogoComponents/DefaultContent.js +6 -5
  161. package/lib/layout/components/AppsLogoComponents/SimpleContent.js +6 -5
  162. package/lib/layout/components/FooterToolbar/index.d.ts +1 -1
  163. package/lib/layout/components/FooterToolbar/index.js +2 -2
  164. package/lib/layout/components/GlobalFooter/index.js +3 -3
  165. package/lib/layout/components/GlobalHeader/ActionsContent.js +6 -6
  166. package/lib/layout/components/GlobalHeader/index.js +1 -1
  167. package/lib/layout/components/GridContent/index.js +1 -1
  168. package/lib/layout/components/Help/ProHelpPanel.js +11 -10
  169. package/lib/layout/components/PageContainer/index.js +9 -9
  170. package/lib/layout/components/PageHeader/index.js +10 -10
  171. package/lib/layout/components/SettingDrawer/BlockCheckbox.js +2 -2
  172. package/lib/layout/components/SettingDrawer/LayoutChange.js +3 -2
  173. package/lib/layout/components/SettingDrawer/RegionalChange.js +3 -2
  174. package/lib/layout/components/SettingDrawer/ThemeColor.js +3 -2
  175. package/lib/layout/components/SettingDrawer/index.js +5 -4
  176. package/lib/layout/components/SiderMenu/BaseMenu.js +3 -3
  177. package/lib/layout/components/SiderMenu/SiderMenu.js +5 -5
  178. package/lib/layout/components/TopNavHeader/index.js +3 -3
  179. package/lib/layout/utils/getBreadcrumbProps.js +1 -1
  180. package/lib/list/Item.d.ts +3 -3
  181. package/lib/list/Item.js +8 -1
  182. package/lib/list/ListView.js +1 -2
  183. package/lib/list/ProListBase.d.ts +1 -1
  184. package/lib/list/ProListBase.js +42 -36
  185. package/lib/list/style/index.js +13 -0
  186. package/lib/provider/index.d.ts +2 -2
  187. package/lib/table/Table.js +14 -5
  188. package/lib/table/components/Alert/index.js +6 -5
  189. package/lib/table/components/ColumnSetting/index.js +9 -9
  190. package/lib/table/components/DragSortTable/index.js +8 -4
  191. package/lib/table/components/EditableTable/index.d.ts +1 -1
  192. package/lib/table/components/EditableTable/index.js +5 -70
  193. package/lib/table/components/ListToolBar/HeaderMenu.d.ts +1 -0
  194. package/lib/table/components/ListToolBar/HeaderMenu.js +4 -3
  195. package/lib/table/components/ListToolBar/index.js +15 -12
  196. package/lib/table/components/ListToolBar/style.js +2 -2
  197. package/lib/table/components/ToolBar/DensityIcon.d.ts +2 -2
  198. package/lib/table/components/ToolBar/DensityIcon.js +6 -3
  199. package/lib/table/components/ToolBar/FullscreenIcon.d.ts +1 -1
  200. package/lib/table/components/ToolBar/FullscreenIcon.js +11 -5
  201. package/lib/table/useFetchData.js +4 -1
  202. package/lib/table/utils/cellRenderToFromItem.js +1 -1
  203. package/lib/table/utils/useDragSort.js +1 -1
  204. package/lib/utils/components/DropdownFooter/index.d.ts +1 -1
  205. package/lib/utils/components/FieldLabel/index.js +1 -1
  206. package/lib/utils/components/FilterDropdown/index.d.ts +1 -1
  207. package/lib/utils/components/FilterDropdown/index.js +1 -1
  208. package/lib/utils/components/InlineErrorFormItem/index.js +5 -4
  209. package/lib/utils/components/LabelIconTip/index.js +2 -2
  210. package/lib/utils/hooks/useFetchData/index.js +0 -2
  211. package/lib/utils/isUrl/index.js +1 -1
  212. package/lib/utils/proFieldParsingText/index.d.ts +2 -2
  213. package/lib/utils/proFieldParsingText/index.js +2 -2
  214. package/package.json +31 -30
@@ -11,13 +11,13 @@ const renderBack = (prefixCls, hashId, backIcon, onBack) => {
11
11
  return null;
12
12
  }
13
13
  return /*#__PURE__*/_jsx("div", {
14
- className: `${prefixCls}-back ${hashId}`.trim(),
14
+ className: clsx(`${prefixCls}-back`, hashId),
15
15
  children: /*#__PURE__*/_jsx("div", {
16
16
  role: "button",
17
17
  onClick: e => {
18
18
  onBack?.(e);
19
19
  },
20
- className: `${prefixCls}-back-button ${hashId}`.trim(),
20
+ className: clsx(`${prefixCls}-back-button`, hashId),
21
21
  "aria-label": "back",
22
22
  children: backIcon
23
23
  })
@@ -55,26 +55,26 @@ const renderTitle = (prefixCls, props, direction = 'ltr', hashId) => {
55
55
  const backIconDom = renderBack(prefixCls, hashId, backIcon, onBack);
56
56
  const hasTitle = backIconDom || avatar || hasHeading;
57
57
  return /*#__PURE__*/_jsxs("div", {
58
- className: headingPrefixCls + ' ' + hashId,
58
+ className: clsx(headingPrefixCls, hashId),
59
59
  children: [hasTitle && /*#__PURE__*/_jsxs("div", {
60
- className: `${headingPrefixCls}-left ${hashId}`.trim(),
60
+ className: clsx(`${headingPrefixCls}-left`, hashId),
61
61
  children: [backIconDom, avatar && /*#__PURE__*/_jsx(Avatar, {
62
62
  className: clsx(`${headingPrefixCls}-avatar`, hashId, avatar.className),
63
63
  ...avatar
64
64
  }), title && /*#__PURE__*/_jsx("span", {
65
- className: `${headingPrefixCls}-title ${hashId}`.trim(),
65
+ className: clsx(`${headingPrefixCls}-title`, hashId),
66
66
  title: typeof title === 'string' ? title : undefined,
67
67
  children: title
68
68
  }), subTitle && /*#__PURE__*/_jsx("span", {
69
- className: `${headingPrefixCls}-sub-title ${hashId}`.trim(),
69
+ className: clsx(`${headingPrefixCls}-sub-title`, hashId),
70
70
  title: typeof subTitle === 'string' ? subTitle : undefined,
71
71
  children: subTitle
72
72
  }), tags && /*#__PURE__*/_jsx("span", {
73
- className: `${headingPrefixCls}-tags ${hashId}`.trim(),
73
+ className: clsx(`${headingPrefixCls}-tags`, hashId),
74
74
  children: tags
75
75
  })]
76
76
  }), extra && /*#__PURE__*/_jsx("span", {
77
- className: `${headingPrefixCls}-extra ${hashId}`.trim(),
77
+ className: clsx(`${headingPrefixCls}-extra`, hashId),
78
78
  children: /*#__PURE__*/_jsx(Space, {
79
79
  children: extra
80
80
  })
@@ -84,14 +84,14 @@ const renderTitle = (prefixCls, props, direction = 'ltr', hashId) => {
84
84
  const renderFooter = (prefixCls, footer, hashId) => {
85
85
  if (footer) {
86
86
  return /*#__PURE__*/_jsx("div", {
87
- className: `${prefixCls}-footer ${hashId}`.trim(),
87
+ className: clsx(`${prefixCls}-footer`, hashId),
88
88
  children: footer
89
89
  });
90
90
  }
91
91
  return null;
92
92
  };
93
93
  const renderChildren = (prefixCls, children, hashId) => /*#__PURE__*/_jsx("div", {
94
- className: `${prefixCls}-content ${hashId}`.trim(),
94
+ className: clsx(`${prefixCls}-content`, hashId),
95
95
  children: children
96
96
  });
97
97
  const PageHeader = props => {
@@ -20,12 +20,12 @@ const BlockCheckbox = ({
20
20
  className: clsx(hashId, `${baseClassName}-item`, `${baseClassName}-item-${item.key}`, `${baseClassName}-${configType}-item`),
21
21
  onClick: () => onChange(item.key),
22
22
  children: [/*#__PURE__*/_jsx(CheckOutlined, {
23
- className: `${baseClassName}-selectIcon ${hashId}`.trim(),
23
+ className: clsx(`${baseClassName}-selectIcon`, hashId),
24
24
  style: {
25
25
  display: value === item.key ? 'block' : 'none'
26
26
  }
27
27
  }), item?.icon ? /*#__PURE__*/_jsx("div", {
28
- className: `${baseClassName}-icon ${hashId}`.trim(),
28
+ className: clsx(`${baseClassName}-icon`, hashId),
29
29
  children: item.icon
30
30
  }) : null]
31
31
  })
@@ -1,4 +1,5 @@
1
1
  import { List, Select, Switch, Tooltip } from 'antd';
2
+ import { clsx } from 'clsx';
2
3
  import React from 'react';
3
4
  import { defaultSettings } from "../../defaultSettings";
4
5
  import { getFormatMessage } from "./index";
@@ -37,7 +38,7 @@ const LayoutSetting = ({
37
38
  fixSiderbar
38
39
  } = settings || defaultSettings;
39
40
  return /*#__PURE__*/_jsx(List, {
40
- className: `${prefixCls}-list ${hashId}`.trim(),
41
+ className: clsx(`${prefixCls}-list`, hashId),
41
42
  split: false,
42
43
  dataSource: [{
43
44
  title: formatMessage({
@@ -47,7 +48,7 @@ const LayoutSetting = ({
47
48
  action: /*#__PURE__*/_jsxs(Select, {
48
49
  value: contentWidth || 'Fixed',
49
50
  size: "small",
50
- className: `content-width ${hashId}`.trim(),
51
+ className: clsx('content-width', hashId),
51
52
  onSelect: value => {
52
53
  changeSetting('contentWidth', value);
53
54
  },
@@ -1,4 +1,5 @@
1
1
  import { List, Switch } from 'antd';
2
+ import { clsx } from 'clsx';
2
3
  import React from 'react';
3
4
  import { getFormatMessage } from "./index";
4
5
  import { renderLayoutSettingItem } from "./LayoutChange";
@@ -12,7 +13,7 @@ const RegionalSetting = ({
12
13
  const formatMessage = getFormatMessage();
13
14
  const regionalSetting = ['header', 'footer', 'menu', 'menuHeader'];
14
15
  return /*#__PURE__*/_jsx(List, {
15
- className: `${prefixCls}-list ${hashId}`.trim(),
16
+ className: clsx(`${prefixCls}-list`, hashId),
16
17
  split: false,
17
18
  renderItem: renderLayoutSettingItem,
18
19
  dataSource: regionalSetting.map(key => {
@@ -22,7 +23,7 @@ const RegionalSetting = ({
22
23
  }),
23
24
  action: /*#__PURE__*/_jsx(Switch, {
24
25
  size: "small",
25
- className: `regional-${key} ${hashId}`.trim(),
26
+ className: clsx(`regional-${key}`, hashId),
26
27
  checked: settings[`${key}Render`] || settings[`${key}Render`] === undefined,
27
28
  onChange: checked => changeSetting(`${key}Render`, checked === true ? undefined : false)
28
29
  })
@@ -1,5 +1,6 @@
1
1
  import { CheckOutlined } from '@ant-design/icons';
2
2
  import { Tooltip } from 'antd';
3
+ import { clsx } from 'clsx';
3
4
  import React from 'react';
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  const Tag = /*#__PURE__*/React.forwardRef(({
@@ -27,7 +28,7 @@ const ThemeColor = ({
27
28
  }
28
29
  const baseClassName = `${prefixCls}-theme-color`;
29
30
  return /*#__PURE__*/_jsx("div", {
30
- className: `${baseClassName} ${hashId}`.trim(),
31
+ className: clsx(baseClassName, hashId),
31
32
  children: colorList?.map(({
32
33
  key,
33
34
  color,
@@ -39,7 +40,7 @@ const ThemeColor = ({
39
40
  id: `app.setting.themecolor.${key}`
40
41
  }),
41
42
  children: /*#__PURE__*/_jsx(Tag, {
42
- className: `${baseClassName}-block ${hashId}`.trim(),
43
+ className: clsx(`${baseClassName}-block`, hashId),
43
44
  color: color,
44
45
  check: value === color,
45
46
  onClick: () => onChange && onChange(color)
@@ -2,6 +2,7 @@ import { CloseOutlined, CopyOutlined, NotificationOutlined, SettingOutlined } fr
2
2
  import { omit, useControlledState } from '@rc-component/util';
3
3
  import { useUrlSearchParams } from '@umijs/use-params';
4
4
  import { Alert, Button, Divider, Drawer, List, Switch, message } from 'antd';
5
+ import { clsx } from 'clsx';
5
6
  import React, { useCallback, useEffect, useRef, useState } from 'react';
6
7
  import { isBrowser, merge, useRefFunction } from "../../../utils";
7
8
  import { defaultSettings } from "../../defaultSettings";
@@ -27,7 +28,7 @@ const Body = ({
27
28
  marginBlockEnd: 12
28
29
  },
29
30
  children: [/*#__PURE__*/_jsx("h3", {
30
- className: `${prefixCls}-body-title ${hashId}`.trim(),
31
+ className: clsx(`${prefixCls}-body-title`, hashId),
31
32
  children: title
32
33
  }), children]
33
34
  });
@@ -288,7 +289,7 @@ export const SettingDrawer = props => {
288
289
  } = useStyle(baseClassName);
289
290
  return wrapSSR( /*#__PURE__*/_jsxs(_Fragment, {
290
291
  children: [/*#__PURE__*/_jsx("div", {
291
- className: `${baseClassName}-handle ${hashId}`.trim(),
292
+ className: clsx(`${baseClassName}-handle`, hashId),
292
293
  onClick: () => setOpen(!open),
293
294
  style: {
294
295
  width: 48,
@@ -317,7 +318,7 @@ export const SettingDrawer = props => {
317
318
  },
318
319
  ...drawerProps,
319
320
  children: /*#__PURE__*/_jsxs("div", {
320
- className: `${baseClassName}-drawer-content ${hashId}`.trim(),
321
+ className: clsx(`${baseClassName}-drawer-content`, hashId),
321
322
  children: [/*#__PURE__*/_jsx(Body, {
322
323
  title: formatMessage({
323
324
  id: 'app.setting.pagestyle',
@@ -444,7 +445,7 @@ export const SettingDrawer = props => {
444
445
  id: 'app.setting.othersettings'
445
446
  }),
446
447
  children: /*#__PURE__*/_jsx(List, {
447
- className: `${baseClassName}-list ${hashId}`.trim(),
448
+ className: clsx(`${baseClassName}-list`, hashId),
448
449
  split: false,
449
450
  size: "small",
450
451
  renderItem: renderLayoutSettingItem,
@@ -107,7 +107,7 @@ class MenuUtil {
107
107
  [`${baseClassName}-item-collapsed-show-title`]: menu?.collapsedShowTitle && collapsed
108
108
  }),
109
109
  children: [menuType === 'group' && collapsed ? null : shouldHasIcon && iconDom ? /*#__PURE__*/_jsx("span", {
110
- className: `${baseClassName}-item-icon ${this.props?.hashId}`.trim(),
110
+ className: clsx(`${baseClassName}-item-icon`, this.props?.hashId),
111
111
  children: iconDom
112
112
  }) : defaultIcon, /*#__PURE__*/_jsx("span", {
113
113
  className: clsx(`${baseClassName}-item-text`, this.props?.hashId, {
@@ -221,7 +221,7 @@ class MenuUtil {
221
221
  [`${baseClassName}-item-collapsed-show-title`]: menu?.collapsedShowTitle && collapsed
222
222
  }),
223
223
  children: [/*#__PURE__*/_jsx("span", {
224
- className: `${baseClassName}-item-icon ${this.props?.hashId}`.trim(),
224
+ className: clsx(`${baseClassName}-item-icon`, this.props?.hashId),
225
225
  style: {
226
226
  display: defaultIcon === null && !icon ? 'none' : ''
227
227
  },
@@ -251,7 +251,7 @@ class MenuUtil {
251
251
  [`${baseClassName}-item-collapsed-show-title`]: menu?.collapsedShowTitle && collapsed
252
252
  }),
253
253
  children: [/*#__PURE__*/_jsx("span", {
254
- className: `${baseClassName}-item-icon ${this.props?.hashId}`.trim(),
254
+ className: clsx(`${baseClassName}-item-icon`, this.props?.hashId),
255
255
  style: {
256
256
  display: defaultIcon === null && !icon ? 'none' : ''
257
257
  },
@@ -125,7 +125,7 @@ const SiderMenu = props => {
125
125
  style: {
126
126
  width: '100%'
127
127
  },
128
- className: `${baseClassName}-menu ${hashId}`.trim()
128
+ className: clsx(`${baseClassName}-menu`, hashId)
129
129
  }), [baseClassName, hashId, menuContentRender, onOpenChange, props]);
130
130
  const linksMenuItems = (links || []).map((node, index) => ({
131
131
  className: `${baseClassName}-link`,
@@ -165,7 +165,7 @@ const SiderMenu = props => {
165
165
  className: clsx([`${baseClassName}-actions-list`, collapsed && `${baseClassName}-actions-list-collapsed`, hashId]),
166
166
  children: [actionsRender?.(props)].flat(1).map((item, index) => {
167
167
  return /*#__PURE__*/_jsx("div", {
168
- className: `${baseClassName}-actions-list-item ${hashId}`.trim(),
168
+ className: clsx(`${baseClassName}-actions-list-item`, hashId),
169
169
  children: item
170
170
  }, index);
171
171
  })
@@ -233,10 +233,10 @@ const SiderMenu = props => {
233
233
  }), /*#__PURE__*/_jsxs(SiderContext.Provider, {
234
234
  value: {},
235
235
  children: [links ? /*#__PURE__*/_jsx("div", {
236
- className: `${baseClassName}-links ${hashId}`.trim(),
236
+ className: clsx(`${baseClassName}-links`, hashId),
237
237
  children: /*#__PURE__*/_jsx(Menu, {
238
238
  inlineIndent: 16,
239
- className: `${baseClassName}-link-menu ${hashId}`.trim(),
239
+ className: clsx(`${baseClassName}-link-menu`, hashId),
240
240
  selectedKeys: [],
241
241
  openKeys: [],
242
242
  theme: theme,
@@ -279,7 +279,7 @@ const SiderMenu = props => {
279
279
  width: siderWidth,
280
280
  className: clsx(siderClassName, hashId, hideMenuWhenCollapsedClassName),
281
281
  children: [hideMenuWhenCollapsedClassName ? /*#__PURE__*/_jsx("div", {
282
- className: `${baseClassName}-hide-when-collapsed ${hashId}`.trim(),
282
+ className: clsx(`${baseClassName}-hide-when-collapsed`, hashId),
283
283
  style: {
284
284
  height: '100%',
285
285
  width: '100%',
@@ -81,7 +81,7 @@ const TopNavHeader = props => {
81
81
  children: /*#__PURE__*/_jsx(BaseMenu, {
82
82
  theme: dark ? 'dark' : 'light',
83
83
  ...props,
84
- className: `${prefixCls}-base-menu ${hashId}`.trim(),
84
+ className: clsx(`${prefixCls}-base-menu`, hashId),
85
85
  ...props.menuProps,
86
86
  style: {
87
87
  width: '100%',
@@ -113,7 +113,7 @@ const TopNavHeader = props => {
113
113
  children: [/*#__PURE__*/_jsx(AppsLogoComponents, {
114
114
  ...props
115
115
  }), /*#__PURE__*/_jsx("div", {
116
- className: `${prefixCls}-logo ${hashId}`.trim(),
116
+ className: clsx(`${prefixCls}-logo`, hashId),
117
117
  id: "logo",
118
118
  children: headerDom
119
119
  }, "logo")]
@@ -121,7 +121,7 @@ const TopNavHeader = props => {
121
121
  style: {
122
122
  flex: 1
123
123
  },
124
- className: `${prefixCls}-menu ${hashId}`.trim(),
124
+ className: clsx(`${prefixCls}-menu`, hashId),
125
125
  children: contentDom
126
126
  }), (actionsRender || props.avatarProps) && /*#__PURE__*/_jsx(ActionsContent, {
127
127
  ...props,
@@ -42,7 +42,7 @@ export const getBreadcrumb = (breadcrumbMap, url) => {
42
42
  try {
43
43
  if (path?.startsWith('http')) return false;
44
44
  return match(path.replace('?', ''))(url);
45
- } catch (error) {
45
+ } catch (_error) {
46
46
  return false;
47
47
  }
48
48
  }
package/es/list/Item.d.ts CHANGED
@@ -6,7 +6,7 @@ import type { ListGridType } from './ProListBase';
6
6
  export type RenderExpandIconProps<RecordType> = {
7
7
  prefixCls: string;
8
8
  expanded: boolean;
9
- expandIcon: React.ReactNode | JSX.Element | ((props: {
9
+ expandIcon: React.ReactNode | React.JSX.Element | ((props: {
10
10
  onExpand: (expanded: boolean) => void;
11
11
  expanded: boolean;
12
12
  record: RecordType;
@@ -48,8 +48,8 @@ export type ItemProps<RecordType> = {
48
48
  record: RecordType;
49
49
  onRow?: GetComponentProps<RecordType>;
50
50
  onItem?: GetComponentProps<RecordType>;
51
- itemHeaderRender?: ((item: RecordType, index: number, defaultDom: JSX.Element | null) => React.ReactNode) | false;
52
- itemTitleRender?: ((item: RecordType, index: number, defaultDom: JSX.Element | null) => React.ReactNode) | false;
51
+ itemHeaderRender?: ((item: RecordType, index: number, defaultDom: React.JSX.Element | null) => React.ReactNode) | false;
52
+ itemTitleRender?: ((item: RecordType, index: number, defaultDom: React.JSX.Element | null) => React.ReactNode) | false;
53
53
  };
54
54
  declare function ProListItem<RecordType>(props: ItemProps<RecordType>): import("react/jsx-runtime").JSX.Element;
55
55
  export default ProListItem;
package/es/list/Item.js CHANGED
@@ -220,7 +220,14 @@ function ProListItem(props) {
220
220
  expanded,
221
221
  record
222
222
  })]
223
- }), headerDom, actionsArray]
223
+ }), headerDom, actionsArray && actionsArray.length > 0 ? /*#__PURE__*/_jsx("div", {
224
+ className: clsx(`${prefixCls}-item-action`, hashId),
225
+ onClick: e => e.stopPropagation(),
226
+ children: actionsArray.map((action, i) => /*#__PURE__*/_jsx("div", {
227
+ className: clsx(`${prefixCls}-item-action-item`, hashId),
228
+ children: action
229
+ }, i))
230
+ }) : null]
224
231
  }), needExpanded && (content || expandedRowDom) && /*#__PURE__*/_jsxs("div", {
225
232
  className: clsx(`${className}-content`, hashId),
226
233
  children: [content, expandedRowRender && rowSupportExpand && /*#__PURE__*/_jsx("div", {
@@ -59,8 +59,7 @@ function ListView(props) {
59
59
  current = 1,
60
60
  pageSize = 10
61
61
  } = mergedPagination;
62
- const currentPageData = dataSource.slice((current - 1) * pageSize, current * pageSize);
63
- return currentPageData;
62
+ return dataSource.slice((current - 1) * pageSize, current * pageSize);
64
63
  }, [dataSource, mergedPagination, pagination]);
65
64
  const prefixCls = getPrefixCls('pro-list', customizePrefixCls);
66
65
 
@@ -35,7 +35,7 @@ export interface ListProps<T = any> {
35
35
  pagination?: PaginationConfig | false;
36
36
  prefixCls?: string;
37
37
  rowKey?: ((item: T) => React.Key) | keyof T;
38
- renderItem?: (item: T, index: number, defaultDom: JSX.Element | null) => React.ReactNode;
38
+ renderItem?: (item: T, index: number, defaultDom: React.JSX.Element | null) => React.ReactNode;
39
39
  size?: ListSize;
40
40
  split?: boolean;
41
41
  header?: React.ReactNode;
@@ -2,10 +2,9 @@
2
2
  * 内部 List 容器与 List.Item / List.Item.Meta 实现,用于替代 antd List(antd List 已停止维护)
3
3
  * 保持与 antd List 相同的 DOM 结构及类名,以便复用 antd 的 list 样式
4
4
  */
5
- import { ConfigProvider, Empty, Pagination } from 'antd';
5
+ import { ConfigProvider, Empty, Grid, Pagination, Spin } from 'antd';
6
6
  import { clsx } from 'clsx';
7
7
  import React, { useContext, useMemo } from 'react';
8
- import { useBreakpoint } from "../utils/useMediaQuery";
9
8
  import { jsx as _jsx } from "react/jsx-runtime";
10
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
10
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -179,29 +178,41 @@ const ProListContainerInner = /*#__PURE__*/React.forwardRef(function ProListCont
179
178
  children: renderItem(item, index, null)
180
179
  }, key);
181
180
  };
182
- const breakpoint = useBreakpoint();
181
+ const rawScreens = Grid.useBreakpoint();
182
+ const defaultScreens = {
183
+ xs: true,
184
+ sm: true,
185
+ md: true,
186
+ lg: false,
187
+ xl: false,
188
+ xxl: false
189
+ };
190
+ const screens = useMemo(() => {
191
+ if (rawScreens == null) return defaultScreens;
192
+ return {
193
+ xxl: rawScreens.xxl ?? defaultScreens.xxl,
194
+ xl: rawScreens.xl ?? defaultScreens.xl,
195
+ lg: rawScreens.lg ?? defaultScreens.lg,
196
+ md: rawScreens.md ?? defaultScreens.md,
197
+ sm: rawScreens.sm ?? defaultScreens.sm,
198
+ xs: rawScreens.xs ?? defaultScreens.xs
199
+ };
200
+ }, [rawScreens]);
183
201
 
184
202
  /**
185
- * 根据当前断点获取列数
203
+ * 根据当前断点获取列数,与 antd Grid/Card 响应式逻辑一致
186
204
  */
187
205
  const getResponsiveColumn = useMemo(() => {
188
206
  if (!grid) return 1;
189
- const breakpoints = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];
190
- const currentBreakpoint = breakpoint || 'md';
191
- const startIndex = breakpoints.indexOf(currentBreakpoint);
192
-
193
- // 从当前断点开始,向下查找第一个已定义的列数
194
- for (let i = startIndex; i < breakpoints.length; i++) {
195
- const bp = breakpoints[i];
196
- const colCount = grid[bp];
197
- if (colCount !== undefined) {
198
- return colCount;
207
+ const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];
208
+ for (let i = 0; i < responsiveArray.length; i += 1) {
209
+ const breakpoint = responsiveArray[i];
210
+ if (screens[breakpoint] && grid[breakpoint] !== undefined) {
211
+ return grid[breakpoint];
199
212
  }
200
213
  }
201
-
202
- // 最后使用 column 默认值,确保不为 0(避免除以零)
203
214
  return grid.column || 1;
204
- }, [grid, breakpoint]);
215
+ }, [grid, screens]);
205
216
 
206
217
  /**
207
218
  * 计算 grid 容器样式(flex 布局)
@@ -274,24 +285,15 @@ const ProListContainerInner = /*#__PURE__*/React.forwardRef(function ProListCont
274
285
  style: colStyle,
275
286
  children: child
276
287
  }, child?.key ?? idx))
277
- }) : /*#__PURE__*/_jsx("ul", {
278
- className: `${prefixCls}-items`,
279
- children: items
280
- });
281
- } else if (!children && !isLoading) {
288
+ }) : items;
289
+ } else if (!children) {
282
290
  const emptyContent = locale?.emptyText ?? (typeof renderEmpty === 'function' ? renderEmpty('List') : null) ?? /*#__PURE__*/_jsx(Empty, {
283
- description: "\u6682\u65E0\u6570\u636E"
291
+ image: Empty.PRESENTED_IMAGE_SIMPLE
284
292
  });
285
293
  childrenContent = /*#__PURE__*/_jsx("div", {
286
294
  className: `${prefixCls}-empty-text`,
287
295
  children: emptyContent
288
296
  });
289
- } else if (isLoading) {
290
- childrenContent = /*#__PURE__*/_jsx("div", {
291
- style: {
292
- minHeight: 53
293
- }
294
- });
295
297
  } else {
296
298
  childrenContent = children;
297
299
  }
@@ -331,18 +333,22 @@ const ProListContainerInner = /*#__PURE__*/React.forwardRef(function ProListCont
331
333
  }, propHashId, className, rootClassName);
332
334
  return /*#__PURE__*/_jsx(ProListContext.Provider, {
333
335
  value: contextValue,
334
- children: /*#__PURE__*/_jsxs("div", {
336
+ children: /*#__PURE__*/_jsx("div", {
335
337
  ref: ref,
336
338
  style: style,
337
339
  className: classString,
338
340
  ...rest,
339
- children: [showPaginationTop && paginationNode, header && /*#__PURE__*/_jsx("div", {
340
- className: `${prefixCls}-header`,
341
- children: header
342
- }), childrenContent, children, footer && /*#__PURE__*/_jsx("div", {
343
- className: `${prefixCls}-footer`,
344
- children: footer
345
- }), loadMore, showPaginationBottom && paginationNode]
341
+ children: /*#__PURE__*/_jsxs(Spin, {
342
+ spinning: isLoading,
343
+ delay: 100,
344
+ children: [showPaginationTop && paginationNode, header && /*#__PURE__*/_jsx("div", {
345
+ className: `${prefixCls}-header`,
346
+ children: header
347
+ }), childrenContent, footer && /*#__PURE__*/_jsx("div", {
348
+ className: `${prefixCls}-footer`,
349
+ children: footer
350
+ }), loadMore, showPaginationBottom && paginationNode]
351
+ })
346
352
  })
347
353
  });
348
354
  });
@@ -20,6 +20,16 @@ const genProListStyle = token => {
20
20
  boxSizing: 'border-box'
21
21
  },
22
22
  backgroundColor: 'transparent',
23
+ // 确保链接使用默认链接颜色,不被父元素的文本颜色覆盖
24
+ a: {
25
+ color: token.colorLink,
26
+ '&:hover': {
27
+ color: token.colorLinkHover
28
+ },
29
+ '&:active': {
30
+ color: token.colorLinkActive
31
+ }
32
+ },
23
33
  [`${token.proComponentsCls}-table-alert`]: {
24
34
  marginBlockEnd: token.margin
25
35
  },
@@ -323,6 +333,9 @@ const genProListStyle = token => {
323
333
  justifyContent: 'flex-start',
324
334
  width: '100%',
325
335
  minWidth: 0,
336
+ [`${token.proComponentsCls}-list-item-action`]: {
337
+ alignSelf: 'center'
338
+ },
326
339
  h4: {
327
340
  margin: 0,
328
341
  padding: 0,
@@ -75,7 +75,7 @@ export type ProRenderFieldPropsType = {
75
75
  * @params dom 默认的 dom
76
76
  * @return 返回一个用于读的 dom
77
77
  */
78
- render?: ((text: any, props: Omit<ProFieldFCRenderProps, 'value' | 'onChange'>, dom: JSX.Element) => JSX.Element) | undefined;
78
+ render?: ((text: any, props: Omit<ProFieldFCRenderProps, 'value' | 'onChange'>, dom: React.JSX.Element) => React.JSX.Element) | undefined;
79
79
  /**
80
80
  * 一个自定义的编辑渲染器。
81
81
  * @params text 默认的值类型
@@ -83,7 +83,7 @@ export type ProRenderFieldPropsType = {
83
83
  * @params dom 默认的 dom
84
84
  * @return 返回一个用于编辑的dom
85
85
  */
86
- formItemRender?: ((text: any, props: ProFieldFCRenderProps, dom: JSX.Element) => JSX.Element) | undefined;
86
+ formItemRender?: ((text: any, props: ProFieldFCRenderProps, dom: React.JSX.Element) => React.JSX.Element) | undefined;
87
87
  };
88
88
  export type ParamsType = Record<string, any>;
89
89
  /**
package/es/table/Table.js CHANGED
@@ -716,19 +716,28 @@ const ProTable = props => {
716
716
  hideToolbar,
717
717
  toolbarDom
718
718
  });
719
- const tableAreaDom = cardProps === false || notNeedCardDom || !!props.name ? tableContentDom : /*#__PURE__*/_jsx(ProCard, {
719
+
720
+ /** ProTable:有搜索/工具栏/标题时使用卡片包裹;可编辑表格(name)不包裹 */
721
+ /** ProList:始终使用卡片包裹(除非 cardProps 为 false) */
722
+ const useCard = useMemo(() => {
723
+ const useCardForTable = cardProps !== false && !props.name && !notNeedCardDom;
724
+ const useCardForList = cardProps !== false && type === 'list';
725
+ return useCardForTable || useCardForList;
726
+ }, [cardProps, props.name, type, notNeedCardDom]);
727
+ const resolvedCardProps = cardProps === false ? {} : cardProps ?? {};
728
+ const tableAreaDom = useCard ? /*#__PURE__*/_jsx(ProCard, {
729
+ ...resolvedCardProps,
720
730
  ghost: ghost,
721
731
  variant: isBordered('table', cardBordered) ? 'outlined' : 'borderless',
722
732
  styles: {
723
733
  body: {
724
734
  ...cardBodyStyle,
725
- ...(cardProps?.styles?.body ?? {})
735
+ ...(resolvedCardProps.styles?.body ?? {})
726
736
  },
727
- header: cardProps?.styles?.header
737
+ header: resolvedCardProps.styles?.header
728
738
  },
729
- ...cardProps,
730
739
  children: tableContentDom
731
- });
740
+ }) : tableContentDom;
732
741
  const renderTable = () => {
733
742
  if (props.tableRender) {
734
743
  return props.tableRender(props, tableAreaDom, {
@@ -1,4 +1,5 @@
1
1
  import { ConfigProvider, Space } from 'antd';
2
+ import { clsx } from 'clsx';
2
3
  import React, { useContext } from 'react';
3
4
  import { useIntl } from "../../../provider";
4
5
  import { useStyle } from "./style";
@@ -54,16 +55,16 @@ function TableAlert({
54
55
  return null;
55
56
  }
56
57
  return wrapSSR( /*#__PURE__*/_jsx("div", {
57
- className: `${className} ${hashId}`.trim(),
58
+ className: clsx(className, hashId),
58
59
  children: /*#__PURE__*/_jsx("div", {
59
- className: `${className}-container ${hashId}`.trim(),
60
+ className: clsx(`${className}-container`, hashId),
60
61
  children: /*#__PURE__*/_jsxs("div", {
61
- className: `${className}-info ${hashId}`.trim(),
62
+ className: clsx(`${className}-info`, hashId),
62
63
  children: [/*#__PURE__*/_jsx("div", {
63
- className: `${className}-info-content ${hashId}`.trim(),
64
+ className: clsx(`${className}-info-content`, hashId),
64
65
  children: dom
65
66
  }), option ? /*#__PURE__*/_jsx("div", {
66
- className: `${className}-info-option ${hashId}`.trim(),
67
+ className: clsx(`${className}-info-option`, hashId),
67
68
  children: option
68
69
  }) : null]
69
70
  })