@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,584 +1,108 @@
1
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
2
- var _excluded = ["placeholder", "clearable", "filterable", "multiple", "collapseTags", "onChange", "onEnter", "afterLeave", "maxWidth", "fieldNames", "append", "prepend", "warning", "error", "loading", "loadingText", "noDataText", "onExpand", "onLoadSuccess", "onSelect", "onBeforeClick", "onClickNode"];
3
- 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); }
1
+ var _excluded = ["cacheOptions"];
4
2
  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); }
5
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
3
+ 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; }
4
+ 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; }
6
5
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7
6
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
7
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
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; }
10
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; } }
11
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
- 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; }
13
- 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; }
14
- 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; }
15
- 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; }
16
- 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; }
17
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
18
- 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); }
19
- /* eslint-disable indent */
20
- import classNames from 'classnames';
21
- import debounce from 'lodash/debounce';
22
- import filter from 'lodash/filter';
23
- import flattenDeep from 'lodash/flattenDeep';
24
- import head from 'lodash/head';
25
- import omit from 'lodash/omit';
26
- import trim from 'lodash/trim';
27
- import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
28
- import { Divider } from "../Divider";
29
- import Icon from "../Icon/Icon";
30
- import Input from "../Input/Input";
31
- import InputGroup from "../Input/InputGroup";
32
- import Popper from "../Popper/Popper";
33
- import Scrollbar from "../Scrollbar/Scrollbar";
34
- import { Tag } from "../Tag";
35
- import { DirectoryTree } from "../Tree";
36
- import { isEmpty, isNotEmpty } from "../Util";
37
- import { partitionAnimationProps, partitionHTMLProps, partitionPopperPropsUtils, partitionTreePropsUtils, useClassNames, useControlled, useDisabled, useSize } from "../hooks";
38
- import { parentNotSelectable } from "./Utils";
39
- function InternalTreeSelect(props, ref) {
40
- var _props$expandedKeys;
41
- props = _objectSpread({
42
- clearable: true,
43
- collapseTags: true,
44
- checkStrictly: true,
45
- disabled: false,
46
- selectable: true,
47
- filterable: true,
48
- placeholder: '请选择',
49
- noDataText: '无数据',
50
- loadingText: /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Icon, {
51
- prefix: "fas",
52
- name: "spinner",
53
- spin: true
54
- }), " \u52A0\u8F7D\u4E2D..."),
55
- fieldNames: {
56
- title: 'title',
57
- key: 'key',
58
- children: 'children'
59
- },
60
- onBeforeClick: function onBeforeClick() {
61
- return true;
11
+ import { useMount } from 'ahooks';
12
+ import React, { forwardRef, useCallback, useImperativeHandle, useMemo, useRef } from 'react';
13
+ import Select from "../Select/Select";
14
+ import Tree from "../Tree/Tree";
15
+ import { isNotEmpty, mergeDefaultProps } from "../Util";
16
+ import { useControlled, useForceUpdate } from "../hooks";
17
+ import CacheOptions from "./cacheOptions";
18
+ import useSelect from "./useSelect";
19
+ import useTree from "./useTree";
20
+ var TreeSelect = /*#__PURE__*/forwardRef(function (props, ref) {
21
+ props = mergeDefaultProps({
22
+ renderAfterExpand: true,
23
+ expandOnClickNode: true,
24
+ checkOnClickLeaf: true,
25
+ autoExpandParent: true,
26
+ indent: 18,
27
+ props: {
28
+ children: 'children',
29
+ label: 'label',
30
+ disabled: 'disabled',
31
+ isLeaf: 'isLeaf',
32
+ class: null
62
33
  }
63
34
  }, props);
64
- var _props = props,
65
- placeholder = _props.placeholder,
66
- clearable = _props.clearable,
67
- filterable = _props.filterable,
68
- multiple = _props.multiple,
69
- collapseTags = _props.collapseTags,
70
- onChange = _props.onChange,
71
- onEnter = _props.onEnter,
72
- afterLeave = _props.afterLeave,
73
- maxWidth = _props.maxWidth,
74
- fieldNames = _props.fieldNames,
75
- append = _props.append,
76
- prepend = _props.prepend,
77
- warning = _props.warning,
78
- error = _props.error,
79
- loading = _props.loading,
80
- loadingText = _props.loadingText,
81
- noDataText = _props.noDataText,
82
- _onExpand = _props.onExpand,
83
- onLoadSuccess = _props.onLoadSuccess,
84
- onSelect = _props.onSelect,
85
- onBeforeClick = _props.onBeforeClick,
86
- onClickNode = _props.onClickNode,
87
- rest = _objectWithoutProperties(_props, _excluded);
88
- var _useClassNames = useClassNames('select'),
89
- b = _useClassNames.b,
90
- e = _useClassNames.e,
91
- m = _useClassNames.m,
92
- be = _useClassNames.be,
93
- is = _useClassNames.is;
94
- var disabled = useDisabled(props.disabled);
95
- var size = useSize(props.size);
35
+ var selectRef = useRef();
36
+ var treeRef = useRef();
37
+ var key = useMemo(function () {
38
+ return props.nodeKey || props.valueKey || 'value';
39
+ }, [props.nodeKey, props.valueKey]);
96
40
  var _useControlled = useControlled(props.value, props.defaultValue),
97
41
  _useControlled2 = _slicedToArray(_useControlled, 2),
98
42
  value = _useControlled2[0],
99
43
  setValue = _useControlled2[1];
100
- var _useState = useState(false),
101
- _useState2 = _slicedToArray(_useState, 2),
102
- visible = _useState2[0],
103
- setVisible = _useState2[1];
104
- // 单选框显示文本
105
- var _useState3 = useState(''),
106
- _useState4 = _slicedToArray(_useState3, 2),
107
- label = _useState4[0],
108
- setLabel = _useState4[1];
109
- // 搜索关键词
110
- var _useState5 = useState(''),
111
- _useState6 = _slicedToArray(_useState5, 2),
112
- searchText = _useState6[0],
113
- setSearchText = _useState6[1];
114
- var _useState7 = useState((_props$expandedKeys = props.expandedKeys) !== null && _props$expandedKeys !== void 0 ? _props$expandedKeys : []),
115
- _useState8 = _slicedToArray(_useState7, 2),
116
- expandedKeys = _useState8[0],
117
- setExpandedKeys = _useState8[1];
118
- var _useState9 = useState(false),
119
- _useState10 = _slicedToArray(_useState9, 2),
120
- autoExpandParent = _useState10[0],
121
- setAutoExpandParent = _useState10[1];
122
- // 多选时input框高度
123
- var _useState11 = useState(32),
124
- _useState12 = _slicedToArray(_useState11, 2),
125
- inputHeight = _useState12[0],
126
- setInputHeight = _useState12[1];
127
- var _useState13 = useState({}),
128
- _useState14 = _slicedToArray(_useState13, 2),
129
- popperStyle = _useState14[0],
130
- setPopperStyle = _useState14[1];
131
- var _useState15 = useState([]),
132
- _useState16 = _slicedToArray(_useState15, 2),
133
- checkedNodes = _useState16[0],
134
- setCheckedNodes = _useState16[1];
135
- var groupRef = useRef(null);
136
- // 选择框容器div
137
- var containerRef = useRef(null);
138
- // 下拉选项容器div
139
- var contentRef = useRef(null);
140
- var wrapperRef = useRef(null);
141
- var popperInstRef = useRef(null);
142
- var treeRef = useRef(null);
143
- var dataList = useRef([]);
144
- var labelRef = useRef(null);
145
- var inputInstance = useRef(null);
146
- var searchInstance = useRef(null);
147
- var scrollbarRef = useRef(null);
148
- var _partitionHTMLProps = partitionHTMLProps(rest),
149
- _partitionHTMLProps2 = _slicedToArray(_partitionHTMLProps, 1),
150
- htmlInputProps = _partitionHTMLProps2[0];
151
- var _partitionAnimationPr = partitionAnimationProps(rest),
152
- _partitionAnimationPr2 = _slicedToArray(_partitionAnimationPr, 1),
153
- transitionProps = _partitionAnimationPr2[0];
154
- var _partitionPopperProps = partitionPopperPropsUtils(rest),
155
- _partitionPopperProps2 = _slicedToArray(_partitionPopperProps, 1),
156
- popperProps = _partitionPopperProps2[0];
157
- var _partitionTreePropsUt = partitionTreePropsUtils(rest),
158
- _partitionTreePropsUt2 = _slicedToArray(_partitionTreePropsUt, 1),
159
- treeProps = _partitionTreePropsUt2[0];
160
- useEffect(function () {
161
- labelRef.current = label;
162
- }, [label]);
163
-
164
- // 打开后搜索框自动获取焦点
165
- useEffect(function () {
166
- if (visible && filterable) {
167
- searchInstance.current.focus();
168
- }
169
- // eslint-disable-next-line react-hooks/exhaustive-deps
170
- }, [visible]);
171
- var treeData = useMemo(function () {
172
- // @ts-ignore
173
- return !multiple && !props.checkStrictly ? parentNotSelectable(props.treeData) : props.treeData;
174
- }, [multiple, props.checkStrictly, props.treeData]);
175
- var loop = useCallback(function (data, searchValue, parent) {
176
- return data.map(function (item) {
177
- var _item$fieldNames$chil;
178
- var index = item[fieldNames.title].indexOf(searchValue);
179
- var beforeStr = item[fieldNames.title].substring(0, index);
180
- var afterStr = item[fieldNames.title].slice(index + searchValue.length);
181
- var title = index > -1 ? /*#__PURE__*/React.createElement("span", null, beforeStr, /*#__PURE__*/React.createElement("span", {
182
- className: b('tree-search-value', false)
183
- }, searchValue), afterStr) : /*#__PURE__*/React.createElement("span", null, item[fieldNames.title]);
184
- var newItem = _objectSpread(_objectSpread({}, item), {}, {
185
- parentId: parent ? [parent.parentId, parent[fieldNames.key]].filter(function (item1) {
186
- return !!item1;
187
- }).join(',') : ''
188
- });
189
- dataList.current.push(newItem);
190
- if ((item === null || item === void 0 || (_item$fieldNames$chil = item[fieldNames.children]) === null || _item$fieldNames$chil === void 0 ? void 0 : _item$fieldNames$chil.length) > 0) {
191
- return _objectSpread(_objectSpread({}, item), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, fieldNames.title, title), "_title", item[fieldNames.title]), fieldNames.key, item[fieldNames.key]), fieldNames.children, loop(item.children, searchValue, newItem).filter(function (item1) {
192
- return !!item1;
193
- })), "disabled", item.disabled));
194
- }
195
- return index > -1 ? _objectSpread(_objectSpread({}, item), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, fieldNames.title, title), "_title", item[fieldNames.title]), fieldNames.key, item[fieldNames.key]), "disabled", item.disabled)) : null;
196
- });
197
- }, [b, fieldNames.children, fieldNames.key, fieldNames.title]);
198
- var filterTreeData = useMemo(function () {
199
- if (isEmpty(searchText)) {
200
- return treeData;
201
- }
202
- dataList.current = [];
203
- if ((treeData === null || treeData === void 0 ? void 0 : treeData.length) > 0) {
204
- var res = loop(treeData, searchText, null);
205
- return res.filter(function (item) {
206
- return !!item;
207
- });
208
- }
209
- return [];
210
- }, [loop, searchText, treeData]);
211
- var getExpandKeys = useCallback(function () {
212
- var _expandedKeys = flattenDeep(dataList.current.map(function (item) {
213
- if (item[fieldNames.title].indexOf(searchText) > -1) {
214
- var _item$parentId$split, _item$parentId;
215
- return (_item$parentId$split = (_item$parentId = item.parentId) === null || _item$parentId === void 0 ? void 0 : _item$parentId.split(',')) !== null && _item$parentId$split !== void 0 ? _item$parentId$split : [];
216
- }
217
- return null;
218
- })).filter(function (item, i, self) {
219
- return item && self.indexOf(item) === i;
220
- });
221
- setExpandedKeys(_expandedKeys);
222
- setAutoExpandParent(true);
223
- }, [fieldNames.title, searchText]);
224
-
225
- /** 搜索时 */
226
- useEffect(function () {
227
- var _popperInstRef$curren;
228
- (_popperInstRef$curren = popperInstRef.current) === null || _popperInstRef$curren === void 0 || _popperInstRef$curren.update();
229
- if (isNotEmpty(searchText)) {
230
- getExpandKeys();
231
- }
232
- // eslint-disable-next-line react-hooks/exhaustive-deps
233
- }, [searchText, popperStyle]);
234
- useEffect(function () {
235
- var _treeRef$current, _treeRef$current2;
236
- // @ts-ignore
237
- var flattenNodes = (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.flattenTreeData(expandedKeys);
238
- (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 || _treeRef$current2.setState({
239
- expandedKeys: expandedKeys,
240
- flattenNodes: flattenNodes
241
- });
242
- }, [expandedKeys]);
243
-
244
- // 多选框值
245
- var multiValue = useMemo(function () {
246
- if (multiple) {
247
- if (value instanceof Array) {
248
- return value;
249
- } else if (typeof value === 'string') {
250
- return [value];
251
- }
252
- }
253
- return [];
254
- }, [multiple, value]);
255
- var multiLabel = useMemo(function () {
256
- if (multiple && checkedNodes.length > 0) {
257
- return checkedNodes.map(function (item) {
258
- var _item$fieldNames$titl;
259
- return (_item$fieldNames$titl = item[fieldNames.title]) === null || _item$fieldNames$titl === void 0 ? void 0 : _item$fieldNames$titl.toString();
260
- });
261
- }
262
- return [];
263
- }, [checkedNodes, multiple, fieldNames.title]);
264
- var refreshWidth = useCallback(function () {
265
- var _current;
266
- var rect = (_current = (append || prepend ? groupRef : containerRef).current) === null || _current === void 0 ? void 0 : _current.getBoundingClientRect();
267
- var width = rect.width > 200 ? rect.width : 200;
268
- setPopperStyle(_objectSpread(_objectSpread({}, popperStyle), {}, {
269
- width: isEmpty(treeData) ? rect.width : width
270
- }));
271
- }, [append, popperStyle, prepend, treeData]);
272
- var fn = debounce(useCallback(function () {
273
- if (visible && contentRef.current) {
274
- refreshWidth();
275
- }
276
- }, [refreshWidth, visible]), 200);
277
-
278
- /** 动态计算下拉框宽度 */
279
- var handleEnter = useCallback(function (node) {
280
- if (visible && contentRef.current) {
281
- refreshWidth();
282
- // treeRef.current.scrollTo({ key: value });
283
- onEnter === null || onEnter === void 0 || onEnter(node);
284
- }
285
- }, [onEnter, refreshWidth, visible]);
286
-
287
- /** 关闭下拉框后清空搜索项 */
288
- var handleAfterLeave = useCallback(function (node) {
289
- setSearchText('');
290
- afterLeave === null || afterLeave === void 0 || afterLeave(node);
291
- searchInstance.current.onClear();
292
- }, [afterLeave]);
293
-
294
- /**
295
- * 展开/关闭下拉框
296
- * @param e
297
- * @returns
298
- */
299
- var onClick = useCallback(function (event) {
300
- event.stopPropagation();
301
- if (disabled) {
302
- setVisible(false);
303
- return;
304
- }
305
- setVisible(!visible);
306
- }, [disabled, visible]);
307
-
308
- /** 取消多选项 */
309
- var onCloseTag = useCallback(function (item) {
310
- var res = filter(multiValue, function (item1) {
311
- return item1 !== item;
312
- });
313
- setCheckedNodes(filter(checkedNodes, function (item1) {
314
- return item1.key !== item;
315
- }));
316
- setValue(res);
317
- onChange === null || onChange === void 0 || onChange(res, checkedNodes.map(function (item1) {
318
- var _item1$fieldNames$tit;
319
- return (_item1$fieldNames$tit = item1[fieldNames.title]) === null || _item1$fieldNames$tit === void 0 ? void 0 : _item1$fieldNames$tit.toString();
320
- }));
321
- }, [checkedNodes, fieldNames.title, multiValue, onChange, setValue]);
322
-
323
- /** 重置值 */
324
- var onClear = useCallback(function () {
325
- setValue(multiple ? [] : '');
326
- setLabel('');
327
- onChange === null || onChange === void 0 || onChange('', '');
328
- }, [multiple, onChange, setValue]);
329
-
330
- /** 清除搜索关键词 */
331
- var onClearSearch = useCallback(function (event) {
332
- event === null || event === void 0 || event.stopPropagation();
333
- setSearchText('');
334
- }, []);
335
-
336
- /** 搜索 */
337
- var onSearch = useCallback(function (val) {
338
- var keywords = trim(val);
339
- if (keywords === searchText) {
340
- return;
341
- } else if (isEmpty(keywords)) {
342
- setSearchText('');
343
- }
344
- setSearchText(keywords);
345
- }, [searchText]);
346
-
347
- /** 选中回调 */
348
- var handleSelect = useCallback(function (selectedKeys, info) {
349
- var _info$node$_title, _info$node, _info$node$fieldNames;
350
- info.nativeEvent.preventDefault();
351
- if (multiple) {
352
- return;
353
- }
354
- if (!(onBeforeClick !== null && onBeforeClick !== void 0 && onBeforeClick(info.node, info.nativeEvent))) {
355
- return;
356
- }
357
- // @ts-ignore
358
- var text = (_info$node$_title = (_info$node = info.node) === null || _info$node === void 0 ? void 0 : _info$node._title) !== null && _info$node$_title !== void 0 ? _info$node$_title : (_info$node$fieldNames = info.node[fieldNames.title]) === null || _info$node$fieldNames === void 0 ? void 0 : _info$node$fieldNames.toString();
359
- setLabel(text);
360
- // @ts-ignore
361
- setValue(selectedKeys);
362
- // @ts-ignore
363
- onChange === null || onChange === void 0 || onChange(multiple ? selectedKeys : head(selectedKeys), text);
364
- !multiple && onClick(info.nativeEvent);
365
- // @ts-ignore
366
- onSelect === null || onSelect === void 0 || onSelect(selectedKeys, info);
367
- onClickNode === null || onClickNode === void 0 || onClickNode(info.node, info.nativeEvent);
368
- }, [multiple, onBeforeClick, fieldNames.title, setValue, onChange, onClick, onSelect, onClickNode]);
369
- var handleCheck = useCallback(function (checked, info) {
370
- // @ts-ignore
371
- setValue(checked);
372
- setCheckedNodes(info.checkedNodes);
373
- setLabel('');
374
- onChange === null || onChange === void 0 || onChange(checked instanceof Array ? checked : checked === null || checked === void 0 ? void 0 : checked.checked, info.checkedNodes.map(function (item) {
375
- return item[fieldNames.title];
376
- }));
377
- }, [fieldNames.title, onChange, setValue]);
378
-
379
- /** 多选框选择选项后,动态调整input框高度 */
380
- useEffect(function () {
381
- var _wrapperRef$current, _popperInstRef$curren2;
382
- var height = (wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientHeight) + 4;
383
- setInputHeight(height < 32 ? 32 : height);
384
- popperInstRef === null || popperInstRef === void 0 || (_popperInstRef$curren2 = popperInstRef.current) === null || _popperInstRef$curren2 === void 0 || _popperInstRef$curren2.update();
385
- }, [multiValue]);
386
- useEffect(function () {
387
- window.addEventListener('resize', fn);
388
- return function () {
389
- window.removeEventListener('resize', fn);
390
- };
391
- // eslint-disable-next-line react-hooks/exhaustive-deps
392
- }, []);
393
- useEffect(function () {
394
- var _treeRef$current$stat, _treeRef$current3;
395
- var _ref = (_treeRef$current$stat = (_treeRef$current3 = treeRef.current) === null || _treeRef$current3 === void 0 ? void 0 : _treeRef$current3.state) !== null && _treeRef$current$stat !== void 0 ? _treeRef$current$stat : {},
396
- _ref$selectedKeys = _ref.selectedKeys,
397
- selectedKeys = _ref$selectedKeys === void 0 ? [] : _ref$selectedKeys,
398
- _ref$keyEntities = _ref.keyEntities,
399
- keyEntities = _ref$keyEntities === void 0 ? {} : _ref$keyEntities,
400
- _ref$fieldNames = _ref.fieldNames,
401
- _fieldNames = _ref$fieldNames === void 0 ? {} : _ref$fieldNames;
402
- if (isEmpty(labelRef.current) && isNotEmpty(selectedKeys)) {
403
- var labels = selectedKeys.filter(function (item) {
404
- return isNotEmpty(item);
405
- }).map(function (item) {
406
- var _keyEntities$item$nod, _keyEntities$item;
407
- // @ts-ignore
408
- return (_keyEntities$item$nod = (_keyEntities$item = keyEntities[item]) === null || _keyEntities$item === void 0 ? void 0 : _keyEntities$item.node[_fieldNames.title]) !== null && _keyEntities$item$nod !== void 0 ? _keyEntities$item$nod : null;
409
- });
410
- if (labels.length > 0) {
411
- setLabel(labels.join(','));
412
- }
413
- onLoadSuccess === null || onLoadSuccess === void 0 || onLoadSuccess(value, labels);
44
+ var _useForceUpdate = useForceUpdate(),
45
+ forceUpdate = _useForceUpdate.forceUpdate;
46
+ var handleChange = useCallback(function (val) {
47
+ var _props$onChange, _props;
48
+ setValue(val);
49
+ (_props$onChange = (_props = props).onChange) === null || _props$onChange === void 0 || _props$onChange.call(_props, val);
50
+ }, [setValue, props]);
51
+ var selectProps = useSelect(props, {
52
+ selectRef: selectRef,
53
+ treeRef: treeRef,
54
+ key: key
55
+ });
56
+ var _useTree = useTree(props, {
57
+ selectRef: selectRef,
58
+ treeRef: treeRef,
59
+ key: key,
60
+ value: value,
61
+ setValue: setValue
62
+ }),
63
+ cacheOptions = _useTree.cacheOptions,
64
+ treeProps = _objectWithoutProperties(_useTree, _excluded);
65
+ useMount(function () {
66
+ if (isNotEmpty(value)) {
67
+ forceUpdate();
414
68
  }
415
- // eslint-disable-next-line react-hooks/exhaustive-deps
416
- }, [treeData]);
69
+ });
417
70
  useImperativeHandle(ref, function () {
418
71
  return {
419
- popperInstRef: popperInstRef.current,
420
- label: label,
421
- setLabel: setLabel,
422
- inputInstance: inputInstance.current,
423
- searchInstance: searchInstance.current,
424
- getValue: function getValue() {
425
- return value;
426
- },
427
- setValue: setValue,
428
- onClear: onClear,
429
- setVisible: setVisible
72
+ getValue: selectRef.current.getValue,
73
+ setVisible: selectRef.current.setVisible,
74
+ filter: treeRef.current.filter,
75
+ updateKeyChildren: treeRef.current.updateKeyChildren,
76
+ getCheckedNodes: treeRef.current.getCheckedNodes,
77
+ setCheckedNodes: treeRef.current.setCheckedNodes,
78
+ getCheckedKeys: treeRef.current.getCheckedKeys,
79
+ setCheckedKeys: treeRef.current.setCheckedKeys,
80
+ setChecked: treeRef.current.setChecked,
81
+ getHalfCheckedNodes: treeRef.current.getHalfCheckedNodes,
82
+ getHalfCheckedKeys: treeRef.current.getHalfCheckedKeys,
83
+ getCurrentKey: treeRef.current.getCurrentKey,
84
+ getCurrentNode: treeRef.current.getCurrentNode,
85
+ setCurrentKey: treeRef.current.setCurrentKey,
86
+ setCurrentNode: treeRef.current.setCurrentNode,
87
+ getNode: treeRef.current.getNode,
88
+ remove: treeRef.current.remove,
89
+ append: treeRef.current.append,
90
+ insertBefore: treeRef.current.insertBefore,
91
+ insertAfter: treeRef.current.insertAfter
430
92
  };
431
- });
432
- var content = useMemo(function () {
433
- return /*#__PURE__*/React.createElement("div", {
434
- className: classNames(b(), m(_defineProperty({}, size, size)), is({
435
- disabled: disabled
436
- }), props.className),
437
- style: append || prepend ? null : props.style,
438
- ref: append || prepend ? groupRef : containerRef
439
- }, /*#__PURE__*/React.createElement("div", {
440
- className: e(_templateObject || (_templateObject = _taggedTemplateLiteral(["trigger"])))
441
- }, multiple && /*#__PURE__*/React.createElement("div", {
442
- className: e(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["tags"])))
443
- }, /*#__PURE__*/React.createElement("div", {
444
- className: classNames(b(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["tags-wrapper"]))), 'has-prefix'),
445
- onClick: onClick,
446
- ref: wrapperRef
447
- }, (collapseTags ? multiLabel.slice(0, 1) : multiLabel).map(function (item, i) {
448
- return /*#__PURE__*/React.createElement(Tag, {
449
- type: "info",
450
- onClick: onClick,
451
- onClose: function onClose() {
452
- return onCloseTag(multiValue[i]);
453
- }
454
- }, item);
455
- }), collapseTags && (multiValue === null || multiValue === void 0 ? void 0 : multiValue.length) > 1 && /*#__PURE__*/React.createElement(Tag, {
456
- type: "info",
457
- onClick: onClick
458
- }, "+ ".concat(multiValue.length - 1)))), /*#__PURE__*/React.createElement(Input, _extends({
459
- value: label,
460
- placeholder: placeholder,
461
- readOnly: true,
462
- clearable: clearable && !disabled,
463
- disabled: disabled,
464
- size: size,
465
- onClick: onClick,
466
- onClear: onClear,
467
- plain: props.plain,
468
- className: is({
469
- active: visible
470
- }),
471
- error: error,
472
- warning: warning,
473
- innerStyle: multiple ? {
474
- height: inputHeight
475
- } : {},
476
- suffix: /*#__PURE__*/React.createElement(Icon, {
477
- prefix: "fal",
478
- name: "angle-down",
479
- className: visible ? 'fa-rotate-180' : '',
480
- onClick: onClick
481
- }),
482
- ref: inputInstance
483
- }, omit(htmlInputProps, ['onInput', 'disabled', 'size', 'prefix', 'onChange', 'style'])))), /*#__PURE__*/React.createElement(Popper, _extends({
484
- referenceElement: append || prepend ? groupRef : containerRef,
485
- visible: visible,
486
- popperStyle: popperStyle,
487
- popperInstRef: popperInstRef,
488
- onDestroy: function onDestroy() {
489
- return setVisible(false);
490
- },
491
- onEnter: handleEnter,
492
- afterLeave: handleAfterLeave,
493
- placement: 'bottom-start',
494
- transitionAppear: true
495
- }, transitionProps, popperProps), /*#__PURE__*/React.createElement("div", {
496
- className: classNames(b(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["dorpdown"]))), is({
497
- multiple: multiple
498
- })),
499
- onClick: function onClick(event) {
500
- return event.stopPropagation();
501
- },
502
- ref: contentRef
503
- }, /*#__PURE__*/React.createElement(React.Fragment, null, filterable && /*#__PURE__*/React.createElement("div", {
504
- className: e('search'),
505
- onClick: function onClick(event) {
506
- return event.stopPropagation();
507
- }
508
- }, /*#__PURE__*/React.createElement(Input
509
- // value={searchText}
510
- , {
511
- ref: searchInstance,
512
- style: {
513
- width: '100%'
514
- },
515
- placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD",
516
- clearable: true,
517
- plain: true,
518
- debounceInput: true,
519
- onClear: onClearSearch,
520
- onChange: onSearch,
521
- prefix: /*#__PURE__*/React.createElement(Icon, {
522
- prefix: "fal",
523
- name: "search"
524
- })
525
- }), /*#__PURE__*/React.createElement(Divider, {
526
- style: {
527
- margin: 0
528
- }
529
- })), /*#__PURE__*/React.createElement(Scrollbar, {
530
- ref: scrollbarRef,
531
- wrapClass: be('dropdown', 'wrap'),
532
- viewClass: be('dropdown', 'list')
533
- }, (filterTreeData === null || filterTreeData === void 0 ? void 0 : filterTreeData.length) === 0 || loading ? /*#__PURE__*/React.createElement("li", {
534
- className: classNames(be('dropdown', 'item'), 'no-data'),
535
- key: "no-data",
536
- onClick: function onClick() {
537
- return setVisible(false);
538
- }
539
- }, loading ? loadingText : noDataText) : /*#__PURE__*/React.createElement(DirectoryTree, _extends({
540
- ref: treeRef
541
- // height={filterable ? 240 : 248}
542
- ,
543
- selectedKeys: value instanceof Array ? value : [value],
544
- checkedKeys: value instanceof Array ? value : [value]
545
- // defaultExpandedKeys={value instanceof Array ? value : [value]}
546
- ,
547
- treeData: filterTreeData,
548
- checkable: multiple,
549
- showIcon: false
550
- // @ts-ignore
551
- ,
552
- onSelect: handleSelect,
553
- onCheck: handleCheck,
554
- fieldNames: fieldNames,
555
- onExpand: function onExpand(_expandedKeys, info) {
556
- _onExpand === null || _onExpand === void 0 || _onExpand(_expandedKeys, info);
557
- // setExpandedKeys(_expandedKeys);
558
- setAutoExpandParent(false);
559
- setTimeout(function () {
560
- var _popperInstRef$curren3, _scrollbarRef$current;
561
- (_popperInstRef$curren3 = popperInstRef.current) === null || _popperInstRef$curren3 === void 0 || _popperInstRef$curren3.update();
562
- (_scrollbarRef$current = scrollbarRef.current) === null || _scrollbarRef$current === void 0 || _scrollbarRef$current.update();
563
- }, 200);
564
- }
565
- // expandedKeys={expandedKeys}
566
- ,
567
- autoExpandParent: autoExpandParent
568
- }, omit(treeProps, ['checkStrictly', 'expandedKeys', 'selectedKeys', 'checkedKeys', 'treeData', 'checkable', 'showIcon', 'onSelect', 'onCheck']))))))));
569
- }, [b, m, size, is, disabled, props.className, props.style, props.plain, append, prepend, e, multiple, onClick, collapseTags, multiLabel, multiValue, label, placeholder, clearable, onClear, visible, error, warning, inputHeight, htmlInputProps, popperStyle, handleEnter, handleAfterLeave, transitionProps, popperProps, filterable, onClearSearch, onSearch, be, filterTreeData, loading, loadingText, noDataText, value, handleSelect, handleCheck, fieldNames, autoExpandParent, treeProps, onCloseTag, _onExpand]);
570
- if (append || prepend) {
571
- return /*#__PURE__*/React.createElement(InputGroup, {
572
- prepend: prepend,
573
- append: append,
574
- ref: groupRef,
575
- style: props.style
576
- }, content);
577
- } else {
578
- return content;
579
- }
580
- }
581
- var ForwardTreeSelect = /*#__PURE__*/forwardRef(InternalTreeSelect);
582
- var TreeSelect = ForwardTreeSelect;
583
- TreeSelect.displayName = 'TreeSelect';
93
+ }, [selectRef, treeRef]);
94
+ return /*#__PURE__*/React.createElement(Select, _extends({
95
+ ref: selectRef
96
+ }, selectProps, {
97
+ value: value,
98
+ onChange: handleChange,
99
+ unmountOnExit: false
100
+ }), /*#__PURE__*/React.createElement(CacheOptions, {
101
+ data: cacheOptions,
102
+ select: selectRef
103
+ }), /*#__PURE__*/React.createElement(Tree, _extends({
104
+ ref: treeRef
105
+ }, treeProps)));
106
+ });
107
+ TreeSelect.displayName = 'ElTreeSelect';
584
108
  export default TreeSelect;