@tendaui/react 1.1.1

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 (244) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/es/_chunks/dep-0QH2Ee4R.js +34 -0
  4. package/es/_chunks/dep-0QH2Ee4R.js.map +1 -0
  5. package/es/_chunks/dep-B7HmDtze.js +199 -0
  6. package/es/_chunks/dep-B7HmDtze.js.map +1 -0
  7. package/es/_chunks/dep-BH5n5r1M.js +55 -0
  8. package/es/_chunks/dep-BH5n5r1M.js.map +1 -0
  9. package/es/_chunks/dep-BP0-apUT.js +9 -0
  10. package/es/_chunks/dep-BP0-apUT.js.map +1 -0
  11. package/es/_chunks/dep-C1XcmShP.js +18 -0
  12. package/es/_chunks/dep-C1XcmShP.js.map +1 -0
  13. package/es/_chunks/dep-C36au4Ip.js +104 -0
  14. package/es/_chunks/dep-C36au4Ip.js.map +1 -0
  15. package/es/_chunks/dep-CgyDw_YI.js +20 -0
  16. package/es/_chunks/dep-CgyDw_YI.js.map +1 -0
  17. package/es/_chunks/dep-CoIiHOgo.js +162 -0
  18. package/es/_chunks/dep-CoIiHOgo.js.map +1 -0
  19. package/es/_chunks/dep-Cwish4GD.js +29 -0
  20. package/es/_chunks/dep-Cwish4GD.js.map +1 -0
  21. package/es/_chunks/dep-CzLhKWCf.js +56 -0
  22. package/es/_chunks/dep-CzLhKWCf.js.map +1 -0
  23. package/es/_chunks/dep-D-UKOauR.js +12 -0
  24. package/es/_chunks/dep-D-UKOauR.js.map +1 -0
  25. package/es/_chunks/dep-D6YxJv-F.js +31 -0
  26. package/es/_chunks/dep-D6YxJv-F.js.map +1 -0
  27. package/es/_chunks/dep-D7LanWes.js +171 -0
  28. package/es/_chunks/dep-D7LanWes.js.map +1 -0
  29. package/es/_chunks/dep-D8jki30S.js +31 -0
  30. package/es/_chunks/dep-D8jki30S.js.map +1 -0
  31. package/es/_chunks/dep-DB5wmwh1.js +48 -0
  32. package/es/_chunks/dep-DB5wmwh1.js.map +1 -0
  33. package/es/_chunks/dep-DGvfel3I.js +16 -0
  34. package/es/_chunks/dep-DGvfel3I.js.map +1 -0
  35. package/es/_chunks/dep-DHWwZ2Nj.js +139 -0
  36. package/es/_chunks/dep-DHWwZ2Nj.js.map +1 -0
  37. package/es/_chunks/dep-DN7d1SzH.js +24 -0
  38. package/es/_chunks/dep-DN7d1SzH.js.map +1 -0
  39. package/es/_chunks/dep-DZ_0EvBk.js +440 -0
  40. package/es/_chunks/dep-DZ_0EvBk.js.map +1 -0
  41. package/es/_chunks/dep-Dk2xX8lh.js +691 -0
  42. package/es/_chunks/dep-Dk2xX8lh.js.map +1 -0
  43. package/es/_chunks/dep-DwWrhxkd.js +26 -0
  44. package/es/_chunks/dep-DwWrhxkd.js.map +1 -0
  45. package/es/_chunks/dep-EcrDKDlu.js +1677 -0
  46. package/es/_chunks/dep-EcrDKDlu.js.map +1 -0
  47. package/es/_chunks/dep-PPA-yoAy.js +16 -0
  48. package/es/_chunks/dep-PPA-yoAy.js.map +1 -0
  49. package/es/_chunks/dep-U1T8CQY9.js +4 -0
  50. package/es/_chunks/dep-U1T8CQY9.js.map +1 -0
  51. package/es/_chunks/dep-bWaVq_y3.js +14 -0
  52. package/es/_chunks/dep-bWaVq_y3.js.map +1 -0
  53. package/es/_chunks/dep-u1x3x6MJ.js +9 -0
  54. package/es/_chunks/dep-u1x3x6MJ.js.map +1 -0
  55. package/es/alert/Alert.js +153 -0
  56. package/es/alert/Alert.js.map +1 -0
  57. package/es/alert/index.js +23 -0
  58. package/es/alert/index.js.map +1 -0
  59. package/es/alert/style/css.js +1 -0
  60. package/es/alert/style/index.css +172 -0
  61. package/es/alert/style/index.js +2 -0
  62. package/es/alert/style/index.js.map +1 -0
  63. package/es/badge/Badge.js +81 -0
  64. package/es/badge/Badge.js.map +1 -0
  65. package/es/badge/index.js +15 -0
  66. package/es/badge/index.js.map +1 -0
  67. package/es/badge/style/css.js +1 -0
  68. package/es/badge/style/index.css +60 -0
  69. package/es/badge/style/index.js +2 -0
  70. package/es/badge/style/index.js.map +1 -0
  71. package/es/button/Button.js +94 -0
  72. package/es/button/Button.js.map +1 -0
  73. package/es/button/index.js +28 -0
  74. package/es/button/index.js.map +1 -0
  75. package/es/button/style/css.js +1 -0
  76. package/es/button/style/index.css +1206 -0
  77. package/es/button/style/index.js +2 -0
  78. package/es/button/style/index.js.map +1 -0
  79. package/es/checkbox/Checkbox.js +17 -0
  80. package/es/checkbox/Checkbox.js.map +1 -0
  81. package/es/checkbox/CheckboxGroup.js +17 -0
  82. package/es/checkbox/CheckboxGroup.js.map +1 -0
  83. package/es/checkbox/index.js +22 -0
  84. package/es/checkbox/index.js.map +1 -0
  85. package/es/checkbox/style/css.js +1 -0
  86. package/es/checkbox/style/index.css +151 -0
  87. package/es/checkbox/style/index.js +2 -0
  88. package/es/checkbox/style/index.js.map +1 -0
  89. package/es/common/Check.js +101 -0
  90. package/es/common/Check.js.map +1 -0
  91. package/es/common/FakeArrow.js +28 -0
  92. package/es/common/FakeArrow.js.map +1 -0
  93. package/es/common/PluginContainer.js +19 -0
  94. package/es/common/PluginContainer.js.map +1 -0
  95. package/es/common/Portal.js +53 -0
  96. package/es/common/Portal.js.map +1 -0
  97. package/es/config-provider/ConfigContext.js +17 -0
  98. package/es/config-provider/ConfigContext.js.map +1 -0
  99. package/es/config-provider/ConfigProvider.js +45 -0
  100. package/es/config-provider/ConfigProvider.js.map +1 -0
  101. package/es/config-provider/index.js +12 -0
  102. package/es/config-provider/index.js.map +1 -0
  103. package/es/dialog/Dialog.js +575 -0
  104. package/es/dialog/Dialog.js.map +1 -0
  105. package/es/dialog/DialogCard.js +28 -0
  106. package/es/dialog/DialogCard.js.map +1 -0
  107. package/es/dialog/index.js +44 -0
  108. package/es/dialog/index.js.map +1 -0
  109. package/es/dialog/plugin.js +199 -0
  110. package/es/dialog/plugin.js.map +1 -0
  111. package/es/dialog/style/css.js +1 -0
  112. package/es/dialog/style/index.css +510 -0
  113. package/es/dialog/style/index.js +2 -0
  114. package/es/dialog/style/index.js.map +1 -0
  115. package/es/form/Form.js +190 -0
  116. package/es/form/Form.js.map +1 -0
  117. package/es/form/FormContext.js +38 -0
  118. package/es/form/FormContext.js.map +1 -0
  119. package/es/form/FormItem.js +39 -0
  120. package/es/form/FormItem.js.map +1 -0
  121. package/es/form/FormList.js +306 -0
  122. package/es/form/FormList.js.map +1 -0
  123. package/es/form/hooks/useFormItemStyle.js +10 -0
  124. package/es/form/hooks/useFormItemStyle.js.map +1 -0
  125. package/es/form/hooks/useInstance.js +326 -0
  126. package/es/form/hooks/useInstance.js.map +1 -0
  127. package/es/form/index.js +47 -0
  128. package/es/form/index.js.map +1 -0
  129. package/es/form/style/css.js +1 -0
  130. package/es/form/style/index.css +296 -0
  131. package/es/form/style/index.js +2 -0
  132. package/es/form/style/index.js.map +1 -0
  133. package/es/form/utils/index.js +75 -0
  134. package/es/form/utils/index.js.map +1 -0
  135. package/es/hooks/useDragSorter.js +137 -0
  136. package/es/hooks/useDragSorter.js.map +1 -0
  137. package/es/index.js +103 -0
  138. package/es/index.js.map +1 -0
  139. package/es/input/Input.js +375 -0
  140. package/es/input/Input.js.map +1 -0
  141. package/es/input/InputGroup.js +23 -0
  142. package/es/input/InputGroup.js.map +1 -0
  143. package/es/input/index.js +23 -0
  144. package/es/input/index.js.map +1 -0
  145. package/es/input/style/css.js +1 -0
  146. package/es/input/style/index.css +450 -0
  147. package/es/input/style/index.js +2 -0
  148. package/es/input/style/index.js.map +1 -0
  149. package/es/loading/Gradient.js +86 -0
  150. package/es/loading/Gradient.js.map +1 -0
  151. package/es/loading/Loading.js +147 -0
  152. package/es/loading/Loading.js.map +1 -0
  153. package/es/loading/index.js +24 -0
  154. package/es/loading/index.js.map +1 -0
  155. package/es/loading/style/css.js +1 -0
  156. package/es/loading/style/index.css +191 -0
  157. package/es/loading/style/index.js +2 -0
  158. package/es/loading/style/index.js.map +1 -0
  159. package/es/myform/index.js +2 -0
  160. package/es/myform/index.js.map +1 -0
  161. package/es/notification/NotifyContainer.js +78 -0
  162. package/es/notification/NotifyContainer.js.map +1 -0
  163. package/es/notification/NotifyContext.js +149 -0
  164. package/es/notification/NotifyContext.js.map +1 -0
  165. package/es/notification/NotifyItem.js +150 -0
  166. package/es/notification/NotifyItem.js.map +1 -0
  167. package/es/notification/index.js +32 -0
  168. package/es/notification/index.js.map +1 -0
  169. package/es/notification/style/css.js +1 -0
  170. package/es/notification/style/index.css +142 -0
  171. package/es/notification/style/index.js +2 -0
  172. package/es/notification/style/index.js.map +1 -0
  173. package/es/popup/Popup.js +790 -0
  174. package/es/popup/Popup.js.map +1 -0
  175. package/es/popup/index.js +28 -0
  176. package/es/popup/index.js.map +1 -0
  177. package/es/popup/style/css.js +1 -0
  178. package/es/popup/style/index.css +186 -0
  179. package/es/popup/style/index.js +2 -0
  180. package/es/popup/style/index.js.map +1 -0
  181. package/es/portal/Portal.js +48 -0
  182. package/es/portal/Portal.js.map +1 -0
  183. package/es/portal/index.js +7 -0
  184. package/es/portal/index.js.map +1 -0
  185. package/es/select/Option.js +118 -0
  186. package/es/select/Option.js.map +1 -0
  187. package/es/select/OptionGroup.js +9 -0
  188. package/es/select/OptionGroup.js.map +1 -0
  189. package/es/select/PopupContent.js +16 -0
  190. package/es/select/PopupContent.js.map +1 -0
  191. package/es/select/Select.js +709 -0
  192. package/es/select/Select.js.map +1 -0
  193. package/es/select/index.js +66 -0
  194. package/es/select/index.js.map +1 -0
  195. package/es/select/style/css.js +1 -0
  196. package/es/select/style/index.css +437 -0
  197. package/es/select/style/index.js +2 -0
  198. package/es/select/style/index.js.map +1 -0
  199. package/es/select-input/SelectInput.js +202 -0
  200. package/es/select-input/SelectInput.js.map +1 -0
  201. package/es/select-input/hook/useMultiple.js +118 -0
  202. package/es/select-input/hook/useMultiple.js.map +1 -0
  203. package/es/select-input/hook/useSingle.js +105 -0
  204. package/es/select-input/hook/useSingle.js.map +1 -0
  205. package/es/select-input/index.js +51 -0
  206. package/es/select-input/index.js.map +1 -0
  207. package/es/select-input/style/css.js +1 -0
  208. package/es/select-input/style/index.css +0 -0
  209. package/es/select-input/style/index.js +2 -0
  210. package/es/select-input/style/index.js.map +1 -0
  211. package/es/space/index.js +2 -0
  212. package/es/space/index.js.map +1 -0
  213. package/es/style/index.css +490 -0
  214. package/es/style/index.js +2 -0
  215. package/es/style/index.js.map +1 -0
  216. package/es/switch/Switch.js +174 -0
  217. package/es/switch/Switch.js.map +1 -0
  218. package/es/switch/index.js +28 -0
  219. package/es/switch/index.js.map +1 -0
  220. package/es/switch/style/css.js +1 -0
  221. package/es/switch/style/index.css +239 -0
  222. package/es/switch/style/index.js +2 -0
  223. package/es/switch/style/index.js.map +1 -0
  224. package/es/tag/Tag.js +1312 -0
  225. package/es/tag/Tag.js.map +1 -0
  226. package/es/tag/index.js +21 -0
  227. package/es/tag/index.js.map +1 -0
  228. package/es/tag/style/css.js +1 -0
  229. package/es/tag/style/index.css +236 -0
  230. package/es/tag/style/index.js +2 -0
  231. package/es/tag/style/index.js.map +1 -0
  232. package/es/tag-input/TagInput.js +360 -0
  233. package/es/tag-input/TagInput.js.map +1 -0
  234. package/es/tag-input/hooks/useTagList.js +167 -0
  235. package/es/tag-input/hooks/useTagList.js.map +1 -0
  236. package/es/tag-input/index.js +35 -0
  237. package/es/tag-input/index.js.map +1 -0
  238. package/es/tag-input/style/css.js +1 -0
  239. package/es/tag-input/style/index.css +223 -0
  240. package/es/tag-input/style/index.js +2 -0
  241. package/es/tag-input/style/index.js.map +1 -0
  242. package/es/tag-input/useTagList.js +167 -0
  243. package/es/tag-input/useTagList.js.map +1 -0
  244. package/package.json +59 -0
