@qsxy/element-plus-react 1.0.0-next.1 → 1.0.0-next.3

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 (213) hide show
  1. package/README.md +31 -0
  2. package/dist/Badge/Badge.js +4 -5
  3. package/dist/Badge/typings.d.ts +10 -0
  4. package/dist/Breadcrumb/Breadcrumb.js +1 -4
  5. package/dist/Breadcrumb/typings.d.ts +4 -0
  6. package/dist/Button/Button.d.ts +0 -1
  7. package/dist/Button/Button.js +21 -9
  8. package/dist/Button/typings.d.ts +28 -0
  9. package/dist/Calendar/Calendar.js +1 -2
  10. package/dist/Calendar/CalendarContext.d.ts +10 -0
  11. package/dist/Calendar/Footer.js +1 -2
  12. package/dist/Calendar/Header.js +3 -8
  13. package/dist/Calendar/ShortCuts.d.ts +2 -0
  14. package/dist/Calendar/typings.d.ts +18 -0
  15. package/dist/Card/typings.d.ts +4 -0
  16. package/dist/Cascader/Cascader.js +26 -25
  17. package/dist/Cascader/CascaderDropdown.d.ts +1 -0
  18. package/dist/Cascader/CascaderMenu.d.ts +7 -0
  19. package/dist/Cascader/typings.d.ts +80 -0
  20. package/dist/Cascader/useCascader.d.ts +72 -0
  21. package/dist/Checkbox/Checkbox.js +2 -6
  22. package/dist/Checkbox/CheckboxButton.js +2 -6
  23. package/dist/Checkbox/typings.d.ts +11 -0
  24. package/dist/CheckboxGroup/CheckboxGroup.d.ts +4 -0
  25. package/dist/CheckboxGroup/CheckboxGroupContext.d.ts +1 -0
  26. package/dist/Col/Col.js +1 -8
  27. package/dist/Col/typings.d.ts +10 -0
  28. package/dist/Collapse/CollapseContext.d.ts +3 -0
  29. package/dist/Collapse/CollapseItem.js +9 -7
  30. package/dist/Collapse/CollapseTransition.d.ts +7 -6
  31. package/dist/Collapse/CollapseTransition.js +49 -31
  32. package/dist/Collapse/typings.d.ts +7 -0
  33. package/dist/ColorPicker/AlphaSlider.d.ts +7 -0
  34. package/dist/ColorPicker/AlphaSlider.js +0 -1
  35. package/dist/ColorPicker/ColorPicker.js +0 -1
  36. package/dist/ColorPicker/HueSlider.d.ts +7 -0
  37. package/dist/ColorPicker/HueSlider.js +0 -1
  38. package/dist/ColorPicker/Predefine.d.ts +7 -0
  39. package/dist/ColorPicker/Predefine.js +0 -1
  40. package/dist/ColorPicker/SvPanel.d.ts +7 -0
  41. package/dist/ColorPicker/SvPanel.js +0 -1
  42. package/dist/ColorPicker/typings.d.ts +9 -0
  43. package/dist/ConfigProvider/ConfigProvider.d.ts +5 -0
  44. package/dist/DatePicker/DatePicker.js +19 -8
  45. package/dist/DatePicker/DateRangePicker.js +11 -10
  46. package/dist/DatePicker/typings.d.ts +69 -0
  47. package/dist/DateTimePicker/DateTimePicker.d.ts +1 -1
  48. package/dist/DateTimePicker/DateTimePicker.js +10 -8
  49. package/dist/DateTimePicker/typings.d.ts +1 -0
  50. package/dist/Descriptions/Descriptions.js +1 -5
  51. package/dist/Descriptions/DescriptionsContext.d.ts +2 -0
  52. package/dist/Descriptions/typings.d.ts +13 -0
  53. package/dist/Dialog/Dialog.d.ts +0 -1
  54. package/dist/Dialog/Dialog.js +3 -6
  55. package/dist/Dialog/DialogBody.js +0 -3
  56. package/dist/Dialog/DialogContext.d.ts +8 -0
  57. package/dist/Dialog/DialogHeader.js +1 -4
  58. package/dist/Dialog/typings.d.ts +36 -0
  59. package/dist/Divider/Divider.d.ts +4 -0
  60. package/dist/Divider/Divider.js +1 -6
  61. package/dist/Drawer/Drawer.js +10 -5
  62. package/dist/Drawer/DrawerBody.js +1 -4
  63. package/dist/Drawer/DrawerContext.d.ts +10 -0
  64. package/dist/Drawer/DrawerHeader.js +1 -4
  65. package/dist/Drawer/typings.d.ts +16 -0
  66. package/dist/Dropdown/Dropdown.js +11 -7
  67. package/dist/Dropdown/DropdownContext.d.ts +2 -0
  68. package/dist/Dropdown/typings.d.ts +15 -0
  69. package/dist/Empty/Empty.js +1 -4
  70. package/dist/Form/Form.js +10 -6
  71. package/dist/Form/FormItem.d.ts +12 -0
  72. package/dist/Form/FormItem.js +3 -1
  73. package/dist/Form/typings.d.ts +55 -0
  74. package/dist/Form/useForm.d.ts +22 -0
  75. package/dist/Form/utils/NameMap.d.ts +3 -0
  76. package/dist/Form/utils/validateUtil.d.ts +4 -0
  77. package/dist/Form/utils/valueUtil.d.ts +17 -0
  78. package/dist/Icon/Icon.js +1 -4
  79. package/dist/Icon/typings.d.ts +7 -0
  80. package/dist/Input/Input.js +16 -9
  81. package/dist/Input/InputRange.js +11 -8
  82. package/dist/Input/TextArea.js +8 -4
  83. package/dist/Input/typings.d.ts +61 -0
  84. package/dist/InputNumber/InputNumber.js +10 -7
  85. package/dist/InputNumber/typings.d.ts +21 -0
  86. package/dist/Link/Link.js +1 -4
  87. package/dist/Link/typings.d.ts +6 -1
  88. package/dist/Loading/Loading.js +3 -5
  89. package/dist/Loading/typings.d.ts +5 -0
  90. package/dist/Message/Main.d.ts +7 -0
  91. package/dist/Message/Message.js +11 -8
  92. package/dist/Message/index.d.ts +8 -0
  93. package/dist/Message/typings.d.ts +11 -0
  94. package/dist/MessageBox/Main.js +3 -1
  95. package/dist/MessageBox/index.d.ts +17 -3
  96. package/dist/MessageBox/index.js +1 -1
  97. package/dist/MessageBox/typings.d.ts +50 -0
  98. package/dist/Notification/Main.d.ts +7 -0
  99. package/dist/Notification/Notification.js +17 -14
  100. package/dist/Notification/index.d.ts +15 -0
  101. package/dist/Notification/typings.d.ts +13 -0
  102. package/dist/Pagination/Pagination.js +15 -11
  103. package/dist/Pagination/typings.d.ts +28 -0
  104. package/dist/Popconfirm/Popconfirm.js +13 -9
  105. package/dist/Popconfirm/typings.d.ts +10 -0
  106. package/dist/Popover/Popover.js +12 -8
  107. package/dist/Popover/typings.d.ts +12 -0
  108. package/dist/Popper/Popper.js +15 -11
  109. package/dist/Popper/typings.d.ts +7 -1
  110. package/dist/Progress/Progress.js +12 -8
  111. package/dist/Progress/typings.d.ts +12 -0
  112. package/dist/Radio/typings.d.ts +7 -0
  113. package/dist/RadioGroup/typings.d.ts +1 -0
  114. package/dist/Row/Row.js +8 -5
  115. package/dist/Row/RowContext.d.ts +1 -0
  116. package/dist/Row/typings.d.ts +4 -0
  117. package/dist/Scrollbar/Scrollbar.js +13 -9
  118. package/dist/Scrollbar/Thumb.js +1 -1
  119. package/dist/Scrollbar/typings.d.ts +20 -0
  120. package/dist/Select/SelectCore.js +17 -14
  121. package/dist/Select/typings.d.ts +33 -0
  122. package/dist/Skeleton/PlaceholderGraph.d.ts +4 -0
  123. package/dist/Skeleton/PlaceholderGrid.d.ts +4 -0
  124. package/dist/Skeleton/PlaceholderGrid.js +0 -4
  125. package/dist/Skeleton/PlaceholderParagraph.d.ts +4 -0
  126. package/dist/Skeleton/PlaceholderParagraph.js +0 -4
  127. package/dist/Switch/Switch.js +13 -10
  128. package/dist/Switch/typings.d.ts +15 -0
  129. package/dist/Table/Colgroup.d.ts +1 -0
  130. package/dist/Table/Table.js +13 -9
  131. package/dist/Table/TableBody.js +10 -41
  132. package/dist/Table/TableCell.js +0 -5
  133. package/dist/Table/TableColumn.js +0 -4
  134. package/dist/Table/TableContext.d.ts +8 -0
  135. package/dist/Table/hooks/useSelection.d.ts +17 -0
  136. package/dist/Table/hooks/useTable.d.ts +7 -0
  137. package/dist/Table/treeUtil.d.ts +39 -0
  138. package/dist/Table/typings.d.ts +137 -1
  139. package/dist/Table/util.d.ts +10 -0
  140. package/dist/Tabs/Tabs.js +1 -4
  141. package/dist/Tabs/typings.d.ts +38 -0
  142. package/dist/Tag/Tag.d.ts +1 -1
  143. package/dist/Tag/Tag.js +7 -8
  144. package/dist/Tag/typings.d.ts +10 -0
  145. package/dist/TimeLine/TimeLineItem.js +7 -4
  146. package/dist/TimeLine/typings.d.ts +9 -0
  147. package/dist/TimePicker/TimePicker.js +14 -11
  148. package/dist/TimePicker/TimePickerRange.js +15 -12
  149. package/dist/TimePicker/TimeSpinnerPanel.js +1 -4
  150. package/dist/TimePicker/typings.d.ts +13 -0
  151. package/dist/TimePicker/useTimePicker.d.ts +7 -0
  152. package/dist/Tooltip/Tooltip.js +8 -15
  153. package/dist/Tooltip/TooltipContext.d.ts +1 -0
  154. package/dist/Tooltip/typings.d.ts +14 -1
  155. package/dist/Transfer/List.js +12 -8
  156. package/dist/Transfer/ListItem.d.ts +1 -0
  157. package/dist/Transfer/Transfer.js +11 -7
  158. package/dist/Transfer/typings/index.d.ts +27 -0
  159. package/dist/Transfer/typings/list.d.ts +25 -0
  160. package/dist/Transfer/typings/listBody.d.ts +1 -0
  161. package/dist/Transition/Transition.d.ts +16 -3
  162. package/dist/Transition/Transition.js +6 -4
  163. package/dist/Transition/TransitionGroup.d.ts +59 -0
  164. package/dist/Transition/childMapping.d.ts +23 -0
  165. package/dist/Tree/NodeList.d.ts +3 -0
  166. package/dist/Tree/RCTree.d.ts +15 -0
  167. package/dist/Tree/Tree.d.ts +15 -0
  168. package/dist/Tree/TreeNode.d.ts +7 -0
  169. package/dist/Tree/TreeNode.js +1 -4
  170. package/dist/Tree/contextTypes.d.ts +4 -0
  171. package/dist/Tree/typings.d.ts +3 -0
  172. package/dist/Tree/util.d.ts +17 -0
  173. package/dist/Tree/utils/KeyCode.d.ts +326 -0
  174. package/dist/Tree/utils/conductUtil.d.ts +6 -0
  175. package/dist/Tree/utils/dictUtil.d.ts +1 -0
  176. package/dist/Tree/utils/pickAttrs.d.ts +5 -0
  177. package/dist/Tree/utils/treeUtil.d.ts +25 -1
  178. package/dist/TreeSelect/TreeSelect.js +14 -13
  179. package/dist/TreeSelect/Utils.d.ts +1 -0
  180. package/dist/TreeSelect/typings.d.ts +19 -0
  181. package/dist/Upload/Upload.js +9 -8
  182. package/dist/Upload/UploadList.js +2 -1
  183. package/dist/Upload/typings.d.ts +34 -0
  184. package/dist/Upload/use-handlers.d.ts +1 -0
  185. package/dist/Upload/use-handlers.js +1 -1
  186. package/dist/Util/Math.d.ts +34 -0
  187. package/dist/Util/base.d.ts +22 -0
  188. package/dist/Util/base.js +5 -0
  189. package/dist/Util/shallowEqual.d.ts +11 -0
  190. package/dist/Util/treeUtils.d.ts +8 -0
  191. package/dist/VirtualList/Filler.d.ts +5 -0
  192. package/dist/VirtualList/VirtualList.d.ts +3 -0
  193. package/dist/VirtualList/hooks/useLayoutEffect.d.ts +3 -0
  194. package/dist/VirtualList/utils/algorithmUtil.d.ts +17 -0
  195. package/dist/VirtualList/utils/findDOMNode.d.ts +3 -0
  196. package/dist/hooks/animationPropsUtils.d.ts +12 -0
  197. package/dist/hooks/htmlPropsUtils.d.ts +8 -0
  198. package/dist/hooks/popperPropsUtils.d.ts +12 -0
  199. package/dist/hooks/treePropsUtils.d.ts +12 -0
  200. package/dist/hooks/useChildrenInstance.d.ts +11 -0
  201. package/dist/hooks/useClassNames.d.ts +78 -0
  202. package/dist/hooks/useControlled.d.ts +8 -0
  203. package/dist/hooks/useForceUpdate.d.ts +1 -0
  204. package/dist/index.css +72 -45422
  205. package/dist/index.d.ts +1 -0
  206. package/dist/theme-chalk/build.scss +64 -0
  207. package/dist/theme-chalk/icon/fonts.scss +8 -0
  208. package/dist/theme-chalk/icon/index.scss +0 -9
  209. package/dist/theme-chalk/index.scss +1 -0
  210. package/dist/theme-chalk/link/index.scss +0 -85
  211. package/dist/types/common.d.ts +24 -0
  212. package/dist/types/type.d.ts +5 -0
  213. package/package.json +1 -1
