one-design-next 0.0.4-alpha.57

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 (459) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -0
  3. package/dist/_util/color.d.ts +103 -0
  4. package/dist/_util/color.js +250 -0
  5. package/dist/_util/date.d.ts +53 -0
  6. package/dist/_util/date.js +656 -0
  7. package/dist/_util/focusManager.d.ts +12 -0
  8. package/dist/_util/focusManager.js +56 -0
  9. package/dist/_util/queueMtPolyfill.d.ts +5 -0
  10. package/dist/_util/queueMtPolyfill.js +19 -0
  11. package/dist/_util/time.d.ts +44 -0
  12. package/dist/_util/time.js +150 -0
  13. package/dist/_util/useActive.d.ts +6 -0
  14. package/dist/_util/useActive.js +25 -0
  15. package/dist/alert/index.d.ts +63 -0
  16. package/dist/alert/index.js +137 -0
  17. package/dist/alert/style/index.css +199 -0
  18. package/dist/alert/style/index.d.ts +2 -0
  19. package/dist/alert/style/index.js +2 -0
  20. package/dist/auto-complete/index.d.ts +51 -0
  21. package/dist/auto-complete/index.js +104 -0
  22. package/dist/avatar/index.d.ts +68 -0
  23. package/dist/avatar/index.js +177 -0
  24. package/dist/avatar/primitive.d.ts +6 -0
  25. package/dist/avatar/primitive.js +23 -0
  26. package/dist/avatar/style/index.css +79 -0
  27. package/dist/avatar/style/index.d.ts +2 -0
  28. package/dist/avatar/style/index.js +2 -0
  29. package/dist/button/index.d.ts +15 -0
  30. package/dist/button/index.js +64 -0
  31. package/dist/button/style/index.css +347 -0
  32. package/dist/button/style/index.d.ts +2 -0
  33. package/dist/button/style/index.js +2 -0
  34. package/dist/calendar/index.d.ts +25 -0
  35. package/dist/calendar/index.js +379 -0
  36. package/dist/calendar/style/index.css +3 -0
  37. package/dist/calendar/style/index.d.ts +2 -0
  38. package/dist/calendar/style/index.js +2 -0
  39. package/dist/cascader/CascaderOptionContent.d.ts +20 -0
  40. package/dist/cascader/CascaderOptionContent.js +75 -0
  41. package/dist/cascader/Panel.d.ts +53 -0
  42. package/dist/cascader/Panel.js +116 -0
  43. package/dist/cascader/index.d.ts +54 -0
  44. package/dist/cascader/index.js +314 -0
  45. package/dist/cascader/style/index.css +458 -0
  46. package/dist/cascader/style/index.d.ts +2 -0
  47. package/dist/cascader/style/index.js +2 -0
  48. package/dist/cascader/utils.d.ts +12 -0
  49. package/dist/cascader/utils.js +85 -0
  50. package/dist/chart/index.d.ts +14 -0
  51. package/dist/chart/index.js +11 -0
  52. package/dist/chart/style/index.css +0 -0
  53. package/dist/chart/style/index.d.ts +2 -0
  54. package/dist/chart/style/index.js +2 -0
  55. package/dist/checkbox/Checkbox.d.ts +69 -0
  56. package/dist/checkbox/Checkbox.js +148 -0
  57. package/dist/checkbox/Context.d.ts +21 -0
  58. package/dist/checkbox/Context.js +2 -0
  59. package/dist/checkbox/Group.d.ts +49 -0
  60. package/dist/checkbox/Group.js +125 -0
  61. package/dist/checkbox/index.d.ts +5 -0
  62. package/dist/checkbox/index.js +3 -0
  63. package/dist/checkbox/style/index.css +306 -0
  64. package/dist/checkbox/style/index.d.ts +2 -0
  65. package/dist/checkbox/style/index.js +2 -0
  66. package/dist/collapse/index.d.ts +43 -0
  67. package/dist/collapse/index.js +111 -0
  68. package/dist/collapse/primitive.d.ts +21 -0
  69. package/dist/collapse/primitive.js +107 -0
  70. package/dist/collapse/style/index.css +63 -0
  71. package/dist/collapse/style/index.d.ts +2 -0
  72. package/dist/collapse/style/index.js +2 -0
  73. package/dist/color-picker/index.d.ts +55 -0
  74. package/dist/color-picker/index.js +588 -0
  75. package/dist/color-picker/style/index.css +153 -0
  76. package/dist/color-picker/style/index.d.ts +2 -0
  77. package/dist/color-picker/style/index.js +2 -0
  78. package/dist/config-provider/index.d.ts +46 -0
  79. package/dist/config-provider/index.js +37 -0
  80. package/dist/date-picker/MonthPicker.d.ts +15 -0
  81. package/dist/date-picker/MonthPicker.js +134 -0
  82. package/dist/date-picker/QuarterPicker.d.ts +15 -0
  83. package/dist/date-picker/QuarterPicker.js +135 -0
  84. package/dist/date-picker/YearPicker.d.ts +13 -0
  85. package/dist/date-picker/YearPicker.js +81 -0
  86. package/dist/date-picker/index.d.ts +172 -0
  87. package/dist/date-picker/index.js +1138 -0
  88. package/dist/date-picker/style/index.css +548 -0
  89. package/dist/date-picker/style/index.d.ts +2 -0
  90. package/dist/date-picker/style/index.js +2 -0
  91. package/dist/date-range-picker/index.d.ts +46 -0
  92. package/dist/date-range-picker/index.js +1034 -0
  93. package/dist/dialog/index.d.ts +132 -0
  94. package/dist/dialog/index.js +282 -0
  95. package/dist/dialog/style/index.css +252 -0
  96. package/dist/dialog/style/index.d.ts +2 -0
  97. package/dist/dialog/style/index.js +2 -0
  98. package/dist/dialog/useModalPosition.d.ts +6 -0
  99. package/dist/dialog/useModalPosition.js +34 -0
  100. package/dist/drawer/index.d.ts +76 -0
  101. package/dist/drawer/index.js +186 -0
  102. package/dist/drawer/style/index.css +235 -0
  103. package/dist/drawer/style/index.d.ts +2 -0
  104. package/dist/drawer/style/index.js +2 -0
  105. package/dist/dropdown/index.d.ts +86 -0
  106. package/dist/dropdown/index.js +836 -0
  107. package/dist/dropdown/style/index.css +236 -0
  108. package/dist/dropdown/style/index.d.ts +2 -0
  109. package/dist/dropdown/style/index.js +2 -0
  110. package/dist/hover-fill/index.d.ts +43 -0
  111. package/dist/hover-fill/index.js +222 -0
  112. package/dist/hover-fill/style/index.css +38 -0
  113. package/dist/hover-fill/style/index.d.ts +2 -0
  114. package/dist/hover-fill/style/index.js +2 -0
  115. package/dist/icon/index.d.ts +11 -0
  116. package/dist/icon/index.js +95 -0
  117. package/dist/icon/style/index.css +15 -0
  118. package/dist/icon/style/index.d.ts +2 -0
  119. package/dist/icon/style/index.js +2 -0
  120. package/dist/icon/svg/alert/alert-circle-filled.svg +1 -0
  121. package/dist/icon/svg/alert/alert-circle.svg +1 -0
  122. package/dist/icon/svg/alert/help-circle-filled.svg +1 -0
  123. package/dist/icon/svg/alert/help-circle.svg +1 -0
  124. package/dist/icon/svg/alert/info-circle-filled.svg +1 -0
  125. package/dist/icon/svg/alert/info-circle.svg +1 -0
  126. package/dist/icon/svg/alert/stop.svg +1 -0
  127. package/dist/icon/svg/alert/warning-filled.svg +1 -0
  128. package/dist/icon/svg/alert/warning.svg +1 -0
  129. package/dist/icon/svg/content/QRcode.svg +1 -0
  130. package/dist/icon/svg/content/bell-filled.svg +1 -0
  131. package/dist/icon/svg/content/bell.svg +1 -0
  132. package/dist/icon/svg/content/bidding.svg +1 -0
  133. package/dist/icon/svg/content/calendar.svg +1 -0
  134. package/dist/icon/svg/content/code.svg +1 -0
  135. package/dist/icon/svg/content/customColumn.svg +1 -0
  136. package/dist/icon/svg/content/data.svg +1 -0
  137. package/dist/icon/svg/content/dataReport-filled.svg +1 -0
  138. package/dist/icon/svg/content/dataReport.svg +1 -0
  139. package/dist/icon/svg/content/download-1.svg +1 -0
  140. package/dist/icon/svg/content/download-filled.svg +1 -0
  141. package/dist/icon/svg/content/download.svg +1 -0
  142. package/dist/icon/svg/content/exchange.svg +1 -0
  143. package/dist/icon/svg/content/filter-filled.svg +1 -0
  144. package/dist/icon/svg/content/filter.svg +1 -0
  145. package/dist/icon/svg/content/hot-filled.svg +1 -0
  146. package/dist/icon/svg/content/hot.svg +1 -0
  147. package/dist/icon/svg/content/link.svg +1 -0
  148. package/dist/icon/svg/content/location.svg +1 -0
  149. package/dist/icon/svg/content/maxSize.svg +1 -0
  150. package/dist/icon/svg/content/mobile-filled.svg +1 -0
  151. package/dist/icon/svg/content/mobile.svg +1 -0
  152. package/dist/icon/svg/content/mute.svg +1 -0
  153. package/dist/icon/svg/content/mutiImage-filled.svg +1 -0
  154. package/dist/icon/svg/content/mutiImage.svg +1 -0
  155. package/dist/icon/svg/content/refresh.svg +1 -0
  156. package/dist/icon/svg/content/report.svg +1 -0
  157. package/dist/icon/svg/content/save.svg +1 -0
  158. package/dist/icon/svg/content/search-bold.svg +1 -0
  159. package/dist/icon/svg/content/search-filled.svg +1 -0
  160. package/dist/icon/svg/content/search.svg +1 -0
  161. package/dist/icon/svg/content/setting.svg +1 -0
  162. package/dist/icon/svg/content/share.svg +1 -0
  163. package/dist/icon/svg/content/sort.svg +1 -0
  164. package/dist/icon/svg/content/sound.svg +1 -0
  165. package/dist/icon/svg/content/sticker-filled.svg +1 -0
  166. package/dist/icon/svg/content/sticker.svg +1 -0
  167. package/dist/icon/svg/content/tag-filled.svg +1 -0
  168. package/dist/icon/svg/content/tag.svg +1 -0
  169. package/dist/icon/svg/content/thumbDown-filled.svg +1 -0
  170. package/dist/icon/svg/content/thumbDown.svg +1 -0
  171. package/dist/icon/svg/content/thumbUp-filled.svg +1 -0
  172. package/dist/icon/svg/content/thumbUp.svg +1 -0
  173. package/dist/icon/svg/content/time-bold.svg +1 -0
  174. package/dist/icon/svg/content/time.svg +1 -0
  175. package/dist/icon/svg/content/verify.svg +1 -0
  176. package/dist/icon/svg/content/video.svg +1 -0
  177. package/dist/icon/svg/content/videoScreenshot.svg +1 -0
  178. package/dist/icon/svg/content/zoomIn.svg +1 -0
  179. package/dist/icon/svg/content/zoomOut.svg +1 -0
  180. package/dist/icon/svg/data/compare.svg +1 -0
  181. package/dist/icon/svg/data/histogram.svg +1 -0
  182. package/dist/icon/svg/editor/cancel-circle-filled.svg +1 -0
  183. package/dist/icon/svg/editor/cancel-circle.svg +1 -0
  184. package/dist/icon/svg/editor/cancel.svg +1 -0
  185. package/dist/icon/svg/editor/check-circle-filled.svg +1 -0
  186. package/dist/icon/svg/editor/check-circle.svg +1 -0
  187. package/dist/icon/svg/editor/check.svg +1 -0
  188. package/dist/icon/svg/editor/copy.svg +1 -0
  189. package/dist/icon/svg/editor/custom-filled.svg +1 -0
  190. package/dist/icon/svg/editor/custom.svg +1 -0
  191. package/dist/icon/svg/editor/delete.svg +1 -0
  192. package/dist/icon/svg/editor/deleteAD-filled.svg +1 -0
  193. package/dist/icon/svg/editor/draggable.svg +1 -0
  194. package/dist/icon/svg/editor/edit.svg +1 -0
  195. package/dist/icon/svg/editor/import.svg +1 -0
  196. package/dist/icon/svg/editor/minus-circle-filled.svg +1 -0
  197. package/dist/icon/svg/editor/minus-circle.svg +1 -0
  198. package/dist/icon/svg/editor/minus.svg +1 -0
  199. package/dist/icon/svg/editor/modify-bold.svg +1 -0
  200. package/dist/icon/svg/editor/modify.svg +1 -0
  201. package/dist/icon/svg/editor/multiCreate.svg +1 -0
  202. package/dist/icon/svg/editor/mutiSelect-filled.svg +1 -0
  203. package/dist/icon/svg/editor/mutiSelect.svg +1 -0
  204. package/dist/icon/svg/editor/pause-filled.svg +1 -0
  205. package/dist/icon/svg/editor/play-filled.svg +1 -0
  206. package/dist/icon/svg/editor/plus-circle-filled.svg +1 -0
  207. package/dist/icon/svg/editor/plus-circle.svg +1 -0
  208. package/dist/icon/svg/editor/plus.svg +1 -0
  209. package/dist/icon/svg/editor/send.svg +1 -0
  210. package/dist/icon/svg/editor/subdivide.svg +1 -0
  211. package/dist/icon/svg/navigation/arrowDown-filled.svg +1 -0
  212. package/dist/icon/svg/navigation/arrowDown.svg +1 -0
  213. package/dist/icon/svg/navigation/arrowLeft-filled.svg +1 -0
  214. package/dist/icon/svg/navigation/arrowLeft.svg +1 -0
  215. package/dist/icon/svg/navigation/arrowRight-filled.svg +1 -0
  216. package/dist/icon/svg/navigation/arrowRight.svg +1 -0
  217. package/dist/icon/svg/navigation/arrowUp-filled.svg +1 -0
  218. package/dist/icon/svg/navigation/arrowUp.svg +1 -0
  219. package/dist/icon/svg/navigation/bottom-filled.svg +1 -0
  220. package/dist/icon/svg/navigation/bottom.svg +1 -0
  221. package/dist/icon/svg/navigation/doubleLeft-filled.svg +1 -0
  222. package/dist/icon/svg/navigation/doubleLeft.svg +1 -0
  223. package/dist/icon/svg/navigation/doubleRight-filled.svg +1 -0
  224. package/dist/icon/svg/navigation/doubleRight.svg +1 -0
  225. package/dist/icon/svg/navigation/down-bold.svg +1 -0
  226. package/dist/icon/svg/navigation/down-filled.svg +1 -0
  227. package/dist/icon/svg/navigation/down.svg +1 -0
  228. package/dist/icon/svg/navigation/fall-filled.svg +1 -0
  229. package/dist/icon/svg/navigation/fold.svg +1 -0
  230. package/dist/icon/svg/navigation/fullScreen.svg +1 -0
  231. package/dist/icon/svg/navigation/left-bold.svg +1 -0
  232. package/dist/icon/svg/navigation/left-filled.svg +1 -0
  233. package/dist/icon/svg/navigation/left.svg +1 -0
  234. package/dist/icon/svg/navigation/leftFirst-filled.svg +1 -0
  235. package/dist/icon/svg/navigation/leftFirst.svg +1 -0
  236. package/dist/icon/svg/navigation/logout.svg +1 -0
  237. package/dist/icon/svg/navigation/menu.svg +1 -0
  238. package/dist/icon/svg/navigation/menuLeft-bold.svg +1 -0
  239. package/dist/icon/svg/navigation/menuLeft.svg +1 -0
  240. package/dist/icon/svg/navigation/menuRight-bold.svg +1 -0
  241. package/dist/icon/svg/navigation/menuRight.svg +1 -0
  242. package/dist/icon/svg/navigation/more-vertical.svg +1 -0
  243. package/dist/icon/svg/navigation/more.svg +1 -0
  244. package/dist/icon/svg/navigation/pointerLeft-filled.svg +1 -0
  245. package/dist/icon/svg/navigation/pointerRight-filled.svg +1 -0
  246. package/dist/icon/svg/navigation/right-bold.svg +1 -0
  247. package/dist/icon/svg/navigation/right-filled.svg +1 -0
  248. package/dist/icon/svg/navigation/right.svg +1 -0
  249. package/dist/icon/svg/navigation/rightLast-filled.svg +1 -0
  250. package/dist/icon/svg/navigation/rightLast.svg +1 -0
  251. package/dist/icon/svg/navigation/rise-filled.svg +1 -0
  252. package/dist/icon/svg/navigation/top-filled.svg +1 -0
  253. package/dist/icon/svg/navigation/top.svg +1 -0
  254. package/dist/icon/svg/navigation/unfold-filled.svg +1 -0
  255. package/dist/icon/svg/navigation/unfold.svg +1 -0
  256. package/dist/icon/svg/navigation/up-bold.svg +1 -0
  257. package/dist/icon/svg/navigation/up-filled.svg +1 -0
  258. package/dist/icon/svg/navigation/up.svg +1 -0
  259. package/dist/icon/svg/product/AIFile.svg +1 -0
  260. package/dist/icon/svg/product/LandingPage.svg +1 -0
  261. package/dist/icon/svg/product/addressBook.svg +1 -0
  262. package/dist/icon/svg/product/alarmClock.svg +1 -0
  263. package/dist/icon/svg/product/asset-square.svg +1 -0
  264. package/dist/icon/svg/product/assetProtecting.svg +1 -0
  265. package/dist/icon/svg/product/autoAD-square-filled.svg +1 -0
  266. package/dist/icon/svg/product/channels-square-filled.svg +1 -0
  267. package/dist/icon/svg/product/channels.svg +1 -0
  268. package/dist/icon/svg/product/chatBubble-filled.svg +1 -0
  269. package/dist/icon/svg/product/checkBadge.svg +1 -0
  270. package/dist/icon/svg/product/comments.svg +1 -0
  271. package/dist/icon/svg/product/container.svg +1 -0
  272. package/dist/icon/svg/product/dataAuth.svg +1 -0
  273. package/dist/icon/svg/product/dataBoard.svg +1 -0
  274. package/dist/icon/svg/product/dataBox.svg +1 -0
  275. package/dist/icon/svg/product/dataFolder.svg +1 -0
  276. package/dist/icon/svg/product/dataRising.svg +1 -0
  277. package/dist/icon/svg/product/detect.svg +1 -0
  278. package/dist/icon/svg/product/exposure-filled.svg +1 -0
  279. package/dist/icon/svg/product/extendedConfig.svg +1 -0
  280. package/dist/icon/svg/product/file-filled.svg +1 -0
  281. package/dist/icon/svg/product/flag.svg +1 -0
  282. package/dist/icon/svg/product/folderZip.svg +1 -0
  283. package/dist/icon/svg/product/folderzip-bold.svg +1 -0
  284. package/dist/icon/svg/product/guideBook.svg +1 -0
  285. package/dist/icon/svg/product/hosting.svg +1 -0
  286. package/dist/icon/svg/product/icon-outlined.svg +1 -0
  287. package/dist/icon/svg/product/idea-bold.svg +1 -0
  288. package/dist/icon/svg/product/idea.svg +1 -0
  289. package/dist/icon/svg/product/image-bold.svg +1 -0
  290. package/dist/icon/svg/product/image-filled.svg +1 -0
  291. package/dist/icon/svg/product/image.svg +1 -0
  292. package/dist/icon/svg/product/images.svg +1 -0
  293. package/dist/icon/svg/product/keyword.svg +1 -0
  294. package/dist/icon/svg/product/linkSquare.svg +1 -0
  295. package/dist/icon/svg/product/lock.svg +1 -0
  296. package/dist/icon/svg/product/magic-filled.svg +1 -0
  297. package/dist/icon/svg/product/magic.svg +1 -0
  298. package/dist/icon/svg/product/miniProgram.svg +1 -0
  299. package/dist/icon/svg/product/minigame-filled.svg +1 -0
  300. package/dist/icon/svg/product/mobilePage.svg +1 -0
  301. package/dist/icon/svg/product/moments-filled.svg +1 -0
  302. package/dist/icon/svg/product/notepad-bold.svg +1 -0
  303. package/dist/icon/svg/product/notepad.svg +1 -0
  304. package/dist/icon/svg/product/offiaccount-filled.svg +1 -0
  305. package/dist/icon/svg/product/playing.svg +1 -0
  306. package/dist/icon/svg/product/qualification.svg +1 -0
  307. package/dist/icon/svg/product/quickFile.svg +1 -0
  308. package/dist/icon/svg/product/ringStruckture.svg +1 -0
  309. package/dist/icon/svg/product/searchAD-filled.svg +1 -0
  310. package/dist/icon/svg/product/searchAD.svg +1 -0
  311. package/dist/icon/svg/product/shield-filled.svg +1 -0
  312. package/dist/icon/svg/product/shield.svg +1 -0
  313. package/dist/icon/svg/product/shop.svg +1 -0
  314. package/dist/icon/svg/product/shopping.svg +1 -0
  315. package/dist/icon/svg/product/star-filled.svg +1 -0
  316. package/dist/icon/svg/product/star.svg +1 -0
  317. package/dist/icon/svg/product/support-bold.svg +1 -0
  318. package/dist/icon/svg/product/target.svg +1 -0
  319. package/dist/icon/svg/product/targeting.svg +1 -0
  320. package/dist/icon/svg/product/task-filled.svg +1 -0
  321. package/dist/icon/svg/product/task.svg +1 -0
  322. package/dist/icon/svg/product/template.svg +1 -0
  323. package/dist/icon/svg/product/templateBag.svg +1 -0
  324. package/dist/icon/svg/product/text.svg +1 -0
  325. package/dist/icon/svg/product/treeStructure.svg +1 -0
  326. package/dist/icon/svg/product/user-circle.svg +1 -0
  327. package/dist/icon/svg/product/userList.svg +1 -0
  328. package/dist/icon/svg/product/userPack.svg +1 -0
  329. package/dist/icon/svg/product/users-bold.svg +1 -0
  330. package/dist/icon/svg/product/users.svg +1 -0
  331. package/dist/icon/svg/product/videoBag-filled.svg +1 -0
  332. package/dist/icon/svg/product/viewMask.svg +1 -0
  333. package/dist/icon/svg/product/wallet.svg +1 -0
  334. package/dist/icon/svg/product/wechatBubble-filled.svg +1 -0
  335. package/dist/icon/svg/product/wechatBubble.svg +1 -0
  336. package/dist/icon/svg/product/wechatSearch.svg +1 -0
  337. package/dist/icon/svg/product/writing.svg +1 -0
  338. package/dist/icon/svg-data.d.ts +221 -0
  339. package/dist/icon/svg-data.js +224 -0
  340. package/dist/icon/test-icons.html +122 -0
  341. package/dist/icon/types.d.ts +3 -0
  342. package/dist/icon/types.js +10 -0
  343. package/dist/index.d.ts +43 -0
  344. package/dist/index.js +46 -0
  345. package/dist/input/index.d.ts +80 -0
  346. package/dist/input/index.js +437 -0
  347. package/dist/input/style/index.css +256 -0
  348. package/dist/input/style/index.d.ts +2 -0
  349. package/dist/input/style/index.js +2 -0
  350. package/dist/input-number/index.d.ts +36 -0
  351. package/dist/input-number/index.js +429 -0
  352. package/dist/input-number/style/index.css +70 -0
  353. package/dist/input-number/style/index.d.ts +2 -0
  354. package/dist/input-number/style/index.js +2 -0
  355. package/dist/input-otp/index.d.ts +71 -0
  356. package/dist/input-otp/index.js +87 -0
  357. package/dist/input-otp/style/index.css +114 -0
  358. package/dist/input-otp/style/index.d.ts +2 -0
  359. package/dist/input-otp/style/index.js +2 -0
  360. package/dist/message/MessageBase.d.ts +86 -0
  361. package/dist/message/MessageBase.js +395 -0
  362. package/dist/message/MessageReact16.d.ts +2 -0
  363. package/dist/message/MessageReact16.js +86 -0
  364. package/dist/message/MessageReact18.d.ts +2 -0
  365. package/dist/message/MessageReact18.js +98 -0
  366. package/dist/message/index.d.ts +3 -0
  367. package/dist/message/index.js +7 -0
  368. package/dist/message/style/index.css +133 -0
  369. package/dist/message/style/index.d.ts +2 -0
  370. package/dist/message/style/index.js +2 -0
  371. package/dist/modal-base/gap.d.ts +14 -0
  372. package/dist/modal-base/gap.js +31 -0
  373. package/dist/modal-base/index.d.ts +26 -0
  374. package/dist/modal-base/index.js +110 -0
  375. package/dist/number-flow/index.d.ts +13 -0
  376. package/dist/number-flow/index.js +25 -0
  377. package/dist/number-flow/style/index.css +0 -0
  378. package/dist/number-flow/style/index.d.ts +2 -0
  379. package/dist/number-flow/style/index.js +2 -0
  380. package/dist/pagination/index.d.ts +38 -0
  381. package/dist/pagination/index.js +349 -0
  382. package/dist/pagination/style/index.css +128 -0
  383. package/dist/pagination/style/index.d.ts +2 -0
  384. package/dist/pagination/style/index.js +2 -0
  385. package/dist/pop-base/index.d.ts +123 -0
  386. package/dist/pop-base/index.js +349 -0
  387. package/dist/pop-base/mergeProps.d.ts +37 -0
  388. package/dist/pop-base/mergeProps.js +144 -0
  389. package/dist/pop-base/style/index.css +150 -0
  390. package/dist/pop-base/style/index.d.ts +2 -0
  391. package/dist/pop-base/style/index.js +2 -0
  392. package/dist/pop-base/useForkRef.d.ts +5 -0
  393. package/dist/pop-base/useForkRef.js +52 -0
  394. package/dist/popover/index.d.ts +4 -0
  395. package/dist/popover/index.js +9 -0
  396. package/dist/radio/index.d.ts +21 -0
  397. package/dist/radio/index.js +45 -0
  398. package/dist/radio/primitive.d.ts +5 -0
  399. package/dist/radio/primitive.js +28 -0
  400. package/dist/radio/style/index.css +219 -0
  401. package/dist/radio/style/index.d.ts +2 -0
  402. package/dist/radio/style/index.js +2 -0
  403. package/dist/scroll-area/index.d.ts +24 -0
  404. package/dist/scroll-area/index.js +96 -0
  405. package/dist/scroll-area/style/index.css +77 -0
  406. package/dist/scroll-area/style/index.d.ts +2 -0
  407. package/dist/scroll-area/style/index.js +2 -0
  408. package/dist/select/index.d.ts +85 -0
  409. package/dist/select/index.js +262 -0
  410. package/dist/select/style/index.css +1736 -0
  411. package/dist/select/style/index.d.ts +2 -0
  412. package/dist/select/style/index.js +2 -0
  413. package/dist/select/useIcons.d.ts +25 -0
  414. package/dist/select/useIcons.js +80 -0
  415. package/dist/slider/index.d.ts +69 -0
  416. package/dist/slider/index.js +264 -0
  417. package/dist/slider/style/index.css +237 -0
  418. package/dist/slider/style/index.d.ts +2 -0
  419. package/dist/slider/style/index.js +2 -0
  420. package/dist/style/base.css +298 -0
  421. package/dist/style/index.d.ts +6 -0
  422. package/dist/style/index.js +17 -0
  423. package/dist/switch/index.d.ts +12 -0
  424. package/dist/switch/index.js +55 -0
  425. package/dist/switch/style/index.css +152 -0
  426. package/dist/switch/style/index.d.ts +2 -0
  427. package/dist/switch/style/index.js +2 -0
  428. package/dist/table/TableCellContent.d.ts +20 -0
  429. package/dist/table/TableCellContent.js +77 -0
  430. package/dist/table/index.d.ts +97 -0
  431. package/dist/table/index.js +791 -0
  432. package/dist/table/style/index.css +320 -0
  433. package/dist/table/style/index.d.ts +2 -0
  434. package/dist/table/style/index.js +2 -0
  435. package/dist/table/useSelection.d.ts +13 -0
  436. package/dist/table/useSelection.js +259 -0
  437. package/dist/tabs/index.d.ts +51 -0
  438. package/dist/tabs/index.js +617 -0
  439. package/dist/tabs/style/index.css +369 -0
  440. package/dist/tabs/style/index.d.ts +2 -0
  441. package/dist/tabs/style/index.js +2 -0
  442. package/dist/text-swap/index.d.ts +58 -0
  443. package/dist/text-swap/index.js +280 -0
  444. package/dist/text-swap/style/index.css +32 -0
  445. package/dist/text-swap/style/index.d.ts +2 -0
  446. package/dist/text-swap/style/index.js +2 -0
  447. package/dist/time-picker/index.d.ts +67 -0
  448. package/dist/time-picker/index.js +945 -0
  449. package/dist/time-picker/style/index.css +166 -0
  450. package/dist/time-picker/style/index.d.ts +2 -0
  451. package/dist/time-picker/style/index.js +2 -0
  452. package/dist/tooltip/index.d.ts +10 -0
  453. package/dist/tooltip/index.js +178 -0
  454. package/dist/tree-select/index.d.ts +25 -0
  455. package/dist/tree-select/index.js +140 -0
  456. package/dist/tree-select/style/index.css +204 -0
  457. package/dist/tree-select/style/index.d.ts +1 -0
  458. package/dist/tree-select/style/index.js +1 -0
  459. package/package.json +124 -0
