@qsxy/element-plus-react 1.0.1 → 1.0.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 (256) hide show
  1. package/dist/Alert/Alert.d.ts +7 -0
  2. package/dist/Alert/Alert.js +98 -0
  3. package/dist/Alert/index.d.ts +2 -0
  4. package/dist/Alert/index.js +1 -0
  5. package/dist/Alert/typings.d.ts +45 -0
  6. package/dist/Alert/typings.js +1 -0
  7. package/dist/Calendar/Calendar.js +12 -3
  8. package/dist/Calendar/Footer.js +4 -2
  9. package/dist/Calendar/QuarterPanel.d.ts +4 -0
  10. package/dist/Calendar/QuarterPanel.js +109 -0
  11. package/dist/Calendar/WeekPanel.js +1 -1
  12. package/dist/Calendar/typings.d.ts +1 -1
  13. package/dist/Card/Card.js +13 -6
  14. package/dist/Card/typings.d.ts +1 -1
  15. package/dist/Cascader/Cascader.js +1 -1
  16. package/dist/Cascader/useCascader.d.ts +0 -14
  17. package/dist/Cascader/useCascader.js +33 -32
  18. package/dist/Checkbox/Checkbox.js +3 -2
  19. package/dist/ConfigProvider/ConfigProvider.js +2 -24
  20. package/dist/ConfigProvider/ConfigProviderContext.js +1 -1
  21. package/dist/ConfigProvider/typings.d.ts +1 -1
  22. package/dist/Container/Main.d.ts +1 -1
  23. package/dist/Container/typings.d.ts +1 -1
  24. package/dist/DatePicker/DatePicker.js +38 -12
  25. package/dist/DatePicker/DateRangePicker.js +27 -9
  26. package/dist/DatePicker/main.js +1 -1
  27. package/dist/DatePicker/typings.d.ts +1 -1
  28. package/dist/DateTimePicker/DateTimePicker.js +2 -2
  29. package/dist/Dialog/Dialog.js +5 -12
  30. package/dist/Input/Input.js +190 -149
  31. package/dist/Input/InputRange.js +1 -1
  32. package/dist/Input/TextArea.js +87 -12
  33. package/dist/Input/typings.d.ts +56 -5
  34. package/dist/Input/useComposition.d.ts +23 -0
  35. package/dist/Input/useComposition.js +63 -0
  36. package/dist/Input/utils.d.ts +7 -0
  37. package/dist/Input/utils.js +95 -0
  38. package/dist/InputNumber/InputNumber.js +351 -141
  39. package/dist/InputNumber/typings.d.ts +16 -2
  40. package/dist/Loading/Loading.js +5 -2
  41. package/dist/Menu/Menu.js +25 -1
  42. package/dist/Menu/MenuItem.js +4 -2
  43. package/dist/Menu/SubMenu.js +2 -2
  44. package/dist/Menu/SubMenuCollapseTransition.js +14 -9
  45. package/dist/Menu/typings.d.ts +2 -1
  46. package/dist/Message/Message.js +51 -23
  47. package/dist/Message/index.js +8 -10
  48. package/dist/Message/typings.d.ts +8 -5
  49. package/dist/MessageBox/MessageBox.js +52 -30
  50. package/dist/MessageBox/index.d.ts +2 -1
  51. package/dist/MessageBox/index.js +4 -2
  52. package/dist/MessageBox/typings.d.ts +3 -0
  53. package/dist/Notification/Notification.js +26 -19
  54. package/dist/Select/Option.js +30 -14
  55. package/dist/Select/SelectContext.d.ts +5 -5
  56. package/dist/Select/SelectContext.js +2 -1
  57. package/dist/Select/SelectCore.d.ts +2 -2
  58. package/dist/Select/SelectCore.js +172 -449
  59. package/dist/Select/SelectDropdown.js +85 -155
  60. package/dist/Select/index.d.ts +1 -1
  61. package/dist/Select/typings.d.ts +52 -22
  62. package/dist/Select/useSelect.d.ts +128 -0
  63. package/dist/Select/useSelect.js +524 -0
  64. package/dist/Space/Space.d.ts +4 -0
  65. package/dist/Space/Space.js +128 -0
  66. package/dist/Space/SpaceItem.d.ts +7 -0
  67. package/dist/Space/SpaceItem.js +14 -0
  68. package/dist/Space/index.d.ts +3 -0
  69. package/dist/Space/index.js +2 -0
  70. package/dist/Space/typings.d.ts +26 -0
  71. package/dist/Space/typings.js +1 -0
  72. package/dist/Space/useSpace.d.ts +7 -0
  73. package/dist/Space/useSpace.js +104 -0
  74. package/dist/Statistic/Statistic.d.ts +4 -0
  75. package/dist/Statistic/Statistic.js +92 -0
  76. package/dist/Statistic/index.d.ts +2 -0
  77. package/dist/Statistic/index.js +1 -0
  78. package/dist/Statistic/typings.d.ts +28 -0
  79. package/dist/Statistic/typings.js +1 -0
  80. package/dist/Switch/Switch.js +2 -2
  81. package/dist/Table/Table.js +3 -0
  82. package/dist/Table/typings.d.ts +2 -0
  83. package/dist/Table/util.js +6 -5
  84. package/dist/Tag/Tag.js +22 -17
  85. package/dist/Tag/typings.d.ts +1 -1
  86. package/dist/Text/Text.d.ts +4 -0
  87. package/dist/Text/Text.js +84 -0
  88. package/dist/Text/index.d.ts +2 -0
  89. package/dist/Text/index.js +1 -0
  90. package/dist/Text/typings.d.ts +15 -0
  91. package/dist/Text/typings.js +1 -0
  92. package/dist/TimePicker/TimePicker.js +2 -2
  93. package/dist/Tree/CollapseTransition.d.ts +7 -0
  94. package/dist/Tree/CollapseTransition.js +60 -0
  95. package/dist/Tree/Tree.d.ts +3 -140
  96. package/dist/Tree/Tree.js +350 -77
  97. package/dist/Tree/TreeContext.d.ts +9 -0
  98. package/dist/Tree/TreeContext.js +14 -0
  99. package/dist/Tree/TreeNode.d.ts +5 -3
  100. package/dist/Tree/TreeNode.js +321 -331
  101. package/dist/Tree/TreeNodeContent.d.ts +9 -0
  102. package/dist/Tree/TreeNodeContent.js +22 -0
  103. package/dist/Tree/index.d.ts +3 -8
  104. package/dist/Tree/index.js +1 -4
  105. package/dist/Tree/model/node.d.ts +62 -0
  106. package/dist/Tree/model/node.js +601 -0
  107. package/dist/Tree/model/tree-store.d.ts +52 -0
  108. package/dist/Tree/model/tree-store.js +510 -0
  109. package/dist/Tree/model/useDragNode.d.ts +30 -0
  110. package/dist/Tree/model/useDragNode.js +293 -0
  111. package/dist/Tree/model/useKeydown.d.ts +0 -0
  112. package/dist/Tree/model/useKeydown.js +104 -0
  113. package/dist/Tree/model/useNodeExpandEventBroadcast.d.ts +15 -0
  114. package/dist/Tree/model/useNodeExpandEventBroadcast.js +54 -0
  115. package/dist/Tree/model/util.d.ts +7 -0
  116. package/dist/Tree/model/util.js +24 -0
  117. package/dist/Tree/typings.d.ts +225 -114
  118. package/dist/TreeSelect/TreeSelect.d.ts +2 -10
  119. package/dist/TreeSelect/TreeSelect.js +90 -566
  120. package/dist/TreeSelect/TreeSelectOption.d.ts +6 -0
  121. package/dist/TreeSelect/TreeSelectOption.js +62 -0
  122. package/dist/TreeSelect/cacheOptions.d.ts +9 -0
  123. package/dist/TreeSelect/cacheOptions.js +22 -0
  124. package/dist/TreeSelect/index.d.ts +0 -1
  125. package/dist/TreeSelect/typings.d.ts +11 -63
  126. package/dist/TreeSelect/useSelect.d.ts +125 -0
  127. package/dist/TreeSelect/useSelect.js +104 -0
  128. package/dist/TreeSelect/useTree.d.ts +130 -0
  129. package/dist/TreeSelect/useTree.js +285 -0
  130. package/dist/TreeSelect/utils.d.ts +10 -0
  131. package/dist/TreeSelect/utils.js +38 -0
  132. package/dist/Upload/UploadContent.js +2 -0
  133. package/dist/Upload/ajax.js +3 -0
  134. package/dist/Upload/typings.d.ts +4 -0
  135. package/dist/Util/aria.d.ts +25 -0
  136. package/dist/Util/aria.js +118 -0
  137. package/dist/Util/base.d.ts +5 -0
  138. package/dist/Util/base.js +140 -1
  139. package/dist/config/Constants.d.ts +3 -0
  140. package/dist/config/Constants.js +8 -0
  141. package/dist/hooks/index.d.ts +1 -0
  142. package/dist/hooks/index.js +1 -0
  143. package/dist/hooks/popperPropsUtils.js +1 -1
  144. package/dist/hooks/treePropsUtils.d.ts +3 -3
  145. package/dist/hooks/treePropsUtils.js +2 -2
  146. package/dist/hooks/useCalcInputWidth.d.ts +8 -0
  147. package/dist/{Tree/useUnmount.js → hooks/useCalcInputWidth.js} +23 -27
  148. package/dist/hooks/useComposition.d.ts +16 -0
  149. package/dist/hooks/useComposition.js +39 -0
  150. package/dist/hooks/useConfigProvider.d.ts +27 -0
  151. package/dist/hooks/useConfigProvider.js +78 -0
  152. package/dist/hooks/useCursor.d.ts +2 -0
  153. package/dist/hooks/useCursor.js +52 -0
  154. package/dist/hooks/useFocusController.d.ts +27 -0
  155. package/dist/hooks/useFocusController.js +72 -0
  156. package/dist/hooks/useResizeObserver.js +6 -6
  157. package/dist/index.css +1 -1
  158. package/dist/index.d.ts +18 -11
  159. package/dist/index.js +11 -5
  160. package/dist/locale/en.d.ts +15 -0
  161. package/dist/locale/en.js +15 -0
  162. package/dist/locale/zhCn.d.ts +15 -0
  163. package/dist/locale/zhCn.js +15 -0
  164. package/package.json +1 -1
  165. package/theme-chalk/alert.scss +115 -0
  166. package/theme-chalk/aside.scss +8 -8
  167. package/theme-chalk/button-group.scss +80 -80
  168. package/theme-chalk/button.scss +304 -304
  169. package/theme-chalk/calendar/date-table.scss +164 -164
  170. package/theme-chalk/calendar/index.scss +1 -0
  171. package/theme-chalk/calendar/quarter-table.scss +78 -0
  172. package/theme-chalk/checkbox.scss +34 -0
  173. package/theme-chalk/color/index.scss +20 -20
  174. package/theme-chalk/common/transition.scss +142 -142
  175. package/theme-chalk/common/var.scss +1 -1
  176. package/theme-chalk/container.scss +14 -14
  177. package/theme-chalk/dark/css-vars.scss +39 -39
  178. package/theme-chalk/dark/var.scss +225 -225
  179. package/theme-chalk/date-picker.scss +12 -12
  180. package/theme-chalk/drawer.scss +1 -0
  181. package/theme-chalk/footer.scss +12 -12
  182. package/theme-chalk/header.scss +12 -12
  183. package/theme-chalk/index.scss +4 -0
  184. package/theme-chalk/input/input-range.scss +2 -1
  185. package/theme-chalk/input/input.scss +298 -437
  186. package/theme-chalk/input/input.scss--bak +578 -0
  187. package/theme-chalk/input-number.bak +172 -0
  188. package/theme-chalk/input-number.scss +192 -172
  189. package/theme-chalk/link.scss +87 -87
  190. package/theme-chalk/main.scss +14 -14
  191. package/theme-chalk/menu.scss +353 -353
  192. package/theme-chalk/message.scss +104 -178
  193. package/theme-chalk/mixins/_button.scss +224 -224
  194. package/theme-chalk/mixins/_col.scss +33 -33
  195. package/theme-chalk/mixins/_var.scss +67 -67
  196. package/theme-chalk/mixins/config.scss +5 -5
  197. package/theme-chalk/mixins/function.scss +99 -99
  198. package/theme-chalk/mixins/mixins.scss +240 -240
  199. package/theme-chalk/mixins/utils.scss +39 -39
  200. package/theme-chalk/notification.bak +156 -0
  201. package/theme-chalk/notification.scss +109 -156
  202. package/theme-chalk/popper.scss +104 -104
  203. package/theme-chalk/radio-button.scss +169 -169
  204. package/theme-chalk/select/index.scss +222 -191
  205. package/theme-chalk/select/index.scss--bak +247 -0
  206. package/theme-chalk/select/option-group.scss +2 -2
  207. package/theme-chalk/select/option.scss +2 -2
  208. package/theme-chalk/select/select-dropdown.scss +2 -2
  209. package/theme-chalk/space.scss +20 -0
  210. package/theme-chalk/statistic.scss +35 -0
  211. package/theme-chalk/switch.scss +300 -300
  212. package/theme-chalk/tag.scss +150 -172
  213. package/theme-chalk/tag.scss--bak +203 -0
  214. package/theme-chalk/text.scss +48 -0
  215. package/theme-chalk/transition.scss +34 -4
  216. package/theme-chalk/tree-select.scss +41 -25
  217. package/theme-chalk/tree.scss +136 -0
  218. package/theme-chalk/var.scss +83 -83
  219. package/dist/Tree/DirectoryTree.d.ts +0 -15
  220. package/dist/Tree/DirectoryTree.js +0 -183
  221. package/dist/Tree/DropIndicator.d.ts +0 -8
  222. package/dist/Tree/DropIndicator.js +0 -34
  223. package/dist/Tree/Indent.d.ts +0 -9
  224. package/dist/Tree/Indent.js +0 -25
  225. package/dist/Tree/MotionTreeNode.d.ts +0 -14
  226. package/dist/Tree/MotionTreeNode.js +0 -125
  227. package/dist/Tree/NodeList.d.ts +0 -50
  228. package/dist/Tree/NodeList.js +0 -301
  229. package/dist/Tree/RCTree.d.ts +0 -248
  230. package/dist/Tree/RCTree.js +0 -1216
  231. package/dist/Tree/contextTypes.d.ts +0 -69
  232. package/dist/Tree/contextTypes.js +0 -9
  233. package/dist/Tree/typings.tsx--bak +0 -245
  234. package/dist/Tree/useUnmount.d.ts +0 -5
  235. package/dist/Tree/util.d.ts +0 -51
  236. package/dist/Tree/util.js +0 -303
  237. package/dist/Tree/utils/conductUtil.d.ts +0 -17
  238. package/dist/Tree/utils/conductUtil.js +0 -209
  239. package/dist/Tree/utils/dictUtil.d.ts +0 -13
  240. package/dist/Tree/utils/dictUtil.js +0 -75
  241. package/dist/Tree/utils/diffUtil.d.ts +0 -7
  242. package/dist/Tree/utils/diffUtil.js +0 -48
  243. package/dist/Tree/utils/dropIndicator.d.ts +0 -11
  244. package/dist/Tree/utils/dropIndicator.js +0 -36
  245. package/dist/Tree/utils/iconUtil.d.ts +0 -5
  246. package/dist/Tree/utils/iconUtil.js +0 -62
  247. package/dist/Tree/utils/keyUtil.d.ts +0 -2
  248. package/dist/Tree/utils/keyUtil.js +0 -3
  249. package/dist/Tree/utils/motion.d.ts +0 -10
  250. package/dist/Tree/utils/motion.js +0 -54
  251. package/dist/Tree/utils/pickAttrs.d.ts +0 -11
  252. package/dist/Tree/utils/pickAttrs.js +0 -51
  253. package/dist/Tree/utils/treeUtil.d.ts +0 -86
  254. package/dist/Tree/utils/treeUtil.js +0 -364
  255. package/dist/TreeSelect/Utils.d.ts +0 -3
  256. package/dist/TreeSelect/Utils.js +0 -20