@@ -35,9 +35,20 @@ module.exports = __toCommonJS(Dropdown_exports);
35
35
  var import_classnames = __toESM(require("classnames"));
36
36
  var import_react = __toESM(require("react"));
37
37
  var import_Tooltip = __toESM(require("../Tooltip/Tooltip"));
38
+ var import_Util = require("../Util");
38
39
  var import_hooks = require("../hooks");
39
40
  var import_DropdownContext = require("./DropdownContext");
40
41
  var Dropdown = (props) => {
42
+ props = (0, import_Util.mergeDefaultProps)(
43
+ {
44
+ hideOnClick: true,
45
+ showArrow: true,
46
+ showTimeout: 0,
47
+ hideTimeout: 100,
48
+ trigger: "hover"
49
+ },
50
+ props
51
+ );
41
52
  const {
42
53
  menu,
43
54
  classPrefix = "dropdown",
@@ -94,12 +105,5 @@ var Dropdown = (props) => {
94
105
  }
95
106
  ));
96
107
  };
97
- Dropdown.defaultProps = {
98
- hideOnClick: true,
99
- showArrow: true,
100
- showTimeout: 0,
101
- hideTimeout: 100,
102
- trigger: "hover"
103
- };
104
108
  Dropdown.displayName = "Dropdown";
