@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,381 +1,99 @@
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 _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
3
- var _excluded = ["filterable", "clearable", "error", "warning", "multiple", "collapseTags", "maxCollapseTags", "collapseTagsTooltip", "tagType", "tagEffect", "showArrow", "collapseTips", "filterMethod", "onChange", "allowCreate", "onEnter", "afterLeave", "prepend", "append", "onLoadSuccess", "onVisibleChange", "onRemoveTag", "onClear"];
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23;
4
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); }
5
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
6
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
7
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
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; }
11
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; }
12
6
  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; }
13
7
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
14
8
  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); }
15
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
- 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."); }
17
- 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); }
18
- 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; }
19
- 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; } }
20
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
- 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; }
22
- 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; }
9
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23
10
  import classNames from 'classnames';
24
- import filter from 'lodash/filter';
25
- import find from 'lodash/find';
26
- import max from 'lodash/max';
27
- import min from 'lodash/min';
28
- import omit from 'lodash/omit';
29
- import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
30
- import { useTranslation } from 'react-i18next';
31
- import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext";
11
+ import React, { forwardRef, useImperativeHandle } from 'react';
32
12
  import Icon from "../Icon/Icon";
33
- import Input from "../Input/Input";
34
13
  import Popper from "../Popper/Popper";
35
- import { Tag } from "../Tag";
14
+ import Tag from "../Tag/Tag";
36
15
  import Tooltip from "../Tooltip/Tooltip";
37
- import { isNotEmpty, mergeDefaultProps } from "../Util";
38
- import { partitionAnimationProps, partitionHTMLProps, partitionPopperPropsUtils, useChildrenInstance, useClassNames, useControlled, useDisabled, useSize } from "../hooks";
16
+ import { isEmpty, isNotEmpty } from "../Util";
17
+ import { useCalcInputWidth } from "../hooks/useCalcInputWidth";
39
18
  import SelectDropdown from "./SelectDropdown";
19
+ import useSelect from "./useSelect";
40
20
  var SelectCore = /*#__PURE__*/forwardRef(function (props, ref) {
41
- var _useConfigProvider = useConfigProvider(),
42
- locale = _useConfigProvider.locale;
43
- var _useTranslation = useTranslation(),
44
- t = _useTranslation.t;
45
- props = mergeDefaultProps({
46
- placeholder: t('el.select.placeholder', {
47
- lng: locale
48
- }),
49
- noDataText: t('el.select.noData', {
50
- lng: locale
51
- }),
52
- noMatchText: t('el.select.noMatch', {
53
- lng: locale
54
- }),
55
- loadingText: /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Icon, {
56
- prefix: "fas",
57
- name: "spinner",
58
- spin: true
59
- }), " ", t('el.select.loading', {
60
- lng: locale
61
- })),
62
- showArrow: true,
63
- clearable: true,
64
- filterable: false,
65
- error: false,
66
- required: false,
67
- disabled: false,
68
- maxWidth: 500,
69
- collapseTagsTooltip: true,
70
- maxCollapseTags: 1,
71
- tagType: 'info',
72
- tagEffect: 'light'
73
- }, props);
74
- var _useClassNames = useClassNames('select'),
75
- b = _useClassNames.b,
76
- e = _useClassNames.e,
77
- be = _useClassNames.be,
78
- m = _useClassNames.m,
79
- is = _useClassNames.is;
80
- // 选择框容器div
81
- var containerRef = useRef(null);
82
- // 下拉选项容器div
83
- var contentRef = useRef(null);
84
- var wrapperRef = useRef(null);
85
- var createInputRef = useRef(null);
86
- var popperInstRef = useRef(null);
87
- var selectDropdownRef = useRef(null);
88
- var inputInstance = useRef(null);
89
- var searchInstance = useRef(null);
90
- var tagTooltipRef = useRef(null);
91
- var _props = props,
21
+ var _props = useSelect(props);
22
+ var nsSelect = _props.nsSelect,
23
+ containerRef = _props.containerRef,
24
+ contentRef = _props.contentRef,
25
+ wrapperRef = _props.wrapperRef,
26
+ suffixWrapperRef = _props.suffixWrapperRef,
27
+ popperInstRef = _props.popperInstRef,
28
+ selectDropdownRef = _props.selectDropdownRef,
29
+ tagTooltipRef = _props.tagTooltipRef,
30
+ inputRef = _props.inputRef,
31
+ inputValue = _props.inputValue,
32
+ setInputHovering = _props.setInputHovering,
33
+ setInputValue = _props.setInputValue,
34
+ setIsFocused = _props.setIsFocused,
92
35
  filterable = _props.filterable,
