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,1138 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["allowClear", "icon", "clearIcon", "picker", "minDate", "maxDate", "value", "onChange", "visible", "onVisibleChange", "disabled", "lang", "disabledDays", "disabledMonths", "disabledQuarters", "disabledYears", "placeholder", "popupRender", "shortcuts", "light", "format", "triggerElement", "closeOnSelect", "onClick", "prefix"],
3
+ _excluded2 = ["day", "modifiers", "onMouseEnter", "onMouseLeave"];
4
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
+ import React, { useEffect, useRef, useState } from 'react';
24
+ import { DayPicker } from 'react-day-picker-for-od';
25
+ import { enUS, zhCN } from 'react-day-picker-for-od/locale';
26
+ import { DATE_INPUT_PLACEHOLDER, MONTHS, convertDateToString, convertMonthToString, convertQuarterToString, convertWeekToString, convertYearToString, getDefaultMaxDate, getDefaultMinDate, getEndOfQuarter, getEndOfWeek, getStartOfQuarter, getStartOfWeek, isDayAfter, isDayBefore, isDayInRange, isLegalDateString, isLegalMonthString, isLegalQuarterString, isLegalWeekString, isLegalYearString, isSameDay, isSameMonth, parseMonthStringToRange, parseQuarterStringToRange, parseWeekStringToRange, parseYearStringToRange, today } from "../_util/date";
27
+ import HoverFill from "../hover-fill";
28
+ import Icon from "../icon";
29
+ import Popover from "../popover";
30
+ import MonthPicker from "./MonthPicker";
31
+ import QuarterPicker from "./QuarterPicker";
32
+ import YearPicker from "./YearPicker";
33
+ import "./style";
34
+ var DEFAULT_HOVER_COLOR = 'rgba(33, 34, 38, 0.05)';
35
+ var DatePicker = function DatePicker(props) {
36
+ var _props$allowClear = props.allowClear,
37
+ allowClear = _props$allowClear === void 0 ? true : _props$allowClear,
38
+ icon = props.icon,
39
+ clearIcon = props.clearIcon,
40
+ _props$picker = props.picker,
41
+ picker = _props$picker === void 0 ? 'day' : _props$picker,
42
+ _props$minDate = props.minDate,
43
+ minDateProp = _props$minDate === void 0 ? getDefaultMinDate() : _props$minDate,
44
+ _props$maxDate = props.maxDate,
45
+ maxDateProp = _props$maxDate === void 0 ? getDefaultMaxDate() : _props$maxDate,
46
+ _props$value = props.value,
47
+ valueProp = _props$value === void 0 ? undefined : _props$value,
48
+ onChange = props.onChange,
49
+ _props$visible = props.visible,
50
+ visibleProp = _props$visible === void 0 ? null : _props$visible,
51
+ onVisibleChange = props.onVisibleChange,
52
+ _props$disabled = props.disabled,
53
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
54
+ _props$lang = props.lang,
55
+ lang = _props$lang === void 0 ? 'zhCN' : _props$lang,
56
+ disabledDays = props.disabledDays,
57
+ disabledMonths = props.disabledMonths,
58
+ disabledQuarters = props.disabledQuarters,
59
+ disabledYears = props.disabledYears,
60
+ placeholderProp = props.placeholder,
61
+ popupRender = props.popupRender,
62
+ shortcuts = props.shortcuts,
63
+ light = props.light,
64
+ format = props.format,
65
+ triggerElement = props.triggerElement,
66
+ _props$closeOnSelect = props.closeOnSelect,
67
+ closeOnSelect = _props$closeOnSelect === void 0 ? true : _props$closeOnSelect,
68
+ _onClick = props.onClick,
69
+ prefix = props.prefix,
70
+ rest = _objectWithoutProperties(props, _excluded);
71
+ // 在 picker 为 week 时,需要将 minDate 设置为这周的开始日期(中文周从周一开始,英文周从周日开始)
72
+ // 在 picker 为 quarter 时,需要将 minDate 设置为这个季度的开始日期
73
+ // 在 picker 为 month 时,需要将 minDate 设置为这个月份的开始日期
74
+ // 在 picker 为 year 时,需要将 minDate 设置为这个年份的开始日期
75
+ var minDate = function () {
76
+ if (picker === 'week') {
77
+ var thisWeekStart = getStartOfWeek(minDateProp, lang);
78
+ return thisWeekStart;
79
+ }
80
+ if (picker === 'quarter') {
81
+ var thisQuarterStart = getStartOfQuarter(minDateProp);
82
+ return thisQuarterStart;
83
+ }
84
+ if (picker === 'month') {
85
+ var thisMonthStart = new Date(minDateProp.getFullYear(), minDateProp.getMonth(), 1);
86
+ return thisMonthStart;
87
+ }
88
+ if (picker === 'year') {
89
+ var thisYearStart = new Date(minDateProp.getFullYear(), 0, 1);
90
+ return thisYearStart;
91
+ }
92
+ return minDateProp;
93
+ }();
94
+
95
+ // 在 picker 为 week 时,需要将 maxDate 设置为上一周的结束日期(中文周从周日结束,英文周从周六结束),除非 maxDate 正好是这周的结束日期
96
+ // 在 picker 为 quarter 时,需要将 maxDate 设置为上一个季度的结束日期,除非 maxDate 正好是这个季度的结束日期
97
+ // 在 picker 为 month 时,需要将 maxDate 设置为上一个月份的结束日期,除非 maxDate 正好是这个月份的结束日期
98
+ // 在 picker 为 year 时,需要将 maxDate 设置为今年,这和以上的都不同,因为年份选择器支持选择当前年份
99
+ var maxDate = function () {
100
+ if (picker === 'week') {
101
+ var thisWeekEnd = getEndOfWeek(maxDateProp, lang);
102
+ if (isSameDay(maxDateProp, thisWeekEnd)) {
103
+ return thisWeekEnd;
104
+ }
105
+ var prevWeekEnd = new Date(thisWeekEnd);
106
+ prevWeekEnd.setDate(thisWeekEnd.getDate() - 7);
107
+ return prevWeekEnd;
108
+ }
109
+ if (picker === 'quarter') {
110
+ var thisQuarterEnd = getEndOfQuarter(maxDateProp);
111
+ if (isSameDay(maxDateProp, thisQuarterEnd)) {
112
+ return thisQuarterEnd;
113
+ }
114
+ var prevQuarterEnd = new Date(thisQuarterEnd);
115
+ prevQuarterEnd.setMonth(thisQuarterEnd.getMonth() - 3);
116
+ return prevQuarterEnd;
117
+ }
118
+ if (picker === 'month') {
119
+ var thisMonthEnd = new Date(maxDateProp.getFullYear(), maxDateProp.getMonth() + 1, 0);
120
+ if (isSameDay(maxDateProp, thisMonthEnd)) {
121
+ return thisMonthEnd;
122
+ }
123
+ var prevMonthEnd = new Date(maxDateProp.getFullYear(), maxDateProp.getMonth(), 0);
124
+ return prevMonthEnd;
125
+ }
126
+ if (picker === 'year') {
127
+ // 年份选择器支持选择当前年份,所以直接使用 maxDateProp
128
+ return maxDateProp;
129
+ }
130
+ return maxDateProp;
131
+ }();
132
+ var placeholder = placeholderProp !== null && placeholderProp !== void 0 ? placeholderProp : DATE_INPUT_PLACEHOLDER[lang][picker];
133
+ var nextClickInsideRef = useRef(false);
134
+ var containerRef = useRef(null);
135
+ var popupRef = useRef(null);
136
+ var prefixRef = useRef(null);
137
+ var _useState = useState(0),
138
+ _useState2 = _slicedToArray(_useState, 2),
139
+ prefixWidth = _useState2[0],
140
+ setPrefixWidth = _useState2[1];
141
+ var navHoverFillRef = useRef(null);
142
+ var navHoverFillInnerRef = useRef(null);
143
+ var navHoverFillTimer = useRef(0);
144
+ var navHoverFillVisible = useRef(false);
145
+ var tdHoverFillRef = useRef(null);
146
+ var tdHoverFillInnerRef = useRef(null);
147
+ var tdHoverFillTimer = useRef(0);
148
+ var tdHoverFillVisible = useRef(false);
149
+ var shortcutsEnabled = shortcuts && shortcuts.length > 0;
150
+ var _useState3 = useState(function () {
151
+ if (visibleProp !== null && visibleProp !== undefined) {
152
+ return visibleProp;
153
+ }
154
+ return false;
155
+ }),
156
+ _useState4 = _slicedToArray(_useState3, 2),
157
+ visible = _useState4[0],
158
+ setVisible = _useState4[1];
159
+ var _useState5 = useState(function () {
160
+ if (valueProp !== undefined) {
161
+ return picker === 'day' ? valueProp || today : (valueProp === null || valueProp === void 0 ? void 0 : valueProp[0]) || today;
162
+ }
163
+ return today;
164
+ }),
165
+ _useState6 = _slicedToArray(_useState5, 2),
166
+ month = _useState6[0],
167
+ setMonth = _useState6[1];
168
+ var _useState7 = useState(function () {
169
+ if (picker === 'day' && valueProp !== undefined) {
170
+ var _ref;
171
+ return (_ref = valueProp) !== null && _ref !== void 0 ? _ref : null;
172
+ }
173
+ return null;
174
+ }),
175
+ _useState8 = _slicedToArray(_useState7, 2),
176
+ selectedDay = _useState8[0],
177
+ setSelectedDay = _useState8[1];
178
+ var _useState9 = useState(function () {
179
+ if (picker !== 'day' && valueProp !== undefined) {
180
+ var _ref2;
181
+ return (_ref2 = valueProp) !== null && _ref2 !== void 0 ? _ref2 : null;
182
+ }
183
+ return null;
184
+ }),
185
+ _useState10 = _slicedToArray(_useState9, 2),
186
+ selectedRange = _useState10[0],
187
+ setSelectedRange = _useState10[1];
188
+ var _useState11 = useState(function () {
189
+ if (valueProp !== null && valueProp !== undefined) {
190
+ if (picker === 'day') {
191
+ return convertDateToString(valueProp, lang);
192
+ } else if (picker === 'week') {
193
+ return convertWeekToString(valueProp, lang);
194
+ } else if (picker === 'quarter') {
195
+ return convertQuarterToString(valueProp, lang);
196
+ } else if (picker === 'month') {
197
+ return convertMonthToString(valueProp, lang);
198
+ } else if (picker === 'year') {
199
+ return convertYearToString(valueProp, lang);
200
+ }
201
+ return '';
202
+ }
203
+ return '';
204
+ }),
205
+ _useState12 = _slicedToArray(_useState11, 2),
206
+ value = _useState12[0],
207
+ setValue = _useState12[1];
208
+ useEffect(function () {
209
+ if (picker === 'day') {
210
+ if (valueProp !== undefined && selectedDay !== valueProp) {
211
+ var _ref3, _ref4;
212
+ setMonth((_ref3 = valueProp) !== null && _ref3 !== void 0 ? _ref3 : null);
213
+ setSelectedDay((_ref4 = valueProp) !== null && _ref4 !== void 0 ? _ref4 : null);
214
+ if (!isLegalDateString(value, lang) || !isSameDay(valueProp, new Date(value))) {
215
+ setValue(convertDateToString(valueProp, lang));
216
+ }
217
+ }
218
+ } else {
219
+ if (valueProp !== undefined && selectedRange !== valueProp) {
220
+ var _ref5;
221
+ var range = (_ref5 = valueProp) !== null && _ref5 !== void 0 ? _ref5 : null;
222
+ var from = range === null || range === void 0 ? void 0 : range[0];
223
+ setMonth(from);
224
+ setSelectedRange(range);
225
+ var newStr = '';
226
+ if (picker === 'week') {
227
+ newStr = convertWeekToString(range, lang);
228
+ } else if (picker === 'quarter') {
229
+ newStr = convertQuarterToString(range, lang);
230
+ } else if (picker === 'month') {
231
+ newStr = convertMonthToString(range, lang);
232
+ } else if (picker === 'year') {
233
+ newStr = convertYearToString(range, lang);
234
+ }
235
+ if (value !== newStr) {
236
+ setValue(newStr);
237
+ }
238
+ }
239
+ }
240
+ }, [valueProp, lang, picker, visible]);
241
+ useEffect(function () {
242
+ var handleClickOutside = function handleClickOutside(event) {
243
+ var _containerRef$current, _popupRef$current;
244
+ var target = event.target;
245
+
246
+ // 如果弹窗没有显示,不需要处理
247
+ if (!visible) {
248
+ return;
249
+ }
250
+
251
+ // 检查点击是否在 containerRef 或 popupRef 内部
252
+ var isInsideContainer = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.contains(target);
253
+ var isInsidePopup = (_popupRef$current = popupRef.current) === null || _popupRef$current === void 0 ? void 0 : _popupRef$current.contains(target);
254
+
255
+ // 如果点击在两者之外,则关闭弹窗
256
+ if (!isInsideContainer && !isInsidePopup) {
257
+ handleVisibleChange(false);
258
+ }
259
+ };
260
+
261
+ // 添加点击事件监听器
262
+ document.addEventListener('click', handleClickOutside);
263
+
264
+ // 清理函数
265
+ return function () {
266
+ document.removeEventListener('click', handleClickOutside);
267
+ };
268
+ }, [visible, onVisibleChange, visibleProp, value, selectedDay, selectedRange]);
269
+
270
+ // ResizeObserver 监听 prefix 宽度变化
271
+ useEffect(function () {
272
+ if (!prefix || !prefixRef.current) {
273
+ setPrefixWidth(0);
274
+ return;
275
+ }
276
+ var resizeObserver = new ResizeObserver(function (entries) {
277
+ var _iterator = _createForOfIteratorHelper(entries),
278
+ _step;
279
+ try {
280
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
281
+ var entry = _step.value;
282
+ var _entry$target$getBoun = entry.target.getBoundingClientRect(),
283
+ width = _entry$target$getBoun.width;
284
+ setPrefixWidth(width);
285
+ }
286
+ } catch (err) {
287
+ _iterator.e(err);
288
+ } finally {
289
+ _iterator.f();
290
+ }
291
+ });
292
+ resizeObserver.observe(prefixRef.current);
293
+ return function () {
294
+ resizeObserver.disconnect();
295
+ };
296
+ }, [prefix]);
297
+ var isDayDisabled = function isDayDisabled(day) {
298
+ return disabledDays && (Array.isArray(disabledDays) ? disabledDays.some(function (d) {
299
+ return isSameDay(d, day);
300
+ }) : disabledDays(day)) || isDayBefore(day, minDate) || isDayAfter(day, maxDate);
301
+ };
302
+ var handleInputChange = function handleInputChange(e) {
303
+ var val = e.target.value;
304
+ setValue(val);
305
+ if (picker === 'day') {
306
+ if (val.trim() === '') {
307
+ if (allowClear) {
308
+ if (valueProp === undefined) {
309
+ setSelectedDay(null);
310
+ }
311
+ onChange === null || onChange === void 0 || onChange(null, {
312
+ dateString: ''
313
+ });
314
+ }
315
+ } else if (isLegalDateString(val, lang)) {
316
+ var newDate = new Date(val);
317
+ newDate.setHours(0, 0, 0, 0);
318
+ if (!isDayDisabled(newDate) && !isSameDay(newDate, selectedDay)) {
319
+ if (valueProp === undefined) {
320
+ setSelectedDay(newDate);
321
+ setValue(convertDateToString(newDate, lang));
322
+ if (!isSameMonth(newDate, selectedDay)) {
323
+ setMonth(newDate);
324
+ }
325
+ }
326
+ onChange === null || onChange === void 0 || onChange(newDate, {
327
+ dateString: convertDateToString(newDate, lang)
328
+ });
329
+ }
330
+ }
331
+ } else {
332
+ // 非 day picker 的共用清空逻辑
333
+ if (val.trim() === '') {
334
+ if (allowClear) {
335
+ if (valueProp === undefined) {
336
+ setSelectedRange(null);
337
+ }
338
+ onChange === null || onChange === void 0 || onChange(null, {
339
+ dateString: ''
340
+ });
341
+ }
342
+ } else if (picker === 'week' && isLegalWeekString(val, lang)) {
343
+ // 2025-33周
344
+ // 在检查了周字符串后,接着检查这一周是否在范围内,拿到这一周的第一天在 minDate 之后,最后一天在 maxDate 之前
345
+ var weekRange = parseWeekStringToRange(val, lang);
346
+ if (weekRange) {
347
+ var _weekRange = _slicedToArray(weekRange, 2),
348
+ weekStart = _weekRange[0],
349
+ weekEnd = _weekRange[1];
350
+
351
+ // 检查周范围是否在允许的日期范围内
352
+ var isWeekInRange = (!minDate || !isDayBefore(weekStart, minDate)) && (!maxDate || !isDayAfter(weekEnd, maxDate));
353
+ if (isWeekInRange && (!selectedRange || !isSameDay(weekStart, selectedRange[0]) || !isSameDay(weekEnd, selectedRange[1]))) {
354
+ if (valueProp === undefined) {
355
+ setSelectedRange(weekRange);
356
+ setValue(convertWeekToString(weekRange, lang));
357
+ // 如果周的开始日期不在当前显示的月份中,则切换到该月份
358
+ if (!isSameMonth(weekStart, selectedDay)) {
359
+ setMonth(weekStart);
360
+ }
361
+ }
362
+ onChange === null || onChange === void 0 || onChange(weekRange, {
363
+ dateString: convertWeekToString(weekRange, lang)
364
+ });
365
+ }
366
+ }
367
+ } else if (picker === 'quarter' && isLegalQuarterString(val, lang)) {
368
+ // 2025-Q1
369
+ // 在检查了季度字符串后,接着检查这个季度是否在范围内
370
+ var quarterRange = parseQuarterStringToRange(val, lang);
371
+ if (quarterRange) {
372
+ var _quarterRange = _slicedToArray(quarterRange, 2),
373
+ quarterStart = _quarterRange[0],
374
+ quarterEnd = _quarterRange[1];
375
+
376
+ // 检查季度范围是否在允许的日期范围内
377
+ var isQuarterInRange = (!minDate || !isDayBefore(quarterStart, minDate)) && (!maxDate || !isDayAfter(quarterEnd, maxDate));
378
+
379
+ // 检查季度是否在 disabledQuarters 中
380
+ var isQuarterDisabled = disabledQuarters && disabledQuarters.length > 0 && disabledQuarters.some(function (disabledDate) {
381
+ var disabledYear = disabledDate.getFullYear();
382
+ var disabledMonth = disabledDate.getMonth();
383
+ var disabledQuarter = Math.floor(disabledMonth / 3) + 1;
384
+ var quarterYear = quarterStart.getFullYear();
385
+ var quarterStartMonth = quarterStart.getMonth();
386
+ var quarterIndex = Math.floor(quarterStartMonth / 3) + 1;
387
+ return disabledYear === quarterYear && disabledQuarter === quarterIndex;
388
+ });
389
+ if (isQuarterInRange && !isQuarterDisabled && (!selectedRange || !isSameDay(quarterStart, selectedRange[0]) || !isSameDay(quarterEnd, selectedRange[1]))) {
390
+ if (valueProp === undefined) {
391
+ setSelectedRange(quarterRange);
392
+ setValue(convertQuarterToString(quarterRange, lang));
393
+ // 如果季度的开始日期不在当前显示的月份中,则切换到该月份
394
+ if (!isSameMonth(quarterStart, selectedDay)) {
395
+ setMonth(quarterStart);
396
+ }
397
+ }
398
+ onChange === null || onChange === void 0 || onChange(quarterRange, {
399
+ dateString: convertQuarterToString(quarterRange, lang)
400
+ });
401
+ }
402
+ }
403
+ } else if (picker === 'month' && isLegalMonthString(val, lang)) {
404
+ // 2025-02
405
+ // 在检查了月份字符串后,接着检查这个月份是否在范围内
406
+ var monthRange = parseMonthStringToRange(val, lang);
407
+ if (monthRange) {
408
+ var _monthRange = _slicedToArray(monthRange, 2),
409
+ monthStart = _monthRange[0],
410
+ monthEnd = _monthRange[1];
411
+
412
+ // 检查月份范围是否在允许的日期范围内
413
+ var isMonthInRange = (!minDate || !isDayBefore(monthStart, minDate)) && (!maxDate || !isDayAfter(monthEnd, maxDate));
414
+
415
+ // 检查月份是否在 disabledMonths 中
416
+ var isMonthDisabled = disabledMonths && disabledMonths.length > 0 && disabledMonths.some(function (disabledDate) {
417
+ var disabledYear = disabledDate.getFullYear();
418
+ var disabledMonth = disabledDate.getMonth();
419
+ var monthYear = monthStart.getFullYear();
420
+ var monthIndex = monthStart.getMonth();
421
+ return disabledYear === monthYear && disabledMonth === monthIndex;
422
+ });
423
+ if (isMonthInRange && !isMonthDisabled && (!selectedRange || !isSameDay(monthStart, selectedRange[0]) || !isSameDay(monthEnd, selectedRange[1]))) {
424
+ if (valueProp === undefined) {
425
+ setSelectedRange(monthRange);
426
+ setValue(convertMonthToString(monthRange, lang));
427
+ // 如果月份的开始日期不在当前显示的月份中,则切换到该月份
428
+ if (!isSameMonth(monthStart, selectedDay)) {
429
+ setMonth(monthStart);
430
+ }
431
+ }
432
+ onChange === null || onChange === void 0 || onChange(monthRange, {
433
+ dateString: convertMonthToString(monthRange, lang)
434
+ });
435
+ }
436
+ }
437
+ } else if (picker === 'year' && isLegalYearString(val, lang)) {
438
+ // 2025
439
+ // 在检查了年份字符串后,接着检查这个年份是否在范围内
440
+ var yearRange = parseYearStringToRange(val, lang);
441
+ if (yearRange) {
442
+ var _yearRange = _slicedToArray(yearRange, 2),
443
+ yearStart = _yearRange[0],
444
+ yearEnd = _yearRange[1];
445
+
446
+ // 检查年份范围是否在允许的日期范围内
447
+ var isYearInRange = (!minDate || !isDayBefore(yearStart, minDate)) && (!maxDate || !isDayAfter(yearEnd, maxDate));
448
+
449
+ // 检查年份是否在 disabledYears 中
450
+ var isYearDisabled = disabledYears && disabledYears.length > 0 && disabledYears.some(function (disabledDate) {
451
+ var disabledYear = disabledDate.getFullYear();
452
+ var yearStartYear = yearStart.getFullYear();
453
+ return disabledYear === yearStartYear;
454
+ });
455
+ if (isYearInRange && !isYearDisabled && (!selectedRange || !isSameDay(yearStart, selectedRange[0]) || !isSameDay(yearEnd, selectedRange[1]))) {
456
+ if (valueProp === undefined) {
457
+ setSelectedRange(yearRange);
458
+ setValue(convertYearToString(yearRange, lang));
459
+ // 如果年份的开始日期不在当前显示的月份中,则切换到该月份
460
+ if (!isSameMonth(yearStart, selectedDay)) {
461
+ setMonth(yearStart);
462
+ }
463
+ }
464
+ onChange === null || onChange === void 0 || onChange(yearRange, {
465
+ dateString: convertYearToString(yearRange, lang)
466
+ });
467
+ }
468
+ }
469
+ }
470
+ }
471
+ };
472
+ var handleCaptionHoverEnter = function handleCaptionHoverEnter(e) {
473
+ var _popupRef$current2, _popupRef$current3;
474
+ e.persist();
475
+ clearTimeout(navHoverFillTimer.current);
476
+ if (!navHoverFillInnerRef.current || !navHoverFillRef.current) {
477
+ return;
478
+ }
479
+ var offsetWidth = e.currentTarget.offsetWidth;
480
+ var popupTop = ((_popupRef$current2 = popupRef.current) === null || _popupRef$current2 === void 0 ? void 0 : _popupRef$current2.getBoundingClientRect().top) || 0;
481
+ var popupLeft = ((_popupRef$current3 = popupRef.current) === null || _popupRef$current3 === void 0 ? void 0 : _popupRef$current3.getBoundingClientRect().left) || 0;
482
+ var targetTop = e.currentTarget.getBoundingClientRect().top || 0;
483
+ var targetLeft = e.currentTarget.getBoundingClientRect().left || 0;
484
+ var finalLeft = targetLeft - popupLeft;
485
+ var finalTop = targetTop - popupTop;
486
+ setTimeout(function () {
487
+ if (!navHoverFillRef.current || !navHoverFillInnerRef.current) {
488
+ return;
489
+ }
490
+ navHoverFillRef.current.style.width = "".concat(offsetWidth, "px");
491
+ navHoverFillRef.current.style.left = "".concat(finalLeft, "px");
492
+ navHoverFillRef.current.style.top = "".concat(finalTop, "px");
493
+ navHoverFillInnerRef.current.style.background = 'var(--odn-dp-hover-fill-color)';
494
+ }, 0);
495
+ if (!navHoverFillVisible.current) {
496
+ navHoverFillVisible.current = true;
497
+ navHoverFillRef.current.style.transitionDuration = '0s';
498
+ var clientX = e.clientX,
499
+ clientY = e.clientY;
500
+ var _e$currentTarget$getB = e.currentTarget.getBoundingClientRect(),
501
+ x = _e$currentTarget$getB.x,
502
+ y = _e$currentTarget$getB.y;
503
+ navHoverFillInnerRef.current.style.transformOrigin = "".concat(clientX - x, "px ").concat(clientY - y, "px");
504
+ } else {
505
+ navHoverFillRef.current.style.transitionDuration = 'var(--odn-hoverfill-duration)';
506
+ }
507
+ };
508
+ var handleCaptionHoverLeave = function handleCaptionHoverLeave(e) {
509
+ e.persist();
510
+ clearTimeout(navHoverFillTimer.current);
511
+ if (!navHoverFillInnerRef.current || !navHoverFillRef.current) {
512
+ return;
513
+ }
514
+ var clientX = e.clientX,
515
+ clientY = e.clientY;
516
+ var _e$currentTarget$getB2 = e.currentTarget.getBoundingClientRect(),
517
+ x = _e$currentTarget$getB2.x,
518
+ y = _e$currentTarget$getB2.y;
519
+ navHoverFillTimer.current = window.setTimeout(function () {
520
+ navHoverFillVisible.current = false;
521
+ if (navHoverFillInnerRef.current) {
522
+ navHoverFillInnerRef.current.style.transformOrigin = "".concat(clientX - x, "px ").concat(clientY - y, "px");
523
+ navHoverFillInnerRef.current.style.background = 'transparent';
524
+ }
525
+ }, 100);
526
+ };
527
+ var resetNavHoverFill = function resetNavHoverFill() {
528
+ navHoverFillVisible.current = false;
529
+ if (navHoverFillRef.current && navHoverFillInnerRef.current) {
530
+ navHoverFillInnerRef.current.style.transformOrigin = '';
531
+ navHoverFillInnerRef.current.style.background = 'transparent';
532
+ }
533
+ };
534
+ var handleCaptionChange = function handleCaptionChange(date) {
535
+ var newDate = date;
536
+ if (minDate && isDayBefore(date, minDate)) {
537
+ newDate.setMonth(minDate.getMonth());
538
+ } else if (maxDate && isDayAfter(date, maxDate)) {
539
+ newDate.setMonth(maxDate.getMonth());
540
+ }
541
+ setMonth(newDate);
542
+ };
543
+ var handleYearChange = function handleYearChange(e) {
544
+ var newYear = parseInt(e.currentTarget.value, 10);
545
+ var baseDate = month || today;
546
+ var newDate = new Date(baseDate.getTime());
547
+ newDate.setFullYear(newYear);
548
+ handleCaptionChange(newDate);
549
+ };
550
+ var handleMonthChange = function handleMonthChange(e) {
551
+ var newMonth = parseInt(e.currentTarget.value, 10);
552
+ var baseDate = month || today;
553
+ var newDate = new Date(baseDate.getTime());
554
+ newDate.setMonth(newMonth);
555
+ handleCaptionChange(newDate);
556
+ };
557
+ var handleTdHoverEnter = function handleTdHoverEnter(e) {
558
+ var _popupRef$current4, _popupRef$current5, _target$parentElement;
559
+ e.persist();
560
+ clearTimeout(tdHoverFillTimer.current);
561
+ if (!tdHoverFillInnerRef.current || !tdHoverFillRef.current) {
562
+ return;
563
+ }
564
+ var target = e.currentTarget;
565
+ var targetTop = target.getBoundingClientRect().top || 0;
566
+ var targetLeft = target.getBoundingClientRect().left || 0;
567
+ var popupTop = ((_popupRef$current4 = popupRef.current) === null || _popupRef$current4 === void 0 ? void 0 : _popupRef$current4.getBoundingClientRect().top) || 0;
568
+ var popupLeft = ((_popupRef$current5 = popupRef.current) === null || _popupRef$current5 === void 0 ? void 0 : _popupRef$current5.getBoundingClientRect().left) || 0;
569
+
570
+ // week 和 day 的 hover 不同,week 需要 hover 一整行,因此向上再找到一整行的 tr,在其之下增加背景
571
+ var targetTr = (_target$parentElement = target.parentElement) === null || _target$parentElement === void 0 ? void 0 : _target$parentElement.parentElement;
572
+ var targetTrFirstTd = targetTr.firstElementChild;
573
+ var targetTrFirstTdLeft = targetTrFirstTd.getBoundingClientRect().left || 0;
574
+ var finalTop = targetTop - popupTop;
575
+ var finalTdLeft = targetLeft - popupLeft;
576
+ var finalTrLeft = targetTrFirstTdLeft - popupLeft + targetTrFirstTd.offsetWidth;
577
+ setTimeout(function () {
578
+ if (!tdHoverFillRef.current || !tdHoverFillInnerRef.current) {
579
+ return;
580
+ }
581
+ tdHoverFillRef.current.style.left = "".concat(picker === 'day' ? finalTdLeft : finalTrLeft, "px");
582
+ tdHoverFillRef.current.style.top = "".concat(finalTop, "px");
583
+ tdHoverFillInnerRef.current.style.background = 'var(--odn-dp-hover-fill-color)';
584
+ }, 0);
585
+ if (!tdHoverFillVisible.current) {
586
+ tdHoverFillVisible.current = true;
587
+ tdHoverFillRef.current.style.transitionDuration = '0s';
588
+ var clientX = e.clientX,
589
+ clientY = e.clientY;
590
+ var _target$getBoundingCl = target.getBoundingClientRect(),
591
+ x = _target$getBoundingCl.x,
592
+ y = _target$getBoundingCl.y;
593
+ tdHoverFillInnerRef.current.style.transformOrigin = "".concat(clientX - x, "px ").concat(clientY - y, "px");
594
+ } else {
595
+ tdHoverFillRef.current.style.transitionDuration = 'var(--odn-hoverfill-duration)';
596
+ }
597
+ };
598
+ var handleTdHoverLeave = function handleTdHoverLeave(e) {
599
+ e.persist();
600
+ clearTimeout(tdHoverFillTimer.current);
601
+ if (!tdHoverFillInnerRef.current || !tdHoverFillRef.current) {
602
+ return;
603
+ }
604
+ var target = e.currentTarget;
605
+ var clientX = e.clientX,
606
+ clientY = e.clientY;
607
+ var _target$getBoundingCl2 = target.getBoundingClientRect(),
608
+ x = _target$getBoundingCl2.x,
609
+ y = _target$getBoundingCl2.y;
610
+ tdHoverFillTimer.current = window.setTimeout(function () {
611
+ tdHoverFillVisible.current = false;
612
+ if (tdHoverFillInnerRef.current) {
613
+ tdHoverFillInnerRef.current.style.transformOrigin = "".concat(clientX - x, "px ").concat(clientY - y, "px");
614
+ tdHoverFillInnerRef.current.style.background = 'rgba(33, 34, 38, 0)';
615
+ }
616
+ }, 100);
617
+ };
618
+ var handleDaySelect = function handleDaySelect(day) {
619
+ if (day === undefined) {
620
+ return;
621
+ }
622
+ var newDate = new Date(day);
623
+ if (isDayDisabled(newDate)) {
624
+ return;
625
+ }
626
+ newDate.setHours(0, 0, 0, 0);
627
+ if (valueProp === undefined) {
628
+ setSelectedDay(newDate);
629
+ setValue(convertDateToString(newDate, lang));
630
+ }
631
+ if (onChange) {
632
+ onChange === null || onChange === void 0 || onChange(newDate, {
633
+ dateString: convertDateToString(newDate, lang)
634
+ });
635
+ }
636
+ if (closeOnSelect) {
637
+ setTimeout(function () {
638
+ if (onVisibleChange) {
639
+ onVisibleChange(false);
640
+ }
641
+ if (visibleProp === null) {
642
+ setVisible(false);
643
+ }
644
+ }, 150);
645
+ }
646
+ };
647
+ var handleInputIconClick = function handleInputIconClick(e) {
648
+ if (disabled) {
649
+ return;
650
+ }
651
+ e.stopPropagation();
652
+ e.preventDefault();
653
+ if (allowClear) {
654
+ if (selectedDay || selectedRange) {
655
+ setSelectedDay(null);
656
+ setSelectedRange(null);
657
+ setValue('');
658
+ if (onChange) {
659
+ onChange(null, {
660
+ dateString: ''
661
+ });
662
+ }
663
+ }
664
+ if (onVisibleChange) {
665
+ onVisibleChange(false);
666
+ }
667
+ if (visibleProp === null) {
668
+ setVisible(false);
669
+ }
670
+ }
671
+ };
672
+ var dayProps = {
673
+ mode: 'single',
674
+ selected: selectedDay || undefined,
675
+ onSelect: handleDaySelect
676
+ };
677
+ var weekProps = {
678
+ showWeekNumber: true,
679
+ showOutsideDays: true,
680
+ modifiers: {
681
+ selected: selectedRange || undefined,
682
+ range_start: (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange[0]) || undefined,
683
+ range_end: (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange[1]) || undefined,
684
+ range_middle: function range_middle(date) {
685
+ return selectedRange ? isDayInRange(date, selectedRange, true) : false;
686
+ }
687
+ },
688
+ onDayClick: function onDayClick(day, modifiers) {
689
+ if (day === undefined) {
690
+ return;
691
+ }
692
+ var newDate = new Date(day);
693
+ if (isDayDisabled(newDate)) {
694
+ return;
695
+ }
696
+ newDate.setHours(0, 0, 0, 0);
697
+ var weekStart = getStartOfWeek(newDate, lang);
698
+ var weekEnd = getEndOfWeek(newDate, lang);
699
+ if (valueProp === undefined) {
700
+ setSelectedRange([weekStart, weekEnd]);
701
+ setValue(convertWeekToString([weekStart, weekEnd], lang));
702
+ }
703
+ if (onChange) {
704
+ onChange === null || onChange === void 0 || onChange([weekStart, weekEnd], {
705
+ dateString: convertWeekToString([weekStart, weekEnd], lang)
706
+ });
707
+ }
708
+ if (closeOnSelect) {
709
+ setTimeout(function () {
710
+ if (onVisibleChange) {
711
+ onVisibleChange(false);
712
+ }
713
+ if (visibleProp === null) {
714
+ setVisible(false);
715
+ }
716
+ }, 150);
717
+ }
718
+ }
719
+ };
720
+ var popup = /*#__PURE__*/React.createElement(DayPicker, _extends({
721
+ "data-odn-date-picker": true,
722
+ "data-odn-date-picker-locale": lang,
723
+ captionLayout: "dropdown",
724
+ locale: lang === 'zhCN' ? zhCN : enUS,
725
+ weekStartsOn: lang === 'zhCN' ? 1 : 0,
726
+ month: month || undefined,
727
+ onMonthChange: handleCaptionChange,
728
+ startMonth: minDate,
729
+ disabled: [{
730
+ before: minDate,
731
+ after: maxDate
732
+ }].concat(_toConsumableArray(Array.isArray(disabledDays) ? disabledDays : disabledDays ? [disabledDays] : [])),
733
+ endMonth: maxDate,
734
+ components: {
735
+ YearsDropdown: function YearsDropdown(_ref6) {
736
+ var value = _ref6.value,
737
+ _ref6$options = _ref6.options,
738
+ options = _ref6$options === void 0 ? [] : _ref6$options;
739
+ var optionsFiltered = options.filter(function (o) {
740
+ return !o.disabled;
741
+ }).map(function (o) {
742
+ return _objectSpread(_objectSpread({}, o), {}, {
743
+ label: o.value
744
+ });
745
+ });
746
+ return /*#__PURE__*/React.createElement("div", {
747
+ "data-hover-fill-target": "year",
748
+ "data-odn-date-picker-caption-select": true,
749
+ "data-odn-date-picker-caption-select-year": true,
750
+ onMouseEnter: handleCaptionHoverEnter,
751
+ onMouseLeave: handleCaptionHoverLeave
752
+ }, /*#__PURE__*/React.createElement("select", {
753
+ "data-odn-date-picker-caption-select-input": true,
754
+ name: "year",
755
+ onChange: handleYearChange,
756
+ onClick: resetNavHoverFill,
757
+ "data-value": value,
758
+ value: value
759
+ }, optionsFiltered.map(function (o) {
760
+ return /*#__PURE__*/React.createElement("option", {
761
+ key: o.value,
762
+ value: o.value
763
+ }, o.label, lang === 'zhCN' ? '年' : '');
764
+ })), /*#__PURE__*/React.createElement("svg", {
765
+ "data-odn-date-picker-caption-icon": true,
766
+ width: "18",
767
+ height: "18",
768
+ viewBox: "0 0 18 18"
769
+ }, /*#__PURE__*/React.createElement("path", {
770
+ d: "M12.3501 7.81235C12.6121 7.48497 12.379 7 11.9597 7H6.04034C5.62109 7 5.388 7.48497 5.6499 7.81235L8.60959 11.512C8.80975 11.7622 9.1903 11.7622 9.39046 11.512L12.3501 7.81235Z",
771
+ fillRule: "evenodd"
772
+ })));
773
+ },
774
+ MonthsDropdown: function MonthsDropdown(_ref7) {
775
+ var value = _ref7.value,
776
+ _ref7$options = _ref7.options,
777
+ options = _ref7$options === void 0 ? [] : _ref7$options;
778
+ var optionsFiltered = options.filter(function (o) {
779
+ return !o.disabled;
780
+ }).map(function (o) {
781
+ return _objectSpread(_objectSpread({}, o), {}, {
782
+ label: lang === 'zhCN' ? MONTHS[o.value].zhCN : MONTHS[o.value].enUS
783
+ });
784
+ });
785
+ return /*#__PURE__*/React.createElement("div", {
786
+ "data-hover-fill-target": "month",
787
+ "data-odn-date-picker-caption-select": true,
788
+ "data-odn-date-picker-caption-select-month": true,
789
+ onMouseEnter: handleCaptionHoverEnter,
790
+ onMouseLeave: handleCaptionHoverLeave
791
+ }, /*#__PURE__*/React.createElement("select", {
792
+ "data-odn-date-picker-caption-select-input": true,
793
+ name: "month",
794
+ onChange: handleMonthChange,
795
+ value: value,
796
+ "data-value": value,
797
+ onClick: resetNavHoverFill
798
+ }, optionsFiltered.map(function (o) {
799
+ return /*#__PURE__*/React.createElement("option", {
800
+ key: o.value,
801
+ value: o.value
802
+ }, o.label);
803
+ })), /*#__PURE__*/React.createElement("svg", {
804
+ "data-odn-date-picker-caption-icon": true,
805
+ width: "18",
806
+ height: "18",
807
+ viewBox: "0 0 18 18"
808
+ }, /*#__PURE__*/React.createElement("path", {
809
+ d: "M12.3501 7.81235C12.6121 7.48497 12.379 7 11.9597 7H6.04034C5.62109 7 5.388 7.48497 5.6499 7.81235L8.60959 11.512C8.80975 11.7622 9.1903 11.7622 9.39046 11.512L12.3501 7.81235Z",
810
+ fillRule: "evenodd"
811
+ })));
812
+ },
813
+ Nav: function Nav(_ref8) {
814
+ var onPreviousClick = _ref8.onPreviousClick,
815
+ onNextClick = _ref8.onNextClick,
816
+ previousMonth = _ref8.previousMonth,
817
+ nextMonth = _ref8.nextMonth;
818
+ return /*#__PURE__*/React.createElement("div", {
819
+ "data-odn-date-picker-caption-nav": true
820
+ }, /*#__PURE__*/React.createElement("button", {
821
+ "data-odn-date-picker-caption-nav-button": true,
822
+ "data-odn-date-picker-caption-nav-button-prev": true,
823
+ "data-odn-date-picker-caption-nav-button-disabled": !previousMonth,
824
+ "data-hover-fill-target": "prev",
825
+ onClick: function onClick(e) {
826
+ e.stopPropagation();
827
+ onPreviousClick === null || onPreviousClick === void 0 || onPreviousClick(e);
828
+ resetNavHoverFill();
829
+ },
830
+ disabled: !previousMonth,
831
+ onMouseEnter: handleCaptionHoverEnter,
832
+ onMouseLeave: handleCaptionHoverLeave
833
+ }, /*#__PURE__*/React.createElement(Icon, {
834
+ name: "left",
835
+ "data-odn-date-picker-caption-nav-icon": true
836
+ })), /*#__PURE__*/React.createElement("button", {
837
+ "data-odn-date-picker-caption-nav-button": true,
838
+ "data-odn-date-picker-caption-nav-button-next": true,
839
+ "data-odn-date-picker-caption-nav-button-disabled": !nextMonth,
840
+ "data-hover-fill-target": "next",
841
+ onClick: function onClick(e) {
842
+ e.stopPropagation();
843
+ onNextClick === null || onNextClick === void 0 || onNextClick(e);
844
+ resetNavHoverFill();
845
+ },
846
+ disabled: !nextMonth,
847
+ onMouseEnter: handleCaptionHoverEnter,
848
+ onMouseLeave: handleCaptionHoverLeave
849
+ }, /*#__PURE__*/React.createElement(Icon, {
850
+ name: "right",
851
+ "data-odn-date-picker-caption-nav-icon": true
852
+ })));
853
+ },
854
+ DayButton: function DayButton(_ref9) {
855
+ var day = _ref9.day,
856
+ modifiers = _ref9.modifiers,
857
+ _onMouseEnter = _ref9.onMouseEnter,
858
+ _onMouseLeave = _ref9.onMouseLeave,
859
+ props = _objectWithoutProperties(_ref9, _excluded2);
860
+ var focus = modifiers.focus,
861
+ today = modifiers.today,
862
+ disabled = modifiers.disabled,
863
+ outside = modifiers.outside,
864
+ selected = modifiers.selected;
865
+ return /*#__PURE__*/React.createElement("button", _extends({
866
+ "data-odn-date-picker-day": true,
867
+ "data-odn-date-picker-day-disabled": disabled,
868
+ "data-odn-date-picker-day-today": today,
869
+ "data-odn-date-picker-day-selected": selected,
870
+ "data-odn-date-picker-day-focus": focus,
871
+ "data-odn-date-picker-day-outside": outside,
872
+ onMouseEnter: function onMouseEnter(e) {
873
+ _onMouseEnter === null || _onMouseEnter === void 0 || _onMouseEnter(e);
874
+ handleTdHoverEnter(e);
875
+ },
876
+ onMouseLeave: function onMouseLeave(e) {
877
+ _onMouseLeave === null || _onMouseLeave === void 0 || _onMouseLeave(e);
878
+ handleTdHoverLeave(e);
879
+ }
880
+ }, props), day.date.getDate());
881
+ }
882
+ }
883
+ }, picker === 'day' ? dayProps : weekProps));
884
+ var handleVisibleChange = function handleVisibleChange(bool) {
885
+ if (disabled) {
886
+ return;
887
+ }
888
+ if (bool) {
889
+ if (picker === 'day') {
890
+ setMonth(selectedDay !== null && selectedDay !== void 0 ? selectedDay : null);
891
+ } else {
892
+ var _selectedRange$;
893
+ setMonth((_selectedRange$ = selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange[0]) !== null && _selectedRange$ !== void 0 ? _selectedRange$ : null);
894
+ }
895
+ }
896
+ setTimeout(function () {
897
+ if (nextClickInsideRef.current === true) {
898
+ nextClickInsideRef.current = false;
899
+ // 展开时,如果在内部元素点击,则不做默认的收起操作
900
+ if (!bool) {
901
+ return;
902
+ }
903
+ }
904
+ var newVal = '';
905
+ if (picker === 'day') {
906
+ newVal = convertDateToString(selectedDay, lang);
907
+ } else if (picker === 'week') {
908
+ newVal = convertWeekToString(selectedRange, lang);
909
+ } else if (picker === 'quarter') {
910
+ newVal = convertQuarterToString(selectedRange, lang);
911
+ } else if (picker === 'month') {
912
+ newVal = convertMonthToString(selectedRange, lang);
913
+ } else if (picker === 'year') {
914
+ newVal = convertYearToString(selectedRange, lang);
915
+ }
916
+ if (!bool && value !== newVal) {
917
+ setValue(newVal);
918
+ }
919
+ if (onVisibleChange) {
920
+ onVisibleChange(bool);
921
+ }
922
+ if (visibleProp === null) {
923
+ setVisible(bool);
924
+ }
925
+ }, 0);
926
+ };
927
+ var handleQuarterSelect = function handleQuarterSelect(quarterRange) {
928
+ if (valueProp === undefined) {
929
+ setSelectedRange(quarterRange);
930
+ setValue(convertQuarterToString(quarterRange, lang));
931
+ }
932
+ if (onChange) {
933
+ onChange === null || onChange === void 0 || onChange(quarterRange, {
934
+ dateString: convertQuarterToString(quarterRange, lang)
935
+ });
936
+ }
937
+ if (closeOnSelect) {
938
+ setTimeout(function () {
939
+ if (onVisibleChange) {
940
+ onVisibleChange(false);
941
+ }
942
+ if (visibleProp === null) {
943
+ setVisible(false);
944
+ }
945
+ }, 150);
946
+ }
947
+ };
948
+ var quarterPopup = /*#__PURE__*/React.createElement(QuarterPicker, {
949
+ selectedRange: selectedRange,
950
+ lang: lang,
951
+ month: month,
952
+ minDate: minDate,
953
+ maxDate: maxDate,
954
+ disabledQuarters: disabledQuarters,
955
+ onQuarterSelect: handleQuarterSelect,
956
+ onMonthChange: handleCaptionChange,
957
+ onCaptionHoverEnter: handleCaptionHoverEnter,
958
+ onCaptionHoverLeave: handleCaptionHoverLeave
959
+ });
960
+ var handleMonthSelect = function handleMonthSelect(monthRange) {
961
+ if (valueProp === undefined) {
962
+ setSelectedRange(monthRange);
963
+ setValue(convertMonthToString(monthRange, lang));
964
+ }
965
+ if (onChange) {
966
+ onChange === null || onChange === void 0 || onChange(monthRange, {
967
+ dateString: convertMonthToString(monthRange, lang)
968
+ });
969
+ }
970
+ if (closeOnSelect) {
971
+ setTimeout(function () {
972
+ if (onVisibleChange) {
973
+ onVisibleChange(false);
974
+ }
975
+ if (visibleProp === null) {
976
+ setVisible(false);
977
+ }
978
+ }, 150);
979
+ }
980
+ };
981
+ var handleYearSelect = function handleYearSelect(yearRange) {
982
+ if (valueProp === undefined) {
983
+ setSelectedRange(yearRange);
984
+ setValue(convertYearToString(yearRange, lang));
985
+ }
986
+ if (onChange) {
987
+ onChange === null || onChange === void 0 || onChange(yearRange, {
988
+ dateString: convertYearToString(yearRange, lang)
989
+ });
990
+ }
991
+ if (closeOnSelect) {
992
+ setTimeout(function () {
993
+ if (onVisibleChange) {
994
+ onVisibleChange(false);
995
+ }
996
+ if (visibleProp === null) {
997
+ setVisible(false);
998
+ }
999
+ }, 150);
1000
+ }
1001
+ };
1002
+ var monthPopup = /*#__PURE__*/React.createElement(MonthPicker, {
1003
+ selectedRange: selectedRange,
1004
+ lang: lang,
1005
+ month: month,
1006
+ minDate: minDate,
1007
+ maxDate: maxDate,
1008
+ disabledMonths: disabledMonths,
1009
+ onMonthSelect: handleMonthSelect,
1010
+ onMonthChange: handleCaptionChange,
1011
+ onCaptionHoverEnter: handleCaptionHoverEnter,
1012
+ onCaptionHoverLeave: handleCaptionHoverLeave
1013
+ });
1014
+ var yearPopup = /*#__PURE__*/React.createElement(YearPicker, {
1015
+ selectedRange: selectedRange,
1016
+ lang: lang,
1017
+ month: month,
1018
+ minDate: minDate,
1019
+ maxDate: maxDate,
1020
+ disabledYears: disabledYears,
1021
+ onYearSelect: handleYearSelect
1022
+ });
1023
+ var inputEl = /*#__PURE__*/React.createElement("input", {
1024
+ readOnly: !!format,
1025
+ type: "text",
1026
+ "data-odn-date-picker-input": true,
1027
+ "data-odn-date-picker-input-format": !!format,
1028
+ "data-odn-date-picker-input-disabled": disabled,
1029
+ disabled: disabled,
1030
+ value: format && (selectedDay || selectedRange) ? picker === 'day' ? format(selectedDay, {
1031
+ dateString: value
1032
+ }) || '' : format(selectedRange, {
1033
+ dateString: value
1034
+ }) || '' : value,
1035
+ onChange: handleInputChange,
1036
+ onClick: function onClick() {
1037
+ nextClickInsideRef.current = true;
1038
+ },
1039
+ placeholder: placeholder,
1040
+ style: {
1041
+ paddingLeft: prefixWidth > 0 ? "".concat(prefixWidth, "px") : undefined
1042
+ }
1043
+ });
1044
+ return /*#__PURE__*/React.createElement(Popover, {
1045
+ matchWidth: !['day', 'week'].includes(picker),
1046
+ arrowed: false,
1047
+ visible: visible,
1048
+ placement: "bottomLeft",
1049
+ trigger: "click",
1050
+ popupStyle: {
1051
+ padding: 0,
1052
+ maxWidth: 'initial'
1053
+ },
1054
+ popup: /*#__PURE__*/React.createElement("div", {
1055
+ "data-odn-date-picker-popup": true,
1056
+ "data-odn-date-picker-popup-picker": picker,
1057
+ ref: popupRef
1058
+ }, /*#__PURE__*/React.createElement("div", {
1059
+ "data-odn-date-picker-caption-nav-hover-fill": true,
1060
+ ref: navHoverFillRef
1061
+ }, /*#__PURE__*/React.createElement("div", {
1062
+ "data-odn-date-picker-caption-nav-hover-fill-inner": true,
1063
+ ref: navHoverFillInnerRef
1064
+ })), /*#__PURE__*/React.createElement("div", {
1065
+ "data-odn-date-picker-td-hover-fill": true,
1066
+ ref: tdHoverFillRef
1067
+ }, /*#__PURE__*/React.createElement("div", {
1068
+ "data-odn-date-picker-td-hover-fill-inner": true,
1069
+ ref: tdHoverFillInnerRef
1070
+ })), shortcutsEnabled && /*#__PURE__*/React.createElement("div", {
1071
+ "data-odn-date-picker-shortcuts": true
1072
+ }, shortcuts.map(function (_ref10, index) {
1073
+ var value = _ref10.value,
1074
+ label = _ref10.label;
1075
+ return /*#__PURE__*/React.createElement(HoverFill, {
1076
+ key: index
1077
+ }, /*#__PURE__*/React.createElement("div", {
1078
+ "data-odn-date-picker-shortcut": true,
1079
+ "data-odn-date-picker-shortcut-active": isSameDay(value, selectedDay),
1080
+ onClick: function onClick() {
1081
+ handleDaySelect(value);
1082
+ }
1083
+ }, label));
1084
+ })), /*#__PURE__*/React.createElement("div", {
1085
+ "data-odn-date-picker-popup-content": true
1086
+ }, function () {
1087
+ var content;
1088
+ if (picker === 'day' || picker === 'week') {
1089
+ content = popup;
1090
+ } else if (picker === 'quarter') {
1091
+ content = quarterPopup;
1092
+ } else if (picker === 'month') {
1093
+ content = monthPopup;
1094
+ } else if (picker === 'year') {
1095
+ content = yearPopup;
1096
+ } else {
1097
+ content = yearPopup;
1098
+ }
1099
+ return popupRender ? popupRender(content) : content;
1100
+ }()))
1101
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, triggerElement ? /*#__PURE__*/React.createElement("div", {
1102
+ ref: containerRef,
1103
+ onClick: function onClick() {
1104
+ handleVisibleChange(!visible);
1105
+ }
1106
+ }, triggerElement) : /*#__PURE__*/React.createElement("div", _extends({
1107
+ "data-odn-date-picker-container": true,
1108
+ "data-odn-date-picker-container-selected": !!selectedDay || !!selectedRange,
1109
+ "data-odn-date-picker-container-light": light,
1110
+ "data-odn-date-picker-container-disabled": disabled,
1111
+ "data-odn-date-picker-container-allow-clear": allowClear,
1112
+ "data-odn-date-picker-container-picker": picker,
1113
+ onClick: function onClick(e) {
1114
+ _onClick === null || _onClick === void 0 || _onClick(e);
1115
+ handleVisibleChange(!visible);
1116
+ },
1117
+ ref: containerRef
1118
+ }, rest), !!prefix && /*#__PURE__*/React.createElement("div", {
1119
+ ref: prefixRef,
1120
+ "data-odn-date-picker-prefix": true
1121
+ }, prefix), light ? /*#__PURE__*/React.createElement(HoverFill, {
1122
+ bgStyle: {
1123
+ borderRadius: '4px'
1124
+ }
1125
+ }, inputEl) : inputEl, /*#__PURE__*/React.createElement("div", {
1126
+ "data-odn-date-picker-icon-container": true,
1127
+ onClick: handleInputIconClick
1128
+ }, icon === null ? null : icon || /*#__PURE__*/React.createElement(Icon, {
1129
+ name: "calendar",
1130
+ "data-odn-date-picker-icon": true,
1131
+ "data-odn-date-picker-icon-calendar": true
1132
+ }), allowClear && (clearIcon === null ? null : clearIcon || /*#__PURE__*/React.createElement(Icon, {
1133
+ name: "cancel-circle-filled",
1134
+ "data-odn-date-picker-icon": true,
1135
+ "data-odn-date-picker-icon-clear": true
1136
+ }))))));
1137
+ };
1138
+ export default DatePicker;