@@ -0,0 +1,945 @@
1
+ var _excluded = ["allowClear", "picker", "value", "onChange", "visible", "onVisibleChange", "disabled", "placeholder", "popupRender", "light", "triggerElement", "minTime", "maxTime", "onClick"];
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
8
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
+ import React, { useEffect, useRef, useState } from 'react';
12
+ import { isLegalTimeString, isTimeAfter, isTimeBefore } from "../_util/time";
13
+ import HoverFill from "../hover-fill";
14
+ import Icon from "../icon";
15
+ import Popover from "../popover";
16
+ import ScrollArea from "../scroll-area";
17
+ import "./style";
18
+ var TimePicker = function TimePicker(props) {
19
+ var _props$allowClear = props.allowClear,
20
+ allowClear = _props$allowClear === void 0 ? true : _props$allowClear,
21
+ _props$picker = props.picker,
22
+ picker = _props$picker === void 0 ? 'hour' : _props$picker,
23
+ _props$value = props.value,
24
+ valueProp = _props$value === void 0 ? undefined : _props$value,
25
+ onChange = props.onChange,
26
+ _props$visible = props.visible,
27
+ visibleProp = _props$visible === void 0 ? null : _props$visible,
28
+ onVisibleChange = props.onVisibleChange,
29
+ _props$disabled = props.disabled,
30
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
31
+ placeholderProp = props.placeholder,
32
+ popupRender = props.popupRender,
33
+ light = props.light,
34
+ triggerElement = props.triggerElement,
35
+ minTime = props.minTime,
36
+ maxTime = props.maxTime,
37
+ _onClick = props.onClick,
38
+ rest = _objectWithoutProperties(props, _excluded);
39
+ var hoursRef = useRef(null);
40
+ var minutesRef = useRef(null);
41
+ var secondsRef = useRef(null);
42
+ var placeholder = placeholderProp !== null && placeholderProp !== void 0 ? placeholderProp : '请选择时间';
43
+ var nextClickInsideRef = useRef(false);
44
+ var containerRef = useRef(null);
45
+ var popupRef = useRef(null);
46
+ var _useState = useState(function () {
47
+ if (visibleProp !== null && visibleProp !== undefined) {
48
+ return visibleProp;
49
+ }
50
+ return false;
51
+ }),
52
+ _useState2 = _slicedToArray(_useState, 2),
53
+ visible = _useState2[0],
54
+ setVisible = _useState2[1];
55
+ var _useState3 = useState(function () {
56
+ return valueProp !== null && valueProp !== void 0 ? valueProp : null;
57
+ }),
58
+ _useState4 = _slicedToArray(_useState3, 2),
59
+ selectedTime = _useState4[0],
60
+ setSelectedTime = _useState4[1];
61
+ var _useState5 = useState(function () {
62
+ return valueProp !== null && valueProp !== void 0 ? valueProp : '';
63
+ }),
64
+ _useState6 = _slicedToArray(_useState5, 2),
65
+ value = _useState6[0],
66
+ setValue = _useState6[1];
67
+
68
+ // 分钟选择器相关状态
69
+ var _useState7 = useState(null),
70
+ _useState8 = _slicedToArray(_useState7, 2),
71
+ selectedHour = _useState8[0],
72
+ setSelectedHour = _useState8[1];
73
+ var _useState9 = useState(null),
74
+ _useState10 = _slicedToArray(_useState9, 2),
75
+ selectedMinute = _useState10[0],
76
+ setSelectedMinute = _useState10[1];
77
+ var _useState11 = useState(null),
78
+ _useState12 = _slicedToArray(_useState11, 2),
79
+ selectedSecond = _useState12[0],
80
+ setSelectedSecond = _useState12[1];
81
+
82
+ // 根据 picker 模式格式化时间字符串
83
+ // 注意:这个函数只在设置 selectedTime 时使用,不应该在用户输入过程中使用
84
+ var formatTimeForPicker = function formatTimeForPicker(timeString) {
85
+ if (!timeString) return '';
86
+ if (picker === 'hour') {
87
+ // hour 模式:只显示 HH:00
88
+ var match = timeString.match(/^(\d{1,2}):(\d{1,2})(?::\d{1,2})?$/);
89
+ if (match) {
90
+ return "".concat(match[1].padStart(2, '0'), ":00");
91
+ }
92
+ } else if (picker === 'minute') {
93
+ // minute 模式:显示 HH:MM
94
+ var _match = timeString.match(/^(\d{1,2}):(\d{1,2})(?::\d{1,2})?$/);
95
+ if (_match) {
96
+ return "".concat(_match[1].padStart(2, '0'), ":").concat(_match[2].padStart(2, '0'));
97
+ }
98
+ } else if (picker === 'second') {
99
+ // second 模式:显示 HH:MM:SS
100
+ // 如果只有 HH:MM 格式,自动添加 :00 秒
101
+ var _match2 = timeString.match(/^(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/);
102
+ if (_match2) {
103
+ if (_match2[3] !== undefined) {
104
+ // 已经是 HH:MM:SS 格式
105
+ return "".concat(_match2[1].padStart(2, '0'), ":").concat(_match2[2].padStart(2, '0'), ":").concat(_match2[3].padStart(2, '0'));
106
+ } else {
107
+ // 只有 HH:MM 格式,添加 :00 秒
108
+ return "".concat(_match2[1].padStart(2, '0'), ":").concat(_match2[2].padStart(2, '0'), ":00");
109
+ }
110
+ }
111
+ }
112
+ return timeString;
113
+ };
114
+ useEffect(function () {
115
+ if (valueProp !== undefined && valueProp !== selectedTime) {
116
+ setSelectedTime(valueProp);
117
+ // 只在外部 valueProp 变化时格式化,用户输入过程中不格式化
118
+ if (valueProp) {
119
+ setValue(formatTimeForPicker(valueProp));
120
+ } else {
121
+ setValue('');
122
+ }
123
+ if (valueProp) {
124
+ // 同步 selectedHour、selectedMinute、selectedSecond
125
+ if (picker === 'hour') {
126
+ var timeMatch = valueProp.match(/^(\d{1,2}):(\d{1,2})$/);
127
+ if (timeMatch) {
128
+ var hour = parseInt(timeMatch[1], 10);
129
+ setSelectedHour(hour);
130
+ setSelectedMinute(null);
131
+ setSelectedSecond(null);
132
+ }
133
+ } else if (picker === 'minute') {
134
+ var _timeMatch = valueProp.match(/^(\d{1,2}):(\d{1,2})$/);
135
+ if (_timeMatch) {
136
+ var _hour = parseInt(_timeMatch[1], 10);
137
+ var minute = parseInt(_timeMatch[2], 10);
138
+ setSelectedHour(_hour);
139
+ setSelectedMinute(minute);
140
+ setSelectedSecond(null);
141
+ }
142
+ } else if (picker === 'second') {
143
+ var _timeMatch2 = valueProp.match(/^(\d{1,2}):(\d{1,2}):(\d{1,2})$/);
144
+ if (_timeMatch2) {
145
+ var _hour2 = parseInt(_timeMatch2[1], 10);
146
+ var _minute = parseInt(_timeMatch2[2], 10);
147
+ var second = parseInt(_timeMatch2[3], 10);
148
+ setSelectedHour(_hour2);
149
+ setSelectedMinute(_minute);
150
+ setSelectedSecond(second);
151
+ }
152
+ }
153
+ } else {
154
+ // 当 valueProp 为 null 时,重置所有选择状态
155
+ setSelectedHour(null);
156
+ setSelectedMinute(null);
157
+ setSelectedSecond(null);
158
+ }
159
+ }
160
+ }, [valueProp, picker]);
161
+ useEffect(function () {
162
+ var handleClickOutside = function handleClickOutside(event) {
163
+ var _containerRef$current, _popupRef$current;
164
+ var target = event.target;
165
+
166
+ // 如果弹窗没有显示,不需要处理
167
+ if (!visible) {
168
+ return;
169
+ }
170
+
171
+ // 检查点击是否在 containerRef 或 popupRef 内部
172
+ var isInsideContainer = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.contains(target);
173
+ var isInsidePopup = (_popupRef$current = popupRef.current) === null || _popupRef$current === void 0 ? void 0 : _popupRef$current.contains(target);
174
+
175
+ // 如果点击在两者之外,则关闭弹窗
176
+ if (!isInsideContainer && !isInsidePopup) {
177
+ handleVisibleChange(false);
178
+ }
179
+ };
180
+
181
+ // 添加点击事件监听器
182
+ document.addEventListener('click', handleClickOutside);
183
+
184
+ // 清理函数
185
+ return function () {
186
+ document.removeEventListener('click', handleClickOutside);
187
+ };
188
+ }, [visible, value, selectedTime]);
189
+ var handleVisibleChange = function handleVisibleChange(bool) {
190
+ setTimeout(function () {
191
+ if (nextClickInsideRef.current === true) {
192
+ nextClickInsideRef.current = false;
193
+ // 展开时,如果在内部元素点击,则不做默认的收起操作
194
+ if (!bool) {
195
+ return;
196
+ }
197
+ }
198
+
199
+ // 当弹窗关闭时,如果输入框的值是非法字符或超出范围,则重置为选中的值
200
+ if (!bool && value !== selectedTime && (!isLegalTimeString(value, picker) || minTime && isTimeBefore(value, minTime) || maxTime && isTimeAfter(value, maxTime))) {
201
+ // 弹窗关闭时,如果输入值不合法,重置为选中的值
202
+ // 这里不需要格式化,因为 selectedTime 已经是正确格式
203
+ setValue(selectedTime !== null && selectedTime !== void 0 ? selectedTime : '');
204
+ // 如果重置为空,也要重置选择状态
205
+ if (!selectedTime) {
206
+ setSelectedHour(null);
207
+ setSelectedMinute(null);
208
+ setSelectedSecond(null);
209
+ }
210
+ }
211
+ if (bool) {
212
+ if (selectedTime) {
213
+ // 根据 picker 模式同步相应的选择状态
214
+ if (picker === 'hour') {
215
+ var timeMatch = selectedTime.match(/^(\d{1,2}):(\d{1,2})$/);
216
+ if (timeMatch) {
217
+ var hour = parseInt(timeMatch[1], 10);
218
+ setSelectedHour(hour);
219
+ setSelectedMinute(null);
220
+ setSelectedSecond(null);
221
+ }
222
+ } else if (picker === 'minute') {
223
+ var _timeMatch3 = selectedTime.match(/^(\d{1,2}):(\d{1,2})$/);
224
+ if (_timeMatch3) {
225
+ var _hour3 = parseInt(_timeMatch3[1], 10);
226
+ var minute = parseInt(_timeMatch3[2], 10);
227
+ setSelectedHour(_hour3);
228
+ setSelectedMinute(minute);
229
+ setSelectedSecond(null);
230
+ }
231
+ } else if (picker === 'second') {
232
+ var _timeMatch4 = selectedTime.match(/^(\d{1,2}):(\d{1,2}):(\d{1,2})$/);
233
+ if (_timeMatch4) {
234
+ var _hour4 = parseInt(_timeMatch4[1], 10);
235
+ var _minute2 = parseInt(_timeMatch4[2], 10);
236
+ var second = parseInt(_timeMatch4[3], 10);
237
+ setSelectedHour(_hour4);
238
+ setSelectedMinute(_minute2);
239
+ setSelectedSecond(second);
240
+ }
241
+ }
242
+ }
243
+ scrollPopup(selectedTime !== null && selectedTime !== void 0 ? selectedTime : '', 'instant');
244
+ }
245
+ if (onVisibleChange) {
246
+ onVisibleChange(bool);
247
+ }
248
+ if (visibleProp === null || visibleProp === undefined) {
249
+ setVisible(bool);
250
+ }
251
+ }, 0);
252
+ };
253
+ var handleInputChange = function handleInputChange(e) {
254
+ var val = e.target.value;
255
+ setValue(val);
256
+ if (val.trim() === '') {
257
+ if (allowClear) {
258
+ if (valueProp === undefined) {
259
+ setSelectedTime(null);
260
+ // 重置所有选择状态
261
+ setSelectedHour(null);
262
+ setSelectedMinute(null);
263
+ setSelectedSecond(null);
264
+ }
265
+ onChange === null || onChange === void 0 || onChange(null);
266
+ }
267
+ } else {
268
+ // 验证时间格式和范围(用于滚动,但不触发 onChange)
269
+ if (isLegalTimeString(val, picker)) {
270
+ // 检查时间范围
271
+ var isInRange = true;
272
+ if (minTime && isTimeBefore(val, minTime)) {
273
+ isInRange = false;
274
+ }
275
+ if (maxTime && isTimeAfter(val, maxTime)) {
276
+ isInRange = false;
277
+ }
278
+ if (isInRange) {
279
+ if (valueProp === undefined) {
280
+ setSelectedTime(val);
281
+ }
282
+ onChange === null || onChange === void 0 || onChange(val);
283
+
284
+ // 如果弹窗是打开的,滚动到对应位置
285
+ if (visible) {
286
+ scrollPopup(val, 'smooth');
287
+ }
288
+ } else {
289
+ // 如果不在范围内,不触发 onChange,也不滚动
290
+ // 保持当前值,让用户看到输入的内容
291
+ }
292
+ } else {
293
+ // 如果格式不合法,不触发 onChange,也不滚动
294
+ // 保持当前值,让用户看到输入的内容
295
+ }
296
+ }
297
+ };
298
+ var handleInputBlur = function handleInputBlur() {
299
+ var val = value.trim();
300
+ if (val === '') {
301
+ if (allowClear) {
302
+ if (valueProp === undefined) {
303
+ setSelectedTime(null);
304
+ // 重置所有选择状态
305
+ setSelectedHour(null);
306
+ setSelectedMinute(null);
307
+ setSelectedSecond(null);
308
+ }
309
+ onChange === null || onChange === void 0 || onChange(null);
310
+ } else {
311
+ // 如果 allowClear 为 false,空值是非法的,重置为之前的值
312
+ setValue(selectedTime !== null && selectedTime !== void 0 ? selectedTime : '');
313
+ }
314
+ } else {
315
+ // 验证时间格式和范围
316
+ if (isLegalTimeString(val, picker)) {
317
+ // 检查时间范围
318
+ var isInRange = true;
319
+ if (minTime && isTimeBefore(val, minTime)) {
320
+ isInRange = false;
321
+ }
322
+ if (maxTime && isTimeAfter(val, maxTime)) {
323
+ isInRange = false;
324
+ }
325
+ if (isInRange) {
326
+ if (valueProp === undefined) {
327
+ setSelectedTime(val);
328
+ }
329
+ onChange === null || onChange === void 0 || onChange(val);
330
+ } else {
331
+ // 如果不在范围内,重置为选中的值
332
+ setValue(selectedTime !== null && selectedTime !== void 0 ? selectedTime : '');
333
+ }
334
+ } else {
335
+ // 如果格式不合法,重置为选中的值
336
+ setValue(selectedTime !== null && selectedTime !== void 0 ? selectedTime : '');
337
+ }
338
+ }
339
+ };
340
+ var handleInputIconClick = function handleInputIconClick(e) {
341
+ if (disabled) {
342
+ return;
343
+ }
344
+ e.stopPropagation();
345
+ e.preventDefault();
346
+ if (allowClear && selectedTime) {
347
+ if (valueProp === undefined) {
348
+ setSelectedTime(null);
349
+ setValue('');
350
+ // 重置所有选择状态
351
+ setSelectedHour(null);
352
+ setSelectedMinute(null);
353
+ setSelectedSecond(null);
354
+ }
355
+ onChange === null || onChange === void 0 || onChange(null);
356
+ if (onVisibleChange) {
357
+ onVisibleChange(false);
358
+ }
359
+ if (visibleProp === null) {
360
+ setVisible(false);
361
+ }
362
+ }
363
+ };
364
+ var handleHourSelect = function handleHourSelect(hour) {
365
+ if (picker === 'hour') {
366
+ var timeString = "".concat(hour.toString().padStart(2, '0'), ":00");
367
+ if (valueProp === undefined) {
368
+ setSelectedTime(timeString);
369
+ setValue(formatTimeForPicker(timeString));
370
+ }
371
+ onChange === null || onChange === void 0 || onChange(timeString);
372
+ if (picker === 'hour') {
373
+ if (onVisibleChange) {
374
+ onVisibleChange(false);
375
+ }
376
+ if (visibleProp === null) {
377
+ setVisible(false);
378
+ }
379
+ }
380
+ } else if (picker === 'minute' || picker === 'second') {
381
+ setSelectedHour(hour);
382
+
383
+ // 如果之前没有选择分钟,默认选择 00
384
+ if (selectedMinute === null) {
385
+ setSelectedMinute(0);
386
+ }
387
+
388
+ // 如果之前没有选择秒,默认选择 00
389
+ if (picker === 'second' && selectedSecond === null) {
390
+ setSelectedSecond(0);
391
+ }
392
+
393
+ // 构建完整时间字符串
394
+ var _timeString;
395
+ if (picker === 'minute') {
396
+ _timeString = "".concat(hour.toString().padStart(2, '0'), ":").concat((selectedMinute === null || selectedMinute === void 0 ? void 0 : selectedMinute.toString().padStart(2, '0')) || '00');
397
+ } else {
398
+ _timeString = "".concat(hour.toString().padStart(2, '0'), ":").concat((selectedMinute === null || selectedMinute === void 0 ? void 0 : selectedMinute.toString().padStart(2, '0')) || '00', ":").concat((selectedSecond === null || selectedSecond === void 0 ? void 0 : selectedSecond.toString().padStart(2, '0')) || '00');
399
+ }
400
+
401
+ // 检查时间范围,如果超出范围则自动调整
402
+ var adjustedTimeString = _timeString;
403
+ if (minTime && isTimeBefore(_timeString, minTime)) {
404
+ // 如果小于最小时间,使用最小时间
405
+ adjustedTimeString = minTime;
406
+ var _minTime$split$map = minTime.split(':').map(Number),
407
+ _minTime$split$map2 = _slicedToArray(_minTime$split$map, 3),
408
+ minHour = _minTime$split$map2[0],
409
+ minMinute = _minTime$split$map2[1],
410
+ minSecond = _minTime$split$map2[2];
411
+ setSelectedHour(minHour);
412
+ setSelectedMinute(minMinute);
413
+ if (picker === 'second') {
414
+ setSelectedSecond(minSecond || 0);
415
+ }
416
+ } else if (maxTime && isTimeAfter(_timeString, maxTime)) {
417
+ // 如果大于最大时间,使用最大时间
418
+ adjustedTimeString = maxTime;
419
+ var _maxTime$split$map = maxTime.split(':').map(Number),
420
+ _maxTime$split$map2 = _slicedToArray(_maxTime$split$map, 3),
421
+ maxHour = _maxTime$split$map2[0],
422
+ maxMinute = _maxTime$split$map2[1],
423
+ maxSecond = _maxTime$split$map2[2];
424
+ setSelectedHour(maxHour);
425
+ setSelectedMinute(maxMinute);
426
+ if (picker === 'second') {
427
+ setSelectedSecond(maxSecond || 0);
428
+ }
429
+ }
430
+ if (valueProp === undefined) {
431
+ setSelectedTime(adjustedTimeString);
432
+ setValue(formatTimeForPicker(adjustedTimeString));
433
+ }
434
+ onChange === null || onChange === void 0 || onChange(adjustedTimeString);
435
+
436
+ // 滚动到调整后的时间位置
437
+ scrollPopup(adjustedTimeString, 'smooth');
438
+ }
439
+ };
440
+ var handleMinuteSelect = function handleMinuteSelect(minute) {
441
+ if (picker === 'minute' || picker === 'second') {
442
+ var hour = selectedHour;
443
+
444
+ // 如果还没有选择小时,自动选择最小合法小时
445
+ if (hour === null) {
446
+ if (minTime) {
447
+ // 如果有最小时间限制,使用最小时间的小时
448
+ var _minTime$split$map3 = minTime.split(':').map(Number),
449
+ _minTime$split$map4 = _slicedToArray(_minTime$split$map3, 1),
450
+ minHour = _minTime$split$map4[0];
451
+ hour = minHour;
452
+ } else {
453
+ // 否则默认选择 00 小时
454
+ hour = 0;
455
+ }
456
+ setSelectedHour(hour);
457
+ }
458
+ var timeString;
459
+ if (picker === 'minute') {
460
+ timeString = "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'));
461
+ } else {
462
+ // 秒选择器模式,需要包含秒
463
+ var second = selectedSecond !== null && selectedSecond !== void 0 ? selectedSecond : 0;
464
+ timeString = "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'), ":").concat(second.toString().padStart(2, '0'));
465
+ }
466
+
467
+ // 检查时间范围,如果超出范围则自动调整
468
+ var adjustedTimeString = timeString;
469
+ if (minTime && isTimeBefore(timeString, minTime)) {
470
+ // 如果小于最小时间,使用最小时间
471
+ adjustedTimeString = minTime;
472
+ var _minTime$split$map5 = minTime.split(':').map(Number),
473
+ _minTime$split$map6 = _slicedToArray(_minTime$split$map5, 3),
474
+ _minHour = _minTime$split$map6[0],
475
+ minMinute = _minTime$split$map6[1],
476
+ minSecond = _minTime$split$map6[2];
477
+ setSelectedHour(_minHour);
478
+ setSelectedMinute(minMinute);
479
+ if (picker === 'second') {
480
+ setSelectedSecond(minSecond || 0);
481
+ }
482
+ } else if (maxTime && isTimeAfter(timeString, maxTime)) {
483
+ // 如果大于最大时间,使用最大时间
484
+ adjustedTimeString = maxTime;
485
+ var _maxTime$split$map3 = maxTime.split(':').map(Number),
486
+ _maxTime$split$map4 = _slicedToArray(_maxTime$split$map3, 3),
487
+ maxHour = _maxTime$split$map4[0],
488
+ maxMinute = _maxTime$split$map4[1],
489
+ maxSecond = _maxTime$split$map4[2];
490
+ setSelectedHour(maxHour);
491
+ setSelectedMinute(maxMinute);
492
+ if (picker === 'second') {
493
+ setSelectedSecond(maxSecond || 0);
494
+ }
495
+ } else {
496
+ // 在范围内,更新分钟
497
+ setSelectedMinute(minute);
498
+ }
499
+ if (valueProp === undefined) {
500
+ setSelectedTime(adjustedTimeString);
501
+ setValue(adjustedTimeString);
502
+ }
503
+ onChange === null || onChange === void 0 || onChange(adjustedTimeString);
504
+ scrollPopup(adjustedTimeString, 'smooth');
505
+ }
506
+ };
507
+ var handleSecondSelect = function handleSecondSelect(second) {
508
+ if (picker === 'second') {
509
+ var hour = selectedHour;
510
+ var minute = selectedMinute;
511
+
512
+ // 如果还没有选择小时,自动选择最小合法小时
513
+ if (hour === null) {
514
+ if (minTime) {
515
+ var _minTime$split$map7 = minTime.split(':').map(Number),
516
+ _minTime$split$map8 = _slicedToArray(_minTime$split$map7, 1),
517
+ minHour = _minTime$split$map8[0];
518
+ hour = minHour;
519
+ } else {
520
+ hour = 0;
521
+ }
522
+ setSelectedHour(hour);
523
+ }
524
+
525
+ // 如果还没有选择分钟,自动选择最小合法分钟
526
+ if (minute === null) {
527
+ if (minTime && hour === parseInt(minTime.split(':')[0], 10)) {
528
+ var _minTime$split$map9 = minTime.split(':').map(Number),
529
+ _minTime$split$map10 = _slicedToArray(_minTime$split$map9, 2),
530
+ minMinute = _minTime$split$map10[1];
531
+ minute = minMinute;
532
+ } else {
533
+ minute = 0;
534
+ }
535
+ setSelectedMinute(minute);
536
+ }
537
+ var timeString = "".concat(hour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'), ":").concat(second.toString().padStart(2, '0'));
538
+
539
+ // 检查时间范围,如果超出范围则自动调整
540
+ var adjustedTimeString = timeString;
541
+ if (minTime && isTimeBefore(timeString, minTime)) {
542
+ adjustedTimeString = minTime;
543
+ var _minTime$split$map11 = minTime.split(':').map(Number),
544
+ _minTime$split$map12 = _slicedToArray(_minTime$split$map11, 3),
545
+ _minHour2 = _minTime$split$map12[0],
546
+ _minMinute = _minTime$split$map12[1],
547
+ minSecond = _minTime$split$map12[2];
548
+ setSelectedHour(_minHour2);
549
+ setSelectedMinute(_minMinute);
550
+ setSelectedSecond(minSecond || 0);
551
+ } else if (maxTime && isTimeAfter(timeString, maxTime)) {
552
+ adjustedTimeString = maxTime;
553
+ var _maxTime$split$map5 = maxTime.split(':').map(Number),
554
+ _maxTime$split$map6 = _slicedToArray(_maxTime$split$map5, 3),
555
+ maxHour = _maxTime$split$map6[0],
556
+ maxMinute = _maxTime$split$map6[1],
557
+ maxSecond = _maxTime$split$map6[2];
558
+ setSelectedHour(maxHour);
559
+ setSelectedMinute(maxMinute);
560
+ setSelectedSecond(maxSecond || 0);
561
+ } else {
562
+ setSelectedSecond(second);
563
+ }
564
+ if (valueProp === undefined) {
565
+ setSelectedTime(adjustedTimeString);
566
+ setValue(adjustedTimeString);
567
+ }
568
+ onChange === null || onChange === void 0 || onChange(adjustedTimeString);
569
+ scrollPopup(adjustedTimeString, 'smooth');
570
+ }
571
+ };
572
+
573
+ // 生成小时选项(0-23),根据 minTime 和 maxTime 过滤
574
+ var generateHourOptions = function generateHourOptions() {
575
+ var hours = [];
576
+ for (var i = 0; i < 24; i++) {
577
+ hours.push(i);
578
+ }
579
+ if (!minTime && !maxTime) {
580
+ return hours;
581
+ }
582
+ return hours.filter(function (hour) {
583
+ // 对于 minTime,只要该小时内有任何分钟可用,就保留该小时
584
+ // 对于 maxTime,只要该小时内有任何分钟可用,就保留该小时
585
+
586
+ if (minTime) {
587
+ var _minTime$split$map13 = minTime.split(':').map(Number),
588
+ _minTime$split$map14 = _slicedToArray(_minTime$split$map13, 2),
589
+ minHour = _minTime$split$map14[0],
590
+ minMinute = _minTime$split$map14[1];
591
+ if (hour < minHour) {
592
+ return false; // 小时太小,完全不可用
593
+ }
594
+ if (hour === minHour && minMinute === 59) {
595
+ return false; // 该小时只有最后一分钟,实际上不可用
596
+ }
597
+ }
598
+ if (maxTime) {
599
+ var _maxTime$split$map7 = maxTime.split(':').map(Number),
600
+ _maxTime$split$map8 = _slicedToArray(_maxTime$split$map7, 2),
601
+ maxHour = _maxTime$split$map8[0],
602
+ maxMinute = _maxTime$split$map8[1];
603
+ if (hour > maxHour) {
604
+ return false; // 小时太大,完全不可用
605
+ }
606
+ // 修复:当 maxTime 为 XX:00:00 时,该小时应该是可用的
607
+ // 只有当 maxMinute 为 0 且没有秒数限制时,才需要进一步检查
608
+ if (hour === maxHour && maxMinute === 0) {
609
+ // 检查是否有秒数限制
610
+ var maxTimeParts = maxTime.split(':');
611
+ if (maxTimeParts.length === 3) {
612
+ var maxSecond = parseInt(maxTimeParts[2], 10);
613
+ if (maxSecond === 0) {
614
+ return true; // 该小时的第一分钟第一秒是有效的
615
+ }
616
+ }
617
+ // 如果没有秒数限制(HH:MM 格式),且分钟为 0,则该小时不可用
618
+ return false; // 该小时只有第一分钟,实际上不可用
619
+ }
620
+ }
621
+ return true;
622
+ });
623
+ };
624
+ var hourOptions = generateHourOptions();
625
+
626
+ // 生成分钟选项(0-59)
627
+ var generateMinuteOptions = function generateMinuteOptions() {
628
+ var minutes = [];
629
+ for (var i = 0; i < 60; i++) {
630
+ minutes.push(i);
631
+ }
632
+ return minutes;
633
+ };
634
+ var minuteOptions = generateMinuteOptions();
635
+
636
+ // 生成秒选项(0-59)
637
+ var generateSecondOptions = function generateSecondOptions() {
638
+ var seconds = [];
639
+ for (var i = 0; i < 60; i++) {
640
+ seconds.push(i);
641
+ }
642
+ return seconds;
643
+ };
644
+ var secondOptions = generateSecondOptions();
645
+
646
+ // 判断分钟选项是否应该禁用
647
+ var isMinuteDisabled = function isMinuteDisabled(minute) {
648
+ if (picker !== 'minute' && picker !== 'second' || selectedHour === null) {
649
+ return false;
650
+ }
651
+ if (picker === 'minute') {
652
+ // minute 模式:直接比较 HH:MM 格式
653
+ var timeString = "".concat(selectedHour.toString().padStart(2, '0'), ":").concat(minute.toString().padStart(2, '0'));
654
+ if (minTime && isTimeBefore(timeString, minTime)) {
655
+ return true;
656
+ }
657
+ if (maxTime && isTimeAfter(timeString, maxTime)) {
658
+ return true;
659
+ }
660
+ } else if (picker === 'second') {
661
+ // second 模式:需要检查这个分钟是否有可能达到合法时间
662
+ // 如果 minTime 是 "06:27:27",那么分钟 27 应该是可选的
663
+ // 因为用户可以选择秒数来达到合法时间
664
+ if (minTime) {
665
+ var _minTime$split$map15 = minTime.split(':').map(Number),
666
+ _minTime$split$map16 = _slicedToArray(_minTime$split$map15, 3),
667
+ minHour = _minTime$split$map16[0],
668
+ minMinute = _minTime$split$map16[1],
669
+ minSecond = _minTime$split$map16[2];
670
+ if (selectedHour === minHour && minute < minMinute) {
671
+ // 同小时,分钟小于最小分钟,禁用
672
+ return true;
673
+ }
674
+ if (selectedHour < minHour) {
675
+ // 小时小于最小小时,禁用
676
+ return true;
677
+ }
678
+ }
679
+ if (maxTime) {
680
+ var _maxTime$split$map9 = maxTime.split(':').map(Number),
681
+ _maxTime$split$map10 = _slicedToArray(_maxTime$split$map9, 3),
682
+ maxHour = _maxTime$split$map10[0],
683
+ maxMinute = _maxTime$split$map10[1],
684
+ maxSecond = _maxTime$split$map10[2];
685
+ if (selectedHour === maxHour && minute > maxMinute) {
686
+ // 同小时,分钟大于最大分钟,禁用
687
+ return true;
688
+ }
689
+ if (selectedHour > maxHour) {
690
+ // 小时大于最大小时,禁用
691
+ return true;
692
+ }
693
+ }
694
+ }
695
+ return false;
696
+ };
697
+
698
+ // 判断秒选项是否应该禁用
699
+ var isSecondDisabled = function isSecondDisabled(second) {
700
+ if (picker !== 'second' || selectedHour === null || selectedMinute === null) {
701
+ return false;
702
+ }
703
+
704
+ // second 模式:直接比较 HH:MM:SS 格式
705
+ var timeString = "".concat(selectedHour.toString().padStart(2, '0'), ":").concat(selectedMinute.toString().padStart(2, '0'), ":").concat(second.toString().padStart(2, '0'));
706
+ if (minTime && isTimeBefore(timeString, minTime)) {
707
+ return true;
708
+ }
709
+ if (maxTime && isTimeAfter(timeString, maxTime)) {
710
+ return true;
711
+ }
712
+ return false;
713
+ };
714
+
715
+ // 自定义平滑滚动方法
716
+ var scrollTo = function scrollTo(element, to, duration) {
717
+ if (duration <= 0) {
718
+ element.scrollTop = to;
719
+ return;
720
+ }
721
+ var difference = to - element.scrollTop;
722
+ var perTick = difference / duration * 10;
723
+ var reqAnimFrame = function reqAnimFrame() {
724
+ element.scrollTop += perTick;
725
+ if (Math.abs(element.scrollTop - to) < Math.abs(perTick)) {
726
+ element.scrollTop = to; // 确保最终位置准确
727
+ return;
728
+ }
729
+ requestAnimationFrame(function () {
730
+ return reqAnimFrame();
731
+ });
732
+ };
733
+ requestAnimationFrame(reqAnimFrame);
734
+ };
735
+
736
+ // 滚动到指定时间位置
737
+ var scrollPopup = function scrollPopup(timeString) {
738
+ var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'smooth';
739
+ return new Promise(function (resolve) {
740
+ // 通用的滚动函数
741
+ var scrollElement = function scrollElement(element, targetTop, checkResolve) {
742
+ if (element) {
743
+ if (behavior === 'instant') {
744
+ element.scrollTop = targetTop;
745
+ checkResolve();
746
+ } else {
747
+ scrollTo(element, targetTop, 200);
748
+ setTimeout(checkResolve, 200);
749
+ }
750
+ } else {
751
+ checkResolve();
752
+ }
753
+ };
754
+ if (picker === 'hour') {
755
+ var _hoursRef$current;
756
+ var hourOption = (_hoursRef$current = hoursRef.current) === null || _hoursRef$current === void 0 ? void 0 : _hoursRef$current.querySelector("[data-odn-time-picker-option-value=\"".concat(timeString, "\"]"));
757
+ if (hoursRef.current && hourOption) {
758
+ var targetTop = hourOption.offsetTop - 8;
759
+ scrollElement(hoursRef.current, targetTop, resolve);
760
+ } else {
761
+ resolve();
762
+ }
763
+ } else if (picker === 'minute') {
764
+ var timeMatch = timeString.match(/^(\d{1,2}):(\d{1,2})$/);
765
+ if (timeMatch) {
766
+ var _hoursRef$current2, _minutesRef$current;
767
+ var hour = parseInt(timeMatch[1], 10);
768
+ var minute = parseInt(timeMatch[2], 10);
769
+ var _hourOption = (_hoursRef$current2 = hoursRef.current) === null || _hoursRef$current2 === void 0 ? void 0 : _hoursRef$current2.querySelector("[data-odn-time-picker-option-value=\"".concat(hour.toString().padStart(2, '0'), ":00\"]"));
770
+ var minuteOption = (_minutesRef$current = minutesRef.current) === null || _minutesRef$current === void 0 ? void 0 : _minutesRef$current.querySelector("[data-odn-time-picker-option-value=\"".concat(minute.toString().padStart(2, '0'), "\"]"));
771
+ var resolvedCount = 0;
772
+ var checkResolve = function checkResolve() {
773
+ resolvedCount++;
774
+ if (resolvedCount === 2) resolve();
775
+ };
776
+ if (_hourOption) {
777
+ var _targetTop = _hourOption.offsetTop - 8;
778
+ scrollElement(hoursRef.current, _targetTop, checkResolve);
779
+ } else {
780
+ checkResolve();
781
+ }
782
+ if (minuteOption) {
783
+ var _targetTop2 = minuteOption.offsetTop - 8;
784
+ scrollElement(minutesRef.current, _targetTop2, checkResolve);
785
+ } else {
786
+ checkResolve();
787
+ }
788
+ } else {
789
+ resolve();
790
+ }
791
+ } else if (picker === 'second') {
792
+ var _timeMatch5 = timeString.match(/^(\d{1,2}):(\d{1,2}):(\d{1,2})$/);
793
+ if (_timeMatch5) {
794
+ var _hoursRef$current3, _minutesRef$current2, _secondsRef$current;
795
+ var _hour5 = parseInt(_timeMatch5[1], 10);
796
+ var _minute3 = parseInt(_timeMatch5[2], 10);
797
+ var second = parseInt(_timeMatch5[3], 10);
798
+ var _hourOption2 = (_hoursRef$current3 = hoursRef.current) === null || _hoursRef$current3 === void 0 ? void 0 : _hoursRef$current3.querySelector("[data-odn-time-picker-option-value=\"".concat(_hour5.toString().padStart(2, '0'), ":00\"]"));
799
+ var _minuteOption = (_minutesRef$current2 = minutesRef.current) === null || _minutesRef$current2 === void 0 ? void 0 : _minutesRef$current2.querySelector("[data-odn-time-picker-option-value=\"".concat(_minute3.toString().padStart(2, '0'), "\"]"));
800
+ var secondOption = (_secondsRef$current = secondsRef.current) === null || _secondsRef$current === void 0 ? void 0 : _secondsRef$current.querySelector("[data-odn-time-picker-option-value=\"".concat(second.toString().padStart(2, '0'), "\"]"));
801
+ var _resolvedCount = 0;
802
+ var _checkResolve = function _checkResolve() {
803
+ _resolvedCount++;
804
+ if (_resolvedCount === 3) resolve();
805
+ };
806
+ if (_hourOption2) {
807
+ var _targetTop3 = _hourOption2.offsetTop - 8;
808
+ scrollElement(hoursRef.current, _targetTop3, _checkResolve);
809
+ } else {
810
+ _checkResolve();
811
+ }
812
+ if (_minuteOption) {
813
+ var _targetTop4 = _minuteOption.offsetTop - 8;
814
+ scrollElement(minutesRef.current, _targetTop4, _checkResolve);
815
+ } else {
816
+ _checkResolve();
817
+ }
818
+ if (secondOption) {
819
+ var _targetTop5 = secondOption.offsetTop - 8;
820
+ scrollElement(secondsRef.current, _targetTop5, _checkResolve);
821
+ } else {
822
+ _checkResolve();
823
+ }
824
+ } else {
825
+ resolve();
826
+ }
827
+ } else {
828
+ resolve();
829
+ }
830
+ });
831
+ };
832
+ var inputEl = /*#__PURE__*/React.createElement("input", {
833
+ "data-odn-time-picker-input": true,
834
+ "data-odn-time-picker-input-disabled": disabled,
835
+ type: "text",
836
+ value: value,
837
+ onChange: handleInputChange,
838
+ onBlur: handleInputBlur,
839
+ onClick: function onClick() {
840
+ nextClickInsideRef.current = true;
841
+ },
842
+ placeholder: placeholder,
843
+ disabled: disabled
844
+ });
845
+ var popup = /*#__PURE__*/React.createElement("div", {
846
+ "data-odn-time-picker-popup-content": true
847
+ }, /*#__PURE__*/React.createElement(ScrollArea, {
848
+ "data-odn-time-picker-options": true,
849
+ ref: hoursRef
850
+ }, hourOptions.map(function (hour) {
851
+ return /*#__PURE__*/React.createElement("div", {
852
+ key: hour,
853
+ "data-odn-time-picker-option": true,
854
+ "data-odn-time-picker-option-value": "".concat(hour.toString().padStart(2, '0'), ":00"),
855
+ "data-odn-time-picker-option-selected": picker === 'hour' ? selectedTime === "".concat(hour.toString().padStart(2, '0'), ":00") : selectedHour === hour,
856
+ onClick: function onClick() {
857
+ return handleHourSelect(hour);
858
+ }
859
+ }, picker === 'hour' ? "".concat(hour.toString().padStart(2, '0'), ":00") : hour.toString().padStart(2, '0'));
860
+ }), /*#__PURE__*/React.createElement("div", {
861
+ "data-odn-time-picker-padding-bottom": true
862
+ })), (picker === 'minute' || picker === 'second') && /*#__PURE__*/React.createElement(ScrollArea, {
863
+ "data-odn-time-picker-options": true,
864
+ ref: minutesRef
865
+ }, minuteOptions.map(function (minute) {
866
+ return /*#__PURE__*/React.createElement("div", {
867
+ key: minute,
868
+ "data-odn-time-picker-option": true,
869
+ "data-odn-time-picker-option-value": minute.toString().padStart(2, '0'),
870
+ "data-odn-time-picker-option-selected": selectedMinute === minute,
871
+ "data-odn-time-picker-option-disabled": isMinuteDisabled(minute),
872
+ onClick: function onClick() {
873
+ return !isMinuteDisabled(minute) && handleMinuteSelect(minute);
874
+ }
875
+ }, minute.toString().padStart(2, '0'));
876
+ }), /*#__PURE__*/React.createElement("div", {
877
+ "data-odn-time-picker-padding-bottom": true
878
+ })), picker === 'second' && /*#__PURE__*/React.createElement(ScrollArea, {
879
+ "data-odn-time-picker-options": true,
880
+ ref: secondsRef
881
+ }, secondOptions.map(function (second) {
882
+ return /*#__PURE__*/React.createElement("div", {
883
+ key: second,
884
+ "data-odn-time-picker-option": true,
885
+ "data-odn-time-picker-option-value": second.toString().padStart(2, '0'),
886
+ "data-odn-time-picker-option-selected": selectedSecond === second,
887
+ "data-odn-time-picker-option-disabled": isSecondDisabled(second),
888
+ onClick: function onClick() {
889
+ return !isSecondDisabled(second) && handleSecondSelect(second);
890
+ }
891
+ }, second.toString().padStart(2, '0'));
892
+ }), /*#__PURE__*/React.createElement("div", {
893
+ "data-odn-time-picker-padding-bottom": true
894
+ })));
895
+ return /*#__PURE__*/React.createElement(Popover, {
896
+ destroyOnHidden: false,
897
+ matchWidth: true,
898
+ arrowed: false,
899
+ visible: visible,
900
+ placement: "bottomLeft",
901
+ trigger: "click",
902
+ popupStyle: {
903
+ padding: 0,
904
+ maxWidth: 'initial'
905
+ },
906
+ popup: /*#__PURE__*/React.createElement("div", {
907
+ "data-odn-time-picker-popup": true,
908
+ "data-odn-time-picker-popup-picker": picker,
909
+ ref: popupRef
910
+ }, popupRender ? popupRender(popup) : popup)
911
+ }, triggerElement ? /*#__PURE__*/React.createElement("div", {
912
+ ref: containerRef,
913
+ onClick: function onClick() {
914
+ handleVisibleChange(!visible);
915
+ }
916
+ }, triggerElement) : /*#__PURE__*/React.createElement("div", _extends({
917
+ "data-odn-time-picker-container": true,
918
+ "data-odn-time-picker-container-selected": !!selectedTime,
919
+ "data-odn-time-picker-container-light": light,
920
+ "data-odn-time-picker-container-disabled": disabled,
921
+ "data-odn-time-picker-container-allow-clear": allowClear,
922
+ "data-odn-time-picker-container-picker": picker,
923
+ onClick: function onClick(e) {
924
+ _onClick === null || _onClick === void 0 || _onClick(e);
925
+ handleVisibleChange(!visible);
926
+ },
927
+ ref: containerRef
928
+ }, rest), light ? /*#__PURE__*/React.createElement(HoverFill, {
929
+ bgStyle: {
930
+ borderRadius: '4px'
931
+ }
932
+ }, inputEl) : inputEl, /*#__PURE__*/React.createElement("div", {
933
+ "data-odn-time-picker-icon-container": true,
934
+ onClick: handleInputIconClick
935
+ }, /*#__PURE__*/React.createElement(Icon, {
936
+ name: "time",
937
+ "data-odn-time-picker-icon": true,
938
+ "data-odn-time-picker-icon-clock": true
939
+ }), allowClear && selectedTime && /*#__PURE__*/React.createElement(Icon, {
940
+ name: "cancel-circle-filled",
941
+ "data-odn-time-picker-icon": true,
942
+ "data-odn-time-picker-icon-clear": true
943
+ }))));
944
+ };
945
+ export default TimePicker;