105
109
  var Dropdown_default = Dropdown;
@@ -1,6 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  interface DropdownContextProps {
3
+ /** 是否在点击菜单项后隐藏菜单 */
3
4
  hideOnClick: boolean;
5
+ /** 点击菜单项触发的事件回调 */
4
6
  onClick: (command: string | number | object) => void;
5
7
  }
6
8
  export declare const DropdownContext: import("react").Context<DropdownContextProps>;
@@ -2,26 +2,41 @@ import React from 'react';
2
2
  import { PopperOptions } from '../Popper';
3
3
  import { TransitionProps } from '../Transition';
4
4
  import { AnimationEventProps, BaseProps, NativeProps } from '../types/common';
5
+ /** Dropdown 属性 */
5
6
  export interface DropdownProps extends BaseProps, NativeProps, PopperOptions, AnimationEventProps, TransitionProps {
6
7
  menu: React.ReactElement<DropdownMenuProps>;
8
+ /** 触发下拉的行为 */
7
9
  trigger?: 'hover' | 'click' | 'contextmenu';
10
+ /** 是否在点击菜单项后隐藏菜单 */
8
11
  hideOnClick?: boolean;
12
+ /** 展开下拉菜单的延时,仅在 trigger 为 hover 时有效 */
9
13
  showTimeout?: number;
14
+ /** 收起下拉菜单的延时(仅在 trigger 为 hover 时有效) */
10
15
  hideTimeout?: number;
16
+ /** 状态是否可见 */
11
17
  visible?: boolean;
18
+ /** 初始值 */
12
19
  defaultVisible?: boolean;
20
+ /** 是否禁用 */
13
21
  disabled?: boolean;
14
22
  onMouseEnter?: (e?: React.MouseEvent<any>) => void;
15
23
  onMouseLeave?: (e?: React.MouseEvent<any>) => void;
24
+ /** 点击菜单项触发的事件回调 */
16
25
  onClick?: (command: string | number | object) => void;
26
+ /** 下拉框出现/隐藏时触发: 出现则为 true,隐藏则为 false */
17
27
  visiblechange?: (visible: boolean) => void;
18
28
  }