@@ -0,0 +1,202 @@
1
+ import { _ as _defineProperty } from '../_chunks/dep-Cwish4GD.js';
2
+ import React, { useMemo, useRef, useImperativeHandle } from 'react';
3
+ import classNames from 'classnames';
4
+ import useSingle from './hook/useSingle.js';
5
+ import useMultiple from './hook/useMultiple.js';
6
+ import { Popup } from '../popup/index.js';
7
+ import { _ as _typeof } from '../_chunks/dep-D-UKOauR.js';
8
+ import { _ as _slicedToArray } from '../_chunks/dep-CzLhKWCf.js';
9
+ import { isFunction, isObject } from 'lodash-es';
10
+ import { u as useControlled } from '../_chunks/dep-DwWrhxkd.js';
11
+ import { u as useConfig } from '../_chunks/dep-u1x3x6MJ.js';
12
+ import { u as useDefaultProps } from '../_chunks/dep-DGvfel3I.js';
13
+ import '../input/index.js';
14
+ import '../input/Input.js';
15
+ import '../_chunks/dep-DN7d1SzH.js';
16
+ import '@tendaui/icons';
17
+ import '../_chunks/dep-0QH2Ee4R.js';
18
+ import '../_chunks/dep-D6YxJv-F.js';
19
+ import '../config-provider/ConfigContext.js';
20
+ import '../input/InputGroup.js';
21
+ import '../input/style/css.js';
22
+ import '../tag-input/index.js';
23
+ import '../tag-input/TagInput.js';
24
+ import '../tag-input/hooks/useTagList.js';
25
+ import '../_chunks/dep-CgyDw_YI.js';
26
+ import '../tag/index.js';
27
+ import '../tag/Tag.js';
28
+ import '../_chunks/dep-U1T8CQY9.js';
29
+ import '../_chunks/dep-bWaVq_y3.js';
30
+ import '../_chunks/dep-BP0-apUT.js';
31
+ import 'hoist-non-react-statics';
32
+ import '../tag/style/css.js';
33
+ import '../hooks/useDragSorter.js';
34
+ import '../tag-input/style/css.js';
35
+ import '../popup/Popup.js';
36
+ import '../portal/Portal.js';
37
+ import 'react-dom';
38
+ import 'react-is';
39
+ import '../_chunks/dep-C1XcmShP.js';
40
+ import '@popperjs/core';
41
+ import 'react-fast-compare';
42
+ import 'react-transition-group';
43
+ import '../_chunks/dep-BH5n5r1M.js';
44
+ import '../popup/style/css.js';
45
+
46
+ function ownKeys$1(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; }
47
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
48
+ var MAX_POPUP_WIDTH = 1e3;
49
+ function useOverlayInnerStyle(props, extra) {
50
+ var popupProps = props.popupProps,
51
+ autoWidth = props.autoWidth,
52
+ readonly = props.readonly,
53
+ disabled = props.disabled,
54
+ onPopupVisibleChange = props.onPopupVisibleChange,
55
+ allowInput = props.allowInput;
56
+ var _useControlled = useControlled(props, "popupVisible", onPopupVisibleChange),
57
+ _useControlled2 = _slicedToArray(_useControlled, 2),
58
+ innerPopupVisible = _useControlled2[0],
59
+ setInnerPopupVisible = _useControlled2[1];
60
+ var matchWidthFunc = function matchWidthFunc(triggerElement, popupElement) {
61
+ if (!triggerElement || !popupElement) {
62
+ return;
63
+ }
64
+ var prevDisplay = popupElement.style.display;
65
+ popupElement.style.display = "";
66
+ var overlayScrollWidth = popupElement.offsetWidth - popupElement.scrollWidth;
67
+ var width = popupElement.offsetWidth - overlayScrollWidth > triggerElement.offsetWidth ? popupElement.scrollWidth : triggerElement.offsetWidth - overlayScrollWidth;
68
+ if (prevDisplay === "none") {
69
+ popupElement.style.display = "none";
70
+ }
71
+ var otherOverlayInnerStyle = {};
72
+ if (popupProps && _typeof(popupProps.overlayInnerStyle) === "object" && !popupProps.overlayInnerStyle.width) {
73
+ otherOverlayInnerStyle = popupProps.overlayInnerStyle;
74
+ }
75
+ return _objectSpread$1({
76
+ width: "".concat(Math.min(width, MAX_POPUP_WIDTH), "px")
77
+ }, otherOverlayInnerStyle);
78
+ };
79
+ var onInnerPopupVisibleChange = function onInnerPopupVisibleChange(visible, context) {
80
+ if (disabled || readonly) {
81
+ return;
82
+ }
83
+ var newVisible = context.trigger === "trigger-element-click" && allowInput ? true : visible;
84
+ if (props.popupVisible !== newVisible) {
85
+ setInnerPopupVisible(newVisible, context);
86
+ if (!newVisible) {
87
+ var _extra$afterHidePopup;
88
+ extra === null || extra === void 0 || (_extra$afterHidePopup = extra.afterHidePopups) === null || _extra$afterHidePopup === void 0 || _extra$afterHidePopup.call(extra, context);
89
+ }
90
+ }
91
+ };
92
+ var tOverlayInnerStyle = useMemo(function () {
93
+ var result = {};
94
+ var overlayInnerStyle = (popupProps === null || popupProps === void 0 ? void 0 : popupProps.overlayInnerStyle) || {};
95
+ if (isFunction(overlayInnerStyle) || isObject(overlayInnerStyle) && overlayInnerStyle.width) {
96
+ result = overlayInnerStyle;
97
+ } else if (!autoWidth) {
98
+ result = matchWidthFunc;
99
+ }
100
+ return result;
101
+ }, [autoWidth, popupProps === null || popupProps === void 0 ? void 0 : popupProps.overlayInnerStyle]);
102
+ return {
103
+ tOverlayInnerStyle: tOverlayInnerStyle,
104
+ innerPopupVisible: innerPopupVisible,
105
+ onInnerPopupVisibleChange: onInnerPopupVisibleChange
106
+ };
107
+ }
108
+
109
+ var selectInputDefaultProps = {
110
+ allowInput: false,
111
+ autoWidth: false,
112
+ autofocus: false,
113
+ borderless: false,
114
+ clearable: false,
115
+ loading: false,
116
+ minCollapsedNum: 0,
117
+ multiple: false,
118
+ readonly: false,
119
+ reserveKeyword: false,
120
+ status: "default"
121
+ };
122
+
123
+ 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; }
124
+ 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; }
125
+ var SelectInput = /*#__PURE__*/React.forwardRef(function (originalProps, ref) {
126
+ var props = useDefaultProps(originalProps, selectInputDefaultProps);
127
+ var _useConfig = useConfig(),
128
+ prefix = _useConfig.classPrefix;
129
+ var selectInputRef = useRef(null);
130
+ var selectInputWrapRef = useRef(null);
131
+ var multiple = props.multiple,
132
+ value = props.value,
133
+ popupVisible = props.popupVisible,
134
+ popupProps = props.popupProps,
135
+ borderless = props.borderless,
136
+ disabled = props.disabled;
137
+ var _useSingle = useSingle(props),
138
+ commonInputProps = _useSingle.commonInputProps,
139
+ inputRef = _useSingle.inputRef,
140
+ singleInputValue = _useSingle.singleInputValue,
141
+ onInnerClear = _useSingle.onInnerClear,
142
+ renderSelectSingle = _useSingle.renderSelectSingle;
143
+ var _useMultiple = useMultiple(props),
144
+ tagInputRef = _useMultiple.tagInputRef,
145
+ multipleInputValue = _useMultiple.multipleInputValue,
146
+ renderSelectMultiple = _useMultiple.renderSelectMultiple;
147
+ var _useOverlayInnerStyle = useOverlayInnerStyle(props, {
148
+ afterHidePopups: onInnerBlur
149
+ }),
150
+ tOverlayInnerStyle = _useOverlayInnerStyle.tOverlayInnerStyle,
151
+ innerPopupVisible = _useOverlayInnerStyle.innerPopupVisible,
152
+ onInnerPopupVisibleChange = _useOverlayInnerStyle.onInnerPopupVisibleChange;
153
+ var popupClasses = classNames([props.className, "".concat(prefix, "-select-input"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(prefix, "-select-input--borderless"), borderless), "".concat(prefix, "-select-input--multiple"), multiple), "".concat(prefix, "-select-input--popup-visible"), popupVisible !== null && popupVisible !== void 0 ? popupVisible : innerPopupVisible), "".concat(prefix, "-select-input--empty"), value instanceof Array ? !value.length : !value)]);
154
+ useImperativeHandle(ref, function () {
155
+ return _objectSpread(_objectSpread(_objectSpread({}, selectInputRef.current || {}), inputRef.current || {}), tagInputRef.current || {});
156
+ });
157
+ var visibleProps = {
158
+ visible: popupVisible !== null && popupVisible !== void 0 ? popupVisible : innerPopupVisible
159
+ };
160
+ function onInnerBlur(ctx) {
161
+ var _props$onBlur;
162
+ var inputValue = props.multiple ? multipleInputValue : singleInputValue;
163
+ var params = {
164
+ e: ctx.e,
165
+ inputValue: inputValue
166
+ };
167
+ (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, props.value, params);
168
+ }
169
+ var mainContent = /* @__PURE__ */React.createElement("div", {
170
+ className: popupClasses,
171
+ style: props.style
172
+ }, /* @__PURE__ */React.createElement(Popup, _objectSpread(_objectSpread(_objectSpread({
173
+ ref: selectInputRef,
174
+ trigger: (popupProps === null || popupProps === void 0 ? void 0 : popupProps.trigger) || "click",
175
+ placement: "bottom-left",
176
+ content: props.panel,
177
+ hideEmptyPopup: true,
178
+ onVisibleChange: onInnerPopupVisibleChange,
179
+ updateScrollTop: props.updateScrollTop
180
+ }, visibleProps), popupProps), {}, {
181
+ disabled: disabled,
182
+ overlayInnerStyle: tOverlayInnerStyle
183
+ }), multiple ? renderSelectMultiple({
184
+ commonInputProps: commonInputProps,
185
+ onInnerClear: onInnerClear,
186
+ popupVisible: visibleProps.visible,
187
+ allowInput: props.allowInput
188
+ }) : renderSelectSingle(visibleProps.visible)));
189
+ if (!props.tips) {
190
+ return mainContent;
191
+ }
192
+ return /* @__PURE__ */React.createElement("div", {
193
+ ref: selectInputWrapRef,
194
+ className: "t-select-input__wrap"
195
+ }, mainContent, props.tips && /* @__PURE__ */React.createElement("div", {
196
+ className: "t-input__tips t-input__tips--".concat(props.status || "normal")
197
+ }, props.tips));
198
+ });
199
+ SelectInput.displayName = "SelectInput";
200
+
201
+ export { SelectInput as default };
202
+ //# sourceMappingURL=SelectInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectInput.js","sources":["../../../components/select-input/hook/useOverlayInnerStyle.ts","../../../components/select-input/defaultProps.ts","../../../components/select-input/SelectInput.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { isObject, isFunction } from \"lodash-es\";\nimport useControlled from \"../../hooks/useControlled\";\nimport { TdSelectInputProps } from \"../type\";\nimport { TdPopupProps, PopupVisibleChangeContext } from \"../../popup\";\n\nexport type overlayStyleProps = Pick<\n TdSelectInputProps,\n | \"popupProps\"\n | \"autoWidth\"\n | \"readonly\"\n | \"onPopupVisibleChange\"\n | \"disabled\"\n | \"allowInput\"\n | \"popupVisible\"\n | \"defaultPopupVisible\"\n>;\n\nconst MAX_POPUP_WIDTH = 1000;\n\nexport default function useOverlayInnerStyle(\n props: overlayStyleProps,\n extra?: {\n afterHidePopups?: (ctx: PopupVisibleChangeContext) => void;\n }\n) {\n const { popupProps, autoWidth, readonly, disabled, onPopupVisibleChange, allowInput } = props;\n const [innerPopupVisible, setInnerPopupVisible] = useControlled(props, \"popupVisible\", onPopupVisibleChange);\n const matchWidthFunc = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n if (!triggerElement || !popupElement) {\n return;\n }\n\n const prevDisplay = popupElement.style.display;\n popupElement.style.display = \"\";\n const overlayScrollWidth = popupElement.offsetWidth - popupElement.scrollWidth;\n const width =\n popupElement.offsetWidth - overlayScrollWidth > triggerElement.offsetWidth\n ? popupElement.scrollWidth\n : triggerElement.offsetWidth - overlayScrollWidth;\n if (prevDisplay === \"none\") {\n popupElement.style.display = \"none\";\n }\n let otherOverlayInnerStyle: React.CSSProperties = {};\n if (popupProps && typeof popupProps.overlayInnerStyle === \"object\" && !popupProps.overlayInnerStyle.width) {\n otherOverlayInnerStyle = popupProps.overlayInnerStyle;\n }\n return {\n width: `${Math.min(width, MAX_POPUP_WIDTH)}px`,\n ...otherOverlayInnerStyle\n };\n };\n\n const onInnerPopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n if (disabled || readonly) {\n return;\n }\n // 如果点击触发元素(输入框)且为可输入状态,则继续显示下拉框\n const newVisible = context.trigger === \"trigger-element-click\" && allowInput ? true : visible;\n if (props.popupVisible !== newVisible) {\n setInnerPopupVisible(newVisible, context);\n if (!newVisible) {\n extra?.afterHidePopups?.(context);\n }\n }\n };\n const tOverlayInnerStyle = useMemo(() => {\n let result: TdPopupProps[\"overlayInnerStyle\"] = {};\n const overlayInnerStyle = popupProps?.overlayInnerStyle || {};\n if (isFunction(overlayInnerStyle) || (isObject(overlayInnerStyle) && overlayInnerStyle.width)) {\n result = overlayInnerStyle;\n } else if (!autoWidth) {\n result = matchWidthFunc;\n }\n return result;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [autoWidth, popupProps?.overlayInnerStyle]);\n\n return {\n tOverlayInnerStyle,\n innerPopupVisible,\n onInnerPopupVisibleChange\n };\n}\n","import { TdSelectInputProps } from \"./type\";\n\nexport const selectInputDefaultProps: TdSelectInputProps = {\n allowInput: false,\n autoWidth: false,\n autofocus: false,\n borderless: false,\n clearable: false,\n loading: false,\n minCollapsedNum: 0,\n multiple: false,\n readonly: false,\n reserveKeyword: false,\n status: \"default\"\n};\n","import React, { useRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport useSingle from \"./hook/useSingle\";\nimport useMultiple from \"./hook/useMultiple\";\nimport Popup, { PopupRef, PopupVisibleChangeContext } from \"../popup\";\nimport useOverlayInnerStyle from \"./hook/useOverlayInnerStyle\";\nimport { TdSelectInputProps } from \"./type\";\nimport { StyledProps } from \"../common\";\nimport { selectInputDefaultProps } from \"./defaultProps\";\nimport useConfig from \"../hooks/useConfig\";\nimport useDefaultProps from \"../hooks/useDefaultProps\";\nimport { InputRef } from \"../input\";\n\nexport interface SelectInputProps extends TdSelectInputProps, StyledProps {\n updateScrollTop?: (content: HTMLDivElement) => void;\n options?: unknown[]; // 参数穿透options, 给SelectInput/SelectInput 自定义选中项呈现的内容和多选状态下设置折叠项内容\n}\n\nconst SelectInput = React.forwardRef<Partial<PopupRef & InputRef>, SelectInputProps>((originalProps, ref) => {\n const props = useDefaultProps<SelectInputProps>(originalProps, selectInputDefaultProps);\n const { classPrefix: prefix } = useConfig();\n const selectInputRef = useRef<PopupRef>(null);\n const selectInputWrapRef = useRef<HTMLElement>(null);\n const { multiple, value, popupVisible, popupProps, borderless, disabled } = props;\n const { commonInputProps, inputRef, singleInputValue, onInnerClear, renderSelectSingle } = useSingle(props);\n\n const { tagInputRef, multipleInputValue, renderSelectMultiple } = useMultiple(props);\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props, {\n afterHidePopups: onInnerBlur\n });\n\n const popupClasses = classNames([\n props.className,\n `${prefix}-select-input`,\n {\n [`${prefix}-select-input--borderless`]: borderless,\n [`${prefix}-select-input--multiple`]: multiple,\n [`${prefix}-select-input--popup-visible`]: popupVisible ?? innerPopupVisible,\n [`${prefix}-select-input--empty`]: value instanceof Array ? !value.length : !value\n }\n ]);\n useImperativeHandle(ref, () => ({\n ...(selectInputRef.current || {}),\n ...(inputRef.current || {}),\n ...(tagInputRef.current || {})\n }));\n\n // 浮层显示的受控与非受控\n const visibleProps = { visible: popupVisible ?? innerPopupVisible };\n function onInnerBlur(ctx: PopupVisibleChangeContext) {\n const inputValue = props.multiple ? multipleInputValue : singleInputValue;\n const params: Parameters<TdSelectInputProps[\"onBlur\"]>[1] = {\n e: ctx.e,\n inputValue\n };\n props.onBlur?.(props.value, params);\n }\n const mainContent = (\n <div className={popupClasses} style={props.style}>\n <Popup\n ref={selectInputRef}\n trigger={popupProps?.trigger || \"click\"}\n placement=\"bottom-left\"\n content={props.panel}\n hideEmptyPopup={true}\n onVisibleChange={onInnerPopupVisibleChange}\n updateScrollTop={props.updateScrollTop}\n {...visibleProps}\n {...popupProps}\n disabled={disabled}\n overlayInnerStyle={tOverlayInnerStyle}\n >\n {multiple\n ? renderSelectMultiple({\n commonInputProps,\n onInnerClear,\n popupVisible: visibleProps.visible,\n allowInput: props.allowInput\n })\n : renderSelectSingle(visibleProps.visible)}\n </Popup>\n </div>\n );\n if (!props.tips) {\n return mainContent;\n }\n\n return (\n <div ref={selectInputWrapRef as React.Ref<HTMLDivElement>} className={`t-select-input__wrap`}>\n {mainContent}\n {props.tips && <div className={`t-input__tips t-input__tips--${props.status || \"normal\"}`}>{props.tips}</div>}\n </div>\n );\n});\n\nSelectInput.displayName = \"SelectInput\";\n\nexport default SelectInput;\n"],"names":["MAX_POPUP_WIDTH","useOverlayInnerStyle","props","extra","popupProps","autoWidth","readonly","disabled","onPopupVisibleChange","allowInput","_useControlled","useControlled","_useControlled2","_slicedToArray","innerPopupVisible","setInnerPopupVisible","matchWidthFunc","triggerElement","popupElement","prevDisplay","style","display","overlayScrollWidth","offsetWidth","scrollWidth","width","otherOverlayInnerStyle","_typeof","overlayInnerStyle","_objectSpread","Math","min","onInnerPopupVisibleChange","visible","context","newVisible","trigger","popupVisible","_extra$afterHidePopup","afterHidePopups","call","tOverlayInnerStyle","useMemo","result","isFunction","isObject","selectInputDefaultProps","autofocus","borderless","clearable","loading","minCollapsedNum","multiple","reserveKeyword","status","SelectInput","React","forwardRef","originalProps","ref","useDefaultProps","_useConfig","useConfig","prefix","classPrefix","selectInputRef","useRef","selectInputWrapRef","value","_useSingle","useSingle","commonInputProps","inputRef","singleInputValue","onInnerClear","renderSelectSingle","_useMultiple","useMultiple","tagInputRef","multipleInputValue","renderSelectMultiple","_useOverlayInnerStyle","onInnerBlur","popupClasses","classNames","className","concat","_defineProperty","Array","length","useImperativeHandle","current","visibleProps","ctx","_props$onBlur","inputValue","params","e","onBlur","mainContent","createElement","Popup","placement","content","panel","hideEmptyPopup","onVisibleChange","updateScrollTop","tips","displayName"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { _ as _defineProperty } from '../../_chunks/dep-Cwish4GD.js';
2
+ import { _ as _slicedToArray } from '../../_chunks/dep-CzLhKWCf.js';
3
+ import React, { useRef } from 'react';
4
+ import { isObject } from 'lodash-es';
5
+ import classNames from 'classnames';
6
+ import { TagInput } from '../../tag-input/index.js';
7
+ import { u as useControlled } from '../../_chunks/dep-DwWrhxkd.js';
8
+ import { u as useConfig } from '../../_chunks/dep-u1x3x6MJ.js';
9
+ import '../../_chunks/dep-D-UKOauR.js';
10
+ import '../../tag-input/TagInput.js';
11
+ import '@tendaui/icons';
12
+ import '../../input/index.js';
13
+ import '../../input/Input.js';
14
+ import '../../_chunks/dep-DN7d1SzH.js';
15
+ import '../../_chunks/dep-0QH2Ee4R.js';
16
+ import '../../_chunks/dep-D6YxJv-F.js';
17
+ import '../../_chunks/dep-DGvfel3I.js';
18
+ import '../../config-provider/ConfigContext.js';
19
+ import '../../input/InputGroup.js';
20
+ import '../../input/style/css.js';
21
+ import '../../tag-input/hooks/useTagList.js';
22
+ import '../../_chunks/dep-CgyDw_YI.js';
23
+ import '../../tag/index.js';
24
+ import '../../tag/Tag.js';
25
+ import '../../_chunks/dep-U1T8CQY9.js';
26
+ import '../../_chunks/dep-bWaVq_y3.js';
27
+ import '../../_chunks/dep-BP0-apUT.js';
28
+ import 'hoist-non-react-statics';
29
+ import '../../tag/style/css.js';
30
+ import '../../hooks/useDragSorter.js';
31
+ import '../../tag-input/style/css.js';
32
+
33
+ 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; }
34
+ 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; }
35
+ var DEFAULT_KEYS = {
36
+ label: "label",
37
+ key: "key",
38
+ children: "children"
39
+ };
40
+ function useMultiple(props) {
41
+ var value = props.value;
42
+ var _useConfig = useConfig(),
43
+ classPrefix = _useConfig.classPrefix;
44
+ var tagInputRef = useRef(null);
45
+ var _useControlled = useControlled(props, "inputValue", props.onInputChange),
46
+ _useControlled2 = _slicedToArray(_useControlled, 2),
47
+ tInputValue = _useControlled2[0],
48
+ setTInputValue = _useControlled2[1];
49
+ var iKeys = _objectSpread(_objectSpread({}, DEFAULT_KEYS), props.keys);
50
+ var getTags = function getTags() {
51
+ if (!(value instanceof Array)) {
52
+ if (["", null, void 0].includes(String(value))) return [];
53
+ return isObject(value) ? [value[iKeys.label]] : [value];
54
+ }
55
+ return value.map(function (item) {
56
+ return isObject(item) ? item[iKeys.label] : item;
57
+ });
58
+ };
59
+ var tags = getTags();
60
+ var tPlaceholder = !tags || !tags.length ? props.placeholder : "";
61
+ var onTagInputChange = function onTagInputChange(val, context) {
62
+ var _props$onTagChange;
63
+ if (context.trigger === "tag-remove") {
64
+ var _context$e;
65
+ (_context$e = context.e) === null || _context$e === void 0 || _context$e.stopPropagation();
66
+ }
67
+ (_props$onTagChange = props.onTagChange) === null || _props$onTagChange === void 0 || _props$onTagChange.call(props, val, context);
68
+ };
69
+ var renderSelectMultiple = function renderSelectMultiple(p) {
70
+ var _props$tagInputProps;
71
+ return /* @__PURE__ */React.createElement(TagInput, _objectSpread(_objectSpread(_objectSpread({
72
+ ref: tagInputRef
73
+ }, p.commonInputProps), {}, {
74
+ autoWidth: props.autoWidth,
75
+ readonly: props.readonly,
76
+ minCollapsedNum: props.minCollapsedNum,
77
+ collapsedItems: props.collapsedItems,
78
+ tag: props.tag,
79
+ valueDisplay: props.valueDisplay,
80
+ placeholder: tPlaceholder,
81
+ options: props.options,
82
+ value: tags,
83
+ inputValue: p.popupVisible && p.allowInput ? tInputValue : "",
84
+ onChange: onTagInputChange,
85
+ onInputChange: function onInputChange(val, context) {
86
+ if ((context === null || context === void 0 ? void 0 : context.trigger) === "enter" || (context === null || context === void 0 ? void 0 : context.trigger) === "blur") return;
87
+ setTInputValue(val, {
88
+ trigger: context.trigger,
89
+ e: context.e
90
+ });
91
+ },
92
+ tagProps: props.tagProps,
93
+ onClear: p.onInnerClear,
94
+ onFocus: function onFocus(val, context) {
95
+ var _props$onFocus;
96
+ (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, props.value, _objectSpread(_objectSpread({}, context), {}, {
97
+ tagInputValue: val
98
+ }));
99
+ },
100
+ onBlur: !props.panel ? props.onBlur : null
101
+ }, props.tagInputProps), {}, {
102
+ inputProps: _objectSpread(_objectSpread({}, props.inputProps), {}, {
103
+ readonly: !props.allowInput || props.readonly,
104
+ inputClass: classNames((_props$tagInputProps = props.tagInputProps) === null || _props$tagInputProps === void 0 ? void 0 : _props$tagInputProps.className, _defineProperty(_defineProperty({}, "".concat(classPrefix, "-input--focused"), p.popupVisible), "".concat(classPrefix, "-is-focused"), p.popupVisible))
105
+ })
106
+ }));
107
+ };
108
+ return {
109
+ tags: tags,
110
+ tPlaceholder: tPlaceholder,
111
+ tagInputRef: tagInputRef,
112
+ multipleInputValue: tInputValue,
113
+ renderSelectMultiple: renderSelectMultiple
114
+ };
115
+ }
116
+
117
+ export { useMultiple as default };
118
+ //# sourceMappingURL=useMultiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiple.js","sources":["../../../../components/select-input/hook/useMultiple.tsx"],"sourcesContent":["import React, { useRef, MouseEvent } from \"react\";\nimport { isObject } from \"lodash-es\";\nimport classNames from \"classnames\";\nimport { TdSelectInputProps, SelectInputChangeContext, SelectInputKeys, SelectInputValue } from \"../type\";\nimport TagInput, { TagInputValue } from \"../../tag-input\";\nimport { SelectInputCommonProperties } from \"../interface\";\nimport useControlled from \"../../hooks/useControlled\";\nimport useConfig from \"../../hooks/useConfig\";\nimport { InputRef } from \"../../input\";\nimport { StyledProps } from \"../../common\";\n\nexport interface RenderSelectMultipleParams {\n commonInputProps: SelectInputCommonProperties;\n onInnerClear: (context: { e: MouseEvent<SVGElement> }) => void;\n popupVisible: boolean;\n allowInput: boolean;\n}\n\nconst DEFAULT_KEYS = {\n label: \"label\",\n key: \"key\",\n children: \"children\"\n};\n\nexport interface SelectInputProps extends TdSelectInputProps, StyledProps {\n options?: unknown[]; // 参数穿透options, 给SelectInput/SelectInput 自定义选中项呈现的内容和多选状态下设置折叠项内容\n}\n\nexport default function useMultiple(props: SelectInputProps) {\n const { value } = props;\n const { classPrefix } = useConfig();\n const tagInputRef = useRef<InputRef>(null);\n const [tInputValue, setTInputValue] = useControlled(props, \"inputValue\", props.onInputChange);\n const iKeys: SelectInputKeys = { ...DEFAULT_KEYS, ...props.keys };\n\n const getTags = () => {\n if (!(value instanceof Array)) {\n if ([\"\", null, undefined].includes(String(value))) return [];\n return isObject(value) ? [value[iKeys.label]] : [value];\n }\n return value.map((item: SelectInputValue) => (isObject(item) ? item[iKeys.label] : item));\n };\n const tags = getTags();\n const tPlaceholder = !tags || !tags.length ? props.placeholder : \"\";\n\n const onTagInputChange = (val: TagInputValue, context: SelectInputChangeContext) => {\n // 避免触发浮层的显示或隐藏\n if (context.trigger === \"tag-remove\") {\n context.e?.stopPropagation();\n }\n props.onTagChange?.(val, context);\n };\n\n const renderSelectMultiple = (p: RenderSelectMultipleParams) => (\n <TagInput\n ref={tagInputRef}\n {...p.commonInputProps}\n autoWidth={props.autoWidth}\n readonly={props.readonly}\n minCollapsedNum={props.minCollapsedNum}\n collapsedItems={props.collapsedItems}\n tag={props.tag}\n valueDisplay={props.valueDisplay}\n placeholder={tPlaceholder}\n options={props.options}\n value={tags}\n inputValue={p.popupVisible && p.allowInput ? tInputValue : \"\"}\n onChange={onTagInputChange}\n onInputChange={(val, context) => {\n // 筛选器统一特性:筛选器按下回车时不清空输入框\n if (context?.trigger === \"enter\" || context?.trigger === \"blur\") return;\n setTInputValue(val, { trigger: context.trigger, e: context.e });\n }}\n tagProps={props.tagProps}\n onClear={p.onInnerClear}\n // [Important Info]: SelectInput.blur is not equal to TagInput, example: click popup panel\n onFocus={(val, context) => {\n props.onFocus?.(props.value, { ...context, tagInputValue: val });\n }}\n onBlur={!props.panel ? props.onBlur : null}\n {...props.tagInputProps}\n inputProps={{\n ...props.inputProps,\n readonly: !props.allowInput || props.readonly,\n inputClass: classNames(props.tagInputProps?.className, {\n [`${classPrefix}-input--focused`]: p.popupVisible,\n [`${classPrefix}-is-focused`]: p.popupVisible\n })\n }}\n />\n );\n\n return {\n tags,\n tPlaceholder,\n tagInputRef,\n multipleInputValue: tInputValue,\n renderSelectMultiple\n };\n}\n"],"names":["DEFAULT_KEYS","label","key","children","useMultiple","props","value","_useConfig","useConfig","classPrefix","tagInputRef","useRef","_useControlled","useControlled","onInputChange","_useControlled2","_slicedToArray","tInputValue","setTInputValue","iKeys","keys","getTags","Array","includes","String","isObject","map","item","tags","tPlaceholder","length","placeholder","onTagInputChange","val","context","_props$onTagChange","trigger","_context$e","e","stopPropagation","onTagChange","call","renderSelectMultiple","p","_props$tagInputProps","React","createElement","TagInput","_objectSpread","ref","commonInputProps","autoWidth","readonly","minCollapsedNum","collapsedItems","tag","valueDisplay","options","inputValue","popupVisible","allowInput","onChange","tagProps","onClear","onInnerClear","onFocus","_props$onFocus","tagInputValue","onBlur","panel","tagInputProps","inputProps","inputClass","classNames","className","_defineProperty","concat","multipleInputValue"],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { _ as _defineProperty } from '../../_chunks/dep-Cwish4GD.js';
2
+ import { _ as _slicedToArray } from '../../_chunks/dep-CzLhKWCf.js';
3
+ import React, { useRef } from 'react';
4
+ import { isObject, pick } from 'lodash-es';
5
+ import classNames from 'classnames';
6
+ import { Input } from '../../input/index.js';
7
+ import { u as useControlled } from '../../_chunks/dep-DwWrhxkd.js';
8
+ import '../../_chunks/dep-D-UKOauR.js';
9
+ import '../../input/Input.js';
10
+ import '../../_chunks/dep-DN7d1SzH.js';
11
+ import '@tendaui/icons';
12
+ import '../../_chunks/dep-0QH2Ee4R.js';
13
+ import '../../_chunks/dep-D6YxJv-F.js';
14
+ import '../../_chunks/dep-DGvfel3I.js';
15
+ import '../../_chunks/dep-u1x3x6MJ.js';
16
+ import '../../config-provider/ConfigContext.js';
17
+ import '../../input/InputGroup.js';
18
+ import '../../input/style/css.js';
19
+
20
+ 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; }
21
+ 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; }
22
+ var COMMON_PROPERTIES = ["status", "clearable", "disabled", "label", "placeholder", "readonly", "suffix", "suffixIcon", "onPaste", "onEnter", "onMouseenter", "onMouseleave", "size", "prefixIcon"];
23
+ var DEFAULT_KEYS = {
24
+ label: "label",
25
+ value: "value"
26
+ };
27
+ function getInputValue(value, keys) {
28
+ var iKeys = keys || DEFAULT_KEYS;
29
+ return isObject(value) ? value[iKeys.label] : value;
30
+ }
31
+ function useSingle(props) {
32
+ var value = props.value,
33
+ keys = props.keys;
34
+ var inputRef = useRef(null);
35
+ var _useControlled = useControlled(props, "inputValue", props.onInputChange),
36
+ _useControlled2 = _slicedToArray(_useControlled, 2),
37
+ inputValue = _useControlled2[0],
38
+ setInputValue = _useControlled2[1];
39
+ var commonInputProps = _objectSpread(_objectSpread({}, pick(props, COMMON_PROPERTIES)), {}, {
40
+ suffixIcon: props.suffixIcon
41
+ });
42
+ var onInnerClear = function onInnerClear(context) {
43
+ var _context$e, _props$onClear;
44
+ context === null || context === void 0 || (_context$e = context.e) === null || _context$e === void 0 || _context$e.stopPropagation();
45
+ (_props$onClear = props.onClear) === null || _props$onClear === void 0 || _props$onClear.call(props, context);
46
+ setInputValue("", {
47
+ trigger: "clear"
48
+ });
49
+ };
50
+ var onInnerInputChange = function onInnerInputChange(value2, context) {
51
+ if (props.allowInput) {
52
+ setInputValue(value2, _objectSpread(_objectSpread({}, context), {}, {
53
+ trigger: "input"
54
+ }));
55
+ }
56
+ };
57
+ var handleEmptyPanelBlur = function handleEmptyPanelBlur(value2, _ref) {
58
+ var _props$onBlur;
59
+ var e = _ref.e;
60
+ (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, value2, {
61
+ e: e,
62
+ inputValue: value2
63
+ });
64
+ };
65
+ var renderSelectSingle = function renderSelectSingle(popupVisible) {
66
+ var _props$inputProps;
67
+ var singleValueDisplay = !props.multiple ? props.valueDisplay : null;
68
+ var displayedValue = popupVisible && props.allowInput ? inputValue : getInputValue(value, keys);
69
+ return /* @__PURE__ */React.createElement(Input, _objectSpread(_objectSpread(_objectSpread({
70
+ ref: inputRef
71
+ }, commonInputProps), {}, {
72
+ autoWidth: props.autoWidth,
73
+ placeholder: props.placeholder,
74
+ value: singleValueDisplay ? " " : displayedValue,
75
+ label: (props.label || singleValueDisplay) && /* @__PURE__ */React.createElement(React.Fragment, null, props.label, singleValueDisplay),
76
+ onChange: onInnerInputChange,
77
+ onClear: onInnerClear,
78
+ onFocus: function onFocus(val, context) {
79
+ var _props$onFocus;
80
+ (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, value, _objectSpread(_objectSpread({}, context), {}, {
81
+ inputValue: val
82
+ }));
83
+ },
84
+ onEnter: function onEnter(val, context) {
85
+ var _props$onEnter;
86
+ (_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 || _props$onEnter.call(props, value, _objectSpread(_objectSpread({}, context), {}, {
87
+ inputValue: val
88
+ }));
89
+ },
90
+ onBlur: !props.panel ? handleEmptyPanelBlur : null
91
+ }, props.inputProps), {}, {
92
+ inputClass: classNames((_props$inputProps = props.inputProps) === null || _props$inputProps === void 0 ? void 0 : _props$inputProps.className, _defineProperty(_defineProperty({}, "t-input--focused", popupVisible), "t-is-focused", popupVisible))
93
+ }));
94
+ };
95
+ return {
96
+ inputRef: inputRef,
97
+ commonInputProps: commonInputProps,
98
+ singleInputValue: inputValue,
99
+ onInnerClear: onInnerClear,
100
+ renderSelectSingle: renderSelectSingle
101
+ };
102
+ }
103
+
104
+ export { useSingle as default };
105
+ //# sourceMappingURL=useSingle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSingle.js","sources":["../../../../components/select-input/hook/useSingle.tsx"],"sourcesContent":["import React, { useRef, MouseEvent } from \"react\";\nimport { isObject, pick } from \"lodash-es\";\nimport classNames from \"classnames\";\nimport { SelectInputCommonProperties } from \"../interface\";\nimport { TdSelectInputProps, SelectInputValueChangeContext } from \"../type\";\nimport Input, { InputRef, TdInputProps } from \"../../input\";\nimport useControlled from \"../../hooks/useControlled\";\n\nexport interface RenderSelectSingleInputParams {\n tPlaceholder: string;\n}\n\n// single 和 multiple 共有特性\nconst COMMON_PROPERTIES = [\n \"status\",\n \"clearable\",\n \"disabled\",\n \"label\",\n \"placeholder\",\n \"readonly\",\n \"suffix\",\n \"suffixIcon\",\n \"onPaste\",\n \"onEnter\",\n \"onMouseenter\",\n \"onMouseleave\",\n \"size\",\n \"prefixIcon\"\n];\n\nconst DEFAULT_KEYS: TdSelectInputProps[\"keys\"] = {\n label: \"label\",\n value: \"value\"\n};\n\nfunction getInputValue(value: TdSelectInputProps[\"value\"], keys: TdSelectInputProps[\"keys\"]) {\n const iKeys = keys || DEFAULT_KEYS;\n return isObject(value) ? value[iKeys.label] : value;\n}\n\nexport default function useSingle(props: TdSelectInputProps) {\n const { value, keys } = props;\n const inputRef = useRef<InputRef>(null);\n const [inputValue, setInputValue] = useControlled(props, \"inputValue\", props.onInputChange);\n const commonInputProps: SelectInputCommonProperties = {\n ...pick(props, COMMON_PROPERTIES),\n suffixIcon: props.suffixIcon\n };\n\n const onInnerClear = (context: { e: MouseEvent<SVGSVGElement> }) => {\n context?.e?.stopPropagation();\n props.onClear?.(context);\n setInputValue(\"\", { trigger: \"clear\" });\n };\n\n const onInnerInputChange: TdInputProps[\"onChange\"] = (value, context) => {\n if (props.allowInput) {\n setInputValue(value, { ...context, trigger: \"input\" } as SelectInputValueChangeContext);\n }\n };\n\n const handleEmptyPanelBlur = (value: string, { e }: { e: React.FocusEvent<HTMLInputElement> }) => {\n props.onBlur?.(value, { e, inputValue: value });\n };\n\n const renderSelectSingle = (popupVisible: boolean) => {\n const singleValueDisplay = !props.multiple ? props.valueDisplay : null;\n const displayedValue = popupVisible && props.allowInput ? inputValue : getInputValue(value, keys);\n return (\n <Input\n ref={inputRef as unknown as React.Ref<HTMLInputElement>}\n {...commonInputProps}\n autoWidth={props.autoWidth}\n placeholder={props.placeholder}\n value={singleValueDisplay ? \" \" : displayedValue}\n label={\n (props.label || singleValueDisplay) && (\n <>\n {props.label}\n {singleValueDisplay as React.ReactNode}\n </>\n )\n }\n onChange={onInnerInputChange}\n onClear={onInnerClear}\n // [Important Info]: SelectInput.blur is not equal to Input, example: click popup panel\n onFocus={(val, context) => {\n props.onFocus?.(value, { ...context, inputValue: val });\n // focus might not need to change input value. it will caught some curious errors in tree-select\n // !popupVisible && setInputValue(getInputValue(value, keys), { ...context, trigger: 'input' });\n }}\n onEnter={(val, context) => {\n props.onEnter?.(value, { ...context, inputValue: val });\n }}\n // onBlur need to triggered by input when popup panel is null\n onBlur={!props.panel ? handleEmptyPanelBlur : null}\n {...props.inputProps}\n inputClass={classNames(props.inputProps?.className, {\n [`t-input--focused`]: popupVisible,\n [`t-is-focused`]: popupVisible\n })}\n ></Input>\n );\n };\n return {\n inputRef,\n commonInputProps,\n singleInputValue: inputValue,\n onInnerClear,\n renderSelectSingle\n };\n}\n"],"names":["COMMON_PROPERTIES","DEFAULT_KEYS","label","value","getInputValue","keys","iKeys","isObject","useSingle","props","inputRef","useRef","_useControlled","useControlled","onInputChange","_useControlled2","_slicedToArray","inputValue","setInputValue","commonInputProps","_objectSpread","pick","suffixIcon","onInnerClear","context","_context$e","_props$onClear","e","stopPropagation","onClear","call","trigger","onInnerInputChange","allowInput","handleEmptyPanelBlur","_props$onBlur","onBlur","renderSelectSingle","popupVisible","_props$inputProps","singleValueDisplay","multiple","valueDisplay","displayedValue","React","createElement","Input","ref","autoWidth","placeholder","Fragment","onChange","onFocus","val","_props$onFocus","onEnter","_props$onEnter","panel","inputProps","inputClass","classNames","className","_defineProperty","singleInputValue"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import SelectInput$1 from './SelectInput.js';
2
+ import './style/css.js';
3
+ import '../_chunks/dep-Cwish4GD.js';
4
+ import '../_chunks/dep-D-UKOauR.js';
5
+ import 'react';
6
+ import 'classnames';
7
+ import './hook/useSingle.js';
8
+ import '../_chunks/dep-CzLhKWCf.js';
9
+ import 'lodash-es';
10
+ import '../input/index.js';
11
+ import '../input/Input.js';
12
+ import '../_chunks/dep-DN7d1SzH.js';
13
+ import '@tendaui/icons';
14
+ import '../_chunks/dep-0QH2Ee4R.js';
15
+ import '../_chunks/dep-DwWrhxkd.js';
16
+ import '../_chunks/dep-D6YxJv-F.js';
17
+ import '../_chunks/dep-DGvfel3I.js';
18
+ import '../_chunks/dep-u1x3x6MJ.js';
19
+ import '../config-provider/ConfigContext.js';
20
+ import '../input/InputGroup.js';
21
+ import '../input/style/css.js';
22
+ import './hook/useMultiple.js';
23
+ import '../tag-input/index.js';
24
+ import '../tag-input/TagInput.js';
25
+ import '../tag-input/hooks/useTagList.js';
26
+ import '../_chunks/dep-CgyDw_YI.js';
27
+ import '../tag/index.js';
28
+ import '../tag/Tag.js';
29
+ import '../_chunks/dep-U1T8CQY9.js';
30
+ import '../_chunks/dep-bWaVq_y3.js';
31
+ import '../_chunks/dep-BP0-apUT.js';
32
+ import 'hoist-non-react-statics';
33
+ import '../tag/style/css.js';
34
+ import '../hooks/useDragSorter.js';
35
+ import '../tag-input/style/css.js';
36
+ import '../popup/index.js';
37
+ import '../popup/Popup.js';
38
+ import '../portal/Portal.js';
39
+ import 'react-dom';
40
+ import 'react-is';
41
+ import '../_chunks/dep-C1XcmShP.js';
42
+ import '@popperjs/core';
43
+ import 'react-fast-compare';
44
+ import 'react-transition-group';
45
+ import '../_chunks/dep-BH5n5r1M.js';
46
+ import '../popup/style/css.js';
47
+
48
+ var SelectInput = SelectInput$1;
49
+
50
+ export { SelectInput, SelectInput as default };
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../components/select-input/index.ts"],"sourcesContent":["import _SelectInput from \"./SelectInput\";\nimport \"./style/index.js\";\nexport type { SelectInputProps } from \"./SelectInput\";\nexport * from \"./type\";\nexport const SelectInput = _SelectInput;\nexport default SelectInput;\n"],"names":["SelectInput","_SelectInput"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAMA,WAAA,GAAcC;;;;"}
@@ -0,0 +1 @@
1
+ import "./index.css";
File without changes
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}