@@ -1,8 +1,4 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["eventKey", "className", "style", "dragOver", "dragOverGapTop", "dragOverGapBottom", "isLeaf", "isStart", "isEnd", "expanded", "selected", "checked", "halfChecked", "loading", "domRef", "active", "data", "onMouseMove", "selectable"];
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
4
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -12,360 +8,354 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
12
8
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
13
9
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
14
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
- /* eslint-disable react-hooks/exhaustive-deps */
18
11
  import classNames from 'classnames';
19
- import React from 'react';
20
- import Indent from "./Indent";
21
- import { TreeContext, UnstableContext } from "./contextTypes";
22
- import getEntity from "./utils/keyUtil";
23
- import pickAttrs from "./utils/pickAttrs";
24
- import { convertNodePropsToEventData } from "./utils/treeUtil";
25
- var ICON_OPEN = 'open';
26
- var ICON_CLOSE = 'close';
27
- var defaultTitle = '---';
12
+ import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
13
+ import Checkbox from "../Checkbox/Checkbox";
14
+ import Icon from "../Icon/Icon";
15
+ import Transition from "../Transition/Transition";
16
+ import { isFunction, isString } from "../Util";
17
+ import { useClassNames } from "../hooks";
18
+ import { afterEnter as _afterEnter, afterLeave as _afterLeave, beforeEnter as _beforeEnter, beforeLeave as _beforeLeave, onEnter as _onEnter, onLeave as _onLeave } from "./CollapseTransition";
19
+ import useTreeContext, { TreeNodeExpandContext, useDragEventsContext } from "./TreeContext";
20
+ import TreeNodeContent from "./TreeNodeContent";
21
+ import { useNodeExpandEventBroadcast } from "./model/useNodeExpandEventBroadcast";
22
+ import { getNodeKey as getNodeKeyUtil, handleCurrentChange } from "./model/util";
28
23
  var TreeNode = function TreeNode(props) {
29
- var _unstableContext$node, _context$filterTreeNo, _classNames4;
30
- var eventKey = props.eventKey,
31
- className = props.className,
32
- style = props.style,
33
- dragOver = props.dragOver,
34
- dragOverGapTop = props.dragOverGapTop,
35
- dragOverGapBottom = props.dragOverGapBottom,
36
- isLeaf = props.isLeaf,
37
- isStart = props.isStart,
38
- isEnd = props.isEnd,
39
- expanded = props.expanded,
40
- selected = props.selected,
41
- checked = props.checked,
42
- halfChecked = props.halfChecked,
43
- loading = props.loading,
44
- domRef = props.domRef,
45
- active = props.active,
46
- data = props.data,
47
- onMouseMove = props.onMouseMove,
48
- selectable = props.selectable,
49
- otherProps = _objectWithoutProperties(props, _excluded);
50
- var context = React.useContext(TreeContext);
51
- var _ref = context || {},
52
- treeClassNames = _ref.classNames,
53
- styles = _ref.styles;
54
- var unstableContext = React.useContext(UnstableContext);
55
- var selectHandleRef = React.useRef(null);
56
- var _React$useState = React.useState(false),
57
- _React$useState2 = _slicedToArray(_React$useState, 2),
58
- dragNodeHighlight = _React$useState2[0],
59
- setDragNodeHighlight = _React$useState2[1];
24
+ var _props$node, _props$node3, _props$node5, _props$node8, _props$node10, _tree$props3, _props$props2, _props$node12, _props$node13, _props$node14, _props$node15, _props$node16, _props$node17, _props$node18, _props$node19, _props$node20, _props$node21, _props$node22, _props$node23, _props$node24, _props$node25, _props$node26;
25
+ var tree = useTreeContext();
26
+ var dragEvents = useDragEventsContext();
60
27
 
61
- // ======= State: Disabled State =======
62
- var isDisabled = !!(context.disabled || props.disabled || (_unstableContext$node = unstableContext.nodeDisabled) !== null && _unstableContext$node !== void 0 && _unstableContext$node.call(unstableContext, data));
63
- var isCheckable = React.useMemo(function () {
64
- // Return false if tree or treeNode is not checkable
65
- if (!context.checkable || props.checkable === false) {
66
- return false;
67
- }
68
- return context.checkable;
69
- }, [context.checkable, props.checkable]);
28
+ // 状态定义
29
+ var _useState = useState(false),
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ expanded = _useState2[0],
32
+ setExpanded = _useState2[1];
33
+ var _useState3 = useState(false),
34
+ _useState4 = _slicedToArray(_useState3, 2),
35
+ childNodeRendered = _useState4[0],
36
+ setChildNodeRendered = _useState4[1];
37
+ var _useState5 = useState(false),
38
+ _useState6 = _slicedToArray(_useState5, 2),
39
+ oldChecked = _useState6[0],
40
+ setOldChecked = _useState6[1];
41
+ var _useState7 = useState(),
42
+ _useState8 = _slicedToArray(_useState7, 2),
43
+ oldIndeterminate = _useState8[0],
44
+ setOldIndeterminate = _useState8[1];
70
45
 
71
- // ======= Event Handlers: Selection and Check =======
72
- var onSelect = function onSelect(e) {
73
- if (isDisabled) {
74
- return;
75
- }
76
- context.onNodeSelect(e, convertNodePropsToEventData(props));
77
- };
78
- var onCheck = function onCheck(e) {
79
- if (isDisabled) {
80
- return;
81
- }
82
- if (!isCheckable || props.disableCheckbox) {
83
- return;
84
- }
85
- context.onNodeCheck(e, convertNodePropsToEventData(props), !checked);
86
- };
46
+ // 引用
47
+ var nodeRef = useRef(null);
48
+ var transitionNodeRef = useRef(null);
49
+ var instanceRef = useRef(null);
87
50
 
88
- // ======= State: Selectable Check =======
89
- var isSelectable = React.useMemo(function () {
90
- // Ignore when selectable is undefined or null
91
- if (typeof selectable === 'boolean') {
92
- return selectable;
51
+ // 初始化检查
52
+ useEffect(function () {
53
+ setExpanded(props.node.expanded);
54
+ if (props.node.expanded) {
55
+ setChildNodeRendered(true);
93
56
  }
94
- return context.selectable;
95
- }, [selectable, context.selectable]);
96
- var onSelectorClick = function onSelectorClick(e) {
97
- // Click trigger before select/check operation
98
- context.onNodeClick(e, convertNodePropsToEventData(props));
99
- if (isSelectable) {
100
- onSelect(e);
101
- } else {
102
- onCheck(e);
57
+ }, [(_props$node = props.node) === null || _props$node === void 0 ? void 0 : _props$node.expanded]);
58
+ var ns = useClassNames('tree');
59
+ var _useNodeExpandEventBr = useNodeExpandEventBroadcast(props),
60
+ broadcastExpanded = _useNodeExpandEventBr.broadcastExpanded,
61
+ parentNodeMap = _useNodeExpandEventBr.parentNodeMap;
62
+ var childrenKey = useMemo(function () {
63
+ return tree.props.props['children'] || 'children';
64
+ }, [tree.props.props]);
65
+ var children = useMemo(function () {
66
+ var _props$node2;
67
+ return (_props$node2 = props.node) === null || _props$node2 === void 0 || (_props$node2 = _props$node2.data) === null || _props$node2 === void 0 ? void 0 : _props$node2[childrenKey];
68
+ }, [(_props$node3 = props.node) === null || _props$node3 === void 0 ? void 0 : _props$node3.data, childrenKey]);
69
+ var handleSelectChange = useCallback(function (checked, indeterminate) {
70
+ if (oldChecked !== checked || oldIndeterminate !== indeterminate) {
71
+ var _tree$props, _tree$props$onCheckCh, _props$node4;
72
+ tree === null || tree === void 0 || (_tree$props = tree.props) === null || _tree$props === void 0 || (_tree$props$onCheckCh = _tree$props.onCheckChange) === null || _tree$props$onCheckCh === void 0 || _tree$props$onCheckCh.call(_tree$props, (_props$node4 = props.node) === null || _props$node4 === void 0 ? void 0 : _props$node4.data, checked, indeterminate);
103
73
  }
104
- };
105
- var onSelectorDoubleClick = function onSelectorDoubleClick(e) {
106
- context.onNodeDoubleClick(e, convertNodePropsToEventData(props));
107
- };
108
- var onMouseEnter = function onMouseEnter(e) {
109
- context.onNodeMouseEnter(e, convertNodePropsToEventData(props));
110
- };
111
- var onMouseLeave = function onMouseLeave(e) {
112
- context.onNodeMouseLeave(e, convertNodePropsToEventData(props));
113
- };
114
- var onContextMenu = function onContextMenu(e) {
115
- context.onNodeContextMenu(e, convertNodePropsToEventData(props));
116
- };
74
+ setOldChecked(checked);
75
+ setOldIndeterminate(indeterminate);
76
+ }, [oldChecked, oldIndeterminate, (_props$node5 = props.node) === null || _props$node5 === void 0 ? void 0 : _props$node5.data, tree === null || tree === void 0 ? void 0 : tree.props]);
117
77
 
118
- // ======= Drag: Drag Enabled =======
119
- var isDraggable = React.useMemo(function () {
120
- return !!(context.draggable && (!context.draggable.nodeDraggable || context.draggable.nodeDraggable(data)));
121
- }, [context.draggable, data]);
78
+ // 监听子节点变化
79
+ useEffect(function () {
80
+ var _props$node6;
81
+ (_props$node6 = props.node) === null || _props$node6 === void 0 || _props$node6.updateChildren();
82
+ }, [children]);
122
83
 
123
- // ======= Drag: Drag Event Handlers =======
124
- var onDragStart = function onDragStart(e) {
125
- e.stopPropagation();
126
- setDragNodeHighlight(true);
127
- context.onNodeDragStart(e, props);
128
- try {
129
- // ie throw error
130
- // firefox-need-it
131
- e.dataTransfer.setData('text/plain', '');
132
- } catch (_unused) {
133
- // empty
134
- }
135
- };
136
- var onDragEnter = function onDragEnter(e) {
137
- e.preventDefault();
138
- e.stopPropagation();
139
- context.onNodeDragEnter(e, props);
140
- };
141
- var onDragOver = function onDragOver(e) {
142
- e.preventDefault();
143
- e.stopPropagation();
144
- context.onNodeDragOver(e, props);
145
- };
146
- var onDragLeave = function onDragLeave(e) {
147
- e.stopPropagation();
148
- context.onNodeDragLeave(e, props);
149
- };
150
- var onDragEnd = function onDragEnd(e) {
151
- e.stopPropagation();
152
- setDragNodeHighlight(false);
153
- context.onNodeDragEnd(e, props);
154
- };
155
- var onDrop = function onDrop(e) {
156
- e.preventDefault();
157
- e.stopPropagation();
158
- setDragNodeHighlight(false);
159
- context.onNodeDrop(e, props);
160
- };
84
+ // 监听不确定状态变化
85
+ useEffect(function () {
86
+ handleSelectChange(props.node.checked, props.node.indeterminate);
87
+ }, [props.node.indeterminate, props.node.checked]);
161
88
 
162
- // ======= Expand: Node Expansion =======
163
- var onExpand = function onExpand(e) {
164
- if (loading) {
165
- return;
166
- }
167
- context.onNodeExpand(e, convertNodePropsToEventData(props));
168
- };
89
+ // 监听选中状态变化
90
+ // useEffect(() => {
91
+ // if (props.node?.checked !== undefined) {
92
+ // handleSelectChange(props.node.checked, props.node.indeterminate);
93
+ // }
94
+ // }, [props.node?.checked]);
169
95
 
170
- // ======= State: Has Children =======
171
- var hasChildren = React.useMemo(function () {
172
- var _ref2 = getEntity(context.keyEntities, eventKey) || {},
173
- children = _ref2.children;
174
- return Boolean((children || []).length);
175
- }, [context.keyEntities, eventKey]);
96
+ // 监听子节点数量变化
97
+ useEffect(function () {
98
+ var _props$node7;
99
+ (_props$node7 = props.node) === null || _props$node7 === void 0 || _props$node7.reInitChecked();
100
+ }, [(_props$node8 = props.node) === null || _props$node8 === void 0 || (_props$node8 = _props$node8.childNodes) === null || _props$node8 === void 0 ? void 0 : _props$node8.length]);
176
101
 
177
- // ======= State: Leaf Check =======
178
- var memoizedIsLeaf = React.useMemo(function () {
179
- if (isLeaf === false) {
180
- return false;
102
+ // 监听展开状态变化
103
+ useEffect(function () {
104
+ var _props$node9;
105
+ if (((_props$node9 = props.node) === null || _props$node9 === void 0 ? void 0 : _props$node9.expanded) !== undefined) {
106
+ setExpanded(props.node.expanded);
107
+ if (props.node.expanded) {
108
+ setChildNodeRendered(true);
109
+ }
181
110
  }
182
- return isLeaf || !context.loadData && !hasChildren || context.loadData && props.loaded && !hasChildren;
183
- }, [isLeaf, context.loadData, hasChildren, props.loaded]);
111
+ }, [(_props$node10 = props.node) === null || _props$node10 === void 0 ? void 0 : _props$node10.expanded]);
184
112
 
185
- // ============== Effect ==============
186
- React.useEffect(function () {
187
- // Load data to avoid default expanded tree without data
188
- if (loading) {
113
+ // 工具函数
114
+ var getNodeKey = useCallback(function (node) {
115
+ var _tree$props2;
116
+ return getNodeKeyUtil(tree === null || tree === void 0 || (_tree$props2 = tree.props) === null || _tree$props2 === void 0 ? void 0 : _tree$props2.nodeKey, node === null || node === void 0 ? void 0 : node.data);
117
+ }, [tree === null || tree === void 0 || (_tree$props3 = tree.props) === null || _tree$props3 === void 0 ? void 0 : _tree$props3.nodeKey]);
118
+ var getNodeClass = useCallback(function (node) {
119
+ var _props$props;
120
+ var nodeClassFunc = (_props$props = props.props) === null || _props$props === void 0 ? void 0 : _props$props.class;
121
+ if (!nodeClassFunc) {
122
+ return {};
123
+ }
124
+ var className;
125
+ if (isFunction(nodeClassFunc)) {
126
+ className = nodeClassFunc(node === null || node === void 0 ? void 0 : node.data, node);
127
+ } else {
128
+ className = nodeClassFunc;
129
+ }
130
+ if (isString(className)) {
131
+ return _defineProperty({}, className, true);
132
+ } else {
133
+ return className;
134
+ }
135
+ }, [(_props$props2 = props.props) === null || _props$props2 === void 0 ? void 0 : _props$props2.class]);
136
+ var handleExpandIconClick = useCallback(function () {
137
+ if (props.node.isLeaf) {
189
138
  return;
190
139
  }
191
- // read from state to avoid loadData at same time
192
- if (typeof context.loadData === 'function' && expanded && !memoizedIsLeaf && !props.loaded) {
193
- // We needn't reload data when has children in sync logic
194
- // It's only needed in node expanded
195
- context.onNodeLoad(convertNodePropsToEventData(props));
140
+ if (expanded) {
141
+ var _tree$props$onNodeCol, _tree$props4;
142
+ (_tree$props$onNodeCol = (_tree$props4 = tree.props).onNodeCollapse) === null || _tree$props$onNodeCol === void 0 || _tree$props$onNodeCol.call(_tree$props4, props.node.data, props.node, instanceRef);
143
+ props.node.collapse();
144
+ tree.forceUpdate();
145
+ } else {
146
+ props.node.expand(function () {
147
+ var _props$onNodeExpand;
148
+ (_props$onNodeExpand = props.onNodeExpand) === null || _props$onNodeExpand === void 0 || _props$onNodeExpand.call(props, props.node.data, props.node, instanceRef);
149
+ tree.forceUpdate();
150
+ });
196
151
  }
197
- }, [loading, context.loadData, context.onNodeLoad, expanded, memoizedIsLeaf, props]);
198
-
199
- // ==================== Render: Drag Handler ====================
200
- var dragHandlerNode = React.useMemo(function () {
201
- var _context$draggable;
202
- if (!((_context$draggable = context.draggable) !== null && _context$draggable !== void 0 && _context$draggable.icon)) {
203
- return null;
152
+ }, [props, expanded, tree]);
153
+ var handleCheckChange = useCallback(function (value) {
154
+ var checkStrictly = tree === null || tree === void 0 ? void 0 : tree.props.checkStrictly;
155
+ var childNodes = props.node.childNodes;
156
+ if (!checkStrictly && childNodes.length) {
157
+ value = childNodes.some(function (node) {
158
+ return !node.isEffectivelyChecked;
159
+ });
204
160
  }
205
- return /*#__PURE__*/React.createElement("span", {
206
- className: "".concat(context.prefixCls, "-draggable-icon")
207
- }, context.draggable.icon);
208
- }, [context.draggable]);
209
-
210
- // ====================== Render: Switcher ======================
211
- var renderSwitcherIconDom = function renderSwitcherIconDom(isInternalLeaf) {
212
- var switcherIcon = props.switcherIcon || context.switcherIcon;
213
- // if switcherIconDom is null, no render switcher span
214
- if (typeof switcherIcon === 'function') {
215
- return switcherIcon(_objectSpread(_objectSpread({}, props), {}, {
216
- isLeaf: isInternalLeaf
217
- }));
161
+ props.node.setChecked(value, !checkStrictly);
162
+ tree.forceUpdate();
163
+ setTimeout(function () {
164
+ var _tree$props$onCheck, _tree$props5;
165
+ var store = tree.store;
166
+ (_tree$props$onCheck = (_tree$props5 = tree.props).onCheck) === null || _tree$props$onCheck === void 0 || _tree$props$onCheck.call(_tree$props5, props.node.data, {
167
+ checkedNodes: store.getCheckedNodes(),
168
+ checkedKeys: store.getCheckedKeys(),
169
+ halfCheckedNodes: store.getHalfCheckedNodes(),
170
+ halfCheckedKeys: store.getHalfCheckedKeys()
171
+ });
172
+ }, 0);
173
+ }, [tree, props.node]);
174
+ var handleClick = useCallback(function (e) {
175
+ var _tree$props$onNodeCli, _tree$props7;
176
+ handleCurrentChange(tree.store, tree.props.onCurrentChange, function () {
177
+ var _tree$props6;
178
+ var nodeKeyProp = tree === null || tree === void 0 || (_tree$props6 = tree.props) === null || _tree$props6 === void 0 ? void 0 : _tree$props6.nodeKey;
179
+ if (nodeKeyProp) {
180
+ var curNodeKey = getNodeKey(props.node);
181
+ tree.store.setCurrentNodeKey(curNodeKey);
182
+ } else {
183
+ tree.store.setCurrentNode(props.node);
184
+ }
185
+ });
186
+ if (tree.props.expandOnClickNode) {
187
+ handleExpandIconClick();
218
188
  }
219
- return switcherIcon;
220
- };
221
-
222
- // Switcher
223
- var renderSwitcher = function renderSwitcher() {
224
- if (memoizedIsLeaf) {
225
- // if switcherIconDom is null, no render switcher span
226
- var _switcherIconDom = renderSwitcherIconDom(true);
227
- return _switcherIconDom !== false ? /*#__PURE__*/React.createElement("span", {
228
- className: classNames("".concat(context.prefixCls, "-switcher"), "".concat(context.prefixCls, "-switcher-noop"))
229
- }, _switcherIconDom) : null;
189
+ if ((tree.props.checkOnClickNode || props.node.isLeaf && tree.props.checkOnClickLeaf && props.showCheckbox) && !props.node.disabled) {
190
+ handleCheckChange(!props.node.checked);
230
191
  }
231
- var switcherIconDom = renderSwitcherIconDom(false);
232
- return switcherIconDom !== false ? /*#__PURE__*/React.createElement("span", {
233
- onClick: onExpand,
234
- className: classNames("".concat(context.prefixCls, "-switcher"), "".concat(context.prefixCls, "-switcher_").concat(expanded ? ICON_OPEN : ICON_CLOSE))
235
- }, switcherIconDom) : null;
236
- };
237
-
238
- // ====================== Checkbox ======================
239
- var checkboxNode = React.useMemo(function () {
240
- if (!isCheckable) {
241
- return null;
192
+ (_tree$props$onNodeCli = (_tree$props7 = tree.props).onNodeClick) === null || _tree$props$onNodeCli === void 0 || _tree$props$onNodeCli.call(_tree$props7, props.node.data, props.node, instanceRef, e);
193
+ tree.forceUpdate();
194
+ }, [tree, props.node, props.showCheckbox, getNodeKey, handleExpandIconClick, handleCheckChange]);
195
+ var handleContextMenu = useCallback(function (event) {
196
+ var _tree$props8, _tree$props$onNodeCon, _tree$props9;
197
+ if ((_tree$props8 = tree.props) !== null && _tree$props8 !== void 0 && _tree$props8['onNodeContextmenu']) {
198
+ event.stopPropagation();
199
+ event.preventDefault();
242
200
  }
243
-
244
- // [Legacy] Custom element should be separate with `checkable` in future
245
- var $custom = typeof isCheckable !== 'boolean' ? isCheckable : null;
246
- return /*#__PURE__*/React.createElement("span", {
247
- className: classNames("".concat(context.prefixCls, "-checkbox"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(context.prefixCls, "-checkbox-checked"), checked), "".concat(context.prefixCls, "-checkbox-indeterminate"), !checked && halfChecked), "".concat(context.prefixCls, "-checkbox-disabled"), isDisabled || props.disableCheckbox)),
248
- onClick: onCheck,
249
- role: "checkbox",
250
- "aria-checked": halfChecked ? 'mixed' : checked,
251
- "aria-disabled": isDisabled || props.disableCheckbox,
252
- "aria-label": "Select ".concat(typeof props.title === 'string' ? props.title : 'tree node')
253
- }, $custom);
254
- }, [isCheckable, checked, halfChecked, isDisabled, props.disableCheckbox, props.title]);
255
-
256
- // ============== State: Node State (Open/Close) ==============
257
- var nodeState = React.useMemo(function () {
258
- if (memoizedIsLeaf) {
259
- return null;
201
+ (_tree$props$onNodeCon = (_tree$props9 = tree.props).onNodeContextmenu) === null || _tree$props$onNodeCon === void 0 || _tree$props$onNodeCon.call(_tree$props9, event, props.node.data, props.node, instanceRef);
202
+ }, [tree, props.node]);
203
+ var handleChildNodeExpand = useCallback(function (nodeData, node, instance) {
204
+ var _tree$props$onNodeExp, _tree$props10;
205
+ broadcastExpanded(node);
206
+ (_tree$props$onNodeExp = (_tree$props10 = tree.props).onNodeExpand) === null || _tree$props$onNodeExp === void 0 || _tree$props$onNodeExp.call(_tree$props10, nodeData, node, instance);
207
+ tree.forceUpdate();
208
+ }, [broadcastExpanded, tree]);
209
+ var handleDragStart = useCallback(function (event) {
210
+ event.stopPropagation();
211
+ if (!tree.props.draggable) {
212
+ return;
260
213
  }
261
- return expanded ? ICON_OPEN : ICON_CLOSE;
262
- }, [memoizedIsLeaf, expanded]);
263
-
264
- // ==================== Render: Title + Icon ====================
265
- var iconNode = React.useMemo(function () {
266
- return /*#__PURE__*/React.createElement("span", {
267
- className: classNames(treeClassNames === null || treeClassNames === void 0 ? void 0 : treeClassNames.itemIcon, "".concat(context.prefixCls, "-iconEle"), "".concat(context.prefixCls, "-icon__").concat(nodeState || 'docu'), _defineProperty({}, "".concat(context.prefixCls, "-icon_loading"), loading)),
268
- style: styles === null || styles === void 0 ? void 0 : styles.itemIcon
214
+ dragEvents.treeNodeDragStart({
215
+ event: event,
216
+ treeNode: props
269
217
  });
270
- }, [context.prefixCls, nodeState, loading]);
271
-
272
- // =================== Drop Indicator ===================
273
- var dropIndicatorNode = React.useMemo(function () {
274
- var rootDraggable = Boolean(context.draggable);
275
- // allowDrop is calculated in Tree.tsx, there is no need for calc it here
276
- var showIndicator = !props.disabled && rootDraggable && context.dragOverNodeKey === eventKey;
277
- if (!showIndicator) {
278
- return null;
218
+ }, [tree.props.draggable, dragEvents, props]);
219
+ var handleDragOver = useCallback(function (event) {
220
+ event.stopPropagation();
221
+ event.preventDefault();
222
+ if (!tree.props.draggable) {
223
+ return;
279
224
  }
280
- return context.dropIndicatorRender({
281
- dropPosition: context.dropPosition,
282
- dropLevelOffset: context.dropLevelOffset,
283
- indent: context.indent,
284
- prefixCls: context.prefixCls,
285
- direction: context.direction
225
+ dragEvents.treeNodeDragOver({
226
+ event: event,
227
+ treeNode: {
228
+ $el: nodeRef.current,
229
+ node: props.node
230
+ }
286
231
  });
287
- }, [context.dropPosition, context.dropLevelOffset, context.indent, context.prefixCls, context.direction, context.draggable, context.dragOverNodeKey, context.dropIndicatorRender]);
288
-
289
- // Icon + Title
290
- var selectorNode = React.useMemo(function () {
291
- var _props$title = props.title,
292
- title = _props$title === void 0 ? defaultTitle : _props$title;
293
- var wrapClass = "".concat(context.prefixCls, "-node-content-wrapper");
294
-
295
- // Icon - Still show loading icon when loading without showIcon
296
- var $icon;
297
- if (context.showIcon) {
298
- var currentIcon = props.icon || context.icon;
299
- $icon = currentIcon ? /*#__PURE__*/React.createElement("span", {
300
- className: classNames(treeClassNames === null || treeClassNames === void 0 ? void 0 : treeClassNames.itemIcon, "".concat(context.prefixCls, "-iconEle"), "".concat(context.prefixCls, "-icon__customize")),
301
- style: styles === null || styles === void 0 ? void 0 : styles.itemIcon
302
- }, typeof currentIcon === 'function' ? currentIcon(props) : currentIcon) : iconNode;
303
- } else if (context.loadData && loading) {
304
- $icon = iconNode;
305
- }
306
-
307
- // Title
308
- var titleNode;
309
- if (typeof title === 'function') {
310
- titleNode = title(data);
311
- } else if (context.titleRender) {
312
- titleNode = context.titleRender(data);
313
- } else {
314
- titleNode = title;
232
+ }, [tree.props.draggable, dragEvents, props.node]);
233
+ var handleDrop = useCallback(function (event) {
234
+ event.stopPropagation();
235
+ event.preventDefault();
236
+ }, []);
237
+ var handleDragEnd = useCallback(function (event) {
238
+ event.stopPropagation();
239
+ if (!tree.props.draggable) {
240
+ return;
315
241
  }
316
- return /*#__PURE__*/React.createElement("span", {
317
- ref: selectHandleRef,
318
- title: typeof title === 'string' ? title : '',
319
- className: classNames(wrapClass, "".concat(wrapClass, "-").concat(nodeState || 'normal'), _defineProperty({}, "".concat(context.prefixCls, "-node-selected"), !isDisabled && (selected || dragNodeHighlight))),
320
- onMouseEnter: onMouseEnter,
321
- onMouseLeave: onMouseLeave,
322
- onContextMenu: onContextMenu,
323
- onClick: onSelectorClick,
324
- onDoubleClick: onSelectorDoubleClick
325
- }, $icon, /*#__PURE__*/React.createElement("span", {
326
- className: classNames("".concat(context.prefixCls, "-title"), treeClassNames === null || treeClassNames === void 0 ? void 0 : treeClassNames.itemTitle),
327
- style: styles === null || styles === void 0 ? void 0 : styles.itemTitle
328
- }, titleNode), dropIndicatorNode);
329
- }, [context.prefixCls, context.showIcon, props, context.icon, iconNode, context.titleRender, data, nodeState, onMouseEnter, onMouseLeave, onContextMenu, onSelectorClick, onSelectorDoubleClick]);
330
- var dataOrAriaAttributeProps = pickAttrs(otherProps, {
331
- aria: true,
332
- data: true
242
+ dragEvents.treeNodeDragEnd(event);
243
+ tree.forceUpdate();
244
+ }, [tree, dragEvents]);
245
+ useImperativeHandle(instanceRef, function () {
246
+ return {
247
+ handleExpandIconClick: handleExpandIconClick
248
+ };
333
249
  });
334
- var _ref3 = getEntity(context.keyEntities, eventKey) || {},
335
- level = _ref3.level;
336
- var isEndNode = isEnd[isEnd.length - 1];
337
- var draggableWithoutDisabled = !isDisabled && isDraggable;
338
- var dragging = context.draggingNodeKey === eventKey;
339
- var ariaSelected = selectable !== undefined ? {
340
- 'aria-selected': !!selectable
341
- } : undefined;
342
- return /*#__PURE__*/React.createElement("div", _extends({
343
- ref: domRef,
250
+ var contentPaddingLeft = useMemo(function () {
251
+ var _props$node11;
252
+ return "".concat((((_props$node11 = props.node) === null || _props$node11 === void 0 ? void 0 : _props$node11.level) - 1) * tree.props.indent, "px");
253
+ }, [(_props$node12 = props.node) === null || _props$node12 === void 0 ? void 0 : _props$node12.level, tree.props.indent]);
254
+ return /*#__PURE__*/React.createElement(TreeNodeExpandContext.Provider, {
255
+ value: {
256
+ parentNodeMap: parentNodeMap
257
+ }
258
+ }, /*#__PURE__*/React.createElement("div", {
259
+ ref: nodeRef,
260
+ className: classNames([ns.b('node'), ns.is({
261
+ expanded: expanded,
262
+ current: (_props$node13 = props.node) === null || _props$node13 === void 0 ? void 0 : _props$node13.isCurrent,
263
+ hidden: !((_props$node14 = props.node) !== null && _props$node14 !== void 0 && _props$node14.visible),
264
+ focusable: !((_props$node15 = props.node) !== null && _props$node15 !== void 0 && _props$node15.disabled),
265
+ checked: !((_props$node16 = props.node) !== null && _props$node16 !== void 0 && _props$node16.disabled) && ((_props$node17 = props.node) === null || _props$node17 === void 0 ? void 0 : _props$node17.checked)
266
+ }), getNodeClass(props.node)]),
344
267
  role: "treeitem",
345
- "aria-expanded": isLeaf ? undefined : expanded,
346
- className: classNames(className, "".concat(context.prefixCls, "-treenode"), treeClassNames === null || treeClassNames === void 0 ? void 0 : treeClassNames.item, (_classNames4 = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames4, "".concat(context.prefixCls, "-treenode-disabled"), isDisabled), "".concat(context.prefixCls, "-treenode-switcher-").concat(expanded ? 'open' : 'close'), !isLeaf), "".concat(context.prefixCls, "-treenode-checkbox-checked"), checked), "".concat(context.prefixCls, "-treenode-checkbox-indeterminate"), halfChecked), "".concat(context.prefixCls, "-treenode-selected"), selected), "".concat(context.prefixCls, "-treenode-loading"), loading), "".concat(context.prefixCls, "-treenode-active"), active), "".concat(context.prefixCls, "-treenode-leaf-last"), isEndNode), "".concat(context.prefixCls, "-treenode-draggable"), isDraggable), "dragging", dragging), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames4, 'drop-target', context.dropTargetKey === eventKey), 'drop-container', context.dropContainerKey === eventKey), 'drag-over', !isDisabled && dragOver), 'drag-over-gap-top', !isDisabled && dragOverGapTop), 'drag-over-gap-bottom', !isDisabled && dragOverGapBottom), 'filter-node', (_context$filterTreeNo = context.filterTreeNode) === null || _context$filterTreeNo === void 0 ? void 0 : _context$filterTreeNo.call(context, convertNodePropsToEventData(props))), "".concat(context.prefixCls, "-treenode-leaf"), memoizedIsLeaf))),
347
- style: _objectSpread(_objectSpread({}, style), styles === null || styles === void 0 ? void 0 : styles.item)
348
- // Draggable config
349
- ,
350
- draggable: draggableWithoutDisabled,
351
- onDragStart: draggableWithoutDisabled ? onDragStart : undefined
352
- // Drop config
353
- ,
354
- onDragEnter: isDraggable ? onDragEnter : undefined,
355
- onDragOver: isDraggable ? onDragOver : undefined,
356
- onDragLeave: isDraggable ? onDragLeave : undefined,
357
- onDrop: isDraggable ? onDrop : undefined,
358
- onDragEnd: isDraggable ? onDragEnd : undefined,
359
- onMouseMove: onMouseMove
360
- }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {
361
- prefixCls: context.prefixCls,
362
- level: level,
363
- isStart: isStart,
364
- isEnd: isEnd
365
- }), dragHandlerNode, renderSwitcher(), checkboxNode, selectorNode);
268
+ tabIndex: -1,
269
+ "aria-expanded": expanded,
270
+ "aria-disabled": (_props$node18 = props.node) === null || _props$node18 === void 0 ? void 0 : _props$node18.disabled,
271
+ "aria-checked": (_props$node19 = props.node) === null || _props$node19 === void 0 ? void 0 : _props$node19.checked,
272
+ draggable: tree.props.draggable,
273
+ "data-key": getNodeKey(props.node),
274
+ onClick: function onClick(e) {
275
+ return handleClick(e);
276
+ },
277
+ onContextMenu: handleContextMenu,
278
+ onDragStart: handleDragStart,
279
+ onDragOver: handleDragOver,
280
+ onDragEnd: handleDragEnd,
281
+ onDrop: handleDrop
282
+ }, /*#__PURE__*/React.createElement("div", {
283
+ className: ns.be('node', 'content'),
284
+ style: {
285
+ paddingLeft: contentPaddingLeft
286
+ }
287
+ }, /*#__PURE__*/React.createElement(Icon, {
288
+ name: tree.props.icon || 'angle-right',
289
+ prefix: "far",
290
+ className: classNames([ns.be('node', 'expand-icon'), ns.is({
291
+ leaf: (_props$node20 = props.node) === null || _props$node20 === void 0 ? void 0 : _props$node20.isLeaf
292
+ }), {
293
+ expanded: !((_props$node21 = props.node) !== null && _props$node21 !== void 0 && _props$node21.isLeaf) && expanded
294
+ }]),
295
+ onClick: function onClick(e) {
296
+ e.stopPropagation();
297
+ handleExpandIconClick();
298
+ }
299
+ }), props.showCheckbox && /*#__PURE__*/React.createElement(Checkbox, {
300
+ checked: (_props$node22 = props.node) === null || _props$node22 === void 0 ? void 0 : _props$node22.checked,
301
+ indeterminate: (_props$node23 = props.node) === null || _props$node23 === void 0 ? void 0 : _props$node23.indeterminate,
302
+ disabled: !!((_props$node24 = props.node) !== null && _props$node24 !== void 0 && _props$node24.disabled),
303
+ onClick: function onClick(e) {
304
+ return e.stopPropagation();
305
+ },
306
+ onChange: handleCheckChange
307
+ }), ((_props$node25 = props.node) === null || _props$node25 === void 0 ? void 0 : _props$node25.loading) && /*#__PURE__*/React.createElement("span", {
308
+ className: classNames([ns.be('node', 'loading-icon'), ns.is('loading')])
309
+ }, /*#__PURE__*/React.createElement(Icon, {
310
+ name: "loader",
311
+ prefix: "far",
312
+ spin: true
313
+ })), /*#__PURE__*/React.createElement(TreeNodeContent, {
314
+ node: props.node,
315
+ renderContent: props.renderContent
316
+ })), /*#__PURE__*/React.createElement(Transition, {
317
+ nodeRef: transitionNodeRef,
318
+ name: ns.b('menu-collapse', false),
319
+ duration: 10,
320
+ visible: expanded && childNodeRendered,
321
+ beforeEnter: function beforeEnter() {
322
+ return _beforeEnter(transitionNodeRef);
323
+ },
324
+ onEnter: function onEnter() {
325
+ return _onEnter(transitionNodeRef);
326
+ },
327
+ afterEnter: function afterEnter() {
328
+ return _afterEnter(transitionNodeRef);
329
+ },
330
+ beforeLeave: function beforeLeave() {
331
+ return _beforeLeave(transitionNodeRef);
332
+ },
333
+ onLeave: function onLeave() {
334
+ return _onLeave(transitionNodeRef);
335
+ },
336
+ afterLeave: function afterLeave() {
337
+ return _afterLeave(transitionNodeRef);
338
+ }
339
+ }, !props.renderAfterExpand || childNodeRendered ? /*#__PURE__*/React.createElement("div", {
340
+ ref: transitionNodeRef,
341
+ className: classNames(ns.be('node', 'children'), ns.b('collapse-transition', false)),
342
+ role: "group",
343
+ "aria-expanded": expanded,
344
+ onClick: function onClick(e) {
345
+ return e.stopPropagation();
346
+ }
347
+ }, (_props$node26 = props.node) === null || _props$node26 === void 0 || (_props$node26 = _props$node26.childNodes) === null || _props$node26 === void 0 ? void 0 : _props$node26.map(function (child) {
348
+ return /*#__PURE__*/React.createElement(TreeNode, {
349
+ key: getNodeKey(child),
350
+ node: child,
351
+ props: props.props,
352
+ accordion: props.accordion,
353
+ renderContent: props.renderContent,
354
+ renderAfterExpand: props.renderAfterExpand,
355
+ showCheckbox: props.showCheckbox,
356
+ onNodeExpand: handleChildNodeExpand
357
+ });
358
+ })) : null)));
366
359
  };
367
- TreeNode.isTreeNode = 1;
368
- if (process.env.NODE_ENV !== 'production') {
369
- TreeNode.displayName = 'TreeNode';
370
- }
360
+ TreeNode.displayName = 'ElTreeNode';
371
361
  export default TreeNode;