19
29
  export interface DropdownMenuProps extends BaseProps, NativeProps {
20
30
  classPrefix?: string;
21
31
  }
32
+ /** Dropdown-Item 属性 */
22
33
  export interface DropdownItemProps extends BaseProps, NativeProps {
34
+ /** 派发到command回调函数的指令参数 */
23
35
  command?: string | number | object;
36
+ /** 是否禁用*/
24
37
  disabled?: boolean;
38
+ /** 是否显示分隔符 */
25
39
  divided?: boolean;
40
+ /** 是否为激活状态 */
26
41
  active?: boolean;
27
42
  }
@@ -37,7 +37,7 @@ var import_react = __toESM(require("react"));
37
37
  var import_hooks = require("../hooks");
38
38
  var import_ImgEmpty = __toESM(require("./ImgEmpty"));
39
39
  var Empty = (props) => {
40
- const { image, imageSize, description } = props;
40
+ const { image, imageSize, description = "暂无数据" } = props;
41
41
  const { b, e } = (0, import_hooks.useClassNames)("empty");
42
42
  const imageStyle = (0, import_react.useMemo)(() => {
43
43
  return {
@@ -54,8 +54,5 @@ var Empty = (props) => {
54
54
  }
55
55
  ) : /* @__PURE__ */ import_react.default.createElement(import_ImgEmpty.default, null)), /* @__PURE__ */ import_react.default.createElement("div", { className: e`description` }, /* @__PURE__ */ import_react.default.createElement("p", null, description)), props.children ? /* @__PURE__ */ import_react.default.createElement("div", { className: e`bottom` }, props.children) : null);
56
56
  };
57
- Empty.defaultProps = {
58
- description: "暂无数据"
59
- };
60
57
  Empty.displayName = "Empty";
61
58
  var Empty_default = Empty;
package/dist/Form/Form.js CHANGED
@@ -35,6 +35,7 @@ module.exports = __toCommonJS(Form_exports);
35
35
  var import_classnames = __toESM(require("classnames"));
36
36
  var import_omit = __toESM(require("lodash/omit"));
37
37
  var import_react = __toESM(require("react"));
38
+ var import_Util = require("../Util");
38
39
  var import_hooks = require("../hooks");
39
40
  var import_FieldContext = __toESM(require("./FieldContext"));
40
41
  var import_FormContext = __toESM(require("./FormContext"));
@@ -44,6 +45,15 @@ var import_useForm = __toESM(require("./useForm"));
44
45
  var import_useWatch = __toESM(require("./useWatch"));
45
46
  var import_valueUtil = require("./utils/valueUtil");
46
47
  var Form = (0, import_react.forwardRef)((props, ref) => {
48
+ props = (0, import_Util.mergeDefaultProps)(
49
+ {
50
+ inline: false,
51
+ cols: 0,
52
+ labelWidth: 120,
53
+ labelPosition: "right"
54
+ },
55
+ props
56
+ );
47
57
  const {
48
58
  colon,
49
59
  inline,
@@ -180,10 +190,4 @@ Form.Item = import_FormItem.default;
180
190
  Form.List = import_List.default;
181
191
  Form.useForm = import_useForm.default;
182
192
  Form.useWatch = import_useWatch.default;
183
- Form.defaultProps = {
184
- inline: false,
185
- cols: 0,
186
- labelWidth: 120,
187
- labelPosition: "right"
188
- };
189
193
  var Form_default = Form;
@@ -9,14 +9,22 @@ interface ChildProps {
9
9
  }
10
10
  export interface InternalFieldProps<Values = any> extends Omit<FormItemProps<Values>, 'children'> {
11
11
  children?: ComponentChildren | ((control: ChildProps, meta: Meta, form: FormInstance<Values>) => React.ReactElement);
12
+ /**
13
+ * Set up `dependencies` field.
14
+ * When dependencies field update and current field is touched,
15
+ * will trigger validate rules and render.
16
+ */
12
17
  dependencies?: NamePath[];
13
18
  getValueFromEvent?: (...args: EventArgs) => StoreValue;
19
+ /** 字段名,支持数组 */
14
20
  name?: InternalNamePath;
15
21
  normalize?: (value: StoreValue, prevValue: StoreValue, allValues: Store) => StoreValue;
22
+ /** 校验规则,设置字段的校验逻辑。点击此处查看示例 */
16
23
  rules?: Rule[];
17
24
  shouldUpdate?: ShouldUpdate<Values>;
18
25
  trigger?: string;
19
26
  validateTrigger?: string | string[] | false;
27
+ /** 当某一规则校验不通过时,是否停止剩下的规则的校验。设置 parallel 时会并行校验 */
20
28
  validateFirst?: boolean | 'parallel';
21
29
  valuePropName?: string;
22
30
  getValueProps?: (value: StoreValue) => Record<string, unknown>;
@@ -27,8 +35,12 @@ export interface InternalFieldProps<Values = any> extends Omit<FormItemProps<Val
27
35
  destroy?: boolean;
28
36
  }) => void;
29
37
  preserve?: boolean;
38
+ /** @private Passed by Form.List props. Do not use since it will break by path check. */
30
39
  isListField?: boolean;
40
+ /** @private Passed by Form.List props. Do not use since it will break by path check. */
31
41
  isList?: boolean;
42
+ /** @private Pass context as prop instead of context api
43
+ * since class component can not get context in constructor */
32
44
  fieldContext?: InternalFormInstance;
33
45
  }
34
46
  export interface FieldProps<Values = any> extends Omit<InternalFieldProps<Values>, 'name' | 'fieldContext'> {
@@ -377,13 +377,15 @@ var Field = class extends import_react.default.Component {
377
377
  };
378
378
  this.getValidateLable = () => {
379
379
  const { errorStyle, warningStyle } = this.props;
380
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_Transition.Transition, { name: (0, import_classUtil.b)("slide-up"), visible: this.errors.length > 0, transitionAppear: true, unmountOnExit: true, display: "" }, /* @__PURE__ */ import_react.default.createElement("label", { className: import_classUtil.e`error`, style: errorStyle }, (0, import_head.default)(this.errors))), /* @__PURE__ */ import_react.default.createElement(import_Transition.Transition, { name: (0, import_classUtil.b)("slide-up"), visible: this.warnings.length > 0, transitionAppear: true, unmountOnExit: true, display: "" }, /* @__PURE__ */ import_react.default.createElement("label", { className: import_classUtil.e`warning`, style: warningStyle }, (0, import_head.default)(this.warnings))));
380
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_Transition.Transition, { nodeRef: this.errorRef, name: (0, import_classUtil.b)("slide-up"), visible: this.errors.length > 0, transitionAppear: true, unmountOnExit: true, display: "" }, /* @__PURE__ */ import_react.default.createElement("label", { ref: this.errorRef, className: import_classUtil.e`error`, style: errorStyle }, (0, import_head.default)(this.errors))), /* @__PURE__ */ import_react.default.createElement(import_Transition.Transition, { nodeRef: this.warningRef, name: (0, import_classUtil.b)("slide-up"), visible: this.warnings.length > 0, transitionAppear: true, unmountOnExit: true, display: "" }, /* @__PURE__ */ import_react.default.createElement("label", { ref: this.warningRef, className: import_classUtil.e`warning`, style: warningStyle }, (0, import_head.default)(this.warnings))));
381
381
  };