93
- clearable = _props.clearable,
94
- error = _props.error,
95
- warning = _props.warning,
36
+ remote = _props.remote,
37
+ clearIcon = _props.clearIcon,
96
38
  multiple = _props.multiple,
97
- _props$collapseTags = _props.collapseTags,
98
- collapseTags = _props$collapseTags === void 0 ? false : _props$collapseTags,
39
+ collapseTags = _props.collapseTags,
99
40
  maxCollapseTags = _props.maxCollapseTags,
100
41
  collapseTagsTooltip = _props.collapseTagsTooltip,
101
42
  tagType = _props.tagType,
102
43
  tagEffect = _props.tagEffect,
103
44
  showArrow = _props.showArrow,
104
45
  collapseTips = _props.collapseTips,
105
- filterMethod = _props.filterMethod,
106
- onChange = _props.onChange,
107
46
  allowCreate = _props.allowCreate,
108
- onEnter = _props.onEnter,
109
- afterLeave = _props.afterLeave,
110
47
  prepend = _props.prepend,
111
48
  append = _props.append,
112
- onLoadSuccess = _props.onLoadSuccess,
113
- onVisibleChange = _props.onVisibleChange,
114
- onRemoveTag = _props.onRemoveTag,
115
- onClearProp = _props.onClear,
116
- rest = _objectWithoutProperties(_props, _excluded);
117
- var _partitionHTMLProps = partitionHTMLProps(rest),
118
- _partitionHTMLProps2 = _slicedToArray(_partitionHTMLProps, 1),
119
- htmlInputProps = _partitionHTMLProps2[0];
120
- var _partitionAnimationPr = partitionAnimationProps(rest),
121
- _partitionAnimationPr2 = _slicedToArray(_partitionAnimationPr, 1),
122
- transitionProps = _partitionAnimationPr2[0];
123
- var _partitionPopperProps = partitionPopperPropsUtils(rest),
124
- _partitionPopperProps2 = _slicedToArray(_partitionPopperProps, 1),
125
- popperProps = _partitionPopperProps2[0];
126
- var _useControlled = useControlled(props.value, props.defaultValue),
127
- _useControlled2 = _slicedToArray(_useControlled, 2),
128
- value = _useControlled2[0],
129
- setValue = _useControlled2[1];
130
- var _useState = useState(''),
131
- _useState2 = _slicedToArray(_useState, 2),
132
- createItem = _useState2[0],
133
- setCreateItem = _useState2[1];
134
- var disabled = useDisabled(props.disabled);
135
- var size = useSize(props.size);
136
-
137
- // 多选框值
138
- var multiValue = useMemo(function () {
139
- if (multiple) {
140
- if (value instanceof Array) {
141
- return value;
142
- } else if (typeof value === 'string') {
143
- return [value];
144
- }
145
- }
146
- return [];
147
- }, [multiple, value]);
148
- // 单选框显示文本
149
- var _useState3 = useState(''),
150
- _useState4 = _slicedToArray(_useState3, 2),
151
- label = _useState4[0],
152
- setLabel = _useState4[1];
153
- var _useState5 = useState(false),
154
- _useState6 = _slicedToArray(_useState5, 2),
155
- visible = _useState6[0],
156
- setVisible = _useState6[1];
157
- var _useState7 = useState({}),
158
- _useState8 = _slicedToArray(_useState7, 2),
159
- popperStyle = _useState8[0],
160
- setPopperStyle = _useState8[1];
161
- // 多选时input框高度
162
- var _useState9 = useState(32),
163
- _useState10 = _slicedToArray(_useState9, 2),
164
- inputHeight = _useState10[0],
165
- setInputHeight = _useState10[1];
166
- // 占位符
167
- var placeholder = useMemo(function () {
168
- return multiple && isNotEmpty(multiValue) || isNotEmpty(createItem) ? '' : props.placeholder;
169
- }, [createItem, multiValue, multiple, props.placeholder]);
170
-
171
- /** 获取所有的option组件 */
172
- var getOptionInstance = useChildrenInstance('ElOption', 'ElOptionGroup');
173
- var optionData = useMemo(function () {
174
- if (props.children) {
175
- var componentChildren = getOptionInstance(props.children);
176
- return componentChildren.map(function (node) {
177
- var _node$props$label, _node$props;
178
- return {
179
- label: (_node$props$label = (_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.label) !== null && _node$props$label !== void 0 ? _node$props$label : node.props.value,
180
- value: node.props.value
181
- };
182
- });
183
- }
184
- return [];
185
- }, [getOptionInstance, props.children]);
186
- var multiLabel = useMemo(function () {
187
- if (multiple) {
188
- return multiValue.map(function (item) {
189
- var _find$label, _find;
190
- return (_find$label = (_find = find(optionData, {
191
- value: item
192
- })) === null || _find === void 0 ? void 0 : _find.label) !== null && _find$label !== void 0 ? _find$label : item;
193
- });
194
- }
195
- return [];
196
- }, [multiValue, multiple, optionData]);
197
-
198
- /** 动态计算下拉框宽度 */
199
- var handleEnter = useCallback(function (node) {
200
- if (visible && contentRef.current && containerRef.current) {
201
- var _selectDropdownRef$cu, _selectDropdownRef$cu2;
202
- var rect = containerRef.current.getBoundingClientRect();
203
- // const { width } = contentRef.current.getBoundingClientRect();
204
- var options = Array.from(contentRef.current.querySelectorAll(".".concat(be('dropdown', 'item'), ">span")));
205
- var maxWidth = (options.length > 0 ? max(options.map(function (item) {
206
- var _item$offsetWidth;
207
- return (_item$offsetWidth = item === null || item === void 0 ? void 0 : item.offsetWidth) !== null && _item$offsetWidth !== void 0 ? _item$offsetWidth : 0;
208
- })) : 0) + 35;
209
- if (maxWidth && maxWidth < rect.width) {
210
- setPopperStyle(_objectSpread(_objectSpread({}, popperStyle), {}, {
211
- width: rect.width
212
- }));
213
- } else {
214
- setPopperStyle(_objectSpread(_objectSpread({}, popperStyle), {}, {
215
- width: min([maxWidth, props.maxWidth])
216
- }));
217
- }
218
- (_selectDropdownRef$cu = selectDropdownRef.current) === null || _selectDropdownRef$cu === void 0 || _selectDropdownRef$cu.scrollToSelected();
219
- onEnter === null || onEnter === void 0 || onEnter(node);
220
- (_selectDropdownRef$cu2 = selectDropdownRef.current) === null || _selectDropdownRef$cu2 === void 0 || _selectDropdownRef$cu2.onEnter();
221
- }
222
- }, [be, onEnter, popperStyle, props.maxWidth, visible]);
223
-
224
- /** 关闭下拉框后清空搜索项 */
225
- var handleAfterLeave = useCallback(function (node) {
226
- var _selectDropdownRef$cu3;
227
- (_selectDropdownRef$cu3 = selectDropdownRef.current) === null || _selectDropdownRef$cu3 === void 0 || _selectDropdownRef$cu3.clear();
228
- afterLeave === null || afterLeave === void 0 || afterLeave(node);
229
- }, [afterLeave]);
230
-
231
- /**
232
- * 展开/关闭下拉框
233
- * @param e
234
- * @returns
235
- */
236
- var onClick = useCallback(function (event) {
237
- event.preventDefault();
238
- event === null || event === void 0 || event.stopPropagation();
239
- if (disabled) {
240
- setVisible(false);
241
- return;
242
- }
243
- setVisible(!visible);
244
- }, [disabled, visible]);
245
-
246
- /** 取消多选项 */
247
- var onCloseTag = useCallback(function (item) {
248
- var res = filter(multiValue, function (item1) {
249
- return item1 !== item;
250
- });
251
- setValue(res);
252
- onChange === null || onChange === void 0 || onChange(res, multiLabel);
253
- onRemoveTag === null || onRemoveTag === void 0 || onRemoveTag(item);
254
- setTimeout(function () {
255
- if (tagTooltipRef.current) {
256
- tagTooltipRef.current.updatePopper();
257
- }
258
- }, 50);
259
- }, [multiLabel, multiValue, onChange, onRemoveTag, setValue]);
260
-
261
- /** 重置值 */
262
- var onClear = useCallback(function () {
263
- var _selectDropdownRef$cu4;
264
- setValue(multiple ? [] : '');
265
- setLabel('');
266
- (_selectDropdownRef$cu4 = selectDropdownRef.current) === null || _selectDropdownRef$cu4 === void 0 || _selectDropdownRef$cu4.hover('');
267
- onChange === null || onChange === void 0 || onChange(multiple ? [] : '', multiple ? [] : '');
268
- setCreateItem('');
269
- onClearProp === null || onClearProp === void 0 || onClearProp();
270
- }, [multiple, onChange, onClearProp, setValue]);
271
-
272
- /** 选中项回调 */
273
- var onChoose = useCallback(function (val, text, event) {
274
- event.preventDefault();
275
- if (isNotEmpty(val)) {
276
- var result = val;
277
- if (multiple) {
278
- if (multiValue.includes(val)) {
279
- result = filter(multiValue, function (item) {
280
- return item !== val;
281
- });
282
- } else {
283
- result = [].concat(_toConsumableArray(multiValue), [val]);
284
- }
285
- } else {
286
- // 当选中项不是创建项时,清空创建项
287
- if (val !== createItem) {
288
- setCreateItem('');
289
- }
290
- }
291
- setValue(result);
292
- setLabel(multiple ? '' : text);
293
- onChange === null || onChange === void 0 || onChange(result, multiple ? result.map(function (item) {
294
- var _find$label2, _find2;
295
- return (_find$label2 = (_find2 = find(optionData, {
296
- value: item
297
- })) === null || _find2 === void 0 ? void 0 : _find2.label) !== null && _find$label2 !== void 0 ? _find$label2 : item;
298
- }) : text);
299
- !multiple && onClick(event);
300
- } else {
301
- setVisible(false);
302
- }
303
- }, [multiple, setValue, onChange, multiValue, onClick, createItem, optionData]);
304
-
305
- /** 监听加载状态,加载中时自动打开下拉 */
306
- // useEffect(() => {
307
- // setVisible(props.loading);
308
- // popperInstRef.current?.update();
309
- // }, [props.loading]);
310
-
311
- // 打开后搜索框自动获取焦点
312
- useEffect(function () {
313
- if (visible && filterable && !allowCreate) {
314
- var _searchInstance$curre;
315
- (_searchInstance$curre = searchInstance.current) === null || _searchInstance$curre === void 0 || _searchInstance$curre.focus();
316
- }
317
- onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(visible);
318
- // eslint-disable-next-line react-hooks/exhaustive-deps
319
- }, [visible]);
320
-
321
- /** 搜索时 */
322
- useEffect(function () {
323
- if (popperInstRef.current && popperInstRef.current.update) {
324
- var _popperInstRef$curren;
325
- (_popperInstRef$curren = popperInstRef.current) === null || _popperInstRef$curren === void 0 || _popperInstRef$curren.update();
326
- }
327
- }, [popperStyle]);
328
-
329
- /** 多选框选择选项后,动态调整input框高度 */
330
- useEffect(function () {
331
- setTimeout(function () {
332
- if (wrapperRef.current) {
333
- var _wrapperRef$current;
334
- var height = ((_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientHeight) + 4;
335
- setInputHeight(height <= 32 ? 32 : height);
336
- }
337
- if (popperInstRef.current && popperInstRef.current.update) {
338
- var _popperInstRef$curren2;
339
- (_popperInstRef$curren2 = popperInstRef.current) === null || _popperInstRef$curren2 === void 0 || _popperInstRef$curren2.update();
340
- }
341
- }, 50);
342
- }, [multiValue]);
343
-
344
- /** 初次加载时反显选中文本 */
345
- useEffect(function () {
346
- var labels = (value instanceof Array ? value : [value]).map(function (item) {
347
- var _find3;
348
- return (_find3 = find(optionData, {
349
- value: item
350
- })) === null || _find3 === void 0 ? void 0 : _find3.label;
351
- }).filter(function (item) {
352
- return !!item;
353
- });
354
- if (labels.length > 0) {
355
- setLabel(multiple ? '' : labels.join(','));
356
- } else {
357
- if (isNotEmpty(value)) {
358
- setLabel(value instanceof Array ? value.join(',') : value + '');
359
- } else {
360
- setLabel('');
361
- }
362
- }
363
- onLoadSuccess === null || onLoadSuccess === void 0 || onLoadSuccess(value, labels);
364
- }, [multiple, onLoadSuccess, optionData, value]);
49
+ transitionProps = _props.transitionProps,
50
+ popperProps = _props.popperProps,
51
+ value = _props.value,
52
+ setValue = _props.setValue,
53
+ disabled = _props.disabled,
54
+ plain = _props.plain,
55
+ size = _props.size,
56
+ multiValue = _props.multiValue,
57
+ multiOptionData = _props.multiOptionData,
58
+ label = _props.label,
59
+ visible = _props.visible,
60
+ setVisible = _props.setVisible,
61
+ popperStyle = _props.popperStyle,
62
+ placeholder = _props.placeholder,
63
+ shouldShowPlaceholder = _props.shouldShowPlaceholder,
64
+ handleEnter = _props.handleEnter,
65
+ handleAfterLeave = _props.handleAfterLeave,
66
+ toggleMenu = _props.toggleMenu,
67
+ onCloseTag = _props.onCloseTag,
68
+ onClear = _props.onClear,
69
+ onChoose = _props.onChoose,
70
+ labelFormat = _props.labelFormat,
71
+ iconComponent = _props.iconComponent,
72
+ iconReverse = _props.iconReverse,
73
+ handleCompositionStart = _props.handleCompositionStart,
74
+ handleCompositionUpdate = _props.handleCompositionUpdate,
75
+ handleCompositionEnd = _props.handleCompositionEnd,
76
+ tag = _props.tag,
77
+ cachedOptions = _props.cachedOptions;
78
+ var b = nsSelect.b,
79
+ e = nsSelect.e,
80
+ m = nsSelect.m,
81
+ is = nsSelect.is;
82
+ var _useCalcInputWidth = useCalcInputWidth(),
83
+ calculatorRef = _useCalcInputWidth.calculatorRef,
84
+ inputStyle = _useCalcInputWidth.inputStyle;
365
85
  useImperativeHandle(ref, function () {
366
86
  return {
367
87
  popperInstRef: popperInstRef,
368
- selectedLabel: label,
369
- setLabel: setLabel,
370
- inputInstance: inputInstance,
371
- searchInstance: searchInstance,
372
88
  getValue: function getValue() {
373
89
  return value;
374
90
  },
375
91
  setValue: setValue,
376
92
  onClear: onClear,
377
93
  clear: onClear,
378
- setVisible: setVisible
94
+ setVisible: setVisible,
95
+ cachedOptions: cachedOptions,
96
+ onChoose: onChoose
379
97
  };
380
98
  });
381
99
  return /*#__PURE__*/React.createElement("div", {
@@ -383,163 +101,168 @@ var SelectCore = /*#__PURE__*/forwardRef(function (props, ref) {
383
101
  disabled: disabled
384
102
  }), m(_defineProperty({}, size, size)), props.className),
385
103
  style: append || prepend ? {} : props.style,
386
- ref: containerRef
387
- }, /*#__PURE__*/React.createElement("div", {
388
- className: e(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["trigger"])))
389
- }, multiple && /*#__PURE__*/React.createElement("div", {
390
- className: e(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["tags"]))),
104
+ ref: containerRef,
391
105
  onMouseEnter: function onMouseEnter() {
392
- var _inputInstance$curren;
393
- return (_inputInstance$curren = inputInstance.current) === null || _inputInstance$curren === void 0 ? void 0 : _inputInstance$curren.showClear(multiple ? multiValue.join(',') : createItem || label);
106
+ return setInputHovering(true);
394
107
  },
395
108
  onMouseLeave: function onMouseLeave() {
396
- var _inputInstance$curren2;
397
- return (_inputInstance$curren2 = inputInstance.current) === null || _inputInstance$curren2 === void 0 ? void 0 : _inputInstance$curren2.hideClear();
109
+ return setInputHovering(false);
398
110
  }
399
111
  }, /*#__PURE__*/React.createElement("div", {
400
- className: classNames(b(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["tags-wrapper"]))), 'has-prefix'),
401
- onClick: onClick,
402
- ref: wrapperRef
403
- }, (collapseTags ? multiLabel.slice(0, maxCollapseTags) : multiLabel).map(function (item, i) {
404
- return /*#__PURE__*/React.createElement(Tag, {
112
+ ref: wrapperRef,
113
+ className: classNames(e(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["wrapper"]))), is({
114
+ disabled: disabled,
115
+ filterable: filterable,
116
+ plain: plain
117
+ })),
118
+ style: append || prepend ? props.style : {},
119
+ onClick: toggleMenu
120
+ }, /*#__PURE__*/React.createElement("div", {
121
+ className: classNames(e(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["selection"]))), is({
122
+ near: multiple && multiValue.length > 0
123
+ }))
124
+ }, multiple && (tag ? tag({
125
+ data: multiOptionData,
126
+ selectDisabled: disabled,
127
+ deleteTag: onCloseTag
128
+ }) : /*#__PURE__*/React.createElement(React.Fragment, null, (collapseTags ? multiOptionData.slice(0, maxCollapseTags) : multiOptionData).map(function (item, i) {
129
+ var _item$label;
130
+ return /*#__PURE__*/React.createElement("div", {
131
+ key: "".concat(item.value, "_").concat(i),
132
+ className: e(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["selected-item"])))
133
+ }, /*#__PURE__*/React.createElement(Tag, {
405
134
  type: tagType,
406
- key: multiValue[i],
407
135
  closable: !disabled,
408
136
  effect: tagEffect,
409
- onClick: onClick,
410
- onClose: function onClose() {
411
- return onCloseTag(multiValue[i]);
137
+ onClick: toggleMenu,
138
+ onClose: function onClose(event) {
139
+ return onCloseTag(event, item);
412
140
  },
413
141
  disableTransitions: true
414
- }, item);
142
+ }, isNotEmpty(item.value) && typeof item.value === 'string' && labelFormat ? labelFormat === null || labelFormat === void 0 ? void 0 : labelFormat(-1, item.value, item.label) : (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value));
415
143
  }), collapseTags && (multiValue === null || multiValue === void 0 ? void 0 : multiValue.length) > maxCollapseTags && /*#__PURE__*/React.createElement(Tooltip, {
416
144
  ref: tagTooltipRef,
417
145
  popperClass: e(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["tooltip"]))),
