@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
@@ -3,8 +3,20 @@ import { TreeNodeProps } from '../TreeNode';
3
3
  import { BasicDataNode, DataEntity, DataNode, EventDataNode, FieldNames, FlattenNode, GetKey, Key } from '../typings';
4
4
  export declare function getKey(key: Key, pos: string): Key;
5
5
  export declare function fillFieldNames(fieldNames?: FieldNames): Required<FieldNames>;
6
+ /**
7
+ * Warning if TreeNode do not provides key
8
+ */
6
9
  export declare function warningWithoutKey(treeData: DataNode[], fieldNames: FieldNames): void;
10
+ /**
11
+ * Convert `children` of Tree into `treeData` structure.
12
+ */
7
13
  export declare function convertTreeToData<T = DataNode>(rootNodes: React.ReactElement): T[];
14
+ /**
15
+ * Flat nest tree data into flatten list. This is used for virtual list render.
16
+ * @param treeNodeList Origin data node list
17
+ * @param expandedKeys
18
+ * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).
19
+ */
8
20
  export declare function flattenTreeData(treeNodeList: DataNode[], expandedKeys: Key[] | true, fieldNames: FieldNames): FlattenNode[];
9
21
  type ExternalGetKey = GetKey<DataNode> | string;
10
22
  interface TraverseDataNodesConfig {
@@ -12,6 +24,10 @@ interface TraverseDataNodesConfig {
12
24
  externalGetKey?: ExternalGetKey;
13
25
  fieldNames?: FieldNames;
14
26
  }
27
+ /**
28
+ * Traverse all the data by `treeData`.
29
+ * Please not use it out of the `rc-tree` since we may refactor this code.
30
+ */
15
31
  export declare function traverseDataNodes<T = DataNode>(dataNodes: T[], callback: (data: {
16
32
  node: T;
17
33
  index: number;
@@ -25,6 +41,9 @@ interface Wrapper {
25
41
  posEntities: Record<string, DataEntity>;
26
42
  keyEntities: Record<Key, DataEntity>;
27
43
  }
44
+ /**
45
+ * Convert `treeData` into entity records.
46
+ */
28
47
  export declare function convertDataToEntities<T = DataNode>(dataNodes: T[], { initWrapper, processEntity, onProcessFinished, externalGetKey, childrenPropName, fieldNames, }?: {
29
48
  initWrapper?: (wrapper: Wrapper) => Wrapper;
30
49
  processEntity?: (entity: DataEntity, wrapper: Wrapper) => void;
@@ -32,7 +51,9 @@ export declare function convertDataToEntities<T = DataNode>(dataNodes: T[], { in
32
51
  externalGetKey?: ExternalGetKey;
33
52
  childrenPropName?: string;
34
53
  fieldNames?: FieldNames;
35
- }, legacyExternalGetKey?: ExternalGetKey): {
54
+ },
55
+ /** @deprecated Use `config.externalGetKey` instead */
56
+ legacyExternalGetKey?: ExternalGetKey): {
36
57
  posEntities: {};
37
58
  keyEntities: {};
38
59
  };
@@ -47,6 +68,9 @@ export interface TreeNodeRequiredProps<TreeDataType extends BasicDataNode = Data
47
68
  dropPosition: number;
48
69
  keyEntities: Record<Key, DataEntity<TreeDataType>>;
49
70
  }
71
+ /**
72
+ * Get TreeNode props with Tree props.
73
+ */
50
74
  export declare function getTreeNodeProps<TreeDataType extends BasicDataNode = DataNode>(key: Key, { expandedKeys, selectedKeys, loadedKeys, loadingKeys, checkedKeys, halfCheckedKeys, dragOverNodeKey, dropPosition, keyEntities }: TreeNodeRequiredProps<TreeDataType>): {
51
75
  eventKey: Key;
52
76
  expanded: boolean;
@@ -51,6 +51,20 @@ var import_Util = require("../Util");
51
51
  var import_hooks = require("../hooks");
52
52
  var import_Utils = require("./Utils");
53
53
  function InternalTreeSelect(props, ref) {
54
+ props = {
55
+ clearable: true,
56
+ collapseTags: true,
57
+ checkStrictly: true,
58
+ disabled: false,
59
+ selectable: true,
60
+ filterable: true,
61
+ placeholder: "请选择",
62
+ noDataText: "无数据",
63
+ loadingText: /* @__PURE__ */ import_react.default.createElement("span", null, /* @__PURE__ */ import_react.default.createElement(import_Icon.Icon, { prefix: "fas", name: "spinner", spin: true }), " 加载中..."),
64
+ fieldNames: { title: "title", key: "key", children: "children" },
65
+ onBeforeClick: () => true,
66
+ ...props
67
+ };
54
68
  const {
55
69
  placeholder,
56
70
  clearable,
@@ -504,18 +518,5 @@ function InternalTreeSelect(props, ref) {
504
518
  }
505
519
  var ForwardTreeSelect = (0, import_react.forwardRef)(InternalTreeSelect);
506
520
  var TreeSelect = ForwardTreeSelect;
507
- TreeSelect.defaultProps = {
508
- clearable: true,
509
- collapseTags: true,
510
- checkStrictly: true,
511
- disabled: false,
512
- selectable: true,
513
- filterable: true,
514
- placeholder: "请选择",
515
- noDataText: "无数据",
516
- loadingText: /* @__PURE__ */ import_react.default.createElement("span", null, /* @__PURE__ */ import_react.default.createElement(import_Icon.Icon, { prefix: "fas", name: "spinner", spin: true }), " 加载中..."),
517
- fieldNames: { title: "title", key: "key", children: "children" },
518
- onBeforeClick: () => true
519
- };
520
521
  TreeSelect.displayName = "TreeSelect";
521
522
  var TreeSelect_default = TreeSelect;
@@ -1,2 +1,3 @@
1
1
  import { DataNode } from '../Tree';
2
+ /** 单选不可选父级 */
2
3
  export declare const parentNotSelectable: (treeData?: DataNode[]) => DataNode<any>[];
@@ -16,25 +16,44 @@ export type TreeSelectRef = {
16
16
  setVisible: (value: boolean) => void;
17
17
  };
18
18
  export interface TreeSelectProps<T = DataNode, V = ValueType> extends Omit<FormControlBaseProps<V>, 'onChange'>, Omit<TreeProps<T>, 'children' | 'style'>, Omit<BaseProps, 'children'>, NativeProps, AnimationEventProps {
19
+ /** 表单提交给后台表示节点名称的name */
19
20
  labelName?: string;
21
+ /** 是否可以清空选项 */
20
22
  clearable?: boolean;
23
+ /** 占位符 */
21
24
  placeholder?: string;
22
25
  filterable?: boolean;
26
+ /** 选择任意级别 */
23
27
  checkStrictly?: boolean;
28
+ /** 多选时是否将选中值按文字的形式展示 */
24
29
  collapseTags?: boolean;
30
+ /** 是否纯文本模式,即无边框 */
25
31
  plain?: boolean;
32
+ /** */
26
33
  required?: boolean;
34
+ /** 下拉项最大宽度 */
27
35
  maxWidth?: number;
36
+ /** 表单校验错误提示 */
28
37
  error?: boolean;
38
+ /** 表单校验警告提示 */
29
39
  warning?: boolean;
40
+ /** 表是否加载中 */
30
41
  loading?: boolean;
42
+ /** 输入框前置内容,只对 type="text" 有效 */
31
43
  prepend?: React.ReactElement<any> | string | number;
44
+ /** 输入框后置内容,只对 type="text" 有效 */
32
45
  append?: React.ReactElement | string | number;
46
+ /** 选项为空时显示的文字 */
33
47
  noDataText?: React.ReactElement | string;
48
+ /** 远程加载时显示的文字 */
34
49
  loadingText?: React.ReactElement | string;
50
+ /** 点击节点前的回调,返回true触发onClick事件和onSelect事件 */
35
51
  onBeforeClick?: (node: T, event: React.MouseEvent<any>) => boolean;
52
+ /** 点击节点事件 */
36
53
  onClickNode?: (node: T, event: React.MouseEvent<any>) => boolean;
54
+ /** 选中值发生变化时触发 */
37
55
  onChange?: (value: ValueType | Key[], label?: string | string[]) => void;
56
+ /** 数据加载成功时调用 */
38
57
  onLoadSuccess?: (value: ValueType | Key[], label?: string[]) => void;
39
58
  }
40
59
  export type SelectInfo<T> = {
@@ -41,6 +41,15 @@ var import_UploadList = __toESM(require("./UploadList"));
41
41
  var import_use_handlers = require("./use-handlers");
42
42
  var Upload = (0, import_react.memo)(
43
43
  (0, import_react.forwardRef)((props, ref) => {
44
+ props = {
45
+ action: "#",
46
+ method: "post",
47
+ name: "file",
48
+ showFileList: true,
49
+ listType: "text",
50
+ autoUpload: true,
51
+ ...props
52
+ };
44
53
  const { listType, accept, onPreview, showFileList, formatter, trigger, tip } = props;
45
54
  const uploadRef = (0, import_react.useRef)(null);
46
55
  const disabled = (0, import_hooks.useDisabled)(props.disabled);
@@ -97,13 +106,5 @@ var Upload = (0, import_react.memo)(
97
106
  )));
98
107
  })
99
108
  );
100
- Upload.defaultProps = {
101
- action: "#",
102
- method: "post",
103
- name: "file",
104
- showFileList: true,
105
- listType: "text",
106
- autoUpload: true
107
- };
108
109
  Upload.displayName = "ElUpload";
109
110
  var Upload_default = Upload;
@@ -42,13 +42,14 @@ var UploadList = (props) => {
42
42
  const { listType, files = [], handlePreview, onRemove, formatter, append } = props;
43
43
  const { b, bm, be, is } = (0, import_hooks.useClassNames)("upload");
44
44
  const disabled = (0, import_hooks.useDisabled)(props.disabled);
45
+ const nodeRef = (0, import_react.useRef)(null);
45
46
  const handleRemove = (0, import_react.useCallback)(
46
47
  (file) => {
47
48
  onRemove == null ? void 0 : onRemove(file);
48
49
  },
49
50
  [onRemove]
50
51
  );
51
- return /* @__PURE__ */ import_react.default.createElement("ul", { className: (0, import_classnames.default)(b`list`, bm("list", listType), is({ disabled })) }, files.map((file, i) => /* @__PURE__ */ import_react.default.createElement(import_Transition.Transition, { key: `tr_${file.uid || file.name}${i}`, name: b("list", false), visible: true, transitionAppear: true, unmountOnExit: true, display: "" }, /* @__PURE__ */ import_react.default.createElement("li", { key: `${file.uid || file.name}${i}`, className: (0, import_classnames.default)(
52
+ return /* @__PURE__ */ import_react.default.createElement("ul", { className: (0, import_classnames.default)(b`list`, bm("list", listType), is({ disabled })) }, files.map((file, i) => /* @__PURE__ */ import_react.default.createElement(import_Transition.Transition, { nodeRef, key: `tr_${file.uid || file.name}${i}`, name: b("list", false), visible: true, transitionAppear: true, unmountOnExit: true, display: "" }, /* @__PURE__ */ import_react.default.createElement("li", { ref: nodeRef, key: `${file.uid || file.name}${i}`, className: (0, import_classnames.default)(
52
53
  be("list", "item"),
53
54
  is(file.status)
54
55
  /* , { focusing } */
@@ -1,38 +1,64 @@
1
1
  import React from 'react';
2
2
  import { BaseProps, NativeProps } from '../types/common';
3
3
  export interface UploadBaseProps {
4
+ /** 请求 URL */
4
5
  action: string;
6
+ /** 设置上传的请求头部 */
5
7
  headers?: Headers | Record<string, any>;
8
+ /** 设置上传请求方法 */
6
9
  method?: 'post' | 'get';
10
+ /** 是否支持多选文件 */
7
11
  multiple?: boolean;
12
+ /** 上传时附带的额外参数 */
8
13
  data?: Record<string, any> | ((rawFile: UploadRawFile) => Promise<Record<string, any>>) | ((rawFile: UploadRawFile) => Record<string, any>);
14
+ /** 上传的文件字段名 */
9
15
  name?: string;
16
+ /** 是否启用拖拽上传 */
10
17
  drag?: boolean;
18
+ /** 支持发送 cookie 凭证信息 */
11
19
  withCredentials?: boolean;
20
+ /** 是否显示已上传文件列表 */
12
21
  showFileList?: boolean;
22
+ /** 接受上传的文件类型 */
13
23
  accept?: string;
14
24
  type?: string;
25
+ /** 默认上传文件 */
15
26
  fileList?: UploadUserFile[];
27
+ /** 文件列表的类型 */
16
28
  listType?: 'text' | 'picture' | 'picture-card';
29
+ /** 是否自动上传文件 */
17
30
  autoUpload?: boolean;
31
+ /** 覆盖默认的 Xhr 行为,允许自行实现上传文件的请求 */
18
32
  httpRequest?: (options: UploadRequestOptions) => XMLHttpRequest | Promise<unknown>;
33
+ /** 是否禁用上传 */
19
34
  disabled?: boolean;
35
+ /** 允许上传文件的最大数量 */
20
36
  limit?: number;
21
37
  }
22
38
  export interface UploadHooks {
39
+ /** 上传文件之前的钩子,参数为上传的文件, 若返回false或者返回 Promise 且被 reject,则停止上传。 */
23
40
  beforeUpload?: (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
41
+ /** 删除文件之前的钩子,参数为上传的文件和文件列表, 若返回 false 或者返回 Promise 且被 reject,则停止删除。 */
24
42
  beforeRemove?: (uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>;
43
+ /** 文件列表移除文件时的钩子 */
25
44
  onRemove?: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
45
+ /** 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用 */
26
46
  onChange?: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
47
+ /** 点击文件列表中已上传的文件时的钩子 */
27
48
  onPreview?: (uploadFile: UploadFile) => void;
49
+ /** 文件上传成功时的钩子 */
28
50
  onSuccess?: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
51
+ /** 文件上传时的钩子 */
29
52
  onProgress?: (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
53
+ /** 文件上传失败时的钩子 */
30
54
  onError?: (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
55
+ /** 当超出限制时,执行的钩子函数 */
31
56
  onExceed?: (files: File[], uploadFiles: UploadUserFile[]) => void;
32
57
  }
33
58
  export interface UploadContentProps extends UploadBaseProps, BaseProps {
34
59
  beforeUpload?: UploadHooks['beforeUpload'];
35
60
  onRemove?: (file: UploadFile | UploadRawFile) => void;
61
+ /** 手动选择文件 */
36
62
  onStart?: (rawFile: UploadRawFile) => void;
37
63
  onSuccess?: (response: any, rawFile: UploadRawFile) => unknown;
38
64
  onProgress?: (evt: UploadProgressEvent, rawFile: UploadRawFile) => void;
@@ -44,15 +70,23 @@ export interface UploadContentRef {
44
70
  upload: (rawFile: UploadRawFile) => Promise<void>;
45
71
  }
46
72
  export interface UploadRef {
73
+ /** 取消上传请求 */
47
74
  abort: (file?: UploadFile) => void;
75
+ /** 手动上传文件列表 */
48
76
  submit: () => void;
77
+ /** 清空已上传的文件列表(该方法不支持在 before-upload 中调用) */
49
78
  clearFiles: (status?: Array<'ready' | 'uploading' | 'success' | 'fail'>) => void;
79
+ /** 手动选择文件 */
50
80
  handleStart: (rawFile: UploadRawFile) => void;
81
+ /** 手动移除文件。 file 和rawFile 已被合并。 rawFile 将在 v2.2.0 中移除 */
51
82
  handleRemove: (file: UploadFile | UploadRawFile) => void;
52
83
  }
53
84
  export interface UploadProps extends UploadBaseProps, UploadHooks, BaseProps, NativeProps {
85
+ /** 缩略图模板的内容 */
54
86
  formatter?: (file: UploadFile) => React.ReactElement;
87
+ /** 触发文件选择框的内容 */
55
88
  trigger?: React.ReactElement;
89
+ /** 提示说明文字 */
56
90
  tip?: React.ReactElement;
57
91
  }
58
92
  export interface UploadListProps {
@@ -3,6 +3,7 @@ import { UploadContentRef, UploadFile, UploadFiles, UploadProps, UploadRawFile,
3
3
  export declare const useHandlers: (props: Omit<UploadProps, 'fileList'> & {
4
4
  fileList: UploadFiles;
5
5
  }, uploadRef: RefObject<UploadContentRef | undefined>) => {
6
+ /** @description two-way binding ref from props `fileList` */
6
7
  uploadFiles: UploadFiles;
7
8
  setUploadFiles: (value: UploadFiles) => void;
8
9
  abort: (file: UploadFile) => void;
@@ -43,7 +43,7 @@ var revokeObjectURL = (file) => {
43
43
  }
44
44
  };
45
45
  var useHandlers = (props, uploadRef) => {
46
- const { fileList, listType, onError, onChange, onProgress, onSuccess, beforeRemove, onRemove } = props;
46
+ const { fileList, listType = "text", onError, onChange, onProgress, onSuccess, beforeRemove, onRemove } = props;
47
47
  const uploadFilesRef = (0, import_react.useRef)();
48
48
  const [uploadFiles, setUploadFiles, isControlled] = (0, import_hooks.useControlled)(fileList, []);
49
49
  const { forceUpdate } = (0, import_hooks.useForceUpdate)();
@@ -1,5 +1,39 @@
1
+ /**
2
+ * 乘法 - js运算精度丢失问题
3
+ * @param arg1 数1
4
+ * @param arg2 数2
5
+ * 0.0023 * 100 ==> 0.22999999999999998
6
+ * {{ 0.0023 | multiply(100) }} ==> 0.23
7
+ */
1
8
  export declare function floatMultiply(arg1: number | string, arg2: number | string): number;
9
+ /**
10
+ * 除法 - js运算精度丢失问题
11
+ * @param arg1 数1
12
+ * @param arg2 数2
13
+ * 0.0023 / 0.00001 ==> 229.99999999999997
14
+ * {{ 0.0023 | divide(0.00001) }} ==> 230
15
+ */
2
16
  export declare function floatDivide(arg1: number | string, arg2: number | string): number;
17
+ /**
18
+ * 加法 - js运算精度丢失问题
19
+ * @param arg1 数1
20
+ * @param arg2 数2
21
+ * 0.0023 + 0.00000000000001 ==> 0.0023000000000099998
22
+ * {{ 0.0023 | plus(0.00000000000001) }} ==> 0.00230000000001
23
+ */
3
24
  export declare function floatAdd(arg1: string | number, arg2: string | number): number;
25
+ /**
26
+ * 减法 - js运算精度丢失问题
27
+ * @param arg1 数1
28
+ * @param arg2 数2
29
+ * 0.0023 - 0.00000011 ==> 0.0022998899999999997
30
+ * {{ 0.0023 | minus( 0.00000011 ) }} ==> 0.00229989
31
+ */
4
32
  export declare function floatSub(arg1: string | number, arg2: string | number): number;
33
+ /**
34
+ * 格式化数字,带精度
35
+ * @param value 数字
36
+ * @param precision 精度
37
+ * @returns
38
+ */
5
39
  export declare const formatNumber: (value: number, precision: number) => string;
@@ -1,8 +1,29 @@
1
+ /**
2
+ * 判断对象是否为空
3
+ * @param {Object} val 被判断的对象
4
+ * @returns {Boolean} 返回true或false
5
+ */
1
6
  export declare function isEmpty(val: any): boolean;
7
+ /**
8
+ * 判断对象是否不为空
9
+ * @param {Object} val 被判断的对象
10
+ * @returns {Boolean} 返回true或false
11
+ */
2
12
  export declare function isNotEmpty(val: any): boolean;
13
+ /**
14
+ * 随机序列,包含数字和字母
15
+ * @param {Number} n 序列的个数
16
+ * @returns {String} 返回序列
17
+ */
3
18
  export declare function randomCode(n: number): string;
4
19
  export declare function getScrollWidth(elem: HTMLElement): number;
5
20
  export declare function warning(valid: boolean, message: string): void;
21
+ /**
22
+ * 创建隐形表单下载方法
23
+ * @param url 下载地址
24
+ * @param params 参数列表
25
+ * @param pther method:请求方式,target:是否新窗口
26
+ */
6
27
  export declare const download: (url: string, params: {
7
28
  name: string;
8
29
  value: string;
@@ -17,3 +38,4 @@ export declare const isNumber: (val: any) => val is number;
17
38
  export declare const isString: (val: any) => boolean;
18
39
  export declare const isStringNumber: (val: string) => boolean;
19
40
  export declare function addUnit(value?: string | number, defaultUnit?: string): string;
41
+ export declare function mergeDefaultProps<T extends object>(defaultProps: Partial<T>, props: T): T;
package/dist/Util/base.js CHANGED
@@ -40,6 +40,7 @@ __export(base_exports, {
40
40
  isString: () => isString,
41
41
  isStringNumber: () => isStringNumber,
42
42
  isUndefined: () => isUndefined,
43
+ mergeDefaultProps: () => mergeDefaultProps,
43
44
  randomCode: () => randomCode,
44
45
  warning: () => warning
45
46
  });
@@ -203,6 +204,9 @@ function addUnit(value, defaultUnit = "px") {
203
204
  return value;
204
205
  }
205
206
  }
207
+ function mergeDefaultProps(defaultProps = {}, props) {
208
+ return { ...defaultProps, ...props ?? {} };
209
+ }
206
210
  // Annotate the CommonJS export names for ESM import in node:
207
211
  0 && (module.exports = {
208
212
  addUnit,
@@ -216,6 +220,7 @@ function addUnit(value, defaultUnit = "px") {
216
220
  isString,
217
221
  isStringNumber,
218
222
  isUndefined,
223
+ mergeDefaultProps,
219
224
  randomCode,
220
225
  warning
221
226
  });
@@ -1,2 +1,13 @@
1
+ /**
2
+ * From: https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/shallowEqual.js
3
+ * @providesModule shallowEqual
4
+ * @typechecks
5
+ * @flow
6
+ */
7
+ /**
8
+ * Performs equality by iterating through keys on an object and returning false
9
+ * when any key has values which are not strictly equal between the arguments.
10
+ * Returns true when the values of all keys are strictly equal.
11
+ */
1
12
  declare function shallowEqual(objA: any, objB: any): boolean;
2
13
  export default shallowEqual;
@@ -3,5 +3,13 @@ interface FieldNames {
3
3
  parentIdKey?: string;
4
4
  childrenKey?: string;
5
5
  }
6
+ /**
7
+ * 非递归实现
8
+ * 每一项都有parentId,根元素
9
+ * @param list
10
+ * @param rootId 根元素id
11
+ * @param param2 可配晋参数
12
+ * @returns
13
+ */
6
14
  export declare const generateTree: <T>(list: T[], rootId: string | number, { idKey, parentIdKey, childrenKey }?: FieldNames) => T[];
7
15
  export {};
@@ -2,10 +2,15 @@ import React from 'react';
2
2
  import { ComponentChildren } from '../types/common';
3
3
  interface FillerProps {
4
4
  prefixCls?: string;
5
+ /** Virtual filler height. Should be `count * itemMinHeight` */
5
6
  height: number;
7
+ /** Set offset of visible items. Should be the top of start item position */
6
8
  offset?: number;
7
9
  children: ComponentChildren;
8
10
  onInnerResize?: () => void;
9
11
  }
12
+ /**
13
+ * Fill component to provided the scroll content real height.
14
+ */
10
15
  declare const Filler: React.ForwardRefExoticComponent<FillerProps & React.RefAttributes<HTMLDivElement>>;
11
16
  export default Filler;
@@ -21,11 +21,14 @@ export interface ListProps<T = any> extends Omit<React.AllHTMLAttributes<any>, '
21
21
  height?: number;
22
22
  itemHeight?: number;
23
23
  style?: React.CSSProperties;
24
+ /** If not match virtual scroll condition, Set List still use height of container. */
24
25
  fullHeight?: boolean;
25
26
  itemKey: Key | ((item: T) => Key);
26
27
  component?: string | FC<any> | ComponentClass<any>;
28
+ /** Set `false` will always use real scroll instead of virtual one */
27
29
  virtual?: boolean;
28
30
  onScroll?: React.UIEventHandler<HTMLElement>;
31
+ /** Trigger when render list item changed */
29
32
  onVisibleChange?: (visibleList: T[], fullList: T[]) => void;
30
33
  }
31
34
  export declare function RawList<T>(props: ListProps<T>, ref: Ref<ListRef>): React.JSX.Element;
@@ -1,3 +1,6 @@
1
1
  import { useEffect } from 'react';
2
+ /**
3
+ * Wrap `useLayoutEffect` which will not throw warning message in test env
4
+ */
2
5
  declare const useLayoutEffect: typeof useEffect;
3
6
  export default useLayoutEffect;
@@ -1,5 +1,22 @@
1
1
  import { Key } from 'react';
2
+ /**
3
+ * Get index with specific start index one by one. e.g.
4
+ * min: 3, max: 9, start: 6
5
+ *
6
+ * Return index is:
7
+ * [0]: 6
8
+ * [1]: 7
9
+ * [2]: 5
10
+ * [3]: 8
11
+ * [4]: 4
12
+ * [5]: 9
13
+ * [6]: 3
14
+ */
2
15
  export declare function getIndexByStartLoc(min: number, max: number, start: number, index: number): number;
16
+ /**
17
+ * We assume that 2 list has only 1 item diff and others keeping the order.
18
+ * So we can use dichotomy algorithm to find changed one.
19
+ */
3
20
  export declare function findListDiffIndex<T>(originList: T[], targetList: T[], getKey: (item: T) => Key): {
4
21
  index: number;
5
22
  multiple: boolean;
@@ -1,2 +1,5 @@
1
1
  import React from 'react';
2
+ /**
3
+ * Return if a node is a DOM node. Else will return by `findDOMNode`
4
+ */
2
5
  export default function findDOMNode<T = Element | Text>(node: React.ReactElement | HTMLElement): T;
@@ -1,3 +1,15 @@
1
1
  import { TransitionProps } from '../Transition';
2
2
  export declare const animationAllProps: string[];
3
+ /**
4
+ * Returns an array of objects consisting of: props of html input element and rest.
5
+ * @author Parker
6
+ * @CreateTime 2022/4/8 17:46:40
7
+ * @LastEditor Parker
8
+ * @ModifyTime 2022/4/22 15:38:45
9
+ * @param {object} props A ReactElement props object
10
+ * @param {Object} [options={}]
11
+ * @param {Array} [options.htmlProps] An array of html input props
12
+ * @param {boolean} [options.includeAria] Includes all input props that starts with "aria-"
13
+ * @returns {[{}, {}]} An array of objects
14
+ */
3
15
  export declare const partitionAnimationProps: (props: any, options?: any) => [TransitionProps, any];
@@ -2,4 +2,12 @@ import React from 'react';
2
2
  export declare const htmlInputAttrs: string[];
3
3
  export declare const htmlInputEvents: string[];
4
4
  export declare const htmlInputProps: string[];
5
+ /**
6
+ * Returns an array of objects consisting of: props of html input element and rest.
7
+ * @param {object} props A ReactElement props object
8
+ * @param {Object} [options={}]
9
+ * @param {Array} [options.htmlProps] An array of html input props
10
+ * @param {boolean} [options.includeAria] Includes all input props that starts with "aria-"
11
+ * @returns {[{}, {}]} An array of objects
12
+ */
5
13
  export declare const partitionHTMLProps: (props: any, options?: any) => [React.AllHTMLAttributes<any>, any];
@@ -1,3 +1,15 @@
1
1
  import { PopperProps } from '../Popper';
2
2
  export declare const popperAllProps: string[];
3
+ /**
4
+ * Returns an array of objects consisting of: props of html input element and rest.
5
+ * @author Parker
6
+ * @CreateTime 2022/4/8 17:46:40
7
+ * @LastEditor Parker
8
+ * @ModifyTime 2025/2/22 11:48:08
9
+ * @param {object} props A ReactElement props object
10
+ * @param {Object} [options={}]
11
+ * @param {Array} [options.htmlProps] An array of html input props
12
+ * @param {boolean} [options.includeAria] Includes all input props that starts with "aria-"
13
+ * @returns {[{}, {}]} An array of objects
14
+ */
3
15
  export declare const partitionPopperPropsUtils: (props: any, options?: any) => [Partial<PopperProps>, any];
@@ -1,3 +1,15 @@
1
1
  import { DirectoryTreeProps } from '../Tree';
2
2
  export declare const treeAllProps: string[];
3
+ /**
4
+ * Returns an array of objects consisting of: props of html input element and rest.
5
+ * @author Parker
6
+ * @CreateTime 2022/4/8 17:46:40
7
+ * @LastEditor Parker
8
+ * @ModifyTime 2022/4/21 10:06:19
9
+ * @param {object} props A ReactElement props object
10
+ * @param {Object} [options={}]
11
+ * @param {Array} [options.htmlProps] An array of html input props
12
+ * @param {boolean} [options.includeAria] Includes all input props that starts with "aria-"
13
+ * @returns {[{}, {}]} An array of objects
14
+ */
3
15
  export declare const partitionTreePropsUtils: (props: any, options?: any) => [DirectoryTreeProps<any>, any];
@@ -1,4 +1,15 @@
1
1
  import React from 'react';
2
2
  import { ComponentChildren } from '../types/common';
3
+ /**
4
+ * 获取特定名称的子组件
5
+ * @author Parker
6
+ * @CreateTime 2022/3/30下午2:08:36
7
+ * @LastEditor Parker
8
+ * @ModifyTime 2022/9/23 14:44:20
9
+ * @param componentChildren 子组件
10
+ * @param compName 目标组件名称 (`displayName`属性)
11
+ * @param virtualCompName 子组件中的需要继续乡下递归查找的组件名称(`displayName`属性)
12
+ * @returns 返回获取组件的函数以供随时调用
13
+ */
3
14
  declare function useChildrenInstance<T, S = T>(compName: string | string[], ...virtualCompName: string[]): (componentChildren: ComponentChildren) => React.ReactElement<S>[];
4
15
  export default useChildrenInstance;