382
382
  if (props.fieldContext) {
383
383
  const { getInternalHooks } = props.fieldContext;
384
384
  const { initEntityValue } = getInternalHooks(import_FieldContext.HOOK_MARK);
385
385
  initEntityValue(this);
386
386
  }
387
+ this.warningRef = (0, import_react.createRef)();
388
+ this.errorRef = (0, import_react.createRef)();
387
389
  }
388
390
  componentDidMount() {
389
391
  const { shouldUpdate, fieldContext } = this.props;
@@ -5,12 +5,15 @@ type BaseFormProps = Omit<React.AllHTMLAttributes<HTMLFormElement>, 'onSubmit' |
5
5
  type RenderProps = (values: Store, form: FormInstance) => React.ReactElement;
6
6
  export type FormRules = Record<string, Rule[]>;
7
7
  export interface FormProps<Values = any> extends BaseFormProps {
8
+ /** 经 Form.useForm() 创建的 form 控制实例,不提供时会自动创建 */
8
9
  form?: FormInstance<Values>;
9
10
  children?: RenderProps | ComponentChildren;
10
11
  component?: false | string | FC<any> | ComponentClass<any, any>;
11
12
  fields?: FieldData[];
13
+ /** 表单验证规则 */
12
14
  rules?: FormRules;
13
15
  name?: string;
16
+ /** 验证提示模板 */
14
17
  validateMessages?: ValidateMessages;
15
18
  onValuesChange?: Callbacks<Values>['onValuesChange'];
16
19
  onFieldsChange?: Callbacks<Values>['onFieldsChange'];
@@ -18,31 +21,55 @@ export interface FormProps<Values = any> extends BaseFormProps {
18
21
  onFinishFailed?: Callbacks<Values>['onFinishFailed'];
19
22
  validateTrigger?: string | string[] | false;
20
23
  preserve?: boolean;
24
+ /** 配置 Form.Item 的 colon 的默认值。表示是否显示 label 后面的冒号 */
21
25
  colon?: boolean;
26
+ /** 表单默认值,只有初始化以及重置时生效 */
22
27
  initialValues?: Store;
28
+ /** 表单域标签的位置, 如果值为 left 或者 right 时,则需要设置 label-width */
23
29
  labelPosition?: 'left' | 'right' | 'top';
30
+ /** 表单域标签的宽度,例如 '50px'。 作为 Form 直接子元素的 form-item 会继承该值。 支持 auto。 */
24
31
  labelWidth?: string | number;
32
+ /** 行内表单模式 */
25
33
  inline?: boolean;
34
+ /** 是否宽度100% */
26
35
  flat?: boolean;
36
+ /** 每行列数 */
37
+ /** 是否只读 */
27
38
  disabled?: boolean;
39
+ /** 用于控制该表单内组件的尺寸 */
28
40
  size?: TypeAttributes.Size;
29
41
  onChange?: (model: any) => void;
30
42
  formStyle?: React.CSSProperties;
31
43
  className?: string;
32
44
  }
33
45
  export interface FormItemProps<T> extends BaseProps, NativeProps {
46
+ /**
47
+ * 配合 label 属性使用,表示是否显示 label 后面的冒号
48
+ */
34
49
  colon?: boolean;
50
+ /** label 标签的文本 */
35
51
  label?: boolean | string | React.ReactElement;
52
+ /** 用于控制该表单内组件的尺寸 */
36
53
  size?: TypeAttributes.Size;
54
+ /** 标签的长度,例如 '50px'。 作为 Form 直接子元素的 form-item 会继承该值。 可以使用 auto。 */
37
55
  labelWidth?: string | number;
56
+ /** 必填样式设置。如不设置,则会根据校验规则自动生成 */
38
57
  required?: boolean;
58
+ /** 为 true 时不带样式,作为纯字段控件使用 */
39
59
  noStyle?: boolean;
60
+ /** 校验状态,如不设置,则会根据校验规则自动生成,可选:'success' 'warning' 'error' 'validating' */
40
61
  validateStatus?: 'success' | 'warning' | 'error' | 'validating';
62
+ /** 配置提示信息 */
41
63
  help?: string | React.ReactElement;
64
+ /** 是否标签宽度为0,等用于`labelWidth={0}`,如果同时设置了labelWidth,则此配置无效 */
42
65
  pure?: boolean;
66
+ /** 是否居中 */
43
67
  center?: boolean;
68
+ /** 文本自定义内联样式 */
44
69
  labelStyle?: React.CSSProperties;
70
+ /** 校验失败文本自定义内联样式 */
45
71
  errorStyle?: React.CSSProperties;
72
+ /** 校验警告自定义内联样式 */
46
73
  warningStyle?: React.CSSProperties;
47
74
  }
48
75
  export interface FieldEntity {
@@ -91,6 +118,9 @@ export interface Meta {
91
118
  export interface InternalFieldData extends Meta {
92
119
  value: StoreValue;
93
120
  }
121
+ /**
122
+ * Used by `setFields` config
123
+ */
94
124
  export interface FieldData extends Partial<Omit<InternalFieldData, 'name'>> {
95
125
  name: NamePath;
96
126
  }
@@ -115,6 +145,7 @@ interface BaseRule {
115
145
  transform?: (value: StoreValue) => StoreValue;
116
146
  type?: RuleType;
117
147
  whitespace?: boolean;
148
+ /** Customize rule level `validateTrigger`. Must be subset of Field `validateTrigger` */
118
149
  validateTrigger?: string | string[];
119
150
  phone?: boolean;
120
151
  }
@@ -166,6 +197,10 @@ export interface ValidateOptions {
166
197
  label?: string | boolean | React.ReactElement<{}>;
167
198
  triggerName?: string;
168
199
  validateMessages?: ValidateMessages;
200
+ /**
201
+ * Recursive validate. It will validate all the name path that contains the provided one.
202
+ * e.g. ['a'] will validate ['a'] , ['a', 'b'] and ['a', 1].
203
+ */
169
204
  recursive?: boolean;
170
205
  }
171
206
  export type InternalValidateFields<Values = any> = (nameList?: NamePath[], options?: ValidateOptions) => Promise<Values>;
@@ -189,6 +224,11 @@ interface SetFieldInfo {
189
224
  }
190
225
  interface DependenciesUpdateInfo {
191
226
  type: 'dependenciesUpdate';
227
+ /**
228
+ * Contains all the related `InternalNamePath[]`.
229
+ * a <- b <- c : change `a`
230
+ * relatedFields=[a, b, c]
231
+ */
192
232
  relatedFields: InternalNamePath[];
193
233
  }
194
234
  export type NotifyInfo = ValueUpdateInfo | ValidateFinishInfo | ResetInfo | RemoveInfo | SetFieldInfo | DependenciesUpdateInfo;
@@ -216,6 +256,7 @@ export interface InternalHooks {
216
256
  setPreserve: (preserve?: boolean) => void;
217
257
  getInitialValue: (namePath: InternalNamePath) => StoreValue;
218
258
  }
259
+ /** Only return partial when type is not any */
219
260
  type RecursivePartial<T> = T extends object ? {
220
261
  [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
221
262
  } : any;
@@ -239,15 +280,29 @@ export interface FormInstance<Values = any> {
239
280
  }
240
281
  export type InternalFormInstance = Omit<FormInstance, 'validateFields'> & {
241
282
  validateFields: InternalValidateFields;
283
+ /**
284
+ * Passed by field context props
285
+ */
242
286
  prefixName?: InternalNamePath;
243
287
  validateTrigger?: string | string[] | false;
288
+ /**
289
+ * Form component should register some content into store.
290
+ * We pass the `HOOK_MARK` as key to avoid user call the function.
291
+ */
244
292
  getInternalHooks: (secret: string) => InternalHooks | null;
293
+ /** @private Internal usage. Do not use it in your production */
245
294
  _init?: boolean;
295
+ /** 配置 Form.Item 的 colon 的默认值。表示是否显示 label 后面的冒号 */
246
296
  colon?: boolean;
297
+ /** 是否禁用该表单内的所有组件。 如果设置为 true, 它将覆盖内部组件的 disabled 属性 */
247
298
  disabled?: boolean;
299
+ /** 表单域标签的位置, 如果值为 left 或者 right 时,则需要设置 label-width */
248
300
  labelPosition?: 'left' | 'right' | 'top';
301
+ /** 标签宽度,例如 '50px'。 可以使用 auto。 */
249
302
  labelWidth?: string | number;
303
+ /** 用于控制该表单域下组件的默认尺寸 */
250
304
  size?: TypeAttributes.Size;
305
+ /** 表单验证规则 */
251
306
  rules?: FormRules;
252
307
  };
253
308
  export type EventArgs = any[];
@@ -26,7 +26,14 @@ export declare class FormStore {
26
26
  private scrollToField;
27
27
  private getInternalHooks;
28
28
  private useSubscribe;
29
+ /**
30
+ * Record prev Form unmount fieldEntities which config preserve false.
31
+ * This need to be refill with initialValues instead of store value.
32
+ */
29
33
  private prevWithoutPreserves;
34
+ /**
35
+ * First time `setInitialValues` should update store with initial value
36
+ */
30
37
  private setInitialValues;
31
38
  private destroyForm;
32
39
  private getInitialValue;
@@ -39,6 +46,10 @@ export declare class FormStore {
39
46
  private timeoutId;
40
47
  private warningUnhooked;
41
48
  private updateStore;
49
+ /**
50
+ * Get registered field entities.
51
+ * @param pure Only return field which has a `name`. Default: false
52
+ */
42
53
  private getFieldEntities;
43
54
  private getFieldsMap;
44
55
  private getFieldEntitiesForNamePathList;
@@ -51,15 +62,26 @@ export declare class FormStore {
51
62
  private isFieldTouched;
52
63
  private isFieldsValidating;
53
64
  private isFieldValidating;
65
+ /**
66
+ * Reset Field with field `initialValue` prop.
67
+ * Can pass `entities` or `namePathList` or just nothing.
68
+ */
54
69
  private resetWithFieldInitialValue;
55
70
  private resetFields;
56
71
  private setFields;
57
72
  private getFields;
73
+ /**
74
+ * This only trigger when a field is on constructor to avoid we get initialValue too late
75
+ */
58
76
  private initEntityValue;
59
77
  private isMergedPreserve;
60
78
  private registerField;
61
79
  private dispatch;
62
80
  private notifyObservers;
81
+ /**
82
+ * Notify dependencies children with parent update
83
+ * We need delay to trigger validate in case Field is under render props
84
+ */
63
85
  private triggerDependenciesUpdate;
64
86
  private updateValue;
65
87
  private setFieldsValue;
@@ -3,6 +3,9 @@ interface KV<T> {
3
3
  key: InternalNamePath;
4
4
  value: T;
5
5
  }
6
+ /**
7
+ * NameMap like a `Map` but accepts `string[]` as key.
8
+ */
6
9
  declare class NameMap<T> {
7
10
  private kvs;
8
11
  set(key: InternalNamePath, value: T): void;
@@ -1,2 +1,6 @@
1
1
  import type { InternalNamePath, RuleError, RuleObject, StoreValue, ValidateOptions } from '../typings';
2
+ /**
3
+ * We use `async-validator` to validate the value.
4
+ * But only check one value in a time to avoid namePath validate issue.
5
+ */
2
6
  export declare function validateRules(namePath: InternalNamePath, value: StoreValue, rules: RuleObject[], options: ValidateOptions, validateFirst: boolean | 'parallel', messageVariables?: Record<string, string>): Promise<RuleError[]>;
@@ -1,4 +1,11 @@
1
1
  import type { EventArgs, InternalNamePath, NamePath, Store, StoreValue } from '../typings';
2
+ /**
3
+ * Convert name to internal supported format.
4
+ * This function should keep since we still thinking if need support like `a.b.c` format.
5
+ * 'a' => ['a']
6
+ * 123 => [123]
7
+ * ['a', 123] => ['a', 123]
8
+ */
2
9
  export declare function getNamePath(path: NamePath | null): InternalNamePath;
3
10
  export declare function getValue(store: Store, namePath: InternalNamePath): any;
4
11
  export declare function setValue(store: Store, namePath: InternalNamePath, value: StoreValue, removeIfUndefined?: boolean): Store;
@@ -9,6 +16,16 @@ export declare function matchNamePath(namePath: InternalNamePath, changedNamePat
9
16
  type SimilarObject = string | number | {};
10
17
  export declare function isSimilar(source: SimilarObject, target: SimilarObject): boolean;
11
18
  export declare function defaultGetValueFromEvent(valuePropName: string, ...args: EventArgs): any;
19
+ /**
20
+ * Moves an array item from one position in an array to another.
21
+ *
22
+ * Note: This is a pure function so a new array will be returned, instead
23
+ * of altering the array argument.
24
+ *
25
+ * @param array Array in which to move an item. (required)
26
+ * @param moveIndex The index of the item to move. (required)
27
+ * @param toIndex The index to move item at moveIndex to. (required)
28
+ */
12
29
  export declare function move<T>(array: T[], moveIndex: number, toIndex: number): T[];
13
30
  export declare function toNamePathStr(name: NamePath): string;
14
31
  export {};
package/dist/Icon/Icon.js CHANGED
@@ -38,7 +38,7 @@ var import_react = __toESM(require("react"));
38
38
  var import_hooks = require("../hooks");
39
39
  var Icon = (0, import_react.memo)(
40
40
  (0, import_react.forwardRef)((props, ref) => {
41
- const { prefix, name, size, rotate, flip, spin, pulse, className, style, onClick, classPrefix = "icon", ...other } = props;
41
+ const { prefix = "far", name, size, rotate, flip, spin, pulse, className, style, onClick, classPrefix = "icon", ...other } = props;
42
42
  const { b } = (0, import_hooks.useClassNames)(classPrefix, "el");
43
43
  const hasFa = (0, import_startsWith.default)(name, "fa-");
44
44
  return /* @__PURE__ */ import_react.default.createElement(
@@ -59,8 +59,5 @@ var Icon = (0, import_react.memo)(
59
59
  );
60
60
  })
61
61
  );
62
- Icon.defaultProps = {
63
- prefix: "far"
64
- };
65
62
  Icon.displayName = "ElIcon";
66
63
  var Icon_default = Icon;
@@ -1,12 +1,19 @@
1
1
  import React from 'react';
2
2
  import { BaseProps, NativeProps } from '../types/common';
3
3
  export interface IconProps extends Omit<React.AllHTMLAttributes<HTMLElement>, 'size' | 'style' | 'className' | 'readOnly' | 'disabled' | 'children'>, BaseProps, NativeProps {
4
+ /** 图标前缀,定义图标字体粗细 */
4
5
  prefix?: IconPrefix;
6
+ /** 图标名称 */
5
7
  name: IconName;
8
+ /** 图标大小 */
6
9
  size?: IconSize;
10
+ /** 图标是否旋转 */
7
11
  rotate?: Rotate;
12
+ /** 图标是否翻转 */
8
13
  flip?: Flip;
14
+ /** 是否动画 */
9
15
  spin?: boolean;
16
+ /** 是否8方向旋转 */
10
17
  pulse?: boolean;
11
18
  }
12
19
  export type SvgIconProps = Omit<IconProps, 'name'>;
@@ -44,6 +44,16 @@ var import_InputGroup = __toESM(require("./InputGroup"));
44
44
  var import_InputRange = __toESM(require("./InputRange"));
45
45
  var import_TextArea = __toESM(require("./TextArea"));
46
46
  function InternalInput(props, ref) {
47
+ props = (0, import_Util.mergeDefaultProps)(
48
+ {
49
+ type: "text",
50
+ placeholder: "请输入",
51
+ clearable: true,
52
+ debounceTime: 200,
53
+ defaultValue: ""
54
+ },
55
+ props
56
+ );
47
57
  const {
48
58
  name,
49
59
  title,
@@ -277,12 +287,16 @@ function InternalInput(props, ref) {
277
287
  onInput: handleInput,
278
288
  onClick: props.onClick,
279
289
  onFocus: (event) => {
280
- (0, import_dom_lib.addClass)(contentRef.current, is("focus"));
290
+ if (contentRef.current) {
291
+ (0, import_dom_lib.addClass)(contentRef.current, is("focus"));
292
+ }
281
293
  showClear(value);
282
294
  onFocus == null ? void 0 : onFocus.call(this, event);
283
295
  },
284
296
  onBlur: (event) => {
285
- (0, import_dom_lib.removeClass)(contentRef.current, is("focus"));
297
+ if (contentRef.current) {
298
+ (0, import_dom_lib.removeClass)(contentRef.current, is("focus"));
299
+ }
286
300
  hideClear();
287
301
  onBlur == null ? void 0 : onBlur.call(this, event);
288
302
  },
@@ -380,12 +394,5 @@ var ForwardInput = (0, import_react.forwardRef)(InternalInput);
380
394
  var Input = ForwardInput;
381
395
  Input.TextArea = import_TextArea.default;
382
396
  Input.Range = import_InputRange.default;
383
- Input.defaultProps = {
384
- type: "text",
385
- placeholder: "请输入",
386
- clearable: true,
387
- debounceTime: 200,
388
- defaultValue: ""
389
- };
390
397
  Input.displayName = "ElInput";
391
398
  var Input_default = Input;
@@ -46,6 +46,17 @@ var import_hooks = require("../hooks");
46
46
  var import_prefix = require("../hooks/prefix");
47
47
  var import_InputGroup = __toESM(require("./InputGroup"));
48
48
  var InputRange = (0, import_react.forwardRef)((props, ref) => {
49
+ props = (0, import_Util.mergeDefaultProps)(
50
+ {
51
+ name: ["", ""],
52
+ startPlaceholder: "请输入",
53
+ endPlaceholder: "请输入",
54
+ type: "text",
55
+ clearable: true,
56
+ rangeSeparator: "到"
57
+ },
58
+ props
59
+ );
49
60
  const {
50
61
  name,
51
62
  clearable,
@@ -341,13 +352,5 @@ var InputRange = (0, import_react.forwardRef)((props, ref) => {
341
352
  return content;
342
353
  }
343
354
  });
344
- InputRange.defaultProps = {
345
- name: ["", ""],
346
- startPlaceholder: "请输入",
347
- endPlaceholder: "请输入",
348
- type: "text",
349
- clearable: true,
350
- rangeSeparator: "到"
351
- };
352
355
  InputRange.displayName = "InputRange";
353
356
  var InputRange_default = InputRange;
@@ -34,8 +34,16 @@ __export(TextArea_exports, {
34
34
  module.exports = __toCommonJS(TextArea_exports);
35
35
  var import_classnames = __toESM(require("classnames"));
36
36
  var import_react = __toESM(require("react"));
37
+ var import_Util = require("../Util");
37
38
  var import_hooks = require("../hooks");
38
39
  var TextArea = (0, import_react.forwardRef)((props, ref) => {
40
+ props = (0, import_Util.mergeDefaultProps)(
41
+ {
42
+ placeholder: "请输入",
43
+ style: { width: "100%" }
44
+ },
45
+ props
46
+ );
39
47
  const { name, title, error, placeholder, readOnly, plain, rows, classPrefix = "textarea", onFocus, onBlur, onChange, warning, maxLength, showWordLimit, ...rest } = props;
40
48
  const { b, m, e, is } = (0, import_hooks.useClassNames)(classPrefix);
41
49
  const [value, setValue] = (0, import_hooks.useControlled)(props.value, props.defaultValue);
@@ -110,9 +118,5 @@ var TextArea = (0, import_react.forwardRef)((props, ref) => {
110
118
  }
111
119
  ), maxLength && showWordLimit ? /* @__PURE__ */ import_react.default.createElement("span", { className: e`count` }, typeof value === "string" ? value.length : 0, " / ", maxLength) : null);
112
120
  });
113
- TextArea.defaultProps = {
114
- placeholder: "请输入",
115
- style: { width: "100%" }
116
- };
117
121
  TextArea.displayName = "TextArea";
118
122
  var TextArea_default = TextArea;