418
146
  placement: "top",
419
147
  disabled: !collapseTagsTooltip,
420
- content: /*#__PURE__*/React.createElement(React.Fragment, null, multiLabel.slice(maxCollapseTags, multiLabel.length).map(function (item, i) {
421
- return /*#__PURE__*/React.createElement(Tag, {
422
- key: item,
148
+ content: /*#__PURE__*/React.createElement("div", {
149
+ className: e(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["selection"])))
150
+ }, multiOptionData.slice(maxCollapseTags, multiOptionData.length).map(function (item, i) {
151
+ var _item$label2;
152
+ return /*#__PURE__*/React.createElement("div", {
153
+ key: "".concat(item.value, "_").concat(i),
154
+ className: e(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["selected-item"])))
155
+ }, /*#__PURE__*/React.createElement(Tag, {
423
156
  type: tagType,
424
157
  disableTransitions: true,
425
158
  closable: !disabled,
426
159
  effect: tagEffect,
427
- onClick: onClick,
428
- onClose: function onClose() {
429
- return onCloseTag(multiValue[i + maxCollapseTags]);
160
+ onClick: toggleMenu,
161
+ onClose: function onClose(evt) {
162
+ return onCloseTag(evt, item);
430
163
  }
431
- }, item);
164
+ }, isNotEmpty(item.value) && typeof item.value === 'string' && labelFormat ? labelFormat === null || labelFormat === void 0 ? void 0 : labelFormat(-1, item.value, item.label) : (_item$label2 = item.label) !== null && _item$label2 !== void 0 ? _item$label2 : item.value));
432
165
  })),
