tntd 2.7.23 → 2.7.24

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 (370) hide show
  1. package/es/index.js +1 -0
  2. package/es/index.js.map +1 -1
  3. package/es/locale/en_US.js +5 -2
  4. package/es/locale/en_US.js.map +1 -1
  5. package/es/locale/zh_CN.js +4 -1
  6. package/es/locale/zh_CN.js.map +1 -1
  7. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +1 -1
  8. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
  9. package/es/tntd-rc-select/_util/DisabledContext.js +8 -0
  10. package/es/tntd-rc-select/_util/DisabledContext.js.map +1 -0
  11. package/es/tntd-rc-select/_util/FormItemInputContext.js +3 -0
  12. package/es/tntd-rc-select/_util/FormItemInputContext.js.map +1 -0
  13. package/es/tntd-rc-select/_util/PurePanel.js +55 -0
  14. package/es/tntd-rc-select/_util/PurePanel.js.map +1 -0
  15. package/es/tntd-rc-select/_util/SizeContext.js +3 -0
  16. package/es/tntd-rc-select/_util/SizeContext.js.map +1 -0
  17. package/es/tntd-rc-select/_util/context.js +14 -0
  18. package/es/tntd-rc-select/_util/context.js.map +1 -0
  19. package/es/tntd-rc-select/_util/defaultRenderEmpty.js +20 -0
  20. package/es/tntd-rc-select/_util/defaultRenderEmpty.js.map +1 -0
  21. package/es/tntd-rc-select/_util/getIcons.js +52 -0
  22. package/es/tntd-rc-select/_util/getIcons.js.map +1 -0
  23. package/es/tntd-rc-select/_util/interface.js +5 -0
  24. package/es/tntd-rc-select/_util/interface.js.map +1 -0
  25. package/es/tntd-rc-select/_util/motion.js +38 -0
  26. package/es/tntd-rc-select/_util/motion.js.map +1 -0
  27. package/es/tntd-rc-select/_util/type.js +4 -0
  28. package/es/tntd-rc-select/_util/type.js.map +1 -0
  29. package/es/tntd-rc-select/_util/useCompactItemContext.js +24 -0
  30. package/es/tntd-rc-select/_util/useCompactItemContext.js.map +1 -0
  31. package/es/tntd-rc-select/_util/warning.js +15 -0
  32. package/es/tntd-rc-select/_util/warning.js.map +1 -0
  33. package/es/tntd-rc-select/img/no-data-s.png +0 -0
  34. package/es/tntd-rc-select/index.js +103 -0
  35. package/es/tntd-rc-select/index.js.map +1 -0
  36. package/es/tntd-rc-select/style/index.less +1657 -0
  37. package/es/tntd-select/_util/DisabledContext.js +8 -0
  38. package/es/tntd-select/_util/DisabledContext.js.map +1 -0
  39. package/es/tntd-select/_util/FormItemInputContext.js +3 -0
  40. package/es/tntd-select/_util/FormItemInputContext.js.map +1 -0
  41. package/es/tntd-select/_util/PurePanel.js +4 -17
  42. package/es/tntd-select/_util/PurePanel.js.map +1 -1
  43. package/es/tntd-select/_util/SizeContext.js +3 -0
  44. package/es/tntd-select/_util/SizeContext.js.map +1 -0
  45. package/es/tntd-select/_util/context.js +14 -0
  46. package/es/tntd-select/_util/context.js.map +1 -0
  47. package/es/tntd-select/_util/defaultRenderEmpty.js +20 -0
  48. package/es/tntd-select/_util/defaultRenderEmpty.js.map +1 -0
  49. package/es/tntd-select/_util/getIcons.js +52 -0
  50. package/es/tntd-select/_util/getIcons.js.map +1 -0
  51. package/es/tntd-select/_util/interface.js +5 -0
  52. package/es/tntd-select/_util/interface.js.map +1 -0
  53. package/es/tntd-select/_util/motion.js +15 -8
  54. package/es/tntd-select/_util/motion.js.map +1 -1
  55. package/es/tntd-select/_util/type.js +4 -0
  56. package/es/tntd-select/_util/type.js.map +1 -0
  57. package/es/tntd-select/_util/useCompactItemContext.js +24 -0
  58. package/es/tntd-select/_util/useCompactItemContext.js.map +1 -0
  59. package/es/tntd-select/_util/warning.js +14 -5
  60. package/es/tntd-select/_util/warning.js.map +1 -1
  61. package/es/tntd-select/index.js +7 -1
  62. package/es/tntd-select/index.js.map +1 -1
  63. package/es/tntd-select/rc-select/BaseSelect.js +429 -0
  64. package/es/tntd-select/rc-select/BaseSelect.js.map +1 -0
  65. package/es/tntd-select/rc-select/OptGroup.js +5 -0
  66. package/es/tntd-select/rc-select/OptGroup.js.map +1 -0
  67. package/es/tntd-select/rc-select/Option.js +5 -0
  68. package/es/tntd-select/rc-select/Option.js.map +1 -0
  69. package/es/tntd-select/rc-select/OptionList.js +257 -0
  70. package/es/tntd-select/rc-select/OptionList.js.map +1 -0
  71. package/es/tntd-select/rc-select/Select.js +428 -0
  72. package/es/tntd-select/rc-select/Select.js.map +1 -0
  73. package/es/tntd-select/rc-select/SelectContext.js +4 -0
  74. package/es/tntd-select/rc-select/SelectContext.js.map +1 -0
  75. package/es/tntd-select/rc-select/SelectTrigger.js +91 -0
  76. package/es/tntd-select/rc-select/SelectTrigger.js.map +1 -0
  77. package/es/tntd-select/rc-select/Selector/Input.js +47 -0
  78. package/es/tntd-select/rc-select/Selector/Input.js.map +1 -0
  79. package/es/tntd-select/rc-select/Selector/MultipleSelector.js +97 -0
  80. package/es/tntd-select/rc-select/Selector/MultipleSelector.js.map +1 -0
  81. package/es/tntd-select/rc-select/Selector/SingleSelector.js +45 -0
  82. package/es/tntd-select/rc-select/Selector/SingleSelector.js.map +1 -0
  83. package/es/tntd-select/rc-select/Selector/index.js +136 -0
  84. package/es/tntd-select/rc-select/Selector/index.js.map +1 -0
  85. package/es/tntd-select/rc-select/TransBtn.js +22 -0
  86. package/es/tntd-select/rc-select/TransBtn.js.map +1 -0
  87. package/es/tntd-select/rc-select/hooks/useAllowClear.js +25 -0
  88. package/es/tntd-select/rc-select/hooks/useAllowClear.js.map +1 -0
  89. package/es/tntd-select/rc-select/hooks/useBaseProps.js +10 -0
  90. package/es/tntd-select/rc-select/hooks/useBaseProps.js.map +1 -0
  91. package/es/tntd-select/rc-select/hooks/useCache.js +34 -0
  92. package/es/tntd-select/rc-select/hooks/useCache.js.map +1 -0
  93. package/es/tntd-select/rc-select/hooks/useDelayReset.js +24 -0
  94. package/es/tntd-select/rc-select/hooks/useDelayReset.js.map +1 -0
  95. package/es/tntd-select/rc-select/hooks/useFilterOptions.js +55 -0
  96. package/es/tntd-select/rc-select/hooks/useFilterOptions.js.map +1 -0
  97. package/es/tntd-select/rc-select/hooks/useId.js +28 -0
  98. package/es/tntd-select/rc-select/hooks/useId.js.map +1 -0
  99. package/es/tntd-select/rc-select/hooks/useLayoutEffect.js +18 -0
  100. package/es/tntd-select/rc-select/hooks/useLayoutEffect.js.map +1 -0
  101. package/es/tntd-select/rc-select/hooks/useLock.js +26 -0
  102. package/es/tntd-select/rc-select/hooks/useLock.js.map +1 -0
  103. package/es/tntd-select/rc-select/hooks/useOptions.js +45 -0
  104. package/es/tntd-select/rc-select/hooks/useOptions.js.map +1 -0
  105. package/es/tntd-select/rc-select/hooks/useRefFunc.js +14 -0
  106. package/es/tntd-select/rc-select/hooks/useRefFunc.js.map +1 -0
  107. package/es/tntd-select/rc-select/hooks/useSelectTriggerControl.js +32 -0
  108. package/es/tntd-select/rc-select/hooks/useSelectTriggerControl.js.map +1 -0
  109. package/es/tntd-select/rc-select/index.js +8 -0
  110. package/es/tntd-select/rc-select/index.js.map +1 -0
  111. package/es/tntd-select/rc-select/interface.js +2 -0
  112. package/es/tntd-select/rc-select/interface.js.map +1 -0
  113. package/es/tntd-select/rc-select/utils/commonUtil.js +32 -0
  114. package/es/tntd-select/rc-select/utils/commonUtil.js.map +1 -0
  115. package/es/tntd-select/rc-select/utils/keyUtil.js +34 -0
  116. package/es/tntd-select/rc-select/utils/keyUtil.js.map +1 -0
  117. package/es/tntd-select/rc-select/utils/legacyUtil.js +32 -0
  118. package/es/tntd-select/rc-select/utils/legacyUtil.js.map +1 -0
  119. package/es/tntd-select/rc-select/utils/platformUtil.js +5 -0
  120. package/es/tntd-select/rc-select/utils/platformUtil.js.map +1 -0
  121. package/es/tntd-select/rc-select/utils/valueUtil.js +99 -0
  122. package/es/tntd-select/rc-select/utils/valueUtil.js.map +1 -0
  123. package/es/tntd-select/rc-select/utils/warningPropsUtil.js +100 -0
  124. package/es/tntd-select/rc-select/utils/warningPropsUtil.js.map +1 -0
  125. package/lib/index.d.ts +1 -0
  126. package/lib/index.d.ts.map +1 -1
  127. package/lib/index.js +3 -1
  128. package/lib/index.js.map +1 -1
  129. package/lib/locale/default.d.ts +4 -1
  130. package/lib/locale/default.d.ts.map +1 -1
  131. package/lib/locale/en_US.d.ts +4 -1
  132. package/lib/locale/en_US.d.ts.map +1 -1
  133. package/lib/locale/en_US.js +5 -2
  134. package/lib/locale/en_US.js.map +1 -1
  135. package/lib/locale/zh_CN.d.ts +4 -1
  136. package/lib/locale/zh_CN.d.ts.map +1 -1
  137. package/lib/locale/zh_CN.js +4 -1
  138. package/lib/locale/zh_CN.js.map +1 -1
  139. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +1 -1
  140. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
  141. package/lib/tntd-rc-select/_util/DisabledContext.d.ts +10 -0
  142. package/lib/tntd-rc-select/_util/DisabledContext.d.ts.map +1 -0
  143. package/lib/tntd-rc-select/_util/DisabledContext.js +35 -0
  144. package/lib/tntd-rc-select/_util/DisabledContext.js.map +1 -0
  145. package/lib/tntd-rc-select/_util/FormItemInputContext.d.ts +4 -0
  146. package/lib/tntd-rc-select/_util/FormItemInputContext.d.ts.map +1 -0
  147. package/lib/tntd-rc-select/_util/FormItemInputContext.js +29 -0
  148. package/lib/tntd-rc-select/_util/FormItemInputContext.js.map +1 -0
  149. package/lib/tntd-rc-select/_util/PurePanel.d.ts +9 -0
  150. package/lib/tntd-rc-select/_util/PurePanel.d.ts.map +1 -0
  151. package/lib/tntd-rc-select/_util/PurePanel.js +84 -0
  152. package/lib/tntd-rc-select/_util/PurePanel.js.map +1 -0
  153. package/lib/tntd-rc-select/_util/SizeContext.d.ts +4 -0
  154. package/lib/tntd-rc-select/_util/SizeContext.d.ts.map +1 -0
  155. package/lib/tntd-rc-select/_util/SizeContext.js +29 -0
  156. package/lib/tntd-rc-select/_util/SizeContext.js.map +1 -0
  157. package/lib/tntd-rc-select/_util/context.d.ts +42 -0
  158. package/lib/tntd-rc-select/_util/context.d.ts.map +1 -0
  159. package/lib/tntd-rc-select/_util/context.js +20 -0
  160. package/lib/tntd-rc-select/_util/context.js.map +1 -0
  161. package/lib/tntd-rc-select/_util/defaultRenderEmpty.d.ts +5 -0
  162. package/lib/tntd-rc-select/_util/defaultRenderEmpty.d.ts.map +1 -0
  163. package/lib/tntd-rc-select/_util/defaultRenderEmpty.js +48 -0
  164. package/lib/tntd-rc-select/_util/defaultRenderEmpty.js.map +1 -0
  165. package/lib/tntd-rc-select/_util/getIcons.d.ts +25 -0
  166. package/lib/tntd-rc-select/_util/getIcons.d.ts.map +1 -0
  167. package/lib/tntd-rc-select/_util/getIcons.js +78 -0
  168. package/lib/tntd-rc-select/_util/getIcons.js.map +1 -0
  169. package/lib/tntd-rc-select/_util/interface.d.ts +25 -0
  170. package/lib/tntd-rc-select/_util/interface.d.ts.map +1 -0
  171. package/lib/tntd-rc-select/_util/interface.js +9 -0
  172. package/lib/tntd-rc-select/_util/interface.js.map +1 -0
  173. package/lib/tntd-rc-select/_util/motion.d.ts +9 -0
  174. package/lib/tntd-rc-select/_util/motion.d.ts.map +1 -0
  175. package/lib/tntd-rc-select/_util/motion.js +42 -0
  176. package/lib/tntd-rc-select/_util/motion.js.map +1 -0
  177. package/lib/tntd-rc-select/_util/type.d.ts +10 -0
  178. package/lib/tntd-rc-select/_util/type.d.ts.map +1 -0
  179. package/lib/tntd-rc-select/_util/type.js +9 -0
  180. package/lib/tntd-rc-select/_util/type.js.map +1 -0
  181. package/lib/tntd-rc-select/_util/useCompactItemContext.d.ts +9 -0
  182. package/lib/tntd-rc-select/_util/useCompactItemContext.d.ts.map +1 -0
  183. package/lib/tntd-rc-select/_util/useCompactItemContext.js +54 -0
  184. package/lib/tntd-rc-select/_util/useCompactItemContext.js.map +1 -0
  185. package/lib/tntd-rc-select/_util/warning.d.ts +4 -0
  186. package/lib/tntd-rc-select/_util/warning.d.ts.map +1 -0
  187. package/lib/tntd-rc-select/_util/warning.js +40 -0
  188. package/lib/tntd-rc-select/_util/warning.js.map +1 -0
  189. package/lib/tntd-rc-select/img/no-data-s.png +0 -0
  190. package/lib/tntd-rc-select/index.d.ts +44 -0
  191. package/lib/tntd-rc-select/index.d.ts.map +1 -0
  192. package/lib/tntd-rc-select/index.js +131 -0
  193. package/lib/tntd-rc-select/index.js.map +1 -0
  194. package/lib/tntd-rc-select/style/index.less +1657 -0
  195. package/lib/tntd-select/_util/DisabledContext.d.ts +10 -0
  196. package/lib/tntd-select/_util/DisabledContext.d.ts.map +1 -0
  197. package/lib/tntd-select/_util/DisabledContext.js +35 -0
  198. package/lib/tntd-select/_util/DisabledContext.js.map +1 -0
  199. package/lib/tntd-select/_util/FormItemInputContext.d.ts +4 -0
  200. package/lib/tntd-select/_util/FormItemInputContext.d.ts.map +1 -0
  201. package/lib/tntd-select/_util/FormItemInputContext.js +29 -0
  202. package/lib/tntd-select/_util/FormItemInputContext.js.map +1 -0
  203. package/lib/tntd-select/_util/PurePanel.d.ts +3 -2
  204. package/lib/tntd-select/_util/PurePanel.d.ts.map +1 -1
  205. package/lib/tntd-select/_util/PurePanel.js +4 -19
  206. package/lib/tntd-select/_util/PurePanel.js.map +1 -1
  207. package/lib/tntd-select/_util/SizeContext.d.ts +4 -0
  208. package/lib/tntd-select/_util/SizeContext.d.ts.map +1 -0
  209. package/lib/tntd-select/_util/SizeContext.js +29 -0
  210. package/lib/tntd-select/_util/SizeContext.js.map +1 -0
  211. package/lib/tntd-select/_util/context.d.ts +42 -0
  212. package/lib/tntd-select/_util/context.d.ts.map +1 -0
  213. package/lib/tntd-select/_util/context.js +20 -0
  214. package/lib/tntd-select/_util/context.js.map +1 -0
  215. package/lib/tntd-select/_util/defaultRenderEmpty.d.ts +5 -0
  216. package/lib/tntd-select/_util/defaultRenderEmpty.d.ts.map +1 -0
  217. package/lib/tntd-select/_util/defaultRenderEmpty.js +48 -0
  218. package/lib/tntd-select/_util/defaultRenderEmpty.js.map +1 -0
  219. package/lib/tntd-select/_util/getIcons.d.ts +25 -0
  220. package/lib/tntd-select/_util/getIcons.d.ts.map +1 -0
  221. package/lib/tntd-select/_util/getIcons.js +78 -0
  222. package/lib/tntd-select/_util/getIcons.js.map +1 -0
  223. package/lib/tntd-select/_util/interface.d.ts +25 -0
  224. package/lib/tntd-select/_util/interface.d.ts.map +1 -0
  225. package/lib/tntd-select/_util/interface.js +9 -0
  226. package/lib/tntd-select/_util/interface.js.map +1 -0
  227. package/lib/tntd-select/_util/motion.d.ts +5 -4
  228. package/lib/tntd-select/_util/motion.d.ts.map +1 -1
  229. package/lib/tntd-select/_util/motion.js +16 -8
  230. package/lib/tntd-select/_util/motion.js.map +1 -1
  231. package/lib/tntd-select/_util/type.d.ts +10 -0
  232. package/lib/tntd-select/_util/type.d.ts.map +1 -0
  233. package/lib/tntd-select/_util/type.js +9 -0
  234. package/lib/tntd-select/_util/type.js.map +1 -0
  235. package/lib/tntd-select/_util/useCompactItemContext.d.ts +9 -0
  236. package/lib/tntd-select/_util/useCompactItemContext.d.ts.map +1 -0
  237. package/lib/tntd-select/_util/useCompactItemContext.js +54 -0
  238. package/lib/tntd-select/_util/useCompactItemContext.js.map +1 -0
  239. package/lib/tntd-select/_util/warning.d.ts +3 -4
  240. package/lib/tntd-select/_util/warning.d.ts.map +1 -1
  241. package/lib/tntd-select/_util/warning.js +13 -5
  242. package/lib/tntd-select/_util/warning.js.map +1 -1
  243. package/lib/tntd-select/index.d.ts.map +1 -1
  244. package/lib/tntd-select/index.js +7 -1
  245. package/lib/tntd-select/index.js.map +1 -1
  246. package/lib/tntd-select/rc-select/BaseSelect.d.ts +114 -0
  247. package/lib/tntd-select/rc-select/BaseSelect.d.ts.map +1 -0
  248. package/lib/tntd-select/rc-select/BaseSelect.js +459 -0
  249. package/lib/tntd-select/rc-select/BaseSelect.js.map +1 -0
  250. package/lib/tntd-select/rc-select/OptGroup.d.ts +13 -0
  251. package/lib/tntd-select/rc-select/OptGroup.d.ts.map +1 -0
  252. package/lib/tntd-select/rc-select/OptGroup.js +7 -0
  253. package/lib/tntd-select/rc-select/OptGroup.js.map +1 -0
  254. package/lib/tntd-select/rc-select/Option.d.ts +15 -0
  255. package/lib/tntd-select/rc-select/Option.d.ts.map +1 -0
  256. package/lib/tntd-select/rc-select/Option.js +7 -0
  257. package/lib/tntd-select/rc-select/Option.js.map +1 -0
  258. package/lib/tntd-select/rc-select/OptionList.d.ts +11 -0
  259. package/lib/tntd-select/rc-select/OptionList.d.ts.map +1 -0
  260. package/lib/tntd-select/rc-select/OptionList.js +285 -0
  261. package/lib/tntd-select/rc-select/OptionList.js.map +1 -0
  262. package/lib/tntd-select/rc-select/Select.d.ts +115 -0
  263. package/lib/tntd-select/rc-select/Select.d.ts.map +1 -0
  264. package/lib/tntd-select/rc-select/Select.js +456 -0
  265. package/lib/tntd-select/rc-select/Select.js.map +1 -0
  266. package/lib/tntd-select/rc-select/SelectContext.d.ts +23 -0
  267. package/lib/tntd-select/rc-select/SelectContext.d.ts.map +1 -0
  268. package/lib/tntd-select/rc-select/SelectContext.js +29 -0
  269. package/lib/tntd-select/rc-select/SelectContext.js.map +1 -0
  270. package/lib/tntd-select/rc-select/SelectTrigger.d.ts +31 -0
  271. package/lib/tntd-select/rc-select/SelectTrigger.d.ts.map +1 -0
  272. package/lib/tntd-select/rc-select/SelectTrigger.js +119 -0
  273. package/lib/tntd-select/rc-select/SelectTrigger.js.map +1 -0
  274. package/lib/tntd-select/rc-select/Selector/Input.d.ts +27 -0
  275. package/lib/tntd-select/rc-select/Selector/Input.d.ts.map +1 -0
  276. package/lib/tntd-select/rc-select/Selector/Input.js +75 -0
  277. package/lib/tntd-select/rc-select/Selector/Input.js.map +1 -0
  278. package/lib/tntd-select/rc-select/Selector/MultipleSelector.d.ts +17 -0
  279. package/lib/tntd-select/rc-select/Selector/MultipleSelector.d.ts.map +1 -0
  280. package/lib/tntd-select/rc-select/Selector/MultipleSelector.js +125 -0
  281. package/lib/tntd-select/rc-select/Selector/MultipleSelector.js.map +1 -0
  282. package/lib/tntd-select/rc-select/Selector/SingleSelector.d.ts +9 -0
  283. package/lib/tntd-select/rc-select/Selector/SingleSelector.d.ts.map +1 -0
  284. package/lib/tntd-select/rc-select/Selector/SingleSelector.js +73 -0
  285. package/lib/tntd-select/rc-select/Selector/SingleSelector.js.map +1 -0
  286. package/lib/tntd-select/rc-select/Selector/index.d.ts +83 -0
  287. package/lib/tntd-select/rc-select/Selector/index.d.ts.map +1 -0
  288. package/lib/tntd-select/rc-select/Selector/index.js +164 -0
  289. package/lib/tntd-select/rc-select/Selector/index.js.map +1 -0
  290. package/lib/tntd-select/rc-select/TransBtn.d.ts +13 -0
  291. package/lib/tntd-select/rc-select/TransBtn.d.ts.map +1 -0
  292. package/lib/tntd-select/rc-select/TransBtn.js +50 -0
  293. package/lib/tntd-select/rc-select/TransBtn.js.map +1 -0
  294. package/lib/tntd-select/rc-select/hooks/useAllowClear.d.ts +9 -0
  295. package/lib/tntd-select/rc-select/hooks/useAllowClear.d.ts.map +1 -0
  296. package/lib/tntd-select/rc-select/hooks/useAllowClear.js +32 -0
  297. package/lib/tntd-select/rc-select/hooks/useAllowClear.js.map +1 -0
  298. package/lib/tntd-select/rc-select/hooks/useBaseProps.d.ts +14 -0
  299. package/lib/tntd-select/rc-select/hooks/useBaseProps.d.ts.map +1 -0
  300. package/lib/tntd-select/rc-select/hooks/useBaseProps.js +37 -0
  301. package/lib/tntd-select/rc-select/hooks/useBaseProps.js.map +1 -0
  302. package/lib/tntd-select/rc-select/hooks/useCache.d.ts +8 -0
  303. package/lib/tntd-select/rc-select/hooks/useCache.d.ts.map +1 -0
  304. package/lib/tntd-select/rc-select/hooks/useCache.js +59 -0
  305. package/lib/tntd-select/rc-select/hooks/useCache.js.map +1 -0
  306. package/lib/tntd-select/rc-select/hooks/useDelayReset.d.ts +6 -0
  307. package/lib/tntd-select/rc-select/hooks/useDelayReset.d.ts.map +1 -0
  308. package/lib/tntd-select/rc-select/hooks/useDelayReset.js +50 -0
  309. package/lib/tntd-select/rc-select/hooks/useDelayReset.js.map +1 -0
  310. package/lib/tntd-select/rc-select/hooks/useFilterOptions.d.ts +4 -0
  311. package/lib/tntd-select/rc-select/hooks/useFilterOptions.d.ts.map +1 -0
  312. package/lib/tntd-select/rc-select/hooks/useFilterOptions.js +80 -0
  313. package/lib/tntd-select/rc-select/hooks/useFilterOptions.js.map +1 -0
  314. package/lib/tntd-select/rc-select/hooks/useId.d.ts +6 -0
  315. package/lib/tntd-select/rc-select/hooks/useId.d.ts.map +1 -0
  316. package/lib/tntd-select/rc-select/hooks/useId.js +59 -0
  317. package/lib/tntd-select/rc-select/hooks/useId.js.map +1 -0
  318. package/lib/tntd-select/rc-select/hooks/useLayoutEffect.d.ts +6 -0
  319. package/lib/tntd-select/rc-select/hooks/useLayoutEffect.d.ts.map +1 -0
  320. package/lib/tntd-select/rc-select/hooks/useLayoutEffect.js +44 -0
  321. package/lib/tntd-select/rc-select/hooks/useLayoutEffect.js.map +1 -0
  322. package/lib/tntd-select/rc-select/hooks/useLock.d.ts +8 -0
  323. package/lib/tntd-select/rc-select/hooks/useLock.d.ts.map +1 -0
  324. package/lib/tntd-select/rc-select/hooks/useLock.js +52 -0
  325. package/lib/tntd-select/rc-select/hooks/useLock.js.map +1 -0
  326. package/lib/tntd-select/rc-select/hooks/useOptions.d.ts +12 -0
  327. package/lib/tntd-select/rc-select/hooks/useOptions.d.ts.map +1 -0
  328. package/lib/tntd-select/rc-select/hooks/useOptions.js +71 -0
  329. package/lib/tntd-select/rc-select/hooks/useOptions.js.map +1 -0
  330. package/lib/tntd-select/rc-select/hooks/useRefFunc.d.ts +6 -0
  331. package/lib/tntd-select/rc-select/hooks/useRefFunc.d.ts.map +1 -0
  332. package/lib/tntd-select/rc-select/hooks/useRefFunc.js +40 -0
  333. package/lib/tntd-select/rc-select/hooks/useRefFunc.js.map +1 -0
  334. package/lib/tntd-select/rc-select/hooks/useSelectTriggerControl.d.ts +2 -0
  335. package/lib/tntd-select/rc-select/hooks/useSelectTriggerControl.d.ts.map +1 -0
  336. package/lib/tntd-select/rc-select/hooks/useSelectTriggerControl.js +58 -0
  337. package/lib/tntd-select/rc-select/hooks/useSelectTriggerControl.js.map +1 -0
  338. package/lib/tntd-select/rc-select/index.d.ts +11 -0
  339. package/lib/tntd-select/rc-select/index.d.ts.map +1 -0
  340. package/lib/tntd-select/rc-select/index.js +17 -0
  341. package/lib/tntd-select/rc-select/index.js.map +1 -0
  342. package/lib/tntd-select/rc-select/interface.d.ts +23 -0
  343. package/lib/tntd-select/rc-select/interface.d.ts.map +1 -0
  344. package/lib/tntd-select/rc-select/interface.js +3 -0
  345. package/lib/tntd-select/rc-select/interface.js.map +1 -0
  346. package/lib/tntd-select/rc-select/utils/commonUtil.d.ts +10 -0
  347. package/lib/tntd-select/rc-select/utils/commonUtil.d.ts.map +1 -0
  348. package/lib/tntd-select/rc-select/utils/commonUtil.js +39 -0
  349. package/lib/tntd-select/rc-select/utils/commonUtil.js.map +1 -0
  350. package/lib/tntd-select/rc-select/utils/keyUtil.d.ts +3 -0
  351. package/lib/tntd-select/rc-select/utils/keyUtil.d.ts.map +1 -0
  352. package/lib/tntd-select/rc-select/utils/keyUtil.js +41 -0
  353. package/lib/tntd-select/rc-select/utils/keyUtil.js.map +1 -0
  354. package/lib/tntd-select/rc-select/utils/legacyUtil.d.ts +4 -0
  355. package/lib/tntd-select/rc-select/utils/legacyUtil.d.ts.map +1 -0
  356. package/lib/tntd-select/rc-select/utils/legacyUtil.js +62 -0
  357. package/lib/tntd-select/rc-select/utils/legacyUtil.js.map +1 -0
  358. package/lib/tntd-select/rc-select/utils/platformUtil.d.ts +2 -0
  359. package/lib/tntd-select/rc-select/utils/platformUtil.d.ts.map +1 -0
  360. package/lib/tntd-select/rc-select/utils/platformUtil.js +9 -0
  361. package/lib/tntd-select/rc-select/utils/platformUtil.js.map +1 -0
  362. package/lib/tntd-select/rc-select/utils/valueUtil.d.ts +24 -0
  363. package/lib/tntd-select/rc-select/utils/valueUtil.d.ts.map +1 -0
  364. package/lib/tntd-select/rc-select/utils/valueUtil.js +109 -0
  365. package/lib/tntd-select/rc-select/utils/valueUtil.js.map +1 -0
  366. package/lib/tntd-select/rc-select/utils/warningPropsUtil.d.ts +5 -0
  367. package/lib/tntd-select/rc-select/utils/warningPropsUtil.d.ts.map +1 -0
  368. package/lib/tntd-select/rc-select/utils/warningPropsUtil.js +130 -0
  369. package/lib/tntd-select/rc-select/utils/warningPropsUtil.js.map +1 -0
  370. package/package.json +1 -1
