@para-ui/core 3.0.55 → 3.0.56

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 (407) hide show
  1. package/AutoBox/index.d.ts +34 -0
  2. package/AutoBox/index.js +277 -0
  3. package/AutoBox/protal.d.ts +17 -0
  4. package/AutoTips/autoTipsMultiline/index.d.ts +18 -0
  5. package/AutoTips/index.d.ts +35 -0
  6. package/AutoTips/index.js +271 -0
  7. package/Breadcrumbs/index.d.ts +53 -0
  8. package/Breadcrumbs/index.js +266 -0
  9. package/Breadcrumbs/lang/en_US.d.ts +4 -0
  10. package/Breadcrumbs/lang/index.d.ts +9 -0
  11. package/Breadcrumbs/lang/zh_CN.d.ts +4 -0
  12. package/Button/SplitButton.d.ts +64 -0
  13. package/Button/index.d.ts +79 -0
  14. package/Button/index.js +376 -0
  15. package/Button/lang/en_US.d.ts +4 -0
  16. package/Button/lang/index.d.ts +9 -0
  17. package/Button/lang/zh_CN.d.ts +4 -0
  18. package/ButtonGroup/index.d.ts +33 -0
  19. package/ButtonGroup/index.js +124 -0
  20. package/Carousel/index.d.ts +38 -0
  21. package/Carousel/index.js +78 -0
  22. package/Cascader/index.d.ts +54 -0
  23. package/Cascader/index.js +159 -0
  24. package/Cascader/lang/en_US.d.ts +4 -0
  25. package/Cascader/lang/index.d.ts +9 -0
  26. package/Cascader/lang/zh_CN.d.ts +4 -0
  27. package/Checkbox/index.d.ts +40 -0
  28. package/Checkbox/index.js +109 -0
  29. package/CheckboxGroup/index.d.ts +45 -0
  30. package/CheckboxGroup/index.js +142 -0
  31. package/Collapse/collapsePanel.d.ts +30 -0
  32. package/Collapse/index.d.ts +57 -0
  33. package/Collapse/index.js +152 -0
  34. package/Collapse/motion.d.ts +5 -0
  35. package/Collapse/util.d.ts +11 -0
  36. package/CollapseBox/index.d.ts +27 -0
  37. package/CollapseBox/index.js +148 -0
  38. package/CollapseBox/util.d.ts +5 -0
  39. package/CollapseLayout/index.d.ts +53 -0
  40. package/CollapseLayout/index.js +176 -0
  41. package/ColorPicker/index.d.ts +4 -0
  42. package/ColorPicker/index.js +4 -0
  43. package/ComboSelect/index.d.ts +6 -0
  44. package/ComboSelect/index.js +1049 -0
  45. package/ComboSelect/interface.d.ts +146 -0
  46. package/ComboSelect/lang/en_US.d.ts +9 -0
  47. package/ComboSelect/lang/index.d.ts +19 -0
  48. package/ComboSelect/lang/zh_CN.d.ts +9 -0
  49. package/ComboSelect/utils.d.ts +9 -0
  50. package/Container/index.d.ts +77 -0
  51. package/Container/index.js +232 -0
  52. package/DatePicker/PickerButton.d.ts +3 -0
  53. package/DatePicker/PickerTag.d.ts +3 -0
  54. package/DatePicker/generatePicker/generateRangePicker.d.ts +4 -0
  55. package/DatePicker/generatePicker/generateSinglePicker.d.ts +11 -0
  56. package/DatePicker/generatePicker/index.d.ts +95 -0
  57. package/DatePicker/index.d.ts +18 -0
  58. package/DatePicker/index.js +633 -0
  59. package/DatePicker/lang/en_US.d.ts +3 -0
  60. package/DatePicker/lang/index.d.ts +7 -0
  61. package/DatePicker/lang/zh_CN.d.ts +3 -0
  62. package/DatePicker/util.d.ts +22 -0
  63. package/Desktop/index.d.ts +57 -0
  64. package/Desktop/index.js +746 -0
  65. package/DragVerify/index.d.ts +36 -0
  66. package/DragVerify/index.js +385 -0
  67. package/DragVerify/lang/en_US.d.ts +5 -0
  68. package/DragVerify/lang/index.d.ts +11 -0
  69. package/DragVerify/lang/zh_CN.d.ts +5 -0
  70. package/Drawer/index.d.ts +11 -0
  71. package/Drawer/index.js +235 -0
  72. package/Drawer/interface.d.ts +92 -0
  73. package/Drawer/lang/en_US.d.ts +5 -0
  74. package/Drawer/lang/index.d.ts +11 -0
  75. package/Drawer/lang/zh_CN.d.ts +5 -0
  76. package/Dropdown/index.d.ts +40 -0
  77. package/Dropdown/index.js +10 -0
  78. package/DynamicMultiBox/formItem.d.ts +14 -0
  79. package/DynamicMultiBox/index.d.ts +5 -0
  80. package/DynamicMultiBox/index.js +1323 -0
  81. package/DynamicMultiBox/interface.d.ts +165 -0
  82. package/DynamicMultiBox/rowForm.d.ts +24 -0
  83. package/Empty/images/index.d.ts +3 -0
  84. package/Empty/index.d.ts +30 -0
  85. package/Empty/index.js +642 -0
  86. package/Empty/lang/en_US.d.ts +6 -0
  87. package/Empty/lang/index.d.ts +13 -0
  88. package/Empty/lang/zh_CN.d.ts +6 -0
  89. package/Form/index.d.ts +187 -0
  90. package/Form/index.js +355 -0
  91. package/FormItem/compoments/defaultCompoments/index.d.ts +19 -0
  92. package/FormItem/compoments/formCheckboxGroup/index.d.ts +8 -0
  93. package/FormItem/compoments/formFile/index.d.ts +38 -0
  94. package/FormItem/compoments/formRadioGroup/index.d.ts +8 -0
  95. package/FormItem/compoments/formSelect/index.d.ts +18 -0
  96. package/FormItem/errorTips.d.ts +12 -0
  97. package/FormItem/index.d.ts +152 -0
  98. package/FormItem/index.js +78 -0
  99. package/FormItem/itemType.d.ts +42 -0
  100. package/FormItem/validateFunction.d.ts +15 -0
  101. package/FunctionModal/dialog.d.ts +58 -0
  102. package/FunctionModal/index.d.ts +8 -0
  103. package/FunctionModal/index.js +43 -0
  104. package/FunctionModal/modalContext.d.ts +15 -0
  105. package/GlobalContext/componentsProps.d.ts +21 -0
  106. package/GlobalContext/confirmLocale.d.ts +7 -0
  107. package/GlobalContext/constant.d.ts +8 -0
  108. package/GlobalContext/index.d.ts +28 -0
  109. package/GlobalContext/index.js +41 -0
  110. package/GlobalContext/intl.d.ts +34 -0
  111. package/GlobalContext/useFormatMessage.d.ts +3 -0
  112. package/GlobalContext/usePopupContainer.d.ts +4 -0
  113. package/Help/index.d.ts +24 -0
  114. package/Help/index.js +41 -0
  115. package/HelperText/index.d.ts +27 -0
  116. package/HelperText/index.js +34 -0
  117. package/Hooks/useGlobalProps.d.ts +1 -0
  118. package/InputLang/index.d.ts +57 -0
  119. package/InputLang/index.js +355 -0
  120. package/InputNumber/index.d.ts +71 -0
  121. package/InputNumber/index.js +277 -0
  122. package/Label/index.d.ts +37 -0
  123. package/Label/index.js +85 -0
  124. package/Loading/index.d.ts +17 -0
  125. package/Loading/index.js +47 -0
  126. package/Menu/footerExpansion.d.ts +9 -0
  127. package/Menu/index.d.ts +10 -0
  128. package/Menu/index.js +1105 -0
  129. package/Menu/interface.d.ts +141 -0
  130. package/Menu/logo.d.ts +9 -0
  131. package/Menu/verticalMenuList.d.ts +14 -0
  132. package/Message/index.d.ts +99 -0
  133. package/Message/index.js +246 -0
  134. package/Modal/Confirm/index.d.ts +65 -0
  135. package/Modal/index.d.ts +99 -0
  136. package/Modal/index.js +421 -0
  137. package/Modal/lang/en_US.d.ts +5 -0
  138. package/Modal/lang/index.d.ts +11 -0
  139. package/Modal/lang/zh_CN.d.ts +5 -0
  140. package/MultiBox/index.d.ts +60 -0
  141. package/MultiBox/index.js +277 -0
  142. package/MultiBox/lang/en_US.d.ts +4 -0
  143. package/MultiBox/lang/index.d.ts +9 -0
  144. package/MultiBox/lang/zh_CN.d.ts +4 -0
  145. package/Notification/index.d.ts +74 -0
  146. package/Notification/index.js +252 -0
  147. package/OperateBtn/index.d.ts +59 -0
  148. package/OperateBtn/index.js +237 -0
  149. package/OperateBtn/lang/en_US.d.ts +4 -0
  150. package/OperateBtn/lang/index.d.ts +9 -0
  151. package/OperateBtn/lang/zh_CN.d.ts +4 -0
  152. package/PageHeader/horizontalMeun.d.ts +9 -0
  153. package/PageHeader/horizontalMeunRight.d.ts +9 -0
  154. package/PageHeader/index.d.ts +10 -0
  155. package/PageHeader/index.js +1050 -0
  156. package/PageHeader/interface.d.ts +169 -0
  157. package/Pagination/index.d.ts +46 -0
  158. package/Pagination/index.js +461 -0
  159. package/Pagination/lang/en_US.d.ts +8 -0
  160. package/Pagination/lang/index.d.ts +17 -0
  161. package/Pagination/lang/zh_CN.d.ts +8 -0
  162. package/ParauiProvider/index.d.ts +8 -0
  163. package/ParauiProvider/index.js +52 -0
  164. package/PasswordRules/index.d.ts +55 -0
  165. package/PasswordRules/index.js +144 -0
  166. package/PopConfirm/index.d.ts +61 -0
  167. package/PopConfirm/index.js +194 -0
  168. package/PopConfirm/lang/en_US.d.ts +5 -0
  169. package/PopConfirm/lang/index.d.ts +11 -0
  170. package/PopConfirm/lang/zh_CN.d.ts +5 -0
  171. package/Popover/index.d.ts +16 -0
  172. package/Popover/index.js +59 -0
  173. package/Progress/Line.d.ts +47 -0
  174. package/Progress/Steps.d.ts +17 -0
  175. package/Progress/index.d.ts +83 -0
  176. package/Progress/index.js +323 -0
  177. package/Progress/utils.d.ts +6 -0
  178. package/Querying/images/index.d.ts +3 -0
  179. package/Querying/index.d.ts +26 -0
  180. package/Querying/index.js +760 -0
  181. package/Querying/lang/en_US.d.ts +4 -0
  182. package/Querying/lang/index.d.ts +9 -0
  183. package/Querying/lang/zh_CN.d.ts +4 -0
  184. package/README.md +6 -0
  185. package/Radio/index.d.ts +38 -0
  186. package/Radio/index.js +97 -0
  187. package/RadioGroup/index.d.ts +46 -0
  188. package/RadioGroup/index.js +134 -0
  189. package/Search/index.d.ts +57 -0
  190. package/Search/index.js +208 -0
  191. package/Select/index.d.ts +93 -0
  192. package/Select/index.js +1146 -0
  193. package/Select/lang/en_US.d.ts +5 -0
  194. package/Select/lang/index.d.ts +11 -0
  195. package/Select/lang/zh_CN.d.ts +5 -0
  196. package/SelectInput/index.d.ts +12 -0
  197. package/SelectInput/index.js +55 -0
  198. package/Selector/index.d.ts +11 -0
  199. package/Selector/index.js +2175 -0
  200. package/Selector/interface.d.ts +432 -0
  201. package/Selector/lang/en_US.d.ts +11 -0
  202. package/Selector/lang/index.d.ts +23 -0
  203. package/Selector/lang/zh_CN.d.ts +11 -0
  204. package/Selector/selectorData/index.d.ts +10 -0
  205. package/Selector/selectorMain/index.d.ts +10 -0
  206. package/Selector/selectorNode/index.d.ts +10 -0
  207. package/Selector/util.d.ts +15 -0
  208. package/SelectorPicker/index.d.ts +53 -0
  209. package/SelectorPicker/index.js +444 -0
  210. package/SelectorPicker/lang/en_US.d.ts +5 -0
  211. package/SelectorPicker/lang/index.d.ts +11 -0
  212. package/SelectorPicker/lang/zh_CN.d.ts +5 -0
  213. package/SingleBox/index.d.ts +44 -0
  214. package/SingleBox/index.js +224 -0
  215. package/SingleBox/lang/en_US.d.ts +4 -0
  216. package/SingleBox/lang/index.d.ts +9 -0
  217. package/SingleBox/lang/zh_CN.d.ts +4 -0
  218. package/Slider/index.d.ts +14 -0
  219. package/Slider/index.js +119 -0
  220. package/Slider/interface.d.ts +102 -0
  221. package/Split/index.d.ts +7 -0
  222. package/Split/index.js +123 -0
  223. package/Status/index.d.ts +21 -0
  224. package/Status/index.js +37 -0
  225. package/Stepper/icons.d.ts +5 -0
  226. package/Stepper/index.d.ts +59 -0
  227. package/Stepper/index.js +97 -0
  228. package/Switch/index.d.ts +78 -0
  229. package/Switch/index.js +71 -0
  230. package/Table/index.d.ts +10 -0
  231. package/Table/index.js +3001 -0
  232. package/Table/interface.d.ts +346 -0
  233. package/Table/lang/en_US.d.ts +8 -0
  234. package/Table/lang/index.d.ts +17 -0
  235. package/Table/lang/zh_CN.d.ts +8 -0
  236. package/Table/tableBody.d.ts +9 -0
  237. package/Table/tableBodyElement/index.d.ts +15 -0
  238. package/Table/tableBodyInterface.d.ts +73 -0
  239. package/Table/tableContainer/index.d.ts +16 -0
  240. package/Table/tableElement/index.d.ts +17 -0
  241. package/Table/tableHead.d.ts +9 -0
  242. package/Table/tableHeadElement/index.d.ts +15 -0
  243. package/Table/tableHeadInterface.d.ts +37 -0
  244. package/Table/tablePagination.d.ts +9 -0
  245. package/Table/tablePaginationInterface.d.ts +27 -0
  246. package/Table/tdElement/index.d.ts +15 -0
  247. package/Table/thElement/index.d.ts +28 -0
  248. package/Table/trElement/index.d.ts +15 -0
  249. package/Table/util.d.ts +34 -0
  250. package/Tabs/index.d.ts +69 -0
  251. package/Tabs/index.js +205 -0
  252. package/Tabs/lang/en_US.d.ts +4 -0
  253. package/Tabs/lang/index.d.ts +9 -0
  254. package/Tabs/lang/zh_CN.d.ts +4 -0
  255. package/Tag/TagGroup.d.ts +66 -0
  256. package/Tag/index.d.ts +34 -0
  257. package/Tag/index.js +259 -0
  258. package/TextEditor/common.d.ts +11 -0
  259. package/TextEditor/index.d.ts +127 -0
  260. package/TextEditor/index.js +286 -0
  261. package/TextField/index.d.ts +90 -0
  262. package/TextField/index.js +611 -0
  263. package/TimePicker/index.d.ts +22 -0
  264. package/TimePicker/index.js +80 -0
  265. package/TimePicker/locale/en_US.d.ts +3 -0
  266. package/TimePicker/locale/zh_CN.d.ts +3 -0
  267. package/TimePicker/style/index.d.ts +1 -0
  268. package/Timeline/TimelineItem.d.ts +30 -0
  269. package/Timeline/index.d.ts +32 -0
  270. package/Timeline/index.js +148 -0
  271. package/Title/index.d.ts +30 -0
  272. package/Title/index.js +50 -0
  273. package/ToggleButton/ToggleButtonGroup.d.ts +49 -0
  274. package/ToggleButton/index.d.ts +49 -0
  275. package/ToggleButton/index.js +193 -0
  276. package/Tooltip/index.d.ts +11 -0
  277. package/Tooltip/index.js +368 -0
  278. package/Tooltip/interface.d.ts +35 -0
  279. package/Tooltip/utils.d.ts +18 -0
  280. package/Transfer/box.d.ts +38 -0
  281. package/Transfer/index.d.ts +32 -0
  282. package/Transfer/index.js +611 -0
  283. package/Transfer/lang/en_US.d.ts +10 -0
  284. package/Transfer/lang/index.d.ts +21 -0
  285. package/Transfer/lang/zh_CN.d.ts +10 -0
  286. package/Transfer/useClick.d.ts +3 -0
  287. package/Tree/OperateBar/index.d.ts +13 -0
  288. package/Tree/Tree.d.ts +4 -0
  289. package/Tree/index.d.ts +5 -0
  290. package/Tree/index.js +38 -0
  291. package/Tree/interface.d.ts +210 -0
  292. package/Tree/lang/en_US.d.ts +8 -0
  293. package/Tree/lang/index.d.ts +17 -0
  294. package/Tree/lang/zh_CN.d.ts +8 -0
  295. package/Tree/utils/closestPolyfill.d.ts +0 -0
  296. package/Tree/utils/tools.d.ts +25 -0
  297. package/Tree/utils/treeUtil.d.ts +15 -0
  298. package/Upload/Dragger/index.d.ts +10 -0
  299. package/Upload/ErroTip/index.d.ts +13 -0
  300. package/Upload/ImageUpload/index.d.ts +16 -0
  301. package/Upload/ImgCrop/EasyCrop.d.ts +17 -0
  302. package/Upload/ImgCrop/constants.d.ts +7 -0
  303. package/Upload/ImgCrop/index.d.ts +6 -0
  304. package/Upload/ImgCrop/interface.d.ts +48 -0
  305. package/Upload/UploadList/index.d.ts +5 -0
  306. package/Upload/index.d.ts +15 -0
  307. package/Upload/index.js +1446 -0
  308. package/Upload/interface.d.ts +136 -0
  309. package/Upload/lang/en_US.d.ts +12 -0
  310. package/Upload/lang/index.d.ts +25 -0
  311. package/Upload/lang/zh_CN.d.ts +12 -0
  312. package/_verture/constant-66aa48a1.js +10 -0
  313. package/_verture/defineProperty-62acccfc.js +34 -0
  314. package/_verture/index-74f820ba.js +1355 -0
  315. package/_verture/index-77f9e0fb.js +236 -0
  316. package/_verture/index-a369ca3f.js +4 -0
  317. package/_verture/index-beef914f.js +340 -0
  318. package/_verture/index-d03136d4.js +711 -0
  319. package/_verture/index-e2881a53.js +16 -0
  320. package/_verture/intl-5cbb940c.js +57 -0
  321. package/_verture/modalContext-92bb0e16.js +201 -0
  322. package/_verture/slicedToArray-76060636.js +43 -0
  323. package/_verture/sortable.esm-49896035.js +3791 -0
  324. package/_verture/style-inject.es-300983ab.js +28 -0
  325. package/_verture/toConsumableArray-81040c9e.js +19 -0
  326. package/_verture/tslib.es6-55ed4bd2.js +38 -0
  327. package/_verture/typeof-498dd2b1.js +11 -0
  328. package/_verture/unsupportedIterableToArray-cb478f24.js +16 -0
  329. package/_verture/useFormatMessage-703f8b20.js +20 -0
  330. package/_verture/useGlobalProps-1b846a65.js +11 -0
  331. package/_verture/usePopupContainer-87febeb9.js +68 -0
  332. package/_verture/util-7e1fb1e2.js +18 -0
  333. package/index.d.ts +144 -0
  334. package/index.js +180 -0
  335. package/package.json +1 -1
  336. package/umd/AutoBox.js +43 -0
  337. package/umd/AutoTips.js +15 -0
  338. package/umd/Breadcrumbs.js +42 -0
  339. package/umd/Button.js +43 -0
  340. package/umd/ButtonGroup.js +43 -0
  341. package/umd/Carousel.js +6 -0
  342. package/umd/Cascader.js +43 -0
  343. package/umd/Checkbox.js +42 -0
  344. package/umd/CheckboxGroup.js +42 -0
  345. package/umd/Collapse.js +43 -0
  346. package/umd/CollapseBox.js +1 -0
  347. package/umd/CollapseLayout.js +29 -0
  348. package/umd/ColorPicker.js +1 -0
  349. package/umd/ComboSelect.js +42 -0
  350. package/umd/Container.js +1 -0
  351. package/umd/DatePicker.js +42 -0
  352. package/umd/Desktop.js +42 -0
  353. package/umd/DragVerify.js +28 -0
  354. package/umd/Drawer.js +43 -0
  355. package/umd/Dropdown.js +15 -0
  356. package/umd/DynamicMultiBox.js +54 -0
  357. package/umd/Empty.js +15 -0
  358. package/umd/Form.js +42 -0
  359. package/umd/FormItem.js +42 -0
  360. package/umd/FunctionModal.js +42 -0
  361. package/umd/GlobalContext.js +1 -0
  362. package/umd/Help.js +42 -0
  363. package/umd/HelperText.js +1 -0
  364. package/umd/InputLang.js +42 -0
  365. package/umd/InputNumber.js +42 -0
  366. package/umd/Label.js +42 -0
  367. package/umd/Loading.js +29 -0
  368. package/umd/Menu.js +29 -0
  369. package/umd/Message.js +30 -0
  370. package/umd/Modal.js +42 -0
  371. package/umd/MultiBox.js +42 -0
  372. package/umd/Notification.js +43 -0
  373. package/umd/OperateBtn.js +42 -0
  374. package/umd/PageHeader.js +42 -0
  375. package/umd/Pagination.js +42 -0
  376. package/umd/ParauiProvider.js +15 -0
  377. package/umd/PasswordRules.js +29 -0
  378. package/umd/PopConfirm.js +42 -0
  379. package/umd/Popover.js +15 -0
  380. package/umd/Progress.js +35 -0
  381. package/umd/Querying.js +15 -0
  382. package/umd/Radio.js +42 -0
  383. package/umd/RadioGroup.js +42 -0
  384. package/umd/Search.js +42 -0
  385. package/umd/Select.js +42 -0
  386. package/umd/SelectInput.js +42 -0
  387. package/umd/Selector.js +42 -0
  388. package/umd/SelectorPicker.js +42 -0
  389. package/umd/SingleBox.js +42 -0
  390. package/umd/Slider.js +15 -0
  391. package/umd/Split.js +1 -0
  392. package/umd/Status.js +1 -0
  393. package/umd/Stepper.js +42 -0
  394. package/umd/Switch.js +42 -0
  395. package/umd/Table.js +42 -0
  396. package/umd/Tabs.js +42 -0
  397. package/umd/Tag.js +43 -0
  398. package/umd/TextEditor.js +205 -0
  399. package/umd/TextField.js +42 -0
  400. package/umd/TimePicker.js +42 -0
  401. package/umd/Timeline.js +1 -0
  402. package/umd/Title.js +1 -0
  403. package/umd/ToggleButton.js +43 -0
  404. package/umd/Tooltip.js +15 -0
  405. package/umd/Transfer.js +49 -0
  406. package/umd/Tree.js +42 -0
  407. package/umd/Upload.js +56 -0