433
166
  effect: "light",
434
167
  enterable: true
168
+ }, /*#__PURE__*/React.createElement("div", {
169
+ className: e(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["selected-item"])))
435
170
  }, /*#__PURE__*/React.createElement(Tag, {
436
171
  type: tagType,
437
- onClick: onClick,
172
+ onClick: toggleMenu,
438
173
  disableTransitions: true,
439
174
  effect: tagEffect
440
- }, collapseTips ? collapseTips(multiLabel.length - maxCollapseTags, multiLabel.length) : "+ ".concat(multiLabel.length - maxCollapseTags)))), allowCreate && /*#__PURE__*/React.createElement("input", {
175
+ }, collapseTips ? collapseTips(multiOptionData.length - maxCollapseTags, multiOptionData.length) : "+ ".concat(multiOptionData.length - maxCollapseTags)))))), /*#__PURE__*/React.createElement("div", {
176
+ className: classNames(e(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["selected-item"]))), e(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["input-wrapper"]))), is({
177
+ hidden: !filterable
178
+ }))
179
+ }, /*#__PURE__*/React.createElement("input", {
180
+ ref: inputRef,
181
+ value: inputValue,
441
182
  type: "text",
442
- className: e(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["input"]))),
443
- style: {
444
- marginLeft: 5,
445
- flexGrow: 1,
446
- width: '0.111111%',
447
- maxWidth: 170
448
- },
449
- ref: createInputRef,
450
- onClick: function onClick() {
451
- return setVisible(!visible);
452
- },
453
- onInput: function onInput(event) {
183
+ className: classNames(e(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["input"]))), is(size)),
184
+ style: inputStyle,
185
+ disabled: disabled,
186
+ readOnly: !filterable,
187
+ onClick: toggleMenu,
188
+ onCompositionStart: handleCompositionStart,
189
+ onCompositionUpdate: handleCompositionUpdate,
190
+ onCompositionEnd: handleCompositionEnd,
191
+ onChange: function onChange(event) {
192
+ setInputValue(event.target.value);
454
193
  setVisible(true);
455
- setCreateItem(event.target.value);
456
- if (popperInstRef.current && popperInstRef.current.update) {
457
- var _popperInstRef$curren3;
458
- (_popperInstRef$curren3 = popperInstRef.current) === null || _popperInstRef$curren3 === void 0 || _popperInstRef$curren3.update();
459
- }
460
194
  },