@@ -0,0 +1,429 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import classNames from 'classnames';
13
+ import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';
14
+ import useMergedState from 'rc-util/lib/hooks/useMergedState';
15
+ import isMobile from 'rc-util/lib/isMobile';
16
+ import KeyCode from 'rc-util/lib/KeyCode';
17
+ import { useComposeRef } from 'rc-util/lib/ref';
18
+ import * as React from 'react';
19
+ import { useAllowClear } from './hooks/useAllowClear';
20
+ import { BaseSelectContext } from './hooks/useBaseProps';
21
+ import useDelayReset from './hooks/useDelayReset';
22
+ import useLock from './hooks/useLock';
23
+ import useSelectTriggerControl from './hooks/useSelectTriggerControl';
24
+ import Selector from './Selector';
25
+ import SelectTrigger from './SelectTrigger';
26
+ import TransBtn from './TransBtn';
27
+ import { getSeparatedContent } from './utils/valueUtil';
28
+ const DEFAULT_OMIT_PROPS = [
29
+ 'value',
30
+ 'onChange',
31
+ 'removeIcon',
32
+ 'placeholder',
33
+ 'autoFocus',
34
+ 'maxTagCount',
35
+ 'maxTagTextLength',
36
+ 'maxTagPlaceholder',
37
+ 'choiceTransitionName',
38
+ 'onInputKeyDown',
39
+ 'onPopupScroll',
40
+ 'tabIndex',
41
+ ];
42
+ export function isMultiple(mode) {
43
+ return mode === 'tags' || mode === 'multiple';
44
+ }
45
+ const BaseSelect = React.forwardRef((props, ref) => {
46
+ var _a;
47
+ const { id, prefixCls, className, showSearch, tagRender, direction, omitDomProps,
48
+ // Value
49
+ displayValues, onDisplayValuesChange, emptyOptions, notFoundContent = 'Not Found', onClear,
50
+ // Mode
51
+ mode,
52
+ // Status
53
+ disabled, loading,
54
+ // Customize Input
55
+ getInputElement, getRawInputElement,
56
+ // Open
57
+ open, defaultOpen, onDropdownVisibleChange,
58
+ // Active
59
+ activeValue, onActiveValueChange, activeDescendantId,
60
+ // Search
61
+ searchValue, autoClearSearchValue, onSearch, onSearchSplit, tokenSeparators,
62
+ // Icons
63
+ allowClear, suffixIcon, clearIcon,
64
+ // Dropdown
65
+ OptionList, animation, transitionName, dropdownStyle, dropdownClassName, dropdownMatchSelectWidth, dropdownRender, dropdownAlign, placement, builtinPlacements, getPopupContainer,
66
+ // Focus
67
+ showAction = [], onFocus, onBlur,
68
+ // Rest Events
69
+ onKeyUp, onKeyDown, onMouseDown } = props,
70
+ // Rest Props
71
+ restProps = __rest(props, ["id", "prefixCls", "className", "showSearch", "tagRender", "direction", "omitDomProps", "displayValues", "onDisplayValuesChange", "emptyOptions", "notFoundContent", "onClear", "mode", "disabled", "loading", "getInputElement", "getRawInputElement", "open", "defaultOpen", "onDropdownVisibleChange", "activeValue", "onActiveValueChange", "activeDescendantId", "searchValue", "autoClearSearchValue", "onSearch", "onSearchSplit", "tokenSeparators", "allowClear", "suffixIcon", "clearIcon", "OptionList", "animation", "transitionName", "dropdownStyle", "dropdownClassName", "dropdownMatchSelectWidth", "dropdownRender", "dropdownAlign", "placement", "builtinPlacements", "getPopupContainer", "showAction", "onFocus", "onBlur", "onKeyUp", "onKeyDown", "onMouseDown"]);
72
+ // ============================== MISC ==============================
73
+ const multiple = isMultiple(mode);
74
+ const mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';
75
+ const domProps = Object.assign({}, restProps);
76
+ DEFAULT_OMIT_PROPS.forEach((propName) => {
77
+ delete domProps[propName];
78
+ });
79
+ omitDomProps === null || omitDomProps === void 0 ? void 0 : omitDomProps.forEach((propName) => {
80
+ delete domProps[propName];
81
+ });
82
+ // ============================= Mobile =============================
83
+ const [mobile, setMobile] = React.useState(false);
84
+ React.useEffect(() => {
85
+ // Only update on the client side
86
+ setMobile(isMobile());
87
+ }, []);
88
+ // ============================== Refs ==============================
89
+ const containerRef = React.useRef(null);
90
+ const selectorDomRef = React.useRef(null);
91
+ const triggerRef = React.useRef(null);
92
+ const selectorRef = React.useRef(null);
93
+ const listRef = React.useRef(null);
94
+ const blurRef = React.useRef(false);
95
+ /** Used for component focused management */
96
+ const [mockFocused, setMockFocused, cancelSetMockFocused] = useDelayReset();
97
+ // =========================== Imperative ===========================
98
+ React.useImperativeHandle(ref, () => {
99
+ var _a, _b;
100
+ return ({
101
+ focus: (_a = selectorRef.current) === null || _a === void 0 ? void 0 : _a.focus,
102
+ blur: (_b = selectorRef.current) === null || _b === void 0 ? void 0 : _b.blur,
103
+ scrollTo: (arg) => { var _a; return (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(arg); },
104
+ });
105
+ });
106
+ // ========================== Search Value ==========================
107
+ const mergedSearchValue = React.useMemo(() => {
108
+ var _a;
109
+ if (mode !== 'combobox') {
110
+ return searchValue;
111
+ }
112
+ const val = (_a = displayValues[0]) === null || _a === void 0 ? void 0 : _a.value;
113
+ return typeof val === 'string' || typeof val === 'number' ? String(val) : '';
114
+ }, [searchValue, mode, displayValues]);
115
+ // ========================== Custom Input ==========================
116
+ // Only works in `combobox`
117
+ const customizeInputElement = (mode === 'combobox' && typeof getInputElement === 'function' && getInputElement()) || null;
118
+ // Used for customize replacement for `rc-cascader`
119
+ const customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();
120
+ const customizeRawInputRef = useComposeRef(selectorDomRef, (_a = customizeRawInputElement === null || customizeRawInputElement === void 0 ? void 0 : customizeRawInputElement.props) === null || _a === void 0 ? void 0 : _a.ref);
121
+ // ============================== Open ==============================
122
+ // SSR not support Portal which means we need delay `open` for the first time render
123
+ const [rendered, setRendered] = React.useState(false);
124
+ useLayoutEffect(() => {
125
+ setRendered(true);
126
+ }, []);
127
+ const [innerOpen, setInnerOpen] = useMergedState(false, {
128
+ defaultValue: defaultOpen,
129
+ value: open,
130
+ });
131
+ let mergedOpen = rendered ? innerOpen : false;
132
+ // Not trigger `open` in `combobox` when `notFoundContent` is empty
133
+ const emptyListContent = !notFoundContent && emptyOptions;
134
+ if (disabled || (emptyListContent && mergedOpen && mode === 'combobox')) {
135
+ mergedOpen = false;
136
+ }
137
+ const triggerOpen = emptyListContent ? false : mergedOpen;
138
+ const onToggleOpen = React.useCallback((newOpen) => {
139
+ const nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;
140
+ if (!disabled) {
141
+ setInnerOpen(nextOpen);
142
+ if (mergedOpen !== nextOpen) {
143
+ onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextOpen);
144
+ }
145
+ }
146
+ }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]);
147
+ // ============================= Search =============================
148
+ const tokenWithEnter = React.useMemo(() => (tokenSeparators || []).some((tokenSeparator) => ['\n', '\r\n'].includes(tokenSeparator)), [tokenSeparators]);
149
+ const onInternalSearch = (searchText, fromTyping, isCompositing) => {
150
+ let ret = true;
151
+ let newSearchText = searchText;
152
+ onActiveValueChange === null || onActiveValueChange === void 0 ? void 0 : onActiveValueChange(null);
153
+ // Check if match the `tokenSeparators`
154
+ const patchLabels = isCompositing
155
+ ? null
156
+ : getSeparatedContent(searchText, tokenSeparators);
157
+ // Ignore combobox since it's not split-able
158
+ if (mode !== 'combobox' && patchLabels) {
159
+ newSearchText = '';
160
+ onSearchSplit === null || onSearchSplit === void 0 ? void 0 : onSearchSplit(patchLabels);
161
+ // Should close when paste finish
162
+ onToggleOpen(false);
163
+ // Tell Selector that break next actions
164
+ ret = false;
165
+ }
166
+ if (onSearch && mergedSearchValue !== newSearchText) {
167
+ onSearch(newSearchText, {
168
+ source: fromTyping ? 'typing' : 'effect',
169
+ });
170
+ }
171
+ return ret;
172
+ };
173
+ // Only triggered when menu is closed & mode is tags
174
+ // If menu is open, OptionList will take charge
175
+ // If mode isn't tags, press enter is not meaningful when you can't see any option
176
+ const onInternalSearchSubmit = (searchText) => {
177
+ // prevent empty tags from appearing when you click the Enter button
178
+ if (!searchText || !searchText.trim()) {
179
+ return;
180
+ }
181
+ onSearch(searchText, { source: 'submit' });
182
+ };
183
+ // Close will clean up single mode search text
184
+ React.useEffect(() => {
185
+ if (!mergedOpen && !multiple && mode !== 'combobox') {
186
+ onInternalSearch('', false, false);
187
+ }
188
+ }, [mergedOpen]);
189
+ // ============================ Disabled ============================
190
+ // Close dropdown & remove focus state when disabled change
191
+ React.useEffect(() => {
192
+ if (innerOpen && disabled) {
193
+ setInnerOpen(false);
194
+ }
195
+ // After onBlur is triggered, the focused does not need to be reset
196
+ if (disabled && !blurRef.current) {
197
+ setMockFocused(false);
198
+ }
199
+ }, [disabled]);
200
+ // ============================ Keyboard ============================
201
+ /**
202
+ * We record input value here to check if can press to clean up by backspace
203
+ * - null: Key is not down, this is reset by key up
204
+ * - true: Search text is empty when first time backspace down
205
+ * - false: Search text is not empty when first time backspace down
206
+ */
207
+ const [getClearLock, setClearLock] = useLock();
208
+ // KeyDown
209
+ const onInternalKeyDown = (event, ...rest) => {
210
+ const clearLock = getClearLock();
211
+ const { which } = event;
212
+ if (which === KeyCode.ENTER) {
213
+ // Do not submit form when type in the input
214
+ if (mode !== 'combobox') {
215
+ event.preventDefault();
216
+ }
217
+ // We only manage open state here, close logic should handle by list component
218
+ if (!mergedOpen) {
219
+ onToggleOpen(true);
220
+ }
221
+ }
222
+ setClearLock(!!mergedSearchValue);
223
+ // Remove value by `backspace`
224
+ if (which === KeyCode.BACKSPACE &&
225
+ !clearLock &&
226
+ multiple &&
227
+ !mergedSearchValue &&
228
+ displayValues.length) {
229
+ const cloneDisplayValues = [...displayValues];
230
+ let removedDisplayValue = null;
231
+ for (let i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {
232
+ const current = cloneDisplayValues[i];
233
+ if (!current.disabled) {
234
+ cloneDisplayValues.splice(i, 1);
235
+ removedDisplayValue = current;
236
+ break;
237
+ }
238
+ }
239
+ if (removedDisplayValue) {
240
+ onDisplayValuesChange(cloneDisplayValues, {
241
+ type: 'remove',
242
+ values: [removedDisplayValue],
243
+ });
244
+ }
245
+ }
246
+ if (mergedOpen && listRef.current) {
247
+ listRef.current.onKeyDown(event, ...rest);
248
+ }
249
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event, ...rest);
250
+ };
251
+ // KeyUp
252
+ const onInternalKeyUp = (event, ...rest) => {
253
+ if (mergedOpen && listRef.current) {
254
+ listRef.current.onKeyUp(event, ...rest);
255
+ }
256
+ onKeyUp === null || onKeyUp === void 0 ? void 0 : onKeyUp(event, ...rest);
257
+ };
258
+ // ============================ Selector ============================
259
+ const onSelectorRemove = (val) => {
260
+ const newValues = displayValues.filter((i) => i !== val);
261
+ onDisplayValuesChange(newValues, {
262
+ type: 'remove',
263
+ values: [val],
264
+ });
265
+ };
266
+ // ========================== Focus / Blur ==========================
267
+ /** Record real focus status */
268
+ const focusRef = React.useRef(false);
269
+ const onContainerFocus = (...args) => {
270
+ setMockFocused(true);
271
+ if (!disabled) {
272
+ if (onFocus && !focusRef.current) {
273
+ onFocus(...args);
274
+ }
275
+ // `showAction` should handle `focus` if set
276
+ if (showAction.includes('focus')) {
277
+ onToggleOpen(true);
278
+ }
279
+ }
280
+ focusRef.current = true;
281
+ };
282
+ const onContainerBlur = (...args) => {
283
+ blurRef.current = true;
284
+ setMockFocused(false, () => {
285
+ focusRef.current = false;
286
+ blurRef.current = false;
287
+ onToggleOpen(false);
288
+ });
289
+ if (disabled) {
290
+ return;
291
+ }
292
+ if (mergedSearchValue) {
293
+ // `tags` mode should move `searchValue` into values
294
+ if (mode === 'tags') {
295
+ onSearch(mergedSearchValue, { source: 'submit' });
296
+ }
297
+ else if (mode === 'multiple') {
298
+ // `multiple` mode only clean the search value but not trigger event
299
+ onSearch('', {
300
+ source: 'blur',
301
+ });
302
+ }
303
+ }
304
+ if (onBlur) {
305
+ onBlur(...args);
306
+ }
307
+ };
308
+ // Give focus back of Select
309
+ const activeTimeoutIds = [];
310
+ React.useEffect(() => () => {
311
+ activeTimeoutIds.forEach((timeoutId) => clearTimeout(timeoutId));
312
+ activeTimeoutIds.splice(0, activeTimeoutIds.length);
313
+ }, []);
314
+ const onInternalMouseDown = (event, ...restArgs) => {
315
+ var _a;
316
+ const { target } = event;
317
+ const popupElement = (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.getPopupElement();
318
+ // We should give focus back to selector if clicked item is not focusable
319
+ if (popupElement && popupElement.contains(target)) {
320
+ const timeoutId = setTimeout(() => {
321
+ var _a;
322
+ const index = activeTimeoutIds.indexOf(timeoutId);
323
+ if (index !== -1) {
324
+ activeTimeoutIds.splice(index, 1);
325
+ }
326
+ cancelSetMockFocused();
327
+ if (!mobile && !popupElement.contains(document.activeElement)) {
328
+ (_a = selectorRef.current) === null || _a === void 0 ? void 0 : _a.focus();
329
+ }
330
+ });
331
+ activeTimeoutIds.push(timeoutId);
332
+ }
333
+ onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event, ...restArgs);
334
+ };
335
+ // ============================ Dropdown ============================
336
+ const [, forceUpdate] = React.useState({});
337
+ // We need force update here since popup dom is render async
338
+ function onPopupMouseEnter() {
339
+ forceUpdate({});
340
+ }
341
+ // Used for raw custom input trigger
342
+ let onTriggerVisibleChange;
343
+ if (customizeRawInputElement) {
344
+ onTriggerVisibleChange = (newOpen) => {
345
+ onToggleOpen(newOpen);
346
+ };
347
+ }
348
+ // Close when click on non-select element
349
+ useSelectTriggerControl(() => { var _a; return [containerRef.current, (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.getPopupElement()]; }, triggerOpen, onToggleOpen, !!customizeRawInputElement);
350
+ // ============================ Context =============================
351
+ const baseSelectContext = React.useMemo(() => (Object.assign(Object.assign({}, props), { notFoundContent, open: mergedOpen, triggerOpen,
352
+ id, showSearch: mergedShowSearch, multiple, toggleOpen: onToggleOpen })), [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]);
353
+ // ==================================================================
354
+ // == Render ==
355
+ // ==================================================================
356
+ // ============================= Arrow ==============================
357
+ const showSuffixIcon = !!suffixIcon || loading;
358
+ let arrowNode;
359
+ if (showSuffixIcon) {
360
+ arrowNode = (React.createElement(TransBtn, { className: classNames(`${prefixCls}-arrow`, {
361
+ [`${prefixCls}-arrow-loading`]: loading,
362
+ }), customizeIcon: suffixIcon, customizeIconProps: {
363
+ loading,
364
+ searchValue: mergedSearchValue,
365
+ open: mergedOpen,
366
+ focused: mockFocused,
367
+ showSearch: mergedShowSearch,
368
+ } }));
369
+ }
370
+ // ============================= Clear ==============================
371
+ const onClearMouseDown = () => {
372
+ var _a;
373
+ onClear === null || onClear === void 0 ? void 0 : onClear();
374
+ (_a = selectorRef.current) === null || _a === void 0 ? void 0 : _a.focus();
375
+ onDisplayValuesChange([], {
376
+ type: 'clear',
377
+ values: displayValues,
378
+ });
379
+ onInternalSearch('', false, false);
380
+ };
381
+ const { allowClear: mergedAllowClear, clearIcon: clearNode } = useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon, disabled, mergedSearchValue, mode);
382
+ // =========================== OptionList ===========================
383
+ const optionList = React.createElement(OptionList, { ref: listRef });
384
+ // ============================= Select =============================
385
+ const mergedClassName = classNames(prefixCls, className, {
386
+ [`${prefixCls}-focused`]: mockFocused,
387
+ [`${prefixCls}-multiple`]: multiple,
388
+ [`${prefixCls}-single`]: !multiple,
389
+ [`${prefixCls}-allow-clear`]: allowClear,
390
+ [`${prefixCls}-show-arrow`]: showSuffixIcon,
391
+ [`${prefixCls}-disabled`]: disabled,
392
+ [`${prefixCls}-loading`]: loading,
393
+ [`${prefixCls}-open`]: mergedOpen,
394
+ [`${prefixCls}-customize-input`]: customizeInputElement,
395
+ [`${prefixCls}-show-search`]: mergedShowSearch,
396
+ });
397
+ // >>> Selector
398
+ const selectorNode = (React.createElement(SelectTrigger, { ref: triggerRef, disabled: disabled, prefixCls: prefixCls, visible: triggerOpen, popupElement: optionList, animation: animation, transitionName: transitionName, dropdownStyle: dropdownStyle, dropdownClassName: dropdownClassName, direction: direction, dropdownMatchSelectWidth: dropdownMatchSelectWidth, dropdownRender: dropdownRender, dropdownAlign: dropdownAlign, placement: placement, builtinPlacements: builtinPlacements, getPopupContainer: getPopupContainer, empty: emptyOptions, getTriggerDOMNode: () => selectorDomRef.current, onPopupVisibleChange: onTriggerVisibleChange, onPopupMouseEnter: onPopupMouseEnter }, customizeRawInputElement ? (React.cloneElement(customizeRawInputElement, {
399
+ ref: customizeRawInputRef,
400
+ })) : (React.createElement(Selector, Object.assign({}, props, { domRef: selectorDomRef, prefixCls: prefixCls, inputElement: customizeInputElement, ref: selectorRef, id: id, showSearch: mergedShowSearch, autoClearSearchValue: autoClearSearchValue, mode: mode, activeDescendantId: activeDescendantId, tagRender: tagRender, values: displayValues, open: mergedOpen, onToggleOpen: onToggleOpen, activeValue: activeValue, searchValue: mergedSearchValue, onSearch: onInternalSearch, onSearchSubmit: onInternalSearchSubmit, onRemove: onSelectorRemove, tokenWithEnter: tokenWithEnter })))));
401
+ // >>> Render
402
+ let renderNode;
403
+ // Render raw
404
+ if (customizeRawInputElement) {
405
+ renderNode = selectorNode;
406
+ }
407
+ else {
408
+ renderNode = (React.createElement("div", Object.assign({ className: mergedClassName }, domProps, { ref: containerRef, onMouseDown: onInternalMouseDown, onKeyDown: onInternalKeyDown, onKeyUp: onInternalKeyUp, onFocus: onContainerFocus, onBlur: onContainerBlur }),
409
+ mockFocused && !mergedOpen && (React.createElement("span", { style: {
410
+ width: 0,
411
+ height: 0,
412
+ position: 'absolute',
413
+ overflow: 'hidden',
414
+ opacity: 0,
415
+ }, "aria-live": "polite" }, `${displayValues
416
+ .map(({ label, value }) => ['number', 'string'].includes(typeof label) ? label : value)
417
+ .join(', ')}`)),
418
+ selectorNode,
419
+ arrowNode,
420
+ mergedAllowClear && clearNode));
421
+ }
422
+ return (React.createElement(BaseSelectContext.Provider, { value: baseSelectContext }, renderNode));
423
+ });
424
+ // Set display name for dev
425
+ if (process.env.NODE_ENV !== 'production') {
426
+ BaseSelect.displayName = 'BaseSelect';
427
+ }
428
+ export default BaseSelect;
429
+ //# sourceMappingURL=BaseSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSelect.js","sourceRoot":"","sources":["../../../src/tntd-select/rc-select/BaseSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AlignType, BuildInPlacements } from '@rc-component/trigger/lib/interface';\nimport classNames from 'classnames';\nimport useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';\nimport useMergedState from 'rc-util/lib/hooks/useMergedState';\nimport isMobile from 'rc-util/lib/isMobile';\nimport KeyCode from 'rc-util/lib/KeyCode';\nimport { useComposeRef } from 'rc-util/lib/ref';\nimport type { ScrollConfig, ScrollTo } from 'rc-virtual-list/lib/List';\nimport * as React from 'react';\nimport { useAllowClear } from './hooks/useAllowClear';\nimport { BaseSelectContext } from './hooks/useBaseProps';\nimport useDelayReset from './hooks/useDelayReset';\nimport useLock from './hooks/useLock';\nimport useSelectTriggerControl from './hooks/useSelectTriggerControl';\nimport type {\n DisplayInfoType,\n DisplayValueType,\n Mode,\n Placement,\n RawValueType,\n RenderDOMFunc,\n RenderNode,\n} from './interface';\nimport type { RefSelectorProps } from './Selector';\nimport Selector from './Selector';\nimport type { RefTriggerProps } from './SelectTrigger';\nimport SelectTrigger from './SelectTrigger';\nimport TransBtn from './TransBtn';\nimport { getSeparatedContent } from './utils/valueUtil';\n\nexport type {\n DisplayInfoType,\n DisplayValueType,\n Mode,\n Placement,\n RenderDOMFunc,\n RenderNode,\n RawValueType,\n};\n\nconst DEFAULT_OMIT_PROPS = [\n 'value',\n 'onChange',\n 'removeIcon',\n 'placeholder',\n 'autoFocus',\n 'maxTagCount',\n 'maxTagTextLength',\n 'maxTagPlaceholder',\n 'choiceTransitionName',\n 'onInputKeyDown',\n 'onPopupScroll',\n 'tabIndex',\n] as const;\nexport interface RefOptionListProps {\n onKeyDown: React.KeyboardEventHandler;\n onKeyUp: React.KeyboardEventHandler;\n scrollTo?: (args: number | ScrollConfig) => void;\n}\n\nexport type CustomTagProps = {\n label: React.ReactNode;\n value: any;\n disabled: boolean;\n onClose: (event?: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n closable: boolean;\n};\n\nexport interface BaseSelectRef {\n focus: () => void;\n blur: () => void;\n scrollTo: ScrollTo;\n}\n\nexport interface BaseSelectPrivateProps {\n // >>> MISC\n id: string;\n prefixCls: string;\n omitDomProps?: string[];\n\n // >>> Value\n displayValues: DisplayValueType[];\n onDisplayValuesChange: (\n values: DisplayValueType[],\n info: {\n type: DisplayInfoType;\n values: DisplayValueType[];\n },\n ) => void;\n\n // >>> Active\n /** Current dropdown list active item string value */\n activeValue?: string;\n /** Link search input with target element */\n activeDescendantId?: string;\n onActiveValueChange?: (value: string | null) => void;\n\n // >>> Search\n searchValue: string;\n autoClearSearchValue?: boolean;\n /** Trigger onSearch, return false to prevent trigger open event */\n onSearch: (\n searchValue: string,\n info: {\n source:\n | 'typing' //User typing\n | 'effect' // Code logic trigger\n | 'submit' // tag mode only\n | 'blur'; // Not trigger event\n },\n ) => void;\n /** Trigger when search text match the `tokenSeparators`. Will provide split content */\n onSearchSplit?: (words: string[]) => void;\n\n // >>> Dropdown\n OptionList: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<any> & React.RefAttributes<RefOptionListProps>\n >;\n /** Tell if provided `options` is empty */\n emptyOptions: boolean;\n}\n\nexport type BaseSelectPropsWithoutPrivate = Omit<BaseSelectProps, keyof BaseSelectPrivateProps>;\n\nexport interface BaseSelectProps extends BaseSelectPrivateProps, React.AriaAttributes {\n className?: string;\n style?: React.CSSProperties;\n title?: string;\n showSearch?: boolean;\n tagRender?: (props: CustomTagProps) => React.ReactElement;\n direction?: 'ltr' | 'rtl';\n maxLength?: number;\n\n // MISC\n tabIndex?: number;\n autoFocus?: boolean;\n notFoundContent?: React.ReactNode;\n placeholder?: React.ReactNode;\n onClear?: () => void;\n\n choiceTransitionName?: string;\n\n // >>> Mode\n mode?: Mode;\n\n // >>> Status\n disabled?: boolean;\n loading?: boolean;\n\n // >>> Open\n open?: boolean;\n defaultOpen?: boolean;\n onDropdownVisibleChange?: (open: boolean) => void;\n\n // >>> Customize Input\n /** @private Internal usage. Do not use in your production. */\n getInputElement?: () => JSX.Element;\n /** @private Internal usage. Do not use in your production. */\n getRawInputElement?: () => JSX.Element;\n\n // >>> Selector\n maxTagTextLength?: number;\n maxTagCount?: number | 'responsive';\n maxTagPlaceholder?: React.ReactNode | ((omittedValues: DisplayValueType[]) => React.ReactNode);\n\n // >>> Search\n tokenSeparators?: string[];\n\n // >>> Icons\n allowClear?: boolean | { clearIcon?: RenderNode };\n suffixIcon?: RenderNode;\n /**\n * Clear all icon\n * @deprecated Please use `allowClear` instead\n **/\n clearIcon?: RenderNode;\n /** Selector remove icon */\n removeIcon?: RenderNode;\n\n // >>> Dropdown\n animation?: string;\n transitionName?: string;\n dropdownStyle?: React.CSSProperties;\n dropdownClassName?: string;\n dropdownMatchSelectWidth?: boolean | number;\n dropdownRender?: (menu: React.ReactElement) => React.ReactElement;\n dropdownAlign?: AlignType;\n placement?: Placement;\n builtinPlacements?: BuildInPlacements;\n getPopupContainer?: RenderDOMFunc;\n\n // >>> Focus\n showAction?: ('focus' | 'click')[];\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n // >>> Rest Events\n onKeyUp?: React.KeyboardEventHandler<HTMLDivElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onMouseDown?: React.MouseEventHandler<HTMLDivElement>;\n onPopupScroll?: React.UIEventHandler<HTMLDivElement>;\n onInputKeyDown?: React.KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;\n onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n}\n\nexport function isMultiple(mode: Mode) {\n return mode === 'tags' || mode === 'multiple';\n}\n\nconst BaseSelect = React.forwardRef((props: BaseSelectProps, ref: React.Ref<BaseSelectRef>) => {\n const {\n id,\n prefixCls,\n className,\n showSearch,\n tagRender,\n direction,\n omitDomProps,\n\n // Value\n displayValues,\n onDisplayValuesChange,\n emptyOptions,\n notFoundContent = 'Not Found',\n onClear,\n\n // Mode\n mode,\n\n // Status\n disabled,\n loading,\n\n // Customize Input\n getInputElement,\n getRawInputElement,\n\n // Open\n open,\n defaultOpen,\n onDropdownVisibleChange,\n\n // Active\n activeValue,\n onActiveValueChange,\n activeDescendantId,\n\n // Search\n searchValue,\n autoClearSearchValue,\n onSearch,\n onSearchSplit,\n tokenSeparators,\n\n // Icons\n allowClear,\n suffixIcon,\n clearIcon,\n\n // Dropdown\n OptionList,\n animation,\n transitionName,\n dropdownStyle,\n dropdownClassName,\n dropdownMatchSelectWidth,\n dropdownRender,\n dropdownAlign,\n placement,\n builtinPlacements,\n getPopupContainer,\n\n // Focus\n showAction = [],\n onFocus,\n onBlur,\n\n // Rest Events\n onKeyUp,\n onKeyDown,\n onMouseDown,\n\n // Rest Props\n ...restProps\n } = props;\n\n // ============================== MISC ==============================\n const multiple = isMultiple(mode);\n const mergedShowSearch =\n (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n\n const domProps = {\n ...restProps,\n } as Omit<keyof typeof restProps, (typeof DEFAULT_OMIT_PROPS)[number]>;\n\n DEFAULT_OMIT_PROPS.forEach((propName) => {\n delete domProps[propName];\n });\n\n omitDomProps?.forEach((propName) => {\n delete domProps[propName];\n });\n\n // ============================= Mobile =============================\n const [mobile, setMobile] = React.useState(false);\n React.useEffect(() => {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ============================== Refs ==============================\n const containerRef = React.useRef<HTMLDivElement>(null);\n const selectorDomRef = React.useRef<HTMLDivElement>(null);\n const triggerRef = React.useRef<RefTriggerProps>(null);\n const selectorRef = React.useRef<RefSelectorProps>(null);\n const listRef = React.useRef<RefOptionListProps>(null);\n const blurRef = React.useRef<boolean>(false);\n\n /** Used for component focused management */\n const [mockFocused, setMockFocused, cancelSetMockFocused] = useDelayReset();\n\n // =========================== Imperative ===========================\n React.useImperativeHandle(ref, () => ({\n focus: selectorRef.current?.focus,\n blur: selectorRef.current?.blur,\n scrollTo: (arg) => listRef.current?.scrollTo(arg),\n }));\n\n // ========================== Search Value ==========================\n const mergedSearchValue = React.useMemo(() => {\n if (mode !== 'combobox') {\n return searchValue;\n }\n\n const val = displayValues[0]?.value;\n\n return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n }, [searchValue, mode, displayValues]);\n\n // ========================== Custom Input ==========================\n // Only works in `combobox`\n const customizeInputElement: React.ReactElement =\n (mode === 'combobox' && typeof getInputElement === 'function' && getInputElement()) || null;\n\n // Used for customize replacement for `rc-cascader`\n const customizeRawInputElement: React.ReactElement =\n typeof getRawInputElement === 'function' && getRawInputElement();\n\n const customizeRawInputRef = useComposeRef<HTMLElement>(\n selectorDomRef,\n customizeRawInputElement?.props?.ref,\n );\n\n // ============================== Open ==============================\n // SSR not support Portal which means we need delay `open` for the first time render\n const [rendered, setRendered] = React.useState(false);\n useLayoutEffect(() => {\n setRendered(true);\n }, []);\n\n const [innerOpen, setInnerOpen] = useMergedState<boolean>(false, {\n defaultValue: defaultOpen,\n value: open,\n });\n\n let mergedOpen = rendered ? innerOpen : false;\n\n // Not trigger `open` in `combobox` when `notFoundContent` is empty\n const emptyListContent = !notFoundContent && emptyOptions;\n if (disabled || (emptyListContent && mergedOpen && mode === 'combobox')) {\n mergedOpen = false;\n }\n const triggerOpen = emptyListContent ? false : mergedOpen;\n\n const onToggleOpen = React.useCallback(\n (newOpen?: boolean) => {\n const nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n\n if (!disabled) {\n setInnerOpen(nextOpen);\n\n if (mergedOpen !== nextOpen) {\n onDropdownVisibleChange?.(nextOpen);\n }\n }\n },\n [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange],\n );\n\n // ============================= Search =============================\n const tokenWithEnter = React.useMemo(\n () => (tokenSeparators || []).some((tokenSeparator) => ['\\n', '\\r\\n'].includes(tokenSeparator)),\n [tokenSeparators],\n );\n\n const onInternalSearch = (searchText: string, fromTyping: boolean, isCompositing: boolean) => {\n let ret = true;\n let newSearchText = searchText;\n onActiveValueChange?.(null);\n\n // Check if match the `tokenSeparators`\n const patchLabels: string[] = isCompositing\n ? null\n : getSeparatedContent(searchText, tokenSeparators);\n\n // Ignore combobox since it's not split-able\n if (mode !== 'combobox' && patchLabels) {\n newSearchText = '';\n\n onSearchSplit?.(patchLabels);\n\n // Should close when paste finish\n onToggleOpen(false);\n\n // Tell Selector that break next actions\n ret = false;\n }\n\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText, {\n source: fromTyping ? 'typing' : 'effect',\n });\n }\n\n return ret;\n };\n\n // Only triggered when menu is closed & mode is tags\n // If menu is open, OptionList will take charge\n // If mode isn't tags, press enter is not meaningful when you can't see any option\n const onInternalSearchSubmit = (searchText: string) => {\n // prevent empty tags from appearing when you click the Enter button\n if (!searchText || !searchText.trim()) {\n return;\n }\n onSearch(searchText, { source: 'submit' });\n };\n\n // Close will clean up single mode search text\n React.useEffect(() => {\n if (!mergedOpen && !multiple && mode !== 'combobox') {\n onInternalSearch('', false, false);\n }\n }, [mergedOpen]);\n\n // ============================ Disabled ============================\n // Close dropdown & remove focus state when disabled change\n React.useEffect(() => {\n if (innerOpen && disabled) {\n setInnerOpen(false);\n }\n\n // After onBlur is triggered, the focused does not need to be reset\n if (disabled && !blurRef.current) {\n setMockFocused(false);\n }\n }, [disabled]);\n\n // ============================ Keyboard ============================\n /**\n * We record input value here to check if can press to clean up by backspace\n * - null: Key is not down, this is reset by key up\n * - true: Search text is empty when first time backspace down\n * - false: Search text is not empty when first time backspace down\n */\n const [getClearLock, setClearLock] = useLock();\n\n // KeyDown\n const onInternalKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (event, ...rest) => {\n const clearLock = getClearLock();\n const { which } = event;\n\n if (which === KeyCode.ENTER) {\n // Do not submit form when type in the input\n if (mode !== 'combobox') {\n event.preventDefault();\n }\n\n // We only manage open state here, close logic should handle by list component\n if (!mergedOpen) {\n onToggleOpen(true);\n }\n }\n\n setClearLock(!!mergedSearchValue);\n\n // Remove value by `backspace`\n if (\n which === KeyCode.BACKSPACE &&\n !clearLock &&\n multiple &&\n !mergedSearchValue &&\n displayValues.length\n ) {\n const cloneDisplayValues = [...displayValues];\n let removedDisplayValue = null;\n\n for (let i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n const current = cloneDisplayValues[i];\n\n if (!current.disabled) {\n cloneDisplayValues.splice(i, 1);\n removedDisplayValue = current;\n break;\n }\n }\n\n if (removedDisplayValue) {\n onDisplayValuesChange(cloneDisplayValues, {\n type: 'remove',\n values: [removedDisplayValue],\n });\n }\n }\n\n if (mergedOpen && listRef.current) {\n listRef.current.onKeyDown(event, ...rest);\n }\n\n onKeyDown?.(event, ...rest);\n };\n\n // KeyUp\n const onInternalKeyUp: React.KeyboardEventHandler<HTMLDivElement> = (event, ...rest) => {\n if (mergedOpen && listRef.current) {\n listRef.current.onKeyUp(event, ...rest);\n }\n\n onKeyUp?.(event, ...rest);\n };\n\n // ============================ Selector ============================\n const onSelectorRemove = (val: DisplayValueType) => {\n const newValues = displayValues.filter((i) => i !== val);\n\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [val],\n });\n };\n\n // ========================== Focus / Blur ==========================\n /** Record real focus status */\n const focusRef = React.useRef<boolean>(false);\n\n const onContainerFocus: React.FocusEventHandler<HTMLElement> = (...args) => {\n setMockFocused(true);\n\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus(...args);\n }\n\n // `showAction` should handle `focus` if set\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n\n focusRef.current = true;\n };\n\n const onContainerBlur: React.FocusEventHandler<HTMLElement> = (...args) => {\n blurRef.current = true;\n\n setMockFocused(false, () => {\n focusRef.current = false;\n blurRef.current = false;\n onToggleOpen(false);\n });\n\n if (disabled) {\n return;\n }\n\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n onSearch(mergedSearchValue, { source: 'submit' });\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n onSearch('', {\n source: 'blur',\n });\n }\n }\n\n if (onBlur) {\n onBlur(...args);\n }\n };\n\n // Give focus back of Select\n const activeTimeoutIds: any[] = [];\n React.useEffect(\n () => () => {\n activeTimeoutIds.forEach((timeoutId) => clearTimeout(timeoutId));\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n },\n [],\n );\n\n const onInternalMouseDown: React.MouseEventHandler<HTMLDivElement> = (event, ...restArgs) => {\n const { target } = event;\n const popupElement: HTMLDivElement = triggerRef.current?.getPopupElement();\n\n // We should give focus back to selector if clicked item is not focusable\n if (popupElement && popupElement.contains(target as HTMLElement)) {\n const timeoutId = setTimeout(() => {\n const index = activeTimeoutIds.indexOf(timeoutId);\n if (index !== -1) {\n activeTimeoutIds.splice(index, 1);\n }\n\n cancelSetMockFocused();\n\n if (!mobile && !popupElement.contains(document.activeElement)) {\n selectorRef.current?.focus();\n }\n });\n\n activeTimeoutIds.push(timeoutId);\n }\n\n onMouseDown?.(event, ...restArgs);\n };\n\n // ============================ Dropdown ============================\n const [, forceUpdate] = React.useState({});\n // We need force update here since popup dom is render async\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n\n // Used for raw custom input trigger\n let onTriggerVisibleChange: null | ((newOpen: boolean) => void);\n if (customizeRawInputElement) {\n onTriggerVisibleChange = (newOpen: boolean) => {\n onToggleOpen(newOpen);\n };\n }\n\n // Close when click on non-select element\n useSelectTriggerControl(\n () => [containerRef.current, triggerRef.current?.getPopupElement()],\n triggerOpen,\n onToggleOpen,\n !!customizeRawInputElement,\n );\n\n // ============================ Context =============================\n const baseSelectContext = React.useMemo(\n () => ({\n ...props,\n notFoundContent,\n open: mergedOpen,\n triggerOpen,\n id,\n showSearch: mergedShowSearch,\n multiple,\n toggleOpen: onToggleOpen,\n }),\n [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen],\n );\n\n // ==================================================================\n // == Render ==\n // ==================================================================\n\n // ============================= Arrow ==============================\n const showSuffixIcon = !!suffixIcon || loading;\n let arrowNode: React.ReactNode;\n\n if (showSuffixIcon) {\n arrowNode = (\n <TransBtn\n className={classNames(`${prefixCls}-arrow`, {\n [`${prefixCls}-arrow-loading`]: loading,\n })}\n customizeIcon={suffixIcon}\n customizeIconProps={{\n loading,\n searchValue: mergedSearchValue,\n open: mergedOpen,\n focused: mockFocused,\n showSearch: mergedShowSearch,\n }}\n />\n );\n }\n\n // ============================= Clear ==============================\n const onClearMouseDown: React.MouseEventHandler<HTMLSpanElement> = () => {\n onClear?.();\n\n selectorRef.current?.focus();\n\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues,\n });\n onInternalSearch('', false, false);\n };\n\n const { allowClear: mergedAllowClear, clearIcon: clearNode } = useAllowClear(\n prefixCls,\n onClearMouseDown,\n displayValues,\n allowClear,\n clearIcon,\n disabled,\n\n mergedSearchValue,\n mode,\n );\n\n // =========================== OptionList ===========================\n const optionList = <OptionList ref={listRef} />;\n\n // ============================= Select =============================\n const mergedClassName = classNames(prefixCls, className, {\n [`${prefixCls}-focused`]: mockFocused,\n [`${prefixCls}-multiple`]: multiple,\n [`${prefixCls}-single`]: !multiple,\n [`${prefixCls}-allow-clear`]: allowClear,\n [`${prefixCls}-show-arrow`]: showSuffixIcon,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-open`]: mergedOpen,\n [`${prefixCls}-customize-input`]: customizeInputElement,\n [`${prefixCls}-show-search`]: mergedShowSearch,\n });\n\n // >>> Selector\n const selectorNode = (\n <SelectTrigger\n ref={triggerRef}\n disabled={disabled}\n prefixCls={prefixCls}\n visible={triggerOpen}\n popupElement={optionList}\n animation={animation}\n transitionName={transitionName}\n dropdownStyle={dropdownStyle}\n dropdownClassName={dropdownClassName}\n direction={direction}\n dropdownMatchSelectWidth={dropdownMatchSelectWidth}\n dropdownRender={dropdownRender}\n dropdownAlign={dropdownAlign}\n placement={placement}\n builtinPlacements={builtinPlacements}\n getPopupContainer={getPopupContainer}\n empty={emptyOptions}\n getTriggerDOMNode={() => selectorDomRef.current}\n onPopupVisibleChange={onTriggerVisibleChange}\n onPopupMouseEnter={onPopupMouseEnter}\n >\n {customizeRawInputElement ? (\n React.cloneElement(customizeRawInputElement, {\n ref: customizeRawInputRef,\n })\n ) : (\n <Selector\n {...props}\n domRef={selectorDomRef}\n prefixCls={prefixCls}\n inputElement={customizeInputElement}\n ref={selectorRef}\n id={id}\n showSearch={mergedShowSearch}\n autoClearSearchValue={autoClearSearchValue}\n mode={mode}\n activeDescendantId={activeDescendantId}\n tagRender={tagRender}\n values={displayValues}\n open={mergedOpen}\n onToggleOpen={onToggleOpen}\n activeValue={activeValue}\n searchValue={mergedSearchValue}\n onSearch={onInternalSearch}\n onSearchSubmit={onInternalSearchSubmit}\n onRemove={onSelectorRemove}\n tokenWithEnter={tokenWithEnter}\n />\n )}\n </SelectTrigger>\n );\n\n // >>> Render\n let renderNode: React.ReactNode;\n\n // Render raw\n if (customizeRawInputElement) {\n renderNode = selectorNode;\n } else {\n renderNode = (\n <div\n className={mergedClassName}\n {...domProps}\n ref={containerRef}\n onMouseDown={onInternalMouseDown}\n onKeyDown={onInternalKeyDown}\n onKeyUp={onInternalKeyUp}\n onFocus={onContainerFocus}\n onBlur={onContainerBlur}\n >\n {mockFocused && !mergedOpen && (\n <span\n style={{\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: 'hidden',\n opacity: 0,\n }}\n aria-live=\"polite\"\n >\n {/* Merge into one string to make screen reader work as expect */}\n {`${displayValues\n .map(({ label, value }) =>\n ['number', 'string'].includes(typeof label) ? label : value,\n )\n .join(', ')}`}\n </span>\n )}\n {selectorNode}\n {arrowNode}\n {mergedAllowClear && clearNode}\n </div>\n );\n }\n\n return (\n <BaseSelectContext.Provider value={baseSelectContext}>{renderNode}</BaseSelectContext.Provider>\n );\n});\n\n// Set display name for dev\nif (process.env.NODE_ENV !== 'production') {\n BaseSelect.displayName = 'BaseSelect';\n}\n\nexport default BaseSelect;\n"]}
@@ -0,0 +1,5 @@
1
+ /** This is a placeholder, not real render in dom */
2
+ const OptGroup = () => null;
3
+ OptGroup.isSelectOptGroup = true;
4
+ export default OptGroup;
5
+ //# sourceMappingURL=OptGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptGroup.js","sourceRoot":"","sources":["../../../src/tntd-select/rc-select/OptGroup.tsx"],"names":[],"mappings":"AAaA,oDAAoD;AACpD,MAAM,QAAQ,GAAkB,GAAG,EAAE,CAAC,IAAI,CAAC;AAC3C,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAEjC,eAAe,QAAQ,CAAC","sourcesContent":["/* istanbul ignore file */\nimport type * as React from 'react';\nimport type { DefaultOptionType } from './Select';\n\nexport interface OptGroupProps extends Omit<DefaultOptionType, 'options'> {\n children?: React.ReactNode;\n}\n\nexport interface OptionGroupFC extends React.FC<OptGroupProps> {\n /** Legacy for check if is a Option Group */\n isSelectOptGroup: boolean;\n}\n\n/** This is a placeholder, not real render in dom */\nconst OptGroup: OptionGroupFC = () => null;\nOptGroup.isSelectOptGroup = true;\n\nexport default OptGroup;\n"]}
@@ -0,0 +1,5 @@
1
+ /** This is a placeholder, not real render in dom */
2
+ const Option = () => null;
3
+ Option.isSelectOption = true;
4
+ export default Option;
5
+ //# sourceMappingURL=Option.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Option.js","sourceRoot":"","sources":["../../../src/tntd-select/rc-select/Option.tsx"],"names":[],"mappings":"AAgBA,oDAAoD;AACpD,MAAM,MAAM,GAAa,GAAG,EAAE,CAAC,IAAI,CAAC;AACpC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;AAE7B,eAAe,MAAM,CAAC","sourcesContent":["/* istanbul ignore file */\nimport type * as React from 'react';\nimport type { DefaultOptionType } from './Select';\n\nexport interface OptionProps extends Omit<DefaultOptionType, 'label'> {\n children: React.ReactNode;\n\n /** Save for customize data */\n [prop: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n}\n\nexport interface OptionFC extends React.FC<OptionProps> {\n /** Legacy for check if is a Option Group */\n isSelectOption: boolean;\n}\n\n/** This is a placeholder, not real render in dom */\nconst Option: OptionFC = () => null;\nOption.isSelectOption = true;\n\nexport default Option;\n"]}