@@ -0,0 +1,1146 @@
1
+ import { _ as _defineProperty } from '../_verture/defineProperty-62acccfc.js';
2
+ import { _ as _toConsumableArray } from '../_verture/toConsumableArray-81040c9e.js';
3
+ import { _ as _typeof } from '../_verture/typeof-498dd2b1.js';
4
+ import { _ as _slicedToArray } from '../_verture/slicedToArray-76060636.js';
5
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
6
+ import React__default, { useRef, useState, useEffect, useMemo } from 'react';
7
+ import Empty from '../Empty/index.js';
8
+ import Label from '../Label/index.js';
9
+ import { D as Dropdown } from '../_verture/index-77f9e0fb.js';
10
+ import { UUID, DeepClone } from '@paraview/lib';
11
+ import GlobalContext from '@para-ui/core/GlobalContext';
12
+ import CloseIcon from '@para-ui/icons/Close';
13
+ import CloseCircle from '@para-ui/icons/CloseCircle';
14
+ import Down from '@para-ui/icons/Down';
15
+ import Check from '@para-ui/icons/Check';
16
+ import SearchIcon from '@para-ui/icons/Search';
17
+ import { u as useFormatMessage } from '../_verture/useFormatMessage-703f8b20.js';
18
+ import AutoTips from '../AutoTips/index.js';
19
+ import { Loading } from '../Loading/index.js';
20
+ import { Popover } from '../Popover/index.js';
21
+ import HelperText from '../HelperText/index.js';
22
+ import { u as useGlobalProps } from '../_verture/useGlobalProps-1b846a65.js';
23
+ import { $ as $prefixCls } from '../_verture/constant-66aa48a1.js';
24
+ import { s as styleInject } from '../_verture/style-inject.es-300983ab.js';
25
+ import '../_verture/unsupportedIterableToArray-cb478f24.js';
26
+ import 'clsx';
27
+ import '../Help/index.js';
28
+ import '../_verture/tslib.es6-55ed4bd2.js';
29
+ import '../Tooltip/index.js';
30
+ import 'rc-tooltip';
31
+ import 'rc-tooltip/lib/placements';
32
+ import '@para-ui/icons/Help';
33
+ import 'rc-dropdown';
34
+ import '../_verture/usePopupContainer-87febeb9.js';
35
+ import 'dayjs';
36
+ import '@para-ui/icons/LoadingF';
37
+
38
+ var en = {
39
+ searchPlaceholder: 'Please enter a search name',
40
+ selected: 'Selected'
41
+ };
42
+
43
+ var zh = {
44
+ searchPlaceholder: '请输入搜索名',
45
+ selected: '已选中'
46
+ };
47
+
48
+ var localeJson = {
49
+ zh: zh,
50
+ en: en
51
+ };
52
+
53
+ var css_248z = "@charset \"UTF-8\";\n/**\n* @author Hanz\n* @date 2021/10/20 下午2:08\n* @description color\n*/\n.paraui-v3-select {\n font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, sans-serif;\n font-size: 14px;\n font-weight: 400;\n display: inline-block;\n vertical-align: top;\n width: 100%;\n}\n.paraui-v3-select > .select-content {\n line-height: 0;\n border: 1px solid;\n border-radius: 4px;\n border-color: rgba(171, 176, 185, 0.4);\n padding-right: 12px;\n position: relative;\n cursor: pointer;\n background-color: rgb(255, 255, 255);\n}\n.paraui-v3-select > .select-content:hover {\n border-color: rgb(54, 102, 214);\n}\n.paraui-v3-select > .select-content:hover > .select-svg > svg {\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select > .select-content > .select-label-placeholder {\n width: 100%;\n height: 100%;\n padding: 0 12px;\n color: rgba(46, 55, 67, 0.4);\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 1;\n}\n.paraui-v3-select > .select-content > .select-label-placeholder > .select-required {\n margin-left: 2px;\n color: rgb(235, 96, 84);\n}\n.paraui-v3-select > .select-content > .select-svg {\n position: absolute;\n right: 12px;\n top: 0;\n z-index: 2;\n}\n.paraui-v3-select > .select-content > .select-svg > svg {\n font-size: 20px;\n transition: all 0.3s;\n color: rgba(46, 55, 67, 0.7);\n opacity: 0;\n}\n.paraui-v3-select > .select-content > .select-svg > .clean-up-icon {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n}\n.paraui-v3-select > .select-content > .select-svg > .clean-up-icon > svg {\n font-size: 16px;\n transition: all 0.3s;\n color: rgba(46, 55, 67, 0.7);\n}\n.paraui-v3-select > .select-content > .select-svg > .clean-up-icon:hover > svg {\n color: rgba(54, 102, 214, 0.8);\n}\n.paraui-v3-select > .select-content > .radio-select-content {\n padding-left: 12px;\n font-size: 14px;\n line-height: 1.43;\n color: rgb(46, 55, 67);\n word-break: break-all;\n}\n.paraui-v3-select > .select-content > .radio-search-outside {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n line-height: 1.43;\n padding: 0 30px 0 10px;\n font-size: 14px;\n cursor: pointer;\n color: rgb(46, 55, 67);\n border: 0;\n border-radius: 4px;\n background: transparent;\n}\n.paraui-v3-select > .select-content > .check-select-content {\n padding-left: 12px;\n overflow: hidden;\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-select-content-item {\n display: inline-block;\n background-color: rgba(171, 176, 185, 0.2);\n border-radius: 4px;\n padding: 0 12px 0 12px;\n color: rgb(46, 55, 67);\n margin-right: 8px;\n vertical-align: top;\n max-width: 100%;\n white-space: nowrap;\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-select-content-item.check-select-content-item-more {\n cursor: pointer;\n color: rgb(46, 55, 67);\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-select-content-item.check-select-content-item-more > span {\n max-width: none;\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-select-content-item > span {\n display: inline-block;\n height: 100%;\n vertical-align: top;\n max-width: calc(100% - 20px);\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-select-content-item > svg {\n cursor: pointer;\n margin-left: 8px;\n color: rgb(46, 55, 67);\n font-size: 16px;\n position: relative;\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-select-content-item > svg:hover {\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-select-content-item.check-select-content-item-noclose > span {\n max-width: none;\n}\n.paraui-v3-select > .select-content > .check-select-content > .check-search-outside {\n width: 10px;\n max-width: 100% !important;\n display: none;\n border: 0;\n color: rgb(46, 55, 67);\n font-size: 14px;\n cursor: pointer;\n}\n.paraui-v3-select.paraui-v3-select-allow-clear > .select-content {\n padding-right: 40px;\n}\n.paraui-v3-select.paraui-v3-select-allow-clear.paraui-v3-select-value > .select-content:hover > .select-svg > svg {\n opacity: 0;\n transition: all 0s;\n}\n.paraui-v3-select.paraui-v3-select-allow-clear.paraui-v3-select-value > .select-content:hover > .select-svg > .clean-up-icon {\n opacity: 1;\n transition: all 0.3s;\n}\n.paraui-v3-select.paraui-v3-select-over-line.paraui-v3-select-small > .select-content {\n height: inherit;\n min-height: 28px;\n}\n.paraui-v3-select.paraui-v3-select-over-line.paraui-v3-select-small > .select-content > .check-select-content {\n height: 100%;\n}\n.paraui-v3-select.paraui-v3-select-over-line.paraui-v3-select-medium > .select-content {\n height: inherit;\n min-height: 32px;\n}\n.paraui-v3-select.paraui-v3-select-over-line.paraui-v3-select-medium > .select-content > .check-select-content {\n height: 100%;\n}\n.paraui-v3-select.paraui-v3-select-over-line.paraui-v3-select-large > .select-content {\n height: inherit;\n min-height: 36px;\n}\n.paraui-v3-select.paraui-v3-select-over-line.paraui-v3-select-large > .select-content > .check-select-content {\n height: 100%;\n}\n.paraui-v3-select.paraui-v3-select-show-select > .select-content {\n padding-right: 40px;\n}\n.paraui-v3-select.paraui-v3-select-show-select > .select-content > .select-svg > svg {\n opacity: 1;\n}\n.paraui-v3-select.paraui-v3-select-disabled > .select-content {\n background-color: rgba(171, 176, 185, 0.12);\n cursor: not-allowed;\n}\n.paraui-v3-select.paraui-v3-select-disabled > .select-content:hover {\n border-color: rgba(171, 176, 185, 0.4);\n}\n.paraui-v3-select.paraui-v3-select-disabled > .select-content:hover > .select-svg > svg {\n color: rgba(46, 55, 67, 0.7);\n}\n.paraui-v3-select.paraui-v3-select-disabled > .select-content > .check-select-content > .check-select-content-item > span {\n max-width: 100%;\n}\n.paraui-v3-select.paraui-v3-select-error > .select-content {\n border-color: rgb(235, 96, 84) !important;\n}\n.paraui-v3-select.paraui-v3-select-open > .select-content {\n border-color: rgb(54, 102, 214);\n}\n.paraui-v3-select.paraui-v3-select-open > .select-content > .select-svg > svg {\n transform: rotate(180deg);\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select.paraui-v3-select-open > .select-content > .check-select-content > .check-search-outside {\n display: inline-block;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content {\n height: 28px;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content > .select-label-placeholder {\n line-height: 26px;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content > .select-svg {\n top: 3px;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content > .radio-select-content {\n padding-bottom: 3px;\n padding-top: 3px;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content > .check-select-content {\n padding-bottom: 3px;\n height: 26px;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content > .check-select-content > .check-select-content-item {\n margin-top: 3px;\n height: 20px;\n line-height: 20px;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content > .check-select-content > .check-select-content-item > svg {\n top: 2px;\n}\n.paraui-v3-select.paraui-v3-select-small > .select-content > .check-select-content > .check-search-outside {\n margin-top: 3px;\n height: 20px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content {\n height: 32px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content > .select-label-placeholder {\n line-height: 30px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content > .select-svg {\n top: 6px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content > .radio-select-content {\n padding-bottom: 5px;\n padding-top: 5px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content > .check-select-content {\n padding-bottom: 4px;\n height: 30px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content > .check-select-content > .check-select-content-item {\n margin-top: 4px;\n height: 22px;\n line-height: 22px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content > .check-select-content > .check-select-content-item > svg {\n top: 3px;\n}\n.paraui-v3-select.paraui-v3-select-medium > .select-content > .check-select-content > .check-search-outside {\n margin-top: 4px;\n height: 22px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content {\n height: 36px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content > .select-label-placeholder {\n line-height: 34px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content > .select-svg {\n top: 8px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content > .radio-select-content {\n padding-bottom: 7px;\n padding-top: 7px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content > .check-select-content {\n padding-bottom: 5px;\n height: 34px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content > .check-select-content > .check-select-content-item {\n margin-top: 5px;\n height: 24px;\n line-height: 24px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content > .check-select-content > .check-select-content-item > svg {\n top: 3px;\n}\n.paraui-v3-select.paraui-v3-select-large > .select-content > .check-select-content > .check-search-outside {\n margin-top: 5px;\n height: 24px;\n}\n\n.paraui-v3-select-popover.component-dropdown .select-popover-content.select-popover-content-search > .select-popover-list {\n padding-top: 0px;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content.select-popover-content-search > .select-popover-list > .select-nodata {\n margin-top: 58px;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-search {\n display: flex;\n align-items: center;\n padding: 0 12px;\n border-bottom: 1px solid;\n border-color: rgba(171, 176, 185, 0.2);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-search > input {\n border: 0;\n outline: none;\n font-size: 14px;\n color: rgb(46, 55, 67);\n width: 100%;\n height: 100%;\n line-height: 1.43;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-search > input::placeholder {\n font-size: 14px;\n opacity: 1;\n color: rgba(46, 55, 67, 0.4);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-search > svg {\n color: rgba(46, 55, 67, 0.4);\n font-size: 20px;\n cursor: pointer;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list {\n padding: 8px 0;\n max-height: 300px;\n overflow: auto;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list.select-popover-list-loading {\n height: 100px;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item {\n display: flex;\n cursor: pointer;\n padding: 0 12px;\n align-items: center;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item > .select-popover-list-item-label {\n flex: 1;\n overflow: hidden;\n color: rgb(46, 55, 67);\n font-size: 14px;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item > .select-popover-list-item-svg {\n line-height: 0;\n display: none;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item > .select-popover-list-item-svg > svg {\n font-size: 20px;\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-select > .select-popover-list-item-label {\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-select > .select-popover-list-item-svg {\n display: inline-block;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-hover {\n background-color: rgba(171, 176, 185, 0.12);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-hover > .select-popover-list-item-label {\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-keydown {\n background-color: rgba(171, 176, 185, 0.12);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-keydown > .select-popover-list-item-label {\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-disabled {\n cursor: not-allowed;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list .select-popover-list-item.select-popover-list-item-disabled > .select-popover-list-item-label {\n color: rgba(46, 55, 67, 0.4) !important;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list > .select-popover-list-group .select-popover-list-group-label {\n display: inline-block;\n width: 100%;\n padding: 0 12px;\n color: rgba(46, 55, 67, 0.4);\n font-size: 14px;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list > .select-popover-list-group .select-popover-list-item {\n padding-left: 20px;\n}\n.paraui-v3-select-popover.component-dropdown .select-popover-content > .select-popover-list > .select-nodata {\n text-align: center;\n font-size: 14px;\n color: rgb(46, 55, 67);\n margin-top: 50px;\n margin-bottom: 72px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-small > .select-popover-content > .select-popover-search {\n height: 28px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-small > .select-popover-content > .select-popover-list .select-popover-list-item {\n height: 28px;\n line-height: 28px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-small > .select-popover-content > .select-popover-list > .select-popover-list-group .select-popover-list-group-label {\n height: 28px;\n line-height: 28px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-medium > .select-popover-content > .select-popover-search {\n height: 32px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-medium > .select-popover-content > .select-popover-list .select-popover-list-item {\n height: 32px;\n line-height: 32px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-medium > .select-popover-content > .select-popover-list > .select-popover-list-group .select-popover-list-group-label {\n line-height: 32px;\n height: 32px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-large > .select-popover-content > .select-popover-search {\n height: 36px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-large > .select-popover-content > .select-popover-list .select-popover-list-item {\n height: 36px;\n line-height: 36px;\n}\n.paraui-v3-select-popover.component-dropdown.paraui-v3-select-popover-large > .select-popover-content > .select-popover-list > .select-popover-list-group .select-popover-list-group-label {\n height: 36px;\n line-height: 36px;\n}\n\n.paraui-v3-select-more-popover {\n padding-left: 16px;\n}\n.paraui-v3-select-more-popover .select-more {\n width: 300px;\n}\n.paraui-v3-select-more-popover .select-more > .select-more-title {\n font-size: 14px;\n padding: 0 12px;\n color: rgba(46, 55, 67, 0.7);\n}\n.paraui-v3-select-more-popover .select-more > .select-more-content {\n max-height: 300px;\n overflow: auto;\n}\n.paraui-v3-select-more-popover .select-more > .select-more-content > .select-more-content-item {\n padding: 0 12px;\n display: flex;\n justify-content: space-around;\n align-items: center;\n}\n.paraui-v3-select-more-popover .select-more > .select-more-content > .select-more-content-item > span {\n width: calc(100% - 25px);\n display: inline-block;\n font-size: 14px;\n}\n.paraui-v3-select-more-popover .select-more > .select-more-content > .select-more-content-item > svg {\n font-size: 20px;\n position: relative;\n cursor: pointer;\n color: rgb(46, 55, 67);\n}\n.paraui-v3-select-more-popover .select-more > .select-more-content > .select-more-content-item > svg:hover {\n color: rgb(54, 102, 214);\n}\n.paraui-v3-select-more-popover.paraui-v3-select-more-popover-small .select-more > .select-more-title {\n line-height: 28px;\n}\n.paraui-v3-select-more-popover.paraui-v3-select-more-popover-small .select-more > .select-more-content > .select-more-content-item {\n line-height: 28px;\n}\n.paraui-v3-select-more-popover.paraui-v3-select-more-popover-medium .select-more > .select-more-title {\n line-height: 32px;\n}\n.paraui-v3-select-more-popover.paraui-v3-select-more-popover-medium .select-more > .select-more-content > .select-more-content-item {\n line-height: 32px;\n}\n.paraui-v3-select-more-popover.paraui-v3-select-more-popover-large .select-more > .select-more-title {\n line-height: 36px;\n}\n.paraui-v3-select-more-popover.paraui-v3-select-more-popover-large .select-more > .select-more-content > .select-more-content-item {\n line-height: 36px;\n}";
54
+ styleInject(css_248z);
55
+
56
+ /**
57
+ * 计算文本长度
58
+ * @param fontSize 字体大小
59
+ * @param fontFamily 字体类型
60
+ * @param text 文本
61
+ */
62
+ var textSize = function textSize(fontSize, fontFamily, text) {
63
+ var span = document.createElement("span");
64
+ span.id = 'referenceSpan';
65
+ var result = {};
66
+ result.width = span.offsetWidth;
67
+ result.height = span.offsetHeight;
68
+ span.style.visibility = "hidden";
69
+ span.style.fontSize = fontSize;
70
+ span.style.fontFamily = fontFamily;
71
+ span.style.display = "inline-block";
72
+ var isExists = document.getElementById("referenceSpan");
73
+ if (isExists) {
74
+ document.body.removeChild(isExists);
75
+ }
76
+ document.body.appendChild(span);
77
+ if (typeof span.textContent != "undefined") {
78
+ span.textContent = text;
79
+ } else {
80
+ span.innerText = text;
81
+ }
82
+ result.width = parseFloat(window.getComputedStyle(span).width) - result.width;
83
+ result.height = parseFloat(window.getComputedStyle(span).height) - result.height;
84
+ document.body.removeChild(span);
85
+ return result;
86
+ };
87
+ var Select = function Select(props) {
88
+ var _useGlobalProps = useGlobalProps(props, 'Select'),
89
+ className = _useGlobalProps.className,
90
+ style = _useGlobalProps.style,
91
+ _useGlobalProps$showS = _useGlobalProps.showSelect,
92
+ showSelect = _useGlobalProps$showS === void 0 ? true : _useGlobalProps$showS,
93
+ _useGlobalProps$allow = _useGlobalProps.allowClear,
94
+ allowClear = _useGlobalProps$allow === void 0 ? false : _useGlobalProps$allow,
95
+ emptyProps = _useGlobalProps.emptyProps,
96
+ _useGlobalProps$size = _useGlobalProps.size,
97
+ size = _useGlobalProps$size === void 0 ? 'large' : _useGlobalProps$size,
98
+ _useGlobalProps$label = _useGlobalProps.labelMode,
99
+ labelMode = _useGlobalProps$label === void 0 ? 'outside' : _useGlobalProps$label,
100
+ labelTooltip = _useGlobalProps.labelTooltip,
101
+ _useGlobalProps$place = _useGlobalProps.placeholder,
102
+ placeholder = _useGlobalProps$place === void 0 ? '' : _useGlobalProps$place,
103
+ searchPlaceholder = _useGlobalProps.searchPlaceholder,
104
+ _useGlobalProps$label2 = _useGlobalProps.label,
105
+ label = _useGlobalProps$label2 === void 0 ? '' : _useGlobalProps$label2,
106
+ _useGlobalProps$input = _useGlobalProps.input,
107
+ input = _useGlobalProps$input === void 0 ? false : _useGlobalProps$input,
108
+ _useGlobalProps$disab = _useGlobalProps.disabled,
109
+ disabled = _useGlobalProps$disab === void 0 ? false : _useGlobalProps$disab,
110
+ _useGlobalProps$multi = _useGlobalProps.multiple,
111
+ multiple = _useGlobalProps$multi === void 0 ? false : _useGlobalProps$multi,
112
+ _useGlobalProps$requi = _useGlobalProps.required,
113
+ required = _useGlobalProps$requi === void 0 ? false : _useGlobalProps$requi,
114
+ labelSign = _useGlobalProps.labelSign,
115
+ _useGlobalProps$error = _useGlobalProps.error,
116
+ error = _useGlobalProps$error === void 0 ? false : _useGlobalProps$error,
117
+ hideErrorDom = _useGlobalProps.hideErrorDom,
118
+ _useGlobalProps$helpe = _useGlobalProps.helperText,
119
+ helperText = _useGlobalProps$helpe === void 0 ? '' : _useGlobalProps$helpe,
120
+ list = _useGlobalProps.list,
121
+ _useGlobalProps$showN = _useGlobalProps.showName,
122
+ showName = _useGlobalProps$showN === void 0 ? 'label' : _useGlobalProps$showN,
123
+ _useGlobalProps$showV = _useGlobalProps.showValue,
124
+ showValue = _useGlobalProps$showV === void 0 ? 'value' : _useGlobalProps$showV,
125
+ _useGlobalProps$child = _useGlobalProps.childrenName,
126
+ childrenName = _useGlobalProps$child === void 0 ? 'children' : _useGlobalProps$child,
127
+ value = _useGlobalProps.value,
128
+ onChange = _useGlobalProps.onChange,
129
+ _useGlobalProps$overL = _useGlobalProps.overLine,
130
+ overLine = _useGlobalProps$overL === void 0 ? false : _useGlobalProps$overL,
131
+ _useGlobalProps$searc = _useGlobalProps.search,
132
+ search = _useGlobalProps$searc === void 0 ? false : _useGlobalProps$searc,
133
+ _useGlobalProps$searc2 = _useGlobalProps.searchModel,
134
+ searchModel = _useGlobalProps$searc2 === void 0 ? 'inside' : _useGlobalProps$searc2,
135
+ selectPopoverClassName = _useGlobalProps.selectPopoverClassName,
136
+ morePopoverClassName = _useGlobalProps.morePopoverClassName;
137
+ _useGlobalProps.fetchSuggestions;
138
+ var searchInputProps = _useGlobalProps.searchInputProps,
139
+ onEnter = _useGlobalProps.onEnter,
140
+ onEnterInput = _useGlobalProps.onEnterInput,
141
+ onClear = _useGlobalProps.onClear,
142
+ getPopupContainer = _useGlobalProps.getPopupContainer,
143
+ renderContent = _useGlobalProps.renderContent,
144
+ _useGlobalProps$selec = _useGlobalProps.selectCheckIcon,
145
+ selectCheckIcon = _useGlobalProps$selec === void 0 ? true : _useGlobalProps$selec;
146
+ var posDom = useRef(null);
147
+ var _useState = useState($prefixCls + '-select-' + UUID()),
148
+ _useState2 = _slicedToArray(_useState, 1),
149
+ classOne = _useState2[0]; // 唯一class
150
+ var _useState3 = useState('select-popover-' + UUID()),
151
+ _useState4 = _slicedToArray(_useState3, 1),
152
+ classOneSelect = _useState4[0]; // 唯一class
153
+ var _useState5 = useState(false),
154
+ _useState6 = _slicedToArray(_useState5, 2),
155
+ open = _useState6[0],
156
+ setOpen = _useState6[1]; // 是否打开下拉框
157
+ var _useState7 = useState(false),
158
+ _useState8 = _slicedToArray(_useState7, 2),
159
+ showText = _useState8[0],
160
+ setShowText = _useState8[1]; // 是否显示lable,placeholder, true不显示
161
+ var _useState9 = useState([]),
162
+ _useState10 = _slicedToArray(_useState9, 2),
163
+ valueCom = _useState10[0],
164
+ setValueCom = _useState10[1]; // 值
165
+ var _useState11 = useState([]),
166
+ _useState12 = _slicedToArray(_useState11, 2),
167
+ listCom = _useState12[0],
168
+ setListCom = _useState12[1]; // 下拉框渲染
169
+ var _useState13 = useState({}),
170
+ _useState14 = _slicedToArray(_useState13, 2),
171
+ listJson = _useState14[0],
172
+ setListJson = _useState14[1]; // 下拉选项对象
173
+ var _useState15 = useState(null),
174
+ _useState16 = _slicedToArray(_useState15, 2),
175
+ morePos = _useState16[0],
176
+ setMorePos = _useState16[1]; // 超出在原始位置
177
+ var _useState17 = useState(false),
178
+ _useState18 = _slicedToArray(_useState17, 2),
179
+ openMore = _useState18[0],
180
+ setOpenMore = _useState18[1]; // 显示更多
181
+ var _useState19 = useState(''),
182
+ _useState20 = _slicedToArray(_useState19, 2),
183
+ searchValue = _useState20[0],
184
+ setSearchValue = _useState20[1]; // 搜索值
185
+ var _useState21 = useState(false),
186
+ _useState22 = _slicedToArray(_useState21, 2),
187
+ overLineCom = _useState22[0],
188
+ setOverLineCom = _useState22[1]; // 超出是否换行
189
+ var _useState23 = useState(false),
190
+ _useState24 = _slicedToArray(_useState23, 2),
191
+ loading = _useState24[0],
192
+ setLoading = _useState24[1]; // 下拉加载loading
193
+ var _useState25 = useState(false),
194
+ _useState26 = _slicedToArray(_useState25, 2),
195
+ emptyBol = _useState26[0],
196
+ setEmptyBol = _useState26[1]; // 延迟显示空状态
197
+ var textDom = useRef(null);
198
+ var _useState27 = useState({}),
199
+ _useState28 = _slicedToArray(_useState27, 1),
200
+ constData = _useState28[0]; // 不变的常量 多行 不换行定时器 搜索定时器
201
+ var _React$useContext = React__default.useContext(GlobalContext),
202
+ language = _React$useContext.language,
203
+ locale = _React$useContext.locale;
204
+ var intl = useFormatMessage('Select', localeJson);
205
+ useEffect(function () {
206
+ if (props.defaultValue !== undefined) {
207
+ if (props.multiple) {
208
+ // 多选
209
+ setValueCom(DeepClone(props.defaultValue || []));
210
+ } else {
211
+ // 单选
212
+ setValueCom(props.defaultValue === '' ? [] : [props.defaultValue]);
213
+ }
214
+ }
215
+ return function () {
216
+ clearTimeout(constData.searchTimer);
217
+ clearTimeout(constData.timer);
218
+ clearTimeout(constData.scrollTimer);
219
+ clearTimeout(constData.timerEmpty);
220
+ };
221
+ }, []);
222
+ // 赋值value
223
+ useEffect(function () {
224
+ if (value !== undefined) {
225
+ if (multiple) {
226
+ // 多选
227
+ setValueCom(DeepClone(value || []));
228
+ } else {
229
+ // 单选
230
+ setValueCom(value === '' ? [] : [value]);
231
+ }
232
+ }
233
+ }, [value, multiple]);
234
+ // 判断组件超出是换行,还是不换行
235
+ useEffect(function () {
236
+ if (searchModel === 'outside' && input) {
237
+ if (multiple) return setOverLineCom(true); // 多选,输入框在框里面,超出必须换行
238
+ // return setOverLineCom(false); // 单选不换行
239
+ }
240
+
241
+ setOverLineCom(overLine);
242
+ }, [overLine, searchModel, multiple, input]);
243
+ // 计算下拉选项,处理下拉选项json
244
+ useEffect(function () {
245
+ var listHand = handList(list);
246
+ var json = {};
247
+ for (var i = 0, l = listHand.length; i < l; i++) {
248
+ var item = listHand[i];
249
+ if (item[childrenName] && item[childrenName].length > 0) {
250
+ var childArr = item[childrenName];
251
+ for (var j = 0, k = childArr.length; j < k; j++) {
252
+ var childItem = childArr[j];
253
+ var key = childItem[showValue];
254
+ json[key] = childItem;
255
+ }
256
+ } else {
257
+ var _key = item[showValue];
258
+ json[_key] = item;
259
+ }
260
+ }
261
+ setListJson(json);
262
+ }, [list]);
263
+ useEffect(function () {
264
+ if (multiple) {
265
+ if (!overLineCom) {
266
+ // 不换行
267
+ setMorePos(valueCom.length);
268
+ }
269
+ }
270
+ }, [overLineCom, multiple, valueCom]);
271
+ // 多行,不换行计算
272
+ useEffect(function () {
273
+ // 多行不换行计算
274
+ if (!overLineCom) {
275
+ setTimeout(function () {
276
+ handMultiline(valueCom.length);
277
+ });
278
+ window.addEventListener("resize", changeSize);
279
+ } else {
280
+ setMorePos(valueCom.length);
281
+ }
282
+ return function () {
283
+ window.removeEventListener("resize", changeSize);
284
+ };
285
+ }, [valueCom, overLineCom]);
286
+ // 计算是否显示label,placehold
287
+ useEffect(function () {
288
+ if (valueCom && valueCom.length > 0) {
289
+ setShowText(true); // 有值不显示label,placehold
290
+ } else {
291
+ setShowText(false);
292
+ if (searchModel === 'outside') {
293
+ setShowText(searchValue !== '');
294
+ }
295
+ }
296
+ }, [search, searchValue, searchModel, valueCom, input]);
297
+ // 筛选下拉框数据
298
+ useEffect(function () {
299
+ if (!open) return;
300
+ clearTimeout(constData.searchTimer);
301
+ constData.searchTimer = setTimeout(function () {
302
+ setLoading(true);
303
+ if (props.fetchSuggestions) {
304
+ props.fetchSuggestions && props.fetchSuggestions(searchValue, function (data) {
305
+ var listHand = handList(data);
306
+ handSelectList(listHand, true);
307
+ });
308
+ } else {
309
+ var listHand = handList(list);
310
+ handSelectList(listHand);
311
+ }
312
+ }, 100);
313
+ // 延迟显示下拉框空状态
314
+ clearTimeout(constData.timerEmpty);
315
+ setEmptyBol(false);
316
+ constData.timerEmpty = setTimeout(function () {
317
+ constData.emptyBol = true;
318
+ setEmptyBol(true);
319
+ }, 200);
320
+ }, [search, searchValue, list, open]);
321
+ useEffect(function () {
322
+ if (open) {
323
+ setTimeout(function () {
324
+ inputFocus();
325
+ window.addEventListener("click", clickCom);
326
+ window.addEventListener("keydown", keydownCom);
327
+ });
328
+ } else {
329
+ setSearchValue('');
330
+ window.removeEventListener("click", clickCom);
331
+ window.removeEventListener("keydown", keydownCom);
332
+ }
333
+ return function () {
334
+ window.removeEventListener("click", clickCom);
335
+ window.removeEventListener("keydown", keydownCom);
336
+ };
337
+ }, [open]);
338
+ // 搜索框有值,显示下拉框
339
+ useEffect(function () {
340
+ if (searchValue) setOpen(true);
341
+ }, [searchValue]);
342
+ // 是否计算搜索框长度
343
+ useEffect(function () {
344
+ if (disabled === true) return;
345
+ if (multiple && searchModel === 'outside') handInputLength(searchValue);
346
+ }, [searchValue, multiple, disabled, searchModel, input]);
347
+ /**
348
+ * 处理初始化数据,让list支持传入字符串
349
+ * 把数组转换成,组件能接收的格式
350
+ * */
351
+ var handList = function handList(arr) {
352
+ var handArr = [];
353
+ for (var i = 0, l = arr.length; i < l; i++) {
354
+ var item = arr[i];
355
+ if (_typeof(item) === 'object' && item !== null) {
356
+ handArr.push(item);
357
+ } else {
358
+ var obj = {};
359
+ obj[showName] = item;
360
+ obj[showValue] = item;
361
+ handArr.push(obj);
362
+ }
363
+ }
364
+ return handArr;
365
+ };
366
+ /**
367
+ * 处理下拉内容
368
+ * @param listData 数据源
369
+ * @param customSearch 是否自定义搜索
370
+ * */
371
+ var handSelectList = function handSelectList(listData, customSearch) {
372
+ var arr = [];
373
+ var listDeep = _toConsumableArray(listData);
374
+ for (var i = 0, l = listDeep.length; i < l; i++) {
375
+ var item = listDeep[i];
376
+ if (item[childrenName] && item[childrenName].length > 0) {
377
+ var childArr = item[childrenName];
378
+ var handChildArr = [];
379
+ for (var j = 0, k = childArr.length; j < k; j++) {
380
+ var childItem = childArr[j];
381
+ if (customSearch) {
382
+ handChildArr.push(childItem);
383
+ } else {
384
+ var bol = handShowItem(childItem);
385
+ if (bol) handChildArr.push(childItem);
386
+ }
387
+ }
388
+ // 存在二级
389
+ if (handChildArr.length > 0) {
390
+ item[childrenName] = handChildArr;
391
+ arr.push(item);
392
+ }
393
+ } else {
394
+ if (customSearch) {
395
+ arr.push(item);
396
+ } else {
397
+ var _bol = handShowItem(item);
398
+ if (_bol) arr.push(item);
399
+ }
400
+ }
401
+ }
402
+ setListCom(arr);
403
+ setLoading(false);
404
+ };
405
+ // 输入框的到焦点
406
+ var inputFocus = function inputFocus() {
407
+ var inputDom = textDom && textDom.current;
408
+ inputDom && inputDom.focus({
409
+ preventScroll: true
410
+ });
411
+ };
412
+ /**
413
+ * 查找元素
414
+ * @param el 当前元素
415
+ * @param selector 查找元素class
416
+ */
417
+ var closest = function closest(el, selector) {
418
+ var matchesSelector = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;
419
+ while (el) {
420
+ if (matchesSelector.call(el, selector)) {
421
+ break;
422
+ }
423
+ el = el.parentElement;
424
+ }
425
+ return el;
426
+ };
427
+ /**
428
+ * 全局点击判断是否需要关闭
429
+ * @param e 当前点击元素
430
+ */
431
+ var clickCom = function clickCom(e) {
432
+ var bol = closest(e.target, '.' + classOneSelect); // 是否存在下拉当中
433
+ if (!bol) setOpen(false);
434
+ };
435
+ /**
436
+ * 判断是否显示
437
+ * @param item 详细信息
438
+ * @return boolean
439
+ */
440
+ var handShowItem = function handShowItem(item) {
441
+ var bol = true;
442
+ // 按显示名来
443
+ var name = item[showName];
444
+ if (name && typeof name === 'string' && name.toLowerCase().indexOf(searchValue.trim().toLowerCase()) === -1) bol = false;
445
+ return bol;
446
+ };
447
+ /**
448
+ * 多选 不换行 计算
449
+ * @param index 数组下标
450
+ */
451
+ var handMultiline = function handMultiline(index) {
452
+ if (index === null || index === 0) return;
453
+ if (index === undefined) index = valueCom.length;
454
+ var boxDom = document.querySelector('.' + classOne + ' > .select-content > .check-select-content');
455
+ if (!boxDom) return;
456
+ if (boxDom.scrollHeight > boxDom.clientHeight) {
457
+ var num = Number(index) - 1;
458
+ // 超出
459
+ setMorePos(num);
460
+ handMultiline(num);
461
+ } else {
462
+ // 一行
463
+ if (valueCom.length <= index) handleCloseMore();
464
+ }
465
+ };
466
+ // 多选 不换行
467
+ var changeSize = function changeSize() {
468
+ clearTimeout(constData.timer);
469
+ constData.timer = setTimeout(function () {
470
+ setMorePos(valueCom.length);
471
+ handMultiline();
472
+ }, 100);
473
+ };
474
+ // 显示下拉框
475
+ var clickSelect = function clickSelect() {
476
+ if (disabled === true) return;
477
+ setOpen(true);
478
+ };
479
+ // 关闭下拉框
480
+ var handleClose = function handleClose() {
481
+ setOpen(false);
482
+ };
483
+ /**
484
+ * 点击显示更多
485
+ * @param e 点击元素
486
+ */
487
+ var clickMore = function clickMore(e) {
488
+ setOpenMore(true);
489
+ setOpen(false);
490
+ e.stopPropagation();
491
+ };
492
+ // 关闭显示更多
493
+ var handleCloseMore = function handleCloseMore() {
494
+ setOpenMore(false);
495
+ };
496
+ /**
497
+ * 点击选项
498
+ * @param item 当前选项信息
499
+ * @param enter 是否回车
500
+ * @param e 元素
501
+ */
502
+ var clickItem = function clickItem(item, enter) {
503
+ return function (e) {
504
+ var val = item[showValue];
505
+ if (_typeof(disabled) === 'object' && disabled.indexOf(val) !== -1) return;
506
+ if (multiple) {
507
+ // 多选
508
+ var index = valueCom.indexOf(val);
509
+ if (index !== -1) {
510
+ // 存在 去除
511
+ valueCom.splice(index, 1);
512
+ } else {
513
+ valueCom.push(val);
514
+ }
515
+ if (props.value === undefined) setValueCom(_toConsumableArray(valueCom));
516
+ onChange && onChange(_toConsumableArray(valueCom), e);
517
+ if (enter) onEnter && onEnter(_toConsumableArray(valueCom));
518
+ inputFocus();
519
+ } else {
520
+ // 单选
521
+ if (props.value === undefined) setValueCom([val]);
522
+ onChange && onChange(val, e);
523
+ if (enter) onEnter && onEnter(val);
524
+ handleClose();
525
+ setSearchValue('');
526
+ }
527
+ };
528
+ };
529
+ /**
530
+ * 多选删除index
531
+ * @param item 当前选项信息
532
+ * @param val 值
533
+ * @param e 元素
534
+ */
535
+ var delItem = function delItem(item, val) {
536
+ return function (e) {
537
+ if (!item) item = _defineProperty({}, showValue, val);
538
+ clickItem(item)(e);
539
+ e.stopPropagation();
540
+ };
541
+ };
542
+ // 处理下拉框class
543
+ var handClass = function handClass() {
544
+ var str = "".concat($prefixCls, "-select");
545
+ if (multiple && !overLineCom) str += ' ' + classOne; // 多选 超出不换行
546
+ if (className) str += ' ' + className;
547
+ if (size) str += " ".concat($prefixCls, "-select-").concat(size);
548
+ if (error) str += " ".concat($prefixCls, "-select-error");
549
+ if (disabled === true) str += " ".concat($prefixCls, "-select-disabled");
550
+ if (open) str += " ".concat($prefixCls, "-select-open");
551
+ if (multiple) str += " ".concat($prefixCls, "-select-multiple");
552
+ if (overLineCom) str += " ".concat($prefixCls, "-select-over-line"); // 可输入,换行
553
+ if (showSelect) str += " ".concat($prefixCls, "-select-show-select");
554
+ if (valueCom.length > 0) str += " ".concat($prefixCls, "-select-value");
555
+ if (allowClear) str += " ".concat($prefixCls, "-select-allow-clear");
556
+ return str;
557
+ };
558
+ // 处理下拉弹框class
559
+ var handleClassPopover = function handleClassPopover() {
560
+ var str = "".concat($prefixCls, "-select-popover ").concat($prefixCls, "-scrollbar-small");
561
+ if (size) str += " ".concat($prefixCls, "-select-popover-").concat(size);
562
+ if (multiple) {
563
+ str += " ".concat($prefixCls, "-select-popover-multiple");
564
+ } else {
565
+ str += " ".concat($prefixCls, "-select-popover-radio");
566
+ }
567
+ if (selectPopoverClassName) str += ' ' + selectPopoverClassName;
568
+ return str;
569
+ };
570
+ // 处理下拉框更多class
571
+ var handleClassMorePopover = function handleClassMorePopover() {
572
+ var str = "".concat($prefixCls, "-select-more-popover ").concat($prefixCls, "-scrollbar-small");
573
+ if (size) str += " ".concat($prefixCls, "-select-more-popover-").concat(size);
574
+ if (morePopoverClassName) str += ' ' + morePopoverClassName;
575
+ return str;
576
+ };
577
+ /**
578
+ * 改变搜索输入框
579
+ * @param e 搜索框元素
580
+ */
581
+ var changeSearch = function changeSearch(e) {
582
+ setSearchValue(e.target.value);
583
+ searchInputProps && searchInputProps.onChange && searchInputProps.onChange(e);
584
+ };
585
+ /**
586
+ * 回车搜索输入框
587
+ * @param e 搜索框元素
588
+ */
589
+ var onKeyDownSearch = function onKeyDownSearch(e) {
590
+ if (e.keyCode === 13) {
591
+ onEnterInput && onEnterInput(searchValue);
592
+ var selectDom = document.querySelector('.' + classOneSelect + ' .select-popover-list');
593
+ if (selectDom) {
594
+ var hoverDom = selectDom.querySelector('.select-popover-list-item-hover');
595
+ var keydownDom = selectDom.querySelector('.select-popover-list-item-keydown');
596
+ var operateDom = keydownDom || hoverDom;
597
+ if (operateDom) return;
598
+ }
599
+ if (props.input && searchValue.trim() !== '') {
600
+ var arr = '';
601
+ if (multiple) {
602
+ arr = [].concat(_toConsumableArray(valueCom), [searchValue]);
603
+ } else {
604
+ arr = searchValue;
605
+ }
606
+ if (props.value === undefined) setValueCom(arr);
607
+ onChange && onChange(arr, e);
608
+ setSearchValue('');
609
+ }
610
+ }
611
+ searchInputProps && searchInputProps.onKeyDown && searchInputProps.onKeyDown(e);
612
+ };
613
+ /**
614
+ * 多选框设置input框长度
615
+ * @param text 文本
616
+ */
617
+ var handInputLength = function handInputLength(text) {
618
+ var inputDom = textDom && textDom.current;
619
+ if (!inputDom) return null;
620
+ var style = window.getComputedStyle(inputDom);
621
+ var fontFamily = style.fontFamily;
622
+ var fontSize = style.fontSize;
623
+ var results = textSize(fontSize, fontFamily, text);
624
+ var width = results.width;
625
+ if (width < 10) width = 10;
626
+ inputDom.style.width = width + 'px';
627
+ };
628
+ /**
629
+ * 处理键盘事件 上/下
630
+ * @param config
631
+ * 例:
632
+ * {
633
+ * selectDom: 外容器
634
+ * keyCode: 键盘code
635
+ * currentDom: 当前元素
636
+ * }
637
+ */
638
+ var handKeydown = function handKeydown(config) {
639
+ var selectDom = config.selectDom,
640
+ keyCode = config.keyCode,
641
+ currentKeydownDom = config.currentKeydownDom;
642
+ var brotherDom = null;
643
+ var type = 'nextSibling';
644
+ var classSelectStr = '.select-popover-list > div';
645
+ var classGroupStr = '.select-popover-list-item';
646
+ if (keyCode === 38) {
647
+ // 上
648
+ type = 'previousSibling';
649
+ classSelectStr = '.select-popover-list > div:last-child';
650
+ classGroupStr = '.select-popover-list-item:last-child';
651
+ }
652
+ if (!currentKeydownDom) {
653
+ brotherDom = selectDom.querySelector(classSelectStr); // 初始节点
654
+ } else {
655
+ brotherDom = currentKeydownDom[type];
656
+ if (brotherDom) {
657
+ if (brotherDom.className.indexOf('select-popover-list-group-label') !== -1) {
658
+ // 存在标题元素
659
+ brotherDom = currentKeydownDom.parentNode; // 组元素
660
+ brotherDom = brotherDom[type]; // 组元素兄弟节点
661
+ if (!brotherDom) brotherDom = selectDom.querySelector(classSelectStr);
662
+ }
663
+ } else {
664
+ var parentNode = currentKeydownDom.parentNode;
665
+ if (parentNode && parentNode.className && parentNode.className.indexOf('select-popover-list-group') !== -1) {
666
+ // 组元素最后元素, 设置父级兄弟节点, 没有父级,设置最后或者第一节点
667
+ brotherDom = currentKeydownDom.parentNode; // 组元素
668
+ brotherDom = brotherDom[type]; // 组元素兄弟节点
669
+ if (!brotherDom) brotherDom = selectDom.querySelector(classSelectStr);
670
+ } else {
671
+ // 不存在兄弟节点,设置最后一个或第一个
672
+ brotherDom = selectDom.querySelector(classSelectStr);
673
+ }
674
+ }
675
+ }
676
+ if (brotherDom) {
677
+ // 兄弟是组列表
678
+ if (brotherDom.className.indexOf('select-popover-list-group') !== -1) {
679
+ var currentDom = brotherDom.querySelector(classGroupStr);
680
+ if (currentDom) {
681
+ currentDom.classList.add("select-popover-list-item-keydown");
682
+ domClientTop(currentDom, selectDom);
683
+ }
684
+ } else {
685
+ brotherDom.classList.add("select-popover-list-item-keydown");
686
+ domClientTop(brotherDom, selectDom);
687
+ }
688
+ }
689
+ };
690
+ /**
691
+ * 设置当前上下选中的元素是否在当前可见页面里面
692
+ * @param currentDom 当前元素
693
+ * @param selectDom 可见页面
694
+ */
695
+ var domClientTop = function domClientTop(currentDom, selectDom) {
696
+ clearTimeout(constData.scrollTimer);
697
+ var clientHeight = selectDom.clientHeight; // 可见区域的高度
698
+ var top = currentDom.offsetTop + currentDom.clientHeight;
699
+ var difference = top - clientHeight;
700
+ constData.scroll = true;
701
+ if (difference > 0) {
702
+ selectDom.scrollTop = difference;
703
+ } else {
704
+ selectDom.scrollTop = 0;
705
+ }
706
+ // 防止滚动触发hover效果
707
+ constData.scrollTimer = setTimeout(function () {
708
+ constData.scroll = false;
709
+ }, 100);
710
+ };
711
+ /**
712
+ * 键盘事件
713
+ * @param e 键盘信息
714
+ */
715
+ var keydownCom = function keydownCom(e) {
716
+ var selectDom = document.querySelector('.' + classOneSelect + ' .select-popover-list');
717
+ if (!selectDom) return;
718
+ var selectItemDom = selectDom.querySelector('.select-popover-list-item-select');
719
+ var hoverDom = selectDom.querySelector('.select-popover-list-item-hover');
720
+ var keydownDom = selectDom.querySelector('.select-popover-list-item-keydown');
721
+ var currentKeydownDom = selectItemDom; // 选中,hover,keydown元素
722
+ if (hoverDom) currentKeydownDom = hoverDom;
723
+ // 回车
724
+ if (e.keyCode === 13) {
725
+ var operateDom = keydownDom || hoverDom;
726
+ if (operateDom) {
727
+ var val = operateDom.dataset.val;
728
+ clickItem(listJson[val], true)({
729
+ target: keydownDom
730
+ });
731
+ } else {
732
+ onEnter && onEnter(value);
733
+ }
734
+ }
735
+ if (keydownDom) {
736
+ currentKeydownDom = keydownDom;
737
+ keydownDom.classList.remove("select-popover-list-item-keydown");
738
+ }
739
+ // 下
740
+ if (e.keyCode === 40) {
741
+ handKeydown({
742
+ selectDom: selectDom,
743
+ keyCode: e.keyCode,
744
+ currentKeydownDom: currentKeydownDom
745
+ });
746
+ }
747
+ // 上
748
+ if (e.keyCode === 38) {
749
+ handKeydown({
750
+ selectDom: selectDom,
751
+ keyCode: e.keyCode,
752
+ currentKeydownDom: currentKeydownDom
753
+ });
754
+ }
755
+ };
756
+ /**
757
+ * 鼠标移入
758
+ * @param e 移入元素
759
+ */
760
+ var mouseEnter = function mouseEnter(e) {
761
+ if (constData.scroll) return;
762
+ var target = closest(e.target, '.select-popover-list-item');
763
+ if (!target) return;
764
+ target.classList.add("select-popover-list-item-hover");
765
+ // 鼠标移入清除所有keydown
766
+ var selectDom = document.querySelector('.' + classOneSelect);
767
+ var keydownDom = selectDom.querySelector('.select-popover-list-item-keydown');
768
+ if (keydownDom) keydownDom.classList.remove("select-popover-list-item-keydown");
769
+ };
770
+ /**
771
+ * 鼠标移出
772
+ * @param e 移出元素
773
+ */
774
+ var mouseLeave = function mouseLeave(e) {
775
+ var target = closest(e.target, '.select-popover-list-item');
776
+ if (!target) return;
777
+ target.classList.remove("select-popover-list-item-hover");
778
+ };
779
+ // 外标题memo
780
+ var OutLabelMemo = useMemo(function () {
781
+ var bol = Boolean(label || required || labelSign);
782
+ var handLabelClass = function handLabelClass() {
783
+ var str = 'select-label';
784
+ if (labelTooltip && labelTooltip.className) {
785
+ str += ' ' + labelTooltip.className;
786
+ }
787
+ return str;
788
+ };
789
+ return jsx(Fragment, {
790
+ children: labelMode === 'outside' && bol && jsx(Label, Object.assign({
791
+ label: label,
792
+ required: required,
793
+ labelSign: labelSign
794
+ }, labelTooltip, {
795
+ className: handLabelClass()
796
+ }))
797
+ });
798
+ }, [labelMode, label, labelSign, required, labelTooltip]);
799
+ // 内标题memo
800
+ var InsideMemo = useMemo(function () {
801
+ var handInsideContent = function handInsideContent() {
802
+ if (labelMode === 'outside') return placeholder;
803
+ return jsxs(Fragment, {
804
+ children: [label || placeholder, required && jsx("span", Object.assign({
805
+ className: "select-required"
806
+ }, {
807
+ children: "*"
808
+ })), labelSign && jsx("span", {
809
+ children: labelSign
810
+ })]
811
+ });
812
+ };
813
+ return jsx(Fragment, {
814
+ children: !showText && jsx("span", Object.assign({
815
+ className: "select-label-placeholder"
816
+ }, {
817
+ children: handInsideContent()
818
+ }))
819
+ });
820
+ }, [showText, labelMode, placeholder, label, labelSign, required]);
821
+ /**
822
+ * 处理搜索框
823
+ * */
824
+ var handInput = function handInput(type) {
825
+ if (disabled === true) return null;
826
+ var str = "".concat(type, "-search-outside");
827
+ if (searchModel === 'outside') {
828
+ return jsx("input", Object.assign({}, searchInputProps, {
829
+ className: str,
830
+ value: searchValue,
831
+ onChange: changeSearch,
832
+ onKeyDown: onKeyDownSearch,
833
+ ref: textDom
834
+ }));
835
+ }
836
+ return null;
837
+ };
838
+ // 单选内容
839
+ var RadioMemo = useMemo(function () {
840
+ var handContent = function handContent() {
841
+ // 有搜索值且(输入框在内容里面或者有输入赋值)
842
+ if (searchValue !== '' && (searchModel === 'outside' || input)) return null;
843
+ var val = listJson[valueCom[0]] && listJson[valueCom[0]][showName] || valueCom[0];
844
+ var renderContentVal = renderContent && renderContent(listJson[valueCom[0]], false);
845
+ if (overLineCom) return renderContentVal || val;
846
+ return jsx(AutoTips, {
847
+ children: renderContentVal || val
848
+ });
849
+ };
850
+ return jsx(Fragment, {
851
+ children: !multiple && jsxs(Fragment, {
852
+ children: [jsx("div", Object.assign({
853
+ className: "radio-select-content"
854
+ }, {
855
+ children: handContent()
856
+ })), handInput('radio')]
857
+ })
858
+ });
859
+ }, [multiple, showText, overLineCom, listJson, valueCom, showName, search, searchModel, searchValue, disabled, input, searchInputProps, renderContent]);
860
+ // 多选内容
861
+ var CheckMemo = useMemo(function () {
862
+ var handContent = function handContent(index) {
863
+ var val = listJson[valueCom[index]] && listJson[valueCom[index]][showName] || valueCom[index];
864
+ var renderContentVal = renderContent && renderContent(listJson[valueCom[index]], false);
865
+ return renderContentVal || val;
866
+ };
867
+ return jsx(Fragment, {
868
+ children: multiple && jsxs("div", Object.assign({
869
+ className: "check-select-content"
870
+ }, {
871
+ children: [valueCom && valueCom.map(function (item, index) {
872
+ if (morePos !== null && morePos <= index) return null;
873
+ var isClose = true;
874
+ if (disabled === true || _typeof(disabled) === 'object' && disabled.indexOf(valueCom[index]) !== -1) {
875
+ isClose = false; // 禁用不显示×
876
+ }
877
+
878
+ return jsxs("div", Object.assign({
879
+ className: isClose ? 'check-select-content-item' : 'check-select-content-item check-select-content-item-noclose'
880
+ }, {
881
+ children: [jsx("span", {
882
+ children: jsx(AutoTips, {
883
+ children: handContent(index)
884
+ })
885
+ }), isClose && jsx(CloseIcon, {
886
+ onClick: delItem(listJson[valueCom[index]], valueCom[index])
887
+ })]
888
+ }), index);
889
+ }), function () {
890
+ if (morePos !== null && valueCom.length > morePos) {
891
+ return jsx("div", Object.assign({
892
+ className: "check-select-content-item check-select-content-item-more",
893
+ onClick: clickMore
894
+ }, {
895
+ children: jsxs("span", {
896
+ children: ["+", valueCom.length - morePos]
897
+ })
898
+ }));
899
+ }
900
+ }(), handInput('check')]
901
+ }))
902
+ });
903
+ }, [multiple, showText, valueCom, morePos, listJson, disabled, onChange, searchValue, search, searchModel, input, searchInputProps, renderContent]);
904
+ var clickClean = function clickClean(e) {
905
+ e.stopPropagation();
906
+ var val = '';
907
+ var valCom = [];
908
+ if (multiple) {
909
+ val = [];
910
+ // 判断多选的时候,有部分数据被禁用,禁用的数据不可删除
911
+ if (disabled instanceof Array) {
912
+ for (var i = 0, l = valueCom.length; i < l; i++) {
913
+ var valueComItem = valueCom[i];
914
+ if (disabled.indexOf(valueComItem) !== -1) {
915
+ val.push(valueComItem);
916
+ valCom.push(valueComItem);
917
+ }
918
+ }
919
+ }
920
+ }
921
+ if (props.value === undefined) {
922
+ setValueCom(valCom);
923
+ }
924
+ onChange && onChange(val, e);
925
+ setOpen(false);
926
+ onClear && onClear();
927
+ };
928
+ // 清空内容
929
+ var clearRender = function clearRender() {
930
+ if (valueCom.length > 0 && disabled !== true && allowClear) {
931
+ return jsx("span", Object.assign({
932
+ className: "clean-up-icon",
933
+ onClick: clickClean
934
+ }, {
935
+ children: jsx(CloseCircle, {})
936
+ }));
937
+ }
938
+ };
939
+ var morePopoverContent = function morePopoverContent() {
940
+ var handContent = function handContent(index) {
941
+ var val = listJson[valueCom[index]] && listJson[valueCom[index]][showName] || valueCom[index];
942
+ var renderContentVal = renderContent && renderContent(listJson[valueCom[index]], false);
943
+ return renderContentVal || val;
944
+ };
945
+ return jsxs("div", Object.assign({
946
+ className: "select-more"
947
+ }, {
948
+ children: [jsxs("div", Object.assign({
949
+ className: "select-more-title"
950
+ }, {
951
+ children: [jsx("span", {
952
+ children: intl({
953
+ id: 'selected'
954
+ })
955
+ }), jsxs("span", {
956
+ children: ["(", valueCom.length - Number(morePos), ")"]
957
+ })]
958
+ })), jsx("div", Object.assign({
959
+ className: "select-more-content"
960
+ }, {
961
+ children: valueCom && valueCom.map(function (item, index) {
962
+ if (morePos !== null && morePos > index) return null;
963
+ var isClose = true;
964
+ if (disabled === true || _typeof(disabled) === 'object' && disabled.indexOf(valueCom[index]) !== -1) {
965
+ isClose = false; // 禁用不显示×
966
+ }
967
+
968
+ return jsxs("div", Object.assign({
969
+ className: "select-more-content-item"
970
+ }, {
971
+ children: [jsx("span", {
972
+ children: jsx(AutoTips, {
973
+ children: handContent(index)
974
+ })
975
+ }), isClose && jsx(CloseIcon, {
976
+ onClick: delItem(listJson[valueCom[index]], valueCom[index])
977
+ })]
978
+ }), index);
979
+ })
980
+ }))]
981
+ }));
982
+ };
983
+ // 主体内容
984
+ var ContentMemo = useMemo(function () {
985
+ return jsx(Popover, Object.assign({
986
+ placement: "rightTop",
987
+ visible: openMore,
988
+ content: morePopoverContent(),
989
+ onVisibleChange: handleCloseMore,
990
+ overlayClassName: handleClassMorePopover()
991
+ }, {
992
+ children: jsxs("div", Object.assign({
993
+ className: "select-content",
994
+ onClick: clickSelect,
995
+ ref: posDom
996
+ }, {
997
+ children: [InsideMemo, jsxs("span", Object.assign({
998
+ className: "select-svg"
999
+ }, {
1000
+ children: [jsx(Down, {}), clearRender()]
1001
+ })), RadioMemo, CheckMemo]
1002
+ }))
1003
+ }));
1004
+ }, [posDom, showText, labelMode, placeholder, label, labelSign, required, overLineCom, listJson, valueCom, showName, multiple, morePos, disabled, onChange, searchValue, searchModel, input, showSelect, searchInputProps, allowClear, onClear, openMore, renderContent]);
1005
+ // 下拉框popover 列表
1006
+ var SelectPopoverListMemo = useMemo(function () {
1007
+ var handClass = function handClass() {
1008
+ var str = 'select-popover-list';
1009
+ if (loading) str += ' select-popover-list-loading';
1010
+ return str;
1011
+ };
1012
+ var handContent = function handContent(item) {
1013
+ var val = item[showName] || item[showValue];
1014
+ var renderContentVal = renderContent && renderContent(item, true);
1015
+ return jsxs(Fragment, {
1016
+ children: [jsx("span", Object.assign({
1017
+ className: "select-popover-list-item-label"
1018
+ }, {
1019
+ children: jsx(AutoTips, {
1020
+ children: renderContentVal || val
1021
+ })
1022
+ })), multiple && selectCheckIcon && jsx("span", Object.assign({
1023
+ className: "select-popover-list-item-svg"
1024
+ }, {
1025
+ children: jsx(Check, {})
1026
+ }))]
1027
+ });
1028
+ };
1029
+ return jsxs("div", Object.assign({
1030
+ className: handClass()
1031
+ }, {
1032
+ children: [listCom && listCom.length > 0 ? jsx(Fragment, {
1033
+ children: listCom.map(function (item, index) {
1034
+ if (item[childrenName] && item[childrenName].length > 0) {
1035
+ var childrenList = item[childrenName];
1036
+ return jsxs("div", Object.assign({
1037
+ className: "select-popover-list-group"
1038
+ }, {
1039
+ children: [jsx("span", Object.assign({
1040
+ className: "select-popover-list-group-label"
1041
+ }, {
1042
+ children: item[showName] || item[showValue]
1043
+ })), childrenList.map(function (childItem, childIndex) {
1044
+ var val = childItem[showValue];
1045
+ var classStrItem = 'select-popover-list-item';
1046
+ if (valueCom.indexOf(val) !== -1) classStrItem += ' select-popover-list-item-select'; // 选中的样式
1047
+ if (_typeof(disabled) === 'object' && disabled.indexOf(val) !== -1) {
1048
+ // 禁用
1049
+ classStrItem += ' select-popover-list-item-disabled';
1050
+ }
1051
+ return jsx("div", Object.assign({
1052
+ onClick: clickItem(childItem),
1053
+ className: classStrItem,
1054
+ onMouseEnter: mouseEnter,
1055
+ onMouseLeave: mouseLeave,
1056
+ "data-val": val
1057
+ }, {
1058
+ children: handContent(childItem)
1059
+ }), childIndex);
1060
+ })]
1061
+ }), index);
1062
+ }
1063
+ var val = item[showValue];
1064
+ var classStrItem = 'select-popover-list-item';
1065
+ if (valueCom.indexOf(val) !== -1) classStrItem += ' select-popover-list-item-select'; // 选中的样式
1066
+ if (_typeof(disabled) === 'object' && disabled.indexOf(val) !== -1) {
1067
+ // 禁用
1068
+ classStrItem += ' select-popover-list-item-disabled';
1069
+ }
1070
+ return jsx("div", Object.assign({
1071
+ onClick: clickItem(item),
1072
+ className: classStrItem,
1073
+ onMouseEnter: mouseEnter,
1074
+ onMouseLeave: mouseLeave,
1075
+ "data-val": val
1076
+ }, {
1077
+ children: handContent(item)
1078
+ }), index);
1079
+ })
1080
+ }) : !loading && emptyBol && jsx("div", Object.assign({
1081
+ className: "select-nodata"
1082
+ }, {
1083
+ children: jsx(Empty, Object.assign({}, emptyProps, {
1084
+ size: (emptyProps === null || emptyProps === void 0 ? void 0 : emptyProps.size) || "small"
1085
+ }))
1086
+ })), loading && jsx(Loading, {})]
1087
+ }));
1088
+ }, [listCom, showName, showValue, valueCom, onChange, multiple, loading, language, locale, emptyProps, emptyBol, renderContent, selectCheckIcon]);
1089
+ // 下拉框popover memo
1090
+ var SelectPopoverMemo = useMemo(function () {
1091
+ if (!showSelect) return '';
1092
+ var handSelectPopoverMemoClass = function handSelectPopoverMemoClass() {
1093
+ var classStr = 'select-popover-content ' + classOneSelect;
1094
+ if (search && searchModel === 'inside') classStr += ' select-popover-content-search';
1095
+ return classStr;
1096
+ };
1097
+ return jsxs("div", Object.assign({
1098
+ style: {
1099
+ width: (posDom && posDom.current ? posDom.current.offsetWidth : 0) + 'px'
1100
+ },
1101
+ className: handSelectPopoverMemoClass()
1102
+ }, {
1103
+ children: [search && searchModel === 'inside' && jsxs("div", Object.assign({
1104
+ className: "select-popover-search"
1105
+ }, {
1106
+ children: [jsx("input", Object.assign({}, searchInputProps, {
1107
+ placeholder: searchPlaceholder || intl({
1108
+ id: 'searchPlaceholder'
1109
+ }),
1110
+ value: searchValue,
1111
+ onChange: changeSearch,
1112
+ onKeyDown: onKeyDownSearch,
1113
+ ref: textDom
1114
+ })), jsx(SearchIcon, {})]
1115
+ })), SelectPopoverListMemo]
1116
+ }));
1117
+ }, [open, posDom, listCom, childrenName, showValue, showName, valueCom, searchValue, search, classOneSelect, searchModel, multiple, searchPlaceholder, showSelect, loading, searchInputProps, language, locale, emptyProps, emptyBol, renderContent, selectCheckIcon]);
1118
+ /** 处理下拉内容 */
1119
+ var handDropdown = function handDropdown() {
1120
+ return jsx(Dropdown, Object.assign({
1121
+ visible: open,
1122
+ placement: 'bottomLeft',
1123
+ trigger: ['click'],
1124
+ overlay: jsx(Fragment, {
1125
+ children: SelectPopoverMemo
1126
+ }),
1127
+ overlayClassName: handleClassPopover(),
1128
+ getPopupContainer: getPopupContainer
1129
+ }, {
1130
+ children: ContentMemo
1131
+ }));
1132
+ };
1133
+ return jsxs("div", Object.assign({
1134
+ className: handClass(),
1135
+ style: style
1136
+ }, {
1137
+ children: [OutLabelMemo, handDropdown(), jsx(HelperText, {
1138
+ className: "select-error-text",
1139
+ error: error,
1140
+ helperText: helperText,
1141
+ hideErrorDom: hideErrorDom
1142
+ })]
1143
+ }));
1144
+ };
1145
+
1146
+ export { Select as default };