461
195
  onKeyDown: function onKeyDown(event) {
462
196
  if (event.key === 'Enter') {
463
- onChoose(createItem, createItem, event);
464
- setCreateItem('');
465
- if (createInputRef.current) {
466
- createInputRef.current.value = '';
197
+ if (allowCreate && isNotEmpty(inputValue)) {
198
+ onChoose(inputValue, {
199
+ value: inputValue,
200
+ label: inputValue
201
+ }, event);
467
202
  }
468
203
  }
469
204
  },
470
- onBlur: function onBlur() {
471
- setTimeout(function () {
472
- setCreateItem('');
473
- if (createInputRef.current) {
474
- createInputRef.current.value = '';
475
- }
476
- }, 200);
477
- }
478
- })), /*#__PURE__*/React.createElement(Input, _extends({
479
- ref: inputInstance,
480
- value: multiple ? multiValue.join(',') : createItem || label,
481
- hiddenValue: multiple,
482
- placeholder: placeholder,
483
- readOnly: !allowCreate,
484
- clearable: clearable && !disabled,
485
- disabled: disabled,
486
- onClick: onClick,
487
- onClear: onClear,
488
- plain: props.plain,
489
- className: classNames(is({
490
- active: visible
491
- })),
492
- size: size,
493
- onChange: function onChange(val) {
494
- setVisible(true);
495
- setCreateItem(val + '');
496
- },
497
- onKeyDown: function onKeyDown(event) {
498
- if (event.key === 'Enter') {
499
- onChoose(createItem, createItem, event);
500
- }
205
+ onFocus: function onFocus() {
206
+ return setIsFocused(true);
501
207
  },
502
208
  onBlur: function onBlur() {
503
- setTimeout(function () {
504
- setCreateItem('');
505
- }, 200);
506
- },
507
- error: error,
508
- warning: warning,
509
- innerStyle: multiple ? {
510
- height: inputHeight
511
- } : {},
512
- suffix: /*#__PURE__*/React.createElement(Icon, {
513
- prefix: "fal",
514
- name: "angle-down",
515
- rotate: visible ? 180 : null,
516
- onClick: onClick
517
- })
518
- }, omit(htmlInputProps, ['value', 'defaultValue', 'onInput', 'size', 'prefix', 'onChange', 'style', 'placeholder', 'readOnly', 'onKeyDown', 'disabled', 'className', 'type', 'name', 'minLength', 'maxLength'])))), /*#__PURE__*/React.createElement(Popper, _extends({
209
+ return setIsFocused(false);
210
+ }
211
+ // error={error}
212
+ // warning={warning}
213
+ // style={multiple ? { height: inputHeight } : {}}
214
+ // suffix={<Icon prefix="fal" name="angle-down" rotate={visible ? 180 : null} onClick={toggleMenu} />}
215
+ }), filterable ? /*#__PURE__*/React.createElement("span", {
216
+ ref: calculatorRef,
217
+ "aria-hidden": "true",
218
+ className: e(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["input-calculator"])))
219
+ }, inputValue) : null), shouldShowPlaceholder && /*#__PURE__*/React.createElement("div", {
220
+ className: classNames(e(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["selected-item"]))), e(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["placeholder"]))), is({
221
+ transparent: isEmpty(label) || visible && !inputValue
222
+ }))
223
+ }, isNotEmpty(value) && typeof value === 'string' && labelFormat ? labelFormat === null || labelFormat === void 0 ? void 0 : labelFormat(-1, value, placeholder) : /*#__PURE__*/React.createElement("span", null, placeholder))), !plain && /*#__PURE__*/React.createElement("div", {
224
+ ref: suffixWrapperRef,
225
+ className: classNames(e(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["suffix"]))), is(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["hidden-clear"]))))
226
+ }, iconComponent ? /*#__PURE__*/React.createElement(Icon, {
227
+ name: iconComponent,
228
+ className: classNames(e(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["caret"]))), e(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["icon"]))), e(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["arrow"]))), iconReverse),
229
+ onClick: toggleMenu
230
+ }) : null, clearIcon ? /*#__PURE__*/React.createElement(Icon, {
231
+ prefix: "fal",
232
+ name: clearIcon,
233
+ className: classNames(e(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["caret"]))), e(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["icon"]))), e(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["clear"])))),
234
+ onClick: onClear
235
+ }) : null)), /*#__PURE__*/React.createElement(Popper, _extends({
519
236
  referenceElement: containerRef,
520
237
  visible: visible,
238
+ popperClass: e(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["popper"]))),
521
239
  popperInstRef: popperInstRef,
522
- popperStyle: popperStyle,
240
+ popperStyle: _objectSpread(_objectSpread({}, popperStyle), {}, {
241
+ visibility: filterable && remote && isEmpty(inputValue) ? 'hidden' : 'visible'
242
+ }),
523
243
  onDestroy: function onDestroy() {
524
- return setVisible(false);
244
+ setVisible(false);
245
+ setInputValue('');
246
+ setIsFocused(false);
525
247
  },
526
248
  onEnter: handleEnter,
527
249
  afterLeave: handleAfterLeave,
528
250
  placement: 'bottom-start',
529
251
  transitionAppear: true,
530
- unmountOnExit: true,
252
+ unmountOnExit: props.unmountOnExit,
531
253
  showArrow: showArrow
532
254
  }, transitionProps, popperProps), /*#__PURE__*/React.createElement(SelectDropdown, _extends({
533
255
  ref: selectDropdownRef,
534
256
  value: value,
535
- searchInstance: searchInstance,
536
- createItem: createItem,
537
- setCreateItem: setCreateItem,
257
+ inputValue: inputValue,
258
+ setInputValue: setInputValue,
538
259
  onChoose: onChoose,
539
260
  contentRef: contentRef,
540
- createInputRef: createInputRef,
541
261
  popperInstRef: popperInstRef
542
- }, props), props.children)));
262
+ }, _props, {
263
+ onClear: props.onClear,
264
+ cachedOptions: cachedOptions
265
+ }), props.children)));
543
266
  });
544
267
  SelectCore.displayName = 'SelectCore';
545
268
  export default SelectCore;